diff --git a/2fauth/5.6.0/data.yml b/2fauth/5.6.0/data.yml deleted file mode 100755 index 879fad219..000000000 --- a/2fauth/5.6.0/data.yml +++ /dev/null @@ -1,75 +0,0 @@ -additionalProperties: - formFields: - - default: 2FAuth - envKey: APP_NAME - labelEn: APP NAME - labelZh: 应用名称 - label: - en: APP NAME - ja: アプリ名 - ms: NAMA APLIKASI - pt-br: NOME DO APLICATIVO - ru: НАЗВАНИЕ ПРИЛОЖЕНИЯ - ko: 앱 이름 - zh: 应用名称 - zh-Hant: 應用名稱 - required: true - type: text - - default: 8000 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh: 端口 - zh-Hant: 埠 - required: true - rule: paramPort - type: number - - default: http://localhost:8000 - edit: true - envKey: APP_URL - labelEn: APP URL - labelZh: 外部地址 - label: - en: APP URL - ja: アプリURL - ms: URL APLIKASI - pt-br: URL DO APLICATIVO - ru: URL ПРИЛОЖЕНИЯ - ko: 앱 URL - zh: 外部地址 - zh-Hant: 外部地址 - description: - zh: 可以添加为反向代理网站,并启用 HTTPS - en: You can add it as a reverse proxy site and enable HTTPS - ja: リバースプロキシサイトとして追加し、HTTPSを有効にできます - ms: Anda boleh menambahnya sebagai laman proksi songsang dan mengaktifkan HTTPS - pt-br: Você pode adicioná-lo como um site de proxy reverso e habilitar o HTTPS - ru: Вы можете добавить его в качестве сайта обратного прокси и включить HTTPS - ko: 리버스 프록시 사이트로 추가하고 HTTPS를 활성화할 수 있습니다 - zh-Hant: 可以添加為反向代理網站,並啟用 HTTPS - required: true - rule: paramExtUrl - type: text - - default: SomeRandomStringOf32CharsExactly - envKey: APP_KEY - labelEn: APP KEY - labelZh: 加密键 - label: - en: APP KEY - ja: アプリキー - ms: KUNCI APLIKASI - pt-br: CHAVE DO APLICATIVO - ru: КЛЮЧ ПРИЛОЖЕНИЯ - ko: 앱 키 - zh: 加密键 - zh-Hant: 加密鍵 - required: true - type: text diff --git a/2fauth/5.6.0/data/.gitkeep b/2fauth/5.6.0/data/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/2fauth/5.6.0/docker-compose.yml b/2fauth/5.6.0/docker-compose.yml deleted file mode 100644 index 0c800590d..000000000 --- a/2fauth/5.6.0/docker-compose.yml +++ /dev/null @@ -1,27 +0,0 @@ -services: - 2fauth: - image: 2fauth/2fauth:5.6.0 - container_name: ${CONTAINER_NAME} - restart: always - ports: - - ${PANEL_APP_PORT_HTTP}:8000/tcp - networks: - - 1panel-network - volumes: - - ./data:/2fauth - environment: - - APP_NAME=${APP_NAME} - - APP_KEY=${APP_KEY} - - APP_URL=${APP_URL} - - IS_DEMO_APP=false - - LOG_CHANNEL=daily - - LOG_LEVEL=notice - - DB_DATABASE="/srv/database/database.sqlite" - - CACHE_DRIVER=file - - SESSION_DRIVER=file - - AUTHENTICATION_GUARD=web-guard - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/2fauth/5.6.0/scripts/init.sh b/2fauth/5.6.0/scripts/init.sh deleted file mode 100644 index 4e811c86a..000000000 --- a/2fauth/5.6.0/scripts/init.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -chown -R 1000:1000 data \ No newline at end of file diff --git a/2fauth/README.md b/2fauth/README.md deleted file mode 100644 index e0be945e1..000000000 --- a/2fauth/README.md +++ /dev/null @@ -1,12 +0,0 @@ -# 设置 - -## **启用 HTTPS** - -- **创建应用**:外部地址填写 `https://2fauth.example.com`(请根据实际情况替换域名)。 -- **创建反向代理网站**:代理地址填写 `http://127.0.0.1:8000`(请根据实际情况替换 IP 和端口)。 -- **申请证书**:为 `2fauth.example.com` 创建证书,验证方式选择 HTTP 类型。 -- **启用 HTTPS**:进入网站设置页面,点击 HTTPS,选择刚刚添加的证书并保存。 - -## **不启用 HTTPS** - -- 如果不启用 HTTPS,会导致无法扫描二维码等问题。在这种情况下,外部地址可以直接填写 `http://192.168.10.100:8000`,无需进行反向代理设置。 diff --git a/2fauth/README_en.md b/2fauth/README_en.md deleted file mode 100644 index eb911da84..000000000 --- a/2fauth/README_en.md +++ /dev/null @@ -1,13 +0,0 @@ -# Setup - -## **Enable HTTPS** - -- **Create Application**: Set the external address to `https://2fauth.example.com` (please replace the domain name according to your actual situation). -- **Create Reverse Proxy Site**: Set the proxy address to `http://127.0.0.1:8000` (please replace the IP and port according to your actual situation). -- **Apply for Certificate**: Create a certificate for `2fauth.example.com`, choose HTTP as the verification method. -- **Enable HTTPS**: Go to the website settings page, click on HTTPS, select the certificate you just added and save. - -## **Without HTTPS** - -- If HTTPS is not enabled, it will cause issues such as inability to scan QR codes. In this case, the external address can be directly set to `http://192.168.10.100:8000` without the need for reverse proxy settings. - diff --git a/2fauth/data.yml b/2fauth/data.yml deleted file mode 100644 index e70bb1243..000000000 --- a/2fauth/data.yml +++ /dev/null @@ -1,33 +0,0 @@ -name: 2FAuth -tags: - - 安全 -title: 管理双因素身份验证(2FA)帐户并生成安全代码的 Web 应用程序 -description: 管理双因素身份验证(2FA)帐户并生成安全代码的 Web 应用程序 -additionalProperties: - key: 2fauth - name: 2FAuth - tags: - - Security - shortDescZh: 管理双因素身份验证(2FA)帐户并生成安全代码的 Web 应用程序 - shortDescEn: A Web app to manage your Two-Factor Authentication (2FA) accounts and generate their security codes - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://docs.2fauth.app/ - github: https://github.com/Bubka/2FAuth - document: https://docs.2fauth.app/ - description: - en: A Web app to manage your Two-Factor Authentication (2FA) accounts and generate their security codes - zh: 管理双因素身份验证(2FA)帐户并生成安全代码的 Web 应用程序 - zh-Hant: 管理雙因素身份驗證(2FA)帳戶並生成安全代碼的 Web 應用程式 - ja: 二要素認証(2FA)アカウントを管理し、安全コードを生成するWebアプリ - ms: Aplikasi Web untuk mengurus akaun Pengesahan Dua Faktor (2FA) anda dan menjana kod keselamatan mereka - pt-br: Um aplicativo Web para gerenciar suas contas de autenticação de dois fatores (2FA) e gerar seus códigos de segurança - ru: Веб-приложение для управления учетными записями двухфакторной аутентификации (2FA) и генерации их кодов безопасности - ko: 이중 인증(2FA) 계정을 관리하고 보안 코드를 생성하는 웹 애플리케이션 - architectures: - - amd64 - - arm64 - - arm/v6 - - arm/v7 diff --git a/2fauth/logo.png b/2fauth/logo.png deleted file mode 100644 index 9fa1fd231..000000000 Binary files a/2fauth/logo.png and /dev/null differ diff --git a/WeChatMarkdownEditor/2.0.4/data.yml b/WeChatMarkdownEditor/2.0.4/data.yml deleted file mode 100644 index f745e7148..000000000 --- a/WeChatMarkdownEditor/2.0.4/data.yml +++ /dev/null @@ -1,19 +0,0 @@ -additionalProperties: - formFields: - - default: 8080 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: WebUI Port - labelZh: 网页端口 - label: - en: Web Port - ja: ウェブポート - ms: Port Web - pt-br: Porta Web - ru: Веб-порт - ko: 웹 포트 - zh: HTTP 端口 - zh-Hant: HTTP 埠 - required: true - rule: paramPort - type: number diff --git a/WeChatMarkdownEditor/2.0.4/docker-compose.yml b/WeChatMarkdownEditor/2.0.4/docker-compose.yml deleted file mode 100644 index b7d4e18b4..000000000 --- a/WeChatMarkdownEditor/2.0.4/docker-compose.yml +++ /dev/null @@ -1,14 +0,0 @@ -services: - md: - image: doocs/md:2.0.4 - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_HTTP}:80 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/WeChatMarkdownEditor/README.md b/WeChatMarkdownEditor/README.md deleted file mode 100644 index 8cf58d4ff..000000000 --- a/WeChatMarkdownEditor/README.md +++ /dev/null @@ -1,19 +0,0 @@ -## 项目介绍 - -Markdown 文档自动即时渲染为微信图文,让你不再为微信内容排版而发愁!只要你会基本的 Markdown 语法,就能做出一篇样式简洁而又美观大方的微信图文。 - -## 功能特性 - -- [x] 支持 Markdown 所有基础语法、数学公式 -- [x] 提供对 Mermaid 图表的渲染和 [GFM 警告块](https://github.com/orgs/community/discussions/16925)的支持 -- [x] 丰富的代码块高亮主题,提升代码可读性 -- [x] 允许自定义主题色和 CSS 样式,灵活定制展示效果 -- [x] 提供多图上传功能,并可自定义配置图床 -- [x] 便捷的文件导入、导出功能,提升工作效率 -- [x] 内置本地内容管理功能,支持草稿自动保存 -- [x] 集成主流 AI 模型(如 DeekSeek、OpenAI、通义千问、腾讯混元、火山方舟 等等),辅助内容创作 - -## 注意事项 - -1. 如果你使用了某些浏览器脚本修改了网页背景色,可能导致渲染后的内容出现背景色分块的现象。 -2. 某些浏览器插件,会对内容样式造成破坏。现象是:复制粘贴到公众号后台内容,点击保存时,样式丢失。 diff --git a/WeChatMarkdownEditor/data.yml b/WeChatMarkdownEditor/data.yml deleted file mode 100644 index 49f4ab588..000000000 --- a/WeChatMarkdownEditor/data.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: WeChat Markdown Editor -tags: - - 实用工具 -title: 一款高度简洁的微信 Markdown 编辑器 -description: 一款高度简洁的微信 Markdown 编辑器 -additionalProperties: - key: WeChatMarkdownEditor - name: WeChat Markdown Editor - tags: - - Tool - shortDescEn: WeChat Markdown Editor - shortDescZh: 一款高度简洁的微信 Markdown 编辑器 - description: - en: WeChat Markdown Editor - ja: 非常シンプルなWeChat Markdownエディタ - ms: Sunting Markdown WeChat yang sangat ringkas - pt-br: Um editor Markdown do WeChat altamente simplificado - ru: Высокосжатый редактор Markdown WeChat - ko: 간결한 WeChat Markdown 편집기 - zh-Hant: 一款高度簡潔的微信 Markdown 編輯器 - zh: 一款高度简洁的微信 Markdown 编辑器 - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://md.doocs.org/ - github: https://github.com/doocs/md - document: https://github.com/doocs/md - architectures: - - amd64 - - arm64 diff --git a/WeChatMarkdownEditor/logo.png b/WeChatMarkdownEditor/logo.png deleted file mode 100644 index e151deccc..000000000 Binary files a/WeChatMarkdownEditor/logo.png and /dev/null differ diff --git a/act_runner/0.2.11/data.yml b/act_runner/0.2.11/data.yml deleted file mode 100644 index f7e56240e..000000000 --- a/act_runner/0.2.11/data.yml +++ /dev/null @@ -1,67 +0,0 @@ -additionalProperties: - formFields: - - default: http://1.2.3.4:3000 - edit: true - envKey: GITEA_INSTANCE_URL - labelEn: Gitea Instance - labelZh: Gitea 实例 - required: true - rule: paramExtUrl - type: text - label: - en: Gitea Instance - ja: Gitea インスタンス - ms: Instans Gitea - pt-br: Instância Gitea - ru: Экземпляр Gitea - ko: Gitea 인스턴스 - zh-Hant: Gitea 實例 - zh: Gitea 实例 - - default: '' - edit: true - envKey: RUNNER_REGISTRATION_TOKEN - labelEn: Registration Token - labelZh: Registration Token - required: true - type: text - label: - en: Registration Token - ja: 登録トークン - ms: Token Pendaftaran - pt-br: Token de Registro - ru: Токен регистрации - ko: 등록 토큰 - zh-Hant: 註冊令牌 - zh: 注册令牌 - - default: '' - edit: true - envKey: RUNNER_NAME - labelEn: Runner Name - labelZh: Runner Name - required: true - type: text - label: - en: Runner Name - ja: ランナー名 - ms: Nama Pelari - pt-br: Nome do Runner - ru: Имя бегуна - ko: 러너 이름 - zh-Hant: 執行器名稱 - zh: 运行器名称 - - default: '' - edit: true - envKey: RUNNER_LABELS - labelEn: Runner Labels - labelZh: Runner Labels - required: true - type: text - label: - en: Runner Labels - ja: ランナータグ - ms: Label Pelari - pt-br: Rótulos do Runner - ru: Метки бегуна - ko: 러너 레이블 - zh-Hant: 執行器標籤 - zh: 运行器标签 diff --git a/act_runner/0.2.11/docker-compose.yml b/act_runner/0.2.11/docker-compose.yml deleted file mode 100644 index bea0e2892..000000000 --- a/act_runner/0.2.11/docker-compose.yml +++ /dev/null @@ -1,22 +0,0 @@ -services: - act_runner: - image: gitea/act_runner:0.2.11 - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - volumes: - #- ./data/config.yaml:/config.yaml # 可选配置 - - ./data/data:/data - - /var/run/docker.sock:/var/run/docker.sock - environment: - #- CONFIG_FILE=/config.yaml - - GITEA_INSTANCE_URL=${GITEA_INSTANCE_URL} - - GITEA_RUNNER_REGISTRATION_TOKEN=${RUNNER_REGISTRATION_TOKEN} - - GITEA_RUNNER_NAME=${RUNNER_NAME} - - GITEA_RUNNER_LABELS=${RUNNER_LABELS} - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/act_runner/README.md b/act_runner/README.md deleted file mode 100644 index 3671fe827..000000000 --- a/act_runner/README.md +++ /dev/null @@ -1,12 +0,0 @@ -# act runner - -**Act runner** 是一个基于 [Gitea fork](https://gitea.com/gitea/act) 的 [Gitea](https://github.com/nektos/act) 上的运行器。 - -## 如何获取 RUNNER_REGISTRATION_TOKEN - -1. 登录到您的 Gitea 实例。 -2. 转到您存储仓库的页面。 -3. 点击页面上方的 "Settings"(设置)。 -4. 在左侧菜单中选择 "Actions"(操作)。 -5. 您将在页面上看到 "Runners"(运行器)部分。在这里,您应该能够找到一个 "New Runner"(创建 Runner)按钮。 -6. 点击 "New Runner"(创建 Runner)按钮,您将获得一个 RUNNER_REGISTRATION_TOKEN,复制它并妥善保存。 diff --git a/act_runner/README_en.md b/act_runner/README_en.md deleted file mode 100644 index af4e41b3b..000000000 --- a/act_runner/README_en.md +++ /dev/null @@ -1,12 +0,0 @@ -# Act Runner - -**Act Runner** is a runner based on the [Gitea fork](https://gitea.com/gitea/act) of [Gitea](https://github.com/nektos/act). - -## How to Obtain the RUNNER_REGISTRATION_TOKEN - -1. Log in to your Gitea instance. -2. Navigate to the page of the repository where you want to register the runner. -3. Click on the **"Settings"** tab at the top of the page. -4. In the left-hand menu, select **"Actions"**. -5. On the page, locate the **"Runners"** section. Here, you should find a **"New Runner"** button. -6. Click on the **"New Runner"** button. You will receive a `RUNNER_REGISTRATION_TOKEN`. Copy and store it securely. \ No newline at end of file diff --git a/act_runner/data.yml b/act_runner/data.yml deleted file mode 100644 index 2c10b7040..000000000 --- a/act_runner/data.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: Act Runner -tags: - - DevOps -title: Gitea Actions 的 Runner -description: Gitea Actions 的 Runner -additionalProperties: - key: act_runner - name: Act Runner - tags: - - DevOps - shortDescZh: Gitea Actions 的 Runner - shortDescEn: A runner for Gitea based on Gitea fork of act - description: - en: A runner for Gitea based on Gitea fork of act - ja: act の Gitea フォークに基づいた Gitea 用ランナー - ms: Penjalank untuk Gitea berdasarkan fork Gitea dari act - pt-br: Um runner para Gitea baseado no fork do Gitea do act - ru: Раннер для Gitea на основе форка Gitea от act - ko: act의 Gitea 포크를 기반으로 한 Gitea용 러너 - zh-Hant: 基於 Gitea fork 的 act 的 Gitea 執行器 - zh: 基于 Gitea fork 的 act 的 Gitea 运行器 - type: tool - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://gitea.com/gitea/act_runner - github: https://gitea.com/gitea/act_runner - document: https://docs.gitea.com/next/usage/actions/act-runner - architectures: - - amd64 - - arm64 \ No newline at end of file diff --git a/act_runner/logo.png b/act_runner/logo.png deleted file mode 100644 index b810ad1e3..000000000 Binary files a/act_runner/logo.png and /dev/null differ diff --git a/adguardhome/0.107.62/data.yml b/adguardhome/0.107.62/data.yml deleted file mode 100644 index 02ecb6cd9..000000000 --- a/adguardhome/0.107.62/data.yml +++ /dev/null @@ -1,172 +0,0 @@ -additionalProperties: - formFields: - - default: 23000 - edit: true - envKey: PANEL_APP_PORT_HTTP_1 - labelEn: HTTP web port - labelZh: HTTP 网页端口 - required: true - rule: paramPort - type: number - label: - en: HTTP Web Port - ja: HTTP ウェブポート - ms: Port Web HTTP - pt-br: Porta Web HTTP - ru: HTTP Веб Порт - ko: HTTP 웹 포트 - zh-Hant: HTTP 網頁埠 - zh: HTTP 网页端口 - - default: 23001 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Initial setup web page port - labelZh: 初始设置网页端口 - required: true - rule: paramPort - type: number - label: - en: Initial Setup Web Port - ja: 初期設定ウェブポート - ms: Port Web Persediaan Awal - pt-br: Porta Web de Configuração Inicial - ru: Порт веб-страницы для начальной настройки - ko: 초기 설정 웹 포트 - zh-Hant: 初始設定網頁埠 - zh: 初始设置网页端口 - - default: 20053 - edit: true - envKey: PANEL_APP_PORT_DNS - labelEn: Plain DNS port - labelZh: 普通 DNS 端口 - required: true - rule: paramPort - type: number - label: - en: Standard DNS Port - ja: 標準DNSポート - ms: Port DNS Standard - pt-br: Porta DNS Padrão - ru: Стандартный порт DNS - ko: 표준 DNS 포트 - zh-Hant: 普通 DNS 埠 - zh: 普通 DNS 端口 - - default: 20067 - edit: true - envKey: PANEL_APP_PORT_DHCP_1 - labelEn: DHCP service port 1 - labelZh: DHCP 服务端口 1 - required: true - rule: paramPort - type: number - label: - en: DHCP Service Port 1 - ja: DHCP サービスポート 1 - ms: Port Perkhidmatan DHCP 1 - pt-br: Port de Serviço DHCP 1 - ru: Порт службы DHCP 1 - ko: DHCP 서비스 포트 1 - zh-Hant: DHCP 服務埠 1 - zh: DHCP 服务端口 1 - - default: 20068 - edit: true - envKey: PANEL_APP_PORT_DHCP_2 - labelEn: DHCP service port 2 - labelZh: DHCP 服务端口 2 - required: true - rule: paramPort - type: number - label: - en: DHCP Service Port 2 - ja: DHCP サービスポート 2 - ms: Port Perkhidmatan DHCP 2 - pt-br: Port de Serviço DHCP 2 - ru: Порт службы DHCP 2 - ko: DHCP 서비스 포트 2 - zh-Hant: DHCP 服務埠 2 - zh: DHCP 服务端口 2 - - default: 20443 - edit: true - envKey: PANEL_APP_PORT_DOH - labelEn: DOH service port - labelZh: DOH 服务端口 - required: true - rule: paramPort - type: number - label: - en: DOH Service Port - ja: DOH サービスポート - ms: Port Perkhidmatan DOH - pt-br: Porta de Serviço DOH - ru: Порт службы DOH - ko: DOH 서비스 포트 - zh-Hant: DOH 服務埠 - zh: DOH 服务端口 - - default: 853 - edit: true - envKey: PANEL_APP_PORT_DOT - labelEn: DOT service port - labelZh: DOT 服务端口 - required: true - rule: paramPort - type: number - label: - en: DOT Service Port - ja: DOT サービスポート - ms: Port Perkhidmatan DOT - pt-br: Porta de Serviço DOT - ru: Порт службы DOT - ko: DOT 서비스 포트 - zh-Hant: DOT 服務埠 - zh: DOT 服务端口 - - default: 20784 - edit: true - envKey: PANEL_APP_PORT_QUIC_1 - labelEn: QUIC service port 1 - labelZh: QUIC 服务端口 1 - required: true - rule: paramPort - type: number - label: - en: QUIC Service Port 1 - ja: QUIC サービスポート 1 - ms: Port Perkhidmatan QUIC 1 - pt-br: Porta de Serviço QUIC 1 - ru: Порт службы QUIC 1 - ko: QUIC 서비스 포트 1 - zh-Hant: QUIC 服務埠 1 - zh: QUIC 服务端口 1 - - default: 8853 - edit: true - envKey: PANEL_APP_PORT_QUIC_2 - labelEn: QUIC service port 2 - labelZh: QUIC 服务端口 2 - required: true - rule: paramPort - type: number - label: - en: QUIC Service Port 2 - ja: QUIC サービスポート 2 - ms: Port Perkhidmatan QUIC 2 - pt-br: Porta de Serviço QUIC 2 - ru: Порт службы QUIC 2 - ko: QUIC 서비스 포트 2 - zh-Hant: QUIC 服務埠 2 - zh: QUIC 服务端口 2 - - default: 5443 - edit: true - envKey: PANEL_APP_PORT_DNS_CRYPT - labelEn: DNS Crypt service port - labelZh: DNS Crypt 服务端口 - required: true - rule: paramPort - type: number - label: - en: DNS Crypt Service Port - ja: DNS Crypt サービスポート - ms: Port Perkhidmatan DNS Crypt - pt-br: Porta de Serviço DNS Crypt - ru: Порт службы DNS Crypt - ko: DNS Crypt 서비스 포트 - zh-Hant: DNS Crypt 服務埠 - zh: DNS Crypt 服务端口 \ No newline at end of file diff --git a/adguardhome/0.107.62/docker-compose.yml b/adguardhome/0.107.62/docker-compose.yml deleted file mode 100644 index 2c6b137fa..000000000 --- a/adguardhome/0.107.62/docker-compose.yml +++ /dev/null @@ -1,30 +0,0 @@ -services: - adguardhome: - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_DNS}:53/tcp - - ${PANEL_APP_PORT_DNS}:53/udp - - ${PANEL_APP_PORT_DHCP_1}:67/udp - - ${PANEL_APP_PORT_DHCP_2}:68/udp - - ${PANEL_APP_PORT_HTTP_1}:80/tcp - - ${PANEL_APP_PORT_DOH}:443/tcp - - ${PANEL_APP_PORT_DOH}:443/udp - - ${PANEL_APP_PORT_HTTP}:3000/tcp - - ${PANEL_APP_PORT_DOT}:853/tcp - - ${PANEL_APP_PORT_QUIC_1}:784/udp - - ${PANEL_APP_PORT_DOT}:853/udp - - ${PANEL_APP_PORT_QUIC_2}:8853/udp - - ${PANEL_APP_PORT_DNS_CRYPT}:5443/tcp - - ${PANEL_APP_PORT_DNS_CRYPT}:5443/udp - volumes: - - ./data/work:/opt/adguardhome/work - - ./data/conf:/opt/adguardhome/conf - image: adguard/adguardhome:v0.107.62 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/adguardhome/README.md b/adguardhome/README.md deleted file mode 100644 index 4e732143a..000000000 --- a/adguardhome/README.md +++ /dev/null @@ -1,13 +0,0 @@ -# AdGuard Home - -AdGuard Home 是一款开源的网络广告拦截和隐私保护工具,它可以用于在家庭网络中过滤广告、跟踪器和恶意网站,提供更安全、更清洁的上网体验。 - -## 主要功能: - -- **广告拦截:** AdGuard Home 可以阻止网页中的广告,包括图像广告、文本广告和视频广告,使用户在浏览网页时不再受到广告的干扰。 -- **跟踪器拦截:** 它还能够阻止网站使用跟踪器来跟踪您的在线活动,从而提高隐私保护水平,减少个人信息的泄露风险。 -- **恶意网站拦截:** AdGuard Home 会检测并拦截访问恶意网站的尝试,从而提供更好的网络安全性,防止用户访问可能包含恶意软件或欺诈活动的网站。 -- **家庭保护:** 您可以在家庭网络中使用 AdGuard Home 来保护所有连接到同一网络的设备,包括计算机、手机、平板电脑和智能家居设备,以确保所有设备都受到广告和恶意网站的保护。 -- **自定义规则:** 用户可以根据自己的需求创建自定义规则,以进一步控制广告拦截和过滤功能,例如允许或阻止特定网站或内容。 -- **DNS拦截:** AdGuard Home 通过拦截DNS请求来工作,这意味着它可以在网络层面上拦截广告和恶意内容,而无需在每个设备上安装单独的应用程序或浏览器插件。 -- **统计和日志:** AdGuard Home 提供详细的统计信息和日志,让用户了解网络流量的情况,包括广告拦截的数量和效果,以及恶意网站拦截的情况。 \ No newline at end of file diff --git a/adguardhome/README_en.md b/adguardhome/README_en.md deleted file mode 100644 index 8d3e254d5..000000000 --- a/adguardhome/README_en.md +++ /dev/null @@ -1,19 +0,0 @@ -# AdGuard Home - -AdGuard Home is an open-source network-wide ad blocker and privacy protection tool. It filters ads, trackers, and malicious websites on your home network, offering a safer and cleaner browsing experience. - -## Main Features - -- **Ad Blocking**:Blocks intrusive ads on websites, including image ads, text ads, and video ads, ensuring an ad-free browsing experience. - -- **Tracker Blocking**:Prevents websites from using trackers to collect data about your online activities, safeguarding your privacy and reducing the risk of personal data leaks. - -- **Malicious Website Blocking**:Detects and blocks attempts to access malicious websites, protecting users from malware, phishing, and fraudulent activities. - -- **Home Network Protection**:Protects all devices connected to the same network, such as computers, smartphones, tablets, and smart home devices, without requiring individual installations. - -- **Custom Rules**:Allows users to create custom rules for precise control over filtering behavior, such as allowing or blocking specific websites or content. - -- **DNS Blocking**:Works by intercepting DNS requests at the network level, eliminating the need for plugins or software installations on each device to filter ads and harmful content. - -- **Statistics and Logs**:Provides detailed traffic statistics and logs, showing the number of ads blocked, malicious websites intercepted, and more, helping users understand their network activity. \ No newline at end of file diff --git a/adguardhome/data.yml b/adguardhome/data.yml deleted file mode 100644 index 3c83fedaf..000000000 --- a/adguardhome/data.yml +++ /dev/null @@ -1,33 +0,0 @@ -name: AdGuardHome -tags: -- 安全 -title: 网络范围内的广告和跟踪器阻止 DNS 服务器 -description: 网络范围内的广告和跟踪器阻止 DNS 服务器 -additionalProperties: - key: adguardhome - name: AdGuardHome - tags: - - Security - shortDescZh: 网络范围内的广告和跟踪器阻止 DNS 服务器 - shortDescEn: Network-wide ads & trackers blocking DNS server - description: - en: DNS server blocking ads and trackers across the network - ja: ネットワーク全体で広告とトラッカーをブロックするDNSサーバー - ms: Pelayan DNS yang menyekat iklan dan penjejak di seluruh rangkaian - pt-br: Servidor DNS bloqueando anúncios e rastreadores em toda a rede - ru: DNS сервер, блокирующий рекламу и трекеры по всей сети - ko: 네트워크 전체에서 광고 및 추적기를 차단하는 DNS 서버 - zh-Hant: 網路範圍內阻止廣告和跟踪器的 DNS 伺服器 - zh: 网络范围内的广告和跟踪器阻止 DNS 服务器 - type: website - crossVersionUpdate: true - limit: 0 - website: https://adguard.com/adguard-home.html - github: https://github.com/AdguardTeam/AdGuardHome - document: https://github.com/AdguardTeam/AdGuardHome/wiki - architectures: - - amd64 - - arm/v6 - - arm/v7 - - arm64 - - ppc64le diff --git a/adguardhome/logo.png b/adguardhome/logo.png deleted file mode 100644 index 1144d34f7..000000000 Binary files a/adguardhome/logo.png and /dev/null differ diff --git a/adminer/5.3.0-standalone/data.yml b/adminer/5.3.0-standalone/data.yml deleted file mode 100644 index 3cf7b3732..000000000 --- a/adminer/5.3.0-standalone/data.yml +++ /dev/null @@ -1,19 +0,0 @@ -additionalProperties: - formFields: - - default: 9853 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh-Hant: 埠 - zh: 端口 diff --git a/adminer/5.3.0-standalone/docker-compose.yml b/adminer/5.3.0-standalone/docker-compose.yml deleted file mode 100644 index 9e0e62a2e..000000000 --- a/adminer/5.3.0-standalone/docker-compose.yml +++ /dev/null @@ -1,14 +0,0 @@ -services: - adminer: - image: adminer:5.3.0-standalone - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_HTTP}:8080 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/adminer/README.md b/adminer/README.md deleted file mode 100644 index 7537548f1..000000000 --- a/adminer/README.md +++ /dev/null @@ -1,17 +0,0 @@ -# Adminer - -Adminer 是一个轻量级的数据库管理工具,它允许用户通过简单的Web界面来管理各种类型的数据库,包括MySQL、PostgreSQL、SQLite等。 - -## 主要功能: - -- **跨数据库支持**:Adminer支持多种数据库系统,使您可以在一个统一的界面下管理不同类型的数据库。 -- **简单易用**:Adminer拥有直观的用户界面,无需复杂的安装或配置过程,即可快速上手。 -- **数据查询和编辑**:您可以通过Adminer执行SQL查询,查看和编辑数据库中的数据。支持自定义SQL命令。 -- **表格结构管理**:Adminer允许您创建、修改和删除表格,定义字段、主键和索引等。 -- **导入和导出**:可以轻松导入和导出数据,支持多种数据格式,如SQL、CSV和Excel等。 -- **数据库备份**:Adminer允许您创建数据库备份,以确保数据的安全性和可恢复性。 -- **权限管理**:您可以管理数据库用户和权限,控制谁可以访问和修改数据库。 -- **查询历史**:Adminer保存您执行的查询历史,方便后续查看和重复执行。 -- **多语言支持**:Adminer提供多种语言界面,以适应不同用户的需求。 -- **自定义外观**:支持自定义主题和界面样式,以使Adminer适应您的个人偏好。 -- **开源和免费**:Adminer是开源软件,可免费使用和自定义。 \ No newline at end of file diff --git a/adminer/README_en.md b/adminer/README_en.md deleted file mode 100644 index 52d14fbeb..000000000 --- a/adminer/README_en.md +++ /dev/null @@ -1,17 +0,0 @@ -# Adminer - -Adminer is a lightweight database management tool that allows users to manage various types of databases through a simple web interface, including MySQL, PostgreSQL, SQLite, and more. - -## Main Features: - -- **Cross-Database Support**: Adminer supports multiple database systems, enabling you to manage different types of databases under a unified interface. -- **Simple and Easy to Use**: Adminer features an intuitive user interface, requiring no complex installation or configuration process, allowing for quick startup. -- **Data Query and Editing**: You can execute SQL queries, view, and edit data within the database using Adminer. Custom SQL commands are supported. -- **Table Structure Management**: Adminer allows you to create, modify, and delete tables, define fields, primary keys, and indexes. -- **Import and Export**: Easily import and export data, supporting various data formats such as SQL, CSV, and Excel. -- **Database Backup**: Adminer allows you to create database backups to ensure data security and recoverability. -- **Permission Management**: You can manage database users and permissions, controlling who can access and modify the database. -- **Query History**: Adminer saves the history of executed queries for convenient review and re-execution later. -- **Multi-Language Support**: Adminer offers interfaces in multiple languages to meet the needs of different users. -- **Custom Appearance**: Supports custom themes and interface styles to adapt Adminer to your personal preferences. -- **Open Source and Free**: Adminer is open-source software, free to use and customize. diff --git a/adminer/data.yml b/adminer/data.yml deleted file mode 100644 index f539038b1..000000000 --- a/adminer/data.yml +++ /dev/null @@ -1,35 +0,0 @@ -name: Adminer -tags: - - 开发工具 -title: PHP 轻量级数据库管理工具 -description: PHP 轻量级数据库管理工具 -additionalProperties: - key: adminer - name: Adminer - tags: - - DevTool - shortDescZh: PHP 轻量级数据库管理工具 - shortDescEn: Database management in a single PHP file - description: - en: Lightweight PHP Database Management Tool - ja: 軽量 PHP データベース管理ツール - ms: Alat Pengurusan Pangkalan Data PHP Ringan - pt-br: Ferramenta de Gerenciamento de Banco de Dados PHP Leve - ru: Легкий инструмент управления базой данных на PHP - ko: 경량 PHP 데이터베이스 관리 도구 - zh-Hant: PHP 輕量級資料庫管理工具 - zh: PHP 轻量级数据库管理工具 - type: website - crossVersionUpdate: false - limit: 1 - recommend: 0 - website: https://www.adminer.org/ - github: https://github.com/xiahao90/adminer - document: https://github.com/xiahao90/adminer - architectures: - - amd64 - - arm/v5 - - arm/v7 - - arm64 - - ppc64le - - s390x diff --git a/adminer/logo.png b/adminer/logo.png deleted file mode 100644 index f24951bd3..000000000 Binary files a/adminer/logo.png and /dev/null differ diff --git a/affine/README.md b/affine/README.md deleted file mode 100644 index b76b8b076..000000000 --- a/affine/README.md +++ /dev/null @@ -1,21 +0,0 @@ -# AFFiNE - -**AFFiNE** 是一个开源的一体化工作区和操作系统,适用于构建知识库的所有构建块以及更多内容——wiki、知识管理、演示和数字资产。它是 Notion 和 Miro 的更好替代品。 - -## 主要特征: - -### 任何形式的块的真正画布,文档和白板现已完全合并。 - -- 许多编辑器应用都声称自己是生产力的画布,但 AFFiNE 是极少数允许您在无边画布上放置任何构建块的应用之一——富文本、便签、任何嵌入式网页、多视图数据库、链接页面、形状甚至幻灯片。我们拥有一切。 - -### 多模式 AI 合作伙伴随时准备投入任何工作 - -- 撰写专业的工作报告?将大纲变成富有表现力且易于展示的幻灯片?将文章总结为结构良好的思维导图?整理工作计划和待办事项?或者... 只需一个提示即可直接绘制和编写原型应用程序和网页?有了你,AFFiNE AI 可以将您的创造力推向想象的边缘。 - -### 本地优先、实时协作 - -- 我们喜欢本地优先的理念,即无论使用云端,您始终拥有磁盘上的数据。此外,AFFiNE 支持在 Web 和跨平台客户端上进行实时同步和协作。 - -### 自托管并塑造您自己的 AFFiNE - -- 您可以自由地管理、自行托管、分叉和构建自己的 AFFiNE。插件社区和第三方模块即将推出。Blocksuite 上还有更多牵引力。查看那里了解如何自行托管 AFFiNE。 \ No newline at end of file diff --git a/affine/README_en.md b/affine/README_en.md deleted file mode 100644 index 48e8064f0..000000000 --- a/affine/README_en.md +++ /dev/null @@ -1,16 +0,0 @@ -# AFFiNE -**AFFiNE** is an open-source integrated workspace and operating system for building knowledge bases and more—wiki, knowledge management, presentations, and digital assets. It's a better alternative to Notion and Miro. - -## Key Features: -### True canvas for blocks of any form, documents and whiteboards now fully merged. -- Many editor apps claim to be productivity canvases, but AFFiNE is one of the very few apps that allows you to place any building block on an infinite canvas—rich text, sticky notes, embedded webpages, multi-view databases, linked pages, shapes, and even slideshows. We have it all. - -### Multi-mode AI partner ready for any task -- Writing professional work reports? Turning outlines into expressive and easy-to-present slideshows? Summarizing articles into well-structured mind maps? Organizing work plans and to-dos? Or... drawing and writing prototype applications and webpages with just a prompt? With you, AFFiNE AI can push your creativity to the edge of imagination. - -### Local-first, real-time collaboration -- We love the local-first concept, meaning you always own your data on disk, regardless of cloud usage. Additionally, AFFiNE supports real-time synchronization and collaboration on the web and across platform clients. - -### Self-host and shape your own AFFiNE -- You're free to manage, self-host, fork, and build your own AFFiNE. Plugin communities and third-party modules are coming soon. Blocksuite has even more traction. Check it out to learn how to self-host AFFiNE. - diff --git a/affine/data.yml b/affine/data.yml deleted file mode 100644 index 6d6cf9bee..000000000 --- a/affine/data.yml +++ /dev/null @@ -1,33 +0,0 @@ -name: AFFiNE -tags: - - 实用工具 -title: 将文档、白板和数据库完全整合的工作空间 -description: 将文档、白板和数据库完全整合的工作空间 -additionalProperties: - key: affine - name: AFFiNE - tags: - - Tool - shortDescZh: 将文档、白板和数据库完全整合的工作空间 - shortDescEn: A workspace with fully merged docs, whiteboards and databases - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://affine.pro - github: https://github.com/toeverything/AFFiNE - document: https://docs.affine.pro/docs/self-host-affine - architectures: - - amd64 - - arm64 - - arm/v7 - description: - en: A workspace with fully merged docs, whiteboards and databases - zh: 将文档、白板和数据库完全整合的工作空间 - zh-Hant: 將文檔、白板和數據庫完全整合的工作空間 - ja: 文書、ホワイトボード、データベースを完全に統合したワークスペース - ms: Ruang kerja dengan dokumen, papan putih, dan pangkalan data yang sepenuhnya digabungkan - pt-br: Um espaço de trabalho com documentos, quadros brancos e bancos de dados totalmente integrados - ru: Рабочее пространство с полностью объединенными документами, досками и базами данных - ko: 문서, 화이트보드 및 데이터베이스가 완전히 통합된 작업 공간 - memoryRequired: 1024 \ No newline at end of file diff --git a/affine/logo.png b/affine/logo.png deleted file mode 100644 index c0f973a53..000000000 Binary files a/affine/logo.png and /dev/null differ diff --git a/affine/stable/data.yml b/affine/stable/data.yml deleted file mode 100644 index a1b14c7a0..000000000 --- a/affine/stable/data.yml +++ /dev/null @@ -1,115 +0,0 @@ -additionalProperties: - formFields: - - default: 3010 - envKey: PANEL_APP_PORT_HTTP - labelEn: Web Port - labelZh: HTTP 端口 - required: true - rule: paramPort - type: number - label: - en: Web Port - ja: ウェブポート - ms: Port Web - pt-br: Porta Web - ru: Веб-порт - ko: 웹 포트 - zh: HTTP 端口 - zh-Hant: HTTP 埠 - - default: "" - envKey: PANEL_DB_HOST - key: postgresql - labelEn: PostgreSQL Database Service - labelZh: PostgreSQL 数据库服务 - required: true - type: service - label: - en: PostgreSQL Database Service - ja: PostgreSQLデータベースサービス - ms: Perkhidmatan Pangkalan Data PostgreSQL - pt-br: Serviço de Banco de Dados PostgreSQL - ru: Сервис базы данных PostgreSQL - ko: PostgreSQL 데이터베이스 서비스 - zh: PostgreSQL 数据库服务 - zh-Hant: PostgreSQL 数据库服务 - - default: affine - envKey: PANEL_DB_NAME - labelEn: Database - labelZh: 数据库名 - random: true - required: true - rule: paramCommon - type: text - label: - en: Database - ja: データベース - ms: Pangkalan Data - pt-br: Banco de Dados - ru: База данных - ko: 데이터베이스 - zh: 数据库名 - zh-Hant: 資料庫名稱 - - default: affine - envKey: PANEL_DB_USER - labelEn: User - labelZh: 数据库用户 - random: true - required: true - rule: paramCommon - type: text - label: - en: User - ja: ユーザー - ms: Pengguna - pt-br: Usuário - ru: Пользователь - ko: 사용자 - zh: 数据库用户 - zh-Hant: 資料庫使用者 - - default: affine - envKey: PANEL_DB_USER_PASSWORD - labelEn: Password - labelZh: 数据库用户密码 - random: true - required: true - type: password - label: - en: Password - ja: パスワード - ms: Kata laluan - pt-br: Senha - ru: Пароль - ko: 비밀번호 - zh: 数据库用户密码 - zh-Hant: 資料庫使用者密碼 - - default: "" - envKey: PANEL_REDIS_HOST - key: redis - labelEn: Redis Service - labelZh: redis 服务 - required: true - type: service - label: - en: Redis Service - ja: Redisサービス - ms: Perkhidmatan Redis - pt-br: Serviço Redis - ru: Сервис Redis - ko: Redis 서비스 - zh: redis 服务 - zh-Hant: redis 服务 - - default: "" - disabled: true - envKey: PANEL_REDIS_ROOT_PASSWORD - labelEn: Password - labelZh: redis 密码 - type: text - label: - en: Password - ja: パスワード - ms: Kata laluan - pt-br: Senha - ru: Пароль - ko: 비밀번호 - zh: redis 密码 - zh-Hant: redis 密码 \ No newline at end of file diff --git a/affine/stable/docker-compose.yml b/affine/stable/docker-compose.yml deleted file mode 100644 index 7bb1559e0..000000000 --- a/affine/stable/docker-compose.yml +++ /dev/null @@ -1,45 +0,0 @@ -services: - affine: - image: ghcr.io/toeverything/affine-graphql:stable - container_name: ${CONTAINER_NAME} - restart: unless-stopped - ports: - - ${PANEL_APP_PORT_HTTP}:3010 - volumes: - - ./data/storage:/root/.affine/storage - - ./data/config:/root/.affine/config - networks: - - 1panel-network - environment: - - REDIS_SERVER_HOST=${PANEL_REDIS_HOST} - - REDIS_SERVER_PORT=6379 - - REDIS_SERVER_PASSWORD=${PANEL_REDIS_ROOT_PASSWORD} - - DATABASE_URL=postgres://${PANEL_DB_USER}:${PANEL_DB_USER_PASSWORD}@${PANEL_DB_HOST}:${PANEL_DB_PORT}/${PANEL_DB_NAME} - - AFFINE_INDEXER_ENABLED=false - depends_on: - affine_migration: - condition: service_completed_successfully - labels: - createdBy: "Apps" - - affine_migration: - image: ghcr.io/toeverything/affine-graphql:stable - container_name: ${CONTAINER_NAME}_migration_job - volumes: - - ./data/storage:/root/.affine/storage - - ./data/config:/root/.affine/config - command: [ 'sh', '-c', 'node ./scripts/self-host-predeploy.js' ] - networks: - - 1panel-network - environment: - - REDIS_SERVER_HOST=${PANEL_REDIS_HOST} - - REDIS_SERVER_PORT=6379 - - REDIS_SERVER_PASSWORD=${PANEL_REDIS_ROOT_PASSWORD} - - DATABASE_URL=postgres://${PANEL_DB_USER}:${PANEL_DB_USER_PASSWORD}@${PANEL_DB_HOST}:${PANEL_DB_PORT}/${PANEL_DB_NAME} - - AFFINE_INDEXER_ENABLED=false - labels: - createdBy: "Apps" - skipStatusCheck: "true" -networks: - 1panel-network: - external: true diff --git a/alist/3.45.0/data.yml b/alist/3.45.0/data.yml deleted file mode 100755 index c3739655d..000000000 --- a/alist/3.45.0/data.yml +++ /dev/null @@ -1,36 +0,0 @@ -additionalProperties: - formFields: - - default: 5244 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: WebUI Port - labelZh: 网页端口 - required: true - rule: paramPort - type: number - label: - en: WebUI Port - ja: WebUI ポート - ms: Port WebUI - pt-br: Porta WebUI - ru: Порт WebUI - ko: WebUI 포트 - zh-Hant: WebUI 埠 - zh: WebUI 端口 - - default: 5426 - edit: true - envKey: PANEL_APP_PORT_S3 - labelEn: S3 Port - labelZh: S3 端口 - required: true - rule: paramPort - type: number - label: - en: S3 Port - ja: S3 ポート - ms: Port S3 - pt-br: Porta S3 - ru: Порт S3 - ko: S3 포트 - zh-Hant: S3 埠 - zh: S3 端口 diff --git a/alist/3.45.0/data/data/.gitkeep b/alist/3.45.0/data/data/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/alist/3.45.0/data/mnt/.gitkeep b/alist/3.45.0/data/mnt/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/alist/3.45.0/docker-compose.yml b/alist/3.45.0/docker-compose.yml deleted file mode 100644 index ae0d06cd6..000000000 --- a/alist/3.45.0/docker-compose.yml +++ /dev/null @@ -1,23 +0,0 @@ -services: - alist: - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTP}:5244" - - "${PANEL_APP_PORT_S3}:5426" - volumes: - - ./data/data:/opt/alist/data - - ./data/mnt:/mnt/data - environment: - - PUID=0 - - PGID=0 - - UMASK=022 - image: xhofe/alist:v3.45.0 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true - diff --git a/alist/3.45.0/scripts/upgrade.sh b/alist/3.45.0/scripts/upgrade.sh deleted file mode 100644 index 8957ef5f6..000000000 --- a/alist/3.45.0/scripts/upgrade.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash - -if [[ -f ./.env ]]; then - if grep -q 'PANEL_APP_PORT_S3' ./.env; then - echo "PANEL_APP_PORT_S3 参数已存在" - else - echo 'PANEL_APP_PORT_S3=5426' >> ./.env - echo "已添加 PANEL_APP_PORT_S3=5426" - fi -else - echo ".env 文件不存在" -fi diff --git a/alist/README.md b/alist/README.md deleted file mode 100644 index f439bd610..000000000 --- a/alist/README.md +++ /dev/null @@ -1,43 +0,0 @@ - -# 账号密码 - -容器列表点击 `终端` 按钮,进入容器内执行命令设置密码。 - -- **生成随机密码**:`./alist admin random` -- **手动设置密码**:`./alist admin set NEW_PASSWORD` - -# AList - -AList 是一个支持多种存储,支持网页浏览和 WebDAV 的文件列表程序,由 gin 和 Solidjs 驱动。 - -## 支持的存储: - -- 本地存储 -- [阿里云盘](https://www.aliyundrive.com/) -- OneDrive / Sharepoint([国际版](https://www.office.com/), [世纪互联](https://portal.partner.microsoftonline.cn),de,us) -- [天翼云盘](https://cloud.189.cn) (个人云, 家庭云) -- [GoogleDrive](https://drive.google.com/) -- [123云盘](https://www.123pan.com/) -- FTP / SFTP -- [PikPak](https://www.mypikpak.com/) -- [S3](https://aws.amazon.com/cn/s3/) -- [Seafile](https://seafile.com/) -- [又拍云对象存储](https://www.upyun.com/products/file-storage) -- WebDav(支持无API的OneDrive/SharePoint) -- Teambition([中国](https://www.teambition.com/ ),[国际](https://us.teambition.com/ )) -- [分秒帧](https://www.mediatrack.cn/) -- [和彩云](https://yun.139.com/) (个人云, 家庭云) -- [Yandex.Disk](https://disk.yandex.com/) -- [百度网盘](http://pan.baidu.com/) -- [UC网盘](https://drive.uc.cn) -- [夸克网盘](https://pan.quark.cn) -- [迅雷网盘](https://pan.xunlei.com) -- [蓝奏云](https://www.lanzou.com/) -- [阿里云盘分享](https://www.aliyundrive.com/) -- [谷歌相册](https://photos.google.com/) -- [Mega.nz](https://mega.nz) -- [一刻相册](https://photo.baidu.com/) -- SMB -- [115](https://115.com/) -- Cloudreve -- [Dropbox](https://www.dropbox.com/) \ No newline at end of file diff --git a/alist/README_en.md b/alist/README_en.md deleted file mode 100644 index efdd30153..000000000 --- a/alist/README_en.md +++ /dev/null @@ -1,64 +0,0 @@ -# AList - -A file list program that supports multiple storage, and supports web browsing and webdav, powered by gin and Solidjs. - -## Supported Storage - -- Local storage -- [Crypt](/guide/drivers/Crypt.md) -- [Aliyundrive Open](../guide/drivers/aliyundrive_open.md) -- [aliyundrive](https://www.alipan.com/) -- [OneDrive](./drivers/onedrive.md) /[APP](./drivers/onedrive_app.md)/ Sharepoint ([global](https://www.office.com/), [cn](https://portal.partner.microsoftonline.cn),de,us) -- [GoogleDrive](https://drive.google.com/) -- [123pan/Share/Link](https://www.123pan.com/) -- [Alist](https://github.com/Xhofe/alist) -- FTP -- SFTP -- [PikPak / share](https://www.mypikpak.com/) -- [S3](../guide/drivers/s3.md) -- [Doge](../guide/drivers/s3.md#add-object-storage-examples-and-official-documents) -- [UPYUN Storage Service](https://www.upyun.com/products/file-storage) -- WebDAV -- Teambition([China](https://www.teambition.com/),[International](https://us.teambition.com/)) -- [mediatrack](https://www.mediatrack.cn/) -- [189cloud](https://cloud.189.cn) (Personal, Family) -- [139yun](https://yun.139.com/) (Personal, Family) -- [Wopan](https://pan.wo.cn) -- [MoPan](https://mopan.sc.189.cn/mopan/#/downloadPc) -- [YandexDisk](https://disk.yandex.com/) -- [BaiduNetdisk](https://pan.baidu.com/) / [share](./drivers/baidu_share.md) -- [Quark/TV](https://pan.quark.cn/) -- [Thunder / X Browser](../guide/drivers/thunder.md) -- [Lanzou](https://www.lanzou.com/)、[NewLanzou](https://www.ilanzou.com) -- [Feiji Cloud](https://feijipan.com/) -- [Aliyundrive share](https://www.alipan.com/) -- [Google photo](https://photos.google.com/) -- [Mega.nz](https://mega.nz) -- [Baidu photo](https://photo.baidu.com/) -- [TeraBox](https://www.terabox.com/) -- [AList v2/v3](../guide/drivers/Alist%20V2%20V3.md) -- SMB -- [alias](../guide/advanced/alias.md) -- [115](https://115.com/) -- [Seafile](https://www.seafile.com/) -- Cloudreve -- [Trainbit](https://trainbit.com/) -- [UrlTree](../guide/drivers/UrlTree.md) -- IPFS -- [UC Clouddrive/TV](https://drive.uc.cn/) -- [Dropbox](https://www.dropbox.com) -- [Tencent weiyun](https://www.weiyun.com/) -- [vtencent](https://app.v.tencent.com/) -- [ChaoxingGroupCloud](../guide/drivers/chaoxing.md) -- [Quqi Cloud](https://quqi.com) -- [163 Music Drive](../guide/drivers/163music.md) -- [halalcloud](../guide/drivers/halalcloud.md) -- [LenovoNasShare](https://pc.lenovo.com.cn) - -## Account Password - -Click the `Terminal` button in the container list to enter the container and execute commands to set the password. - -- **Use a random password**: `./alist admin random` -- **Or set password manually**: `./alist admin set NEW_PASSWORD` - diff --git a/alist/data.yml b/alist/data.yml deleted file mode 100755 index a4ce3b2b1..000000000 --- a/alist/data.yml +++ /dev/null @@ -1,37 +0,0 @@ -name: AList -tags: - - 实用工具 - - 云存储 -title: 支持多存储的文件列表程序和私人网盘 -description: 支持多存储的文件列表程序和私人网盘 -additionalProperties: - key: alist - name: AList - tags: - - Storage - - Tool - shortDescZh: 支持多存储的文件列表程序和私人网盘 - shortDescEn: Supporting multi-storage file listing program and private cloud storage - description: - en: Supporting multi-storage file listing program and private cloud storage - ja: 複数ストレージのファイルリスト表示プログラムとプライベートクラウドストレージのサポート - ms: Menyokong program senarai fail multi-penyimpanan dan penyimpanan awan peribadi - pt-br: Suporte para programa de listagem de arquivos em múltiplos armazenamentos e armazenamento em nuvem privado - ru: Поддержка программы отображения файлов в нескольких хранилищах и частного облачного хранилища - ko: 다중 저장소 파일 목록 프로그램 및 개인 클라우드 저장소 지원 - zh-Hant: 支援多存儲檔案列出程序和私人雲端空間 - zh: 支持多存储文件列出程序和私有云存储 - type: website - crossVersionUpdate: true - limit: 0 - recommend: 65 - website: https://alist.nn.ci/ - github: https://github.com/alist-org/alist - document: https://alist.nn.ci/zh/guide/ - architectures: - - amd64 - - arm64 - - arm/v7 - - arm/v6 - - s390x - diff --git a/alist/logo.png b/alist/logo.png deleted file mode 100644 index 65f8731bc..000000000 Binary files a/alist/logo.png and /dev/null differ diff --git a/answer/1.5.1/data.yml b/answer/1.5.1/data.yml deleted file mode 100644 index cd26fd406..000000000 --- a/answer/1.5.1/data.yml +++ /dev/null @@ -1,19 +0,0 @@ -additionalProperties: - formFields: - - default: 40065 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh: 端口 - zh-Hant: 埠 - required: true - rule: paramPort - type: number diff --git a/answer/1.5.1/docker-compose.yml b/answer/1.5.1/docker-compose.yml deleted file mode 100644 index edee9bddf..000000000 --- a/answer/1.5.1/docker-compose.yml +++ /dev/null @@ -1,16 +0,0 @@ -services: - answer: - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTP}:80" - volumes: - - "./data:/data" - image: apache/answer:1.5.1 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/answer/README.md b/answer/README.md deleted file mode 100644 index 6bfd672f3..000000000 --- a/answer/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# Answer - -**Answer** 是一款问答形式的知识社区开源软件,你可以使用它快速建立你的问答社区,用于产品技术支持、客户支持、用户交流等。 - -## 版本特性: - -- **提问回答**:完整的提问和回答功能,聚焦主题,支持标准 Markdown 语法 -- **投票决策**:内容的好坏、用户的可信度,都基于声望投票决策 -- **共创协作**:使用内容版本控制,开放式内容审阅,保持内容的更新 -- **内容组织**:通过标签组织碎片化内容 -- **用户界面**:响应式设计,自定义主题,SEO 友好 \ No newline at end of file diff --git a/answer/README_en.md b/answer/README_en.md deleted file mode 100644 index 2e13669ec..000000000 --- a/answer/README_en.md +++ /dev/null @@ -1,10 +0,0 @@ -# Answer -**Answer** is an open-source Q&A knowledge community software. You can use it to quickly build your Q&A community for product technical support, customer support, user interaction, and more. - -## Version Features: -- **Questions and Answers**: Complete Q&A functionality focused on topics, supporting standard Markdown syntax. -- **Voting Decisions**: Content quality and user credibility are determined based on reputation voting. -- **Co-Creation and Collaboration**: Use content version control and open content review to keep content updated. -- **Content Organization**: Organize fragmented content through tags. -- **User Interface**: Responsive design, customizable themes, and SEO-friendly. - diff --git a/answer/data.yml b/answer/data.yml deleted file mode 100644 index 9989a0459..000000000 --- a/answer/data.yml +++ /dev/null @@ -1,30 +0,0 @@ -name: Answer -tags: - - 建站 -title: 适用于任何规模团队的问答平台软件 -description: 适用于任何规模团队的问答平台软件 -additionalProperties: - key: answer - name: Answer - tags: - - Website - shortDescZh: 适用于任何规模团队的问答平台软件 - shortDescEn: A Q&A platform software for teams at any scales - type: website - crossVersionUpdate: true - limit: 0 - website: https://answer.dev/ - github: https://github.com/answerdev/answer - document: https://answer.dev/zh-CN/docs - architectures: - - amd64 - - arm64 - description: - en: A Q&A platform software for teams at any scales - zh: 适用于任何规模团队的问答平台软件 - zh-Hant: 適用於任何規模團隊的問答平台軟件 - ja: あらゆる規模のチーム向けのQ&Aプラットフォームソフトウェア - ms: Perisian platform Q&A untuk pasukan pada sebarang skala - pt-br: Um software de plataforma de perguntas e respostas para equipes de qualquer escala - ru: Программное обеспечение платформы вопросов и ответов для команд любого масштаба - ko: 모든 규모의 팀을 위한 Q&A 플랫폼 소프트웨어 diff --git a/answer/logo.png b/answer/logo.png deleted file mode 100644 index 444ad16b8..000000000 Binary files a/answer/logo.png and /dev/null differ diff --git a/artalk/2.9/data.yml b/artalk/2.9/data.yml deleted file mode 100644 index f5877da7c..000000000 --- a/artalk/2.9/data.yml +++ /dev/null @@ -1,48 +0,0 @@ -additionalProperties: - formFields: - - default: "23366" - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number - - default: "My Blog Site" - edit: true - envKey: ATK_SITE_DEFAULT - labelEn: Default Site Name - labelZh: 站点名称 - required: false - type: text - - default: "https://example.myblog.com" - edit: true - envKey: ATK_SITE_URL - labelEn: Default Site Url - labelZh: 站点地址 - required: false - rule: paramHttp - type: text - - default: "zh-CN" - envKey: ATK_LOCALE - labelEn: Locale - labelZh: 语言 - required: true - type: select - values: - - label: 简体中文 - value: "zh-CN" - - label: 繁体中文 - value: "zh-TW" - - label: English - value: "en" - - label: 日本語 - value: "ja" - - label: 한국어 - value: "ko" - - default: Asia/Shanghai - envKey: TZ - labelEn: Time Zone - labelZh: 时区 - required: true - type: text diff --git a/artalk/2.9/docker-compose.yml b/artalk/2.9/docker-compose.yml deleted file mode 100644 index 14c920afa..000000000 --- a/artalk/2.9/docker-compose.yml +++ /dev/null @@ -1,21 +0,0 @@ -services: - artalk: - image: artalk/artalk-go:2.9 - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - volumes: - - ./data:/data - ports: - - ${PANEL_APP_PORT_HTTP}:23366 - environment: - - ATK_SITE_DEFAULT=${ATK_SITE_DEFAULT} - - ATK_SITE_URL=${ATK_SITE_URL} - - ATK_LOCALE=${ATK_LOCALE} - - TZ=${TZ} - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/artalk/README.md b/artalk/README.md deleted file mode 100644 index 8b7c354a3..000000000 --- a/artalk/README.md +++ /dev/null @@ -1,21 +0,0 @@ -# Artalk - -**Artalk** 是一款简单易用但功能丰富的评论系统,你可以开箱即用地部署并置入任何博客、网站、Web 应用。 - -## 创建管理员账号 - -- 方式一: - - 在【容器】页面找到 `artalk` 容器,点击右侧的【终端】按钮后,执行以下命令: - - ```bash - artalk admin - ``` - -- 方式二: - - 在【终端】页面执行命令创建管理员账户(注意,第一个 `artalk` 是你的容器名称): - - ```bash - docker exec -it artalk artalk admin - ``` diff --git a/artalk/data.yml b/artalk/data.yml deleted file mode 100644 index f534ad9bf..000000000 --- a/artalk/data.yml +++ /dev/null @@ -1,21 +0,0 @@ -name: Artalk -tags: - - 实用工具 -title: 一款简洁的自托管评论系统 -description: 一款简洁的自托管评论系统 -additionalProperties: - key: artalk - name: Artalk - tags: - - Tool - shortDescZh: 一款简洁的自托管评论系统 - shortDescEn: A concise self hosted comment system - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://artalk.js.org/ - github: https://github.com/ArtalkJS/Artalk - document: https://artalk.js.org/zh/guide/intro.html - architectures: - - amd64 diff --git a/artalk/logo.png b/artalk/logo.png deleted file mode 100644 index 0e15f6d0a..000000000 Binary files a/artalk/logo.png and /dev/null differ diff --git a/audiobookshelf/2.25.1/data.yml b/audiobookshelf/2.25.1/data.yml deleted file mode 100644 index 700a2edeb..000000000 --- a/audiobookshelf/2.25.1/data.yml +++ /dev/null @@ -1,19 +0,0 @@ -additionalProperties: - formFields: - - default: 40096 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh: 端口 - zh-Hant: 埠 - required: true - rule: paramPort - type: number diff --git a/audiobookshelf/2.25.1/docker-compose.yml b/audiobookshelf/2.25.1/docker-compose.yml deleted file mode 100644 index bdc86bf6e..000000000 --- a/audiobookshelf/2.25.1/docker-compose.yml +++ /dev/null @@ -1,20 +0,0 @@ -services: - audiobookshelf: - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTP}:80" - volumes: - - "./data/audiobooks:/audiobooks" - - "./data/podcasts:/podcasts" - - "./data/config:/config" - - "./data/metadata:/metadata" - image: advplyr/audiobookshelf:2.25.1 - labels: - createdBy: "Apps" - -networks: - 1panel-network: - external: true diff --git a/audiobookshelf/README.md b/audiobookshelf/README.md deleted file mode 100644 index e3149d209..000000000 --- a/audiobookshelf/README.md +++ /dev/null @@ -1,24 +0,0 @@ -# Audiobookshelf - -**Audiobookshelf** 是一个自托管的有声读物和播客服务器。 - -## 特征: - -- 完全开源,包括Android 和 iOS 应用程序 (测试版) -- 即时传输所有音频格式 -- 搜索并添加播客以下载带有自动下载的剧集 -- 具有自定义权限的多用户支持 -- 保持每个用户的进度并跨设备同步 -- 自动检测库更新,无需重新扫描 -- 使用批量上传拖放文件夹上传书籍和播客 -- 备份您的元数据+每日自动备份 -- 渐进式网络应用程序 (PWA) -- Web 应用程序和 Android 应用程序上的 Chromecast 支持 -- 从多个来源获取元数据和封面艺术 -- 章节编辑器和章节查找(使用Audnexus API) -- 将您的音频文件合并为一个 m4b -- 将元数据和封面图像嵌入到音频文件中(使用Tone) -- 基本电子书支持和电子阅读器 - - Epub、pdf、cbr、cbz - - 将电子书发送到设备(即 Kindle) -- 开放播客和有声读物的 RSS 源 \ No newline at end of file diff --git a/audiobookshelf/README_en.md b/audiobookshelf/README_en.md deleted file mode 100644 index d501406f7..000000000 --- a/audiobookshelf/README_en.md +++ /dev/null @@ -1,23 +0,0 @@ -# Audiobookshelf -**Audiobookshelf** is a self-hosted audiobook and podcast server. - -## Features: -- Fully open-source, including Android and iOS applications (beta) -- Stream all audio formats instantly -- Search and add podcasts to download episodes with auto-download -- Multi-user support with custom permissions -- Keep progress for each user and sync across devices -- Automatically detect library updates without rescanning -- Upload books and podcasts using drag-and-drop folder uploads -- Backup your metadata + daily automatic backups -- Progressive Web App (PWA) -- Chromecast support on web and Android apps -- Fetch metadata and cover art from multiple sources -- Chapter editor and chapter finder (using Audnexus API) -- Merge your audio files into a single m4b -- Embed metadata and cover images into audio files (using Tone) -- Basic eBook support and eReader - - Epub, pdf, cbr, cbz - - Send eBooks to devices (e.g., Kindle) -- Open RSS feeds for podcasts and audiobooks - diff --git a/audiobookshelf/data.yml b/audiobookshelf/data.yml deleted file mode 100644 index 522d5a92e..000000000 --- a/audiobookshelf/data.yml +++ /dev/null @@ -1,30 +0,0 @@ -name: Audiobookshelf -tags: - - 多媒体 -title: 自托管有声读物和播客服务器 -description: 自托管有声读物和播客服务器 -additionalProperties: - key: audiobookshelf - name: Audiobookshelf - tags: - - Media - shortDescZh: 自托管有声读物和播客服务器 - shortDescEn: Self-hosted audiobook and podcast server - type: website - crossVersionUpdate: true - limit: 0 - website: https://www.audiobookshelf.org/ - github: https://github.com/advplyr/audiobookshelf - document: https://www.audiobookshelf.org/docs - description: - en: Self-hosted audiobook and podcast server - zh: 自托管有声读物和播客服务器 - zh-Hant: 自託管有聲讀物和播客伺服器 - ja: 自己ホストのオーディオブックとポッドキャストサーバー - ms: Pelayan buku audio dan podcast yang dihoskan sendiri - pt-br: Servidor de audiolivros e podcasts auto-hospedado - ru: Самостоятельно размещенный сервер аудиокниг и подкастов - ko: 셀프 호스팅 오디오북 및 팟캐스트 서버 - architectures: - - amd64 - - arm64 diff --git a/audiobookshelf/logo.png b/audiobookshelf/logo.png deleted file mode 100644 index d8b52c2cd..000000000 Binary files a/audiobookshelf/logo.png and /dev/null differ diff --git a/beszel/0.11.1/data.yml b/beszel/0.11.1/data.yml deleted file mode 100644 index 07fd10317..000000000 --- a/beszel/0.11.1/data.yml +++ /dev/null @@ -1,19 +0,0 @@ -additionalProperties: - formFields: - - default: 8090 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh-Hant: 埠 - zh: 端口 diff --git a/beszel/0.11.1/docker-compose.yml b/beszel/0.11.1/docker-compose.yml deleted file mode 100644 index 8d679bd8e..000000000 --- a/beszel/0.11.1/docker-compose.yml +++ /dev/null @@ -1,17 +0,0 @@ -services: - beszel: - image: henrygd/beszel:0.11.1 - container_name: ${CONTAINER_NAME} - restart: unless-stopped - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_HTTP}:8090 - volumes: - - ./data/data:/beszel_data - - ./data/socket:/beszel_socket - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/beszel/README.md b/beszel/README.md deleted file mode 100644 index 3f587856b..000000000 --- a/beszel/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Beszel - -**Beszel** 是一个轻量级服务器监控平台,包含 Docker 统计、历史数据和警报功能。 - -它具有友好的 Web 界面、简单的配置,开箱即用。它支持自动备份、多用户、OAuth 身份验证和 API 访问。 - -## 主要功能: - -- **轻量级**:比领先的解决方案更小、资源密集程度更低。 -- **简单**:易于设置,无需公开互联网曝光。 -- **Docker 统计**:跟踪每个容器的 CPU、内存和网络使用历史记录。 -- **警报**:可配置 CPU、内存、磁盘、带宽、温度和状态的警报。 -- **多用户**:用户管理自己的系统。管理员可以跨用户共享系统。 -- **OAuth / OIDC**:支持众多 OAuth2 提供商。密码验证可禁用。 -- **自动备份**:从磁盘或 S3 兼容存储保存和恢复数据。 -- **REST API**:在您自己的脚本和应用程序中使用或更新您的数据。 diff --git a/beszel/README_en.md b/beszel/README_en.md deleted file mode 100644 index e5a54a6f4..000000000 --- a/beszel/README_en.md +++ /dev/null @@ -1,16 +0,0 @@ -# Beszel - -**Beszel** is a lightweight server monitoring platform that includes Docker statistics, historical data, and alert functions. - -It has a friendly web interface, simple configuration, and is ready to use out of the box. It supports automatic backup, multi-user, OAuth authentication, and API access. - -## Features - -- **Lightweight**: Smaller and less resource-intensive than leading solutions. -- **Simple**: Easy setup, no need for public internet exposure. -- **Docker stats**: Tracks CPU, memory, and network usage history for each container. -- **Alerts**: Configurable alerts for CPU, memory, disk, bandwidth, temperature, and status. -- **Multi-user**: Users manage their own systems. Admins can share systems across users. -- **OAuth / OIDC**: Supports many OAuth2 providers. Password auth can be disabled. -- **Automatic backups**: Save and restore data from disk or S3-compatible storage. -- **REST API**: Use or update your data in your own scripts and applications. diff --git a/beszel/data.yml b/beszel/data.yml deleted file mode 100644 index 172d3125b..000000000 --- a/beszel/data.yml +++ /dev/null @@ -1,32 +0,0 @@ -name: Beszel -tags: - - 实用工具 -title: 轻量易用的服务器监控 -description: 轻量易用的服务器监控 -additionalProperties: - key: beszel - name: Beszel - tags: - - Tool - shortDescZh: 轻量易用的服务器监控 - shortDescEn: Simple, lightweight server monitoring - description: - en: Simple, lightweight server monitoring - ja: シンプルで軽量なサーバー監視 - ms: Pemantauan pelayan yang ringkas dan ringan - pt-br: Monitoramento de servidor simples e leve - ru: Простое и легкое мониторинг сервера - ko: 간단하고 가벼운 서버 모니터링 - zh-Hant: 簡單輕量的伺服器監控 - zh: 轻量易用的服务器监控 - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://beszel.dev/ - github: https://github.com/henrygd/beszel - document: https://beszel.dev/guide/what-is-beszel - architectures: - - amd64 - - arm64 - - arm/v7 diff --git a/beszel/logo.png b/beszel/logo.png deleted file mode 100644 index 319e7ab37..000000000 Binary files a/beszel/logo.png and /dev/null differ diff --git a/bililive-go/0.7.35/data.yml b/bililive-go/0.7.35/data.yml deleted file mode 100644 index 31e9d0715..000000000 --- a/bililive-go/0.7.35/data.yml +++ /dev/null @@ -1,10 +0,0 @@ -additionalProperties: - formFields: - - default: 8080 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number \ No newline at end of file diff --git a/bililive-go/0.7.35/docker-compose.yml b/bililive-go/0.7.35/docker-compose.yml deleted file mode 100644 index f27e37f8e..000000000 --- a/bililive-go/0.7.35/docker-compose.yml +++ /dev/null @@ -1,16 +0,0 @@ -services: - bililive-go: - image: chigusa/bililive-go:v0.7.35 - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_HTTP}:8080 - volumes: - - ./data:/srv/bililive - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/bililive-go/README.md b/bililive-go/README.md deleted file mode 100644 index 2d355b17b..000000000 --- a/bililive-go/README.md +++ /dev/null @@ -1,122 +0,0 @@ -# Bililive-go - -**Bililive-go** 是一个支持多种直播平台的直播录制工具 - -## 支持网站 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
站点url支持情况cookie
Acfun直播live.acfun.cn支持
哔哩哔哩直播live.bilibili.com支持支持
战旗直播www.zhanqi.tv支持
斗鱼直播www.douyu.com支持
火猫直播www.huomao.com支持
龙珠直播longzhu.com支持
虎牙直播www.huya.com支持
CC直播cc.163.com支持
一直播www.yizhibo.com支持
OPENRECwww.openrec.tv支持
企鹅电竞egame.qq.com支持
浪liveplay.lang.live & www.lang.live支持
花椒www.huajiao.com支持
抖音直播live.douyin.com支持支持
猫耳fm.missevan.com支持
克拉克拉www.hongdoufm.com支持
YY直播www.yy.com支持
微博直播weibo.com支持
\ No newline at end of file diff --git a/bililive-go/data.yml b/bililive-go/data.yml deleted file mode 100644 index 07095acc5..000000000 --- a/bililive-go/data.yml +++ /dev/null @@ -1,24 +0,0 @@ -name: Bililive-go -tags: - - 实用工具 -title: 支持多种直播平台的直播录制工具 -description: 支持多种直播平台的直播录制工具 -additionalProperties: - key: bililive-go - name: Bililive-go - tags: - - Tool - shortDescZh: 支持多种直播平台的直播录制工具 - shortDescEn: A live recording tool that supports multiple live streaming platforms - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://github.com/hr3lxphr6j/bililive-go - github: https://github.com/hr3lxphr6j/bililive-go - document: https://github.com/hr3lxphr6j/bililive-go/wiki - architectures: - - amd64 - - arm64 - - arm/v7 - - arm/v6 \ No newline at end of file diff --git a/bililive-go/logo.png b/bililive-go/logo.png deleted file mode 100644 index c06afbe29..000000000 Binary files a/bililive-go/logo.png and /dev/null differ diff --git a/bitwarden/1.34.1-alpine/data.yml b/bitwarden/1.34.1-alpine/data.yml deleted file mode 100644 index 7e9d6694c..000000000 --- a/bitwarden/1.34.1-alpine/data.yml +++ /dev/null @@ -1,19 +0,0 @@ -additionalProperties: - formFields: - - default: 40031 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh-Hant: 埠 - zh: 端口 diff --git a/bitwarden/1.34.1-alpine/docker-compose.yml b/bitwarden/1.34.1-alpine/docker-compose.yml deleted file mode 100644 index 560f4f448..000000000 --- a/bitwarden/1.34.1-alpine/docker-compose.yml +++ /dev/null @@ -1,16 +0,0 @@ -services: - bitwarden: - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTP}:80" - volumes: - - ./data:/data - image: vaultwarden/server:1.34.1-alpine - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/bitwarden/README.md b/bitwarden/README.md deleted file mode 100644 index 5b19bbd47..000000000 --- a/bitwarden/README.md +++ /dev/null @@ -1,17 +0,0 @@ -# Bitwarden - -Bitwarden 是一款开源的密码管理器,提供强大的安全性和便捷的密码管理功能。本仓库使用的是 Bitwarden 客户端 API 的替代服务器实现,使用 Rust 编写,与官方 Bitwarden 客户端兼容,非常适合自托管部署,因为在这种情况下运行官方资源繁重的服务可能并不理想。 - -部署服务端后,用户仍然可以使用 Bitwarden 的官方 APP 和浏览器拓展使用兼容的 API 服务。 - -## 主要功能: - -- **密码保存与自动填充**:Bitwarden 可以安全地存储您的用户名和密码,以便您无需记忆它们。它还提供自动填充功能,可在登录网站时自动填充凭据。 -- **安全密码生成器**:Bitwarden 具备内置的密码生成器,可以生成复杂、随机的密码,以增加您的在线帐户的安全性。 -- **加密存储**:所有密码和敏感信息都以最高级别的加密进行存储,确保只有您能够访问和解锁您的数据。 -- **跨平台支持**:Bitwarden 提供桌面应用、移动应用和网页扩展,支持各种操作系统和浏览器,使您可以在多个设备上轻松访问您的密码。 -- **自动同步**:您的密码库会自动同步到 Bitwarden 云,这意味着无论您在哪里访问密码库,都可以获得最新的更新。 -- **团队和家庭共享**:Bitwarden 允许您创建共享密码库,以便与家庭成员或团队成员共享敏感信息,同时保持安全和隐私。 -- **安全审计**:Bitwarden 可以检查您的密码库,提供有关密码强度和重复使用的建议,以帮助您提高帐户的安全性。 -- **二次验证 (2FA) 支持**:Bitwarden 支持多种两步验证方法,增加了帐户的安全性。 -- **开源和自托管选项**:Bitwarden 是一个开源项目,您可以选择将其自托管在自己的服务器上,以增加对数据的控制和安全性。 diff --git a/bitwarden/README_en.md b/bitwarden/README_en.md deleted file mode 100644 index 215ce4129..000000000 --- a/bitwarden/README_en.md +++ /dev/null @@ -1,17 +0,0 @@ -# Bitwarden - -Bitwarden is an open-source password manager that offers robust security and convenient password management features. This repository implements an alternative server for the Bitwarden client API, written in Rust, and is fully compatible with the official Bitwarden client. It is particularly well-suited for self-hosted deployments, especially when running the resource-intensive official server is not ideal. - -After deploying the server, users can continue to use Bitwarden's official APP and browser extensions with the compatible API service. - -## Main Features - -- **Password Storage and Autofill**: Bitwarden securely stores your usernames and passwords, so you don't need to remember them. It also provides autofill capabilities to automatically input credentials when logging into websites. -- **Secure Password Generator**: Bitwarden includes a built-in password generator to create complex, random passwords, enhancing the security of your online accounts. -- **Encrypted Storage**: All passwords and sensitive information are stored with the highest level of encryption, ensuring that only you can access and unlock your data. -- **Cross-Platform Support**: Bitwarden offers desktop apps, mobile apps, and web extensions, supporting various operating systems and browsers, allowing you to access your passwords seamlessly across devices. -- **Automatic Syncing**: Your password vault is automatically synced with the Bitwarden cloud, ensuring that you have the latest updates no matter where you access it. -- **Team and Family Sharing**: Bitwarden allows you to create shared vaults for securely sharing sensitive information with family members or team members while maintaining privacy. -- **Security Audit**: Bitwarden can analyze your vault, offering recommendations on password strength and reuse to help improve account security. -- **Two-Factor Authentication (2FA) Support**: Bitwarden supports multiple two-step verification methods, adding an extra layer of security to your account. -- **Open Source and Self-Hosting Options**: As an open-source project, Bitwarden provides options for self-hosting, giving you greater control and security over your data. \ No newline at end of file diff --git a/bitwarden/data.yml b/bitwarden/data.yml deleted file mode 100644 index 498911fe7..000000000 --- a/bitwarden/data.yml +++ /dev/null @@ -1,32 +0,0 @@ -name: Bitwarden -tags: - - 实用工具 -title: 开源的密码管理服务 -description: 开源的密码管理服务 -additionalProperties: - key: bitwarden - name: Bitwarden - tags: - - Tool - shortDescZh: 开源的密码管理服务 - shortDescEn: Open source password management service - description: - en: Open source password management service - ja: オープンソースのパスワード管理サービス - ms: Perkhidmatan pengurusan kata laluan sumber terbuka - pt-br: Serviço de gerenciamento de senhas de código aberto - ru: Открытое программное обеспечение для управления паролями - ko: 오픈 소스 비밀번호 관리 서비스 - zh-Hant: 開源密碼管理服務 - zh: 开源密码管理服务 - type: website - crossVersionUpdate: true - limit: 0 - website: https://bitwarden.com/ - github: https://github.com/dani-garcia/vaultwarden - document: https://github.com/dani-garcia/vaultwarden/wiki - architectures: - - amd64 - - arm64 - - arm/v7 - - arm/v6 \ No newline at end of file diff --git a/bitwarden/logo.png b/bitwarden/logo.png deleted file mode 100644 index 7650a957f..000000000 Binary files a/bitwarden/logo.png and /dev/null differ diff --git a/bytebase/3.7.1/data.yml b/bytebase/3.7.1/data.yml deleted file mode 100644 index 89bba7ac1..000000000 --- a/bytebase/3.7.1/data.yml +++ /dev/null @@ -1,19 +0,0 @@ -additionalProperties: - formFields: - - default: 8080 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh: 端口 - zh-Hant: 埠 - required: true - rule: paramPort - type: number diff --git a/bytebase/3.7.1/docker-compose.yml b/bytebase/3.7.1/docker-compose.yml deleted file mode 100644 index a0fc28586..000000000 --- a/bytebase/3.7.1/docker-compose.yml +++ /dev/null @@ -1,17 +0,0 @@ -services: - bytebase: - image: bytebase/bytebase:3.7.1 - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_HTTP}:8080 - volumes: - - ./data:/var/opt/bytebase - init: true - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/bytebase/README.md b/bytebase/README.md deleted file mode 100644 index d53dc58cf..000000000 --- a/bytebase/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# Bytebase - -**Bytebase** 是面向开发人员和 DBA 的数据库 CI/CD 解决方案。它是CNCF Landscape和Platform Engineering包含的唯一数据库 CI/CD 项目。 - -## Bytebase 系列由以下工具组成: - -- **Bytebase 控制台**:供开发人员和 DBA 管理数据库开发生命周期的基于 Web 的 GUI。 -- **Bytebase API**:提供 gRPC 和 RESTful API 来操作 Bytebase 的各个方面。 -- **Bytebase CLI**:帮助开发人员将数据库更改集成到现有 CI/CD 工作流中的 CLI。 -- **Bytebase GitHub App和SQL Review GitHub Action**:GitHub App 和 GitHub Action 用于检测 SQL 反模式并在 Pull Request 期间强制执行一致的 SQL 样式指南。 -- **Terraform Bytebase 提供程序**:Terraform 提供程序使团队能够通过 Terraform 管理 Bytebase 资源。典型的设置包括团队使用 Terraform 从云供应商配置数据库实例,然后使用 Bytebase 提供程序准备这些实例以供应用程序使用。 \ No newline at end of file diff --git a/bytebase/README_en.md b/bytebase/README_en.md deleted file mode 100644 index 55373d5ce..000000000 --- a/bytebase/README_en.md +++ /dev/null @@ -1,10 +0,0 @@ -# Bytebase -**Bytebase** is a database CI/CD solution for developers and DBAs. It is the only database CI/CD project included in the CNCF Landscape and Platform Engineering. - -## The Bytebase Suite Consists of the Following Tools: -- **Bytebase Console**: A web-based GUI for developers and DBAs to manage the database development lifecycle. -- **Bytebase API**: Provides gRPC and RESTful APIs to operate various aspects of Bytebase. -- **Bytebase CLI**: A CLI tool to help developers integrate database changes into existing CI/CD workflows. -- **Bytebase GitHub App and SQL Review GitHub Action**: A GitHub App and GitHub Action to detect SQL anti-patterns and enforce consistent SQL style guidelines during pull requests. -- **Terraform Bytebase Provider**: A Terraform provider that enables teams to manage Bytebase resources via Terraform. A typical setup includes teams using Terraform to configure database instances from cloud providers and then preparing these instances for application use with the Bytebase provider. - diff --git a/bytebase/data.yml b/bytebase/data.yml deleted file mode 100644 index 24ee10d41..000000000 --- a/bytebase/data.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: Bytebase -tags: - - DevOps -title: 开源数据库 DevOps 解决方案 -description: 开源数据库 DevOps 解决方案 -additionalProperties: - key: bytebase - name: Bytebase - tags: - - DevOps - shortDescZh: 开源数据库 DevOps 解决方案 - shortDescEn: Open-Source Database DevOps Solution - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://www.bytebase.com - github: https://github.com/bytebase/bytebase - document: https://www.bytebase.com/docs - description: - en: Open-Source Database DevOps Solution - zh: 开源数据库 DevOps 解决方案 - zh-Hant: 開源數據庫 DevOps 解決方案 - ja: オープンソースのデータベース DevOps ソリューション - ms: Penyelesaian DevOps Pangkalan Data Sumber Terbuka - pt-br: Solução DevOps de Banco de Dados de Código Aberto - ru: Решение DevOps для баз данных с открытым исходным кодом - ko: 오픈 소스 데이터베이스 DevOps 솔루션 - architectures: - - amd64 - - arm64 \ No newline at end of file diff --git a/bytebase/logo.png b/bytebase/logo.png deleted file mode 100644 index 3fd98e6f6..000000000 Binary files a/bytebase/logo.png and /dev/null differ diff --git a/calibre-web/0.6.24/data.yml b/calibre-web/0.6.24/data.yml deleted file mode 100644 index a9fe73159..000000000 --- a/calibre-web/0.6.24/data.yml +++ /dev/null @@ -1,35 +0,0 @@ -additionalProperties: - formFields: - - default: 40109 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: HTTP Port - labelZh: HTTP端口 - label: - en: HTTP Port - ja: HTTPポート - ms: Port HTTP - pt-br: Porta HTTP - ru: HTTP-порт - ko: HTTP 포트 - zh: HTTP端口 - zh-Hant: HTTP連接埠 - required: true - rule: paramPort - type: number - - default: Asia/Shanghai - edit: true - envKey: TIME_ZONE - labelEn: Time zone - labelZh: 时区 - label: - en: Time zone - ja: タイムゾーン - ms: Zon masa - pt-br: Fuso horário - ru: Часовой пояс - ko: 시간대 - zh: 时区 - zh-Hant: 時區 - required: true - type: text \ No newline at end of file diff --git a/calibre-web/0.6.24/docker-compose.yml b/calibre-web/0.6.24/docker-compose.yml deleted file mode 100644 index db4174d11..000000000 --- a/calibre-web/0.6.24/docker-compose.yml +++ /dev/null @@ -1,23 +0,0 @@ -services: - calibre-web: - image: linuxserver/calibre-web:0.6.24 - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTP}:8083" - volumes: - - "./data/config:/config" - - "./data/books:/books" - environment: - - PUID=1000 - - PGID=1000 - - TZ=${TIME_ZONE} - - DOCKER_MODS=linuxserver/mods:universal-calibre - - OAUTHLIB_RELAX_TOKEN_SCOPE=1 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/calibre-web/README.md b/calibre-web/README.md deleted file mode 100644 index f3f027c71..000000000 --- a/calibre-web/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# 默认账户密码 - -``` -username:admin -password:admin123 -``` - -# Calibre-Web - -**Calibre-Web** 是一款网络应用程序,提供干净直观的界面,用于使用有效的Calibre数据库浏览、阅读和下载电子书。 - -## 特性: - -- 现代且响应迅速的 Bootstrap 3 HTML5 界面 -- 完整的图形设置 -- 全面的用户管理以及细粒度的每用户权限 -- 管理界面 -- 多语言用户界面支持20多种语言(supported languages) -- 电子书阅读器应用程序的 OPDS 源 -- 高级搜索和过滤选项 -- 定制书籍收藏(书架)创建 -- 电子书元数据编辑和删除支持 -- 从各种来源下载元数据(可通过插件扩展) -- 通过 Calibre 二进制文件转换电子书 -- 对登录用户的电子书下载限制 -- 公共用户注册支持 -- 只需单击一下即可将电子书发送到电子阅读器 -- 将 Kobo 设备与您的 Calibre 库同步 -- 浏览器内电子书阅读支持多种格式 -- 上传各种格式的新书,包括音频格式 -- Calibre 自定义列支持 -- 根据每个用户的类别和自定义列内容隐藏内容 -- 自我更新能力 -- “Magic Link”登录可轻松访问电子阅读器 -- LDAP、Google/GitHub OAuth 和代理身份验证支持 \ No newline at end of file diff --git a/calibre-web/README_en.md b/calibre-web/README_en.md deleted file mode 100644 index 225c01c33..000000000 --- a/calibre-web/README_en.md +++ /dev/null @@ -1,33 +0,0 @@ -# Default Account and Password -``` -username: admin -password: admin123 -``` - -# Calibre-Web -**Calibre-Web** is a web application that provides a clean and intuitive interface for browsing, reading, and downloading eBooks using an existing Calibre database. - -## Features: -- Modern and responsive Bootstrap 3 HTML5 interface -- Full graphical setup -- Comprehensive user management with fine-grained per-user permissions -- Administrative interface -- Multi-language user interface supporting over 20 languages -- OPDS feed for eBook reader applications -- Advanced search and filtering options -- Custom book collection (bookshelf) creation -- eBook metadata editing and deletion support -- Download metadata from various sources (extensible via plugins) -- Convert eBooks using Calibre binaries -- eBook download restrictions for logged-in users -- Public user registration support -- One-click eBook sending to eReaders -- Sync Kobo devices with your Calibre library -- In-browser eBook reading supporting multiple formats -- Upload new books in various formats, including audio formats -- Calibre custom column support -- Hide content based on categories and custom column content per user -- Self-update capability -- "Magic Link" login for easy eReader access -- LDAP, Google/GitHub OAuth, and proxy authentication support - diff --git a/calibre-web/data.yml b/calibre-web/data.yml deleted file mode 100644 index f49aadc07..000000000 --- a/calibre-web/data.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: Calibre-Web -tags: - - 多媒体 -title: 用于浏览、阅读和下载 Calibre 数据库中存储的电子书的 Web 应用程序 -description: 用于浏览、阅读和下载 Calibre 数据库中存储的电子书的 Web 应用程序 -additionalProperties: - key: calibre-web - name: Calibre-Web - tags: - - Media - shortDescZh: 用于浏览、阅读和下载 Calibre 数据库中存储的电子书的 Web 应用程序 - shortDescEn: Web app for browsing, reading and downloading eBooks stored in a Calibre database - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://calibre-ebook.com - github: https://github.com/janeczku/calibre-web - document: https://calibre-ebook.com/help - description: - en: Web app for browsing, reading and downloading eBooks stored in a Calibre database - zh: 用于浏览、阅读和下载 Calibre 数据库中存储的电子书的 Web 应用程序 - zh-Hant: 用於瀏覽、閱讀和下載 Calibre 數據庫中存儲的電子書的 Web 應用程序 - ja: Calibre データベースに保存されている電子書籍を閲覧、読書、ダウンロードするための Web アプリ - ms: Aplikasi Web untuk melayari, membaca dan memuat turun eBook yang disimpan dalam pangkalan data Calibre - pt-br: Aplicativo Web para navegar, ler e baixar eBooks armazenados em um banco de dados Calibre - ru: Веб-приложение для просмотра, чтения и загрузки электронных книг, хранящихся в базе данных Calibre - ko: Calibre 데이터베이스에 저장된 전자책을 탐색, 읽기 및 다운로드하기 위한 웹 애플리케이션 - architectures: - - amd64 - - arm64 \ No newline at end of file diff --git a/calibre-web/logo.png b/calibre-web/logo.png deleted file mode 100644 index d9e98cc13..000000000 Binary files a/calibre-web/logo.png and /dev/null differ diff --git a/casdoor/1.943.0/conf/app.conf b/casdoor/1.943.0/conf/app.conf deleted file mode 100644 index bc4ab524e..000000000 --- a/casdoor/1.943.0/conf/app.conf +++ /dev/null @@ -1,34 +0,0 @@ -appname = casdoor -httpport = 8000 -runmode = dev -copyrequestbody = true -driverName = mysql -dataSourceName = root:123456@tcp(localhost:3306)/ -dbName = casdoor -tableNamePrefix = -showSql = false -redisEndpoint = -defaultStorageProvider = -isCloudIntranet = false -authState = "casdoor" -socks5Proxy = "127.0.0.1:10808" -verificationCodeTimeout = 10 -initScore = 0 -logPostOnly = true -isUsernameLowered = false -origin = -originFrontend = -staticBaseUrl = "https://cdn.casbin.org" -isDemoMode = false -batchSize = 100 -enableErrorMask = false -enableGzip = true -inactiveTimeoutMinutes = -ldapServerPort = 389 -radiusServerPort = 1812 -radiusSecret = "secret" -quota = {"organization": -1, "user": -1, "application": -1, "provider": -1} -logConfig = {"filename": "logs/casdoor.log", "maxdays":99999, "perm":"0770"} -initDataNewOnly = false -initDataFile = "./init_data.json" -frontendBaseDir = "../cc_0" \ No newline at end of file diff --git a/casdoor/1.943.0/data.yml b/casdoor/1.943.0/data.yml deleted file mode 100644 index 83eb1efcc..000000000 --- a/casdoor/1.943.0/data.yml +++ /dev/null @@ -1,95 +0,0 @@ -additionalProperties: - formFields: - - default: 8000 - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh: 端口 - zh-Hant: 埠 - - child: - default: "" - envKey: PANEL_DB_HOST - required: true - type: service - default: mysql - envKey: PANEL_DB_TYPE - labelEn: Database Service - labelZh: 数据库服务 - label: - en: Database Service - ja: データベース サービス - ms: Perkhidmatan Pangkalan Data - pt-br: Serviço de Banco de Dados - ru: Сервис базы данных - ko: 데이터베이스 서비스 - zh: 数据库服务 - zh-Hant: 數據庫服務 - required: true - type: apps - values: - - label: MySQL - value: mysql - - label: MariaDB - value: mariadb - - label: PostgreSQL - value: postgres - - default: casdoor - envKey: PANEL_DB_NAME - labelEn: Database - labelZh: 数据库名 - label: - en: Database - ja: データベース - ms: Pangkalan Data - pt-br: Banco de Dados - ru: База данных - ko: 데이터베이스 - zh: 数据库名 - zh-Hant: 數據庫名 - random: true - required: true - rule: paramCommon - type: text - - default: casdoor - envKey: PANEL_DB_USER - labelEn: User - labelZh: 数据库用户 - label: - en: User - ja: ユーザー - ms: Pengguna - pt-br: Usuário - ru: Пользователь - ko: 사용자 - zh: 数据库用户 - zh-Hant: 數據庫用戶 - random: true - required: true - rule: paramCommon - type: text - - default: casdoor - envKey: PANEL_DB_USER_PASSWORD - labelEn: Password - labelZh: 数据库用户密码 - label: - en: Password - ja: パスワード - ms: Kata laluan - pt-br: Senha - ru: Пароль - ko: 비밀번호 - zh: 数据库用户密码 - zh-Hant: 數據庫用戶密碼 - random: true - required: true - type: password diff --git a/casdoor/1.943.0/docker-compose.yml b/casdoor/1.943.0/docker-compose.yml deleted file mode 100644 index fbb5b676d..000000000 --- a/casdoor/1.943.0/docker-compose.yml +++ /dev/null @@ -1,21 +0,0 @@ -services: - casdoor: - image: casbin/casdoor:v1.943.0 - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_HTTP}:8000 - environment: - RUNNING_IN_DOCKER: "true" - driverName: ${CASDOOR_DRIVER_NAME} - dataSourceName: ${CASDOOR_DATASOURCE_NAME} - dbName: ${PANEL_DB_NAME} - volumes: - - ./conf:/conf - labels: - createdBy: Apps -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/casdoor/1.943.0/scripts/init.sh b/casdoor/1.943.0/scripts/init.sh deleted file mode 100644 index c40abb0ac..000000000 --- a/casdoor/1.943.0/scripts/init.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/bash - -[ -f ./.env ] && source ./.env - -# Default configuration -CASDOOR_DRIVER_NAME=${PANEL_DB_TYPE} -CASDOOR_DATASOURCE_NAME="${PANEL_DB_USER}:${PANEL_DB_USER_PASSWORD}@tcp(${PANEL_DB_HOST}:${PANEL_DB_PORT})/" - -# Reset mariadb driver -if [ "$PANEL_DB_TYPE" = "mariadb" ]; then - CASDOOR_DRIVER_NAME="mysql" -fi - -# Reset postgresql datasource -if [ "$PANEL_DB_TYPE" = "postgres" ]; then - CASDOOR_DATASOURCE_NAME="user=${PANEL_DB_USER} password=${PANEL_DB_USER_PASSWORD} host=${PANEL_DB_HOST} port=${PANEL_DB_PORT} dbname=${PANEL_DB_NAME} sslmode=disable" -fi - -{ - # Retain the original environment variables - grep -vE '^(CASDOOR_DRIVER_NAME|CASDOOR_DATASOURCE_NAME)' ./.env 2>/dev/null - - # Add CASDOOR_xx environment variables - echo "CASDOOR_DRIVER_NAME=${CASDOOR_DRIVER_NAME}" - echo "CASDOOR_DATASOURCE_NAME=\"${CASDOOR_DATASOURCE_NAME}\"" - echo "" -} > ./.env.tmp && mv ./.env.tmp ./.env - diff --git a/casdoor/README.md b/casdoor/README.md deleted file mode 100644 index e8695b3c6..000000000 --- a/casdoor/README.md +++ /dev/null @@ -1,22 +0,0 @@ -# 默认账户密码 - -``` -username:admin -password:123 -``` - -# Casdoor - -A UI-first Identity Access Management (IAM) / Single-Sign-On (SSO) platform with web UI supporting OAuth 2.0, OIDC, SAML, CAS, LDAP, SCIM, WebAuthn, TOTP, MFA, RADIUS, Google Workspace, Active Directory and Kerberos - -## Casdoor 的特性 - -- 遵循前后端分离架构,采用 Golang 进行开发。它支持高同步,提供基于网页的用户界面管理,并支持10多种语言的本地化。 -- 支持第三方应用登录,如 GitHub、谷歌、QQ、微信等,并支持通过插件扩展第三方登录。 -- 支持基于 Cassbin 的授权管理。 它支持 ACL、RBAC、ABAC 和 RESTful鉴权管理模式。 -- 提供了手机验证码、电子邮件验证码以及重置密码的功能。 -- 支持日志的审计和记录。 -- 可以使用阿里云、腾讯云、七牛云提供的图片CDN云存储功能。 -- 允许自定义注册、登录以及找回密码页面。 -- 通过数据库同步支持与现有系统的集成,从而能够顺利过渡到 Casdoor。 -- 支持主流数据库: MySQL、PostgreSQL、SQL Server 等, 并支持扩展插件以支持新的数据库。 diff --git a/casdoor/README_en.md b/casdoor/README_en.md deleted file mode 100644 index a244640f1..000000000 --- a/casdoor/README_en.md +++ /dev/null @@ -1,19 +0,0 @@ -# Default Account and Password -``` -username: admin -password: 123 -``` - -# Casdoor -A UI-first Identity Access Management (IAM) / Single-Sign-On (SSO) platform with a web UI supporting OAuth 2.0, OIDC, SAML, CAS, LDAP, SCIM, WebAuthn, TOTP, MFA, RADIUS, Google Workspace, Active Directory, and Kerberos. - -## Features of Casdoor -- Follows a front-end and back-end separation architecture, developed using Golang. It supports high concurrency, provides a web-based user interface for management, and supports localization in over 10 languages. -- Supports third-party application logins, such as GitHub, Google, QQ, WeChat, and more, with plugin extensions for additional third-party logins. -- Offers authorization management based on Casbin. It supports ACL, RBAC, ABAC, and RESTful authorization management models. -- Provides features like mobile verification codes, email verification codes, and password reset functionality. -- Supports audit logging and record-keeping. -- Allows the use of image CDN cloud storage services provided by Alibaba Cloud, Tencent Cloud, and Qiniu Cloud. -- Enables customization of registration, login, and password recovery pages. -- Supports integration with existing systems through database synchronization, enabling a smooth transition to Casdoor. -- Supports mainstream databases such as MySQL, PostgreSQL, SQL Server, and more, with plugin extensions for new database support. \ No newline at end of file diff --git a/casdoor/data.yml b/casdoor/data.yml deleted file mode 100644 index 29396c1a1..000000000 --- a/casdoor/data.yml +++ /dev/null @@ -1,30 +0,0 @@ -name: Casdoor -tags: - - 安全 -title: 支持 OAuth 2.0、OIDC、SAML 和 CAS 的 Web UI 优先的 IAM/SSO 平台 -description: 支持 OAuth 2.0、OIDC、SAML 和 CAS 的 Web UI 优先的 IAM/SSO 平台 -additionalProperties: - key: casdoor - name: Casdoor - tags: - - Security - shortDescZh: 支持 OAuth 2.0、OIDC、SAML 和 CAS 的 Web UI 优先的 IAM/SSO 平台 - shortDescEn: An Identity and Access Management (IAM) / Single-Sign-On (SSO) platform with web UI supporting OAuth 2.0, OIDC, SAML and CAS - type: website - crossVersionUpdate: true - limit: 0 - website: https://casdoor.org/ - github: https://github.com/casdoor/casdoor - document: https://casdoor.org/docs/overview - description: - en: An Identity and Access Management (IAM) / Single-Sign-On (SSO) platform with web UI supporting OAuth 2.0, OIDC, SAML and CAS - zh: 支持 OAuth 2.0、OIDC、SAML 和 CAS 的 Web UI 优先的 IAM/SSO 平台 - zh-Hant: 支援 OAuth 2.0、OIDC、SAML 和 CAS 的 Web UI 優先的 IAM/SSO 平台 - ja: OAuth 2.0、OIDC、SAML、および CAS をサポートする Web UI 優先の IAM/SSO プラットフォーム - ms: Platform IAM/SSO dengan UI web yang menyokong OAuth 2.0, OIDC, SAML dan CAS - pt-br: Uma plataforma IAM/SSO com interface web que suporta OAuth 2.0, OIDC, SAML e CAS - ru: Платформа управления идентификацией и доступом (IAM) / единого входа (SSO) с веб-интерфейсом, поддерживающая OAuth 2.0, OIDC, SAML и CAS - ko: OAuth 2.0, OIDC, SAML 및 CAS를 지원하는 웹 UI 중심의 IAM/SSO 플랫폼 - architectures: - - amd64 - - arm64 \ No newline at end of file diff --git a/casdoor/logo.png b/casdoor/logo.png deleted file mode 100644 index 693a35bbb..000000000 Binary files a/casdoor/logo.png and /dev/null differ diff --git a/certimate/0.3.19/data.yml b/certimate/0.3.19/data.yml deleted file mode 100644 index 72d62e990..000000000 --- a/certimate/0.3.19/data.yml +++ /dev/null @@ -1,33 +0,0 @@ -additionalProperties: - formFields: - - default: 8090 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: WebUI Port - labelZh: 网页端口 - required: true - rule: paramPort - type: number - - default: "" - edit: true - envKey: PANEL_HTTP_PROXY - labelEn: HTTP_PROXY (e.g., http://:) - labelZh: HTTP_PROXY (例如:http://:) - required: false - rule: paramExtUrl - type: text - - default: "" - edit: true - envKey: PANEL_HTTPS_PROXY - labelEn: HTTPS_PROXY (e.g., http://:) - labelZh: HTTPS_PROXY (例如:http://:) - required: false - rule: paramExtUrl - type: text - - default: "" - edit: true - envKey: PANEL_NO_PROXY - labelEn: NO_PROXY (e.g., 172.18.0.0/16,127.0.0.1,localhost) - labelZh: NO_PROXY (例如:172.18.0.0/16,127.0.0.1,localhost) - required: false - type: text \ No newline at end of file diff --git a/certimate/0.3.19/docker-compose.yml b/certimate/0.3.19/docker-compose.yml deleted file mode 100644 index 093553f34..000000000 --- a/certimate/0.3.19/docker-compose.yml +++ /dev/null @@ -1,22 +0,0 @@ -networks: - 1panel-network: - external: true -services: - certimate: - image: certimate/certimate:v0.3.19 - container_name: ${CONTAINER_NAME} - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_HTTP}:8090 - environment: - - http_proxy=${PANEL_HTTP_PROXY} - - https_proxy=${PANEL_HTTPS_PROXY} - - NO_PROXY=${PANEL_NO_PROXY} - volumes: - - /etc/localtime:/etc/localtime:ro - - /etc/timezone:/etc/timezone:ro - - ./data:/app/pb_data - restart: unless-stopped - labels: - createdBy: "Apps" diff --git a/certimate/README.md b/certimate/README.md deleted file mode 100644 index 7628447a7..000000000 --- a/certimate/README.md +++ /dev/null @@ -1,30 +0,0 @@ -## 初始的管理员账号及密码 - -- 账号:`admin@certimate.fun` -- 密码:`1234567890` - -## 🚩 项目简介 - -做个人产品或者在中小企业里负责运维的同学,会遇到要管理多个域名的情况,需要给域名申请证书。但是手动申请证书有以下缺点: - -- 😱 麻烦:申请证书并部署到服务的流程虽不复杂,但也挺麻烦的,犹其是你有多个域名需要维护的时候。 -- 😭 易忘:另外当前免费证书的有效期只有 90 天,这就要求你定期的操作,增加了工作量的同时,你也很容易忘掉续期,从而导致网站访问不了。 - -Certimate 就是为了解决上述问题而产生的,它具有以下优势: - -- **本地部署**:一键安装,只需要下载二进制文件,然后直接运行即可。同时也支持 Docker 部署、源代码部署等方式。​ -- **数据安全**:由于是私有部署,所有数据均存储在自己的服务器上,不会经过第三方,确保数据的隐私和安全。​ -- **操作简单**:简单配置即可轻松申请 SSL 证书并部署到指定的目标上,在证书即将过期前自动续期,从申请证书到使用证书完全自动化,无需人工操作。​ - -Certimate 旨在为用户提供一个安全、简便的 SSL 证书管理解决方案。 - -## 💡 功能特性 - -- 灵活的工作流编排方式,证书从申请到部署完全自动化; -- 支持单域名、多域名、泛域名证书,可选 RSA、ECC 签名算法; -- 支持 PEM、PFX、JKS 等多种格式输出证书; -- 支持 20+ 域名托管商(如阿里云、腾讯云、Cloudflare 等,[点此查看完整清单](https://docs.certimate.me/docs/reference/providers#supported-dns-providers)); -- 支持 70+ 部署目标(如 Kubernetes、CDN、WAF、负载均衡等,[点此查看完整清单](https://docs.certimate.me/docs/reference/providers#supported-host-providers)); -- 支持邮件、钉钉、飞书、企业微信、Webhook 等多种通知渠道; -- 支持 Let's Encrypt、ZeroSSL、Google Trust Services 等多种 ACME 证书颁发机构; -- 更多特性等待探索。 \ No newline at end of file diff --git a/certimate/data.yml b/certimate/data.yml deleted file mode 100644 index 767b0f721..000000000 --- a/certimate/data.yml +++ /dev/null @@ -1,24 +0,0 @@ -name: Certimate -tags: - - 实用工具 - - DevOps -title: 一个安全、简便的 SSL 证书管理解决方案 -description: 一个安全、简便的 SSL 证书管理解决方案 -additionalProperties: - key: certimate - name: Certimate - tags: - - Tool - - DevOps - shortDescZh: 一个安全、简便的 SSL 证书管理解决方案 - shortDescEn: Certimate aims to provide users with a secure and user-friendly SSL certificate management solution. - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://docs.certimate.me - github: https://github.com/usual2970/certimate - document: https://docs.certimate.me - architectures: - - amd64 - - arm64 diff --git a/certimate/logo.png b/certimate/logo.png deleted file mode 100644 index 771a6abb9..000000000 Binary files a/certimate/logo.png and /dev/null differ diff --git a/changedetectionio/0.50.4/data.yml b/changedetectionio/0.50.4/data.yml deleted file mode 100644 index f40ec5eb9..000000000 --- a/changedetectionio/0.50.4/data.yml +++ /dev/null @@ -1,19 +0,0 @@ -additionalProperties: - formFields: - - default: 40097 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh: 端口 - zh-Hant: 埠 - required: true - rule: paramPort - type: number diff --git a/changedetectionio/0.50.4/docker-compose.yml b/changedetectionio/0.50.4/docker-compose.yml deleted file mode 100644 index 35dc50e51..000000000 --- a/changedetectionio/0.50.4/docker-compose.yml +++ /dev/null @@ -1,17 +0,0 @@ -services: - changedetection: - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTP}:5000" - volumes: - - "./data:/datastore" - image: dgtlmoon/changedetection.io:0.50.4 - labels: - createdBy: "Apps" - -networks: - 1panel-network: - external: true diff --git a/changedetectionio/README.md b/changedetectionio/README.md deleted file mode 100644 index b01958911..000000000 --- a/changedetectionio/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Changedetection.io - -**Changedetection.io** 是一款最好、最简单的免费开源网站变更检测、网站观察、补货监控和通知服务。 - -## 主要特征: - -- 许多触发过滤器,例如“在文本上触发”、“通过选择器删除文本”、“忽略文本”、“提取文本”,也使用正则表达式! -- 使用 xPath(1.0) 和 CSS 选择器定位元素,使用 JSONPath 或 jq 轻松监控复杂的 JSON -- 在快速非 JS 和基于 Chrome JS 的“获取器”之间切换 -- 跟踪 PDF 文件中的更改(监控 PDF 中的文本更改,还监控 PDF 文件大小和校验和) -- 轻松指定检查站点的频率 -- 在提取文本之前执行 JS(适合登录,请参阅 UI 中的示例!) -- 覆盖请求标头、指定POST或GET等方法 -- 使用“视觉选择器”帮助定位特定元素 -- 每个手表可配置代理 -- 在网页中检测到更改时发送带有通知的屏幕截图 \ No newline at end of file diff --git a/changedetectionio/README_en.md b/changedetectionio/README_en.md deleted file mode 100644 index 6b4f8bd35..000000000 --- a/changedetectionio/README_en.md +++ /dev/null @@ -1,14 +0,0 @@ -# Changedetection.io -**Changedetection.io** is the best and simplest free open-source website change detection, website monitoring, restock monitoring, and notification service. - -## Key Features: -- Numerous trigger filters, such as "trigger on text," "remove text by selector," "ignore text," "extract text," and more, using regular expressions! -- Locate elements using xPath (1.0) and CSS selectors; easily monitor complex JSON using JSONPath or jq -- Switch between fast non-JS and Chrome JS-based "fetchers" -- Track changes in PDF files (monitor text changes in PDFs, as well as file size and checksum changes) -- Easily specify how often to check sites -- Execute JS before extracting text (great for login scenarios; see examples in the UI!) -- Override request headers, specify methods like POST or GET, etc. -- Use the "visual selector" to help locate specific elements -- Per-watch configurable proxy -- Send notifications with screenshots when changes are detected on a webpage \ No newline at end of file diff --git a/changedetectionio/data.yml b/changedetectionio/data.yml deleted file mode 100644 index 583f79d76..000000000 --- a/changedetectionio/data.yml +++ /dev/null @@ -1,33 +0,0 @@ -name: Changedetection.io -tags: - - 实用工具 -title: 免费开源网站变更检测、网站观察、补货监控和通知服务 -description: 免费开源网站变更检测、网站观察、补货监控和通知服务 -additionalProperties: - key: changedetectionio - name: Changedetection.io - tags: - - Tool - shortDescZh: 免费开源网站变更检测、网站观察、补货监控和通知服务 - shortDescEn: free open source website change detection, website watcher, restock monitor and notification service - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://changedetection.io/ - github: https://github.com/dgtlmoon/changedetection.io - document: https://github.com/dgtlmoon/changedetection.io/wiki - description: - en: free open source website change detection, website watcher, restock monitor and notification service - zh: 免费开源网站变更检测、网站观察、补货监控和通知服务 - zh-Hant: 免費開源網站變更檢測、網站觀察、補貨監控和通知服務 - ja: 無料のオープンソースのウェブサイト変更検出、ウェブサイトウォッチャー、在庫補充モニターおよび通知サービス - ms: Perkhidmatan pengesanan perubahan laman web sumber terbuka percuma, pemerhati laman web, pemantau pengisian semula dan pemberitahuan - pt-br: Serviço gratuito e de código aberto para detecção de mudanças em sites, monitoramento de sites, monitor de reposição e notificações - ru: Бесплатный сервис с открытым исходным кодом для отслеживания изменений на веб-сайтах, наблюдения за сайтами, мониторинга пополнения запасов и уведомлений - ko: 무료 오픈 소스 웹사이트 변경 감지, 웹사이트 감시, 재입고 모니터링 및 알림 서비스 - architectures: - - amd64 - - arm64 - - arm/v6 - - arm/v7 diff --git a/changedetectionio/logo.png b/changedetectionio/logo.png deleted file mode 100644 index e6472eb91..000000000 Binary files a/changedetectionio/logo.png and /dev/null differ diff --git a/chatgpt-next-web/2.16.0/data.yml b/chatgpt-next-web/2.16.0/data.yml deleted file mode 100644 index c348c2054..000000000 --- a/chatgpt-next-web/2.16.0/data.yml +++ /dev/null @@ -1,47 +0,0 @@ -additionalProperties: - formFields: - - default: 40042 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number - - default: "sk-xxx" - edit: true - envKey: API_KEY - labelEn: OPENAI API KEY - labelZh: OPENAI API KEY - required: true - type: text - - default: "chatgptnextweb" - edit: true - envKey: SECRET_KEY - labelEn: Access rights key, optional (recommended) - labelZh: 访问权限密钥,可选(强烈建议填写) - random: true - required: false - rule: paramComplexity - type: password - - default: "" - edit: true - envKey: PROXY - labelEn: Proxy (example:http://127.0.0.1:7890 user password) - labelZh: 代理地址(例子:http://127.0.0.1:7890 user password) - required: false - type: text - - default: "https://api.openai.com" - edit: true - envKey: API_BASE_URL - labelEn: API interface address - labelZh: API接口地址 - required: true - type: text - - default: "" - edit: true - envKey: WHITE_WEBDAV_ENDPOINTS - labelEn: White list of webdev endpoints - labelZh: webdev 白名单 - required: false - type: text \ No newline at end of file diff --git a/chatgpt-next-web/2.16.0/docker-compose.yml b/chatgpt-next-web/2.16.0/docker-compose.yml deleted file mode 100644 index 040997055..000000000 --- a/chatgpt-next-web/2.16.0/docker-compose.yml +++ /dev/null @@ -1,21 +0,0 @@ -services: - chatgpt-next-web: - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTP}:3000" - environment: - - "OPENAI_API_KEY=${API_KEY}" - - "CODE=${SECRET_KEY}" - - "PROXY_URL=${PROXY}" - - "BASE_URL=${API_BASE_URL}" - - "WHITE_WEBDAV_ENDPOINTS=${WHITE_WEBDAV_ENDPOINTS}" - image: yidadaa/chatgpt-next-web:v2.16.0 - labels: - createdBy: "Apps" - -networks: - 1panel-network: - external: true diff --git a/chatgpt-next-web/2.16.0/scripts/upgrade.sh b/chatgpt-next-web/2.16.0/scripts/upgrade.sh deleted file mode 100644 index 170e0c4ba..000000000 --- a/chatgpt-next-web/2.16.0/scripts/upgrade.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -if [[ -f ./.env ]]; then - if grep -q "WHITE_WEBDEV_ENDPOINTS" ./.env; then - echo "WHITE_WEBDEV_ENDPOINTS 已存在" - else - echo 'WHITE_WEBDEV_ENDPOINTS=""' >> ./.env - fi -else - echo ".env 文件不存在" -fi \ No newline at end of file diff --git a/chatgpt-next-web/README.md b/chatgpt-next-web/README.md deleted file mode 100644 index da9b9059f..000000000 --- a/chatgpt-next-web/README.md +++ /dev/null @@ -1,12 +0,0 @@ -# ChatGPT-Next-Web - -**ChatGPT-Next-Web** 一键免费部署你的跨平台私人 ChatGPT 应用, 支持 GPT3, GPT4 & Gemini Pro 模型。 - -## 特征: - -- 与自行部署的 LLM 完全兼容; -- 隐私第一,所有数据都存储在浏览器本地; -- Markdown 支持:LaTex、mermaid、代码高亮等; -- 响应式设计、深色模式和 PWA; -- 首屏加载速度快(~100kb),支持流式响应; -- 自动压缩聊天历史记录以支持长时间对话,同时保存您的令牌。 \ No newline at end of file diff --git a/chatgpt-next-web/data.yml b/chatgpt-next-web/data.yml deleted file mode 100644 index 191877a71..000000000 --- a/chatgpt-next-web/data.yml +++ /dev/null @@ -1,23 +0,0 @@ -name: ChatGPT-Next-Web -tags: - - AI / 大模型 -title: 一键拥有你自己的跨平台 ChatGPT/Gemini 应用 -description: 一键拥有你自己的跨平台 ChatGPT/Gemini 应用 -additionalProperties: - key: chatgpt-next-web - name: ChatGPT-Next-Web - tags: - - AI - shortDescZh: 一键拥有你自己的跨平台 ChatGPT/Gemini 应用 - shortDescEn: A cross-platform ChatGPT/Gemini UI - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://github.com/Yidadaa/ChatGPT-Next-Web - github: https://github.com/Yidadaa/ChatGPT-Next-Web - document: https://github.com/Yidadaa/ChatGPT-Next-Web - memoryRequired: 1024 - architectures: - - amd64 - - arm64 diff --git a/chatgpt-next-web/logo.png b/chatgpt-next-web/logo.png deleted file mode 100644 index 800649def..000000000 Binary files a/chatgpt-next-web/logo.png and /dev/null differ diff --git a/clickhouse/25.5.3-alpine/data.yml b/clickhouse/25.5.3-alpine/data.yml deleted file mode 100644 index 8a15b6dad..000000000 --- a/clickhouse/25.5.3-alpine/data.yml +++ /dev/null @@ -1,66 +0,0 @@ -additionalProperties: - formFields: - - default: 19000 - envKey: PANEL_APP_PORT_TCP - labelEn: Port - labelZh: TCP 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh: TCP 端口 - zh-Hant: TCP 連接埠 - required: true - rule: paramPort - type: number - - default: 18123 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: API 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh: API 端口 - zh-Hant: API 連接埠 - required: true - rule: paramPort - type: number - - default: admin - envKey: CLICKHOUSE_USER - labelEn: Admin User - labelZh: 管理员 - label: - en: Admin User - ja: 管理者ユーザー - ms: Pengguna Pentadbir - pt-br: Usuário do Administrador - ru: Администратор - ko: 관리자 - zh-Hant: 管理員 - zh: 管理员 - required: true - type: text - - default: clickhouse - envKey: CLICKHOUSE_PASSWORD - labelEn: Admin Password - labelZh: 管理员密码 - label: - en: Admin Password - ja: 管理者パスワード - ms: Kata Laluan Pentadbir - pt-br: Senha do Administrador - ru: Пароль администратора - ko: 관리자 비밀번호 - zh-Hant: 管理員密碼 - zh: 管理员密码 - random: true - required: true - type: password diff --git a/clickhouse/25.5.3-alpine/docker-compose.yml b/clickhouse/25.5.3-alpine/docker-compose.yml deleted file mode 100644 index 2cd6127b5..000000000 --- a/clickhouse/25.5.3-alpine/docker-compose.yml +++ /dev/null @@ -1,25 +0,0 @@ -services: - clickhouse: - image: clickhouse/clickhouse-server:25.5.3-alpine - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTP}:8123" - - "${PANEL_APP_PORT_TCP}:9000" - volumes: - - ./clickhouse:/var/lib/clickhouse/ - - ./clickhouse-server:/var/log/clickhouse-server/ - environment: - - CLICKHOUSE_USER=${CLICKHOUSE_USER} - - CLICKHOUSE_PASSWORD=${CLICKHOUSE_PASSWORD} - ulimits: - nofile: - soft: 262144 - hard: 262144 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/clickhouse/README.md b/clickhouse/README.md deleted file mode 100644 index f17e0332d..000000000 --- a/clickhouse/README.md +++ /dev/null @@ -1,21 +0,0 @@ -# ClickHouse - -ClickHouse 一个用于联机分析(OLAP)的列式数据库管理系统(DBMS) - -## 主要功能: - - -- 真正的列式数据库管理系统 -- 数据压缩 -- 数据的磁盘存储 -- 多核心并行处理 -- 多服务器分布式处理 -- 支持SQL -- 向量引擎 -- 实时的数据更新 -- 索引 -- 适合在线查询 -- 支持近似计算 -- 自适应连接算法 -- 支持数据复制和数据完整性 -- 角色的访问控制 diff --git a/clickhouse/README_en.md b/clickhouse/README_en.md deleted file mode 100644 index a3910cafb..000000000 --- a/clickhouse/README_en.md +++ /dev/null @@ -1,18 +0,0 @@ -# ClickHouse -ClickHouse is a columnar database management system (DBMS) designed for online analytical processing (OLAP). - -## Key Features: -- True columnar database management system -- Data compression -- Disk storage for data -- Multi-core parallel processing -- Multi-server distributed processing -- SQL support -- Vectorized engine -- Real-time data updates -- Indexing -- Suitable for online queries -- Approximate calculations support -- Adaptive join algorithms -- Data replication and integrity support -- Role-based access control \ No newline at end of file diff --git a/clickhouse/data.yml b/clickhouse/data.yml deleted file mode 100644 index 7833563b9..000000000 --- a/clickhouse/data.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: ClickHouse -tags: - - 数据库 -title: 一款免费的大数据分析 DBMS -description: 一款免费的大数据分析 DBMS -additionalProperties: - key: clickhouse - name: ClickHouse - tags: - - Database - shortDescZh: 一款免费的大数据分析 DBMS - shortDescEn: a free analytics DBMS for big data - type: tool - crossVersionUpdate: false - limit: 0 - website: https://clickhouse.com/ - github: https://github.com/ClickHouse/ClickHouse - document: https://clickhouse.com/docs/zh - description: - en: a free analytics DBMS for big data - zh: 一款免费的大数据分析 DBMS - zh-Hant: 一款免費的大數據分析 DBMS - ja: 無料のビッグデータ分析用 DBMS - ms: DBMS analitik percuma untuk data besar - pt-br: um DBMS de análise gratuito para big data - ru: бесплатная аналитическая СУБД для больших данных - ko: 빅데이터를 위한 무료 분석 DBMS - memoryRequired: 2048 - architectures: - - amd64 - - arm64 \ No newline at end of file diff --git a/clickhouse/logo.png b/clickhouse/logo.png deleted file mode 100644 index db5c31584..000000000 Binary files a/clickhouse/logo.png and /dev/null differ diff --git a/cloudbeaver/25.1.1/data.yml b/cloudbeaver/25.1.1/data.yml deleted file mode 100644 index d1565821a..000000000 --- a/cloudbeaver/25.1.1/data.yml +++ /dev/null @@ -1,19 +0,0 @@ -additionalProperties: - formFields: - - default: 8978 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: HTTP Port - labelZh: HTTP端口 - label: - en: HTTP Port - ja: HTTPポート - ms: Port HTTP - pt-br: Porta HTTP - ru: HTTP-порт - ko: HTTP 포트 - zh: HTTP端口 - zh-Hant: HTTP連接埠 - required: true - rule: paramPort - type: number \ No newline at end of file diff --git a/cloudbeaver/25.1.1/docker-compose.yml b/cloudbeaver/25.1.1/docker-compose.yml deleted file mode 100644 index 81f6f3ac2..000000000 --- a/cloudbeaver/25.1.1/docker-compose.yml +++ /dev/null @@ -1,16 +0,0 @@ -services: - cloudbeaver: - image: dbeaver/cloudbeaver:25.1.1 - container_name: ${CONTAINER_NAME} - restart: unless-stopped - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_HTTP}:8978 - volumes: - - ./data:/opt/cloudbeaver/workspace - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/cloudbeaver/README.md b/cloudbeaver/README.md deleted file mode 100644 index dd3724e38..000000000 --- a/cloudbeaver/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# CloudBeaver Community - -CloudBeaver Community 是一款开源的数据库管理工具,旨在提供用户友好的界面以管理多种数据库,包括 MySQL、PostgreSQL、SQLite 等。 - -## 主要功能: - -- **多数据库支持**:CloudBeaver Community 支持多种数据库类型,方便用户集中管理不同的数据库系统。 -- **在线访问**:用户可以通过浏览器访问 CloudBeaver,无需安装任何客户端软件,便于随时随地管理数据库。 -- **数据导入导出**:支持将数据导入和导出为多种格式,如 CSV 和 SQL,简化数据迁移过程。 -- **实时协作**:支持团队成员同时访问和编辑数据库,提高协作效率。 -- **可视化查询**:提供可视化查询构建工具,帮助用户轻松创建复杂的数据库查询。 -- **用户管理**:支持多用户管理,可以设置不同权限,确保数据安全。 -- **扩展插件**:支持通过插件扩展功能,满足特定的业务需求。 -- **自定义主题**:用户可以根据个人喜好自定义界面主题,以提升使用体验。 \ No newline at end of file diff --git a/cloudbeaver/README_en.md b/cloudbeaver/README_en.md deleted file mode 100644 index f217fbb7b..000000000 --- a/cloudbeaver/README_en.md +++ /dev/null @@ -1,12 +0,0 @@ -# CloudBeaver Community -CloudBeaver Community is an open-source database management tool designed to provide a user-friendly interface for managing various databases, including MySQL, PostgreSQL, SQLite, and more. - -## Key Features: -- **Multi-Database Support**: CloudBeaver Community supports multiple database types, enabling users to centrally manage different database systems. -- **Online Access**: Users can access CloudBeaver through a browser without installing any client software, making it convenient to manage databases anytime, anywhere. -- **Data Import and Export**: Supports importing and exporting data in various formats, such as CSV and SQL, simplifying the data migration process. -- **Real-Time Collaboration**: Allows team members to access and edit databases simultaneously, improving collaboration efficiency. -- **Visual Query Builder**: Provides a visual query builder tool to help users easily create complex database queries. -- **User Management**: Supports multi-user management with configurable permissions to ensure data security. -- **Extensible Plugins**: Supports extending functionality through plugins to meet specific business needs. -- **Custom Themes**: Users can customize the interface theme according to personal preferences to enhance the user experience. \ No newline at end of file diff --git a/cloudbeaver/data.yml b/cloudbeaver/data.yml deleted file mode 100644 index a5521a425..000000000 --- a/cloudbeaver/data.yml +++ /dev/null @@ -1,32 +0,0 @@ -name: CloudBeaver -tags: - - 开发工具 -title: 云数据库管理器 -type: 开发工具 -description: 云数据库管理器 -additionalProperties: - key: cloudbeaver - name: CloudBeaver - tags: - - DevTool - shortDescZh: 云数据库管理器 - shortDescEn: Cloud Database Manager - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://dbeaver.com/ - github: https://github.com/dbeaver/cloudbeaver - document: https://dbeaver.com/docs/cloudbeaver/ - description: - en: Cloud Database Manager - zh: 云数据库管理器 - zh-Hant: 雲數據庫管理器 - ja: クラウドデータベースマネージャー - ms: Pengurus Pangkalan Data Awan - pt-br: Gerenciador de Banco de Dados em Nuvem - ru: Облачный менеджер баз данных - ko: 클라우드 데이터베이스 관리자 - architectures: - - amd64 - - arm64 \ No newline at end of file diff --git a/cloudbeaver/logo.png b/cloudbeaver/logo.png deleted file mode 100644 index 91e8fd10f..000000000 Binary files a/cloudbeaver/logo.png and /dev/null differ diff --git a/cloudflared/2025.6.1/data.yml b/cloudflared/2025.6.1/data.yml deleted file mode 100644 index d63dad058..000000000 --- a/cloudflared/2025.6.1/data.yml +++ /dev/null @@ -1,18 +0,0 @@ -additionalProperties: - formFields: - - default: "" - envKey: token - labelEn: token - labelZh: 令牌 - label: - en: token - ja: トークン - ms: token - pt-br: token - ru: токен - ko: 토큰 - zh: 令牌 - zh-Hant: 權杖 - random: false - required: true - type: password diff --git a/cloudflared/2025.6.1/docker-compose.yml b/cloudflared/2025.6.1/docker-compose.yml deleted file mode 100644 index 18f04930e..000000000 --- a/cloudflared/2025.6.1/docker-compose.yml +++ /dev/null @@ -1,12 +0,0 @@ -services: - cloudflared: - image: cloudflare/cloudflared:2025.6.1 - container_name: ${CONTAINER_NAME} - restart: always - network_mode: 1panel-network - command: tunnel --no-autoupdate run --token ${token} - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/cloudflared/README.md b/cloudflared/README.md deleted file mode 100644 index f30040e00..000000000 --- a/cloudflared/README.md +++ /dev/null @@ -1,28 +0,0 @@ -Cloudflared 是 Cloudflare 提供的一个工具,用于创建安全的连接,并允许将私有网络和服务暴露到公共互联网。 -以下是有关如何使用 Cloudflared 的简要说明: - -1. **安装和设置:** - -- Cloudflared 是一个连接应用程序的工具,可用于将私有服务和网络连接到Cloudflare的网络。你可以在 [Cloudflare的官方文档](https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/install-and-setup/) 上找到安装和设置的详细步骤。 - -2. **运行Cloudflared容器:** - -- 使用 Docker 运行 Cloudflared 容器的示例命令如下: - - ```shell - docker run cloudflare/cloudflared:latest tunnel --no-autoupdate --hello-world - ``` - - > 此示例使用`--hello-world`参数,依赖于trycloudflare.com,不需要Cloudflare帐户。这是为了快速入门而设计的单一命令。 - -3. **实际用途:** - -- 对于实际用途,建议创建一个免费的 Cloudflare 帐户,并在 [Cloudflare控制台](https://dash.teams.cloudflare.com/) 的Access -> Tunnels 部分创建隧道。在那里,你将获得一个用于启动和运行 cloudflared Docker 容器的单行命令,并且需要通过 Cloudflare 帐户进行身份验证。 - -4. **用途:** - -- Cloudflared 可用于将私有HTTP服务暴露到公共DNS主机名,并可以选择通过 Cloudflare Access 进行访问控制。 - -- 还可以使用 Cloudflared 连接私有网络,允许 WARP 注册用户通过 TCP/UDP IP/port 访问,实现 Zero Trust 安全策略,避免使用传统的 VPN 。 - -> 请注意,具体的操作步骤可能因 Cloudflare 的更新而有所变化,建议查阅官方文档以获取最新信息。 \ No newline at end of file diff --git a/cloudflared/README_en.md b/cloudflared/README_en.md deleted file mode 100644 index a467debc3..000000000 --- a/cloudflared/README_en.md +++ /dev/null @@ -1,22 +0,0 @@ -Cloudflared is a tool provided by Cloudflare for creating secure connections and exposing private networks and services to the public internet. - -## Instructions: - -1. **Installation and Setup:** - - Cloudflared is a connector application tool used to connect private services and networks to Cloudflare's network. You can find detailed installation and setup steps in [Cloudflare's official documentation](https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/install-and-setup/). - -2. **Run Cloudflared Container:** - - Example command to run the Cloudflared container using Docker: - ```shell - docker run cloudflare/cloudflared:latest tunnel --no-autoupdate --hello-world - ``` - > This example uses the `--hello-world` parameter, relying on trycloudflare.com, and does not require a Cloudflare account. It is designed as a single command for quick start. - -3. **Practical Use:** - - For practical use, it is recommended to create a free Cloudflare account and create a tunnel in the Access -> Tunnels section of the [Cloudflare Console](https://dash.teams.cloudflare.com/). There, you will receive a one-liner command to start and run the Cloudflared Docker container, requiring authentication via your Cloudflare account. - -4. **Use Cases:** - - Cloudflared can be used to expose private HTTP services to public DNS hostnames, optionally with access control via Cloudflare Access. - - It can also connect private networks, allowing WARP-registered users to access via TCP/UDP IP/port, implementing Zero Trust security policies and avoiding traditional VPN usage. - -> Note: Specific steps may vary due to updates from Cloudflare. It is recommended to consult the official documentation for the latest information. \ No newline at end of file diff --git a/cloudflared/data.yml b/cloudflared/data.yml deleted file mode 100644 index 96ac8322a..000000000 --- a/cloudflared/data.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: cloudflared -tags: - - 实用工具 -title: Cloudflare Tunnel 客户端 -description: Cloudflare Tunnel 客户端 -additionalProperties: - key: cloudflared - name: cloudflared - tags: - - Tool - shortDescZh: Cloudflare Tunnel 客户端 - shortDescEn: Cloudflare Tunnel client - type: tool - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/ - github: https://github.com/cloudflare/cloudflared - document: https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/install-and-setup/ - description: - en: Cloudflare Tunnel client - zh: Cloudflare Tunnel 客户端 - zh-Hant: Cloudflare Tunnel 客戶端 - ja: Cloudflare トンネルクライアント - ms: Klien Cloudflare Tunnel - pt-br: Cliente do Cloudflare Tunnel - ru: Клиент Cloudflare Tunnel - ko: Cloudflare 터널 클라이언트 - architectures: - - amd64 - - arm64 diff --git a/cloudflared/logo.png b/cloudflared/logo.png deleted file mode 100644 index da8fb43d9..000000000 Binary files a/cloudflared/logo.png and /dev/null differ diff --git a/cloudreve/4.0.0/data.yml b/cloudreve/4.0.0/data.yml index 7d39ebe4d..eb076ce48 100644 --- a/cloudreve/4.0.0/data.yml +++ b/cloudreve/4.0.0/data.yml @@ -25,6 +25,24 @@ additionalProperties: value: postgres - label: MySQL value: mysql + - label: MariaDB + value: mysql + - default: 3306 + envKey: PANEL_DB_PORT + labelEn: Database Port + labelZh: 数据库端口 + label: + en: Database port + ja: データベース + ms: Pangkalan Data + pt-br: Banco de Dados + ru: База данных + ko: 데이터베이스 + zh: 数据库端口 + zh-Hant: 數據庫端口 + random: false + required: true + type: number - default: cloudreve envKey: PANEL_DB_NAME labelEn: Database diff --git a/cloudreve/4.0.0/docker-compose.yml b/cloudreve/4.0.0/docker-compose.yml index b6fd59670..58d1b7192 100644 --- a/cloudreve/4.0.0/docker-compose.yml +++ b/cloudreve/4.0.0/docker-compose.yml @@ -11,7 +11,7 @@ services: - CR_CONF_Database.Name=${PANEL_DB_NAME} - CR_CONF_Database.User=${PANEL_DB_USER} - CR_CONF_Database.Password=${PANEL_DB_USER_PASSWORD} - - CR_CONF_Database.Port=5432 + - CR_CONF_Database.Port=${PANEL_DB_PORT} - CR_CONF_Redis.Server=${PANEL_REDIS_HOST}:6379 - CR_CONF_Redis.Password=${PANEL_REDIS_ROOT_PASSWORD} volumes: diff --git a/code-server/4.101.1/data.yml b/code-server/4.101.1/data.yml deleted file mode 100644 index 073e9cae7..000000000 --- a/code-server/4.101.1/data.yml +++ /dev/null @@ -1,53 +0,0 @@ -additionalProperties: - formFields: - - default: 40031 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh-Hant: 埠 - zh: 端口 - - default: code - envKey: WEB_PASSWORD - labelEn: Web access password - labelZh: 网页访问密码 - random: true - required: true - rule: paramComplexity - type: password - label: - en: Web access password - ja: ウェブアクセスパスワード - ms: Kata laluan akses web - pt-br: Senha de acesso à web - ru: Пароль для доступа в веб - ko: 웹 액세스 비밀번호 - zh-Hant: 網頁存取密碼 - zh: 网页访问密码 - - default: code - envKey: SUDO_PASSWORD - labelEn: sudo password - labelZh: sudo密码 - random: true - required: true - rule: paramComplexity - type: password - label: - en: Sudo password - ja: Sudo パスワード - ms: Kata laluan Sudo - pt-br: Senha do Sudo - ru: Пароль Sudo - ko: Sudo 비밀번호 - zh-Hant: Sudo 密碼 - zh: Sudo 密码 diff --git a/code-server/4.101.1/docker-compose.yml b/code-server/4.101.1/docker-compose.yml deleted file mode 100644 index 9dbd5764b..000000000 --- a/code-server/4.101.1/docker-compose.yml +++ /dev/null @@ -1,23 +0,0 @@ -services: - code: - image: linuxserver/code-server:4.101.1 - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTP}:8443" - volumes: - - ./data:/config - environment: - - PUID=1000 - - PGID=1000 - - TZ=Asia/Shanghai - - PASSWORD=${WEB_PASSWORD} - - SUDO_PASSWORD=${SUDO_PASSWORD} - - DEFAULT_WORKSPACE=/config/workspace - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/code-server/README.md b/code-server/README.md deleted file mode 100644 index d72fbbcfe..000000000 --- a/code-server/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# code-server - -**code-server** 是一款强大的开源工具,它将 [Visual Studio Code (VS Code)](https://code.visualstudio.com/) 带入了基于Web的在线环境。它使您可以通过Web浏览器远程访问和使用VS Code的功能,而无需在本地安装VS Code应用程序。 - -## 主要功能: - -- **远程开发**:允许您从任何地方使用Web浏览器访问您的开发环境。这意味着您可以在不同设备和操作系统上一致地编写、编辑和运行代码。 -- **轻量级**:是一个轻量级的应用程序,资源占用较少,因此在资源有限的服务器上运行也很高效。这使得它成为为团队提供统一的开发环境或在云中进行开发的理想工具。 -- **丰富的扩展生态系统**:您可以安装并使用VS Code的广泛扩展库,从而扩展编辑器的功能。这包括语言支持、主题、代码片段和工作流程自动化等方面。 -- **多语言支持**:提供了广泛的编程语言支持,包括JavaScript、Python、Java、C++等。您可以在一个统一的开发环境中处理多种编程任务。 -- **集成终端**:它内置了一个终端,让您可以在同一界面中执行命令、安装依赖和运行应用程序。 -- **版本控制**:集成了版本控制系统(如Git),使您可以轻松地管理和跟踪代码更改。 -- **团队协作**:允许多个开发人员同时协作,通过共享工作区和代码库来增强团队协作能力。 -- **自定义设置**:您可以根据自己的需求自定义编辑器的设置,包括主题、快捷键和工作区配置。 \ No newline at end of file diff --git a/code-server/README_en.md b/code-server/README_en.md deleted file mode 100644 index 52bcc6e29..000000000 --- a/code-server/README_en.md +++ /dev/null @@ -1,14 +0,0 @@ -# code-server - -**code-server** is a powerful open-source tool that brings [Visual Studio Code (VS Code)](https://code.visualstudio.com/) into a web-based environment. It allows you to securely connect to that remote machine from anywhere through a local VS Code client, without the requirement of SSH. - -## Main Features: - -- **Remote Development**: Allows you to access your development environment from anywhere using a web browser. This means you can write, edit, and run code consistently across different devices and operating systems. -- **Lightweight**: A lightweight application with low resource consumption, making it efficient to run on servers with limited resources. This makes it an ideal tool for providing a unified development environment for teams or for cloud-based development. -- **Rich Extension Ecosystem**: You can install and use the extensive library of VS Code extensions to expand the editor’s functionality. This includes language support, themes, code snippets, workflow automation, and more. -- **Multi-Language Support**: Provides broad support for programming languages, including JavaScript, Python, Java, C++, etc. You can handle multiple programming tasks within a unified development environment. -- **Integrated Terminal**: It includes an integrated terminal that lets you run commands, install dependencies, and run applications within the same interface. -- **Version Control**: Integrated version control systems (such as Git) make it easy to manage and track changes to your code. -- **Team Collaboration**: Allows multiple developers to collaborate simultaneously by sharing workspaces and codebases, enhancing team collaboration. -- **Customizable Settings**: You can customize the editor's settings according to your needs, including themes, shortcuts, and workspace configurations. \ No newline at end of file diff --git a/code-server/data.yml b/code-server/data.yml deleted file mode 100644 index 4fb8ad2e0..000000000 --- a/code-server/data.yml +++ /dev/null @@ -1,32 +0,0 @@ -name: code-server -tags: - - 开发工具 -title: 浏览器中的VS Code -description: 浏览器中的VS Code -additionalProperties: - key: code-server - name: code-server - tags: - - DevTool - shortDescZh: 浏览器中的VS Code - shortDescEn: VS Code in the browser - description: - en: VS Code in the browser - ja: ブラウザでのVS Code - ms: VS Code di pelayar - pt-br: VS Code no navegador - ru: VS Code в браузере - ko: 브라우저에서 VS Code - zh-Hant: 瀏覽器中的 VS Code - zh: 浏览器中的 VS Code - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://coder.com/ - github: https://github.com/coder/code-server - document: https://coder.com/docs/code-server/latest - memoryRequired: 1024 - architectures: - - amd64 - - arm64 \ No newline at end of file diff --git a/code-server/logo.png b/code-server/logo.png deleted file mode 100644 index 241659df9..000000000 Binary files a/code-server/logo.png and /dev/null differ diff --git a/consul/1.21.1/data.yml b/consul/1.21.1/data.yml deleted file mode 100644 index e161406bc..000000000 --- a/consul/1.21.1/data.yml +++ /dev/null @@ -1,36 +0,0 @@ -additionalProperties: - formFields: - - default: 8500 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: HTTP Port - labelZh: HTTP端口 - required: true - rule: paramPort - type: number - label: - en: HTTP Port - ja: HTTPポート - ms: Port HTTP - pt-br: Porta HTTP - ru: HTTP порт - ko: HTTP 포트 - zh: HTTP端口 - zh-Hant: HTTP連接埠 - - default: 8600 - edit: true - envKey: PANEL_APP_PORT_DNS - labelEn: DNS Port - labelZh: DNS端口 - required: true - rule: paramPort - type: number - label: - en: DNS Port - ja: DNSポート - ms: Port DNS - pt-br: Porta DNS - ru: DNS порт - ko: DNS 포트 - zh: DNS端口 - zh-Hant: DNS連接埠 \ No newline at end of file diff --git a/consul/1.21.1/data/config/.gitkeep b/consul/1.21.1/data/config/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/consul/1.21.1/data/data/.gitkeep b/consul/1.21.1/data/data/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/consul/1.21.1/data/logs/.gitkeep b/consul/1.21.1/data/logs/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/consul/1.21.1/docker-compose.yml b/consul/1.21.1/docker-compose.yml deleted file mode 100644 index 553936089..000000000 --- a/consul/1.21.1/docker-compose.yml +++ /dev/null @@ -1,21 +0,0 @@ -services: - consul: - image: hashicorp/consul:1.21.1 - container_name: ${CONTAINER_NAME} - restart: always - ports: - - "${PANEL_APP_PORT_HTTP}:8500" - - "${PANEL_APP_PORT_DNS}:8600/udp" - command: consul agent -server -bootstrap-expect=1 -client=0.0.0.0 -ui -data-dir=/consul/data -node=consul-node -datacenter=dc1 -log-level=warn -enable-script-checks=true -config-dir=/consul/config - volumes: - - ./data/config:/consul/config - - ./data/data:/consul/data - - ./data/logs:/consul/logs - networks: - - 1panel-network - labels: - createdBy: "Apps" - -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/consul/1.21.1/scripts/init.sh b/consul/1.21.1/scripts/init.sh deleted file mode 100644 index 4e811c86a..000000000 --- a/consul/1.21.1/scripts/init.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -chown -R 1000:1000 data \ No newline at end of file diff --git a/consul/README.md b/consul/README.md deleted file mode 100644 index 60e92b451..000000000 --- a/consul/README.md +++ /dev/null @@ -1,12 +0,0 @@ -# Consul - -**Consul** 是一种分布式、高度可用且数据中心感知的解决方案,用于跨动态、分布式基础设施连接和配置应用程序。 - -## 主要功能: - -- **多数据中心**:Consul 旨在感知数据中心,并且可以支持任意数量的区域,而无需复杂的配置。 -- **服务网格**:Consul 服务网格通过自动 TLS 加密和基于身份的授权实现安全的服务间通信。应用程序可以在服务网格配置中使用 sidecar 代理,通过透明代理为入站和出站连接建立 TLS 连接。 -- **API 网关**:Consul API 网关管理对 Consul 服务网格内服务的访问,允许用户定义网格内部署的服务的流量和授权策略。 -- **服务发现**:Consul 使服务可以轻松注册自身并通过 DNS 或 HTTP 接口发现其他服务。也可以注册 SaaS 提供商等外部服务。 -- **健康检查**:健康检查使 Consul 能够快速提醒操作员集群中的任何问题。与服务发现的集成可防止将流量路由到不健康的主机并启用服务级别断路器。 -- **动态应用程序配置**:一个 HTTP API,允许用户在 Consul 中存储索引对象,用于存储配置参数和应用程序元数据。 \ No newline at end of file diff --git a/consul/README_en.md b/consul/README_en.md deleted file mode 100644 index 48ec3c2ca..000000000 --- a/consul/README_en.md +++ /dev/null @@ -1,10 +0,0 @@ -# Consul -**Consul** is a distributed, highly available, and data center-aware solution for connecting and configuring applications across dynamic, distributed infrastructures. - -## Key Features: -- **Multi-Data Center**: Consul is designed to be data center-aware and can support any number of regions without complex configuration. -- **Service Mesh**: Consul's service mesh enables secure service-to-service communication with automatic TLS encryption and identity-based authorization. Applications can use sidecar proxies in the service mesh configuration to establish TLS connections for inbound and outbound traffic via transparent proxies. -- **API Gateway**: The Consul API Gateway manages access to services within the Consul service mesh, allowing users to define traffic and authorization policies for services deployed in the mesh. -- **Service Discovery**: Consul makes it easy for services to register themselves and discover other services via DNS or HTTP interfaces. External services, such as SaaS providers, can also be registered. -- **Health Checks**: Health checks allow Consul to quickly alert operators to any issues in the cluster. Integration with service discovery prevents routing traffic to unhealthy hosts and enables service-level circuit breakers. -- **Dynamic Application Configuration**: An HTTP API allows users to store indexed objects in Consul for storing configuration parameters and application metadata. \ No newline at end of file diff --git a/consul/data.yml b/consul/data.yml deleted file mode 100644 index 601110003..000000000 --- a/consul/data.yml +++ /dev/null @@ -1,32 +0,0 @@ -name: Consul -tags: - - 中间件 -title: 分布式、高可用且具有数据中心感知能力的解决方案 -description: 分布式、高可用且具有数据中心感知能力的解决方案 -additionalProperties: - key: consul - name: Consul - tags: - - Middleware - shortDescZh: 分布式、高可用且具有数据中心感知能力的解决方案 - shortDescEn: Distributed, highly available, and data center aware solution - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://www.consul.io - github: https://github.com/hashicorp/consul - document: https://learn.hashicorp.com/consul - description: - en: Distributed, highly available, and data center aware solution - zh: 分布式、高可用且具有数据中心感知能力的解决方案 - zh-Hant: 分佈式、高可用且具有數據中心感知能力的解決方案 - ja: 分散型で高可用性、データセンター対応のソリューション - ms: Penyelesaian terdistribusi, sangat tersedia, dan menyedari pusat data - pt-br: Solução distribuída, altamente disponível e ciente de data centers - ru: Распределенное, высокодоступное решение с учетом центров обработки данных - ko: 분산형, 고가용성 및 데이터 센터 인식 솔루션 - architectures: - - amd64 - - arm64 - - arm/v6 \ No newline at end of file diff --git a/consul/logo.png b/consul/logo.png deleted file mode 100644 index 589c91525..000000000 Binary files a/consul/logo.png and /dev/null differ diff --git a/dashy/3.1.0/data.yml b/dashy/3.1.0/data.yml deleted file mode 100644 index b90dd71d3..000000000 --- a/dashy/3.1.0/data.yml +++ /dev/null @@ -1,19 +0,0 @@ -additionalProperties: - formFields: - - default: 40209 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh: 端口 - zh-Hant: 埠 - required: true - rule: paramPort - type: number diff --git a/dashy/3.1.0/data/item-icons/.gitkeep b/dashy/3.1.0/data/item-icons/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/dashy/3.1.0/data/user-data/conf.yml b/dashy/3.1.0/data/user-data/conf.yml deleted file mode 100644 index 5f0b012ad..000000000 --- a/dashy/3.1.0/data/user-data/conf.yml +++ /dev/null @@ -1,47 +0,0 @@ ---- -# Page meta info, like heading, footer text and nav links -pageInfo: - title: Dashy - description: Welcome to your new dashboard! - navLinks: - - title: GitHub - path: https://github.com/Lissy93/dashy - - title: Documentation - path: https://dashy.to/docs - -# Optional app settings and configuration -appConfig: - theme: colorful - -# Main content - An array of sections, each containing an array of items -sections: -- name: Getting Started - icon: fas fa-rocket - items: - - title: Dashy Live - description: Development a project management links for Dashy - icon: https://i.ibb.co/qWWpD0v/astro-dab-128.png - url: https://live.dashy.to/ - target: newtab - - title: GitHub - description: Source Code, Issues and Pull Requests - url: https://github.com/lissy93/dashy - icon: favicon - - title: Docs - description: Configuring & Usage Documentation - provider: Dashy.to - icon: far fa-book - url: https://dashy.to/docs - - title: Showcase - description: See how others are using Dashy - url: https://github.com/Lissy93/dashy/blob/master/docs/showcase.md - icon: far fa-grin-hearts - - title: Config Guide - description: See full list of configuration options - url: https://github.com/Lissy93/dashy/blob/master/docs/configuring.md - icon: fas fa-wrench - - title: Support - description: Get help with Dashy, raise a bug, or get in contact - url: https://github.com/Lissy93/dashy/blob/master/.github/SUPPORT.md - icon: far fa-hands-helping - \ No newline at end of file diff --git a/dashy/3.1.0/docker-compose.yml b/dashy/3.1.0/docker-compose.yml deleted file mode 100644 index d564015fe..000000000 --- a/dashy/3.1.0/docker-compose.yml +++ /dev/null @@ -1,21 +0,0 @@ -services: - dashy: - container_name: ${CONTAINER_NAME} - image: lissy93/dashy:3.1.0 - restart: always - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTP}:8080" - volumes: - - ./data/user-data/conf.yml:/app/user-data/conf.yml - - ./data/item-icons:/app/user-data/item-icons - environment: - - NODE_ENV=production - - UID=1000 - - GID=1000 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/dashy/3.1.0/scripts/init.sh b/dashy/3.1.0/scripts/init.sh deleted file mode 100644 index 4e811c86a..000000000 --- a/dashy/3.1.0/scripts/init.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -chown -R 1000:1000 data \ No newline at end of file diff --git a/dashy/README.md b/dashy/README.md deleted file mode 100644 index 175be0697..000000000 --- a/dashy/README.md +++ /dev/null @@ -1,12 +0,0 @@ -# Dashy - -**Dashy** 是一个功能强大的开源仪表盘应用程序,用于组织和管理您的书签、链接和常用应用程序。它允许用户创建一个自定义的仪表盘界面,轻松访问日常使用的工具和服务。 - -## 特点 - -- **高度自定义**:用户可以根据个人需求和喜好,通过配置文件自定义仪表盘的布局和外观。 -- **多种集成**:支持与各种服务和应用集成,如 Docker、Kubernetes、GitHub 等,提供实时监控和快捷操作。 -- **易于设置和使用**:提供简单的配置文件(YAML/JSON),用户可以轻松添加、编辑和删除项目。 -- **响应式设计**:适用于各种设备,确保在桌面和移动设备上的良好体验。 -- **安全**:支持多种身份验证方式,如用户名/密码、OAuth2 等,保障数据安全。 -- **社区支持**:作为一个开源项目,拥有活跃的社区,用户可以获得支持并参与项目开发。 \ No newline at end of file diff --git a/dashy/README_en.md b/dashy/README_en.md deleted file mode 100644 index 6bc8991ee..000000000 --- a/dashy/README_en.md +++ /dev/null @@ -1,10 +0,0 @@ -# Dashy -**Dashy** is a powerful open-source dashboard application for organizing and managing your bookmarks, links, and frequently used applications. It allows users to create a customized dashboard interface for easy access to daily tools and services. - -## Features -- **Highly Customizable**: Users can customize the layout and appearance of the dashboard through configuration files to suit their needs and preferences. -- **Multiple Integrations**: Supports integration with various services and applications, such as Docker, Kubernetes, GitHub, and more, providing real-time monitoring and quick actions. -- **Easy to Set Up and Use**: Offers simple configuration files (YAML/JSON) for users to easily add, edit, and delete items. -- **Responsive Design**: Works well on various devices, ensuring a great experience on both desktop and mobile devices. -- **Secure**: Supports multiple authentication methods, such as username/password and OAuth2, to ensure data security. -- **Community Support**: As an open-source project, it has an active community where users can get support and contribute to the project's development. \ No newline at end of file diff --git a/dashy/data.yml b/dashy/data.yml deleted file mode 100644 index 8f823ed16..000000000 --- a/dashy/data.yml +++ /dev/null @@ -1,32 +0,0 @@ -name: Dashy -tags: - - 建站 -title: 专为您打造的可自行托管的个人仪表板 -description: 专为您打造的可自行托管的个人仪表板 -additionalProperties: - key: dashy - name: Dashy - tags: - - Website - shortDescZh: 专为您打造的可自行托管的个人仪表板 - shortDescEn: A self-hostable personal dashboard built for you - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://dashy.to - github: https://github.com/Lissy93/dashy - document: https://dashy.to/docs - description: - en: A self-hostable personal dashboard built for you - zh: 专为您打造的可自行托管的个人仪表板 - zh-Hant: 專為您打造的可自行託管的個人儀表板 - ja: あなたのために作られたセルフホスト可能な個人用ダッシュボード - ms: Papan pemuka peribadi yang boleh dihoskan sendiri yang dibina untuk anda - pt-br: Um painel pessoal auto-hospedável feito para você - ru: Самостоятельно размещаемая персональная панель управления, созданная для вас - ko: 당신을 위해 만들어진 셀프 호스팅 개인 대시보드 - architectures: - - amd64 - - arm64 - - arm/v7 diff --git a/dashy/logo.png b/dashy/logo.png deleted file mode 100644 index e1f6c93b1..000000000 Binary files a/dashy/logo.png and /dev/null differ diff --git a/dataease/1.18.27/conf/dataease.properties b/dataease/1.18.27/conf/dataease.properties deleted file mode 100644 index 442f8748b..000000000 --- a/dataease/1.18.27/conf/dataease.properties +++ /dev/null @@ -1,14 +0,0 @@ -# 数据库配置 -spring.datasource.url=jdbc:mysql://${PANEL_DB_HOST}:3306/${PANEL_DB_NAME}?autoReconnect=false&useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false -spring.datasource.username=${PANEL_DB_USER} -spring.datasource.password=${PANEL_DB_USER_PASSWORD} - -#新建用户初始密码 -dataease.init_password=DataEase123456 -#登录超时时间单位min 如果不设置 默认8小时也就是480 -dataease.login_timeout=480 - -logger.level=INFO - -#DE运行模式,可选值有 local、simple、cluster,分别对应 本地模式、精简模式、集群模式 -engine_mode=simple \ No newline at end of file diff --git a/dataease/1.18.27/data.yml b/dataease/1.18.27/data.yml deleted file mode 100755 index 5fc8977d5..000000000 --- a/dataease/1.18.27/data.yml +++ /dev/null @@ -1,54 +0,0 @@ -additionalProperties: - formFields: - - default: "" - envKey: PANEL_DB_HOST - key: mysql - labelEn: Database Service - labelZh: 数据库服务 - required: true - type: service - - default: de - envKey: PANEL_DB_NAME - labelEn: Database - labelZh: 数据库名 - random: true - required: true - rule: paramCommon - type: text - - default: de - envKey: PANEL_DB_USER - labelEn: User - labelZh: 数据库用户 - random: true - required: true - rule: paramCommon - type: text - - default: de - envKey: PANEL_DB_USER_PASSWORD - labelEn: Password - labelZh: 数据库用户密码 - random: true - required: true - type: password - - default: admin - disabled: true - envKey: DE_ADMIN - labelEn: Admin User - labelZh: 管理员 - required: true - type: text - - default: dataease - disabled: true - envKey: DE_ADMIN_PASSWORD - labelEn: Admin Password - labelZh: 管理员默认密码 - required: true - type: text - - default: 8080 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number diff --git a/dataease/1.18.27/docker-compose.yml b/dataease/1.18.27/docker-compose.yml deleted file mode 100644 index 57d136179..000000000 --- a/dataease/1.18.27/docker-compose.yml +++ /dev/null @@ -1,30 +0,0 @@ -services: - dataease: - image: registry.cn-qingdao.aliyuncs.com/dataease/dataease:v1.18.27 - restart: always - container_name: ${CONTAINER_NAME} - ports: - - ${PANEL_APP_PORT_HTTP}:8081 - volumes: - - ./conf:/opt/dataease/conf - - ./logs:/opt/dataease/logs - - ./plugins/thirdpart:/opt/dataease/plugins/thirdpart - - ./data/static-resource:/opt/dataease/data/static-resource - - ./custom-drivers:/opt/dataease/custom-drivers - - ./data/custom:/opt/dataease/data/custom - - ./data/business:/opt/dataease/data/business - - ./data/exportData:/opt/dataease/data/exportData - environment: - PANEL_DB_HOST: ${PANEL_DB_HOST} - PANEL_DB_PORT: 3306 - PANEL_DB_USER: ${PANEL_DB_USER} - PANEL_DB_USER_PASSWORD: ${PANEL_DB_USER_PASSWORD} - PANEL_DB_NAME: ${PANEL_DB_NAME} - shm_size: 1gb - networks: - - 1panel-network - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/dataease/2.10.10/conf/application.yml b/dataease/2.10.10/conf/application.yml deleted file mode 100644 index 800bbc63d..000000000 --- a/dataease/2.10.10/conf/application.yml +++ /dev/null @@ -1,27 +0,0 @@ -server: - tomcat: - connection-timeout: 70000 -spring: - servlet: - multipart: - max-file-size: 500MB - max-request-size: 500MB - datasource: - url: jdbc:mysql://${PANEL_DB_HOST}:${PANEL_DB_PORT}/${PANEL_DB_NAME}?autoReconnect=false&useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true - username: ${PANEL_DB_USER} - password: ${PANEL_DB_USER_PASSWORD} -dataease: - apisix-api: - domain: http://apisix:9180 - key: DE_APISIX_KEY - export: - views: - limit: 100000 - dataset: - limit: 100000 - origin-list: http://localhost:8000 -task: - executor: - address: http://sync-task-actuator:9001 - log: - path: /opt/dataease2.0/logs/sync-task/task-handler-log \ No newline at end of file diff --git a/dataease/2.10.10/data.yml b/dataease/2.10.10/data.yml deleted file mode 100755 index 48f5711e6..000000000 --- a/dataease/2.10.10/data.yml +++ /dev/null @@ -1,54 +0,0 @@ -additionalProperties: - formFields: - - default: "" - envKey: PANEL_DB_HOST - key: mysql - labelEn: Database Service - labelZh: 数据库服务 - required: true - type: service - - default: de - envKey: PANEL_DB_NAME - labelEn: Database - labelZh: 数据库名 - random: true - required: true - rule: paramCommon - type: text - - default: de - envKey: PANEL_DB_USER - labelEn: User - labelZh: 数据库用户 - random: true - required: true - rule: paramCommon - type: text - - default: de - envKey: PANEL_DB_USER_PASSWORD - labelEn: Password - labelZh: 数据库用户密码 - random: true - required: true - type: password - - default: admin - disabled: true - envKey: DE_ADMIN - labelEn: Admin User - labelZh: 管理员 - required: true - type: text - - default: DataEase@123456 - disabled: true - envKey: DE_ADMIN_PASSWORD - labelEn: Admin Password - labelZh: 管理员默认密码 - required: true - type: text - - default: 8080 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number diff --git a/dataease/2.10.10/docker-compose.yml b/dataease/2.10.10/docker-compose.yml deleted file mode 100644 index 2309e6c80..000000000 --- a/dataease/2.10.10/docker-compose.yml +++ /dev/null @@ -1,29 +0,0 @@ -services: - dataease: - image: registry.cn-qingdao.aliyuncs.com/dataease/dataease:v2.10.10 - restart: always - container_name: ${CONTAINER_NAME} - ports: - - ${PANEL_APP_PORT_HTTP}:8100 - volumes: - - ./conf:/opt/apps/config - - ./logs:/opt/dataease2.0/logs - - ./data/static-resource:/opt/dataease2.0/data/static-resource - - ./cache:/opt/dataease2.0/cache - - ./data/geo:/opt/dataease2.0/data/geo - - ./data/exportData:/opt/dataease2.0/data/exportData - - ./data/font:/opt/dataease2.0/data/font - environment: - PANEL_DB_HOST: ${PANEL_DB_HOST} - PANEL_DB_PORT: ${PANEL_DB_PORT} - PANEL_DB_USER: ${PANEL_DB_USER} - PANEL_DB_USER_PASSWORD: ${PANEL_DB_USER_PASSWORD} - PANEL_DB_NAME: ${PANEL_DB_NAME} - networks: - - 1panel-network - labels: - createdBy: "Apps" - -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/dataease/README.md b/dataease/README.md deleted file mode 100644 index 62f67ca0a..000000000 --- a/dataease/README.md +++ /dev/null @@ -1,17 +0,0 @@ -# DataEase - -DataEase 是开源的数据可视化分析工具,帮助用户快速分析数据并洞察业务趋势,从而实现业务的改进与优化。DataEase 支持丰富的数据源连接,能够通过拖拉拽方式快速制作图表,并可以方便的与他人分享。 - -**DataEase 的功能包括:** - -- 图表展示:支持 PC 端、移动端、大屏; -- 图表制作:支持丰富的图表类型(Apache ECharts / AntV)、支持拖拉拽方式快速制作仪表板; -- 数据引擎:支持直连模式、本地模式(基于 Apache Doris / Kettle 实现); -- 数据连接:支持数据仓库/数据湖、OLAP 数据库、OLTP 数据库、Excel 数据文件、API 等各种数据源。 - -## DataEase 的优势 - -- 开源开放:零门槛,线上快速获取和安装;快速获取用户反馈、按月发布新版本; -- 简单易用:极易上手,通过鼠标点击和拖拽即可完成分析; -- 秒级响应:集成 Apache Doris,超大数据量下秒级查询返回延时; -- 安全分享:支持多种数据分享方式,确保数据安全。 \ No newline at end of file diff --git a/dataease/data.yml b/dataease/data.yml deleted file mode 100755 index bf41ee3c0..000000000 --- a/dataease/data.yml +++ /dev/null @@ -1,23 +0,0 @@ -name: DataEase -tags: - - BI -title: 人人可用的开源数据可视化分析工具 -description: 人人可用的开源数据可视化分析工具 -additionalProperties: - key: dataease - name: DataEase - tags: - - BI - shortDescZh: 人人可用的开源数据可视化分析工具 - shortDescEn: Open source data visualization and analysis tools available to everyone - type: website - crossVersionUpdate: false - limit: 0 - recommend: 45 - website: https://dataease.io/ - github: https://github.com/dataease/dataease - document: https://dataease.io/docs/ - memoryRequired: 8192 - architectures: - - amd64 - - arm64 diff --git a/dataease/logo.png b/dataease/logo.png deleted file mode 100644 index 4e6840997..000000000 Binary files a/dataease/logo.png and /dev/null differ diff --git a/dbhub/0.9.0/data.yml b/dbhub/0.9.0/data.yml deleted file mode 100644 index 173d7858f..000000000 --- a/dbhub/0.9.0/data.yml +++ /dev/null @@ -1,126 +0,0 @@ -additionalProperties: - formFields: - - default: 8080 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: SSE Port - labelZh: SSE 端口 - required: true - rule: paramPort - type: number - label: - en: SSE Port - ja: SSE ポート - ms: Port SSE - pt-br: Porta SSE - ru: Порт SSE - ko: SSE 포트 - zh-Hant: SSE 埠 - zh: SSE 端口 - - default: "mysql" - edit: true - envKey: DBHUB_DB_TYPE - labelEn: DataBase Type - labelZh: 数据库类型 - required: true - type: select - values: - - label: MySQL - value: "mysql" - - label: MariaDB - value: "mariadb" - - label: PostgreSQL - value: "postgres" - - label: SQL Server - value: "sqlserver" - - label: Oracle - value: "oracle" - label: - en: DataBase Type - ja: データベースの種類 - ms: Jenis Pangkalan Data - pt-br: Tipo de banco de dados - ru: Тип базы данных - ko: 데이터베이스 유형 - zh-Hant: 資料庫類型 - zh: 数据库类型 - - default: "" - edit: true - envKey: DBHUB_DB_NAME - labelEn: Database Name - labelZh: 数据库名称 - required: true - type: text - label: - en: Database Name - ja: データベース名 - ms: Nama Pangkalan Data - pt-br: Nome do Banco de Dados - ru: Имя базы данных - ko: 데이터베이스 이름 - zh-hant: 資料庫名稱 - zh: 数据库名称 - - default: "" - edit: true - envKey: DBHUB_DB_USER - required: true - type: text - labelEn: Database User - labelZh: 数据库用户 - label: - en: Database User - ja: データベースユーザー - ms: Pengguna Pangkalan Data - pt-br: Usuário do Banco de Dados - ru: Пользователь базы данных - ko: 데이터베이스 사용자 - zh-hant: 資料庫用戶 - zh: 数据库用户 - - default: "" - edit: true - envKey: DBHUB_DB_USER_PASSWORD - required: true - type: password - labelEn: Database Password - labelZh: 数据库密码 - label: - en: Database Password - ja: データベースのパスワード - ms: Kata Laluan Pangkalan Data - pt-br: Senha do Banco de Dados - ru: Пароль базы данных - ko: 데이터베이스 비밀번호 - zh-hant: 資料庫密碼 - zh: 数据库密码 - - default: "" - edit: true - envKey: DBHUB_DB_ADDRESS - labelEn: Database Address - labelZh: 数据库地址 - required: true - type: text - label: - en: Database Address - ja: データベースのアドレス - ms: Alamat Pangkalan Data - pt-br: Endereço do Banco de Dados - ru: Адрес базы данных - ko: 데이터베이스 주소 - zh-hant: 資料庫地址 - zh: 数据库地址 - - default: "" - edit: true - envKey: DBHUB_DB_PORT - labelEn: Database Port - labelZh: 数据库端口 - required: true - type: text - label: - en: Database Port - ja: データベースのポート - ms: Pangkalan Data Port - pt-br: Porta do Banco de Dados - ru: Порт базы данных - ko: 데이터베이스 포트 - zh-hant: 資料庫端口 - zh: 数据库端口 diff --git a/dbhub/0.9.0/docker-compose.yml b/dbhub/0.9.0/docker-compose.yml deleted file mode 100644 index 7bb1b6566..000000000 --- a/dbhub/0.9.0/docker-compose.yml +++ /dev/null @@ -1,19 +0,0 @@ -services: - dbhub: - image: bytebase/dbhub:0.9.0 - container_name: ${CONTAINER_NAME} - ports: - - ${PANEL_APP_PORT_HTTP}:8080 - networks: - - 1panel-network - init: true - command: - - "--transport" - - "http" - - "--port" - - "8080" - - "--dsn" - - "${DBHUB_DB_TYPE}://${DBHUB_DB_USER}:${DBHUB_DB_USER_PASSWORD}@${DBHUB_DB_ADDRESS}:${DBHUB_DB_PORT}/${DBHUB_DB_NAME}" -networks: - 1panel-network: - external: true diff --git a/dbhub/README.md b/dbhub/README.md deleted file mode 100644 index 47f2721b5..000000000 --- a/dbhub/README.md +++ /dev/null @@ -1,21 +0,0 @@ -# DBHub - -**DBHub** 是一个通用数据库网关,实现了模型上下文协议 (MCP) 服务器接口。该网关允许兼容 MCP 的客户端连接并探索不同的数据库。 - -```bash - +------------------+ +--------------+ +------------------+ - | | | | | | - | | | | | | - | Claude Desktop +--->+ +--->+ PostgreSQL | - | | | | | | - | Cursor +--->+ DBHub +--->+ SQL Server | - | | | | | | - | Other MCP +--->+ +--->+ SQLite | - | Clients | | | | | - | | | +--->+ MySQL | - | | | | | | - | | | +--->+ MariaDB | - | | | | | | - +------------------+ +--------------+ +------------------+ - MCP Clients MCP Server Databases -``` diff --git a/dbhub/README_en.md b/dbhub/README_en.md deleted file mode 100644 index 831cee972..000000000 --- a/dbhub/README_en.md +++ /dev/null @@ -1,21 +0,0 @@ -# DBHub - -**DBHub** is a universal database gateway implementing the Model Context Protocol (MCP) server interface. This gateway allows MCP-compatible clients to connect to and explore different databases. - -```bash - +------------------+ +--------------+ +------------------+ - | | | | | | - | | | | | | - | Claude Desktop +--->+ +--->+ PostgreSQL | - | | | | | | - | Cursor +--->+ DBHub +--->+ SQL Server | - | | | | | | - | Other MCP +--->+ +--->+ SQLite | - | Clients | | | | | - | | | +--->+ MySQL | - | | | | | | - | | | +--->+ MariaDB | - | | | | | | - +------------------+ +--------------+ +------------------+ - MCP Clients MCP Server Databases -``` diff --git a/dbhub/data.yml b/dbhub/data.yml deleted file mode 100644 index 7ef1308b3..000000000 --- a/dbhub/data.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: DBHub -tags: - - AI / 大模型 -title: 通用数据库 MCP 服务器连接到 MySQL、PostgreSQL、SQL Server、MariaDB、Oracle -description: 通用数据库 MCP 服务器连接到 MySQL、PostgreSQL、SQL Server、MariaDB、Oracle -additionalProperties: - key: dbhub - name: DBHub - tags: - - AI - shortDescZh: 通用数据库 MCP 服务器连接到 MySQL、PostgreSQL、SQL Server、MariaDB、Oracle - shortDescEn: Universal database MCP server connecting to MySQL, PostgreSQL, SQL Server, MariaDB, Oracle - description: - en: Universal database MCP server connecting to MySQL, PostgreSQL, SQL Server, MariaDB, Oracle - ja: 通用データベース MCP サーバーは、MySQL、PostgreSQL、SQL Server、MariaDB、Oracle に接続します - ms: MCP pelayan pangkalan data sejagat menyambung ke MySQL, PostgreSQL, SQL Server, MariaDB, Oracle - pt-br: Servidor MCP de banco de dados universal conectado ao MySQL, PostgreSQL, SQL Server, MariaDB, Oracle - ru: Универсальный сервер базы данных MCP, подключающийся к MySQL, PostgreSQL, SQL Server, MariaDB, Oracle - ko: 범용 데이터베이스 MCP 서버는 MySQL, PostgreSQL, SQL Server, MariaDB, Oracle 에 연결됩니다 - zh-Hant: 通用資料庫 MCP 伺服器連接到 MySQL、PostgreSQL、SQL Server、MariaDB、Oracle - zh: 通用数据库 MCP 服务器连接到 MySQL、PostgreSQL、SQL Server、MariaDB、Oracle - type: tool - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://github.com/bytebase/dbhub - github: https://github.com/bytebase/dbhub - document: https://github.com/bytebase/dbhub - architectures: - - amd64 - - arm64 diff --git a/dbhub/logo.png b/dbhub/logo.png deleted file mode 100644 index 15263ac16..000000000 Binary files a/dbhub/logo.png and /dev/null differ diff --git a/ddns-go/6.10.0/data.yml b/ddns-go/6.10.0/data.yml deleted file mode 100644 index 3c8c913bb..000000000 --- a/ddns-go/6.10.0/data.yml +++ /dev/null @@ -1,10 +0,0 @@ -additionalProperties: - formFields: - - default: 9876 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: WebUI Port - labelZh: 网页端口 - required: true - rule: paramPort - type: number diff --git a/ddns-go/6.10.0/docker-compose.yml b/ddns-go/6.10.0/docker-compose.yml deleted file mode 100644 index 78148887d..000000000 --- a/ddns-go/6.10.0/docker-compose.yml +++ /dev/null @@ -1,12 +0,0 @@ -services: - ddns-go: - container_name: ${CONTAINER_NAME} - restart: always - network_mode: host - ports: - - "${PANEL_APP_PORT_HTTP}:9876" - volumes: - - ./data:/root - image: jeessy/ddns-go:v6.10.0 - labels: - createdBy: "Apps" diff --git a/ddns-go/README.md b/ddns-go/README.md deleted file mode 100644 index 1b82104fe..000000000 --- a/ddns-go/README.md +++ /dev/null @@ -1,21 +0,0 @@ -# ddns-go - -自动获得你的公网 IPv4 或 IPv6 地址,并解析到对应的域名服务。 - -## 主要功能: - -- 支持Mac、Windows、Linux系统,支持ARM、x86架构 -- 支持的域名服务商 `Alidns(阿里云)` `Dnspod(腾讯云)` `Cloudflare` `华为云` `Callback` `百度云` `Porkbun` `GoDaddy` `Google Domain` -- 支持接口/网卡/[命令](https://github.com/jeessy2/ddns-go/wiki/通过命令获取IP参考)获取IP -- 支持以服务的方式运行 -- 默认间隔5分钟同步一次 -- 支持同时配置多个DNS服务商 -- 支持多个域名同时解析 -- 支持多级域名 -- 网页中配置,简单又方便,默认勾选`禁止从公网访问` -- 网页中方便快速查看最近50条日志 -- 支持Webhook通知 -- 支持TTL -- 支持部分DNS服务商[传递自定义参数](https://github.com/jeessy2/ddns-go/wiki/传递自定义参数),实现地域解析等功能 - -> **Note** 建议在启用公网访问时,使用 Nginx 等反向代理软件启用 HTTPS 访问,以保证安全性。[FAQ](https://github.com/jeessy2/ddns-go/wiki/FAQ) \ No newline at end of file diff --git a/ddns-go/data.yml b/ddns-go/data.yml deleted file mode 100644 index 15f303eda..000000000 --- a/ddns-go/data.yml +++ /dev/null @@ -1,23 +0,0 @@ -name: ddns-go -tags: - - 实用工具 -title: 简单易用的 DDNS -description: 简单易用的 DDNS -additionalProperties: - key: ddns-go - name: ddns-go - tags: - - Tool - shortDescZh: 简单易用的 DDNS - shortDescEn: Simple and easy to use DDNS - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://github.com/jeessy2/ddns-go - github: https://github.com/jeessy2/ddns-go - document: https://github.com/jeessy2/ddns-go - architectures: - - amd64 - - arm/v7 - - arm64 diff --git a/ddns-go/logo.png b/ddns-go/logo.png deleted file mode 100644 index 975e00112..000000000 Binary files a/ddns-go/logo.png and /dev/null differ diff --git a/discourse/3.4.5/data.yml b/discourse/3.4.5/data.yml deleted file mode 100644 index b88a277a2..000000000 --- a/discourse/3.4.5/data.yml +++ /dev/null @@ -1,182 +0,0 @@ -additionalProperties: - formFields: - - default: "" - edit: true - envKey: DISCOURSE_HOST - labelEn: HOST - labelZh: 访问域名 - label: - en: HOST - ja: ホスト - ms: HOS - pt-br: HOST - ru: ХОСТ - ko: 호스트 - zh: 访问域名 - zh-Hant: 訪問域名 - required: true - type: text - - default: 3000 - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: HTTP 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh: HTTP 端口 - zh-Hant: HTTP 埠 - required: true - rule: paramPort - type: number - - default: admin - disabled: true - envKey: DISCOURSE_USERNAME - labelEn: Admin User - labelZh: 管理员 - label: - en: Admin User - ja: 管理者 - ms: Pengguna Admin - pt-br: Usuário Admin - ru: Администратор - ko: 관리자 - zh: 管理员 - zh-Hant: 管理員 - required: true - type: text - - default: "" - edit: true - envKey: DISCOURSE_EMAIL - labelEn: email - labelZh: 管理员邮箱 - label: - en: email - ja: メール - ms: E-mel - pt-br: E-mail - ru: Электронная почта - ko: 이메일 - zh: 管理员邮箱 - zh-Hant: 管理員郵箱 - required: true - type: text - - default: "" - edit: true - envKey: DISCOURSE_PASSWORD - labelEn: password(must length > 10) - labelZh: 管理员密码(长度必须>10) - label: - en: password(must length > 10) - ja: パスワード(長さ > 10 必須) - ms: kata laluan (panjang mesti > 10) - pt-br: senha (deve ter comprimento > 10) - ru: пароль (длина должна быть > 10) - ko: 비밀번호(길이 > 10 필수) - zh: 管理员密码(长度必须>10) - zh-Hant: 管理員密碼(長度必須>10) - required: true - type: password - rule: paramCommon - - default: "" - envKey: PANEL_DB_HOST - key: postgresql - labelEn: postgresql Database Service - labelZh: postgresql数据库服务 - label: - en: postgresql Database Service - ja: postgresql データベース サービス - ms: Perkhidmatan Pangkalan Data postgresql - pt-br: Serviço de Banco de Dados postgresql - ru: Сервис базы данных postgresql - ko: postgresql 데이터베이스 서비스 - zh: postgresql数据库服务 - zh-Hant: postgresql數據庫服務 - required: true - type: service - - default: discourse - envKey: PANEL_DB_NAME - labelEn: Database - labelZh: 数据库名 - label: - en: Database - ja: データベース - ms: Pangkalan Data - pt-br: Banco de Dados - ru: База данных - ko: 데이터베이스 - zh: 数据库名 - zh-Hant: 數據庫名 - random: true - required: true - rule: paramCommon - type: text - - default: discourse - envKey: PANEL_DB_USER - labelEn: User - labelZh: 数据库用户 - label: - en: User - ja: ユーザー - ms: Pengguna - pt-br: Usuário - ru: Пользователь - ko: 사용자 - zh: 数据库用户 - zh-Hant: 數據庫用戶 - random: true - required: true - rule: paramCommon - type: text - - default: discourse - envKey: PANEL_DB_USER_PASSWORD - labelEn: Password - labelZh: 数据库用户密码 - label: - en: Password - ja: パスワード - ms: Kata laluan - pt-br: Senha - ru: Пароль - ko: 비밀번호 - zh: 数据库用户密码 - zh-Hant: 數據庫用戶密碼 - random: true - required: true - type: password - - default: "" - envKey: PANEL_REDIS_HOST - key: redis - labelEn: Redis Service - labelZh: redis 服务 - label: - en: Redis Service - ja: redis サービス - ms: Perkhidmatan Redis - pt-br: Serviço Redis - ru: Сервис Redis - ko: redis 서비스 - zh: redis 服务 - zh-Hant: redis 服務 - required: true - type: service - - default: "" - envKey: PANEL_REDIS_ROOT_PASSWORD - labelEn: Password - labelZh: redis 密码 - label: - en: Password - ja: パスワード - ms: Kata laluan - pt-br: Senha - ru: Пароль - ko: 비밀번호 - zh: redis 密码 - zh-Hant: redis 密碼 - random: true - required: true - rule: paramComplexity - type: password \ No newline at end of file diff --git a/discourse/3.4.5/docker-compose.yml b/discourse/3.4.5/docker-compose.yml deleted file mode 100644 index f3132fe6b..000000000 --- a/discourse/3.4.5/docker-compose.yml +++ /dev/null @@ -1,64 +0,0 @@ - services: - discourse: - image: bitnami/discourse:3.4.5 - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTP}:3000" - volumes: - - ./data/discourse:/bitnami/discourse - environment: - DISCOURSE_HOST: ${DISCOURSE_HOST} - DISCOURSE_USERNAME: ${DISCOURSE_USERNAME} - DISCOURSE_PASSWORD: ${DISCOURSE_PASSWORD} - DISCOURSE_EMAIL: ${DISCOURSE_EMAIL} - DISCOURSE_DATABASE_HOST: ${PANEL_DB_HOST} - DISCOURSE_DATABASE_PORT_NUMBER: ${PANEL_DB_PORT} - DISCOURSE_DATABASE_USER: ${PANEL_DB_USER} - DISCOURSE_DATABASE_PASSWORD: ${PANEL_DB_USER_PASSWORD} - DISCOURSE_DATABASE_NAME: ${PANEL_DB_NAME} - POSTGRESQL_CLIENT_POSTGRES_USER: ${PANEL_DB_USER} - POSTGRESQL_CLIENT_POSTGRES_PASSWORD: ${PANEL_DB_USER_PASSWORD} - POSTGRESQL_CLIENT_CREATE_DATABASE_NAME: ${PANEL_DB_NAME} - POSTGRESQL_CLIENT_CREATE_DATABASE_EXTENSIONS: hstore,pg_trgm - DISCOURSE_REDIS_HOST: ${PANEL_REDIS_HOST} - DISCOURSE_REDIS_PASSWORD: ${PANEL_REDIS_ROOT_PASSWORD} - DISCOURSE_SMTP_HOST: test - DISCOURSE_SMTP_PORT_NUMBER: 0 - DISCOURSE_SMTP_USER: test - DISCOURSE_SMTP_PASSWORD: test - DISCOURSE_SMTP_PROTOCOL: - labels: - createdBy: "Apps" - sidekiq: - image: bitnami/discourse:3.4.5 - container_name: ${CONTAINER_NAME}-sidekiq - restart: always - networks: - - 1panel-network - depends_on: - - discourse - volumes: - - ./data/sidekiq:/bitnami/discourse - command: /opt/bitnami/scripts/discourse-sidekiq/run.sh - environment: - DISCOURSE_HOST: ${DISCOURSE_HOST} - DISCOURSE_DATABASE_HOST: ${PANEL_DB_HOST} - DISCOURSE_DATABASE_PORT_NUMBER: ${PANEL_DB_PORT} - DISCOURSE_DATABASE_USER: ${PANEL_DB_USER} - DISCOURSE_DATABASE_PASSWORD: ${PANEL_DB_USER_PASSWORD} - DISCOURSE_DATABASE_NAME: ${PANEL_DB_NAME} - DISCOURSE_REDIS_HOST: ${PANEL_REDIS_HOST} - DISCOURSE_REDIS_PASSWORD: ${PANEL_REDIS_ROOT_PASSWORD} - # DISCOURSE_SMTP_HOST: test - # DISCOURSE_SMTP_PORT_NUMBER: 0 - # DISCOURSE_SMTP_USER: test - # DISCOURSE_SMTP_PASSWORD: test - # DISCOURSE_SMTP_PROTOCOL: - labels: - createdBy: "Apps" - networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/discourse/3.4.5/scripts/upgrade.sh b/discourse/3.4.5/scripts/upgrade.sh deleted file mode 100644 index a779ed139..000000000 --- a/discourse/3.4.5/scripts/upgrade.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -if [[ -f ./.env ]]; then - if grep -q "DISCOURSE_SKIP_BOOTSTRAP" ./.env; then - echo "DISCOURSE_SKIP_BOOTSTRAP 已存在" - else - echo 'DISCOURSE_SKIP_BOOTSTRAP="yes"' >> ./.env - fi -else - echo ".env 文件不存在" -fi \ No newline at end of file diff --git a/discourse/README.md b/discourse/README.md deleted file mode 100644 index cf433fcd6..000000000 --- a/discourse/README.md +++ /dev/null @@ -1,41 +0,0 @@ -## 注意事项 - -- 使用端口访问会导致控制台无法显示,请修改为使用域名访问。 - -## 配置 - -### 设置语言 - -在浏览器中访问 URI `/admin/site_settings/category/required`,将 `default locale` 设置为 `简体中文` 即可。 - -### 设置 SMTP - -安装应用时手动编辑 `docker-compose`,修改 SMTP 相关配置即可。 - -### 插件安装 - -**进入 `容器` 页面,找到 Discourse 应用,点击右侧操作列中的 `终端` 按钮,在容器终端中执行以下命令:** - -```shell -cd /opt/bitnami/discourse - -# 安装插件 PLUGIN_REPO_URL 替换为插件地址 -sudo RAILS_ENV=production bundle exec rake plugin:install repo=PLUGIN_REPO_URL - -# 预编译新资源以供插件使用 -sudo RAILS_ENV=production bundle exec rake assets:precompile -``` - -### 插件卸载 - -**进入 `容器` 页面,找到 Discourse 应用,点击右侧操作列中的 `终端` 按钮,在容器终端中执行以下命令:** - -```shell -cd /opt/bitnami/discourse/plugins - -# 删除插件目录 PLUGIN-DIR 替换为插件目录 -rm -rf PLUGIN-DIR - -# 预编译新资源 -sudo RAILS_ENV=production bundle exec rake assets:precompile -``` \ No newline at end of file diff --git a/discourse/README_en.md b/discourse/README_en.md deleted file mode 100644 index a10e3f56d..000000000 --- a/discourse/README_en.md +++ /dev/null @@ -1,30 +0,0 @@ -## Notes -- Accessing via port will cause the console to not display. Please modify it to use domain access. - -## Configuration - -### Set Language -Access the URI `/admin/site_settings/category/required` in your browser and set `default locale` to `Simplified Chinese`. - -### Configure SMTP -Manually edit `docker-compose` during application installation to modify SMTP-related configurations. - -### Install Plugins -**Go to the `Containers` page, find the Discourse application, click the `Terminal` button in the right action column, and execute the following commands in the container terminal:** -```shell -cd /opt/bitnami/discourse -# Install plugin, replace PLUGIN_REPO_URL with the plugin URL -sudo RAILS_ENV=production bundle exec rake plugin:install repo=PLUGIN_REPO_URL -# Precompile new assets for plugin usage -sudo RAILS_ENV=production bundle exec rake assets:precompile -``` - -### Uninstall Plugins -**Go to the `Containers` page, find the Discourse application, click the `Terminal` button in the right action column, and execute the following commands in the container terminal:** -```shell -cd /opt/bitnami/discourse/plugins -# Delete plugin directory, replace PLUGIN-DIR with the plugin directory -rm -rf PLUGIN-DIR -# Precompile new assets -sudo RAILS_ENV=production bundle exec rake assets:precompile -``` \ No newline at end of file diff --git a/discourse/data.yml b/discourse/data.yml deleted file mode 100644 index 986bdccce..000000000 --- a/discourse/data.yml +++ /dev/null @@ -1,32 +0,0 @@ -name: Discourse -tags: - - 建站 -title: 社区讨论的平台。免费、开放、简单。 -description: 社区讨论的平台。免费、开放、简单。 -additionalProperties: - key: discourse - name: Discourse - tags: - - Website - shortDescZh: 社区讨论的平台。免费、开放、简单。 - shortDescEn: A platform for community discussion. Free, open, simple. - type: website - crossVersionUpdate: false - limit: 0 - recommend: 0 - website: https://www.discourse.org - github: https://github.com/discourse/discourse - document: https://hub.docker.com/r/bitnami/discourse - description: - en: A platform for community discussion. Free, open, simple. - zh: 社区讨论的平台。免费、开放、简单。 - zh-Hant: 社區討論的平台。免費、開放、簡單。 - ja: コミュニティディスカッションのためのプラットフォーム。無料、オープン、シンプル。 - ms: Platform untuk perbincangan komuniti. Percuma, terbuka, mudah. - pt-br: Uma plataforma para discussão comunitária. Gratuito, aberto, simples. - ru: Платформа для обсуждения в сообществе. Бесплатно, открыто, просто. - ko: 커뮤니티 토론을 위한 플랫폼. 무료, 오픈, 간단. - memoryRequired: 2048 - architectures: - - amd64 - - arm64 diff --git a/discourse/logo.png b/discourse/logo.png deleted file mode 100644 index 2a44ead61..000000000 Binary files a/discourse/logo.png and /dev/null differ diff --git a/discuz/3.4/data.yml b/discuz/3.4/data.yml deleted file mode 100644 index 29917c6f2..000000000 --- a/discuz/3.4/data.yml +++ /dev/null @@ -1,19 +0,0 @@ -additionalProperties: - formFields: - - default: 40023 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: HTTP WebUI Port - labelZh: HTTP 网页端口 - required: true - rule: paramPort - type: number - - default: 40024 - edit: true - envKey: PANEL_APP_PORT_HTTPS - labelEn: HTTPS WebUI Port - labelZh: HTTPS 网页端口 - required: true - rule: paramPort - type: number - diff --git a/discuz/3.4/docker-compose.yml b/discuz/3.4/docker-compose.yml deleted file mode 100644 index 8dbf8cd13..000000000 --- a/discuz/3.4/docker-compose.yml +++ /dev/null @@ -1,21 +0,0 @@ -services: - discuz: - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTP}:80" - - "${PANEL_APP_PORT_HTTPS}:443" - volumes: - - discuz_data:/var/www/html - image: tencentci/discuz:v3.4 - labels: - createdBy: "Apps" - -volumes: - discuz_data: - -networks: - 1panel-network: - external: true diff --git a/discuz/3.4/scripts/uninstall.sh b/discuz/3.4/scripts/uninstall.sh deleted file mode 100644 index 1a62d5e58..000000000 --- a/discuz/3.4/scripts/uninstall.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -docker-compose down --volumes \ No newline at end of file diff --git a/discuz/README.md b/discuz/README.md deleted file mode 100644 index 801a175b6..000000000 --- a/discuz/README.md +++ /dev/null @@ -1,23 +0,0 @@ -# 数据库初始化 - -- 1、进入数据库菜单 -- 2、新建 discuz 数据库(初始化时需要) -- 3、点击连接信息按钮获取数据库连接地址,默认为 `mysql:3306` - -# Discuz! - -Discuz!(或称Discuz X)是一款流行的社区论坛软件,用于创建和管理在线社区。 - -## 主要功能: - -- **用户管理**:Discuz允许管理员轻松管理用户,包括用户注册、登录、权限设置和封禁等。用户可以设置个人资料,包括头像、签名等。 -- **主题和帖子**:用户可以创建主题和回复帖子,包括支持Markdown语法的富文本编辑器,使内容排版更加美观。 -- **板块分类**:论坛可以分为不同的板块,每个板块可以有不同的主题和规则。管理员可以创建、编辑和删除板块。 -- **权限控制**:管理员可以灵活配置用户组的权限,以控制用户在论坛中的行为,包括发帖、回帖、删除、编辑等。 -- **搜索功能**:支持高效的全文搜索功能,使用户能够快速找到感兴趣的帖子和内容。 -- **私信和通知**:用户可以发送私信给其他用户,以及接收关于论坛活动的通知。 -- **插件扩展**:Discuz支持插件扩展,可以根据需要添加各种功能,如投票、打赏、积分系统等。 -- **移动端支持**:具有响应式设计,支持移动设备,使用户可以在手机和平板电脑上方便地访问论坛。 -- **社交分享**:帖子和主题可以轻松分享到社交媒体平台,提高内容的曝光度。 -- **数据备份和恢复**:提供数据库备份和恢复功能,确保数据的安全性。 -- **多语言支持**:支持多语言界面,以满足全球用户的需求。 \ No newline at end of file diff --git a/discuz/data.yml b/discuz/data.yml deleted file mode 100644 index 8c2e95453..000000000 --- a/discuz/data.yml +++ /dev/null @@ -1,21 +0,0 @@ -name: Discuz! -tags: - - 建站 -title: 开源社交建站系统 -description: 开源社交建站系统 -additionalProperties: - key: discuz - name: Discuz! - tags: - - Website - shortDescZh: 开源社交建站系统 - shortDescEn: Open Source Social Building System - type: website - crossVersionUpdate: false - limit: 0 - recommend: 0 - website: https://www.discuz.vip/ - github: https://gitee.com/Discuz/DiscuzX - document: https://open.dismall.com/?ac=document&page=dev - architectures: - - amd64 \ No newline at end of file diff --git a/discuz/logo.png b/discuz/logo.png deleted file mode 100644 index 5cbc51275..000000000 Binary files a/discuz/logo.png and /dev/null differ diff --git a/docker-registry/3.0.0/data.yml b/docker-registry/3.0.0/data.yml deleted file mode 100755 index 59284ed77..000000000 --- a/docker-registry/3.0.0/data.yml +++ /dev/null @@ -1,19 +0,0 @@ -additionalProperties: - formFields: - - default: 5000 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh: 端口 - zh-Hant: 埠 - required: true - rule: paramPort - type: number diff --git a/docker-registry/3.0.0/docker-compose.yml b/docker-registry/3.0.0/docker-compose.yml deleted file mode 100644 index b0ca7fc0b..000000000 --- a/docker-registry/3.0.0/docker-compose.yml +++ /dev/null @@ -1,16 +0,0 @@ -services: - docker-registry: - image: registry:3.0.0 - restart: always - container_name: ${CONTAINER_NAME} - ports: - - ${PANEL_APP_PORT_HTTP}:5000 - networks: - - 1panel-network - volumes: - - ./data:/var/lib/registry - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/docker-registry/README.md b/docker-registry/README.md deleted file mode 100644 index 746f67159..000000000 --- a/docker-registry/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# docker-registry - -**docker-registry** 是一个开源的镜像仓库,用于存储和管理 Docker 镜像。它允许您在 Linux 服务器上创建私有的 Docker 镜像仓库,以便团队成员共享和访问镜像。 - -## 主要功能: - -- **镜像存储和管理**:docker-registry 提供了功能强大的仓库系统,用于存储和管理 Docker 镜像,方便团队成员之间的共享和访问。 -- **私有化部署**:您可以在自己的 Linux 服务器上搭建私有的 docker-registry,以满足安全和隐私要求。 -- **访问控制**:docker-registry 支持设置访问权限,可以控制谁可以拉取和推送镜像,以保护您的镜像和数据的安全性。 -- **标签和版本管理**:您可以为镜像设置标签和版本,方便对镜像进行分类和管理。 -- **兼容性**:docker-registry 兼容 Docker 镜像仓库的标准 API,您可以使用 Docker CLI 或其他 Docker 客户端工具与之交互。 \ No newline at end of file diff --git a/docker-registry/README_en.md b/docker-registry/README_en.md deleted file mode 100644 index da63e49bf..000000000 --- a/docker-registry/README_en.md +++ /dev/null @@ -1,8 +0,0 @@ -# docker-registry -**docker-registry** is an open-source image repository used to store and manage Docker images. It allows you to create a private Docker image repository on your Linux server for team members to share and access images. -## Main Features: -- **Image Storage and Management**: docker-registry provides a powerful repository system for storing and managing Docker images, facilitating sharing and access among team members. -- **Private Deployment**: You can set up your private docker-registry on your own Linux server to meet security and privacy requirements. -- **Access Control**: docker-registry supports setting access permissions to control who can pull and push images, protecting the security of your images and data. -- **Tag and Version Management**: You can set tags and versions for images to facilitate image classification and management. -- **Compatibility**: docker-registry is compatible with the standard API of Docker image repositories, allowing you to interact with it using Docker CLI or other Docker client tools. \ No newline at end of file diff --git a/docker-registry/data.yml b/docker-registry/data.yml deleted file mode 100755 index d808b4d22..000000000 --- a/docker-registry/data.yml +++ /dev/null @@ -1,35 +0,0 @@ -name: Docker Registry -tags: - - DevOps -title: Docker 镜像存储库 -description: Docker 镜像存储库 -additionalProperties: - key: docker-registry - name: Docker Registry - tags: - - DevOps - shortDescZh: Docker 镜像存储库 - shortDescEn: A storage and distribution system for named Docker images - type: tool - crossVersionUpdate: false - limit: 1 - recommend: 0 - website: https://hub.docker.com/_/registry - github: https://github.com/distribution/distribution - document: https://docs.docker.com/registry/ - description: - en: A storage and distribution system for named Docker images - zh: Docker 镜像存储库 - zh-Hant: Docker 映像存儲庫 - ja: 名前付き Docker イメージのためのストレージおよび配布システム - ms: Sistem penyimpanan dan pengedaran untuk imej Docker bernama - pt-br: Um sistema de armazenamento e distribuição para imagens Docker nomeadas - ru: Система хранения и распространения именованных образов Docker - ko: 명명된 Docker 이미지를 위한 저장 및 배포 시스템 - architectures: - - amd64 - - arm/v6 - - arm/v7 - - arm64 - - ppc64le - - s390x diff --git a/docker-registry/logo.png b/docker-registry/logo.png deleted file mode 100644 index 23027f8c4..000000000 Binary files a/docker-registry/logo.png and /dev/null differ diff --git a/dockge/1.5.0/data.yml b/dockge/1.5.0/data.yml deleted file mode 100644 index 68b548661..000000000 --- a/dockge/1.5.0/data.yml +++ /dev/null @@ -1,35 +0,0 @@ -additionalProperties: - formFields: - - default: 5001 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh: 端口 - zh-Hant: 埠 - required: true - rule: paramPort - type: number - - default: /opt/stacks - edit: true - envKey: DOCKGE_STACKS_DIR - labelEn: Stacks Directory - labelZh: 栈目录 - label: - en: Stacks Directory - ja: スタックディレクトリ - ms: Direktori Stacks - pt-br: Diretório de Pilhas - ru: Каталог стеков - ko: 스택 디렉토리 - zh: 栈目录 - zh-Hant: 棧目錄 - required: true - type: text diff --git a/dockge/1.5.0/docker-compose.yml b/dockge/1.5.0/docker-compose.yml deleted file mode 100644 index 3f502d478..000000000 --- a/dockge/1.5.0/docker-compose.yml +++ /dev/null @@ -1,20 +0,0 @@ -services: - dockge: - image: louislam/dockge:1.5.0 - container_name: ${CONTAINER_NAME} - restart: unless-stopped - ports: - - ${PANEL_APP_PORT_HTTP}:5001 - networks: - - 1panel-network - volumes: - - ./data:/app/data - - /var/run/docker.sock:/var/run/docker.sock - - ${DOCKGE_STACKS_DIR}:${DOCKGE_STACKS_DIR} - environment: - - DOCKGE_STACKS_DIR=${DOCKGE_STACKS_DIR} - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/dockge/README.md b/dockge/README.md deleted file mode 100644 index de8bab5e9..000000000 --- a/dockge/README.md +++ /dev/null @@ -1,15 +0,0 @@ -# Dockge - -**Dockge** 是一个精美的、易于使用的、反应式的自托管 docker compose.yaml 面向堆栈的管理器。 - -## 主要特性: - -- 通过Web页面管理```compose.yaml```文件。 - - 创建/编辑/启动/停止/重新启动/删除容器。 - - 更新Docker镜像。 -- 交互式Web终端。 -- 响应式设计,实时更新进度(Pull/Up/Down)和Web终端输出。 -- 提供了简化的用户体验,可以在一个页面上方便地找到您需要的一切,一目了然。 - - 由Uptime Kuma的创作者开发。 -- 支持将```docker run … ```命令转换为```compose.yaml```配置。 -- 基于文件结构,支持使用正常的 ```docker compose ```命令进行交互。 \ No newline at end of file diff --git a/dockge/README_en.md b/dockge/README_en.md deleted file mode 100644 index 85afc513f..000000000 --- a/dockge/README_en.md +++ /dev/null @@ -1,12 +0,0 @@ -# Dockge -**Dockge** is a beautiful, easy-to-use, reactive self-hosted docker compose.yaml stack-oriented manager. -## Main Features: -- Manage ```compose.yaml``` files through a web interface. - - Create/edit/start/stop/restart/delete containers. - - Update Docker images. -- Interactive web terminal. -- Responsive design with real-time updates of progress (Pull/Up/Down) and web terminal output. -- Provides a simplified user experience where everything you need can be conveniently found on one page at a glance. - - Developed by the creator of Uptime Kuma. -- Support for converting ```docker run …``` commands to ```compose.yaml``` configuration. -- File-based structure, supporting interaction with normal ```docker compose``` commands. \ No newline at end of file diff --git a/dockge/data.yml b/dockge/data.yml deleted file mode 100644 index c12fa153e..000000000 --- a/dockge/data.yml +++ /dev/null @@ -1,32 +0,0 @@ -name: Dockge -tags: - - 实用工具 -title: 自托管 - Docker compose.yaml - 面向堆栈的管理器 -description: 自托管 - Docker compose.yaml - 面向堆栈的管理器 -additionalProperties: - key: dockge - name: Dockge - tags: - - Tool - shortDescZh: 自托管 - Docker compose.yaml - 面向堆栈的管理器 - shortDescEn: Self-hosted - Docker compose.yaml - Stack-oriented Manager - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://dockge.kuma.pet - github: https://github.com/louislam/dockge - document: https://github.com/louislam/dockge/blob/master/README.md - description: - en: Self-hosted - Docker compose.yaml - Stack-oriented Manager - zh: 自托管 - Docker compose.yaml - 面向堆栈的管理器 - zh-Hant: 自託管 - Docker compose.yaml - 面向堆棧的管理器 - ja: セルフホスト - Docker compose.yaml - スタック指向のマネージャー - ms: Hos kendiri - Docker compose.yaml - Pengurus berorientasikan tumpukan - pt-br: Auto-hospedado - Docker compose.yaml - Gerenciador orientado a pilhas - ru: Самостоятельно размещаемый - Docker compose.yaml - Менеджер, ориентированный на стеки - ko: 셀프 호스팅 - Docker compose.yaml - 스택 지향 관리자 - architectures: - - amd64 - - arm64 - - arm/v7 diff --git a/dockge/logo.png b/dockge/logo.png deleted file mode 100644 index 006c743df..000000000 Binary files a/dockge/logo.png and /dev/null differ diff --git a/domain-admin/1.6.68/data.yml b/domain-admin/1.6.68/data.yml deleted file mode 100755 index 49b4387e2..000000000 --- a/domain-admin/1.6.68/data.yml +++ /dev/null @@ -1,10 +0,0 @@ -additionalProperties: - formFields: - - default: 40076 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number \ No newline at end of file diff --git a/domain-admin/1.6.68/docker-compose.yml b/domain-admin/1.6.68/docker-compose.yml deleted file mode 100755 index 0aa2bf137..000000000 --- a/domain-admin/1.6.68/docker-compose.yml +++ /dev/null @@ -1,17 +0,0 @@ -services: - domain-admin: - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTP}:8000" - volumes: - - "./data/database:/app/database" - - "./data/logs:/app/logs" - image: mouday/domain-admin:v1.6.68 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/domain-admin/README.md b/domain-admin/README.md deleted file mode 100755 index f38f5dd9a..000000000 --- a/domain-admin/README.md +++ /dev/null @@ -1,33 +0,0 @@ -# 默认账户密码 - -``` -username:admin -password:123456 -``` - -# Domain Admin - -Domain Admin 是一款功能强大的管理域名的工具,旨在提供对域名和相关设置的全面控制。 - -## 主要功能: - -### 域名管理 - -- **域名注册**:Domain Admin 允许用户注册新域名或将现有域名转移到其管理下。它提供了一种简便的方式来搜索和购买域名,还支持域名转移操作。 -- **域名配置**:用户可以轻松配置域名的DNS记录、WHOIS信息、域名转发等设置,以确保域名的正常运行。 -- **域名续费**:Domain Admin 提供了域名续费功能,确保域名不会过期,并防止失去对其的控制。 - -### DNS管理 - -- **DNS记录管理**:用户可以管理域名的DNS记录,包括A记录、CNAME记录、MX记录等,以确保域名的正常解析和流量重定向。 -- **DNSSEC支持**:Domain Admin 支持DNSSEC(DNS安全扩展),提高了域名系统的安全性,防止DNS欺骗攻击。 - -### 域名安全性 - -- **域名锁定**:用户可以启用域名锁定功能,防止未经授权的域名转移或修改操作,增强域名的安全性。 -- **WHOIS隐私**:Domain Admin 允许用户启用WHOIS隐私保护,隐藏个人信息,保护隐私。 - -### 域名统计和报告 - -- **流量分析**:Domain Admin 提供有关域名流量和访问统计的报告,帮助用户了解域名的使用情况。 -- **DNS查询日志**:用户可以访问DNS查询日志,以追踪域名的DNS请求和活动。 \ No newline at end of file diff --git a/domain-admin/data.yml b/domain-admin/data.yml deleted file mode 100755 index 74a744dc5..000000000 --- a/domain-admin/data.yml +++ /dev/null @@ -1,22 +0,0 @@ -name: Domain Admin -tags: - - 实用工具 -title: 域名 SSL 证书监测平台 -description: 域名 SSL 证书监测平台 -additionalProperties: - key: domain-admin - name: Domain Admin - tags: - - Tool - shortDescZh: 域名 SSL 证书监测平台 - shortDescEn: Domain and SSL Cert monitor System - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://github.com/mouday/domain-admin - github: https://github.com/mouday/domain-admin - document: https://domain-admin.readthedocs.io/ - architectures: - - amd64 - - arm64 diff --git a/domain-admin/logo.png b/domain-admin/logo.png deleted file mode 100755 index 9d16688a3..000000000 Binary files a/domain-admin/logo.png and /dev/null differ diff --git a/dosgame/README.md b/dosgame/README.md deleted file mode 100644 index 9dd80a7b9..000000000 --- a/dosgame/README.md +++ /dev/null @@ -1,25 +0,0 @@ -# 使用说明 - -需要更多游戏可以从原仓库获取,然后将游戏放到存储卷 `dosgame_data` 的对应目录下。 - -> 原仓库地址:[chinese-dos-games](https://github.com/rwv/chinese-dos-games) - -# 🎮 中文 DOS 游戏 - -网址: https://dos.lol - -中文 DOS 游戏合集,目前共有 1898 款游戏。 - -## 下载游戏文件 - -在根目录下运行 Python 3 脚本 - -``` python -python download_data.py -``` - -若下载出错请参见 [Issue #26](https://github.com/rwv/chinese-dos-games/issues/26) - -## 游戏列表 - -参见 https://dos.lol/games \ No newline at end of file diff --git a/dosgame/data.yml b/dosgame/data.yml deleted file mode 100644 index bcb8f393d..000000000 --- a/dosgame/data.yml +++ /dev/null @@ -1,23 +0,0 @@ -name: 中文 DOS 游戏 -tags: - - 休闲游戏 -title: 中文 DOS 游戏合集 -description: 中文 DOS 游戏合集 -additionalProperties: - key: dosgame - name: 中文 DOS 游戏 - tags: - - Game - shortDescZh: 中文 DOS 游戏合集 - shortDescEn: Chinese DOS games collections - type: website - crossVersionUpdate: false - limit: 0 - recommend: 0 - website: https://dos.lol/ - github: https://github.com/rwv/chinese-dos-games - document: https://github.com/rwv/chinese-dos-games - architectures: - - amd64 - - arm64 - - arm/v7 diff --git a/dosgame/logo.png b/dosgame/logo.png deleted file mode 100644 index 950c55201..000000000 Binary files a/dosgame/logo.png and /dev/null differ diff --git a/dosgame/v3.9.6/data.yml b/dosgame/v3.9.6/data.yml deleted file mode 100644 index 6d788420c..000000000 --- a/dosgame/v3.9.6/data.yml +++ /dev/null @@ -1,10 +0,0 @@ -additionalProperties: - formFields: - - default: 40078 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number diff --git a/dosgame/v3.9.6/docker-compose.yml b/dosgame/v3.9.6/docker-compose.yml deleted file mode 100644 index 1880f12fb..000000000 --- a/dosgame/v3.9.6/docker-compose.yml +++ /dev/null @@ -1,16 +0,0 @@ -services: - dosgame: - container_name: ${CONTAINER_NAME} - image: firezmc/dosgame-web-docker:v3.9.6 - restart: always - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_HTTP}:8090 - volumes: - - ./data/games_storage:/games_storage - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/dotnet/6.0/data.yml b/dotnet/6.0/data.yml deleted file mode 100644 index fcc6ed694..000000000 --- a/dotnet/6.0/data.yml +++ /dev/null @@ -1 +0,0 @@ -additionalProperties: \ No newline at end of file diff --git a/dotnet/6.0/docker-compose.yml b/dotnet/6.0/docker-compose.yml deleted file mode 100644 index d6c854275..000000000 --- a/dotnet/6.0/docker-compose.yml +++ /dev/null @@ -1,20 +0,0 @@ -services: - dotnet: - image: mcr.microsoft.com/dotnet/aspnet:${DOTNET_VERSION} - container_name: ${CONTAINER_NAME} - working_dir: /app - volumes: - - ${CODE_DIR}:/app - - ./run.sh:/run.sh - - ./.env:/.env - command: bash /run.sh - networks: - - 1panel-network - ports: - - ${HOST_IP}:${PANEL_APP_PORT_HTTP}:${APP_PORT} - restart: on-failure:5 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/dotnet/6.0/run.sh b/dotnet/6.0/run.sh deleted file mode 100644 index 2272029e1..000000000 --- a/dotnet/6.0/run.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -source /.env - -eval $EXEC_SCRIPT - - - - - diff --git a/dotnet/7.0/data.yml b/dotnet/7.0/data.yml deleted file mode 100644 index fcc6ed694..000000000 --- a/dotnet/7.0/data.yml +++ /dev/null @@ -1 +0,0 @@ -additionalProperties: \ No newline at end of file diff --git a/dotnet/7.0/docker-compose.yml b/dotnet/7.0/docker-compose.yml deleted file mode 100644 index 6564af3d8..000000000 --- a/dotnet/7.0/docker-compose.yml +++ /dev/null @@ -1,20 +0,0 @@ -services: - java: - image: mcr.microsoft.com/dotnet/aspnet:${DOTNET_VERSION} - container_name: ${CONTAINER_NAME} - working_dir: /app - volumes: - - ${CODE_DIR}:/app - - ./run.sh:/run.sh - - ./.env:/.env - command: bash /run.sh - networks: - - 1panel-network - ports: - - ${HOST_IP}:${PANEL_APP_PORT_HTTP}:${APP_PORT} - restart: on-failure:5 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/dotnet/7.0/run.sh b/dotnet/7.0/run.sh deleted file mode 100644 index 2272029e1..000000000 --- a/dotnet/7.0/run.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -source /.env - -eval $EXEC_SCRIPT - - - - - diff --git a/dotnet/8.0/data.yml b/dotnet/8.0/data.yml deleted file mode 100644 index fcc6ed694..000000000 --- a/dotnet/8.0/data.yml +++ /dev/null @@ -1 +0,0 @@ -additionalProperties: \ No newline at end of file diff --git a/dotnet/8.0/docker-compose.yml b/dotnet/8.0/docker-compose.yml deleted file mode 100644 index d6c854275..000000000 --- a/dotnet/8.0/docker-compose.yml +++ /dev/null @@ -1,20 +0,0 @@ -services: - dotnet: - image: mcr.microsoft.com/dotnet/aspnet:${DOTNET_VERSION} - container_name: ${CONTAINER_NAME} - working_dir: /app - volumes: - - ${CODE_DIR}:/app - - ./run.sh:/run.sh - - ./.env:/.env - command: bash /run.sh - networks: - - 1panel-network - ports: - - ${HOST_IP}:${PANEL_APP_PORT_HTTP}:${APP_PORT} - restart: on-failure:5 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/dotnet/8.0/run.sh b/dotnet/8.0/run.sh deleted file mode 100644 index 2272029e1..000000000 --- a/dotnet/8.0/run.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -source /.env - -eval $EXEC_SCRIPT - - - - - diff --git a/dotnet/9.0/data.yml b/dotnet/9.0/data.yml deleted file mode 100644 index fcc6ed694..000000000 --- a/dotnet/9.0/data.yml +++ /dev/null @@ -1 +0,0 @@ -additionalProperties: \ No newline at end of file diff --git a/dotnet/9.0/docker-compose.yml b/dotnet/9.0/docker-compose.yml deleted file mode 100644 index d6c854275..000000000 --- a/dotnet/9.0/docker-compose.yml +++ /dev/null @@ -1,20 +0,0 @@ -services: - dotnet: - image: mcr.microsoft.com/dotnet/aspnet:${DOTNET_VERSION} - container_name: ${CONTAINER_NAME} - working_dir: /app - volumes: - - ${CODE_DIR}:/app - - ./run.sh:/run.sh - - ./.env:/.env - command: bash /run.sh - networks: - - 1panel-network - ports: - - ${HOST_IP}:${PANEL_APP_PORT_HTTP}:${APP_PORT} - restart: on-failure:5 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/dotnet/9.0/run.sh b/dotnet/9.0/run.sh deleted file mode 100644 index 2272029e1..000000000 --- a/dotnet/9.0/run.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -source /.env - -eval $EXEC_SCRIPT - - - - - diff --git a/dotnet/README.md b/dotnet/README.md deleted file mode 100644 index dcbf2e604..000000000 --- a/dotnet/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# .NET - -.NET 是一个免费的跨平台开放源代码开发人员平台,用于生成多种类型的应用程序。 diff --git a/dotnet/README_en.md b/dotnet/README_en.md deleted file mode 100644 index 1640596b3..000000000 --- a/dotnet/README_en.md +++ /dev/null @@ -1,3 +0,0 @@ -# .NET - -.NET is a free, cross-platform, open-source developer platform for building many different types of applications. \ No newline at end of file diff --git a/dotnet/data.yml b/dotnet/data.yml deleted file mode 100644 index b58794a78..000000000 --- a/dotnet/data.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: .NET -tags: - - 运行环境 -title: .NET 运行环境 -description: .NET 运行环境 -additionalProperties: - key: dotnet - name: .NET - tags: - - Runtime - shortDescZh: .NET 运行环境 - shortDescEn: .NET Runtime - description: - en: .NET Runtime Environment - ja: .NET 実行環境 - ms: Persekitaran Larian .NET - pt-br: Ambiente de Execução .NET - ru: Среда выполнения .NET - zh-Hant: .NET 執行環境 - zh: .NET 运行环境 - type: dotnet - crossVersionUpdate: false - limit: 0 - recommend: 119 - website: https://learn.microsoft.com/zh-cn/dotnet/ - architectures: - - amd64 - - arm64 diff --git a/dotnet/logo.png b/dotnet/logo.png deleted file mode 100644 index a37975754..000000000 Binary files a/dotnet/logo.png and /dev/null differ diff --git a/drawio/27.1.6/data.yml b/drawio/27.1.6/data.yml deleted file mode 100644 index dcef2062a..000000000 --- a/drawio/27.1.6/data.yml +++ /dev/null @@ -1,36 +0,0 @@ -additionalProperties: - formFields: - - default: 8080 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: HTTP Port - labelZh: HTTP 端口 - required: true - rule: paramPort - type: number - label: - en: HTTP Port - ja: HTTP ポート - ms: HTTP Port - pt-br: HTTP Porta - ru: HTTP Порт - ko: HTTP 포트 - zh-Hant: HTTP 埠 - zh: HTTP 端口 - - default: 6443 - edit: true - envKey: PANEL_APP_PORT_HTTPS - labelEn: HTTPS Port - labelZh: HTTPS 端口 - required: true - rule: paramPort - type: number - label: - en: HTTPS Port - ja: HTTPS ポート - ms: HTTPS Port - pt-br: HTTPS Porta - ru: HTTPS Порт - ko: HTTPS 포트 - zh-Hant: HTTPS 埠 - zh: HTTPS 端口 diff --git a/drawio/27.1.6/docker-compose.yml b/drawio/27.1.6/docker-compose.yml deleted file mode 100644 index ceccb9b7b..000000000 --- a/drawio/27.1.6/docker-compose.yml +++ /dev/null @@ -1,15 +0,0 @@ -services: - drawio: - image: jgraph/drawio:27.1.6 - container_name: ${CONTAINER_NAME} - restart: unless-stopped - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_HTTP}:8080 - - ${PANEL_APP_PORT_HTTPS}:8443 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/drawio/README.md b/drawio/README.md deleted file mode 100644 index 7ff823f77..000000000 --- a/drawio/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# Draw.io - -Draw.io 是一款流行的在线绘图工具,用于创建各种图表和图形,包括流程图、组织结构图、网络拓扑图、流程图、思维导图等。 - -## 主要功能: - -- **多种图表类型**:Draw.io 提供了各种预定义的图表类型,方便用户创建不同类型的图形。 -- **在线编辑**:用户可以在浏览器中轻松编辑图表,无需安装任何附加软件。 -- **导出选项**:Draw.io 支持将创建的图表导出为多种格式,如PNG、JPEG、SVG、PDF等。 -- **实时协作**:多个用户可以同时编辑同一图表,支持实时协作,适用于团队工作。 -- **模板库**:Draw.io 提供各种图表模板,可以加快创建过程。 -- **自定义样式**:用户可以自定义图表元素的样式、颜色和字体,以满足特定需求。 -- **版本控制**:Draw.io 支持版本控制,可以查看和还原以前的图表版本。 -- **嵌入到网页**:用户可以将创建的图表嵌入到网页或文档中,以便与他人共享。 \ No newline at end of file diff --git a/drawio/README_en.md b/drawio/README_en.md deleted file mode 100644 index ee759845f..000000000 --- a/drawio/README_en.md +++ /dev/null @@ -1,14 +0,0 @@ -# Draw.io - -**Draw.io** is a popular online diagramming tool for creating various charts and diagrams, including flowcharts, organizational charts, network diagrams, mind maps, and more. - -## Main Features: - -- **Variety of Diagram Types**: Provides a wide range of pre-defined diagram types, making it easy to create different types of visuals. -- **Online Editing**: Edit diagrams directly in your browser without the need to install additional software. -- **Export**: Export diagrams in multiple formats such as PNG, JPEG, SVG, PDF, and more. -- **Real-Time Collaboration**: Allows multiple users to edit the same diagram simultaneously, perfect for team projects. -- **Template Library**: Offers various templates to accelerate the creation process. -- **Custom Styles**: Customize element styles, colors, and fonts to meet specific needs. -- **Version Control**: Supports version history to review and restore previous versions of diagrams. -- **Embedded**: Embed diagrams into websites or documents for easy sharing with others. \ No newline at end of file diff --git a/drawio/data.yml b/drawio/data.yml deleted file mode 100644 index 1bde3f1b5..000000000 --- a/drawio/data.yml +++ /dev/null @@ -1,30 +0,0 @@ -name: Draw.io -tags: - - 实用工具 -title: 用于一般图表绘制的 JavaScript 客户端编辑器 -description: 用于一般图表绘制的 JavaScript 客户端编辑器 -additionalProperties: - key: drawio - name: Draw.io - tags: - - Tool - shortDescZh: 用于一般图表绘制的 JavaScript 客户端编辑器 - shortDescEn: JavaScript, client-side editor for general diagramming - description: - en: JavaScript, client-side editor for general diagramming - ja: JavaScript、一般的なダイアグラム作成のためのクライアントサイドエディタ - ms: JavaScript, penyunting sisi-klien untuk diagram am - pt-br: JavaScript, editor do lado do cliente para diagramas gerais - ru: JavaScript, клиентский редактор для общих диаграмм - ko: 일반 다이어그램을 위한 JavaScript 클라이언트 측 편집기 - zh-Hant: 用於一般圖表繪製的 JavaScript 客戶端編輯器 - zh: 用于一般图表绘制的 JavaScript 客户端编辑器 - type: website - crossVersionUpdate: true - limit: 0 - website: https://www.drawio.com/ - github: https://github.com/jgraph/drawio - document: https://github.com/jgraph/drawio/wiki - architectures: - - amd64 - - arm64 diff --git a/drawio/logo.png b/drawio/logo.png deleted file mode 100644 index 0be49392f..000000000 Binary files a/drawio/logo.png and /dev/null differ diff --git a/dvwa/README.md b/dvwa/README.md deleted file mode 100644 index 552d98cc1..000000000 --- a/dvwa/README.md +++ /dev/null @@ -1,17 +0,0 @@ -# DVWA (Damn Vulnerable Web Application) - -## 默认账户密码 - -``` -username:admin -password:password -``` - -## 中文名:"该死的" 不安全的Web应用程序 - -**DVWA** 是一个编码差的、易受攻击的 PHP/MySQL Web 应用程序。 - -### 目的 -- 帮助信息安全专业人员在合法的环境中,练习技能和测试工具 -- 帮助 Web 开发人员更好地了解如何加强 Web 应用程序的安全性 -- 帮助学生和教师在可控的教学环境中了解和学习 Web 安全技术 diff --git a/dvwa/README_en.md b/dvwa/README_en.md deleted file mode 100644 index a8d045427..000000000 --- a/dvwa/README_en.md +++ /dev/null @@ -1,15 +0,0 @@ -# DVWA (Damn Vulnerable Web Application) - -## Default Username and Password -``` -username: admin -password: password -``` - -## Chinese Name: "Damn" Insecure Web Application -**DVWA** is a poorly coded, vulnerable PHP/MySQL web application. - -### Purpose -- To help information security professionals practice skills and test tools in a legal environment. -- To assist web developers in better understanding how to secure web applications. -- To help students and educators learn and teach web security techniques in a controlled educational environment. \ No newline at end of file diff --git a/dvwa/data.yml b/dvwa/data.yml deleted file mode 100644 index 46d5c0ac4..000000000 --- a/dvwa/data.yml +++ /dev/null @@ -1,30 +0,0 @@ -name: DVWA -tags: - - 安全 -title: DVWA -description: 一个用来进行安全脆弱性鉴定的 PHP/MySQL Web 应用平台。 -additionalProperties: - key: dvwa - name: DVWA - tags: - - Security - shortDescZh: 一个用来进行安全脆弱性鉴定的 PHP/MySQL Web 应用平台。 - shortDescEn: DVWA (Damn Vulnerable Web Application) - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://github.com/digininja/DVWA - github: https://github.com/digininja/DVWA - document: https://github.com/digininja/DVWA - description: - en: DVWA (Damn Vulnerable Web Application) - zh: 一个用来进行安全脆弱性鉴定的 PHP/MySQL Web 应用平台。 - zh-Hant: 一個用來進行安全脆弱性鑑定的 PHP/MySQL Web 應用平台。 - ja: セキュリティ脆弱性評価のための PHP/MySQL Web アプリケーションプラットフォーム。 - ms: Platform aplikasi web PHP/MySQL untuk penilaian kerentanan keselamatan. - pt-br: Uma plataforma de aplicação web PHP/MySQL para avaliação de vulnerabilidades de segurança. - ru: Платформа веб-приложений PHP/MySQL для оценки уязвимостей безопасности. - ko: 보안 취약성 평가를 위한 PHP/MySQL 웹 애플리케이션 플랫폼. - architectures: - - amd64 diff --git a/dvwa/latest/data.yml b/dvwa/latest/data.yml deleted file mode 100644 index 0e95b034b..000000000 --- a/dvwa/latest/data.yml +++ /dev/null @@ -1,172 +0,0 @@ -additionalProperties: - formFields: - - child: - default: "" - envKey: PANEL_DB_HOST - required: true - type: service - default: mysql - envKey: PANEL_DB_TYPE - labelEn: Database Service - labelZh: 数据库服务 - label: - en: Database Service - ja: データベース サービス - ms: Perkhidmatan Pangkalan Data - pt-br: Serviço de Banco de Dados - ru: Сервис базы данных - ko: 데이터베이스 서비스 - zh: 数据库服务 - zh-Hant: 數據庫服務 - required: true - type: apps - values: - - label: MySQL - value: mysql - - label: MariaDB - value: mariadb - - default: dvwa - envKey: PANEL_DB_NAME - labelEn: Database - labelZh: 数据库名 - label: - en: Database - ja: データベース - ms: Pangkalan Data - pt-br: Banco de Dados - ru: База данных - ko: 데이터베이스 - zh: 数据库名 - zh-Hant: 數據庫名 - random: true - required: true - rule: paramCommon - type: text - - default: dvwa - envKey: PANEL_DB_USER - labelEn: User - labelZh: 数据库用户 - label: - en: User - ja: ユーザー - ms: Pengguna - pt-br: Usuário - ru: Пользователь - ko: 사용자 - zh: 数据库用户 - zh-Hant: 數據庫用戶 - random: true - required: true - rule: paramCommon - type: text - - default: dvwa - envKey: PANEL_DB_USER_PASSWORD - labelEn: Password - labelZh: 数据库用户密码 - label: - en: Password - ja: パスワード - ms: Kata laluan - pt-br: Senha - ru: Пароль - ko: 비밀번호 - zh: 数据库用户密码 - zh-Hant: 數據庫用戶密碼 - random: true - required: true - type: password - - default: "low" - envKey: DVWA_SECURITY_LEVEL - labelEn: Security level - labelZh: 安全级别 - label: - en: Security level - ja: セキュリティレベル - ms: Tahap Keselamatan - pt-br: Nível de Segurança - ru: Уровень безопасности - ko: 보안 수준 - zh: 安全级别 - zh-Hant: 安全級別 - required: true - type: select - values: - - label: 低 - value: "low" - - label: 中 - value: "medium" - - label: 高 - value: "high" - - label: 极高 - value: "impossible" - - default: "zh" - envKey: DVWA_DEFAULT_LOCALE - labelEn: Locale - labelZh: 语言环境 - label: - en: Locale - ja: ロケール - ms: Lokal - pt-br: Localidade - ru: Локаль - ko: 로케일 - zh: 语言环境 - zh-Hant: 語言環境 - required: true - type: select - values: - - label: 中文 - value: "zh" - - label: 英文 - value: "en" - - default: "" - edit: true - envKey: DVWA_RECAPTCHA_PUBLIC_KEY - labelEn: Recaptcha Public Key - labelZh: 验证码公钥 - label: - en: Recaptcha Public Key - ja: Recaptcha 公開鍵 - ms: Kunci Awam Recaptcha - pt-br: Chave Pública Recaptcha - ru: Публичный ключ Recaptcha - ko: Recaptcha 공개 키 - zh: 验证码公钥 - zh-Hant: 驗證碼公鑰 - required: false - rule: paramCommon - type: text - - default: "" - edit: true - envKey: DVWA_RECAPTCHA_PRIVATE_KEY - labelEn: Recaptcha Private Key - labelZh: 验证码私钥 - label: - en: Recaptcha Private Key - ja: Recaptcha 秘密鍵 - ms: Kunci Peribadi Recaptcha - pt-br: Chave Privada Recaptcha - ru: Приватный ключ Recaptcha - ko: Recaptcha 개인 키 - zh: 验证码私钥 - zh-Hant: 驗證碼私鑰 - required: false - rule: paramCommon - type: text - - default: "4280" - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh: 端口 - zh-Hant: 埠 - required: true - rule: paramPort - type: number diff --git a/dvwa/latest/docker-compose.yml b/dvwa/latest/docker-compose.yml deleted file mode 100644 index e3d774bbb..000000000 --- a/dvwa/latest/docker-compose.yml +++ /dev/null @@ -1,24 +0,0 @@ -services: - dvwa: - image: ghcr.io/digininja/dvwa:latest - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_HTTP}:80 - environment: - - DB_SERVER=${PANEL_DB_HOST} - - DB_PORT=${PANEL_DB_PORT} - - DB_DATABASE=${PANEL_DB_NAME} - - DB_USER=${PANEL_DB_USER} - - DB_PASSWORD=${PANEL_DB_USER_PASSWORD} - - DEFAULT_SECURITY_LEVEL=${DVWA_SECURITY_LEVEL} - - RECAPTCHA_PUBLIC_KEY=${DVWA_RECAPTCHA_PUBLIC_KEY} - - RECAPTCHA_PRIVATE_KEY=${DVWA_RECAPTCHA_PRIVATE_KEY} - - DEFAULT_LOCALE=${DVWA_DEFAULT_LOCALE} - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/dvwa/logo.png b/dvwa/logo.png deleted file mode 100644 index bb4360ee9..000000000 Binary files a/dvwa/logo.png and /dev/null differ diff --git a/easyimage2/2.8.6/data.yml b/easyimage2/2.8.6/data.yml deleted file mode 100644 index 3fc980635..000000000 --- a/easyimage2/2.8.6/data.yml +++ /dev/null @@ -1,17 +0,0 @@ -additionalProperties: - formFields: - - default: 40061 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number - - default: Asia/Shanghai - edit: true - envKey: TIME_ZONE - labelEn: Time zone - labelZh: 时区 - required: true - type: text diff --git a/easyimage2/2.8.6/docker-compose.yml b/easyimage2/2.8.6/docker-compose.yml deleted file mode 100644 index 7231e9a7d..000000000 --- a/easyimage2/2.8.6/docker-compose.yml +++ /dev/null @@ -1,22 +0,0 @@ -services: - easyimage: - container_name: ${CONTAINER_NAME} - image: ddsderek/easyimage:v2.8.6 - restart: always - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTP}:80" - volumes: - - ./data/config:/app/web/config - - ./data/i:/app/web/i - environment: - - TZ=${TIME_ZONE} - - PUID=1000 - - PGID=1000 - - DEBUG=false - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/easyimage2/README.md b/easyimage2/README.md deleted file mode 100644 index 5b597560d..000000000 --- a/easyimage2/README.md +++ /dev/null @@ -1,28 +0,0 @@ -# EasyImage2.0 简单图床 - -简单图床 - 一款功能强大无数据库的图床 2.0 版。 - -## 特点: - -* [x] 支持API -* [x] 支持仅登录后上传 -* [x] 支持设置图片质量 -* [x] 支持压缩图片大小 -* [x] 支持文字/图片水印 -* [x] 支持设置图片指定宽/高 -* [x] 支持上传图片转换为指定格式 -* [x] 支持限制最低宽度/高度上传 -* [x] 支持上传其他文件格式 -* [x] 在线管理图片 -* [x] 支持网站统计 -* [x] 支持设置广告 -* [x] 支持图片鉴黄 -* [x] 支持自定义代码 -* [x] 支持上传IP黑白名单 -* [x] 支持上传日志IP定位 -* [x] 支持限制日上传次数 -* [x] 支持创建仅上传用户 -* [x] 对于安装环境要求极低 -* [x] 对于服务器性能要求极低 -* [x] 理论上[支持所有常见格式](https://github.com/icret/EasyImages2.0/blob/master/docs/其他格式.md) -* [x] 更多功能支持请安装尝试··· \ No newline at end of file diff --git a/easyimage2/data.yml b/easyimage2/data.yml deleted file mode 100644 index 54c652762..000000000 --- a/easyimage2/data.yml +++ /dev/null @@ -1,23 +0,0 @@ -name: EasyImage2.0 -tags: - - 实用工具 -title: 一款功能强大无数据库的图床 2.0 版 -description: 一款功能强大无数据库的图床 2.0 版 -additionalProperties: - key: easyimage2 - name: EasyImage2.0 - tags: - - Tool - shortDescZh: 一款功能强大无数据库的图床 2.0 版 - shortDescEn: A powerful database-free graph bed version 2.0 - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://github.com/icret/EasyImages2.0 - github: https://github.com/icret/EasyImages2.0 - document: https://icret.github.io/EasyImages2.0/ - architectures: - - amd64 - - arm64 - - arm/v7 diff --git a/easyimage2/logo.png b/easyimage2/logo.png deleted file mode 100644 index 9cec3e62d..000000000 Binary files a/easyimage2/logo.png and /dev/null differ diff --git a/elasticsearch/7.17.28/data.yml b/elasticsearch/7.17.28/data.yml deleted file mode 100644 index c32f690c4..000000000 --- a/elasticsearch/7.17.28/data.yml +++ /dev/null @@ -1,73 +0,0 @@ -additionalProperties: - formFields: - - default: 9200 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: HTTP Port - labelZh: HTTP端口 - label: - en: HTTP Port - ja: HTTPポート - ms: Port HTTP - pt-br: Porta HTTP - ru: HTTP-порт - ko: HTTP 포트 - zh: HTTP端口 - zh-Hant: HTTP連接埠 - required: true - rule: paramPort - type: number - - default: "true" - edit: true - envKey: ELASTIC_SECURITY - labelEn: Password Verification - labelZh: 开启密码验证 - label: - en: Password Verification - ja: パスワード検証 - ms: Pengesahan Kata Laluan - pt-br: Verificação de Senha - ru: Проверка пароля - ko: 비밀번호 확인 - zh: 开启密码验证 - zh-Hant: 開啟密碼驗證 - required: true - type: select - values: - - label: "True" - value: "true" - - label: "False" - value: "false" - - default: "Elastic" - edit: true - envKey: ELASTIC_PASSWORD - labelEn: Password - labelZh: 密码 - label: - en: Password - ja: パスワード - ms: Kata laluan - pt-br: Senha - ru: Пароль - ko: 비밀번호 - zh: 密码 - zh-Hant: 密碼 - random: true - required: true - type: password - - default: "ES_JAVA_OPTS=-Xlog:disable -Xlog:gc=debug:stderr -Xms512m -Xmx512m" - edit: true - envKey: P_ES_JAVA_OPTS - labelEn: ES JAVA OPTS - labelZh: ES JAVA OPTS - label: - en: ES JAVA OPTS - ja: ES JAVA オプション - ms: Pilihan ES JAVA - pt-br: Opções ES JAVA - ru: Параметры ES JAVA - ko: ES JAVA 옵션 - zh: ES JAVA OPTS - zh-Hant: ES JAVA OPTS - required: true - type: text \ No newline at end of file diff --git a/elasticsearch/7.17.28/data/backup/.gitkeep b/elasticsearch/7.17.28/data/backup/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/elasticsearch/7.17.28/data/conf/elasticsearch.yml b/elasticsearch/7.17.28/data/conf/elasticsearch.yml deleted file mode 100644 index a60e2bdba..000000000 --- a/elasticsearch/7.17.28/data/conf/elasticsearch.yml +++ /dev/null @@ -1,6 +0,0 @@ -cluster.name: "docker-cluster" -network.host: 0.0.0.0 -path.repo: ["/usr/share/elasticsearch/backup"] -http.cors.enabled: true -http.cors.allow-origin: "*" -http.cors.allow-headers: X-Requested-With,Content-Type,Content-Length,Authorization \ No newline at end of file diff --git a/elasticsearch/7.17.28/data/data/.gitkeep b/elasticsearch/7.17.28/data/data/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/elasticsearch/7.17.28/docker-compose.yml b/elasticsearch/7.17.28/docker-compose.yml deleted file mode 100644 index 69def1537..000000000 --- a/elasticsearch/7.17.28/docker-compose.yml +++ /dev/null @@ -1,30 +0,0 @@ -services: - elasticsearch: - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTP}:9200" - volumes: - - "./data/data:/usr/share/elasticsearch/data" - - "./data/backup:/usr/share/elasticsearch/backup" - - "./data/conf/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml" - image: elasticsearch:7.17.28 - ulimits: - memlock: - soft: -1 - hard: -1 - nofile: - soft: 65536 - hard: 65536 - environment: - - discovery.type=single-node - - ELASTIC_PASSWORD=${ELASTIC_PASSWORD} - - xpack.security.enabled=${ELASTIC_SECURITY} - - ${P_ES_JAVA_OPTS} - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/elasticsearch/7.17.28/scripts/init.sh b/elasticsearch/7.17.28/scripts/init.sh deleted file mode 100644 index 4e811c86a..000000000 --- a/elasticsearch/7.17.28/scripts/init.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -chown -R 1000:1000 data \ No newline at end of file diff --git a/elasticsearch/8.18.2/data.yml b/elasticsearch/8.18.2/data.yml deleted file mode 100644 index c32f690c4..000000000 --- a/elasticsearch/8.18.2/data.yml +++ /dev/null @@ -1,73 +0,0 @@ -additionalProperties: - formFields: - - default: 9200 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: HTTP Port - labelZh: HTTP端口 - label: - en: HTTP Port - ja: HTTPポート - ms: Port HTTP - pt-br: Porta HTTP - ru: HTTP-порт - ko: HTTP 포트 - zh: HTTP端口 - zh-Hant: HTTP連接埠 - required: true - rule: paramPort - type: number - - default: "true" - edit: true - envKey: ELASTIC_SECURITY - labelEn: Password Verification - labelZh: 开启密码验证 - label: - en: Password Verification - ja: パスワード検証 - ms: Pengesahan Kata Laluan - pt-br: Verificação de Senha - ru: Проверка пароля - ko: 비밀번호 확인 - zh: 开启密码验证 - zh-Hant: 開啟密碼驗證 - required: true - type: select - values: - - label: "True" - value: "true" - - label: "False" - value: "false" - - default: "Elastic" - edit: true - envKey: ELASTIC_PASSWORD - labelEn: Password - labelZh: 密码 - label: - en: Password - ja: パスワード - ms: Kata laluan - pt-br: Senha - ru: Пароль - ko: 비밀번호 - zh: 密码 - zh-Hant: 密碼 - random: true - required: true - type: password - - default: "ES_JAVA_OPTS=-Xlog:disable -Xlog:gc=debug:stderr -Xms512m -Xmx512m" - edit: true - envKey: P_ES_JAVA_OPTS - labelEn: ES JAVA OPTS - labelZh: ES JAVA OPTS - label: - en: ES JAVA OPTS - ja: ES JAVA オプション - ms: Pilihan ES JAVA - pt-br: Opções ES JAVA - ru: Параметры ES JAVA - ko: ES JAVA 옵션 - zh: ES JAVA OPTS - zh-Hant: ES JAVA OPTS - required: true - type: text \ No newline at end of file diff --git a/elasticsearch/8.18.2/data/backup/.gitkeep b/elasticsearch/8.18.2/data/backup/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/elasticsearch/8.18.2/data/conf/elasticsearch.yml b/elasticsearch/8.18.2/data/conf/elasticsearch.yml deleted file mode 100644 index a60e2bdba..000000000 --- a/elasticsearch/8.18.2/data/conf/elasticsearch.yml +++ /dev/null @@ -1,6 +0,0 @@ -cluster.name: "docker-cluster" -network.host: 0.0.0.0 -path.repo: ["/usr/share/elasticsearch/backup"] -http.cors.enabled: true -http.cors.allow-origin: "*" -http.cors.allow-headers: X-Requested-With,Content-Type,Content-Length,Authorization \ No newline at end of file diff --git a/elasticsearch/8.18.2/data/data/.gitkeep b/elasticsearch/8.18.2/data/data/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/elasticsearch/8.18.2/docker-compose.yml b/elasticsearch/8.18.2/docker-compose.yml deleted file mode 100644 index 6bdb9fe34..000000000 --- a/elasticsearch/8.18.2/docker-compose.yml +++ /dev/null @@ -1,30 +0,0 @@ -services: - elasticsearch: - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTP}:9200" - volumes: - - "./data/data:/usr/share/elasticsearch/data" - - "./data/backup:/usr/share/elasticsearch/backup" - - "./data/conf/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml" - image: elasticsearch:8.18.2 - ulimits: - memlock: - soft: -1 - hard: -1 - nofile: - soft: 65536 - hard: 65536 - environment: - - discovery.type=single-node - - ELASTIC_PASSWORD=${ELASTIC_PASSWORD} - - xpack.security.enabled=${ELASTIC_SECURITY} - - ${P_ES_JAVA_OPTS} - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/elasticsearch/8.18.2/scripts/init.sh b/elasticsearch/8.18.2/scripts/init.sh deleted file mode 100644 index 4e811c86a..000000000 --- a/elasticsearch/8.18.2/scripts/init.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -chown -R 1000:1000 data \ No newline at end of file diff --git a/elasticsearch/README.md b/elasticsearch/README.md deleted file mode 100644 index ca0da3d56..000000000 --- a/elasticsearch/README.md +++ /dev/null @@ -1,42 +0,0 @@ -# 默认账户 - -- 默认账户: elastic - -# Elasticsearch - -**Elasticsearch** 是一种分布式 RESTful 搜索引擎,针对生产规模工作负载的速度和相关性进行了优化。您可以使用 Elasticsearch 对海量数据集执行实时搜索应用程序。 - -# 主要功能: - -## 全文搜索 - - - 支持全文搜索和查询,能够快速地在大规模数据集中找到相关的文档。 - - 采用分词、词干化等技术,提供高效的文本搜索。 - -## 分布式性能 - - - 能够水平扩展,轻松地将数据分布到多个节点,实现高性能的数据存储和检索。 - -## 实时数据 - - - 支持实时数据的索引和搜索,能够快速响应新数据的添加、更新和删除操作。 - -## 多种数据类型支持 - - - 可以处理结构化数据、半结构化数据和非结构化数据,如文本、地理空间数据等。 - -## 强大的聚合分析 - - - 提供丰富的聚合功能,能够对数据进行各种汇总、统计和分析操作。 - -## RESTful API - - - 使用简单的HTTP请求,与Elasticsearch交互,执行索引、搜索、管理等操作。 - -## 灵活的插件和生态系统 - - - 具有丰富的插件生态系统,可以扩展其功能,满足不同场景下的需求。 - -## 可视化工具 - - - 有多种可视化工具和仪表盘,如Kibana,用于展示和分析Elasticsearch中的数据。 \ No newline at end of file diff --git a/elasticsearch/README_en.md b/elasticsearch/README_en.md deleted file mode 100644 index c04821c8b..000000000 --- a/elasticsearch/README_en.md +++ /dev/null @@ -1,32 +0,0 @@ -# Default Account -- Default Account: elastic - -# Elasticsearch -**Elasticsearch** is a distributed RESTful search engine optimized for speed and relevance at production scale workloads. You can use Elasticsearch to perform real-time search applications on massive datasets. - -# Key Features: - -## Full-Text Search - - Supports full-text search and queries, enabling quick discovery of relevant documents in large datasets. - - Utilizes techniques like tokenization and stemming for efficient text search. - -## Distributed Performance - - Horizontally scalable, easily distributing data across multiple nodes for high-performance data storage and retrieval. - -## Real-Time Data - - Supports real-time indexing and searching, quickly responding to additions, updates, and deletions of data. - -## Support for Multiple Data Types - - Handles structured, semi-structured, and unstructured data, such as text and geospatial data. - -## Powerful Aggregation Analysis - - Offers rich aggregation capabilities for summarizing, statistics, and analyzing data. - -## RESTful API - - Interact with Elasticsearch using simple HTTP requests to perform indexing, searching, and management operations. - -## Flexible Plugins and Ecosystem - - Features a rich plugin ecosystem to extend its functionality and meet diverse requirements. - -## Visualization Tools - - Includes various visualization tools and dashboards, such as Kibana, for displaying and analyzing data in Elasticsearch. \ No newline at end of file diff --git a/elasticsearch/data.yml b/elasticsearch/data.yml deleted file mode 100644 index ab75e2d07..000000000 --- a/elasticsearch/data.yml +++ /dev/null @@ -1,32 +0,0 @@ -name: Elasticsearch -tags: - - 数据库 -title: Elasticsearch -description: 免费开放、分布式、RESTful 搜索引擎 -additionalProperties: - key: elasticsearch - name: Elasticsearch - tags: - - Database - shortDescZh: 免费开放、分布式、RESTful 搜索引擎 - shortDescEn: Free and Open, Distributed, RESTful Search Engine - type: tool - crossVersionUpdate: false - limit: 0 - recommend: 0 - website: https://www.elastic.co - github: https://github.com/elastic/elasticsearch - document: https://www.elastic.co/guide/en/elasticsearch/reference/8.11/elasticsearch-intro.html - description: - en: Free and Open, Distributed, RESTful Search Engine - zh: 免费开放、分布式、RESTful 搜索引擎 - zh-Hant: 免費開放、分佈式、RESTful 搜索引擎 - ja: 無料でオープン、分散型、RESTful 検索エンジン - ms: Enjin Carian RESTful, Terbuka dan Percuma, Teragih - pt-br: Motor de busca RESTful, distribuído, gratuito e aberto - ru: Бесплатный и открытый, распределенный, RESTful поисковый движок - ko: 무료 오픈, 분산형, RESTful 검색 엔진 - memoryRequired: 1024 - architectures: - - amd64 - - arm64 \ No newline at end of file diff --git a/elasticsearch/logo.png b/elasticsearch/logo.png deleted file mode 100644 index 5b5ec38fa..000000000 Binary files a/elasticsearch/logo.png and /dev/null differ diff --git a/emlog/README.md b/emlog/README.md deleted file mode 100644 index a893449f2..000000000 --- a/emlog/README.md +++ /dev/null @@ -1,27 +0,0 @@ -# emlog - -emlog是一款轻量级博客及CMS建站系统,致力于打造好用的个人云端内容管理系统。 - -## 功能简介 - -- Markdown编辑器:内置Markdown编辑器,并自动保存,使创作过程更加舒适和高效。 -- 多用户角色:支持多种用户角色,同时提供用户注册和登录功能,方便读者和作者的互动。 -- 多媒体资源管理器:内置多媒体资源管理器,方便上传、管理图片、音频、视频和文件等各种媒体资源。 -- 模板主题:应用商店提供多种模板主题,轻松打造独具个性的站点。 -- 插件生态:拥有强大的插件扩展系统,快速扩展站点功能,满足特定需求。 -- 强大的SEO功能:支持文章URL自定义、站点及分类页的TDK定制,有助于提升站点在搜索引擎中的可见性。 -- 自定义侧边栏管理:提供灵活的侧边栏组件管理。 -- 自定义页面:支持创建自定义页面,包括留言板、个人介绍等,帮助你打造更富有个性和功能的站点。 -- 标签和分类:文章可轻松归类和标记,提供更好的信息组织和检索功能。 - -## 文档 - -[1Panel部署emlog](https://www.emlog.net/docs/#/install_1panel) - -## 更新记录 - -[changelog](https://www.emlog.net/docs/#/changelog) - -## 授权协议 - -发布Emlog软件所依据的许可证是自由软件基金会的GPLv3(或更高版本):[LICENSE](/license.txt) diff --git a/emlog/data.yml b/emlog/data.yml deleted file mode 100755 index 0dc1dd37c..000000000 --- a/emlog/data.yml +++ /dev/null @@ -1,22 +0,0 @@ -name: emlog -tags: - - 建站 -title: 轻量级开源博客及建站系统 -description: 轻量级开源博客及建站系统。 -additionalProperties: - key: emlog - name: emlog - tags: - - Website - shortDescZh: 轻量级开源博客及建站系统 - shortDescEn: Lightweight open source blogging and site building system - type: website - crossVersionUpdate: true - limit: 0 - website: https://www.emlog.net/ - github: https://github.com/emlog/emlog - document: https://www.emlog.net/docs/#/install_1panel - architectures: - - amd64 - - arm64 - - arm/v7 diff --git a/emlog/logo.png b/emlog/logo.png deleted file mode 100644 index cf81b3a57..000000000 Binary files a/emlog/logo.png and /dev/null differ diff --git a/emlog/pro-latest-php7.4-apache/data.yml b/emlog/pro-latest-php7.4-apache/data.yml deleted file mode 100755 index 60ed41c25..000000000 --- a/emlog/pro-latest-php7.4-apache/data.yml +++ /dev/null @@ -1,57 +0,0 @@ -additionalProperties: - formFields: - - child: - default: "" - envKey: PANEL_DB_HOST - required: true - type: service - default: mysql - envKey: PANEL_DB_TYPE - labelEn: Database Service - labelZh: 数据库服务 - required: true - type: apps - values: - - label: MySQL - value: mysql - - label: MariaDB - value: mariadb - - default: emlog - envKey: PANEL_DB_NAME - labelEn: Database - labelZh: 数据库名 - random: true - required: true - rule: paramCommon - type: text - - default: emlog - envKey: PANEL_DB_USER - labelEn: Database User - labelZh: 数据库用户 - random: true - required: true - rule: paramCommon - type: text - - default: emlog - envKey: PANEL_DB_USER_PASSWORD - labelEn: Database User Password - labelZh: 数据库用户密码 - random: true - required: true - type: password - - default: 8080 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口,建议填写 8080,然后在【网站】管理中安装 OpenResty,创建网站关联emlog应用,暴露80、443端口 - required: true - rule: paramPort - type: number - - default: localhost - edit: true - envKey: EMLOG_EXTERNAL_URL - labelEn: site domain - labelZh: 域名,建议填写 localhost, 然后在【网站】管理中安装 OpenResty,创建网站关联emlog应用绑定域名 - required: true - rule: paramExtUrl - type: text diff --git a/emlog/pro-latest-php7.4-apache/docker-compose.yml b/emlog/pro-latest-php7.4-apache/docker-compose.yml deleted file mode 100644 index c514b2b01..000000000 --- a/emlog/pro-latest-php7.4-apache/docker-compose.yml +++ /dev/null @@ -1,22 +0,0 @@ -services: - emlog: - image: emlog/emlog:pro-latest-php7.4-apache - container_name: ${CONTAINER_NAME} - restart: always - environment: - - EMLOG_DB_HOST=${PANEL_DB_HOST} - - EMLOG_DB_NAME=${PANEL_DB_NAME} - - EMLOG_DB_USER=${PANEL_DB_USER} - - EMLOG_DB_PASSWORD=${PANEL_DB_USER_PASSWORD} - - EMLOG_DOMAIN_NAME=${EMLOG_EXTERNAL_URL} - ports: - - ${PANEL_APP_PORT_HTTP}:80 - networks: - - 1panel-network - volumes: - - ./data:/app - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/emqx/5.10.0/data.yml b/emqx/5.10.0/data.yml deleted file mode 100755 index ca6183abf..000000000 --- a/emqx/5.10.0/data.yml +++ /dev/null @@ -1,87 +0,0 @@ -additionalProperties: - formFields: - - default: 18083 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Dashboard Port - labelZh: Dashboard 控制台端口 - label: - en: Dashboard Port - ja: ダッシュボード ポート - ms: Port Papan Pemuka - pt-br: Porta do Painel - ru: Порт панели управления - ko: 대시보드 포트 - zh: Dashboard 控制台端口 - zh-Hant: Dashboard 控制台埠 - required: true - rule: paramPort - type: number - - default: 1883 - edit: true - envKey: EMQX_PORT_1883 - labelEn: MQTT Port - labelZh: MQTT 协议端口 - label: - en: MQTT Port - ja: MQTT ポート - ms: Port MQTT - pt-br: Porta MQTT - ru: Порт MQTT - ko: MQTT 포트 - zh: MQTT 协议端口 - zh-Hant: MQTT 協議埠 - required: true - rule: paramPort - type: number - - default: 8083 - edit: true - envKey: EMQX_PORT_8083 - labelEn: WebSocket Port - labelZh: WebSocket 端口 - label: - en: WebSocket Port - ja: WebSocket ポート - ms: Port WebSocket - pt-br: Porta WebSocket - ru: Порт WebSocket - ko: WebSocket 포트 - zh: WebSocket 端口 - zh-Hant: WebSocket 埠 - required: true - rule: paramPort - type: number - - default: 8084 - edit: true - envKey: EMQX_PORT_8084 - labelEn: WebSocket SSL Port - labelZh: WebSocket SSL 端口 - label: - en: WebSocket SSL Port - ja: WebSocket SSL ポート - ms: Port WebSocket SSL - pt-br: Porta WebSocket SSL - ru: Порт WebSocket SSL - ko: WebSocket SSL 포트 - zh: WebSocket SSL 端口 - zh-Hant: WebSocket SSL 埠 - required: true - rule: paramPort - type: number - - default: 8883 - edit: true - envKey: EMQX_PORT_8883 - labelEn: MQTT SSL Port - labelZh: MQTT SSL 端口 - label: - en: MQTT SSL Port - ja: MQTT SSL ポート - ms: Port MQTT SSL - pt-br: Porta MQTT SSL - ru: Порт MQTT SSL - ko: MQTT SSL 포트 - zh: MQTT SSL 端口 - zh-Hant: MQTT SSL 埠 - required: true - rule: paramPort - type: number diff --git a/emqx/5.10.0/docker-compose.yml b/emqx/5.10.0/docker-compose.yml deleted file mode 100644 index 177bcb058..000000000 --- a/emqx/5.10.0/docker-compose.yml +++ /dev/null @@ -1,24 +0,0 @@ -services: - emqx: - image: emqx/emqx:5.10.0 - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - user: '0' - ports: - - ${PANEL_APP_PORT_HTTP}:18083 - - ${EMQX_PORT_1883}:1883 - - ${EMQX_PORT_8083}:8083 - - ${EMQX_PORT_8084}:8084 - - ${EMQX_PORT_8883}:8883 - volumes: - - ./data:/opt/emqx/data - - ./log:/opt/emqx/log - environment: - - EMQX_NODE_NAME=emqx@${CONTAINER_NAME} - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/emqx/README.md b/emqx/README.md deleted file mode 100644 index ccac6ff3a..000000000 --- a/emqx/README.md +++ /dev/null @@ -1,45 +0,0 @@ -# EMQX - -EMQX 是一款基于 Erlang/OTP 构建的开源 MQTT 消息代理(Broker),专门用于支持 MQTT 协议。它提供了一系列强大的功能,使其成为物联网(IoT)应用程序的理想选择。以下是 EMQX 的主要功能: - -## 主要功能: - -### MQTT 3.1 和 3.1.1 支持 - -EMQX 支持 MQTT 协议的 3.1 和 3.1.1 版本,允许设备和应用程序使用 MQTT 进行高效的消息通信。 - -### MQTT 5.0 支持 - -EMQX 还支持 MQTT 5.0 协议,该协议引入了更多的功能,如属性、共享订阅、会话过期等,提高了消息传递的灵活性。 - -### 集群支持 - -EMQX 具有强大的集群功能,可以横向扩展以处理大规模的消息流量和连接请求。这确保了高可用性和可扩展性。 - -### 插件系统 - -EMQX 提供了丰富的插件系统,允许用户根据需要扩展其功能,包括认证、授权、数据存储、消息转发等方面的插件。 - -### 安全性 - -EMQX 提供了多层次的安全性,包括基于用户名和密码的认证、TLS/SSL 支持以进行加密通信、ACL(访问控制列表)以及 MQTT 的安全功能。 - -### 遗愿消息 - -EMQX 支持 MQTT 遗愿消息,确保消息能够在设备断开连接后得到适当的处理。 - -### 数据存储 - -EMQX 支持多种数据存储后端,包括 Mnesia、MySQL、PostgreSQL 和 Redis,以便于灵活地存储消息数据。 - -### 可视化监控 - -EMQX 提供了一个用户友好的 Web 界面,用于监控连接、会话、消息发布和订阅等关键指标。 - -### 负载均衡 - -EMQX 具备负载均衡功能,可自动将连接和消息均匀分布到集群中的各个节点,以提高性能和稳定性。 - -### 高可用性 - -EMQX 支持热备份和故障切换,确保即使在节点故障时也能保持高可用性。 \ No newline at end of file diff --git a/emqx/README_en.md b/emqx/README_en.md deleted file mode 100644 index 8d6922e6c..000000000 --- a/emqx/README_en.md +++ /dev/null @@ -1,34 +0,0 @@ -# EMQX -EMQX is an open-source MQTT message broker built on Erlang/OTP, specifically designed to support the MQTT protocol. It offers a range of powerful features, making it an ideal choice for IoT (Internet of Things) applications. Below are the main features of EMQX: - -## Key Features: - -### MQTT 3.1 and 3.1.1 Support -EMQX supports versions 3.1 and 3.1.1 of the MQTT protocol, enabling devices and applications to communicate efficiently using MQTT. - -### MQTT 5.0 Support -EMQX also supports the MQTT 5.0 protocol, which introduces additional features such as properties, shared subscriptions, session expiration, and more, enhancing message delivery flexibility. - -### Clustering Support -EMQX has robust clustering capabilities, allowing horizontal scaling to handle large-scale message traffic and connection requests. This ensures high availability and scalability. - -### Plugin System -EMQX provides a rich plugin system, enabling users to extend its functionality as needed, including plugins for authentication, authorization, data storage, message forwarding, and more. - -### Security -EMQX offers multi-layered security, including username and password-based authentication, TLS/SSL support for encrypted communication, ACL (Access Control Lists), and MQTT security features. - -### Last Will Messages -EMQX supports MQTT last will messages, ensuring messages are appropriately handled after a device disconnects. - -### Data Storage -EMQX supports various data storage backends, including Mnesia, MySQL, PostgreSQL, and Redis, for flexible message data storage. - -### Visualization and Monitoring -EMQX provides a user-friendly web interface for monitoring key metrics such as connections, sessions, message publishing, and subscriptions. - -### Load Balancing -EMQX features load balancing capabilities, automatically distributing connections and messages evenly across cluster nodes to improve performance and stability. - -### High Availability -EMQX supports hot backups and failover, ensuring high availability even in the event of node failures. \ No newline at end of file diff --git a/emqx/data.yml b/emqx/data.yml deleted file mode 100755 index a33b22804..000000000 --- a/emqx/data.yml +++ /dev/null @@ -1,32 +0,0 @@ -name: EMQX -tags: - - 中间件 -title: 适用于 IoT、IIoT 和联网车辆的最具可扩展性的开源 MQTT 代理 -description: 适用于 IoT、IIoT 和联网车辆的最具可扩展性的开源 MQTT 代理 -additionalProperties: - key: emqx - name: EMQX - tags: - - Middleware - shortDescZh: 适用于 IoT、IIoT 和联网车辆的最具可扩展性的开源 MQTT 代理 - shortDescEn: The most scalable open-source MQTT broker for IoT, IIoT, and connected vehicles - type: website - crossVersionUpdate: false - limit: 0 - recommend: 0 - website: https://www.emqx.io/ - github: https://github.com/emqx/emqx - document: https://www.emqx.io/docs/en/v5.0/ - description: - en: The most scalable open-source MQTT broker for IoT, IIoT, and connected vehicles - zh: 适用于 IoT、IIoT 和联网车辆的最具可扩展性的开源 MQTT 代理 - zh-Hant: 適用於 IoT、IIoT 和聯網車輛的最具可擴展性的開源 MQTT 代理 - ja: IoT、IIoT、および接続された車両向けの最もスケーラブルなオープンソース MQTT ブローカー - ms: Broker MQTT sumber terbuka yang paling skalabel untuk IoT, IIoT, dan kenderaan bersambung - pt-br: O broker MQTT de código aberto mais escalável para IoT, IIoT e veículos conectados - ru: Самый масштабируемый брокер MQTT с открытым исходным кодом для IoT, IIoT и подключенных транспортных средств - ko: IoT, IIoT 및 연결된 차량을 위한 가장 확장 가능한 오픈 소스 MQTT 브로커 - memoryRequired: 1024 - architectures: - - amd64 - - arm64 diff --git a/emqx/logo.png b/emqx/logo.png deleted file mode 100644 index c08319890..000000000 Binary files a/emqx/logo.png and /dev/null differ diff --git a/excalidraw/README.md b/excalidraw/README.md deleted file mode 100644 index 66581c14e..000000000 --- a/excalidraw/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# Excalidraw - -Excalidraw 是一款在线手绘风格的绘图工具,适合创建各种图表和草图,包括流程图、思维导图、用户界面设计等。 - -## 主要功能: - -- **手绘风格**:Excalidraw 提供独特的手绘效果,使得图形看起来更具创意和个性。 -- **实时协作**:支持多人实时协作,用户可以同时在同一画布上进行编辑,非常适合团队讨论。 -- **自定义图形**:用户可以自由绘制和编辑图形,自定义元素的形状和样式。 -- **导出选项**:支持将创建的图形导出为多种格式,如PNG、SVG等,方便分享和保存。 -- **易于使用**:直观的界面和简单的工具栏,降低了上手难度,适合各种用户。 -- **图形库**:提供丰富的图形库,用户可以快速添加常用元素,提升绘图效率。 -- **版本历史**:支持查看和恢复以前的版本,便于管理图形的变化过程。 -- **嵌入功能**:用户可以将绘制的图形嵌入到网站或文档中,方便与他人共享。 diff --git a/excalidraw/README_en.md b/excalidraw/README_en.md deleted file mode 100644 index c4ba79aa2..000000000 --- a/excalidraw/README_en.md +++ /dev/null @@ -1,12 +0,0 @@ -# Excalidraw -Excalidraw is an online hand-drawn style drawing tool suitable for creating various diagrams and sketches, including flowcharts, mind maps, user interface designs, and more. - -## Key Features: -- **Hand-Drawn Style**: Excalidraw offers a unique hand-drawn effect, making graphics look more creative and personalized. -- **Real-Time Collaboration**: Supports real-time collaboration, allowing multiple users to edit on the same canvas simultaneously, ideal for team discussions. -- **Custom Graphics**: Users can freely draw and edit graphics, customizing the shapes and styles of elements. -- **Export Options**: Allows exporting created graphics in various formats, such as PNG and SVG, for easy sharing and saving. -- **Ease of Use**: Intuitive interface and simple toolbar reduce the learning curve, making it suitable for all users. -- **Graphics Library**: Provides a rich library of graphics, enabling users to quickly add commonly used elements and improve drawing efficiency. -- **Version History**: Supports viewing and restoring previous versions, making it easier to manage changes to graphics. -- **Embedding Functionality**: Users can embed created graphics into websites or documents for easy sharing with others. \ No newline at end of file diff --git a/excalidraw/data.yml b/excalidraw/data.yml deleted file mode 100644 index 8c25eb51e..000000000 --- a/excalidraw/data.yml +++ /dev/null @@ -1,29 +0,0 @@ -name: excalidraw -tags: - - 实用工具 -title: Excalidraw -description: 用于绘制手绘风格图表的虚拟白板 -additionalProperties: - key: excalidraw - name: Excalidraw - tags: - - Tool - shortDescZh: 用于绘制手绘风格图表的虚拟白板 - shortDescEn: Virtual whiteboard for sketching hand-drawn like diagrams - type: website - crossVersionUpdate: true - limit: 0 - website: https://excalidraw.com/ - github: https://github.com/excalidraw/excalidraw - document: https://docs.excalidraw.com/docs - description: - en: Virtual whiteboard for sketching hand-drawn like diagrams - zh: 用于绘制手绘风格图表的虚拟白板 - zh-Hant: 用於繪製手繪風格圖表的虛擬白板 - ja: 手描き風の図をスケッチするための仮想ホワイトボード - ms: Papan putih maya untuk melakar diagram seperti lukisan tangan - pt-br: Quadro branco virtual para esboçar diagramas com aparência de desenho à mão - ru: Виртуальная доска для рисования диаграмм в стиле ручной работы - ko: 손으로 그린 것 같은 다이어그램을 스케치하기 위한 가상 화이트보드 - architectures: - - amd64 \ No newline at end of file diff --git a/excalidraw/latest/data.yml b/excalidraw/latest/data.yml deleted file mode 100644 index 541ce2967..000000000 --- a/excalidraw/latest/data.yml +++ /dev/null @@ -1,19 +0,0 @@ -additionalProperties: - formFields: - - default: 5000 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: HTTP Port - labelZh: HTTP 端口 - label: - en: HTTP Port - ja: HTTPポート - ms: Port HTTP - pt-br: Porta HTTP - ru: HTTP-порт - ko: HTTP 포트 - zh: HTTP 端口 - zh-Hant: HTTP 埠 - required: true - rule: paramPort - type: number \ No newline at end of file diff --git a/excalidraw/latest/docker-compose.yml b/excalidraw/latest/docker-compose.yml deleted file mode 100644 index 643c92a00..000000000 --- a/excalidraw/latest/docker-compose.yml +++ /dev/null @@ -1,14 +0,0 @@ -services: - excalidraw: - image: excalidraw/excalidraw:latest - container_name: ${CONTAINER_NAME} - restart: unless-stopped - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_HTTP}:80 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/excalidraw/logo.png b/excalidraw/logo.png deleted file mode 100644 index 60bf528e3..000000000 Binary files a/excalidraw/logo.png and /dev/null differ diff --git a/filebrowser/2.33.4/data.yml b/filebrowser/2.33.4/data.yml deleted file mode 100644 index e9b9d5d37..000000000 --- a/filebrowser/2.33.4/data.yml +++ /dev/null @@ -1,35 +0,0 @@ -additionalProperties: - formFields: - - default: 40071 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: HTTP Port - labelZh: HTTP端口 - label: - en: HTTP Port - ja: HTTPポート - ms: Port HTTP - pt-br: Porta HTTP - ru: HTTP-порт - ko: HTTP 포트 - zh: HTTP端口 - zh-Hant: HTTP連接埠 - required: true - rule: paramPort - type: number - - default: ./data/mnt - edit: true - envKey: MOUNT_PATH - labelEn: Mount folder path - labelZh: 挂载文件夹路径 - label: - en: Mount folder path - ja: マウントフォルダパス - ms: Laluan folder mount - pt-br: Caminho da pasta de montagem - ru: Путь к папке монтирования - ko: 마운트 폴더 경로 - zh: 挂载文件夹路径 - zh-Hant: 掛載文件夾路徑 - required: true - type: text diff --git a/filebrowser/2.33.4/data/.filebrowser.json b/filebrowser/2.33.4/data/.filebrowser.json deleted file mode 100644 index 5f8944e48..000000000 --- a/filebrowser/2.33.4/data/.filebrowser.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "port": 80, - "baseURL": "", - "address": "", - "log": "stdout", - "database": "/database.db", - "root": "/srv" - } diff --git a/filebrowser/2.33.4/data/database.db b/filebrowser/2.33.4/data/database.db deleted file mode 100644 index e69de29bb..000000000 diff --git a/filebrowser/2.33.4/docker-compose.yml b/filebrowser/2.33.4/docker-compose.yml deleted file mode 100644 index f1a64186c..000000000 --- a/filebrowser/2.33.4/docker-compose.yml +++ /dev/null @@ -1,18 +0,0 @@ -services: - filebrowser: - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTP}:80" - volumes: - - "${MOUNT_PATH}:/srv" - - "./data/database.db:/database.db" - - "./data/.filebrowser.json:/.filebrowser.json" - image: filebrowser/filebrowser:v2.33.4 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/filebrowser/README.md b/filebrowser/README.md deleted file mode 100644 index bc14badb7..000000000 --- a/filebrowser/README.md +++ /dev/null @@ -1,21 +0,0 @@ -# 使用说明 - -- 默认账户密码 - -``` -username:admin -password:admin -``` - -# filebrowser - -**filebrowser** 提供了指定目录下的文件管理界面,可以用来上传、删除、预览、重命名和编辑文件。它允许创建多个用户,每个用户可以有自己的目录。它可以用作独立的应用程序。 - -## 主要功能: - -- **文件管理**:浏览文件和文件夹,创建、复制、移动和删除文件,以及创建新文件夹。 -- **文件预览**:预览文本文件、图像、视频和其他常见文件格式,方便快速查看内容。 -- **文件编辑**:对文本文件进行编辑,例如代码文件(支持语法高亮)、配置文件等。 -- **文件分享**:生成链接或共享码,以便他人访问特定文件或文件夹。 -- **用户认证和权限控制**:可以设置用户账户、权限和访问控制,确保文件的安全性和隐私性。 -- **多平台支持**:可以在不同的操作系统上部署和运行,例如 Linux、Windows 和 macOS。 \ No newline at end of file diff --git a/filebrowser/README_en.md b/filebrowser/README_en.md deleted file mode 100644 index 9b7f5728f..000000000 --- a/filebrowser/README_en.md +++ /dev/null @@ -1,17 +0,0 @@ -# Instructions for Use -- Default Username and Password -``` -username: admin -password: admin -``` - -# filebrowser -**filebrowser** provides a file management interface for a specified directory, allowing you to upload, delete, preview, rename, and edit files. It supports creating multiple users, each with their own directory. It can be used as a standalone application. - -## Key Features: -- **File Management**: Browse files and folders, create, copy, move, and delete files, as well as create new folders. -- **File Preview**: Preview text files, images, videos, and other common file formats for quick content viewing. -- **File Editing**: Edit text files, such as code files (with syntax highlighting), configuration files, etc. -- **File Sharing**: Generate links or share codes to allow others to access specific files or folders. -- **User Authentication and Permission Control**: Set up user accounts, permissions, and access controls to ensure file security and privacy. -- **Multi-Platform Support**: Deploy and run on different operating systems, such as Linux, Windows, and macOS. \ No newline at end of file diff --git a/filebrowser/data.yml b/filebrowser/data.yml deleted file mode 100644 index 040c3c2f5..000000000 --- a/filebrowser/data.yml +++ /dev/null @@ -1,32 +0,0 @@ -name: File Browser -tags: - - 实用工具 -title: 网页文件浏览器 -description: 网页文件浏览器 -additionalProperties: - key: filebrowser - name: File Browser - tags: - - Tool - shortDescZh: 网页文件浏览器 - shortDescEn: Web File Browser - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://filebrowser.org/ - github: https://github.com/filebrowser/filebrowser - document: https://filebrowser.org/ - description: - en: Web File Browser - zh: 网页文件浏览器 - zh-Hant: 網頁文件瀏覽器 - ja: ウェブファイルブラウザ - ms: Penyemak Imbas Fail Web - pt-br: Navegador de Arquivos Web - ru: Веб-браузер файлов - ko: 웹 파일 브라우저 - architectures: - - amd64 - - arm64 - - arm/v7 \ No newline at end of file diff --git a/filebrowser/logo.png b/filebrowser/logo.png deleted file mode 100644 index 109759c68..000000000 Binary files a/filebrowser/logo.png and /dev/null differ diff --git a/filecodebox/README.md b/filecodebox/README.md deleted file mode 100644 index 69f9e0b81..000000000 --- a/filecodebox/README.md +++ /dev/null @@ -1,25 +0,0 @@ -## 默认账户信息 - -``` -后端地址:`/#/admin` -后台密码:`FileCodeBox2023` -``` - -# FileCodeBox - -文件快递柜-匿名口令分享文本,文件,像拿快递一样取文件(FileCodeBox - File Express Cabinet - Anonymous Passcode Sharing Text, Files, Like Taking Express Delivery for Files) - -## 主要特色 - -- [x] 轻量简洁:Fastapi+Sqlite3+Vue3 -- [x] 轻松上传:复制粘贴,拖拽选择 -- [x] 多种类型:文本,文件 -- [x] 防止爆破:错误次数限制 -- [x] 防止滥用:IP限制上传次数 -- [x] 口令分享:随机口令,存取文件,自定义次数以及有效期 -- [x] 国际化:支持中文和英文 -- [x] 匿名分享:无需注册,无需登录 -- [x] 管理面板:查看所有文件,删除文件 -- [x] 一键部署:docker一键部署 -- [x] 自由拓展:S3协议、本地文件流、webdav,可根据需求在storage文件中新增存储引擎 -- [x] 简单明了:适合新手练手项目 diff --git a/filecodebox/beta/data.yml b/filecodebox/beta/data.yml deleted file mode 100644 index 0582c9a17..000000000 --- a/filecodebox/beta/data.yml +++ /dev/null @@ -1,10 +0,0 @@ -additionalProperties: - formFields: - - default: 40157 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number diff --git a/filecodebox/beta/docker-compose.yml b/filecodebox/beta/docker-compose.yml deleted file mode 100644 index 56b2d2963..000000000 --- a/filecodebox/beta/docker-compose.yml +++ /dev/null @@ -1,16 +0,0 @@ -services: - filecodebox: - container_name: ${CONTAINER_NAME} - image: lanol/filecodebox:beta - restart: always - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTP}:12345" - volumes: - - "./data:/app/data" - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/filecodebox/data.yml b/filecodebox/data.yml deleted file mode 100644 index e8f35e5c0..000000000 --- a/filecodebox/data.yml +++ /dev/null @@ -1,25 +0,0 @@ -name: FileCodeBox -tags: -- 实用工具 -- 云存储 -title: 文件快递柜-匿名口令分享文本,文件,像拿快递一样取文件 -description: 文件快递柜-匿名口令分享文本,文件,像拿快递一样取文件 -additionalProperties: - key: filecodebox - name: FileCodeBox - tags: - - Storage - - Tool - shortDescZh: 文件快递柜-匿名口令分享文本,文件,像拿快递一样取文件 - shortDescEn: File Express Cabinet - Anonymous Passcode Sharing Text, Files, Like - Taking Express Delivery for Files - type: website - crossVersionUpdate: true - limit: 1 - recommend: 0 - website: https://share.lanol.cn - github: https://github.com/vastsa/FileCodeBox - document: https://fcb-docs.aiuo.net - architectures: - - amd64 - - arm64 diff --git a/filecodebox/logo.png b/filecodebox/logo.png deleted file mode 100644 index a3a9415ff..000000000 Binary files a/filecodebox/logo.png and /dev/null differ diff --git a/firefly-iii/6.2.12/data.yml b/firefly-iii/6.2.12/data.yml deleted file mode 100644 index 4b40564d1..000000000 --- a/firefly-iii/6.2.12/data.yml +++ /dev/null @@ -1,108 +0,0 @@ -additionalProperties: - formFields: - - default: "" - envKey: APP_KEY - labelEn: Application Key (Must be exactly 32 characters) - labelZh: 应用密钥 (必须为 32 位字符) - label: - en: Application Key (Must be exactly 32 characters) - ja: アプリケーションキー (正確に32文字である必要があります) - ms: Kunci Aplikasi (Mesti tepat 32 aksara) - pt-br: Chave de Aplicação (Deve ter exatamente 32 caracteres) - ru: Ключ приложения (должен быть ровно 32 символа) - ko: 애플리케이션 키 (정확히 32자여야 함) - zh: 应用密钥 (必须为 32 位字符) - zh-Hant: 應用密鑰 (必須為 32 位字符) - required: true - type: text - - default: mysql - envKey: PANEL_DB_TYPE - labelEn: Database Service - labelZh: 数据库服务 - label: - en: Database Service - ja: データベースサービス - ms: Perkhidmatan Pangkalan Data - pt-br: Serviço de Banco de Dados - ru: Сервис базы данных - ko: 데이터베이스 서비스 - zh: 数据库服务 - zh-Hant: 數據庫服務 - required: true - type: apps - child: - default: "" - envKey: PANEL_DB_HOST - required: true - type: service - values: - - label: MySQL - value: mysql - - label: PostgreSQL - value: postgres - - default: firefly - envKey: PANEL_DB_NAME - labelEn: Database - labelZh: 数据库名称 - label: - en: Database - ja: データベース - ms: Pangkalan Data - pt-br: Banco de Dados - ru: База данных - ko: 데이터베이스 - zh: 数据库名称 - zh-Hant: 數據庫名稱 - random: true - required: true - rule: paramCommon - type: text - - default: firefly - envKey: PANEL_DB_USER - labelEn: User - labelZh: 数据库用户 - label: - en: User - ja: ユーザー - ms: Pengguna - pt-br: Usuário - ru: Пользователь - ko: 사용자 - zh: 数据库用户 - zh-Hant: 數據庫用戶 - random: true - required: true - rule: paramCommon - type: text - - default: firefly - envKey: PANEL_DB_USER_PASSWORD - labelEn: Password - labelZh: 数据库用户密码 - label: - en: Password - ja: パスワード - ms: Kata laluan - pt-br: Senha - ru: Пароль - ko: 비밀번호 - zh: 数据库用户密码 - zh-Hant: 數據庫用戶密碼 - random: true - required: true - type: password - - default: 8080 - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: HTTP 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh: HTTP 端口 - zh-Hant: HTTP 埠 - required: true - rule: paramPort - type: number diff --git a/firefly-iii/6.2.12/docker-compose.yml b/firefly-iii/6.2.12/docker-compose.yml deleted file mode 100644 index cfb04f186..000000000 --- a/firefly-iii/6.2.12/docker-compose.yml +++ /dev/null @@ -1,24 +0,0 @@ -services: - firefly-iii: - image: fireflyiii/core:version-6.2.12 - container_name: ${CONTAINER_NAME} - environment: - - APP_KEY=${APP_KEY} - - DB_CONNECTION=${PANEL_DB_TYPE} - - DB_HOST=${PANEL_DB_HOST} - - DB_PORT=${PANEL_DB_PORT} - - DB_DATABASE=${PANEL_DB_NAME} - - DB_USERNAME=${PANEL_DB_USER} - - DB_PASSWORD=${PANEL_DB_USER_PASSWORD} - restart: always - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_HTTP}:8080 - volumes: - - ./firefly-iii/upload:/var/www/html/storage/upload - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/firefly-iii/6.2.12/scripts/init.sh b/firefly-iii/6.2.12/scripts/init.sh deleted file mode 100644 index b4465788f..000000000 --- a/firefly-iii/6.2.12/scripts/init.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -if [[ -f ./.env ]]; then - if grep -q 'PANEL_DB_TYPE="mysql"' ./.env; then - echo "PANEL_DB_TYPE 为 Mysql 数据库, 不作修改" - else - sed -i 's/PANEL_DB_TYPE="postgres"/PANEL_DB_TYPE="pgsql"/g' ./.env - fi -else - echo ".env 文件不存在" -fi \ No newline at end of file diff --git a/firefly-iii/6.2.12/scripts/upgrade.sh b/firefly-iii/6.2.12/scripts/upgrade.sh deleted file mode 100644 index b4465788f..000000000 --- a/firefly-iii/6.2.12/scripts/upgrade.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -if [[ -f ./.env ]]; then - if grep -q 'PANEL_DB_TYPE="mysql"' ./.env; then - echo "PANEL_DB_TYPE 为 Mysql 数据库, 不作修改" - else - sed -i 's/PANEL_DB_TYPE="postgres"/PANEL_DB_TYPE="pgsql"/g' ./.env - fi -else - echo ".env 文件不存在" -fi \ No newline at end of file diff --git a/firefly-iii/README.md b/firefly-iii/README.md deleted file mode 100644 index 335a5044e..000000000 --- a/firefly-iii/README.md +++ /dev/null @@ -1,21 +0,0 @@ -# Firefly III - -**Firefly III** 是一款开源的个人财务管理工具。它可以帮助您跟踪支出和收入,从而减少开支并增加储蓄。 - -## 主要功能: - -- **创建周期性交易**:管理财务时可以设定重复发生的交易,以便更好地控制预算和流动性。 -- **基于规则的交易处理**:用户可以根据自定义的规则来自动处理交易,提高财务管理的效率。 -- **双重记账系统**:采用标准的双重记账法,确保财务记录的准确性。 -- **全面的账户管理功能**: - - 资产账户 - - 共享资产账户(家庭账户) - - 储蓄账户 - - 信用卡账户 - - 负债账户(贷款、抵押贷款) -- **预算管理**:可以创建、修改并管理预算,以更好地控制财务状况。 -- **使用分类组织交易**:通过分类来组织交易,使收支更加清晰。 -- **使用存钱罐朝目标储蓄**:设定具体的财务目标,并通过存钱罐系统积极储蓄。 -- **预测和预期账单**:通过系统预测即将到来的账单,提前做好财务规划。 -- **收入和支出报告查看**:提供详细的收入和支出报告,帮助用户了解财务状况。 -- **使用标签组织支出**:通过标签来进一步细化支出类别,便于跟踪和管理。 diff --git a/firefly-iii/README_en.md b/firefly-iii/README_en.md deleted file mode 100644 index c67cb66e9..000000000 --- a/firefly-iii/README_en.md +++ /dev/null @@ -1,19 +0,0 @@ -# Firefly III -**Firefly III** is an open-source personal finance management tool. It helps you track expenses and income, reducing spending and increasing savings. - -## Key Features: -- **Create Recurring Transactions**: Set up recurring transactions to better manage budgets and liquidity. -- **Rule-Based Transaction Processing**: Automatically process transactions based on custom rules, improving financial management efficiency. -- **Double-Entry Accounting System**: Uses standard double-entry bookkeeping to ensure the accuracy of financial records. -- **Comprehensive Account Management Features**: - - Asset accounts - - Shared asset accounts (family accounts) - - Savings accounts - - Credit card accounts - - Liability accounts (loans, mortgages) -- **Budget Management**: Create, modify, and manage budgets to better control financial situations. -- **Organize Transactions with Categories**: Use categories to organize transactions for clearer income and expenses. -- **Save Towards Goals with Piggy Banks**: Set specific financial goals and actively save using the piggy bank system. -- **Forecast and Anticipate Bills**: Predict upcoming bills and plan finances in advance. -- **View Income and Expense Reports**: Provides detailed income and expense reports to help users understand their financial status. -- **Organize Expenses with Tags**: Further refine expense categories using tags for easier tracking and management. \ No newline at end of file diff --git a/firefly-iii/data.yml b/firefly-iii/data.yml deleted file mode 100644 index 7e6bb4ee8..000000000 --- a/firefly-iii/data.yml +++ /dev/null @@ -1,32 +0,0 @@ -name: Firefly III -tags: - - 实用工具 -title: 开源的个人财务管理工具 -description: 开源的个人财务管理工具 -additionalProperties: - key: firefly-iii - name: Firefly III - tags: - - Tool - shortDescZh: 开源的个人财务管理工具 - shortDescEn: A free and open source personal finance manager - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://www.firefly-iii.org/ - github: https://github.com/firefly-iii/firefly-iii - document: https://docs.firefly-iii.org/ - description: - en: A free and open source personal finance manager - zh: 开源的个人财务管理工具 - zh-Hant: 開源的個人財務管理工具 - ja: 無料でオープンソースの個人財務管理ツール - ms: Pengurus kewangan peribadi sumber terbuka percuma - pt-br: Gerenciador de finanças pessoais gratuito e de código aberto - ru: Бесплатный и открытый менеджер личных финансов - ko: 무료 오픈 소스 개인 금융 관리자 - architectures: - - amd64 - - arm64 - - arm/v7 diff --git a/firefly-iii/logo.png b/firefly-iii/logo.png deleted file mode 100644 index 04426fbf0..000000000 Binary files a/firefly-iii/logo.png and /dev/null differ diff --git a/flarum/1.8.10/data.yml b/flarum/1.8.10/data.yml deleted file mode 100755 index c1a6306c6..000000000 --- a/flarum/1.8.10/data.yml +++ /dev/null @@ -1,125 +0,0 @@ -additionalProperties: - formFields: - - child: - default: "" - envKey: PANEL_DB_HOST - required: true - type: service - default: mysql - envKey: PANEL_DB_TYPE - labelEn: Database Service - labelZh: 数据库服务 - label: - en: Database Service - ja: データベースサービス - ms: Perkhidmatan Pangkalan Data - pt-br: Serviço de Banco de Dados - ru: Сервис базы данных - ko: 데이터베이스 서비스 - zh: 数据库服务 - zh-Hant: 數據庫服務 - required: true - type: apps - values: - - label: MySQL - value: mysql - - label: MariaDB - value: mariadb - - default: flarum - envKey: PANEL_DB_NAME - labelEn: Database - labelZh: 数据库名 - label: - en: Database - ja: データベース - ms: Pangkalan Data - pt-br: Banco de Dados - ru: База данных - ko: 데이터베이스 - zh: 数据库名 - zh-Hant: 數據庫名 - random: true - required: true - rule: paramCommon - type: text - - default: flarum - envKey: PANEL_DB_USER - labelEn: User - labelZh: 数据库用户 - label: - en: User - ja: ユーザー - ms: Pengguna - pt-br: Usuário - ru: Пользователь - ko: 사용자 - zh: 数据库用户 - zh-Hant: 數據庫用戶 - random: true - required: true - rule: paramCommon - type: text - - default: flarum - envKey: PANEL_DB_USER_PASSWORD - labelEn: Password - labelZh: 数据库用户密码 - label: - en: Password - ja: パスワード - ms: Kata laluan - pt-br: Senha - ru: Пароль - ko: 비밀번호 - zh: 数据库用户密码 - zh-Hant: 數據庫用戶密碼 - random: true - required: true - type: password - - default: flarum_ - envKey: PANEL_DB_PREFIX - labelEn: Database prefix - labelZh: 数据库前缀 - label: - en: Database prefix - ja: データベースプレフィックス - ms: Awalan Pangkalan Data - pt-br: Prefixo do Banco de Dados - ru: Префикс базы данных - ko: 데이터베이스 접두사 - zh: 数据库前缀 - zh-Hant: 數據庫前綴 - required: true - type: text - - default: 40020 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh: 端口 - zh-Hant: 埠 - required: true - rule: paramPort - type: number - - default: http://localhost:40020 - edit: true - envKey: FLARUM_EXTERNAL_URL - labelEn: External URL - labelZh: 外部访问地址 - label: - en: External URL - ja: 外部URL - ms: URL Luaran - pt-br: URL Externa - ru: Внешний URL - ko: 외부 URL - zh: 外部访问地址 - zh-Hant: 外部訪問地址 - required: true - type: text diff --git a/flarum/1.8.10/data/.gitkeep b/flarum/1.8.10/data/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/flarum/1.8.10/docker-compose.yml b/flarum/1.8.10/docker-compose.yml deleted file mode 100644 index 38c0d677a..000000000 --- a/flarum/1.8.10/docker-compose.yml +++ /dev/null @@ -1,35 +0,0 @@ -services: - flarum: - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTP}:8000" - volumes: - - ./data:/data - environment: - - TZ=Asia/Shanghai - - PUID=1000 - - PGID=1000 - - MEMORY_LIMIT=256M - - UPLOAD_MAX_SIZE=256M - - CLEAR_ENV=yes - - OPCACHE_MEM_SIZE=128M - - LISTEN_IPV6=true - - REAL_IP_FROM=0.0.0.0/32 - - DB_HOST=${PANEL_DB_HOST} - - DB_PORT=${PANEL_DB_PORT} - - DB_NAME=${PANEL_DB_NAME} - - DB_USER=${PANEL_DB_USER} - - DB_PASSWORD=${PANEL_DB_USER_PASSWORD} - - DB_PREFIX=${PANEL_DB_PREFIX} - - DB_NOPREFIX=false - - DB_TIMEOUT=60 - - FLARUM_BASE_URL=${FLARUM_EXTERNAL_URL} - image: crazymax/flarum:1.8.10 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/flarum/README.md b/flarum/README.md deleted file mode 100644 index 5bd708fec..000000000 --- a/flarum/README.md +++ /dev/null @@ -1,17 +0,0 @@ -# 默认账户密码 - -- 初始账户: flarum -- 初始密码: flarum - -# flarum - -**flarum** 是一个现代化、轻量级的开源社区论坛软件。它提供了简洁而美观的用户界面,并具有丰富的功能,可用于构建和管理在线社区。 - -## 主要功能: - -- **简洁美观**:flarum 的界面设计简洁、现代,提供了良好的用户体验,使用户能够轻松浏览和参与社区讨论。 -- **可扩展性**:flarum 支持插件系统,可以根据需要扩展功能,定制和增强社区论坛的各个方面。 -- **强大的权限管理**:flarum 提供了灵活的权限管理机制,允许管理员对用户、用户组、板块等进行细粒度的权限设置。 -- **多语言支持**:flarum 支持多种语言,可以轻松创建和管理多语言的社区论坛。 -- **社交登录集成**:flarum 可与社交媒体账户(如 Google、Facebook、Twitter 等)进行集成,允许用户通过其社交账户登录和参与社区。 -- **响应式布局**:flarum 的界面具有响应式布局,适应不同设备上的不同屏幕大小,使用户在桌面、平板和手机等设备上都能获得良好的浏览体验。 \ No newline at end of file diff --git a/flarum/README_en.md b/flarum/README_en.md deleted file mode 100644 index aaaf08d3e..000000000 --- a/flarum/README_en.md +++ /dev/null @@ -1,14 +0,0 @@ -# Default Username and Password -- Initial Username: flarum -- Initial Password: flarum - -# flarum -**flarum** is a modern, lightweight, open-source community forum software. It offers a clean and beautiful user interface with rich features for building and managing online communities. - -## Key Features: -- **Clean and Beautiful**: flarum's interface is simple, modern, and provides a great user experience, making it easy for users to browse and participate in community discussions. -- **Extensibility**: flarum supports a plugin system, allowing you to extend functionality and customize various aspects of the community forum as needed. -- **Powerful Permission Management**: flarum offers flexible permission management, enabling administrators to set fine-grained permissions for users, user groups, and sections. -- **Multi-Language Support**: flarum supports multiple languages, making it easy to create and manage multilingual community forums. -- **Social Login Integration**: flarum integrates with social media accounts (e.g., Google, Facebook, Twitter), allowing users to log in and participate in the community using their social accounts. -- **Responsive Design**: flarum's interface features a responsive layout that adapts to different screen sizes on various devices, ensuring a great browsing experience on desktops, tablets, and smartphones. \ No newline at end of file diff --git a/flarum/data.yml b/flarum/data.yml deleted file mode 100755 index 15b3ac257..000000000 --- a/flarum/data.yml +++ /dev/null @@ -1,33 +0,0 @@ -name: Flarum -tags: - - 建站 -title: 用于构建优秀社区的简单论坛软件 -description: 用于构建优秀社区的简单论坛软件 -additionalProperties: - key: flarum - name: Flarum - tags: - - Website - shortDescZh: 用于构建优秀社区的简单论坛软件 - shortDescEn: Simple forum software for building great communities - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://flarum.org/ - github: https://github.com/flarum/flarum - document: https://docs.flarum.org/ - description: - en: Simple forum software for building great communities - zh: 用于构建优秀社区的简单论坛软件 - zh-Hant: 用於構建優秀社區的簡單論壇軟件 - ja: 素晴らしいコミュニティを構築するためのシンプルなフォーラムソフトウェア - ms: Perisian forum ringkas untuk membina komuniti hebat - pt-br: Software de fórum simples para construir grandes comunidades - ru: Простое программное обеспечение для форумов для создания отличных сообществ - ko: 훌륭한 커뮤니티를 구축하기 위한 간단한 포럼 소프트웨어 - architectures: - - amd64 - - arm/v6 - - arm/v7 - - arm64 diff --git a/flarum/logo.png b/flarum/logo.png deleted file mode 100644 index 13a2ed497..000000000 Binary files a/flarum/logo.png and /dev/null differ diff --git a/focalboard/7.11.4/data.yml b/focalboard/7.11.4/data.yml deleted file mode 100644 index e32c3f4f7..000000000 --- a/focalboard/7.11.4/data.yml +++ /dev/null @@ -1,19 +0,0 @@ -additionalProperties: - formFields: - - default: 40098 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh: 端口 - zh-Hant: 埠 - required: true - rule: paramPort - type: number diff --git a/focalboard/7.11.4/data/config.json b/focalboard/7.11.4/data/config.json deleted file mode 100644 index 185651fa7..000000000 --- a/focalboard/7.11.4/data/config.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "serverRoot": "http://localhost:8000", - "port": 8000, - "dbtype": "sqlite3", - "dbconfig": "./data/focalboard.db", - "postgres_dbconfig": "dbname=focalboard sslmode=disable", - "useSSL": false, - "webpath": "./pack", - "filespath": "./data/files", - "telemetry": true, - "session_expire_time": 2592000, - "session_refresh_time": 18000, - "localOnly": false, - "enableLocalMode": true, - "localModeSocketLocation": "/var/tmp/focalboard_local.socket" - } \ No newline at end of file diff --git a/focalboard/7.11.4/docker-compose.yml b/focalboard/7.11.4/docker-compose.yml deleted file mode 100644 index f7edcfbc2..000000000 --- a/focalboard/7.11.4/docker-compose.yml +++ /dev/null @@ -1,17 +0,0 @@ -services: - focalboard: - image: mattermost/focalboard:7.11.4 - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTP}:8000" - volumes: - - ./data/config.json:/opt/focalboard/config.json - - ./data/data:/opt/focalboard/data - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/focalboard/7.11.4/scripts/init.sh b/focalboard/7.11.4/scripts/init.sh deleted file mode 100644 index 00f08b100..000000000 --- a/focalboard/7.11.4/scripts/init.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/bash - -DIR="./data/data" - -if [ -d "$DIR" ]; then - echo "目录 $DIR 已存在" -else - echo "目录 $DIR 不存在,正在创建..." - mkdir -p "$DIR" - if [ $? -eq 0 ]; then - echo "目录 $DIR 创建成功" - else - echo "目录 $DIR 创建失败" - fi -fi - -chown -R 65534:65534 $DIR \ No newline at end of file diff --git a/focalboard/7.11.4/scripts/upgrade.sh b/focalboard/7.11.4/scripts/upgrade.sh deleted file mode 100644 index 00f08b100..000000000 --- a/focalboard/7.11.4/scripts/upgrade.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/bash - -DIR="./data/data" - -if [ -d "$DIR" ]; then - echo "目录 $DIR 已存在" -else - echo "目录 $DIR 不存在,正在创建..." - mkdir -p "$DIR" - if [ $? -eq 0 ]; then - echo "目录 $DIR 创建成功" - else - echo "目录 $DIR 创建失败" - fi -fi - -chown -R 65534:65534 $DIR \ No newline at end of file diff --git a/focalboard/README.md b/focalboard/README.md deleted file mode 100644 index 7d6cd1a0c..000000000 --- a/focalboard/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# Focalboard - -**Focalboard** 是一款开源、多语言、自托管的项目管理工具,是 Trello、Notion 和 Asana 的替代品。 - -## 主要功能: - -- **任务管理**:通过简洁而直观的界面,可以创建、分配和跟踪任务,确保团队成员清楚任务分工和优先级。任务面板提供了多种视图选项,使用户可以根据需要切换不同的任务展示方式。 -- **实时协作**:提供实时编辑和评论功能,使团队成员能够即时协作。通过即时通知功能,团队成员可以快速回复评论并对任务状态进行更新,从而保持团队间的紧密联系。 -- **自定义工作流**:Focalboard 允许用户根据团队的工作流程定制任务板和分类,使得团队成员能够根据自己的需求和习惯进行任务管理,提高工作效率。 -- **丰富的插件生态系统**:支持丰富的插件,使用户可以根据自己的需求集成各种工具和服务。这些插件可以帮助团队进一步定制工作流程,提高工作效率。 -- **多平台支持**:Focalboard 支持多种平台,包括 Web、桌面和移动设备,使用户可以随时随地访问和管理任务,无缝切换不同设备进行工作。 \ No newline at end of file diff --git a/focalboard/README_en.md b/focalboard/README_en.md deleted file mode 100644 index b22e35601..000000000 --- a/focalboard/README_en.md +++ /dev/null @@ -1,9 +0,0 @@ -# Focalboard -**Focalboard** is an open-source, multilingual, self-hosted project management tool, serving as an alternative to Trello, Notion, and Asana. - -## Key Features: -- **Task Management**: Create, assign, and track tasks through a clean and intuitive interface. Task boards offer multiple view options, allowing users to switch between different task displays as needed. -- **Real-Time Collaboration**: Provides real-time editing and commenting features, enabling team members to collaborate instantly. With instant notifications, team members can quickly respond to comments and update task statuses, maintaining close team communication. -- **Custom Workflows**: Focalboard allows users to customize task boards and categories based on their team's workflows, enabling team members to manage tasks according to their needs and habits, improving work efficiency. -- **Rich Plugin Ecosystem**: Supports a variety of plugins, allowing users to integrate different tools and services as needed. These plugins help teams further customize workflows and enhance productivity. -- **Multi-Platform Support**: Focalboard supports multiple platforms, including web, desktop, and mobile devices, enabling users to access and manage tasks anytime, anywhere, and seamlessly switch between devices for work. \ No newline at end of file diff --git a/focalboard/data.yml b/focalboard/data.yml deleted file mode 100644 index ff3a5b661..000000000 --- a/focalboard/data.yml +++ /dev/null @@ -1,30 +0,0 @@ -name: Focalboard -tags: - - DevOps -title: Trello、Notion 和 Asana 的开源自托管替代方案 -description: Trello、Notion 和 Asana 的开源自托管替代方案 -additionalProperties: - key: focalboard - name: Focalboard - tags: - - DevOps - shortDescZh: Trello、Notion 和 Asana 的开源自托管替代方案 - shortDescEn: An open source, self-hosted alternative to Trello, Notion, and Asana - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://www.focalboard.com/ - github: https://github.com/mattermost/focalboard - document: https://docs.mattermost.com/guides/boards.html - description: - en: An open source, self-hosted alternative to Trello, Notion, and Asana - zh: Trello、Notion 和 Asana 的开源自托管替代方案 - zh-Hant: Trello、Notion 和 Asana 的開源自託管替代方案 - ja: Trello、Notion、および Asana のオープンソースのセルフホスト型代替手段 - ms: Alternatif sumber terbuka dan dihoskan sendiri untuk Trello, Notion, dan Asana - pt-br: Uma alternativa de código aberto e auto-hospedada ao Trello, Notion e Asana - ru: Открытая альтернатива с самостоятельным хостингом для Trello, Notion и Asana - ko: Trello, Notion 및 Asana에 대한 오픈 소스 자체 호스팅 대안 - architectures: - - amd64 diff --git a/focalboard/logo.png b/focalboard/logo.png deleted file mode 100644 index 54c56561c..000000000 Binary files a/focalboard/logo.png and /dev/null differ diff --git a/freshrss/1.26.3/data.yml b/freshrss/1.26.3/data.yml deleted file mode 100644 index d360a322f..000000000 --- a/freshrss/1.26.3/data.yml +++ /dev/null @@ -1,34 +0,0 @@ -additionalProperties: - formFields: - - default: 8080 - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: HTTP 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh: HTTP 端口 - zh-Hant: HTTP 埠 - required: true - rule: paramPort - type: number - - default: Asia/Shanghai - edit: true - envKey: TIME_ZONE - labelEn: Time zone - labelZh: 时区 - label: - en: Time zone - ja: タイムゾーン - ms: Zon masa - pt-br: Fuso horário - ru: Часовой пояс - ko: 시간대 - zh: 时区 - zh-Hant: 時區 - required: true - type: text diff --git a/freshrss/1.26.3/docker-compose.yml b/freshrss/1.26.3/docker-compose.yml deleted file mode 100644 index 2e2d9b6bf..000000000 --- a/freshrss/1.26.3/docker-compose.yml +++ /dev/null @@ -1,20 +0,0 @@ -services: - freshrss: - image: linuxserver/freshrss:1.26.3 - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_HTTP}:80 - volumes: - - ./data:/config - environment: - - PUID=1000 - - PGID=1000 - - TZ=${TIME_ZONE} - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/freshrss/README.md b/freshrss/README.md deleted file mode 100644 index f9d108bc2..000000000 --- a/freshrss/README.md +++ /dev/null @@ -1,12 +0,0 @@ -# FreshRSS - -**FreshRSS** 是一个自托管的RSS和 Atom 源聚合器。 -它轻量级、易于使用、功能强大且可自定义。 - -## 主要功能: - -- **开源且自托管**:FreshRSS 是一个开源的 RSS 阅读器,你可以在自己的服务器上托管,完全控制数据和隐私。 -- **轻量且高效**:设计上注重性能和效率,能够在较低资源消耗的情况下处理大量的 RSS 订阅源。 -- **响应式设计**:提供响应式的用户界面,支持在桌面和移动设备上访问,确保良好的用户体验。 -- **多用户支持**:允许多个用户在同一个实例中使用,每个用户可以有自己的订阅源和阅读状态。 -- **灵活的插件系统**:支持通过插件扩展功能,可以安装和使用社区提供的各种插件,增强 RSS 阅读器的功能。 \ No newline at end of file diff --git a/freshrss/README_en.md b/freshrss/README_en.md deleted file mode 100644 index b7eea085b..000000000 --- a/freshrss/README_en.md +++ /dev/null @@ -1,9 +0,0 @@ -# FreshRSS -**FreshRSS** is a self-hosted RSS and Atom feed aggregator. It is lightweight, easy to use, powerful, and customizable. - -## Key Features: -- **Open Source and Self-Hosted**: FreshRSS is an open-source RSS reader that you can host on your own server, giving you full control over your data and privacy. -- **Lightweight and Efficient**: Designed with performance and efficiency in mind, it can handle a large number of RSS feeds with minimal resource consumption. -- **Responsive Design**: Offers a responsive user interface, accessible on both desktop and mobile devices, ensuring a great user experience. -- **Multi-User Support**: Allows multiple users to use the same instance, with each user having their own feeds and reading states. -- **Flexible Plugin System**: Supports extending functionality through plugins, enabling the installation and use of various community-provided plugins to enhance the RSS reader's capabilities. \ No newline at end of file diff --git a/freshrss/data.yml b/freshrss/data.yml deleted file mode 100644 index b9bf2da2e..000000000 --- a/freshrss/data.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: FreshRSS -tags: - - 实用工具 -title: 自托管的 RSS 和 Atom 源聚合器 -description: 自托管的 RSS 和 Atom 源聚合器 -additionalProperties: - key: freshrss - name: FreshRSS - tags: - - Tool - shortDescZh: 自托管的 RSS 和 Atom 源聚合器 - shortDescEn: A self-hosted RSS and Atom feed aggregator - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://freshrss.org/ - github: https://github.com/FreshRSS/FreshRSS - document: https://freshrss.github.io/FreshRSS/ - description: - en: A self-hosted RSS and Atom feed aggregator - zh: 自托管的 RSS 和 Atom 源聚合器 - zh-Hant: 自託管的 RSS 和 Atom 源聚合器 - ja: 自己ホスト型の RSS および Atom フィードアグリゲーター - ms: Pengagregat suapan RSS dan Atom yang dihoskan sendiri - pt-br: Um agregador de feeds RSS e Atom auto-hospedado - ru: Самостоятельно размещаемый агрегатор RSS и Atom-каналов - ko: 자체 호스팅 RSS 및 Atom 피드 집계기 - architectures: - - amd64 - - arm64 diff --git a/freshrss/logo.png b/freshrss/logo.png deleted file mode 100644 index a19433b43..000000000 Binary files a/freshrss/logo.png and /dev/null differ diff --git a/frpc/0.62.1/data.yml b/frpc/0.62.1/data.yml deleted file mode 100644 index 02b34ce4d..000000000 --- a/frpc/0.62.1/data.yml +++ /dev/null @@ -1,42 +0,0 @@ -additionalProperties: - formFields: - - default: 127.0.0.1 - envKey: SERVER_ADDRESS - labelEn: Server Address - labelZh: 服务端IP - required: true - type: text - - default: 7000 - envKey: SERVER_PORT - labelEn: Server Port - labelZh: 服务端端口 - required: true - type: number - rule: paramPort - - default: 7400 - envKey: PANEL_APP_PORT_HTTP - labelEn: Dashboard Port - labelZh: Dashboard 端口 - required: true - type: number - rule: paramPort - - default: admin - envKey: USER_NAME - labelEn: Dashboard Username - labelZh: Dashboard 用户名 - required: true - type: text - - default: admin - envKey: PASSWORD - labelEn: Dashboard Password - labelZh: Dashboard 密码 - required: true - random: true - rule: paramComplexity - type: password - - default: 'token123456' - envKey: AUTH_TOKEN - labelEn: Auth Token - labelZh: 密钥 - required: true - type: text diff --git a/frpc/0.62.1/data/frpc.toml b/frpc/0.62.1/data/frpc.toml deleted file mode 100644 index b4ca280d5..000000000 --- a/frpc/0.62.1/data/frpc.toml +++ /dev/null @@ -1,16 +0,0 @@ -serverAddr = "0.0.0.0" -serverPort = 7000 - -auth.method = "token" -auth.token = "token123456" - -webServer.addr = "0.0.0.0" -webServer.port = 40001 -webServer.user = "admin" -webServer.password = "password123456" -webServer.pprofEnable = false - -# tls -#transport.tls.certFile = "/etc/frp/ssl/client.crt" -#transport.tls.keyFile = "/etc/frp/ssl/client.key" -#transport.tls.trustedCaFile = "/etc/frp/ssl/ca.crt" diff --git a/frpc/0.62.1/data/frpc_full.toml b/frpc/0.62.1/data/frpc_full.toml deleted file mode 100644 index 0528ddeaf..000000000 --- a/frpc/0.62.1/data/frpc_full.toml +++ /dev/null @@ -1,370 +0,0 @@ -# This configuration file is for reference only. Please do not use this configuration directly to run the program as it may have various issues. - -# your proxy name will be changed to {user}.{proxy} -user = "your_name" - -# A literal address or host name for IPv6 must be enclosed -# in square brackets, as in "[::1]:80", "[ipv6-host]:http" or "[ipv6-host%zone]:80" -# For single serverAddr field, no need square brackets, like serverAddr = "::". -serverAddr = "0.0.0.0" -serverPort = 7000 - -# STUN server to help penetrate NAT hole. -# natHoleStunServer = "stun.easyvoip.com:3478" - -# Decide if exit program when first login failed, otherwise continuous relogin to frps -# default is true -loginFailExit = true - -# console or real logFile path like ./frpc.log -log.to = "./frpc.log" -# trace, debug, info, warn, error -log.level = "info" -log.maxDays = 3 -# disable log colors when log.to is console, default is false -log.disablePrintColor = false - -auth.method = "token" -# auth.additionalScopes specifies additional scopes to include authentication information. -# Optional values are HeartBeats, NewWorkConns. -# auth.additionalScopes = ["HeartBeats", "NewWorkConns"] - -# auth token -auth.token = "12345678" - -# oidc.clientID specifies the client ID to use to get a token in OIDC authentication. -# auth.oidc.clientID = "" -# oidc.clientSecret specifies the client secret to use to get a token in OIDC authentication. -# auth.oidc.clientSecret = "" -# oidc.audience specifies the audience of the token in OIDC authentication. -# auth.oidc.audience = "" -# oidc.scope specifies the permissions of the token in OIDC authentication if AuthenticationMethod == "oidc". By default, this value is "". -# auth.oidc.scope = "" -# oidc.tokenEndpointURL specifies the URL which implements OIDC Token Endpoint. -# It will be used to get an OIDC token. -# auth.oidc.tokenEndpointURL = "" - -# oidc.additionalEndpointParams specifies additional parameters to be sent to the OIDC Token Endpoint. -# For example, if you want to specify the "audience" parameter, you can set as follow. -# frp will add "audience=" "var1=" to the additional parameters. -# auth.oidc.additionalEndpointParams.audience = "https://dev.auth.com/api/v2/" -# auth.oidc.additionalEndpointParams.var1 = "foobar" - -# Set admin address for control frpc's action by http api such as reload -webServer.addr = "127.0.0.1" -webServer.port = 7400 -webServer.user = "admin" -webServer.password = "admin" -# Admin assets directory. By default, these assets are bundled with frpc. -# webServer.assetsDir = "./static" - -# Enable golang pprof handlers in admin listener. -webServer.pprofEnable = false - -# The maximum amount of time a dial to server will wait for a connect to complete. Default value is 10 seconds. -# transport.dialServerTimeout = 10 - -# dialServerKeepalive specifies the interval between keep-alive probes for an active network connection between frpc and frps. -# If negative, keep-alive probes are disabled. -# transport.dialServerKeepalive = 7200 - -# connections will be established in advance, default value is zero -transport.poolCount = 5 - -# If tcp stream multiplexing is used, default is true, it must be same with frps -# transport.tcpMux = true - -# Specify keep alive interval for tcp mux. -# only valid if tcpMux is enabled. -# transport.tcpMuxKeepaliveInterval = 60 - -# Communication protocol used to connect to server -# supports tcp, kcp, quic, websocket and wss now, default is tcp -transport.protocol = "tcp" - -# set client binding ip when connect server, default is empty. -# only when protocol = tcp or websocket, the value will be used. -transport.connectServerLocalIP = "0.0.0.0" - -# if you want to connect frps by http proxy or socks5 proxy or ntlm proxy, you can set proxyURL here or in global environment variables -# it only works when protocol is tcp -# transport.proxyURL = "http://user:passwd@192.168.1.128:8080" -# transport.proxyURL = "socks5://user:passwd@192.168.1.128:1080" -# transport.proxyURL = "ntlm://user:passwd@192.168.1.128:2080" - -# quic protocol options -# transport.quic.keepalivePeriod = 10 -# transport.quic.maxIdleTimeout = 30 -# transport.quic.maxIncomingStreams = 100000 - -# If tls.enable is true, frpc will connect frps by tls. -# Since v0.50.0, the default value has been changed to true, and tls is enabled by default. -transport.tls.enable = true - -# transport.tls.certFile = "client.crt" -# transport.tls.keyFile = "client.key" -# transport.tls.trustedCaFile = "ca.crt" -# transport.tls.serverName = "example.com" - -# If the disableCustomTLSFirstByte is set to false, frpc will establish a connection with frps using the -# first custom byte when tls is enabled. -# Since v0.50.0, the default value has been changed to true, and the first custom byte is disabled by default. -# transport.tls.disableCustomTLSFirstByte = true - -# Heartbeat configure, it's not recommended to modify the default value. -# The default value of heartbeatInterval is 10 and heartbeatTimeout is 90. Set negative value -# to disable it. -# transport.heartbeatInterval = 30 -# transport.heartbeatTimeout = 90 - -# Specify a dns server, so frpc will use this instead of default one -# dnsServer = "8.8.8.8" - -# Proxy names you want to start. -# Default is empty, means all proxies. -# start = ["ssh", "dns"] - -# Specify udp packet size, unit is byte. If not set, the default value is 1500. -# This parameter should be same between client and server. -# It affects the udp and sudp proxy. -udpPacketSize = 1500 - -# Additional metadatas for client. -metadatas.var1 = "abc" -metadatas.var2 = "123" - -# Include other config files for proxies. -# includes = ["./confd/*.ini"] - -[[proxies]] -# 'ssh' is the unique proxy name -# If global user is not empty, it will be changed to {user}.{proxy} such as 'your_name.ssh' -name = "ssh" -type = "tcp" -localIP = "127.0.0.1" -localPort = 22 -# Limit bandwidth for this proxy, unit is KB and MB -transport.bandwidthLimit = "1MB" -# Where to limit bandwidth, can be 'client' or 'server', default is 'client' -transport.bandwidthLimitMode = "client" -# If true, traffic of this proxy will be encrypted, default is false -transport.useEncryption = false -# If true, traffic will be compressed -transport.useCompression = false -# Remote port listen by frps -remotePort = 6001 -# frps will load balancing connections for proxies in same group -loadBalancer.group = "test_group" -# group should have same group key -loadBalancer.groupKey = "123456" -# Enable health check for the backend service, it supports 'tcp' and 'http' now. -# frpc will connect local service's port to detect it's healthy status -healthCheck.type = "tcp" -# Health check connection timeout -healthCheck.timeoutSeconds = 3 -# If continuous failed in 3 times, the proxy will be removed from frps -healthCheck.maxFailed = 3 -# Every 10 seconds will do a health check -healthCheck.intervalSeconds = 10 -# Additional meta info for each proxy. It will be passed to the server-side plugin for use. -metadatas.var1 = "abc" -metadatas.var2 = "123" -# You can add some extra information to the proxy through annotations. -# These annotations will be displayed on the frps dashboard. -[proxies.annotations] -key1 = "value1" -"prefix/key2" = "value2" - -[[proxies]] -name = "ssh_random" -type = "tcp" -localIP = "192.168.31.100" -localPort = 22 -# If remotePort is 0, frps will assign a random port for you -remotePort = 0 - -[[proxies]] -name = "dns" -type = "udp" -localIP = "114.114.114.114" -localPort = 53 -remotePort = 6002 - -# Resolve your domain names to [serverAddr] so you can use http://web01.yourdomain.com to browse web01 and http://web02.yourdomain.com to browse web02 -[[proxies]] -name = "web01" -type = "http" -localIP = "127.0.0.1" -localPort = 80 -# http username and password are safety certification for http protocol -# if not set, you can access this customDomains without certification -httpUser = "admin" -httpPassword = "admin" -# if domain for frps is frps.com, then you can access [web01] proxy by URL http://web01.frps.com -subdomain = "web01" -customDomains = ["web01.yourdomain.com"] -# locations is only available for http type -locations = ["/", "/pic"] -# route requests to this service if http basic auto user is abc -# routeByHTTPUser = abc -hostHeaderRewrite = "example.com" -requestHeaders.set.x-from-where = "frp" -healthCheck.type = "http" -# frpc will send a GET http request '/status' to local http service -# http service is alive when it return 2xx http response code -healthCheck.path = "/status" -healthCheck.intervalSeconds = 10 -healthCheck.maxFailed = 3 -healthCheck.timeoutSeconds = 3 -# set health check headers -healthCheck.httpHeaders=[ - { name = "x-from-where", value = "frp" } -] - -[[proxies]] -name = "web02" -type = "https" -localIP = "127.0.0.1" -localPort = 8000 -subdomain = "web02" -customDomains = ["web02.yourdomain.com"] -# if not empty, frpc will use proxy protocol to transfer connection info to your local service -# v1 or v2 or empty -transport.proxyProtocolVersion = "v2" - -[[proxies]] -name = "tcpmuxhttpconnect" -type = "tcpmux" -multiplexer = "httpconnect" -localIP = "127.0.0.1" -localPort = 10701 -customDomains = ["tunnel1"] -# routeByHTTPUser = "user1" - -[[proxies]] -name = "plugin_unix_domain_socket" -type = "tcp" -remotePort = 6003 -# if plugin is defined, localIP and localPort is useless -# plugin will handle connections got from frps -[proxies.plugin] -type = "unix_domain_socket" -unixPath = "/var/run/docker.sock" - -[[proxies]] -name = "plugin_http_proxy" -type = "tcp" -remotePort = 6004 -[proxies.plugin] -type = "http_proxy" -httpUser = "abc" -httpPassword = "abc" - -[[proxies]] -name = "plugin_socks5" -type = "tcp" -remotePort = 6005 -[proxies.plugin] -type = "socks5" -username = "abc" -password = "abc" - -[[proxies]] -name = "plugin_static_file" -type = "tcp" -remotePort = 6006 -[proxies.plugin] -type = "static_file" -localPath = "/var/www/blog" -stripPrefix = "static" -httpUser = "abc" -httpPassword = "abc" - -[[proxies]] -name = "plugin_https2http" -type = "https" -customDomains = ["test.yourdomain.com"] -[proxies.plugin] -type = "https2http" -localAddr = "127.0.0.1:80" -crtPath = "./server.crt" -keyPath = "./server.key" -hostHeaderRewrite = "127.0.0.1" -requestHeaders.set.x-from-where = "frp" - -[[proxies]] -name = "plugin_https2https" -type = "https" -customDomains = ["test.yourdomain.com"] -[proxies.plugin] -type = "https2https" -localAddr = "127.0.0.1:443" -crtPath = "./server.crt" -keyPath = "./server.key" -hostHeaderRewrite = "127.0.0.1" -requestHeaders.set.x-from-where = "frp" - -[[proxies]] -name = "plugin_http2https" -type = "http" -customDomains = ["test.yourdomain.com"] -[proxies.plugin] -type = "http2https" -localAddr = "127.0.0.1:443" -hostHeaderRewrite = "127.0.0.1" -requestHeaders.set.x-from-where = "frp" - -[[proxies]] -name = "secret_tcp" -# If the type is secret tcp, remotePort is useless -# Who want to connect local port should deploy another frpc with stcp proxy and role is visitor -type = "stcp" -# secretKey is used for authentication for visitors -secretKey = "abcdefg" -localIP = "127.0.0.1" -localPort = 22 -# If not empty, only visitors from specified users can connect. -# Otherwise, visitors from same user can connect. '*' means allow all users. -allowUsers = ["*"] - -[[proxies]] -name = "p2p_tcp" -type = "xtcp" -secretKey = "abcdefg" -localIP = "127.0.0.1" -localPort = 22 -# If not empty, only visitors from specified users can connect. -# Otherwise, visitors from same user can connect. '*' means allow all users. -allowUsers = ["user1", "user2"] - -# frpc role visitor -> frps -> frpc role server -[[visitors]] -name = "secret_tcp_visitor" -type = "stcp" -# the server name you want to visitor -serverName = "secret_tcp" -secretKey = "abcdefg" -# connect this address to visitor stcp server -bindAddr = "127.0.0.1" -# bindPort can be less than 0, it means don't bind to the port and only receive connections redirected from -# other visitors. (This is not supported for SUDP now) -bindPort = 9000 - -[[visitors]] -name = "p2p_tcp_visitor" -type = "xtcp" -# if the server user is not set, it defaults to the current user -serverUser = "user1" -serverName = "p2p_tcp" -secretKey = "abcdefg" -bindAddr = "127.0.0.1" -# bindPort can be less than 0, it means don't bind to the port and only receive connections redirected from -# other visitors. (This is not supported for SUDP now) -bindPort = 9001 -# when automatic tunnel persistence is required, set it to true -keepTunnelOpen = false -# effective when keepTunnelOpen is set to true, the number of attempts to punch through per hour -maxRetriesAnHour = 8 -minRetryInterval = 90 -# fallbackTo = "stcp_visitor" -# fallbackTimeoutMs = 500 diff --git a/frpc/0.62.1/docker-compose.yml b/frpc/0.62.1/docker-compose.yml deleted file mode 100644 index 9a13b3db1..000000000 --- a/frpc/0.62.1/docker-compose.yml +++ /dev/null @@ -1,11 +0,0 @@ -services: - frpc: - image: snowdreamtech/frpc:0.62.1 - container_name: ${CONTAINER_NAME} - restart: always - network_mode: host - volumes: - - ./data/frpc.toml:/etc/frp/frpc.toml - - ./data/ssl:/etc/frp/ssl - labels: - createdBy: "Apps" diff --git a/frpc/0.62.1/scripts/init.sh b/frpc/0.62.1/scripts/init.sh deleted file mode 100644 index 124b534ef..000000000 --- a/frpc/0.62.1/scripts/init.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -source ./.env - -sed -i "s/serverAddr = \".*\"/serverAddr = \"${SERVER_ADDRESS}\"/" ./data/frpc.toml -sed -i "s/serverPort = .*$/serverPort = ${SERVER_PORT}/" ./data/frpc.toml -sed -i "s/auth\.token = \".*\"/auth.token = \"${AUTH_TOKEN}\"/" ./data/frpc.toml -sed -i "s/webServer\.port = .*$/webServer.port = ${PANEL_APP_PORT_HTTP}/" ./data/frpc.toml -sed -i "s/webServer\.user = \".*\"/webServer.user = \"${USER_NAME}\"/" ./data/frpc.toml -sed -i "s/webServer\.password = \".*\"/webServer.password = \"${PASSWORD}\"/" ./data/frpc.toml \ No newline at end of file diff --git a/frpc/README.md b/frpc/README.md deleted file mode 100644 index 75b37dcef..000000000 --- a/frpc/README.md +++ /dev/null @@ -1,15 +0,0 @@ -# frp - -**frp(Fast Reverse Proxy)** 是一款开源的高性能反向代理工具,它允许您在不同网络之间建立安全的通信通道,用于实现端口映射、内网穿透和远程访问等多种网络连接需求。 - -## 主要功能: - -- **反向代理服务**:frp 允许您将外部流量转发到内部网络中的应用程序或服务,使外部用户可以访问您的内部资源,如Web服务器、数据库或其他应用程序。 -- **端口映射**:您可以使用 frp 轻松设置端口映射,将外部请求转发到内部设备的特定端口,这对于在不同网络之间共享服务非常有用。 -- **内网穿透**:frp 支持内网穿透,使您可以通过公共互联网轻松访问位于受限网络中的设备或服务,无需复杂的网络配置。 -- **TCP/UDP 支持**:frp 不仅支持 TCP 流量的代理,还支持 UDP 流量,适用于各种应用场景,如在线游戏或实时通信。 -- **安全性**:frp 支持使用加密协议来保护数据传输的安全性,如TLS/SSL,以确保通信过程中的数据保密性和完整性。 -- **多用户支持**:frp 允许您配置多个用户和权限,以细粒度控制对代理服务的访问权限,增强安全性。 -- **跨平台**:frp 可在多个操作系统上运行,包括Linux、Windows和macOS,因此适用于各种不同的环境。 -- **开源和自定义配置**:frp 是开源软件,允许您根据特定需求自定义配置,以满足各种使用情况。 -- **活跃的社区支持**:frp 有一个积极的开发社区,提供广泛的文档和支持,以帮助用户快速入门和解决问题。 \ No newline at end of file diff --git a/frpc/data.yml b/frpc/data.yml deleted file mode 100644 index 8a5593327..000000000 --- a/frpc/data.yml +++ /dev/null @@ -1,26 +0,0 @@ -name: frp 客户端 -tags: - - 实用工具 -title: 专注于内网穿透的高性能反向代理应用 -description: 专注于内网穿透的高性能反向代理应用 -additionalProperties: - key: frpc - name: frp 客户端 - tags: - - Tool - shortDescZh: 专注于内网穿透的高性能反向代理应用 - shortDescEn: High-performance reverse proxy application focused on intranet penetration - type: website - crossVersionUpdate: true - limit: 0 - recommend: 40 - website: https://github.com/fatedier/frp - github: https://github.com/fatedier/frp - document: https://github.com/fatedier/frp/blob/dev/README_zh.md - architectures: - - amd64 - - arm/v6 - - arm/v7 - - arm64 - - ppc64le - - s390x diff --git a/frpc/logo.png b/frpc/logo.png deleted file mode 100644 index 965411f86..000000000 Binary files a/frpc/logo.png and /dev/null differ diff --git a/frps/0.62.1/data.yml b/frps/0.62.1/data.yml deleted file mode 100644 index 66861b777..000000000 --- a/frps/0.62.1/data.yml +++ /dev/null @@ -1,36 +0,0 @@ -additionalProperties: - formFields: - - default: 7000 - envKey: PANEL_APP_PORT_SERVICE - labelEn: Service Port - labelZh: 服务端口 - required: true - type: number - rule: paramPort - - default: 7500 - envKey: PANEL_APP_PORT_HTTP - labelEn: Dashboard Port - labelZh: Dashboard 端口 - required: true - type: number - rule: paramPort - - default: admin - envKey: USER_NAME - labelEn: Username - labelZh: 用户名 - required: true - type: text - - default: admin - envKey: PASSWORD - labelEn: Password - labelZh: 密码 - required: true - random: true - rule: paramComplexity - type: password - - default: 'token123456' - envKey: AUTH_TOKEN - labelEn: Auth Token - labelZh: 密钥 - required: true - type: text diff --git a/frps/0.62.1/data/frps.toml b/frps/0.62.1/data/frps.toml deleted file mode 100644 index c6dc76206..000000000 --- a/frps/0.62.1/data/frps.toml +++ /dev/null @@ -1,16 +0,0 @@ -bindAddr = "0.0.0.0" -bindPort = 7000 - -auth.method = "token" -auth.token = "token123456" - -webServer.addr = "0.0.0.0" -webServer.port = 7500 -webServer.user = "admin" -webServer.password = "admin" - -# tls -#transport.tls.force = true -#transport.tls.certFile = "/etc/frp/ssl/server.crt" -#transport.tls.keyFile = "/etc/frp/ssl/server.key" -#transport.tls.trustedCaFile = "/etc/frp/ssl/ca.crt" diff --git a/frps/0.62.1/data/frps_full.toml b/frps/0.62.1/data/frps_full.toml deleted file mode 100644 index 35c1a57b5..000000000 --- a/frps/0.62.1/data/frps_full.toml +++ /dev/null @@ -1,164 +0,0 @@ -# This configuration file is for reference only. Please do not use this configuration directly to run the program as it may have various issues. - -# A literal address or host name for IPv6 must be enclosed -# in square brackets, as in "[::1]:80", "[ipv6-host]:http" or "[ipv6-host%zone]:80" -# For single "bindAddr" field, no need square brackets, like `bindAddr = "::"`. -bindAddr = "0.0.0.0" -bindPort = 7000 - -# udp port used for kcp protocol, it can be same with 'bindPort'. -# if not set, kcp is disabled in frps. -kcpBindPort = 7000 - -# udp port used for quic protocol. -# if not set, quic is disabled in frps. -# quicBindPort = 7002 - -# Specify which address proxy will listen for, default value is same with bindAddr -# proxyBindAddr = "127.0.0.1" - -# quic protocol options -# transport.quic.keepalivePeriod = 10 -# transport.quic.maxIdleTimeout = 30 -# transport.quic.maxIncomingStreams = 100000 - -# Heartbeat configure, it's not recommended to modify the default value -# The default value of heartbeatTimeout is 90. Set negative value to disable it. -# transport.heartbeatTimeout = 90 - -# Pool count in each proxy will keep no more than maxPoolCount. -transport.maxPoolCount = 5 - -# If tcp stream multiplexing is used, default is true -# transport.tcpMux = true - -# Specify keep alive interval for tcp mux. -# only valid if tcpMux is true. -# transport.tcpMuxKeepaliveInterval = 60 - -# tcpKeepalive specifies the interval between keep-alive probes for an active network connection between frpc and frps. -# If negative, keep-alive probes are disabled. -# transport.tcpKeepalive = 7200 - -# transport.tls.force specifies whether to only accept TLS-encrypted connections. By default, the value is false. -transport.tls.force = false - -# transport.tls.certFile = "server.crt" -# transport.tls.keyFile = "server.key" -# transport.tls.trustedCaFile = "ca.crt" - -# If you want to support virtual host, you must set the http port for listening (optional) -# Note: http port and https port can be same with bindPort -vhostHTTPPort = 80 -vhostHTTPSPort = 443 - -# Response header timeout(seconds) for vhost http server, default is 60s -# vhostHTTPTimeout = 60 - -# tcpmuxHTTPConnectPort specifies the port that the server listens for TCP -# HTTP CONNECT requests. If the value is 0, the server will not multiplex TCP -# requests on one single port. If it's not - it will listen on this value for -# HTTP CONNECT requests. By default, this value is 0. -# tcpmuxHTTPConnectPort = 1337 - -# If tcpmuxPassthrough is true, frps won't do any update on traffic. -# tcpmuxPassthrough = false - -# Configure the web server to enable the dashboard for frps. -# dashboard is available only if webServer.port is set. -webServer.addr = "127.0.0.1" -webServer.port = 7500 -webServer.user = "admin" -webServer.password = "admin" -# webServer.tls.certFile = "server.crt" -# webServer.tls.keyFile = "server.key" -# dashboard assets directory(only for debug mode) -# webServer.assetsDir = "./static" - -# Enable golang pprof handlers in dashboard listener. -# Dashboard port must be set first -webServer.pprofEnable = false - -# enablePrometheus will export prometheus metrics on webServer in /metrics api. -enablePrometheus = true - -# console or real logFile path like ./frps.log -log.to = "./frps.log" -# trace, debug, info, warn, error -log.level = "info" -log.maxDays = 3 -# disable log colors when log.to is console, default is false -log.disablePrintColor = false - -# DetailedErrorsToClient defines whether to send the specific error (with debug info) to frpc. By default, this value is true. -detailedErrorsToClient = true - -# auth.method specifies what authentication method to use authenticate frpc with frps. -# If "token" is specified - token will be read into login message. -# If "oidc" is specified - OIDC (Open ID Connect) token will be issued using OIDC settings. By default, this value is "token". -auth.method = "token" - -# auth.additionalScopes specifies additional scopes to include authentication information. -# Optional values are HeartBeats, NewWorkConns. -# auth.additionalScopes = ["HeartBeats", "NewWorkConns"] - -# auth token -auth.token = "12345678" - -# oidc issuer specifies the issuer to verify OIDC tokens with. -auth.oidc.issuer = "" -# oidc audience specifies the audience OIDC tokens should contain when validated. -auth.oidc.audience = "" -# oidc skipExpiryCheck specifies whether to skip checking if the OIDC token is expired. -auth.oidc.skipExpiryCheck = false -# oidc skipIssuerCheck specifies whether to skip checking if the OIDC token's issuer claim matches the issuer specified in OidcIssuer. -auth.oidc.skipIssuerCheck = false - -# userConnTimeout specifies the maximum time to wait for a work connection. -# userConnTimeout = 10 - -# Only allow frpc to bind ports you list. By default, there won't be any limit. -allowPorts = [ - { start = 2000, end = 3000 }, - { single = 3001 }, - { single = 3003 }, - { start = 4000, end = 50000 } -] - -# Max ports can be used for each client, default value is 0 means no limit -maxPortsPerClient = 0 - -# If subDomainHost is not empty, you can set subdomain when type is http or https in frpc's configure file -# When subdomain is test, the host used by routing is test.frps.com -subDomainHost = "frps.com" - -# custom 404 page for HTTP requests -# custom404Page = "/path/to/404.html" - -# specify udp packet size, unit is byte. If not set, the default value is 1500. -# This parameter should be same between client and server. -# It affects the udp and sudp proxy. -udpPacketSize = 1500 - -# Retention time for NAT hole punching strategy data. -natholeAnalysisDataReserveHours = 168 - -# ssh tunnel gateway -# If you want to enable this feature, the bindPort parameter is required, while others are optional. -# By default, this feature is disabled. It will be enabled if bindPort is greater than 0. -# sshTunnelGateway.bindPort = 2200 -# sshTunnelGateway.privateKeyFile = "/home/frp-user/.ssh/id_rsa" -# sshTunnelGateway.autoGenPrivateKeyPath = "" -# sshTunnelGateway.authorizedKeysFile = "/home/frp-user/.ssh/authorized_keys" - -[[httpPlugins]] -name = "user-manager" -addr = "127.0.0.1:9000" -path = "/handler" -ops = ["Login"] - -[[httpPlugins]] -name = "port-manager" -addr = "127.0.0.1:9001" -path = "/handler" -ops = ["NewProxy"] diff --git a/frps/0.62.1/docker-compose.yml b/frps/0.62.1/docker-compose.yml deleted file mode 100644 index c2c07d70b..000000000 --- a/frps/0.62.1/docker-compose.yml +++ /dev/null @@ -1,11 +0,0 @@ -services: - frps: - image: snowdreamtech/frps:0.62.1 - container_name: ${CONTAINER_NAME} - restart: always - network_mode: host - volumes: - - ./data/frps.toml:/etc/frp/frps.toml - - ./data/ssl:/etc/frp/ssl - labels: - createdBy: "Apps" diff --git a/frps/0.62.1/scripts/init.sh b/frps/0.62.1/scripts/init.sh deleted file mode 100644 index 88588f90c..000000000 --- a/frps/0.62.1/scripts/init.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -source ./.env - -sed -i "s/bindPort = .*$/bindPort = ${PANEL_APP_PORT_SERVICE}/" ./data/frps.toml -sed -i "s/auth\.token = \".*\"/auth.token = \"${AUTH_TOKEN}\"/" ./data/frps.toml -sed -i "s/webServer\.port = .*$/webServer.port = ${PANEL_APP_PORT_HTTP}/" ./data/frps.toml -sed -i "s/webServer\.user = \".*\"/webServer.user = \"${USER_NAME}\"/" ./data/frps.toml -sed -i "s/webServer\.password = \".*\"/webServer.password = \"${PASSWORD}\"/" ./data/frps.toml diff --git a/frps/README.md b/frps/README.md deleted file mode 100644 index 75b37dcef..000000000 --- a/frps/README.md +++ /dev/null @@ -1,15 +0,0 @@ -# frp - -**frp(Fast Reverse Proxy)** 是一款开源的高性能反向代理工具,它允许您在不同网络之间建立安全的通信通道,用于实现端口映射、内网穿透和远程访问等多种网络连接需求。 - -## 主要功能: - -- **反向代理服务**:frp 允许您将外部流量转发到内部网络中的应用程序或服务,使外部用户可以访问您的内部资源,如Web服务器、数据库或其他应用程序。 -- **端口映射**:您可以使用 frp 轻松设置端口映射,将外部请求转发到内部设备的特定端口,这对于在不同网络之间共享服务非常有用。 -- **内网穿透**:frp 支持内网穿透,使您可以通过公共互联网轻松访问位于受限网络中的设备或服务,无需复杂的网络配置。 -- **TCP/UDP 支持**:frp 不仅支持 TCP 流量的代理,还支持 UDP 流量,适用于各种应用场景,如在线游戏或实时通信。 -- **安全性**:frp 支持使用加密协议来保护数据传输的安全性,如TLS/SSL,以确保通信过程中的数据保密性和完整性。 -- **多用户支持**:frp 允许您配置多个用户和权限,以细粒度控制对代理服务的访问权限,增强安全性。 -- **跨平台**:frp 可在多个操作系统上运行,包括Linux、Windows和macOS,因此适用于各种不同的环境。 -- **开源和自定义配置**:frp 是开源软件,允许您根据特定需求自定义配置,以满足各种使用情况。 -- **活跃的社区支持**:frp 有一个积极的开发社区,提供广泛的文档和支持,以帮助用户快速入门和解决问题。 \ No newline at end of file diff --git a/frps/data.yml b/frps/data.yml deleted file mode 100644 index fb7a2a36c..000000000 --- a/frps/data.yml +++ /dev/null @@ -1,26 +0,0 @@ -name: frp 服务端 -tags: - - 实用工具 -title: 专注于内网穿透的高性能反向代理应用 -description: 专注于内网穿透的高性能反向代理应用 -additionalProperties: - key: frps - name: frp 服务端 - tags: - - Tool - shortDescZh: 专注于内网穿透的高性能反向代理应用 - shortDescEn: High-performance reverse proxy application focused on intranet penetration - type: website - crossVersionUpdate: true - limit: 0 - recommend: 35 - website: https://github.com/fatedier/frp - github: https://github.com/fatedier/frp - document: https://github.com/fatedier/frp/blob/dev/README_zh.md - architectures: - - amd64 - - arm/v6 - - arm/v7 - - arm64 - - ppc64le - - s390x diff --git a/frps/logo.png b/frps/logo.png deleted file mode 100644 index 965411f86..000000000 Binary files a/frps/logo.png and /dev/null differ diff --git a/ghost/5.127.0/data.yml b/ghost/5.127.0/data.yml deleted file mode 100644 index 6c455c1c6..000000000 --- a/ghost/5.127.0/data.yml +++ /dev/null @@ -1,92 +0,0 @@ -additionalProperties: - formFields: - - child: - default: "" - envKey: PANEL_DB_HOST - required: true - type: service - default: mysql - envKey: PANEL_DB_TYPE - label: - en: Database Service - ja: データベースサービス - ms: Perkhidmatan Pangkalan Data - pt-br: Serviço de Banco de Dados - ru: Сервис баз данных - ko: 데이터베이스 서비스 - zh-hant: 資料庫服務 - zh: 数据库服务 - required: true - type: apps - values: - - label: MySQL - value: mysql - - default: ghost - envKey: PANEL_DB_NAME - label: - en: Database - ja: データベース - ms: Pangkalan Data - pt-br: Banco de Dados - ru: База данных - ko: 데이터베이스 - zh-hant: 資料庫 - zh: 数据库 - required: true - random: true - type: text - - default: ghost - envKey: PANEL_DB_USER - label: - en: Database User - ja: データベースユーザー - ms: Pengguna Pangkalan Data - pt-br: Usuário do Banco de Dados - ru: Пользователь базы данных - ko: 데이터베이스 사용자 - zh-hant: 資料庫用戶 - zh: 数据库用户 - required: true - random: true - type: text - - default: ghost - envKey: PANEL_DB_USER_PASSWORD - label: - en: Database Password - ja: データベースのパスワード - ms: Kata Laluan Pangkalan Data - pt-br: Senha do Banco de Dados - ru: Пароль базы данных - ko: 데이터베이스 비밀번호 - zh-hant: 資料庫密碼 - zh: 数据库密码 - required: true - type: password - random: true - - default: 2368 - envKey: PANEL_APP_PORT_HTTP - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh-hant: 埠 - zh: 端口 - required: true - type: number - rule: paramPort - - default: https://blog.domain.com - envKey: GHOST_URL - label: - en: Site URL - ja: サイトURL - ms: URL Laman - pt-br: URL do Site - ru: URL сайта - ko: 사이트 URL - zh-hant: 網站網址 - zh: 网站地址 - required: true - type: text diff --git a/ghost/5.127.0/docker-compose.yml b/ghost/5.127.0/docker-compose.yml deleted file mode 100644 index 8356a56c6..000000000 --- a/ghost/5.127.0/docker-compose.yml +++ /dev/null @@ -1,24 +0,0 @@ -services: - ghost: - image: ghost:5.127.0 - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_HTTP}:2368 - environment: - url: ${GHOST_URL} - database__client: mysql - database__connection__host: ${PANEL_DB_HOST} - database__connection__user: ${PANEL_DB_USER} - database__connection__password: ${PANEL_DB_USER_PASSWORD} - database__connection__database: ${PANEL_DB_NAME} - volumes: - - ./data:/var/lib/ghost/content - labels: - createdBy: "Apps" - -networks: - 1panel-network: - external: true diff --git a/ghost/README.md b/ghost/README.md deleted file mode 100644 index 279cf7787..000000000 --- a/ghost/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# Ghost - -**Ghost** 是一个用于创建专业博客和管理电子邮件新闻通讯的最佳开源平台。非常适合希望通过现代写作体验和高性能建立强大数字存在感的独立写作者、出版商和企业。 - -## 🌟 主要特性 - -- ✍️ 简洁直观的内容编辑器(支持 Markdown 和富文本) -- 📬 内置电子邮件新闻通讯支持 -- 🧩 可与多种第三方服务集成 -- ⚡ 高性能且对 SEO 友好 -- 🔐 内置会员系统与变现功能 diff --git a/ghost/README_en.md b/ghost/README_en.md deleted file mode 100644 index ee949d9dd..000000000 --- a/ghost/README_en.md +++ /dev/null @@ -1,11 +0,0 @@ -# Ghost - -**Ghost** is the best open source platform for creating professional blogs and managing email newsletters. Perfect for independent writers, publishers, and businesses who want to build a strong digital presence with a modern writing experience and high performance. - -## 🌟 Key Features - -- ✍️ Clean and intuitive content editor (Markdown + Rich Text) -- 📬 Built-in email newsletter support -- 🧩 Integrations with various third-party services -- ⚡ High performance and SEO-friendly -- 🔐 Built-in membership and monetization system diff --git a/ghost/data.yml b/ghost/data.yml deleted file mode 100644 index 6b462dfea..000000000 --- a/ghost/data.yml +++ /dev/null @@ -1,34 +0,0 @@ -name: Ghost -tags: - - 建站 -title: 最佳开源博客和电子报平台 -description: 最佳开源博客和电子报平台。 -additionalProperties: - key: ghost - name: Ghost - tags: - - Website - shortDescZh: 最佳开源博客和电子报平台。 - shortDescEn: The best open source blog & newsletter platform. - description: - en: The best open source blog & newsletter platform. - ja: 最高のオープンソースブログ&ニュースレタープラットフォーム。 - ms: Platform blog & surat berita sumber terbuka terbaik. - pt-br: A melhor plataforma de blog e boletins informativos de código aberto. - ru: Лучшая платформа для блогов и рассылок с открытым исходным кодом. - ko: 최고의 오픈 소스 블로그 및 뉴스레터 플랫폼입니다. - zh-hant: 最佳開源博客與電子報平台。 - zh: 最佳开源博客和电子报平台。 - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://ghost.org/ - github: https://github.com/TryGhost/Ghost - document: https://ghost.org/docs/ - architectures: - - amd64 - - arm/v7 - - arm64 - - ppc64le - - s390x diff --git a/ghost/logo.png b/ghost/logo.png deleted file mode 100644 index ac34001d5..000000000 Binary files a/ghost/logo.png and /dev/null differ diff --git a/gitea/23.8.2/data.yml b/gitea/23.8.2/data.yml deleted file mode 100755 index 82344eae7..000000000 --- a/gitea/23.8.2/data.yml +++ /dev/null @@ -1,109 +0,0 @@ -additionalProperties: - formFields: - - default: mysql - envKey: PANEL_DB_TYPE - labelEn: Database Service - labelZh: 数据库服务 - required: true - type: apps - child: - default: "" - envKey: PANEL_DB_HOST - required: true - type: service - values: - - label: MySQL - value: mysql - - label: PostgreSQL - value: postgres - label: - en: Database Service - ja: データベースサービス - ms: Perkhidmatan Pangkalan Data - pt-br: Serviço de Banco de Dados - ru: Сервис баз данных - ko: 데이터베이스 서비스 - zh-hant: 資料庫服務 - zh: 数据库服务 - - default: gitea - envKey: PANEL_DB_NAME - labelEn: Database - labelZh: 数据库名 - random: true - required: true - rule: paramCommon - type: text - label: - en: Database - ja: データベース - ms: Pangkalan Data - pt-br: Banco de Dados - ru: База данных - ko: 데이터베이스 - zh-hant: 資料庫 - zh: 数据库 - - default: gitea - envKey: PANEL_DB_USER - random: true - required: true - rule: paramCommon - type: text - labelEn: Database User - labelZh: 数据库用户 - label: - en: Database User - ja: データベースユーザー - ms: Pengguna Pangkalan Data - pt-br: Usuário do Banco de Dados - ru: Пользователь базы данных - ko: 데이터베이스 사용자 - zh-hant: 資料庫用戶 - zh: 数据库用户 - - default: gitea - envKey: PANEL_DB_USER_PASSWORD - random: true - required: true - type: password - labelEn: Database Password - labelZh: 数据库密码 - label: - en: Database Password - ja: データベースのパスワード - ms: Kata Laluan Pangkalan Data - pt-br: Senha do Banco de Dados - ru: Пароль базы данных - ko: 데이터베이스 비밀번호 - zh-hant: 資料庫密碼 - zh: 数据库密码 - - default: 3000 - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: HTTP 端口 - required: true - rule: paramPort - type: number - label: - en: HTTP Port - ja: HTTP ポート - ms: HTTP Port - pt-br: HTTP Porta - ru: HTTP Порт - ko: HTTP 포트 - zh-Hant: HTTP 埠 - zh: HTTP 端口 - - default: 222 - envKey: PANEL_APP_PORT_SSH - labelEn: Port - labelZh: SSH 端口 - required: true - rule: paramPort - type: number - label: - en: SSH Port - ja: SSH ポート - ms: SSH Port - pt-br: SSH Porta - ru: SSH Порт - ko: SSH 포트 - zh-Hant: SSH 埠 - zh: SSH 端口 diff --git a/gitea/23.8.2/docker-compose.yml b/gitea/23.8.2/docker-compose.yml deleted file mode 100644 index 156b24d35..000000000 --- a/gitea/23.8.2/docker-compose.yml +++ /dev/null @@ -1,27 +0,0 @@ -services: - gitea: - image: commitgo/gitea-ee:23.8.2 - container_name: ${CONTAINER_NAME} - environment: - - USER_UID=1000 - - USER_GID=1000 - - GITEA__database__DB_TYPE=${PANEL_DB_TYPE} - - GITEA__database__HOST=${PANEL_DB_HOST}:${PANEL_DB_PORT} - - GITEA__database__NAME=${PANEL_DB_NAME} - - GITEA__database__USER=${PANEL_DB_USER} - - GITEA__database__PASSWD=${PANEL_DB_USER_PASSWORD} - restart: always - networks: - - 1panel-network - volumes: - - ./data:/data - - /etc/timezone:/etc/timezone:ro - - /etc/localtime:/etc/localtime:ro - ports: - - "${PANEL_APP_PORT_HTTP}:3000" - - "${PANEL_APP_PORT_SSH}:22" - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/gitea/23.8.2/scripts/upgrade.sh b/gitea/23.8.2/scripts/upgrade.sh deleted file mode 100644 index 2cf758d28..000000000 --- a/gitea/23.8.2/scripts/upgrade.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -if [[ -f ./.env ]]; then - if grep -q "PANEL_DB_TYPE" ./.env; then - echo "PANEL_DB_TYPE 已存在" - else - echo 'PANEL_DB_TYPE="mysql"' >> ./.env - fi -else - echo ".env 文件不存在" -fi \ No newline at end of file diff --git a/gitea/README.md b/gitea/README.md deleted file mode 100644 index 41253bc1e..000000000 --- a/gitea/README.md +++ /dev/null @@ -1,10 +0,0 @@ -# Gitea - -**Gitea** 是新一代的代码托管平台,具备基于 Git 的核心代码托管能力和 DevSecOps 延伸能力,为广大软件开发者提供接近 GitHub 的使用体验,并且支持用户开展私有化部署。 - -## 优势: - -- **简单易用**:零门槛,线上快速获取和安装,使用体验好。 -- **卓越性能**:采用 Go 语言编写,资源占用小、运行速度快。 -- **高可配置**:100+ 配置项,通过灵活的配置满足不同应用场景的需求。 -- **安全稳定**:被⼴泛验证,39k+ GitHub Star、40万+ 安装量、1000+ 贡献者。 \ No newline at end of file diff --git a/gitea/README_en.md b/gitea/README_en.md deleted file mode 100644 index 2baf0050c..000000000 --- a/gitea/README_en.md +++ /dev/null @@ -1,10 +0,0 @@ -# Gitea - -**Gitea** is a next-generation code hosting platform that combines Git-based core code hosting capabilities with DevSecOps features, providing software developers with a GitHub-like user experience while supporting private deployment. - -## Advantages: - -- **Ease of Use**: Low barrier to entry with quick online setup and installation, offering an excellent user experience. -- **Outstanding Performance**: Built with Go, ensuring minimal resource usage and fast execution. -- **Highly Configurable**: Over 100 configuration options to meet diverse application needs flexibly. -- **Secure and Stable**: Extensively validated with 39k+ GitHub stars, 400k+ installations, and contributions from over 1,000 developers. \ No newline at end of file diff --git a/gitea/data.yml b/gitea/data.yml deleted file mode 100755 index a1a8a4b06..000000000 --- a/gitea/data.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: Gitea -tags: - - DevOps -title: 新一代的代码托管平台 -description: 新一代的代码托管平台 -additionalProperties: - key: gitea - name: Gitea - tags: - - DevOps - shortDescZh: 新一代的代码托管平台 - shortDescEn: The next generation of code hosting platform - description: - en: The next generation of code hosting platform - ja: 次世代のコードホスティングプラットフォーム - ms: Platform hosting kod generasi seterusnya - pt-br: A próxima geração de plataforma de hospedagem de código - ru: Платформа хостинга кода следующего поколения - ko: 다음 세대 코드 호스팅 플랫폼 - zh-Hant: 下一代代碼託管平台 - zh: 下一代代码托管平台 - type: website - crossVersionUpdate: false - limit: 0 - recommend: 55 - website: https://gitea.io/ - github: https://github.com/go-gitea/gitea - document: https://docs.gitea.io/ - architectures: - - amd64 - - arm64 diff --git a/gitea/logo.png b/gitea/logo.png deleted file mode 100644 index 82732ec61..000000000 Binary files a/gitea/logo.png and /dev/null differ diff --git a/glance/0.8.4/data.yml b/glance/0.8.4/data.yml deleted file mode 100644 index 933780701..000000000 --- a/glance/0.8.4/data.yml +++ /dev/null @@ -1,19 +0,0 @@ -additionalProperties: - formFields: - - default: 8080 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: WebUI Port - labelZh: 网页端口 - label: - en: WebUI Port - ja: WebUI ポート - ms: Port WebUI - pt-br: Porta WebUI - ru: Порт WebUI - ko: WebUI 포트 - zh: 网页端口 - zh-Hant: 網頁埠 - required: true - rule: paramPort - type: number \ No newline at end of file diff --git a/glance/0.8.4/data/glance.yml b/glance/0.8.4/data/glance.yml deleted file mode 100644 index 609f9c59b..000000000 --- a/glance/0.8.4/data/glance.yml +++ /dev/null @@ -1,65 +0,0 @@ -pages: - - name: Home - columns: - - size: small - widgets: - - type: calendar - - - type: rss - limit: 10 - collapse-after: 3 - cache: 3h - feeds: - - url: https://ciechanow.ski/atom.xml - - url: https://www.joshwcomeau.com/rss.xml - title: Josh Comeau - - url: https://samwho.dev/rss.xml - - url: https://awesomekling.github.io/feed.xml - - url: https://ishadeed.com/feed.xml - title: Ahmad Shadeed - - - type: twitch-channels - channels: - - theprimeagen - - cohhcarnage - - christitustech - - blurbs - - asmongold - - jembawls - - - size: full - widgets: - - type: hacker-news - - - type: videos - channels: - - UCR-DXc1voovS8nhAvccRZhg # Jeff Geerling - - UCv6J_jJa8GJqFwQNgNrMuww # ServeTheHome - - UCOk-gHyjcWZNj3Br4oxwh0A # Techno Tim - - - type: reddit - subreddit: selfhosted - - - size: small - widgets: - - type: weather - location: London, United Kingdom - - - type: markets - markets: - - symbol: SPY - name: S&P 500 - - symbol: BTC-USD - name: Bitcoin - - symbol: NVDA - name: NVIDIA - - symbol: AAPL - name: Apple - - symbol: MSFT - name: Microsoft - - symbol: GOOGL - name: Google - - symbol: AMD - name: AMD - - symbol: RDDT - name: Reddit \ No newline at end of file diff --git a/glance/0.8.4/docker-compose.yml b/glance/0.8.4/docker-compose.yml deleted file mode 100644 index 4b4b652a7..000000000 --- a/glance/0.8.4/docker-compose.yml +++ /dev/null @@ -1,18 +0,0 @@ -services: - glance: - image: glanceapp/glance:v0.8.4 - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTP}:8080" - volumes: - - ./data/glance.yml:/app/config/glance.yml - - /etc/timezone:/etc/timezone:ro - - /etc/localtime:/etc/localtime:ro - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/glance/README.md b/glance/README.md deleted file mode 100644 index 1ad4a25ab..000000000 --- a/glance/README.md +++ /dev/null @@ -1,15 +0,0 @@ -# Glance - -**Glance** 是一个自托管的仪表板,它可以将所有的订阅源整合到一个界面中,让你一目了然地查看所有信息。 - -## 说明 - -安装后默认包含一个示例配置文件,其中包含了一些小部件的示例,你可以根据自己的需求修改配置文件,添加或删除小部件。 -具体的配置方法请参考[配置文件说明](https://github.com/glanceapp/glance/blob/main/docs/configuration.md)、[预配置页面](https://github.com/glanceapp/glance/blob/main/docs/preconfigured-pages.md)。 - -## 主要功能: - -- **多样化的小部件**:Glance 提供了多种小部件,包括 RSS 订阅、Subreddit 帖子、天气、书签、Hacker News、Lobsters、特定频道的最新 YouTube 视频、时钟、日历、股票、iframe、Twitch 频道和顶级游戏、GitHub 发布、代码库概览、网站监控、搜索框等; -- **主题化**:Glance 支持主题化,用户可以根据个人喜好自定义仪表板的外观; -- **移动设备优化**:Glance 针对移动设备进行了优化,无论是手机还是平板,都能提供良好的用户体验; -- **快速且轻量级**:Glance 使用最少的 JavaScript,不依赖臃肿的框架,依赖极少,单一的、易于分发的小于15MB的二进制文件,以及同样大小的 Docker 容器。所有请求都是并行化的,未缓存的页面通常在大约1秒内加载完成(取决于互联网速度和部件数量)。 diff --git a/glance/README_en.md b/glance/README_en.md deleted file mode 100644 index 1e0135bc3..000000000 --- a/glance/README_en.md +++ /dev/null @@ -1,12 +0,0 @@ -# Glance -**Glance** is a self-hosted dashboard that consolidates all your feeds into one interface, allowing you to view everything at a glance. - -## Description -After installation, a default sample configuration file is included, containing examples of various widgets. You can modify the configuration file to add or remove widgets based on your needs. -For detailed configuration instructions, refer to the [Configuration Guide](https://github.com/glanceapp/glance/blob/main/docs/configuration.md) and [Preconfigured Pages](https://github.com/glanceapp/glance/blob/main/docs/preconfigured-pages.md). - -## Key Features: -- **Diverse Widgets**: Glance offers a variety of widgets, including RSS feeds, Subreddit posts, weather, bookmarks, Hacker News, Lobsters, the latest YouTube videos from specific channels, clocks, calendars, stocks, iframes, Twitch channels and top games, GitHub releases, repository overviews, website monitoring, search boxes, and more. -- **Theming**: Glance supports theming, allowing users to customize the dashboard's appearance according to personal preferences. -- **Mobile Optimization**: Glance is optimized for mobile devices, providing a great user experience on both phones and tablets. -- **Fast and Lightweight**: Glance uses minimal JavaScript, avoids bloated frameworks, and has minimal dependencies. It is distributed as a single, easy-to-deploy binary under 15MB, along with a similarly sized Docker container. All requests are parallelized, and uncached pages typically load in about 1 second (depending on internet speed and widget count). \ No newline at end of file diff --git a/glance/data.yml b/glance/data.yml deleted file mode 100644 index a5c90c4ae..000000000 --- a/glance/data.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: Glance -tags: - - DevOps -title: 一个将所有您的源订阅集中在一个地方的托管仪表板 -description: 一个将所有您的源订阅集中在一个地方的托管仪表板 -additionalProperties: - key: glance - name: Glance - tags: - - Tool - shortDescEn: A self-hosted dashboard that puts all your feeds in one place - shortDescZh: 一个将所有您的源订阅集中在一个地方的托管仪表板 - type: website - crossVersionUpdate: true - limit: 0 - document: https://github.com/glanceapp/glance - github: https://github.com/glanceapp/glance - website: https://github.com/glanceapp/glance - description: - en: A self-hosted dashboard that puts all your feeds in one place - zh: 一个将所有源集中在一个地方的自托管仪表板 - zh-Hant: 一個將所有源集中在一個地方的自託管儀表板 - ja: すべてのフィードを一箇所にまとめる自己ホスト型ダッシュボード - ms: Papan pemuka yang dihoskan sendiri yang meletakkan semua suapan anda di satu tempat - pt-br: Um painel auto-hospedado que coloca todos os seus feeds em um só lugar - ru: Самостоятельно размещаемая панель управления, которая собирает все ваши каналы в одном месте - ko: 모든 피드를 한 곳에 모아주는 자체 호스팅 대시보드 - architectures: - - amd64 - - arm64 - - arm/v7 \ No newline at end of file diff --git a/glance/logo.png b/glance/logo.png deleted file mode 100644 index 8323483bf..000000000 Binary files a/glance/logo.png and /dev/null differ diff --git a/go/1.21/data.yml b/go/1.21/data.yml deleted file mode 100644 index fcc6ed694..000000000 --- a/go/1.21/data.yml +++ /dev/null @@ -1 +0,0 @@ -additionalProperties: \ No newline at end of file diff --git a/go/1.21/docker-compose.yml b/go/1.21/docker-compose.yml deleted file mode 100644 index 29c21e1ae..000000000 --- a/go/1.21/docker-compose.yml +++ /dev/null @@ -1,21 +0,0 @@ -services: - golang: - image: golang:${GO_VERSION} - container_name: ${CONTAINER_NAME} - working_dir: /app - volumes: - - ${CODE_DIR}:/app - - ./run.sh:/run.sh - - ./.env:/.env - - ./mod:/go/pkg/mod - command: bash /run.sh - networks: - - 1panel-network - ports: - - ${HOST_IP}:${PANEL_APP_PORT_HTTP}:${APP_PORT} - restart: on-failure:5 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/go/1.21/run.sh b/go/1.21/run.sh deleted file mode 100644 index 9a7f1b85b..000000000 --- a/go/1.21/run.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/bash - -source /.env -eval $EXEC_SCRIPT - - diff --git a/go/1.22/data.yml b/go/1.22/data.yml deleted file mode 100644 index fcc6ed694..000000000 --- a/go/1.22/data.yml +++ /dev/null @@ -1 +0,0 @@ -additionalProperties: \ No newline at end of file diff --git a/go/1.22/docker-compose.yml b/go/1.22/docker-compose.yml deleted file mode 100644 index 29c21e1ae..000000000 --- a/go/1.22/docker-compose.yml +++ /dev/null @@ -1,21 +0,0 @@ -services: - golang: - image: golang:${GO_VERSION} - container_name: ${CONTAINER_NAME} - working_dir: /app - volumes: - - ${CODE_DIR}:/app - - ./run.sh:/run.sh - - ./.env:/.env - - ./mod:/go/pkg/mod - command: bash /run.sh - networks: - - 1panel-network - ports: - - ${HOST_IP}:${PANEL_APP_PORT_HTTP}:${APP_PORT} - restart: on-failure:5 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/go/1.22/run.sh b/go/1.22/run.sh deleted file mode 100644 index 9a7f1b85b..000000000 --- a/go/1.22/run.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/bash - -source /.env -eval $EXEC_SCRIPT - - diff --git a/go/1.23/data.yml b/go/1.23/data.yml deleted file mode 100644 index fcc6ed694..000000000 --- a/go/1.23/data.yml +++ /dev/null @@ -1 +0,0 @@ -additionalProperties: \ No newline at end of file diff --git a/go/1.23/docker-compose.yml b/go/1.23/docker-compose.yml deleted file mode 100644 index 29c21e1ae..000000000 --- a/go/1.23/docker-compose.yml +++ /dev/null @@ -1,21 +0,0 @@ -services: - golang: - image: golang:${GO_VERSION} - container_name: ${CONTAINER_NAME} - working_dir: /app - volumes: - - ${CODE_DIR}:/app - - ./run.sh:/run.sh - - ./.env:/.env - - ./mod:/go/pkg/mod - command: bash /run.sh - networks: - - 1panel-network - ports: - - ${HOST_IP}:${PANEL_APP_PORT_HTTP}:${APP_PORT} - restart: on-failure:5 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/go/1.23/run.sh b/go/1.23/run.sh deleted file mode 100644 index 9a7f1b85b..000000000 --- a/go/1.23/run.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/bash - -source /.env -eval $EXEC_SCRIPT - - diff --git a/go/1.24/data.yml b/go/1.24/data.yml deleted file mode 100644 index fcc6ed694..000000000 --- a/go/1.24/data.yml +++ /dev/null @@ -1 +0,0 @@ -additionalProperties: \ No newline at end of file diff --git a/go/1.24/docker-compose.yml b/go/1.24/docker-compose.yml deleted file mode 100644 index 29c21e1ae..000000000 --- a/go/1.24/docker-compose.yml +++ /dev/null @@ -1,21 +0,0 @@ -services: - golang: - image: golang:${GO_VERSION} - container_name: ${CONTAINER_NAME} - working_dir: /app - volumes: - - ${CODE_DIR}:/app - - ./run.sh:/run.sh - - ./.env:/.env - - ./mod:/go/pkg/mod - command: bash /run.sh - networks: - - 1panel-network - ports: - - ${HOST_IP}:${PANEL_APP_PORT_HTTP}:${APP_PORT} - restart: on-failure:5 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/go/1.24/run.sh b/go/1.24/run.sh deleted file mode 100644 index 9a7f1b85b..000000000 --- a/go/1.24/run.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/bash - -source /.env -eval $EXEC_SCRIPT - - diff --git a/go/README.md b/go/README.md deleted file mode 100644 index bd93c8be6..000000000 --- a/go/README.md +++ /dev/null @@ -1,25 +0,0 @@ -# Golang - -Golang(也称为 Go)是由谷歌开发的一种静态类型、编译型编程语言,以其简洁、强大和高性能而闻名,特别适合构建高效和可扩展的服务器端应用程序。 - -## 主要功能: - -- **高性能**:Golang 以其高效的编译和执行速度而著称。它生成的可执行文件非常小,并且能够快速启动和执行,使其非常适合构建高性能服务器和微服务。 - -- **简洁和清晰**:Golang 设计的初衷之一就是保持语言的简洁和易读性。它避免了许多复杂的特性,强调代码的清晰和简洁,从而提高开发者的生产力。 - -- **并发性**:Golang 原生支持并发编程,通过 goroutines 和 channels 提供了简单且强大的并发模型,使得构建高并发的应用程序变得更加容易。 - -- **内存管理**:Golang 提供了自动垃圾回收机制,减少了开发者手动管理内存的负担,降低了内存泄漏和其他相关错误的风险。 - -- **标准库**:Golang 拥有丰富且强大的标准库,涵盖了网络编程、文件处理、数据结构等常见需求,极大地简化了开发过程。 - -- **静态类型**:Golang 是一种静态类型的编程语言,编译器在编译时就能捕获大部分错误,增强了代码的可靠性和可维护性。 - -- **跨平台**:Golang 可以在多种操作系统上运行,包括 Windows、Linux 和 macOS,编写一次代码即可在多个平台上编译和执行。 - -- **内置工具**:Golang 提供了丰富的内置工具,如 gofmt 用于格式化代码,godoc 用于生成文档,go test 用于测试代码,极大地提升了开发体验。 - -- **模块化**:Golang 支持模块化编程,通过模块(module)和包(package)管理代码,使得代码组织更加清晰和可维护。 - -- **社区支持**:Golang 拥有一个活跃且庞大的开发者社区,开发者可以轻松找到各种库和工具来扩展其功能,同时也能够获得社区的支持和反馈。 diff --git a/go/README_en.md b/go/README_en.md deleted file mode 100644 index d0adb11a4..000000000 --- a/go/README_en.md +++ /dev/null @@ -1,25 +0,0 @@ -# Golang - -Golang (also known as Go) is a statically typed, compiled programming language developed by Google. Renowned for its simplicity, robustness, and high performance, it is particularly suited for building efficient and scalable server-side applications. - -## Main Features: - -- **High Performance**: Golang is renowned for its efficient compilation and execution speed. The executables it generates are very small, with fast startup and execution times, making it ideal for building high-performance servers and microservices. - -- **Simplicity and Clarity**: One of Golang's design goals is to maintain the simplicity and readability of the language. It avoids many complex features, focusing on clear and concise code to improve developer productivity. - -- **Concurrency**: Golang natively supports concurrent programming, providing a simple and powerful concurrency model through goroutines and channels, making it easier to build highly concurrent applications. - -- **Memory Management**: Golang features an automatic garbage collection mechanism, reducing the burden on developers to manually manage memory and lowering the risks of memory leaks and related errors. - -- **Standard Library**: Golang comes with a rich and powerful standard library that covers common needs such as network programming, file handling, and data structures, significantly simplifying the development process. - -- **Static Typing**: Golang is a statically typed language, which allows the compiler to catch most errors during compilation, enhancing the reliability and maintainability of the code. - -- **Cross-Platform**: Golang can run on various operating systems, including Windows, Linux, and macOS, allowing developers to write code once and compile and execute it across multiple platforms. - -- **Built-in Tools**: Golang provides a range of built-in tools, such as gofmt for code formatting, godoc for generating documentation, and go test for testing code, greatly improving the development experience. - -- **Modular Design**: Golang supports modular programming with modules and packages, helping organize code more clearly and making it easier to maintain. - -- **Community Support**: Golang has a large and active developer community, where developers can easily find libraries and tools to extend its functionality and receive support and feedback from the community. \ No newline at end of file diff --git a/go/data.yml b/go/data.yml deleted file mode 100644 index cd1be31cc..000000000 --- a/go/data.yml +++ /dev/null @@ -1,33 +0,0 @@ -name: Go -tags: - - 运行环境 -title: Go 运行环境 -description: Go 运行环境 -additionalProperties: - key: go - name: Go - tags: - - Runtime - shortDescZh: Go 运行环境 - shortDescEn: Go Runtime - description: - en: Go Runtime Environment - ja: Go 実行環境 - ms: Persekitaran Larian Go - pt-br: Ambiente de Execução Go - ru: Среда выполнения Go - ko: Go 실행 환경 - zh-Hant: Go 執行環境 - zh: Go 运行环境 - type: go - crossVersionUpdate: false - limit: 0 - recommend: 125 - website: https://go.dev/ - github: https://github.com/golang/go - architectures: - - amd64 - - arm64 - - arm/v7 - - s390x - - ppc64le diff --git a/go/logo.png b/go/logo.png deleted file mode 100644 index d6d98c3bd..000000000 Binary files a/go/logo.png and /dev/null differ diff --git a/gotify/2.6.3/data.yml b/gotify/2.6.3/data.yml deleted file mode 100644 index 773034af8..000000000 --- a/gotify/2.6.3/data.yml +++ /dev/null @@ -1,298 +0,0 @@ -additionalProperties: - formFields: - - default: "40266" - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh: 端口 - zh-Hant: 埠 - required: true - rule: paramPort - type: number - - default: "Asia/Shanghai" - edit: true - envKey: TIME_ZONE - labelEn: Time Zone - labelZh: 时区 - label: - en: Time Zone - ja: タイムゾーン - ms: Zon Masa - pt-br: Fuso Horário - ru: Часовой пояс - ko: 시간대 - zh: 时区 - zh-Hant: 時區 - required: true - type: text - - default: admin - edit: true - envKey: GOTIFY_DEFAULTUSER_NAME - labelEn: Default User Name - labelZh: 默认用户名 - label: - en: Default User Name - ja: デフォルトユーザー名 - ms: Nama Pengguna Lalai - pt-br: Nome de Usuário Padrão - ru: Имя пользователя по умолчанию - ko: 기본 사용자 이름 - zh: 默认用户名 - zh-Hant: 默認用戶名 - required: true - type: text - - default: "password" - edit: true - envKey: GOTIFY_DEFAULTUSER_PASS - labelEn: Default User Password - labelZh: 默认用户密码 - label: - en: Default User Password - ja: デフォルトユーザーパスワード - ms: Kata Laluan Pengguna Lalai - pt-br: Senha do Usuário Padrão - ru: Пароль пользователя по умолчанию - ko: 기본 사용자 비밀번호 - zh: 默认用户密码 - zh-Hant: 默認用戶密碼 - required: false - random: true - rule: paramComplexity - type: password - - default: "false" - edit: true - envKey: GOTIFY_REGISTRATION - labelEn: Enable Registration - labelZh: 允许注册 - label: - en: Enable Registration - ja: 登録を有効にする - ms: Aktifkan Pendaftaran - pt-br: Ativar Registro - ru: Включить регистрацию - ko: 등록 활성화 - zh: 允许注册 - zh-Hant: 允許註冊 - required: true - type: select - values: - - label: "true" - value: "true" - - label: "false" - value: "false" - - default: 10 - edit: true - envKey: GOTIFY_PASSSTRENGTH - labelEn: Minimum Password Strength - labelZh: 最低密码强度 - label: - en: Minimum Password Strength - ja: 最低パスワード強度 - ms: Kekuatan Kata Laluan Minimum - pt-br: Força Mínima da Senha - ru: Минимальная сложность пароля - ko: 최소 비밀번호 강도 - zh: 最低密码强度 - zh-Hant: 最低密碼強度 - required: true - type: number - - default: "80" - edit: true - envKey: GOTIFY_SERVER_PORT - labelEn: Internal Container Ports - labelZh: 容器内部端口 - label: - en: Internal Container Ports - ja: 内部コンテナポート - ms: Port Dalaman Kontena - pt-br: Portas Internas do Contêiner - ru: Внутренние порты контейнера - ko: 내부 컨테이너 포트 - zh: 容器内部端口 - zh-Hant: 容器內部埠 - required: true - rule: paramPort - type: number - - default: 0 - edit: true - envKey: GOTIFY_SERVER_KEEPALIVEPERIODSECONDS - labelEn: Keepalive Period (seconds) - labelZh: 保持活跃时间(秒) - required: true - type: number - - default: "" - edit: true - envKey: GOTIFY_SERVER_LISTENADDR - labelEn: Listen Address - labelZh: 监听地址 - required: false - type: text - - default: "false" - edit: true - envKey: GOTIFY_SERVER_SSL_ENABLED - labelEn: Enable SSL - labelZh: 启用 SSL - required: true - type: select - values: - - label: "true" - value: "true" - - label: "false" - value: "false" - - default: "true" - edit: true - envKey: GOTIFY_SERVER_SSL_REDIRECTTOHTTPS - labelEn: Redirect to HTTPS - labelZh: 重定向到 HTTPS - required: true - type: select - values: - - label: "true" - value: "true" - - label: "false" - value: "false" - - default: "" - edit: true - envKey: GOTIFY_SERVER_SSL_LISTENADDR - labelEn: SSL Listen Address - labelZh: SSL 监听地址 - required: false - type: text - - default: 443 - edit: true - envKey: GOTIFY_SERVER_SSL_PORT - labelEn: SSL Port - labelZh: SSL 端口 - required: true - rule: paramPort - type: number - - default: "" - edit: true - envKey: GOTIFY_SERVER_SSL_CERTFILE - labelEn: SSL Certificate File (inside container) - labelZh: SSL 证书文件 (容器内部) - required: false - type: text - - default: "" - edit: true - envKey: GOTIFY_SERVER_SSL_CERTKEY - labelEn: SSL Certificate Key (inside container) - labelZh: SSL 证书密钥 (容器内部) - required: false - type: text - - default: "false" - edit: true - envKey: GOTIFY_SERVER_SSL_LETSENCRYPT_ENABLED - labelEn: Enable Let's Encrypt - labelZh: 启用 Let's Encrypt - required: true - type: select - values: - - label: "true" - value: "true" - - label: "false" - value: "false" - - default: "false" - edit: true - envKey: GOTIFY_SERVER_SSL_LETSENCRYPT_ACCEPTTOS - labelEn: Accept Let's Encrypt TOS - labelZh: 接受 Let's Encrypt 条款 - required: true - type: select - values: - - label: "true" - value: "true" - - label: "false" - value: "false" - - default: "certs" - disabled: true - envKey: GOTIFY_SERVER_SSL_LETSENCRYPT_CACHE - labelEn: Let's Encrypt Cache Directory - labelZh: Let's Encrypt 缓存目录 - required: true - type: text - - default: "" - edit: true - envKey: GOTIFY_SERVER_SSL_LETSENCRYPT_HOSTS - labelEn: Let's Encrypt Hosts - labelZh: Let's Encrypt 域名 - required: false - type: text - - default: "" - edit: true - envKey: GOTIFY_SERVER_RESPONSEHEADERS - labelEn: Response Headers - labelZh: 响应头 - required: false - type: text - - default: "" - edit: true - envKey: GOTIFY_SERVER_CORS_ALLOWORIGINS - labelEn: CORS Allow Origins - labelZh: 允许跨域来源 - required: false - type: text - - default: "" - edit: true - envKey: GOTIFY_SERVER_CORS_ALLOWMETHODS - labelEn: CORS Allow Methods - labelZh: 允许跨域方法 - required: false - type: text - - default: "" - edit: true - envKey: GOTIFY_SERVER_CORS_ALLOWHEADERS - labelEn: CORS Allow Headers - labelZh: 允许跨域头 - required: false - type: text - - default: "" - edit: true - envKey: GOTIFY_SERVER_STREAM_ALLOWEDORIGINS - labelEn: Allowed origins for websocket connections - labelZh: Websocket 连接的允许来源 - required: false - type: text - - default: 45 - edit: true - envKey: GOTIFY_SERVER_STREAM_PINGPERIODSECONDS - labelEn: The interval in which websocket pings will be sent (seconds) - labelZh: 发送 websocket ping 的时间间隔(秒) - required: true - type: number - - default: sqlite3 - disabled: true - envKey: GOTIFY_DATABASE_DIALECT - labelEn: Database Dialect - labelZh: 数据库方式 - required: true - type: text - - default: "data/gotify.db" - disabled: true - envKey: GOTIFY_DATABASE_CONNECTION - labelEn: Database Connection - labelZh: 数据库连接 - required: true - type: text - - default: "data/images" - disabled: true - envKey: GOTIFY_UPLOADEDIMAGESDIR - labelEn: Uploaded Images Directory - labelZh: 上传的图片目录 - required: true - type: text - - default: "data/plugins" - disabled: true - envKey: GOTIFY_PLUGINSDIR - labelEn: Plugins Directory - labelZh: 插件目录 - required: true - type: text diff --git a/gotify/2.6.3/docker-compose.yml b/gotify/2.6.3/docker-compose.yml deleted file mode 100644 index c525326f2..000000000 --- a/gotify/2.6.3/docker-compose.yml +++ /dev/null @@ -1,45 +0,0 @@ -services: - gotify: - image: "gotify/server:2.6.3" - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTP}:${GOTIFY_SERVER_PORT}" - environment: - - 'TZ=${TIME_ZONE}' - - 'GOTIFY_SERVER_PORT=${GOTIFY_SERVER_PORT}' - - 'GOTIFY_SERVER_KEEPALIVEPERIODSECONDS=${GOTIFY_SERVER_KEEPALIVEPERIODSECONDS}' - - 'GOTIFY_SERVER_LISTENADDR=${GOTIFY_SERVER_LISTENADDR}' - - 'GOTIFY_SERVER_SSL_ENABLED=${GOTIFY_SERVER_SSL_ENABLED}' - - 'GOTIFY_SERVER_SSL_REDIRECTTOHTTPS=${GOTIFY_SERVER_SSL_REDIRECTTOHTTPS}' - - 'GOTIFY_SERVER_SSL_LISTENADDR=${GOTIFY_SERVER_SSL_LISTENADDR}' - - 'GOTIFY_SERVER_SSL_PORT=${GOTIFY_SERVER_SSL_PORT}' - - 'GOTIFY_SERVER_SSL_CERTFILE=${GOTIFY_SERVER_SSL_CERTFILE}' - - 'GOTIFY_SERVER_SSL_CERTKEY=${GOTIFY_SERVER_SSL_CERTKEY}' - - 'GOTIFY_SERVER_SSL_LETSENCRYPT_ENABLED=${GOTIFY_SERVER_SSL_LETSENCRYPT_ENABLED}' - - 'GOTIFY_SERVER_SSL_LETSENCRYPT_ACCEPTTOS=${GOTIFY_SERVER_SSL_LETSENCRYPT_ACCEPTTOS}' - - 'GOTIFY_SERVER_SSL_LETSENCRYPT_CACHE=${GOTIFY_SERVER_SSL_LETSENCRYPT_CACHE}' - - 'GOTIFY_SERVER_SSL_LETSENCRYPT_HOSTS=${GOTIFY_SERVER_SSL_LETSENCRYPT_HOSTS}' - - 'GOTIFY_SERVER_RESPONSEHEADERS=${GOTIFY_SERVER_RESPONSEHEADERS}' - - 'GOTIFY_SERVER_CORS_ALLOWORIGINS=${GOTIFY_SERVER_CORS_ALLOWORIGINS}' - - 'GOTIFY_SERVER_CORS_ALLOWMETHODS=${GOTIFY_SERVER_CORS_ALLOWMETHODS}' - - 'GOTIFY_SERVER_CORS_ALLOWHEADERS=${GOTIFY_SERVER_CORS_ALLOWHEADERS}' - - 'GOTIFY_SERVER_STREAM_ALLOWEDORIGINS=${GOTIFY_SERVER_STREAM_ALLOWEDORIGINS}' - - 'GOTIFY_SERVER_STREAM_PINGPERIODSECONDS=${GOTIFY_SERVER_STREAM_PINGPERIODSECONDS}' - - 'GOTIFY_DATABASE_DIALECT=${GOTIFY_DATABASE_DIALECT}' - - 'GOTIFY_DATABASE_CONNECTION=${GOTIFY_DATABASE_CONNECTION}' - - 'GOTIFY_DEFAULTUSER_NAME=${GOTIFY_DEFAULTUSER_NAME}' - - 'GOTIFY_DEFAULTUSER_PASS=${GOTIFY_DEFAULTUSER_PASS}' - - 'GOTIFY_PASSSTRENGTH=${GOTIFY_PASSSTRENGTH}' - - 'GOTIFY_UPLOADEDIMAGESDIR=${GOTIFY_UPLOADEDIMAGESDIR}' - - 'GOTIFY_PLUGINSDIR=${GOTIFY_PLUGINSDIR}' - - 'GOTIFY_REGISTRATION=${GOTIFY_REGISTRATION}' - volumes: - - ./data:/app/data - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/gotify/README.md b/gotify/README.md deleted file mode 100644 index eab9aa807..000000000 --- a/gotify/README.md +++ /dev/null @@ -1,13 +0,0 @@ -# Gotify - -**Gotify** 是一个简单的服务器来发送和接收消息(通过 WebSocket 实时发送和接收) - -## 特征: - -- 通过 REST-API 发送消息 -- 通过 WebSocket 接收消息 -- 管理用户、客户端和应用程序 -- [插件](https://gotify.net/docs/plugin) -- Web-UI -> [./ui](https://github.com/gotify/server/tree/master/ui) -- 发送消息的 CLI -> [gotify/cli](https://github.com/gotify/cli) -- Android-APP -> [gotify/android](https://github.com/gotify/android) \ No newline at end of file diff --git a/gotify/README_en.md b/gotify/README_en.md deleted file mode 100644 index f04db4420..000000000 --- a/gotify/README_en.md +++ /dev/null @@ -1,11 +0,0 @@ -# Gotify -**Gotify** is a simple server for sending and receiving messages (real-time via WebSocket). - -## Features: -- Send messages via REST-API -- Receive messages via WebSocket -- Manage users, clients, and applications -- [Plugins](https://gotify.net/docs/plugin) -- Web-UI -> [./ui](https://github.com/gotify/server/tree/master/ui) -- CLI for sending messages -> [gotify/cli](https://github.com/gotify/cli) -- Android App -> [gotify/android](https://github.com/gotify/android) \ No newline at end of file diff --git a/gotify/data.yml b/gotify/data.yml deleted file mode 100644 index d8e1674d8..000000000 --- a/gotify/data.yml +++ /dev/null @@ -1,30 +0,0 @@ -name: Gotify -tags: - - 开发工具 -title: 简单的服务器来发送和接收消息 -description: 简单的服务器来发送和接收消息 -additionalProperties: - key: gotify - name: Gotify - tags: - - DevTool - shortDescZh: 简单的服务器来发送和接收消息 - shortDescEn: A simple server for sending and receiving messages - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://gotify.net - github: https://github.com/gotify/server - document: https://gotify.net/docs/ - description: - en: A simple server for sending and receiving messages - zh: 简单的服务器,用于发送和接收消息 - zh-Hant: 簡單的伺服器,用於發送和接收消息 - ja: メッセージの送受信に使用するシンプルなサーバー - ms: Pelayan ringkas untuk menghantar dan menerima mesej - pt-br: Um servidor simples para enviar e receber mensagens - ru: Простой сервер для отправки и получения сообщений - ko: 메시지를 보내고 받는 간단한 서버 - architectures: - - amd64 diff --git a/gotify/logo.png b/gotify/logo.png deleted file mode 100644 index 3876434c4..000000000 Binary files a/gotify/logo.png and /dev/null differ diff --git a/grafana/12.0.1/data.yml b/grafana/12.0.1/data.yml deleted file mode 100644 index 2595e69ad..000000000 --- a/grafana/12.0.1/data.yml +++ /dev/null @@ -1,19 +0,0 @@ -additionalProperties: - formFields: - - default: 3000 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh: 端口 - zh-Hant: 埠 - required: true - rule: paramPort - type: number diff --git a/grafana/12.0.1/docker-compose.yml b/grafana/12.0.1/docker-compose.yml deleted file mode 100644 index 9bd445e5c..000000000 --- a/grafana/12.0.1/docker-compose.yml +++ /dev/null @@ -1,17 +0,0 @@ -services: - grafana: - container_name: ${CONTAINER_NAME} - image: grafana/grafana:12.0.2 - restart: always - user: '0' - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTP}:3000" - volumes: - - ./data:/var/lib/grafana - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/grafana/README.md b/grafana/README.md deleted file mode 100644 index c8cdd2d41..000000000 --- a/grafana/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# 默认账户密码 - -``` -username:admin -password:admin -``` - -# Grafana - -**Grafana** 允许您查询、可视化、警报和了解您的指标,无论它们存储在何处。与您的团队创建、探索和共享仪表板,并培养数据驱动的文化。 - -## 主要功能: - -- **可视化**:快速、灵活的客户端图表,具有多种选项。面板插件提供了许多不同的方式来可视化指标和日志。 -- **动态仪表板**:使用显示为仪表板顶部下拉菜单的模板变量创建动态且可重用的仪表板。 -- **探索指标**:通过即席查询和动态钻取来探索数据。拆分视图并并排比较不同的时间范围、查询和数据源。 -- **探索日志**:体验从指标切换到带有保留标签过滤器的日志的魔力。快速搜索所有日志或实时流式传输它们。 -- **警报**:直观地定义最重要指标的警报规则。Grafana 将持续评估并向 Slack、PagerDuty、VictorOps、OpsGenie 等系统发送通知。 -- **混合数据源**:在同一个图表中混合不同的数据源!您可以为每个查询指定数据源。这甚至适用于自定义数据源。 \ No newline at end of file diff --git a/grafana/README_en.md b/grafana/README_en.md deleted file mode 100644 index 26402567c..000000000 --- a/grafana/README_en.md +++ /dev/null @@ -1,16 +0,0 @@ -# Default Username and Password -``` -username: admin -password: admin -``` - -# Grafana -**Grafana** allows you to query, visualize, alert, and understand your metrics no matter where they are stored. Create, explore, and share dashboards with your team and foster a data-driven culture. - -## Key Features: -- **Visualization**: Fast and flexible client-side graphs with many options. Panel plugins provide many different ways to visualize metrics and logs. -- **Dynamic Dashboards**: Create dynamic and reusable dashboards using template variables displayed as drop-down menus at the top of the dashboard. -- **Explore Metrics**: Explore your data with ad-hoc queries and dynamic drill-down. Split views and compare different time ranges, queries, and data sources side by side. -- **Explore Logs**: Experience the magic of switching from metrics to logs with preserved label filters. Quickly search all your logs or stream them live. -- **Alerting**: Define alert rules for your most important metrics intuitively. Grafana will continuously evaluate them and send notifications to systems like Slack, PagerDuty, VictorOps, OpsGenie, and more. -- **Mixed Data Sources**: Mix different data sources in the same graph! You can specify a data source for each query. This even works for custom data sources. \ No newline at end of file diff --git a/grafana/data.yml b/grafana/data.yml deleted file mode 100644 index c460d2de9..000000000 --- a/grafana/data.yml +++ /dev/null @@ -1,32 +0,0 @@ -name: Grafana -tags: - - 实用工具 -title: 用于监控和可观察的开源平台 -description: 用于监控和可观察的开源平台 -additionalProperties: - key: grafana - name: Grafana - tags: - - Tool - shortDescZh: 用于监控和可观察的开源平台 - shortDescEn: The open-source platform for monitoring and observability - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://grafana.com/ - github: https://github.com/grafana/grafana - document: https://grafana.com/docs/grafana - description: - en: The open-source platform for monitoring and observability - zh: 用于监控和可观测性的开源平台 - zh-Hant: 用於監控和可觀測性的開源平台 - ja: 監視と可観測性のためのオープンソースプラットフォーム - ms: Platform sumber terbuka untuk pemantauan dan kebolehlihatan - pt-br: A plataforma de código aberto para monitoramento e observabilidade - ru: Открытая платформа для мониторинга и наблюдаемости - ko: 모니터링 및 관찰 가능성을 위한 오픈 소스 플랫폼 - architectures: - - amd64 - - arm64 - - arm/v7 \ No newline at end of file diff --git a/grafana/logo.png b/grafana/logo.png deleted file mode 100644 index e6f7ea057..000000000 Binary files a/grafana/logo.png and /dev/null differ diff --git a/halo/2.21.1/data.yml b/halo/2.21.1/data.yml deleted file mode 100644 index 522309d49..000000000 --- a/halo/2.21.1/data.yml +++ /dev/null @@ -1,59 +0,0 @@ -additionalProperties: - formFields: - - child: - default: "" - envKey: PANEL_DB_HOST - required: true - type: service - default: mysql - envKey: PANEL_DB_TYPE - labelEn: Database - labelZh: 数据库服务 - required: true - type: apps - values: - - label: MySQL - value: mysql - - label: MariaDB - value: mariadb - - label: PostgreSQL - value: postgresql - - default: halo - envKey: PANEL_DB_NAME - labelEn: Database name - labelZh: 数据库名 - random: true - required: true - rule: paramCommon - type: text - - default: halo - envKey: PANEL_DB_USER - labelEn: Database username - labelZh: 数据库用户 - random: true - required: true - rule: paramCommon - type: text - - default: halo - envKey: PANEL_DB_USER_PASSWORD - labelEn: Database password - labelZh: 数据库用户密码 - random: true - required: true - type: password - - default: http://localhost:8090 - edit: true - envKey: HALO_EXTERNAL_URL - labelEn: External URL - labelZh: 外部访问地址 - required: true - rule: paramHttp - type: text - - default: 8090 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number diff --git a/halo/2.21.1/docker-compose.yml b/halo/2.21.1/docker-compose.yml deleted file mode 100644 index f56910ee1..000000000 --- a/halo/2.21.1/docker-compose.yml +++ /dev/null @@ -1,30 +0,0 @@ -services: - halo: - image: halohub/halo-pro:2.21.1 - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - volumes: - - ./data:/root/.halo2 - ports: - - ${PANEL_APP_PORT_HTTP}:8090 - healthcheck: - test: [ "CMD", "curl", "-f", "http://localhost:8090/actuator/health/readiness" ] - interval: 30s - timeout: 5s - retries: 5 - start_period: 30s - command: - - --spring.r2dbc.url=r2dbc:pool:${PANEL_DB_TYPE}://${PANEL_DB_HOST}:${PANEL_DB_PORT}/${PANEL_DB_NAME} - - --spring.r2dbc.username=${PANEL_DB_USER} - - --spring.r2dbc.password=${PANEL_DB_USER_PASSWORD} - - --spring.sql.init.platform=${PANEL_DB_TYPE} - - --halo.external-url=${HALO_EXTERNAL_URL} - environment: - - JVM_OPTS= - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/halo/README.md b/halo/README.md deleted file mode 100644 index 7835feb3e..000000000 --- a/halo/README.md +++ /dev/null @@ -1,27 +0,0 @@ -# Halo 专业版 - -**Halo 专业版** 是一个简洁、高效的开源建站平台。它提供了易于使用的界面和丰富的功能,使用户可以轻松地创建个人博客或专业网站。 - -## 主要功能 - -- **简洁易用**:Halo 的界面设计简洁清晰,使用户能够快速上手并轻松管理网站内容。 -- **高度可定制**:Halo 提供了丰富的主题和插件系统,用户可以根据自己的需求选择合适的主题和插件,定制网站的外观和功能。 -- **多媒体支持**:Halo 支持插入和管理多媒体内容,如图片、视频和音频,使网站内容更加丰富和生动。 -- **SEO 友好**:Halo 内置了优化的 SEO 功能,帮助您提升网站在搜索引擎中的排名,增加曝光和访问量。 -- **安全可靠**:Halo 针对安全性进行了严格设计和测试,保护网站数据的安全和可靠性。 -- **自定义品牌信息(专业版)**:Halo 专业版支持修改后台登录页、控制台等 Logo 信息。 -- **全站私有化(专业版)**:Halo 专业版支持全站私有化,只有登录用户才能访问网站。 -- **手机号码验证注册登录(专业版)**:Halo 专业版支持配置短信发送平台,支持手机号码验证注册登录。 - -## 注意事项 - -- 此版本为 Halo 专业版,非开源版本,但无需激活也可正常使用开源版本所有功能。 -- 如果您需要专业版的功能,可以前往 [凌霞软件官网](https://www.lxware.cn/halo) 购买专业版许可证,然后在概览页面导入许可证即可。 - -## 相关链接 - -- 官网: -- 专业版官网: -- 应用市场: -- 用户社区: -- GitHub 开源仓库: diff --git a/halo/data.yml b/halo/data.yml deleted file mode 100755 index fd62ea622..000000000 --- a/halo/data.yml +++ /dev/null @@ -1,25 +0,0 @@ -name: Halo -tags: - - 建站 -title: 强大易用的开源建站工具 -description: 强大易用的开源建站工具 -additionalProperties: - key: halo - name: Halo - tags: - - Website - shortDescZh: 强大易用的开源建站工具 - shortDescEn: Powerful and easy-to-use open source website builder - type: website - crossVersionUpdate: true - limit: 0 - recommend: 10 - website: https://halo.run/ - github: https://github.com/halo-dev/halo - document: https://docs.halo.run/ - memoryRequired: 1024 - architectures: - - amd64 - - arm64 - - ppc64le - - s390x diff --git a/halo/logo.png b/halo/logo.png deleted file mode 100644 index 044ab5962..000000000 Binary files a/halo/logo.png and /dev/null differ diff --git a/heimdall/2.6.3/data.yml b/heimdall/2.6.3/data.yml deleted file mode 100644 index 55afbbb5d..000000000 --- a/heimdall/2.6.3/data.yml +++ /dev/null @@ -1,52 +0,0 @@ -additionalProperties: - formFields: - - default: 40049 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: HTTP Port - labelZh: HTTP端口 - label: - en: HTTP Port - ja: HTTPポート - ms: Port HTTP - pt-br: Porta HTTP - ru: HTTP-порт - ko: HTTP 포트 - zh: HTTP端口 - zh-Hant: HTTP連接埠 - required: true - rule: paramPort - type: number - - default: 40050 - edit: true - envKey: PANEL_APP_PORT_HTTPS - labelEn: HTTPS Port - labelZh: HTTPS端口 - label: - en: HTTPS Port - ja: HTTPSポート - ms: Port HTTPS - pt-br: Porta HTTPS - ru: HTTPS-порт - ko: HTTPS 포트 - zh: HTTPS端口 - zh-Hant: HTTPS連接埠 - required: true - rule: paramPort - type: number - - default: Asia/Shanghai - edit: true - envKey: TIME_ZONE - labelEn: Time zone - labelZh: 时区 - label: - en: Time zone - ja: タイムゾーン - ms: Zon masa - pt-br: Fuso horário - ru: Часовой пояс - ko: 시간대 - zh: 时区 - zh-Hant: 時區 - required: true - type: text diff --git a/heimdall/2.6.3/docker-compose.yml b/heimdall/2.6.3/docker-compose.yml deleted file mode 100644 index 3f038c3bd..000000000 --- a/heimdall/2.6.3/docker-compose.yml +++ /dev/null @@ -1,22 +0,0 @@ -services: - heimdall: - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTP}:80" - - "${PANEL_APP_PORT_HTTPS}:443" - volumes: - - "./data:/config" - environment: - - PUID=1000 - - PGID=1000 - - TZ=${TIME_ZONE} - image: linuxserver/heimdall:2.6.3 - labels: - createdBy: "Apps" - -networks: - 1panel-network: - external: true diff --git a/heimdall/README.md b/heimdall/README.md deleted file mode 100644 index cb09b3199..000000000 --- a/heimdall/README.md +++ /dev/null @@ -1,12 +0,0 @@ -# Heimdall - -**Heimdall** 是所有 Web 应用程序的仪表板。不过,它不需要仅限于应用程序,您可以添加指向您喜欢的任何内容的链接。 - -## 优势: - -- 易于编辑、保存,直接在线操作即可,无须编辑代码。 -- 图标和颜色完全自定义,不需要通过更改整体模板来实现 -- 支持分类嵌套,通过标签进行分类管理,不用担心主页放不下 -- 支持更多模式/应用种类,除普通链接外还可以支持增强型标签,显示实时数据 -- 支持内嵌搜索框,更适合当浏览器主页使用 -- 支持多用户使用,不同用户不同主页,支持加密 \ No newline at end of file diff --git a/heimdall/README_en.md b/heimdall/README_en.md deleted file mode 100644 index 5e1127856..000000000 --- a/heimdall/README_en.md +++ /dev/null @@ -1,10 +0,0 @@ -# Heimdall -**Heimdall** is a dashboard for all your web applications. However, it doesn't have to be limited to applications; you can add links to anything you like. - -## Advantages: -- Easy to edit and save directly online without editing code. -- Fully customizable icons and colors without changing the overall template. -- Supports nested categories and tag-based classification, so you don't have to worry about running out of space on the homepage. -- Supports more modes/application types, including enhanced tags that display real-time data in addition to regular links. -- Includes an embedded search box, making it more suitable as a browser homepage. -- Supports multiple users with different homepages for each user and encryption support. \ No newline at end of file diff --git a/heimdall/data.yml b/heimdall/data.yml deleted file mode 100644 index c6beb5ec3..000000000 --- a/heimdall/data.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: Heimdall -tags: - - 实用工具 -title: 应用程序仪表板和启动器 -description: 应用程序仪表板和启动器 -additionalProperties: - key: heimdall - name: Heimdall - tags: - - Tool - shortDescZh: 应用程序仪表板和启动器 - shortDescEn: An Application dashboard and launcher - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://heimdall.site/ - github: https://github.com/linuxserver/Heimdall - document: https://github.com/linuxserver/Heimdall - description: - en: An Application dashboard and launcher - zh: 应用程序仪表板和启动器 - zh-Hant: 應用程式儀表板和啟動器 - ja: アプリケーションダッシュボードとランチャー - ms: Papan pemuka dan pelancar aplikasi - pt-br: Um painel de controle e inicializador de aplicativos - ru: Панель управления и запуск приложений - ko: 애플리케이션 대시보드 및 실행기 - architectures: - - amd64 - - arm64 \ No newline at end of file diff --git a/heimdall/logo.png b/heimdall/logo.png deleted file mode 100644 index 8f9073461..000000000 Binary files a/heimdall/logo.png and /dev/null differ diff --git a/home-assistant/2025.6.2/data.yml b/home-assistant/2025.6.2/data.yml deleted file mode 100644 index e18c23116..000000000 --- a/home-assistant/2025.6.2/data.yml +++ /dev/null @@ -1,36 +0,0 @@ -additionalProperties: - formFields: - - default: 8123 - disabled: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: HTTP 端口 - required: true - rule: paramPort - type: number - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh-Hant: 埠 - zh: 端口 - - default: Asia/Shanghai - edit: true - envKey: TIME_ZONE - labelEn: Time zone - labelZh: 时区 - required: true - type: text - label: - en: Time Zone - ja: タイムゾーン - ms: Zon Waktu - pt-br: Fuso Horário - ru: Часовой пояс - ko: 시간대 - zh-Hant: 時區 - zh: 时区 - diff --git a/home-assistant/2025.6.2/docker-compose.yml b/home-assistant/2025.6.2/docker-compose.yml deleted file mode 100644 index b704319cf..000000000 --- a/home-assistant/2025.6.2/docker-compose.yml +++ /dev/null @@ -1,13 +0,0 @@ -services: - homeassistant: - container_name: ${CONTAINER_NAME} - restart: always - network_mode: "host" - volumes: - - "./data:/config" - - "/run/dbus:/run/dbus:ro" - environment: - - TZ=${TIME_ZONE} - image: homeassistant/home-assistant:2025.6.2 - labels: - createdBy: "Apps" diff --git a/home-assistant/README.md b/home-assistant/README.md deleted file mode 100644 index 5ba03cda3..000000000 --- a/home-assistant/README.md +++ /dev/null @@ -1,29 +0,0 @@ -# Home Assistant - -Home Assistant 是一款智能家居自动化平台,提供了丰富的功能和灵活性,用于控制和自动化您家中的各种智能设备和服务。 - -## 主要功能: - -### 设备整合 - -Home Assistant 可以与各种智能设备整合,包括智能灯具、智能插座、温度传感器、摄像头、智能扬声器等。它支持多个通信协议,如Z-Wave、Zigbee、Wi-Fi等,使您能够将各种品牌和类型的设备集成到一个平台中。 - -### 自动化 - -Home Assistant 允许您创建自动化脚本,以响应特定事件或条件。您可以设置触发条件,例如时间、设备状态或传感器读数,并定义相应的操作,如打开灯光、发送通知或执行其他任务。这样,您可以实现各种自动化场景,提高家居生活的便利性。 - -### 遥控和监控 - -通过 Home Assistant,您可以使用一个统一的界面来遥控和监控您的智能设备。您可以通过移动设备或计算机控制家中的灯光、加热、冷却、安全系统等。同时,您还可以查看连接到您网络的摄像头的实时视频流,确保家中安全。 - -### 安全性 - -Home Assistant 重视安全性,提供了身份验证和权限控制功能。您可以设置不同用户的访问权限,以确保只有授权的人可以远程访问和控制您的智能家居系统。 - -### 自定义主题 - -Home Assistant 允许您自定义界面主题,以满足个人偏好。您可以选择不同的主题颜色和图标,使界面更符合您的风格。 - -### 社区支持和插件 - -Home Assistant 拥有一个庞大的社区,社区成员不断开发和分享各种插件和集成,使您可以扩展系统的功能。无论您有什么需求,都很可能可以在社区中找到适合的解决方案。 \ No newline at end of file diff --git a/home-assistant/README_en.md b/home-assistant/README_en.md deleted file mode 100644 index 606060694..000000000 --- a/home-assistant/README_en.md +++ /dev/null @@ -1,29 +0,0 @@ -# Home Assistant - -Home Assistant is a smart home automation platform that offers extensive features and flexibility to control and automate various smart devices and services in your home. - -## Main Features - -### Device Integration - -Home Assistant integrates with a wide range of smart devices, including smart lights, outlets, temperature sensors, cameras, and smart speakers. It supports multiple communication protocols such as Z-Wave, Zigbee, and Wi-Fi, allowing seamless integration of devices from various brands and types into a single platform. - -### Automation - -Home Assistant enables you to create automation scripts that respond to specific events or conditions. You can set triggers, such as time, device states, or sensor readings, and define corresponding actions like turning on lights, sending notifications, or performing other tasks. This allows you to create convenient and sophisticated home automation scenarios. - -### Remote Control and Monitoring - -Using Home Assistant, you can remotely control and monitor your smart devices through a unified interface. Manage lighting, heating, cooling, and security systems from your mobile device or computer. Additionally, you can view live video streams from connected cameras to ensure home security. - -### Security - -Home Assistant prioritizes security by offering authentication and access control features. You can configure user permissions to ensure that only authorized individuals can remotely access and control your smart home system. - -### Custom Themes - -Home Assistant allows you to customize the interface theme to match your personal preferences. Choose different theme colors and icons to create a user interface that suits your style. - -### Community Support and Plugins - -Home Assistant boasts a vibrant community where members continuously develop and share plugins and integrations. This ecosystem enables you to expand the system's functionality, ensuring that you can find a solution for virtually any requirement. \ No newline at end of file diff --git a/home-assistant/data.yml b/home-assistant/data.yml deleted file mode 100644 index 4a42f6b71..000000000 --- a/home-assistant/data.yml +++ /dev/null @@ -1,34 +0,0 @@ -name: Home Assistant -tags: - - 实用工具 -title: 开源家庭自动化,将本地控制和隐私放在首位 -description: 开源家庭自动化,将本地控制和隐私放在首位 -additionalProperties: - key: home-assistant - name: Home Assistant - tags: - - Tool - shortDescZh: 开源家庭自动化,将本地控制和隐私放在首位 - shortDescEn: Open source home automation that puts local control and privacy first - description: - en: Open source home automation that puts local control and privacy first - ja: ローカルコントロールとプライバシーを重視するオープンソースのホームオートメーション - ms: Automasi rumah sumber terbuka yang mengutamakan kawalan tempatan dan privasi - pt-br: Automação residencial de código aberto que prioriza o controle local e a privacidade - ru: Открытая домашняя автоматизация, которая ставит на первое место локальный контроль и конфиденциальность - ko: 로컬 제어와 개인 정보 보호를 우선시하는 오픈 소스 홈 오토메이션 - zh-Hant: 以本機控制和隱私為先的開源家居自動化 - zh: 以本地控制和隐私为先的开源家居自动化 - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://www.home-assistant.io/ - github: https://github.com/home-assistant/core - document: https://www.home-assistant.io/docs/ - memoryRequired: 1024 - architectures: - - arm64 - - amd64 - - arm/v6 - - arm/v7 diff --git a/home-assistant/logo.png b/home-assistant/logo.png deleted file mode 100644 index c62244710..000000000 Binary files a/home-assistant/logo.png and /dev/null differ diff --git a/homepage/1.3.2/data.yml b/homepage/1.3.2/data.yml deleted file mode 100644 index 57ed9f30c..000000000 --- a/homepage/1.3.2/data.yml +++ /dev/null @@ -1,35 +0,0 @@ -additionalProperties: - formFields: - - default: 3000 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: HTTP Port - labelZh: HTTP端口 - label: - en: HTTP Port - ja: HTTPポート - ms: Port HTTP - pt-br: Porta HTTP - ru: HTTP-порт - ko: HTTP 포트 - zh: HTTP端口 - zh-Hant: HTTP連接埠 - required: true - rule: paramPort - type: number - - default: Asia/Shanghai - edit: true - envKey: TIME_ZONE - labelEn: Time zone - labelZh: 时区 - label: - en: Time zone - ja: タイムゾーン - ms: Zon masa - pt-br: Fuso horário - ru: Часовой пояс - ko: 시간대 - zh: 时区 - zh-Hant: 時區 - required: true - type: text diff --git a/homepage/1.3.2/docker-compose.yml b/homepage/1.3.2/docker-compose.yml deleted file mode 100644 index 8a2d5ea5e..000000000 --- a/homepage/1.3.2/docker-compose.yml +++ /dev/null @@ -1,21 +0,0 @@ -services: - homepage: - container_name: ${CONTAINER_NAME} - image: ghcr.io/gethomepage/homepage:v1.3.2 - restart: always - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTP}:3000" - volumes: - - ./config:/app/config - - /var/run/docker.sock:/var/run/docker.sock - environment: - - PUID=1000 - - PGID=1000 - - TZ=${TIME_ZONE} - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/homepage/README.md b/homepage/README.md deleted file mode 100644 index 0690a66fd..000000000 --- a/homepage/README.md +++ /dev/null @@ -1,18 +0,0 @@ -# HomePage - -**HomePage** 是一个现代、完全静态、快速、安全、完全代理、高度可定制的应用程序仪表板,集成了 100 多种服务并可翻译成多种语言。可通过 YAML 文件或通过 docker 标签发现轻松配置。 - -## 特征: - -- **快速**:网站在构建时静态生成,以便立即加载。 -- **安全**:所有对后端服务的 API 请求都经过代理,从而隐藏您的 API 密钥。社区不断审查其安全性。 -- **适合所有人**:为 AMD64、ARM64、ARMv7 和 ARMv6 构建的图像。 -- **完整的 i18n**:支持超过 40 种语言。 -- **服务和网络书签**:将自定义链接添加到主页。 -- **Docker 集成**:容器状态和统计信息。通过标签自动发现服务。 -- **服务集成**:超过 100 种服务集成,包括流行的 starr 和自托管应用程序。 -- **信息和实用程序小部件**:天气、时间、日期、搜索等。 - -## 配置文件位置: - -1Panel安装目录 + `apps/homepage/homepage/config` diff --git a/homepage/README_en.md b/homepage/README_en.md deleted file mode 100644 index 22f5b0485..000000000 --- a/homepage/README_en.md +++ /dev/null @@ -1,15 +0,0 @@ -# HomePage -**HomePage** is a modern, fully static, fast, secure, fully proxied, and highly customizable application dashboard. It integrates over 100 services and supports multiple languages. Configuration is easy via YAML files or through Docker label discovery. - -## Features: -- **Fast**: The site is statically generated at build time for instant loading. -- **Secure**: All API requests to backend services are proxied, hiding your API keys. Security is continuously reviewed by the community. -- **For Everyone**: Images built for AMD64, ARM64, ARMv7, and ARMv6. -- **Full i18n**: Supports over 40 languages. -- **Services and Bookmarks**: Add custom links to the homepage. -- **Docker Integration**: Container status and statistics. Automatically discover services via labels. -- **Service Integrations**: Over 100 service integrations, including popular starr and self-hosted applications. -- **Info and Utility Widgets**: Weather, time, date, search, and more. - -## Configuration File Location: -1Panel installation directory + `apps/homepage/homepage/config` \ No newline at end of file diff --git a/homepage/data.yml b/homepage/data.yml deleted file mode 100644 index 8bd1c4417..000000000 --- a/homepage/data.yml +++ /dev/null @@ -1,33 +0,0 @@ -name: Homepage -tags: - - 实用工具 -title: 现代的、完全静态的、快速的、安全的、完全代理的、高度可定制的应用程序仪表板 -description: 现代的、完全静态的、快速的、安全的、完全代理的、高度可定制的应用程序仪表板 -additionalProperties: - key: homepage - name: Homepage - tags: - - Tool - shortDescZh: 现代的、完全静态的、快速的、安全的、完全代理的、高度可定制的应用程序仪表板 - shortDescEn: A modern, fully static, fast, secure fully proxied, highly customizable application dashboard - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://gethomepage.dev/ - github: https://github.com/gethomepage/homepage - document: https://gethomepage.dev/latest/configs/ - description: - en: A modern, fully static, fast, secure fully proxied, highly customizable application dashboard - zh: 现代的、完全静态的、快速的、安全的、完全代理的、高度可定制的应用程序仪表板 - zh-Hant: 現代的、完全靜態的、快速的、安全的、完全代理的、高度可定制的應用程式儀表板 - ja: モダンで完全に静的、高速、安全、完全プロキシ化された高度にカスタマイズ可能なアプリケーションダッシュボード - ms: Papan pemuka aplikasi moden, sepenuhnya statik, pantas, selamat, sepenuhnya diproksi, sangat boleh disesuaikan - pt-br: Um painel de controle de aplicativos moderno, totalmente estático, rápido, seguro, totalmente proxy e altamente personalizável - ru: Современная, полностью статическая, быстрая, безопасная, полностью проксированная, высоконастраиваемая панель управления приложениями - ko: 현대적이고 완전히 정적이며 빠르고 안전하며 완전히 프록시화되고 고도로 사용자 정의 가능한 애플리케이션 대시보드 - architectures: - - amd64 - - arm64 - - arm/v7 - - arm/v6 diff --git a/homepage/logo.png b/homepage/logo.png deleted file mode 100644 index b2befb089..000000000 Binary files a/homepage/logo.png and /dev/null differ diff --git a/huginn/README.md b/huginn/README.md deleted file mode 100644 index 3a6fbcf2b..000000000 --- a/huginn/README.md +++ /dev/null @@ -1,25 +0,0 @@ -# 默认账户密码 - -``` -username:admin -password:password -``` - -# Huginn - -**Huginn** 是一个用于构建代理的系统,这些代理可为您在线执行自动化任务。它们可以读取网络、监视事件并代表您采取行动。Huginn 的代理会创建和使用事件,并沿着有向图传播它们。您可以将其视为您自己的服务器上可破解的 IFTTT 或 Zapier 版本。您始终知道谁拥有您的数据。您知道。 - -## 以下是你可以使用 Huginn 执行的一些操作: - -- 跟踪天气,当明天将下雨(或下雪)时收到电子邮件(“别忘了带伞!”) -- 列出您关心的术语,并在 Twitter 上这些术语的出现次数发生变化时收到电子邮件。(例如,想知道机器学习领域何时发生了一些有趣的事情?Huginn 会在 Twitter 上关注“机器学习”一词,并在讨论高峰时通知您。) -- 关注航空旅行或购物优惠 -- 在 Twitter 上关注您的项目名称,当人们提及它们时获取更新 -- 抓取网站并在网站发生变化时接收电子邮件 -- 连接到 Adioso、HipChat、FTP、IMAP、Jabber、JIRA、MQTT、nextbus、Pushbullet、Pushover、RSS、Bash、Slack、StubHub、翻译 API、Twilio、Twitter 和微博等等。 -- 在一天中的特定时间发送包含你关心的事情的摘要电子邮件 -- 跟踪高频事件的数量,并在事件激增时立即发送短信,例如“旧金山紧急事件” -- 发送和接收 WebHook -- 运行自定义 JavaScript 或 CoffeeScript 函数 -- 跟踪您的位置随时间的变化 -- 创建 Amazon Mechanical Turk 工作流作为代理的输入或输出(Amazon Turk 代理称为“HumanTaskAgent”)。例如:“每天一次,要求 5 个人提供一张有趣的猫咪照片;将结果发送给另外 5 个人进行评级;将评级最高的照片发送给 5 个人,让他们为其添加有趣的标题;发送给最后 5 个人,让他们对最有趣的标题进行评级;最后,将带有最佳标题的照片发布在我的博客上。” \ No newline at end of file diff --git a/huginn/README_en.md b/huginn/README_en.md deleted file mode 100644 index 5c9e030b9..000000000 --- a/huginn/README_en.md +++ /dev/null @@ -1,22 +0,0 @@ -# Default Username and Password -``` -username: admin -password: password -``` - -# Huginn -**Huginn** is a system for building agents that perform automated tasks for you online. They can read the web, watch for events, and take actions on your behalf. Huginn's agents create and consume events, propagating them along a directed graph. Think of it as a hackable version of IFTTT or Zapier on your own server. You always know who owns your data. You do. - -## Here are some things you can use Huginn to do: -- Track the weather and get an email when it will rain (or snow) tomorrow ("Don't forget your umbrella!"). -- List terms you care about and get an email when their occurrence on Twitter changes. (For example, want to know when something interesting happens in machine learning? Huginn will watch the term "machine learning" on Twitter and notify you when there's a spike in discussion.) -- Monitor airline travel or shopping deals. -- Watch your project names on Twitter and get updates when people mention them. -- Scrape websites and receive emails when they change. -- Connect to Adioso, HipChat, FTP, IMAP, Jabber, JIRA, MQTT, nextbus, Pushbullet, Pushover, RSS, Bash, Slack, StubHub, Translation APIs, Twilio, Twitter, Weibo, and more. -- Send a daily digest email at a specific time of day with things you care about. -- Track the number of high-frequency events and send an SMS immediately when there's a spike, such as "San Francisco emergency incidents." -- Send and receive WebHooks. -- Run custom JavaScript or CoffeeScript functions. -- Track changes in your location over time. -- Create Amazon Mechanical Turk workflows as inputs or outputs for agents (Amazon Turk agents are called "HumanTaskAgent"). For example: "Once a day, ask 5 people for a funny cat picture; send the results to another 5 people for rating; send the highest-rated picture to 5 more people to add a funny caption; send the captioned picture to 5 more people for rating; finally, post the picture with the best caption to my blog." \ No newline at end of file diff --git a/huginn/data.yml b/huginn/data.yml deleted file mode 100755 index 599ae5558..000000000 --- a/huginn/data.yml +++ /dev/null @@ -1,30 +0,0 @@ -name: Huginn -tags: - - 实用工具 -title: 一个用于构建代理系统的工具,可以为你在线执行自动化任务 -description: 一个用于构建代理系统的工具,可以为你在线执行自动化任务 -additionalProperties: - key: huginn - name: Huginn - tags: - - Tool - shortDescZh: 一个用于构建代理系统的工具,可以为你在线执行自动化任务 - shortDescEn: A system for building agents that perform automated tasks for you online - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://github.com/huginn/huginn - github: https://github.com/huginn/huginn - document: https://github.com/huginn/huginn/wiki - description: - en: A system for building agents that perform automated tasks for you online - zh: 一个用于构建代理系统的工具,可以为你在线执行自动化任务 - zh-Hant: 一個用於構建代理系統的工具,可以為你在線執行自動化任務 - ja: オンラインで自動化タスクを実行するエージェントを構築するためのシステム - ms: Sistem untuk membina ejen yang melaksanakan tugas automatik untuk anda dalam talian - pt-br: Um sistema para construir agentes que executam tarefas automatizadas para você online - ru: Система для создания агентов, выполняющих автоматизированные задачи для вас в Интернете - ko: 온라인에서 자동화된 작업을 수행하는 에이전트를 구축하기 위한 시스템 - architectures: - - amd64 diff --git a/huginn/latest/data.yml b/huginn/latest/data.yml deleted file mode 100755 index d6670547c..000000000 --- a/huginn/latest/data.yml +++ /dev/null @@ -1,18 +0,0 @@ -additionalProperties: - formFields: - - default: 3000 - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: HTTP 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh: HTTP 端口 - zh-Hant: HTTP 埠 - required: true - rule: paramPort - type: number diff --git a/huginn/latest/data/.gitkeep b/huginn/latest/data/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/huginn/latest/docker-compose.yml b/huginn/latest/docker-compose.yml deleted file mode 100644 index 23d71e61a..000000000 --- a/huginn/latest/docker-compose.yml +++ /dev/null @@ -1,16 +0,0 @@ -services: - huginn: - image: ghcr.io/huginn/huginn:latest - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_HTTP}:3000 - volumes: - - ./data:/var/lib/mysql - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/huginn/latest/scripts/init.sh b/huginn/latest/scripts/init.sh deleted file mode 100644 index ec2efdde4..000000000 --- a/huginn/latest/scripts/init.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -chown -R 1001:0 data \ No newline at end of file diff --git a/huginn/logo.png b/huginn/logo.png deleted file mode 100644 index 58711f6ff..000000000 Binary files a/huginn/logo.png and /dev/null differ diff --git a/influxdb/2.7.12/data.yml b/influxdb/2.7.12/data.yml deleted file mode 100644 index 2f3af8592..000000000 --- a/influxdb/2.7.12/data.yml +++ /dev/null @@ -1,90 +0,0 @@ -additionalProperties: - formFields: - - default: 8086 - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh: 端口 - zh-Hant: 埠 - required: true - rule: paramPort - type: number - - default: influxdb - edit: true - envKey: DOCKER_INFLUXDB_INIT_USERNAME - labelEn: User - labelZh: 用户 - label: - en: User - ja: ユーザー - ms: Pengguna - pt-br: Usuário - ru: Пользователь - ko: 사용자 - zh: 用户 - zh-Hant: 用戶 - random: true - required: true - rule: paramCommon - type: text - - default: influxdb - edit: true - envKey: DOCKER_INFLUXDB_INIT_PASSWORD - labelEn: Password - labelZh: 密码 - label: - en: Password - ja: パスワード - ms: Kata laluan - pt-br: Senha - ru: Пароль - ko: 비밀번호 - zh: 密码 - zh-Hant: 密碼 - random: true - required: true - rule: paramComplexity - type: password - - default: influxdb - edit: true - envKey: DOCKER_INFLUXDB_INIT_ORG - labelEn: Init Organization - labelZh: 初始化组织 - label: - en: Init Organization - ja: 初期化組織 - ms: Organisasi Awal - pt-br: Organização Inicial - ru: Инициализация организации - ko: 초기화 조직 - zh: 初始化组织 - zh-Hant: 初始化組織 - random: true - required: true - rule: paramCommon - type: text - - default: influxdb - edit: true - envKey: DOCKER_INFLUXDB_INIT_BUCKET - labelEn: Init Bucket - labelZh: 初始化存储桶 - label: - en: Init Bucket - ja: 初期化バケット - ms: Bucket Awal - pt-br: Bucket Inicial - ru: Инициализация бакета - ko: 초기화 버킷 - zh: 初始化存储桶 - zh-Hant: 初始化存儲桶 - random: true - required: true - rule: paramCommon - type: text diff --git a/influxdb/2.7.12/docker-compose.yml b/influxdb/2.7.12/docker-compose.yml deleted file mode 100644 index 6eb0d8aab..000000000 --- a/influxdb/2.7.12/docker-compose.yml +++ /dev/null @@ -1,23 +0,0 @@ -services: - influxdb: - image: influxdb:2.7.12 - container_name: ${CONTAINER_NAME} - restart: always - ports: - - ${PANEL_APP_PORT_HTTP}:8086 - volumes: - - ./data/data:/var/lib/influxdb2 - - ./data/config:/etc/influxdb2 - environment: - - DOCKER_INFLUXDB_INIT_MODE=setup - - DOCKER_INFLUXDB_INIT_USERNAME=${DOCKER_INFLUXDB_INIT_USERNAME} - - DOCKER_INFLUXDB_INIT_PASSWORD=${DOCKER_INFLUXDB_INIT_PASSWORD} - - DOCKER_INFLUXDB_INIT_ORG=${DOCKER_INFLUXDB_INIT_ORG} - - DOCKER_INFLUXDB_INIT_BUCKET=${DOCKER_INFLUXDB_INIT_BUCKET} - networks: - - 1panel-network - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/influxdb/README.md b/influxdb/README.md deleted file mode 100644 index 8994c7c76..000000000 --- a/influxdb/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# InfluxDB - -**InfluxDB** 是一个开源的时间序列数据库(TSDB),专为高性能的时间序列数据存储和查询设计。它通常用于处理监控数据、度量数据、事件日志等类型的时间序列数据。 - -## 主要特征 - -- **高性能**:优化了高吞吐量的数据写入和快速查询操作,适合处理大量时间序列数据。 -- **时间序列数据支持**:专为时间序列数据设计,提供高效的存储、查询和分析功能,支持时间函数和操作。 -- **灵活的数据模型**:使用度量(measurement)、字段(field)和标签(tag)进行数据存储,支持复杂的查询和过滤。 -- **SQL 类似查询语言**:提供 **InfluxQL** 或 **Flux** 查询语言,具有类似 SQL 的语法,用于高效的数据查询和操作。 -- **高可用性和横向扩展**:支持分布式架构和数据复制,增强系统的可靠性和伸缩性,适合大规模数据处理。 diff --git a/influxdb/README_en.md b/influxdb/README_en.md deleted file mode 100644 index 153681e94..000000000 --- a/influxdb/README_en.md +++ /dev/null @@ -1,9 +0,0 @@ -# InfluxDB -**InfluxDB** is an open-source time-series database (TSDB) designed for high-performance storage and querying of time-series data. It is commonly used for handling monitoring data, metrics, event logs, and other types of time-series data. - -## Key Features -- **High Performance**: Optimized for high-throughput data ingestion and fast query operations, suitable for handling large volumes of time-series data. -- **Time-Series Data Support**: Specifically designed for time-series data, providing efficient storage, querying, and analysis capabilities, including support for time functions and operations. -- **Flexible Data Model**: Uses measurements, fields, and tags for data storage, supporting complex queries and filtering. -- **SQL-Like Query Language**: Offers **InfluxQL** or **Flux** query languages with SQL-like syntax for efficient data querying and manipulation. -- **High Availability and Horizontal Scalability**: Supports distributed architecture and data replication, enhancing system reliability and scalability for large-scale data processing. \ No newline at end of file diff --git a/influxdb/data.yml b/influxdb/data.yml deleted file mode 100755 index 476c200f9..000000000 --- a/influxdb/data.yml +++ /dev/null @@ -1,32 +0,0 @@ -name: InfluxDB -tags: - - 数据库 -title: 用于指标、事件和实时分析的可扩展数据存储 -description: 用于指标、事件和实时分析的可扩展数据存储 -additionalProperties: - key: influxdb - name: InfluxDB - tags: - - Database - shortDescZh: 用于指标、事件和实时分析的可扩展数据存储 - shortDescEn: Scalable datastore for metrics, events, and real-time analytics - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://influxdata.com/ - github: https://github.com/influxdata/influxdb - document: https://docs.influxdata.com/ - description: - en: Scalable datastore for metrics, events, and real-time analytics - zh: 用于指标、事件和实时分析的可扩展数据存储 - zh-Hant: 用於指標、事件和實時分析的可擴展數據存儲 - ja: メトリクス、イベント、およびリアルタイム分析のためのスケーラブルなデータストア - ms: Stor data yang boleh diskalakan untuk metrik, acara, dan analitik masa nyata - pt-br: Armazenamento de dados escalável para métricas, eventos e análises em tempo real - ru: Масштабируемое хранилище данных для метрик, событий и аналитики в реальном времени - ko: 메트릭, 이벤트 및 실시간 분석을 위한 확장 가능한 데이터 저장소 - memoryRequired: 1024 - architectures: - - amd64 - - arm64 diff --git a/influxdb/logo.png b/influxdb/logo.png deleted file mode 100644 index b0b995a19..000000000 Binary files a/influxdb/logo.png and /dev/null differ diff --git a/it-tools/2024.10.22-7ca5933/data.yml b/it-tools/2024.10.22-7ca5933/data.yml deleted file mode 100644 index 1e2ed86b5..000000000 --- a/it-tools/2024.10.22-7ca5933/data.yml +++ /dev/null @@ -1,19 +0,0 @@ -additionalProperties: - formFields: - - default: 40116 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh-Hant: 埠 - zh: 端口 diff --git a/it-tools/2024.10.22-7ca5933/docker-compose.yml b/it-tools/2024.10.22-7ca5933/docker-compose.yml deleted file mode 100644 index 31984ed38..000000000 --- a/it-tools/2024.10.22-7ca5933/docker-compose.yml +++ /dev/null @@ -1,14 +0,0 @@ -services: - it-tools: - image: corentinth/it-tools:2024.10.22-7ca5933 - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_HTTP}:80 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/it-tools/README.md b/it-tools/README.md deleted file mode 100644 index 372befc23..000000000 --- a/it-tools/README.md +++ /dev/null @@ -1,12 +0,0 @@ -# IT-Tools - -**IT-Tools** 是为开发人员提供的方便的在线工具集合,具有出色的用户体验。 - -## 主要功能: - -- Crypto(加密)工具类,包含 token 生成、哈希文本、UUID 生成、加密解密文本等 9 个不同的功能。 -- Converter(转化)工具类,包含 Yaml 转化器,Json 转化器,Base64 转化器等 12 种不同的功能。 -- Web(网站)工具类,包含 Url 格式编码解码,用户代理解析器,网址解析器等 15 种不同的功能。 -- Images and Videos (图片与视频)工具类,包含 SVG 占位符生成器,二维码生成器等 3 种功能。 -- Development 工具类,包含 Docker run 到 Docker compose 转换器,定时任务生成器,SQL 美化与格式化等 10 种不同功能。 -- 另外还有 Network(网络)工具类,Math(数学)工具类,Measurement(测量)工具类,文本工具类,数据工具类等等 \ No newline at end of file diff --git a/it-tools/README_en.md b/it-tools/README_en.md deleted file mode 100644 index e9ebccde8..000000000 --- a/it-tools/README_en.md +++ /dev/null @@ -1,22 +0,0 @@ -# IT-Tools - -**IT-Tools** is a convenient collection of online tools designed for developers, offering an exceptional user experience. - -## Main Features - -- **Crypto Tools**: Includes 9 functionalities such as token generation, text hashing, UUID generation, and text encryption/decryption. - -- **Converter Tools**: Offers 12 features, including YAML converters, JSON converters, Base64 converters, and more. - -- **Web Tools**: Provides 15 tools like URL encoding/decoding, user agent parsers, and URL analyzers. - -- **Images and Videos Tools**: Includes 3 functionalities like an SVG placeholder generator and a QR code generator. - -- **Development Tools**: Features 10 tools, such as Docker run-to-compose converters, cron job generators, SQL beautifiers, and formatters. - -- **Other Tools**: - - Network Tools - - Math Tools - - Measurement Tools - - Text Tools - - Data Tools \ No newline at end of file diff --git a/it-tools/data.yml b/it-tools/data.yml deleted file mode 100644 index 7f70e7e55..000000000 --- a/it-tools/data.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: IT-Tools -tags: - - 开发工具 -title: 为开发人员提供方便的在线工具集合,具有出色的用户体验 -description: 为开发人员提供方便的在线工具集合,具有出色的用户体验 -additionalProperties: - key: it-tools - name: IT-Tools - tags: - - DevTool - shortDescZh: 为开发人员提供方便的在线工具集合,具有出色的用户体验 - shortDescEn: Collection of handy online tools for developers, with great UX - description: - en: Collection of handy online tools for developers, with great UX - ja: 開発者のための便利なオンラインツール集、優れたUX付き - ms: Koleksi alat dalam talian yang berguna untuk pembangun, dengan UX yang hebat - pt-br: Coleção de ferramentas online úteis para desenvolvedores, com ótima UX - ru: Набор удобных онлайн-инструментов для разработчиков с отличным UX - ko: 개발자를 위한 편리한 온라인 도구 모음, 훌륭한 UX 제공 - zh-Hant: 開發者使用的便捷在線工具集合,具有出色的用戶體驗 - zh: 开发者使用的便捷在线工具集合,具有出色的用户体验 - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://it-tools.tech - github: https://github.com/CorentinTh/it-tools - document: https://github.com/CorentinTh/it-tools - architectures: - - amd64 - - arm64 \ No newline at end of file diff --git a/it-tools/logo.png b/it-tools/logo.png deleted file mode 100644 index 7ac104d0e..000000000 Binary files a/it-tools/logo.png and /dev/null differ diff --git a/java/1.8/data.yml b/java/1.8/data.yml deleted file mode 100644 index fcc6ed694..000000000 --- a/java/1.8/data.yml +++ /dev/null @@ -1 +0,0 @@ -additionalProperties: \ No newline at end of file diff --git a/java/1.8/docker-compose.yml b/java/1.8/docker-compose.yml deleted file mode 100644 index 258b14754..000000000 --- a/java/1.8/docker-compose.yml +++ /dev/null @@ -1,20 +0,0 @@ -services: - java: - image: bitnami/java:${JAVA_VERSION} - container_name: ${CONTAINER_NAME} - working_dir: /app - volumes: - - ${CODE_DIR}:/app - - ./run.sh:/run.sh - - ./.env:/.env - command: bash /run.sh - networks: - - 1panel-network - ports: - - ${HOST_IP}:${PANEL_APP_PORT_HTTP}:${APP_PORT} - restart: on-failure:5 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/java/1.8/run.sh b/java/1.8/run.sh deleted file mode 100644 index 2272029e1..000000000 --- a/java/1.8/run.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -source /.env - -eval $EXEC_SCRIPT - - - - - diff --git a/java/11/data.yml b/java/11/data.yml deleted file mode 100644 index fcc6ed694..000000000 --- a/java/11/data.yml +++ /dev/null @@ -1 +0,0 @@ -additionalProperties: \ No newline at end of file diff --git a/java/11/docker-compose.yml b/java/11/docker-compose.yml deleted file mode 100644 index 258b14754..000000000 --- a/java/11/docker-compose.yml +++ /dev/null @@ -1,20 +0,0 @@ -services: - java: - image: bitnami/java:${JAVA_VERSION} - container_name: ${CONTAINER_NAME} - working_dir: /app - volumes: - - ${CODE_DIR}:/app - - ./run.sh:/run.sh - - ./.env:/.env - command: bash /run.sh - networks: - - 1panel-network - ports: - - ${HOST_IP}:${PANEL_APP_PORT_HTTP}:${APP_PORT} - restart: on-failure:5 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/java/11/run.sh b/java/11/run.sh deleted file mode 100644 index 2272029e1..000000000 --- a/java/11/run.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -source /.env - -eval $EXEC_SCRIPT - - - - - diff --git a/java/17/data.yml b/java/17/data.yml deleted file mode 100644 index fcc6ed694..000000000 --- a/java/17/data.yml +++ /dev/null @@ -1 +0,0 @@ -additionalProperties: \ No newline at end of file diff --git a/java/17/docker-compose.yml b/java/17/docker-compose.yml deleted file mode 100644 index 258b14754..000000000 --- a/java/17/docker-compose.yml +++ /dev/null @@ -1,20 +0,0 @@ -services: - java: - image: bitnami/java:${JAVA_VERSION} - container_name: ${CONTAINER_NAME} - working_dir: /app - volumes: - - ${CODE_DIR}:/app - - ./run.sh:/run.sh - - ./.env:/.env - command: bash /run.sh - networks: - - 1panel-network - ports: - - ${HOST_IP}:${PANEL_APP_PORT_HTTP}:${APP_PORT} - restart: on-failure:5 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/java/17/run.sh b/java/17/run.sh deleted file mode 100644 index 2272029e1..000000000 --- a/java/17/run.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -source /.env - -eval $EXEC_SCRIPT - - - - - diff --git a/java/21/data.yml b/java/21/data.yml deleted file mode 100644 index fcc6ed694..000000000 --- a/java/21/data.yml +++ /dev/null @@ -1 +0,0 @@ -additionalProperties: \ No newline at end of file diff --git a/java/21/docker-compose.yml b/java/21/docker-compose.yml deleted file mode 100644 index 258b14754..000000000 --- a/java/21/docker-compose.yml +++ /dev/null @@ -1,20 +0,0 @@ -services: - java: - image: bitnami/java:${JAVA_VERSION} - container_name: ${CONTAINER_NAME} - working_dir: /app - volumes: - - ${CODE_DIR}:/app - - ./run.sh:/run.sh - - ./.env:/.env - command: bash /run.sh - networks: - - 1panel-network - ports: - - ${HOST_IP}:${PANEL_APP_PORT_HTTP}:${APP_PORT} - restart: on-failure:5 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/java/21/run.sh b/java/21/run.sh deleted file mode 100644 index 2272029e1..000000000 --- a/java/21/run.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -source /.env - -eval $EXEC_SCRIPT - - - - - diff --git a/java/22/data.yml b/java/22/data.yml deleted file mode 100644 index fcc6ed694..000000000 --- a/java/22/data.yml +++ /dev/null @@ -1 +0,0 @@ -additionalProperties: \ No newline at end of file diff --git a/java/22/docker-compose.yml b/java/22/docker-compose.yml deleted file mode 100644 index 258b14754..000000000 --- a/java/22/docker-compose.yml +++ /dev/null @@ -1,20 +0,0 @@ -services: - java: - image: bitnami/java:${JAVA_VERSION} - container_name: ${CONTAINER_NAME} - working_dir: /app - volumes: - - ${CODE_DIR}:/app - - ./run.sh:/run.sh - - ./.env:/.env - command: bash /run.sh - networks: - - 1panel-network - ports: - - ${HOST_IP}:${PANEL_APP_PORT_HTTP}:${APP_PORT} - restart: on-failure:5 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/java/22/run.sh b/java/22/run.sh deleted file mode 100644 index 2272029e1..000000000 --- a/java/22/run.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -source /.env - -eval $EXEC_SCRIPT - - - - - diff --git a/java/README.md b/java/README.md deleted file mode 100644 index 4894d8d4e..000000000 --- a/java/README.md +++ /dev/null @@ -1,25 +0,0 @@ -# Java - -Java是一种广泛使用的编程语言和平台,适用于构建多种类型的应用程序,从桌面应用到大型企业级系统。 - -## 主要功能: - -- **平台独立**:Java的“写一次,运行到处”(WORA)特性使得编写的代码可以在任何支持Java的平台上运行。这是通过Java虚拟机(JVM)实现的,它可以将Java字节码解释为特定平台的机器代码。 - -- **面向对象**:Java是一种面向对象的编程语言,支持封装、继承、多态等面向对象的特性。这使得代码更加模块化、易于维护和扩展。 - -- **丰富的标准库**:Java拥有丰富且强大的标准库,提供了大量的预定义类和方法,涵盖了从数据结构、网络编程、文件I/O到图形用户界面等各个方面,极大地提高了开发效率。 - -- **多线程**:Java内置对多线程的支持,使开发者可以轻松地编写并发程序,充分利用多核处理器的性能,从而提升应用程序的响应速度和处理能力。 - -- **垃圾回收**:Java具有自动垃圾回收机制,能够自动管理内存,回收不再使用的对象,减少了内存泄漏和其他内存管理问题的风险。 - -- **安全性**:Java提供了多层次的安全机制,包括字节码验证、沙箱模型以及安全管理器,确保Java应用程序能够在安全的环境中运行。 - -- **跨平台**:Java程序可以在多种操作系统上运行,包括Windows、Linux和macOS,这使其非常灵活,能够满足不同的部署需求。 - -- **强类型检查**:Java是一种强类型语言,在编译期间会进行严格的类型检查,有助于捕获潜在的错误并提高代码的健壮性。 - -- **社区支持**:Java拥有一个庞大的开发者社区,因此可以轻松找到各种库和框架来扩展其功能,也能够获得社区的支持和反馈。 - -- **企业级应用**:Java广泛用于构建企业级应用,许多大型企业系统和金融机构都使用Java来开发其核心业务系统。 diff --git a/java/README_en.md b/java/README_en.md deleted file mode 100644 index c6e6c58bf..000000000 --- a/java/README_en.md +++ /dev/null @@ -1,25 +0,0 @@ -# Java - -Java is a widely used programming language and platform designed for building various types of applications, ranging from desktop applications to large-scale enterprise systems. - -## Main Features: - -- **Platform Independence**: Java is "write once, run anywhere" (WORA) feature allows code to run on any platform that supports Java. This is achieved through the Java Virtual Machine (JVM), which interprets Java bytecode into machine code specific to the platform. - -- **Object-Oriented**: Java supports encapsulation, inheritance, and polymorphism, which promote modularity, maintainability, and scalability. - -- **Standard Library**: Java provides extensive libraries covering data structures, networking, file I/O, GUI development, and more, boosting development efficiency. - -- **Multithreading**: Built-in multithreading capabilities enable developers to create concurrent programs that utilize multi-core processors for enhanced performance. - -- **Garbage Collection**: Java is automatic garbage collection reduces the risk of memory leaks and simplifies memory management. - -- **Security**: Java ensures secure execution through bytecode verification, sandboxing, and a security manager. - -- **Cross-Platform**: Java applications run seamlessly on multiple operating systems, including Windows, Linux, and macOS. - -- **Strong Type Checking**: Java is strict compile-time type checking helps catch errors early, improving code reliability. - -- **Community Support**: With a large and active developer community, Java offers extensive libraries, frameworks, and support for resolving challenges. - -- **Enterprise-Grade Applications**: Java is widely used for enterprise systems, powering critical applications in industries such as finance, telecommunications, and e-commerce. \ No newline at end of file diff --git a/java/data.yml b/java/data.yml deleted file mode 100644 index 18587adc9..000000000 --- a/java/data.yml +++ /dev/null @@ -1,29 +0,0 @@ -name: Java -tags: - - 运行环境 -title: Java 运行环境 -description: Java 运行环境 -additionalProperties: - key: java - name: Java - tags: - - Runtime - shortDescZh: Java 运行环境 - shortDescEn: Java Runtime - description: - en: Java Runtime Environment - ja: Java 実行環境 - ms: Persekitaran Larian Java - pt-br: Ambiente de Execução Java - ru: Среда выполнения Java - ko: Java 런타임 환경 - zh-Hant: Java 執行環境 - zh: Java 运行环境 - type: java - crossVersionUpdate: false - limit: 0 - recommend: 120 - website: https://www.java.com/ - architectures: - - amd64 - - arm64 diff --git a/java/logo.png b/java/logo.png deleted file mode 100644 index dc87c1331..000000000 Binary files a/java/logo.png and /dev/null differ diff --git a/jellyfin/10.10.7/data.yml b/jellyfin/10.10.7/data.yml deleted file mode 100755 index bf6e8c511..000000000 --- a/jellyfin/10.10.7/data.yml +++ /dev/null @@ -1,51 +0,0 @@ -additionalProperties: - formFields: - - default: 8096 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: WebUI Port - labelZh: 网页端口 - required: true - rule: paramPort - type: number - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh-Hant: 埠 - zh: 端口 - - default: ./data/media - edit: true - envKey: MEDIA_FOLDER_PATH - labelEn: Media folder path - labelZh: 媒体文件夹路径 - required: true - type: text - label: - en: Media folder path - ja: メディアフォルダのパス - ms: Laluan folder media - pt-br: Caminho da pasta de mídia - ru: Путь к папке с медиафайлами - ko: 미디어 폴더 경로 - zh-Hant: 媒體資料夾路徑 - zh: 媒体文件夹路径 - - default: ./data/cache - edit: true - envKey: CACHE_FOLDER_PATH - labelEn: Cache folder path - labelZh: 缓存文件夹路径 - required: true - type: text - label: - en: Cache folder path - ja: キャッシュフォルダのパス - ms: Laluan folder cache - pt-br: Caminho da pasta de cache - ru: Путь к папке кеша - ko: 캐시 폴더 경로 - zh-Hant: 快取資料夾路徑 - zh: 缓存文件夹路径 \ No newline at end of file diff --git a/jellyfin/10.10.7/data/cache/.gitkeep b/jellyfin/10.10.7/data/cache/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/jellyfin/10.10.7/data/config/.gitkeep b/jellyfin/10.10.7/data/config/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/jellyfin/10.10.7/data/media/.gitkeep b/jellyfin/10.10.7/data/media/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/jellyfin/10.10.7/docker-compose.yml b/jellyfin/10.10.7/docker-compose.yml deleted file mode 100644 index 169397845..000000000 --- a/jellyfin/10.10.7/docker-compose.yml +++ /dev/null @@ -1,18 +0,0 @@ -services: - jellyfin: - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTP}:8096" - volumes: - - "./data/config:/config" - - "${CACHE_FOLDER_PATH}:/cache" - - "${MEDIA_FOLDER_PATH}:/media/media" - image: "jellyfin/jellyfin:10.10.7" - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/jellyfin/README.md b/jellyfin/README.md deleted file mode 100644 index e0e9eac85..000000000 --- a/jellyfin/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# Jellyfin - -**Jellyfin** 是一个免费开源的媒体服务器软件,用于组织、管理和流媒体共享您的音频、视频和图片等媒体内容。 - -## 主要功能: - -- **个人媒体中心**:Jellyfin 允许您将自己的媒体文件整理成库,创建个人的媒体中心,以便随时访问和播放您的音乐、电影、电视节目等。 -- **跨平台支持**:Jellyfin 可以在多种平台上运行,包括 Linux、Windows、macOS、FreeBSD 等,使您可以在不同设备和操作系统上使用它。 -- **多设备访问**:通过 Jellyfin 的用户友好的界面和各种客户端应用程序,您可以从任何设备(如电脑、手机、平板)上访问和流媒体您的媒体内容。 -- **共享和远程访问**:Jellyfin 允许您与家人、朋友共享媒体内容,并支持通过互联网远程访问您的库,让您随时随地享受媒体娱乐。 -- **媒体转码和流媒体**:Jellyfin 能够自动转码和流媒体您的媒体内容,以适应不同设备和网络条件,确保您的媒体内容的最佳播放体验。 \ No newline at end of file diff --git a/jellyfin/README_en.md b/jellyfin/README_en.md deleted file mode 100644 index 9345853ee..000000000 --- a/jellyfin/README_en.md +++ /dev/null @@ -1,15 +0,0 @@ -# Jellyfin - -**Jellyfin** is a free and open-source media server software designed to organize, manage, and share your audio, video, and image collections. - -## Main Features - -- **Personal Media Center**: Jellyfin allows you to organize your media files into libraries, creating a personal media center for easy access to your music, movies, TV shows, and more. - -- **Cross-Platform Support**: Jellyfin runs on various platforms, including Linux, Windows, macOS, and FreeBSD, enabling usage across different devices and operating systems. - -- **Multi-Device Access**: With Jellyfin's user-friendly interface and multiple client applications, you can access and stream your media content from any device, such as computers, smartphones, or tablets. - -- **Sharing and Remote Access**: Jellyfin supports sharing media content with family and friends and allows remote access to your library over the internet, ensuring entertainment on the go. - -- **Media Transcoding and Streaming**: Jellyfin automatically transcodes and streams your media content to accommodate different devices and network conditions, delivering an optimal playback experience. \ No newline at end of file diff --git a/jellyfin/data.yml b/jellyfin/data.yml deleted file mode 100755 index b6775b2f1..000000000 --- a/jellyfin/data.yml +++ /dev/null @@ -1,34 +0,0 @@ -name: Jellyfin -tags: - - 多媒体 -title: 多媒体应用程序软件套装 -description: 多媒体应用程序软件套装 -additionalProperties: - key: jellyfin - name: Jellyfin - tags: - - Media - shortDescZh: 多媒体应用程序软件套装 - shortDescEn: A multimedia application software suite - description: - en: A multimedia application software suite - ja: マルチメディアアプリケーションソフトウェアスイート - ms: Suite perisian aplikasi multimedia - pt-br: Um conjunto de software de aplicação multimídia - ru: Пакет программного обеспечения для мультимедиа приложений - ko: 멀티미디어 응용 소프트웨어 패키지 - zh-Hant: 多媒體應用程式軟體套裝 - zh: 多媒体应用软件套件 - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://jellyfin.org/ - github: https://github.com/jellyfin/jellyfin - document: https://jellyfin.org/docs/ - gpuSupport: true - memoryRequired: 1024 - architectures: - - amd64 - - arm64 - - arm/v7 diff --git a/jellyfin/logo.png b/jellyfin/logo.png deleted file mode 100644 index 617e9f184..000000000 Binary files a/jellyfin/logo.png and /dev/null differ diff --git a/jenkins/2.504.2-lts/data.yml b/jenkins/2.504.2-lts/data.yml deleted file mode 100755 index 5239f2168..000000000 --- a/jenkins/2.504.2-lts/data.yml +++ /dev/null @@ -1,35 +0,0 @@ -additionalProperties: - formFields: - - default: /usr/bin/docker - edit: true - envKey: DOCKER_BINARY - labelEn: Docker Binary - labelZh: Docker二进制文件 - required: true - type: text - label: - en: Docker Binary - ja: Docker バイナリ - ms: Binari Docker - pt-br: Binário Docker - ru: Исполняемый файл Docker - ko: 도커 바이너리 - zh-Hant: Docker 二進制文件 - zh: Docker 二进制文件 - - default: 8080 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh-Hant: 埠 - zh: 端口 diff --git a/jenkins/2.504.2-lts/docker-compose.yml b/jenkins/2.504.2-lts/docker-compose.yml deleted file mode 100644 index 65d28d3c8..000000000 --- a/jenkins/2.504.2-lts/docker-compose.yml +++ /dev/null @@ -1,20 +0,0 @@ -services: - jenkins: - container_name: ${CONTAINER_NAME} - image: jenkins/jenkins:2.504.2-lts - restart: always - privileged: true - user: root - ports: - - ${PANEL_APP_PORT_HTTP}:8080 - volumes: - - ./data:/var/jenkins_home - - /var/run/docker.sock:/var/run/docker.sock - - ${DOCKER_BINARY}:${DOCKER_BINARY} - networks: - - 1panel-network - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/jenkins/README.md b/jenkins/README.md deleted file mode 100644 index f2d5e28cf..000000000 --- a/jenkins/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# Jenkins - -**Jenkins** 是一个开源的自动化服务器软件,用于实现持续集成和持续交付(CI/CD)流程。它提供了强大的工具和插件来帮助开发团队自动构建、测试和部署软件。 - -## 主要功能: - -- **持续集成**:Jenkins 支持自动构建和集成代码,确保团队成员的改动被及时合并和测试,减少代码冲突和集成问题。 -- **自动化测试**:Jenkins 提供了广泛的测试工具和插件,可以自动运行单元测试、集成测试、端到端测试等,确保软件质量和稳定性。 -- **自动化部署**:Jenkins 可以与各种部署工具和平台集成,自动化软件的部署和发布过程,实现快速、可靠的交付。 -- **可扩展性**:Jenkins 拥有丰富的插件生态系统,可以根据需求扩展和定制功能,满足不同项目和团队的需求。 -- **易于配置和管理**:Jenkins 提供了用户友好的界面和脚本化配置选项,使管理员能够轻松配置和管理 Jenkins 实例。 \ No newline at end of file diff --git a/jenkins/README_en.md b/jenkins/README_en.md deleted file mode 100644 index fc6e0a6b2..000000000 --- a/jenkins/README_en.md +++ /dev/null @@ -1,11 +0,0 @@ -# Jenkins - -**Jenkins** is an open-source automation server designed for implementing continuous integration and continuous delivery (CI/CD) workflows. It offers powerful tools and plugins to help development teams automate building, testing, and deploying software. - -## Main Features: - -- **Continuous Integration**: Automates building and integrating code changes, ensuring timely merging and testing of changes from team members, reducing code conflicts and integration issues. -- **Automated Testing**: Supports a wide range of testing tools and plugins to run unit tests, integration tests, and end-to-end tests, ensuring software quality and stability. -- **Automated Deployment**: Integrates with various deployment tools and platforms to automate software deployment and release processes, enabling fast and reliable delivery. -- **Extensibility**: Offers a rich ecosystem of plugins to extend and customize functionalities based on project and team requirements. -- **Configuration and Management**: Features a user-friendly interface and scriptable configuration options, allowing administrators to configure and manage Jenkins instances effortlessly. \ No newline at end of file diff --git a/jenkins/data.yml b/jenkins/data.yml deleted file mode 100755 index 604ec15a6..000000000 --- a/jenkins/data.yml +++ /dev/null @@ -1,34 +0,0 @@ -name: Jenkins -tags: - - DevOps -title: 开源的持续集成工具 -description: 开源的持续集成工具 -additionalProperties: - key: jenkins - name: Jenkins - tags: - - DevOps - shortDescZh: 开源的持续集成工具 - shortDescEn: Build great things at any scale - description: - en: Build great things at any scale - ja: あらゆる規模で素晴らしいものを作りましょう - ms: Bina perkara hebat pada sebarang skala - pt-br: Construa grandes coisas em qualquer escala - ru: Стройте великие вещи в любом масштабе - ko: 모든 규모에서 위대한 것을 만들어보세요 - zh-Hant: 在任何規模上建造偉大的事物 - zh: 在任何规模上建造伟大的事物 - type: website - crossVersionUpdate: false - limit: 1 - recommend: 0 - website: https://www.jenkins.io/ - github: https://github.com/jenkinsci/jenkins - document: https://www.jenkins.io/doc/book/ - memoryRequired: 1024 - architectures: - - amd64 - - arm64 - - s390x - - ppc64le diff --git a/jenkins/logo.png b/jenkins/logo.png deleted file mode 100644 index 2de4e0a47..000000000 Binary files a/jenkins/logo.png and /dev/null differ diff --git a/jsonhero/README.md b/jsonhero/README.md deleted file mode 100644 index 2e218fc09..000000000 --- a/jsonhero/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# JSON Hero - -JSON Hero 为您提供了一个干净、美观且具有额外功能的用户界面,使您可以轻松阅读和理解 JSON 文件。 - -- 以您喜欢的任何方式查看 JSON:列视图、树视图、编辑器视图等 -- 自动推断字符串的内容并提供有用的预览 -- 创建推断的 JSON 模式,可用于验证您的 JSON -- 快速扫描相关值以检查边缘情况 -- 搜索 JSON 文件(键和值) -- 键盘可访问 -- 通过路径支持轻松共享 URL \ No newline at end of file diff --git a/jsonhero/README_en.md b/jsonhero/README_en.md deleted file mode 100644 index f0d9b5d98..000000000 --- a/jsonhero/README_en.md +++ /dev/null @@ -1,10 +0,0 @@ -# JSON Hero -JSON Hero provides you with a clean, beautiful, and feature-rich user interface to easily read and understand JSON files. - -- View JSON in any way you like: column view, tree view, editor view, and more. -- Automatically infer the content of strings and provide useful previews. -- Create inferred JSON schemas that can be used to validate your JSON. -- Quickly scan related values to check edge cases. -- Search JSON files (keys and values). -- Keyboard accessible. -- Easily share URLs with path support. \ No newline at end of file diff --git a/jsonhero/data.yml b/jsonhero/data.yml deleted file mode 100644 index 347bdc30e..000000000 --- a/jsonhero/data.yml +++ /dev/null @@ -1,30 +0,0 @@ -name: JSON Hero -tags: - - 实用工具 -title: 开源、美观的 Web JSON 浏览器 -description: 开源、美观的 Web JSON 浏览器 -additionalProperties: - key: jsonhero - name: JSON Hero - tags: - - Tool - shortDescZh: 开源、美观的 Web JSON 浏览器 - shortDescEn: An open-source, beautiful JSON explorer - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://jsonhero.io - github: https://github.com/triggerdotdev/jsonhero-web - document: https://github.com/triggerdotdev/jsonhero-web - description: - en: An open-source, beautiful JSON explorer - zh: 开源、美观的 Web JSON 浏览器 - zh-Hant: 開源、美觀的 Web JSON 瀏覽器 - ja: オープンソースで美しい JSON エクスプローラー - ms: Penjelajah JSON yang cantik dan sumber terbuka - pt-br: Um explorador JSON bonito e de código aberto - ru: Открытый, красивый JSON-обозреватель - ko: 오픈 소스이자 아름다운 JSON 탐색기 - architectures: - - amd64 diff --git a/jsonhero/latest/data.yml b/jsonhero/latest/data.yml deleted file mode 100644 index 10a60e9f1..000000000 --- a/jsonhero/latest/data.yml +++ /dev/null @@ -1,19 +0,0 @@ -additionalProperties: - formFields: - - default: 40178 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh: 端口 - zh-Hant: 埠 - required: true - rule: paramPort - type: number \ No newline at end of file diff --git a/jsonhero/latest/docker-compose.yml b/jsonhero/latest/docker-compose.yml deleted file mode 100644 index 2467a4005..000000000 --- a/jsonhero/latest/docker-compose.yml +++ /dev/null @@ -1,14 +0,0 @@ -services: - jsonhero: - container_name: ${CONTAINER_NAME} - image: henryclw/jsonhero-web:latest - restart: always - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_HTTP}:8787 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/jsonhero/logo.png b/jsonhero/logo.png deleted file mode 100644 index 52b8c6336..000000000 Binary files a/jsonhero/logo.png and /dev/null differ diff --git a/jumpserver/3.10.12/data.yml b/jumpserver/3.10.12/data.yml deleted file mode 100644 index f8ab8338b..000000000 --- a/jumpserver/3.10.12/data.yml +++ /dev/null @@ -1,285 +0,0 @@ -additionalProperties: - formFields: - - default: vYneAbsXUhe4BghEeedNL7nfWLwaTTmhnwQMvjYOIG25Ofzghk - edit: true - envKey: SECRET_KEY - labelEn: Cryptographic signing - labelZh: 加密签名 - required: true - type: password - label: - en: Cryptographic signing - ja: 暗号署名 - ms: Tandatangan kriptografi - pt-br: Assinatura criptográfica - ru: Криптографическая подпись - ko: 암호 서명 - zh-Hant: 加密簽名 - zh: 加密签名 - - default: K1ffDfLSIK8SV2PZj6VaxOiv8KuawlJK - edit: true - envKey: BOOTSTRAP_TOKEN - labelEn: Bootstrap token - labelZh: 认证令牌 - required: true - type: password - label: - en: Bootstrap token - ja: ブートストラップトークン - ms: Token Bootstrap - pt-br: Token de inicialização - ru: Токен для начальной настройки - ko: 부트 스트랩 토큰 - zh-Hant: 引導令牌 - zh: 认证令牌 - - default: "false" - envKey: DEBUG - labelEn: Debug mode - labelZh: 调试模式 - required: true - type: select - values: - - label: 开启 - value: "true" - - label: 关闭 - value: "false" - label: - en: Debug mode - ja: デバッグモード - ms: Modus Debug - pt-br: Modo de depuração - ru: Режим отладки - ko: 디버그 모드 - zh-Hant: 調試模式 - zh: 调试模式 - - default: "ERROR" - envKey: LOG_LEVEL - labelEn: Log level - labelZh: 日志级别 - required: true - type: select - values: - - label: DEBUG - value: "DEBUG" - - label: INFO - value: "INFO" - - label: WARNING - value: "WARNING" - - label: ERROR - value: "ERROR" - - label: CRITICAL - value: "CRITICAL" - label: - en: Log level - ja: ログレベル - ms: Tahap log - pt-br: Nível de log - ru: Уровень журнала - ko: 로그 레벨 - zh-Hant: 日誌級別 - zh: 日志级别 - - child: - default: "" - envKey: PANEL_DB_HOST - required: true - type: service - default: mysql - envKey: PANEL_DB_TYPE - labelEn: Database Service - labelZh: 数据库服务 - required: true - type: apps - values: - - label: MySQL - value: mysql - - label: MariaDB - value: mariadb - label: - en: Database Service - ja: データベースサービス - ms: Perkhidmatan Pangkalan Data - pt-br: Serviço de Banco de Dados - ru: Сервис баз данных - ko: 데이터베이스 서비스 - zh-hant: 資料庫服務 - zh: 数据库服务 - - default: jumpserver - envKey: PANEL_DB_NAME - labelEn: Database - labelZh: 数据库 - random: true - required: true - rule: paramCommon - type: text - label: - en: Database - ja: データベース - ms: Pangkalan Data - pt-br: Banco de Dados - ru: База данных - ko: 데이터베이스 - zh-hant: 資料庫 - zh: 数据库 - - default: jumpserver - envKey: PANEL_DB_USER - labelEn: Database User - labelZh: 数据库用户 - random: true - required: true - rule: paramCommon - type: text - label: - en: Database User - ja: データベースユーザー - ms: Pengguna Pangkalan Data - pt-br: Usuário do Banco de Dados - ru: Пользователь базы данных - ko: 데이터베이스 사용자 - zh-hant: 資料庫用戶 - zh: 数据库用户 - - default: jumpserver - envKey: PANEL_DB_USER_PASSWORD - labelEn: Database Password - labelZh: 数据库密码 - random: true - required: true - type: password - label: - en: Database Password - ja: データベースのパスワード - ms: Kata Laluan Pangkalan Data - pt-br: Senha do Banco de Dados - ru: Пароль базы данных - ko: 데이터베이스 비밀번호 - zh-hant: 資料庫密碼 - zh: 数据库密码 - - default: "" - edit: true - envKey: REDIS_HOST - key: redis - labelEn: Redis Service - labelZh: 缓存服务服务 - required: true - type: service - label: - en: Redis Service - ja: Redis サービス - ms: Perkhidmatan Redis - pt-br: Serviço Redis - ru: Сервис Redis - ko: Redis 서비스 - zh-Hant: Redis 服務 - zh: Redis 服务 - - default: "" - edit: true - envKey: PANEL_REDIS_ROOT_PASSWORD - labelEn: Redis service Password - labelZh: Redis 服务密码 - required: true - type: password - label: - en: Redis service password - ja: Redis サービスのパスワード - ms: Kata laluan perkhidmatan Redis - pt-br: Senha do serviço Redis - ru: Пароль службы Redis - ko: Redis 서비스 비밀번호 - zh-Hant: Redis 服務密碼 - zh: Redis 服务密码 - - default: 8080 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: HTTP Port - labelZh: HTTP 端口 - required: true - rule: paramPort - type: number - label: - en: HTTP Port - ja: HTTP ポート - ms: HTTP Port - pt-br: HTTP Porta - ru: HTTP Порт - ko: HTTP 포트 - zh-Hant: HTTP 埠 - zh: HTTP 端口 - - default: 2222 - edit: true - envKey: SSH_PORT - labelEn: SSH port - labelZh: SSH 端口 - required: true - rule: paramPort - type: number - label: - en: SSH Port - ja: SSH ポート - ms: SSH Port - pt-br: SSH Porta - ru: SSH Порт - ko: SSH 포트 - zh-Hant: SSH 埠 - zh: SSH 端口 - - default: 33061 - edit: true - envKey: MAGNUS_MYSQL_PORT - labelEn: Magnus MySQL port - labelZh: Magnus MySQL 端口 - rule: paramPort - type: number - label: - en: Magnus MySQL Port - ja: Magnus MySQL ポート - ms: Magnus MySQL Port - pt-br: Magnus MySQL Porta - ru: Magnus MySQL Порт - ko: Magnus MySQL 포트 - zh-Hant: Magnus MySQL 埠 - zh: Magnus MySQL 端口 - - default: 33062 - edit: true - envKey: MAGNUS_MARIADB_PORT - labelEn: Magnus MariaDB port - labelZh: Magnus MariaDB 端口 - rule: paramPort - type: number - label: - en: Magnus MariaDB Port - ja: Magnus MariaDB ポート - ms: Magnus MariaDB Port - pt-br: Magnus MariaDB Porta - ru: Magnus MariaDB Порт - ko: Magnus MariaDB 포트 - zh-Hant: Magnus MariaDB 埠 - zh: Magnus MariaDB 端口 - - default: 63790 - edit: true - envKey: MAGNUS_REDIS_PORT - labelEn: Magnus Redis port - labelZh: Magnus Redis 端口 - rule: paramPort - type: number - label: - en: Magnus Redis Port - ja: Magnus Redis ポート - ms: Magnus Redis Port - pt-br: Magnus Redis Porta - ru: Magnus Redis Порт - ko: Magnus Redis 포트 - zh-Hant: Magnus Redis 埠 - zh: Magnus Redis 端口 - - default: "" - edit: true - envKey: DOMAINS - labelEn: DOMAINS - labelZh: 域名 - type: text - label: - en: DOMAINS - ja: ドメイン - ms: DOMAIN - pt-br: DOMÍNIOS - ru: ДОМИНЫ - ko: 도메인 - zh-Hant: 域名 - zh: 域名 \ No newline at end of file diff --git a/jumpserver/3.10.12/docker-compose.yml b/jumpserver/3.10.12/docker-compose.yml deleted file mode 100644 index 4269f9c8c..000000000 --- a/jumpserver/3.10.12/docker-compose.yml +++ /dev/null @@ -1,44 +0,0 @@ -services: - jumpserver: - image: jumpserver/jms_all:v3.10.12 - container_name: ${CONTAINER_NAME} - privileged: true - restart: always - labels: - createdBy: "Apps" - environment: - SECRET_KEY: ${SECRET_KEY} - BOOTSTRAP_TOKEN: ${BOOTSTRAP_TOKEN} - DEBUG: ${DEBUG:-FALSE} - LOG_LEVEL: ${LOG_LEVEL} - DB_HOST: ${PANEL_DB_HOST} - DB_PORT: ${PANEL_DB_PORT} - DB_USER: ${PANEL_DB_USER} - DB_PASSWORD: ${PANEL_DB_USER_PASSWORD} - DB_NAME: ${PANEL_DB_NAME} - REDIS_HOST: ${REDIS_HOST} - REDIS_PORT: 6379 - REDIS_PASSWORD: ${PANEL_REDIS_ROOT_PASSWORD} - MAGNUS_MYSQL_PORT: ${MAGNUS_MYSQL_PORT} - MAGNUS_MARIADB_PORT: ${MAGNUS_MARIADB_PORT} - MAGNUS_REDIS_PORT: ${MAGNUS_REDIS_PORT} - DOMAINS: ${DOMAINS:-} - ports: - - ${PANEL_APP_PORT_HTTP}:80 - - ${SSH_PORT}:2222 - - ${MAGNUS_MYSQL_PORT}:33061 - - ${MAGNUS_MARIADB_PORT}:33062 - - ${MAGNUS_REDIS_PORT}:63790 - volumes: - - ./data/core/data:/opt/jumpserver/data - - ./data/koko/data:/opt/koko/data - - ./data/lion/data:/opt/lion/data - - ./data/chen/data:/opt/chen/data - - ./data/kael/data:/opt/kael/data - - ./data/web/data/logs:/var/log/nginx - - ./data/web/data/download:/opt/download - networks: - - 1panel-network -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/jumpserver/4.10.2/data.yml b/jumpserver/4.10.2/data.yml deleted file mode 100644 index fec9cd330..000000000 --- a/jumpserver/4.10.2/data.yml +++ /dev/null @@ -1,260 +0,0 @@ -additionalProperties: - formFields: - - default: vYneAbsXUhe4BghEeedNL7nfWLwaTTmhnwQMvjYOIG25Ofzghk - edit: true - envKey: SECRET_KEY - labelEn: Cryptographic signing - labelZh: 加密签名 - required: true - type: password - label: - en: Cryptographic signing - ja: 暗号署名 - ms: Tandatangan kriptografi - pt-br: Assinatura criptográfica - ru: Криптографическая подпись - ko: 암호 서명 - zh-Hant: 加密簽名 - zh: 加密签名 - - default: K1ffDfLSIK8SV2PZj6VaxOiv8KuawlJK - edit: true - envKey: BOOTSTRAP_TOKEN - labelEn: Bootstrap token - labelZh: 认证令牌 - required: true - type: password - label: - en: Bootstrap token - ja: ブートストラップトークン - ms: Token Bootstrap - pt-br: Token de inicialização - ru: Токен для начальной настройки - ko: 부트 스트랩 토큰 - zh-Hant: 引導令牌 - zh: 认证令牌 - - default: "false" - envKey: DEBUG - labelEn: Debug mode - labelZh: 调试模式 - required: true - type: select - values: - - label: 开启 - value: "true" - - label: 关闭 - value: "false" - label: - en: Debug mode - ja: デバッグモード - ms: Modus Debug - pt-br: Modo de depuração - ru: Режим отладки - ko: 디버그 모드 - zh-Hant: 調試模式 - zh: 调试模式 - - default: "ERROR" - envKey: LOG_LEVEL - labelEn: Log level - labelZh: 日志级别 - required: true - type: select - values: - - label: DEBUG - value: "DEBUG" - - label: INFO - value: "INFO" - - label: WARNING - value: "WARNING" - - label: ERROR - value: "ERROR" - - label: CRITICAL - value: "CRITICAL" - label: - en: Log level - ja: ログレベル - ms: Tahap log - pt-br: Nível de log - ru: Уровень журнала - ko: 로그 레벨 - zh-Hant: 日誌級別 - zh: 日志级别 - - child: - default: "" - envKey: PANEL_DB_HOST - required: true - type: service - default: postgresql - envKey: PANEL_DB_TYPE - labelEn: Database Service - labelZh: 数据库服务 - required: true - type: apps - values: - - label: PostgreSQL - value: postgresql - - label: MySQL - value: mysql - - label: MariaDB - value: mariadb - label: - en: Database Service - ja: データベースサービス - ms: Perkhidmatan Pangkalan Data - pt-br: Serviço de Banco de Dados - ru: Сервис баз данных - ko: 데이터베이스 서비스 - zh-hant: 資料庫服務 - zh: 数据库服务 - - default: jumpserver - envKey: PANEL_DB_NAME - labelEn: Database - labelZh: 数据库 - random: true - required: true - rule: paramCommon - type: text - label: - en: Database - ja: データベース - ms: Pangkalan Data - pt-br: Banco de Dados - ru: База данных - ko: 데이터베이스 - zh-hant: 資料庫 - zh: 数据库 - - default: jumpserver - envKey: PANEL_DB_USER - random: true - required: true - rule: paramCommon - type: text - labelEn: Database User - labelZh: 数据库用户 - label: - en: Database User - ja: データベースユーザー - ms: Pengguna Pangkalan Data - pt-br: Usuário do Banco de Dados - ru: Пользователь базы данных - ko: 데이터베이스 사용자 - zh-hant: 資料庫用戶 - zh: 数据库用户 - - default: jumpserver - envKey: PANEL_DB_USER_PASSWORD - labelEn: Database User Password - labelZh: 数据库用户密码 - random: true - required: true - type: password - label: - en: Database Password - ja: データベースのパスワード - ms: Kata Laluan Pangkalan Data - pt-br: Senha do Banco de Dados - ru: Пароль базы данных - ko: 데이터베이스 비밀번호 - zh-hant: 資料庫密碼 - zh: 数据库密码 - - default: "" - edit: true - envKey: REDIS_HOST - key: redis - labelEn: Redis Service - labelZh: 缓存服务服务 - required: true - type: service - label: - en: Redis Service - ja: Redis サービス - ms: Perkhidmatan Redis - pt-br: Serviço Redis - ru: Сервис Redis - ko: Redis 서비스 - zh-Hant: Redis 服務 - zh: Redis 服务 - - default: "" - edit: true - envKey: PANEL_REDIS_ROOT_PASSWORD - labelEn: Redis service password - labelZh: Redis 服务密码 - required: true - type: password - label: - en: Redis service password - ja: Redis サービスのパスワード - ms: Kata laluan perkhidmatan Redis - pt-br: Senha do serviço Redis - ru: Пароль службы Redis - ko: Redis 서비스 비밀번호 - zh-Hant: Redis 服務密碼 - zh: Redis 服务密码 - - default: 'true' - edit: true - envKey: WITH_NGINX - labelEn: Use the built-in nginx service - labelZh: 使用内置的 Nginx 服务 - label: - en: Use the built-in nginx service - ja: 組み込みの Nginx サービスを使用してください - ms: Gunakan perkhidmatan Nginx terbina dalam - pt-br: Use o serviço Nginx incorporado - ru: Используйте встроенный сервис Nginx - ko: 내장된 Nginx 서비스를 사용하세요 - zh-hant: 使用內建的 Nginx 服務 - zh: 使用内置的 Nginx 服务 - required: true - type: select - values: - - label: "Yes, I want to use the built-in Nginx service." - value: "true" - - label: "No, I will set up the Nginx reverse proxy myself." - value: "false" - - default: 8080 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: HTTP Port - labelZh: HTTP 端口 - required: true - rule: paramPort - type: number - label: - en: HTTP Port - ja: HTTP ポート - ms: HTTP Port - pt-br: HTTP Porta - ru: HTTP Порт - ko: HTTP 포트 - zh-Hant: HTTP 埠 - zh: HTTP 端口 - - default: 2222 - edit: true - envKey: SSH_PORT - labelEn: SSH port - labelZh: SSH 端口 - required: true - rule: paramPort - type: number - label: - en: SSH Port - ja: SSH ポート - ms: SSH Port - pt-br: SSH Porta - ru: SSH Порт - ko: SSH 포트 - zh-Hant: SSH 埠 - zh: SSH 端口 - - default: "" - edit: true - envKey: DOMAINS - labelEn: DOMAINS - labelZh: 域名 - type: text - label: - en: DOMAINS - ja: ドメイン - ms: DOMAIN - pt-br: DOMÍNIOS - ru: ДОМИНЫ - ko: 도메인 - zh-Hant: 域名 - zh: 域名 \ No newline at end of file diff --git a/jumpserver/4.10.2/docker-compose.yml b/jumpserver/4.10.2/docker-compose.yml deleted file mode 100644 index b370d1345..000000000 --- a/jumpserver/4.10.2/docker-compose.yml +++ /dev/null @@ -1,33 +0,0 @@ -services: - jumpserver: - image: jumpserver/jms_all:v4.10.2 - container_name: ${CONTAINER_NAME} - privileged: true - restart: always - ports: - - ${PANEL_APP_PORT_HTTP}:80 - - ${SSH_PORT}:2222 - volumes: - - ./data/:/opt/data - networks: - - 1panel-network - environment: - SECRET_KEY: ${SECRET_KEY} - BOOTSTRAP_TOKEN: ${BOOTSTRAP_TOKEN} - DEBUG: ${DEBUG:-FALSE} - LOG_LEVEL: ${LOG_LEVEL} - DB_ENGINE: ${DB_ENGINE} - DB_HOST: ${PANEL_DB_HOST} - DB_PORT: ${PANEL_DB_PORT} - DB_USER: ${PANEL_DB_USER} - DB_PASSWORD: ${PANEL_DB_USER_PASSWORD} - DB_NAME: ${PANEL_DB_NAME} - REDIS_HOST: ${REDIS_HOST} - REDIS_PORT: 6379 - REDIS_PASSWORD: ${PANEL_REDIS_ROOT_PASSWORD} - DOMAINS: ${DOMAINS:-} - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/jumpserver/4.10.2/scripts/init.sh b/jumpserver/4.10.2/scripts/init.sh deleted file mode 100644 index a969a0a12..000000000 --- a/jumpserver/4.10.2/scripts/init.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/bash - -ENV_FILE=".env" - -if [ -f "$ENV_FILE" ]; then - source "$ENV_FILE" - if [ "$PANEL_DB_TYPE" == "postgresql" ]; then - ENGINE="postgresql" - elif [ "$PANEL_DB_TYPE" == "mysql" ] || [ "$PANEL_DB_TYPE" == "mariadb" ]; then - ENGINE="mysql" - else - echo "Unsupported PANEL_DB_TYPE value: $PANEL_DB_TYPE" - exit 1 - fi - - if grep -q '^DB_ENGINE=' "$ENV_FILE"; then - sed -i.bak "s/^DB_ENGINE=.*/DB_ENGINE=$ENGINE/" "$ENV_FILE" - else - echo DB_ENGINE="$ENGINE" >> "$ENV_FILE" - fi - - if [ "$(grep '^WITH_NGINX=' "$ENV_FILE" | cut -d '=' -f 2 | tr -d '"')" == "false" ]; then - sed -i.bak 's/${HOST_IP}:${PANEL_APP_PORT_HTTP}:80/127.0.0.1:${PANEL_APP_PORT_HTTP}:51980/g' "docker-compose.yml" - fi -else - echo ".env file not found!" - exit 1 -fi \ No newline at end of file diff --git a/jumpserver/README.md b/jumpserver/README.md deleted file mode 100644 index 73803769c..000000000 --- a/jumpserver/README.md +++ /dev/null @@ -1,24 +0,0 @@ -# 默认账户密码 - -用户名:`admin` -密码:v3 版本默认密码为 `admin`,v4 版本默认密码为 `ChangeMe` - -# JumpServer - -JumpServer 是广受欢迎的开源堡垒机,是符合 4A 规范的专业运维安全审计系统。JumpServer 堡垒机帮助企业以更安全的方式管控和登录各种类型的资产,包括: - -- **SSH**: Linux / Unix / 网络设备 等; -- **Windows**: Web 方式连接 / 原生 RDP 连接; -- **数据库**: MySQL / Oracle / SQLServer / PostgreSQL 等; -- **Kubernetes**: 支持连接到 K8s 集群中的 Pods; -- **Web 站点**: 各类系统的 Web 管理后台; -- **应用**: 通过 Remote App 连接各类应用。 - -## 产品特色: - -- **开源**: 零门槛,线上快速获取和安装; -- **无插件**: 仅需浏览器,极致的 Web Terminal 使用体验; -- **分布式**: 支持分布式部署和横向扩展,轻松支持大规模并发访问; -- **多云支持**: 一套系统,同时管理不同云上面的资产; -- **多租户**: 一套系统,多个子公司或部门同时使用; -- **云端存储**: 审计录像云端存储,永不丢失; \ No newline at end of file diff --git a/jumpserver/README_en.md b/jumpserver/README_en.md deleted file mode 100644 index 91031dc27..000000000 --- a/jumpserver/README_en.md +++ /dev/null @@ -1,27 +0,0 @@ -# JumpServer - -JumpServer is an open-source Privileged Access Management (PAM) tool that provides DevOps and IT teams with on-demand and secure access to SSH, RDP, Kubernetes, Database and RemoteApp endpoints through a web browser. - -## Main Features - -- **SSH**: Linux/Unix/Network devices, etc. -- **Windows**: Connect via web or native RDP. -- **Databases**: MySQL, Oracle, SQL Server, PostgreSQL, etc. -- **Kubernetes**: Access pods in K8s clusters. -- **Websites**: Manage web admin backends of various systems. -- **Applications**: Connect to various applications using Remote App. - -## Product Highlights: - -- **Open Source**: Zero barrier, quick online setup, and installation. -- **Plugin-Free**: Only a browser is required for an optimal web terminal experience. -- **Distributed**: Supports distributed deployment and horizontal scaling, handling high concurrent access with ease. -- **Multi-Cloud Support**: Manage assets across different clouds with a single system. -- **Multi-Tenancy**: One system can be used by multiple subsidiaries or departments. -- **Cloud Storage**: Audit recordings stored in the cloud, ensuring they are never lost. - -# Default Account and Password - -- **Username**: `admin` -- **Password**: The default password for version 3 is `admin`, and for version 4 is `ChangeMe`. - diff --git a/jumpserver/data.yml b/jumpserver/data.yml deleted file mode 100644 index 17947af41..000000000 --- a/jumpserver/data.yml +++ /dev/null @@ -1,32 +0,0 @@ -name: JumpServer -tags: - - 安全 -title: JumpServer 开源堡垒机 -description: JumpServer 开源堡垒机 -additionalProperties: - key: jumpserver - name: JumpServer - tags: - - Security - shortDescZh: 广受欢迎的开源堡垒机 - shortDescEn: The world's first open-source Bastion Host - description: - en: The world's first open-source Bastion Host - ja: 世界初のオープンソースのバスティオンホスト - ms: Bastion Host sumber terbuka pertama di dunia - pt-br: O primeiro Bastion Host de código aberto do mundo - ru: Первый в мире открытый Bastion Host - ko: 세계 최초의 오픈 소스 Bastion Host - zh-Hant: 全球首個開源堡壘主機 - zh: 广受欢迎的开源堡垒机 - type: website - crossVersionUpdate: false - limit: 1 - recommend: 50 - website: https://www.jumpserver.org - github: https://github.com/jumpserver/jumpserver - document: https://docs.jumpserver.org - memoryRequired: 8192 - architectures: - - amd64 - - arm64 diff --git a/jumpserver/logo.png b/jumpserver/logo.png deleted file mode 100644 index 529b3c7a1..000000000 Binary files a/jumpserver/logo.png and /dev/null differ diff --git a/kafka/4.0.0/data.yml b/kafka/4.0.0/data.yml deleted file mode 100644 index 13a5b4d48..000000000 --- a/kafka/4.0.0/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -additionalProperties: - formFields: - - default: 9092 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: TCP 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh: TCP 端口 - zh-Hant: TCP 埠 - required: true - rule: paramPort - type: number - diff --git a/kafka/4.0.0/docker-compose.yml b/kafka/4.0.0/docker-compose.yml deleted file mode 100644 index 05f052db8..000000000 --- a/kafka/4.0.0/docker-compose.yml +++ /dev/null @@ -1,30 +0,0 @@ -services: - kafka: - container_name: ${CONTAINER_NAME} - restart: always - environment: - ALLOW_PLAINTEXT_LISTENER: 'yes' - KAFKA_CFG_LOG_RETENTION_MS: 60000 - KAFKA_CFG_MAX_REQUEST_SIZE: 524288000 - KAFKA_CFG_MESSAGE_MAX_BYTES: 524288000 - KAFKA_CFG_REPLICA_FETCH_MAX_BYTES: 524288000 - KAFKA_CFG_FETCH_MESSAGE_MAX_BYTES: 524288000 - KAFKA_CFG_PARTITION_FETCH_BYTES: 524288000 - KAFKA_CFG_NODE_ID: 0 - KAFKA_CFG_PROCESS_ROLES: controller,broker - KAFKA_CFG_LISTENERS: PLAINTEXT://:9092,CONTROLLER://:9093 - KAFKA_CFG_ADVERTISED_LISTENERS: PLAINTEXT://${CONTAINER_NAME}:${PANEL_APP_PORT_HTTP} - KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT - KAFKA_CFG_CONTROLLER_QUORUM_VOTERS: 0@127.0.0.1:9093 - KAFKA_CFG_CONTROLLER_LISTENER_NAMES: CONTROLLER - KAFKA_HEAP_OPTS: '-Xmx512m -Xms256m' - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTP}:9092" - image: bitnami/kafka:4.0.0 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/kafka/README.md b/kafka/README.md deleted file mode 100644 index 4e6be6834..000000000 --- a/kafka/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# Kafka - -Kafka 一个分布式流处理平台 - -## 主要功能: - -- 它能够让应用发布或预订数据或事件流。 -- 它能够以可容错的持久方式准确地存储记录(即,按照记录的出现顺序)。 -- 它能够实时处理记录(一出现便处理)。 diff --git a/kafka/README_en.md b/kafka/README_en.md deleted file mode 100644 index f025a9509..000000000 --- a/kafka/README_en.md +++ /dev/null @@ -1,7 +0,0 @@ -# Kafka -Kafka is a distributed stream processing platform. - -## Key Features: -- It allows applications to publish or subscribe to streams of data or events. -- It can store records in a fault-tolerant and durable manner, preserving the order of records. -- It enables real-time processing of records as they arrive. \ No newline at end of file diff --git a/kafka/data.yml b/kafka/data.yml deleted file mode 100644 index 108496ef1..000000000 --- a/kafka/data.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: Kafka -tags: - - 中间件 -title: 开源分布式事件流平台 -description: 开源分布式事件流平台 -additionalProperties: - key: kafka - name: Kafka - tags: - - Middleware - shortDescZh: 开源分布式事件流平台 - shortDescEn: open-source distributed event streaming platform - type: tool - crossVersionUpdate: false - limit: 0 - website: https://kafka.apache.org/ - github: https://github.com/apache/kafka - document: https://kafka.apache.org/documentation/ - description: - en: Open-source distributed event streaming platform - zh: 开源分布式事件流平台 - zh-Hant: 開源分佈式事件流平台 - ja: オープンソースの分散イベントストリーミングプラットフォーム - ms: Platform penstriman acara teragih sumber terbuka - pt-br: Plataforma de streaming de eventos distribuída de código aberto - ru: Открытая распределённая платформа потоковой передачи событий - ko: 오픈 소스 분산 이벤트 스트리밍 플랫폼 - memoryRequired: 1024 - architectures: - - amd64 - - arm64 \ No newline at end of file diff --git a/kafka/logo.png b/kafka/logo.png deleted file mode 100644 index b17cbb0a6..000000000 Binary files a/kafka/logo.png and /dev/null differ diff --git a/keydb/6.3.4/conf/keydb.conf b/keydb/6.3.4/conf/keydb.conf deleted file mode 100644 index 7df839513..000000000 --- a/keydb/6.3.4/conf/keydb.conf +++ /dev/null @@ -1,2109 +0,0 @@ -# KeyDB configuration file example. -# -# Note that in order to read the configuration file, KeyDB must be -# started with the file path as first argument: -# -# ./keydb-server /path/to/keydb.conf - -# Note on units: when memory size is needed, it is possible to specify -# it in the usual form of 1k 5GB 4M and so forth: -# -# 1k => 1000 bytes -# 1kb => 1024 bytes -# 1m => 1000000 bytes -# 1mb => 1024*1024 bytes -# 1g => 1000000000 bytes -# 1gb => 1024*1024*1024 bytes -# -# units are case insensitive so 1GB 1Gb 1gB are all the same. - -################################## INCLUDES ################################### - -# Include one or more other config files here. This is useful if you -# have a standard template that goes to all KeyDB servers but also need -# to customize a few per-server settings. Include files can include -# other files, so use this wisely. -# -# Note that option "include" won't be rewritten by command "CONFIG REWRITE" -# from admin or KeyDB Sentinel. Since KeyDB always uses the last processed -# line as value of a configuration directive, you'd better put includes -# at the beginning of this file to avoid overwriting config change at runtime. -# -# If instead you are interested in using includes to override configuration -# options, it is better to use include as the last line. -# -# Included paths may contain wildcards. All files matching the wildcards will -# be included in alphabetical order. -# Note that if an include path contains a wildcards but no files match it when -# the server is started, the include statement will be ignored and no error will -# be emitted. It is safe, therefore, to include wildcard files from empty -# directories. -# -# include /path/to/local.conf -# include /path/to/other.conf -# include /path/to/fragments/*.conf -# - -################################## MODULES ##################################### - -# Load modules at startup. If the server is not able to load modules -# it will abort. It is possible to use multiple loadmodule directives. -# -# loadmodule /path/to/my_module.so -# loadmodule /path/to/other_module.so - -################################## NETWORK ##################################### - -# By default, if no "bind" configuration directive is specified, KeyDB listens -# for connections from all available network interfaces on the host machine. -# It is possible to listen to just one or multiple selected interfaces using -# the "bind" configuration directive, followed by one or more IP addresses. -# Each address can be prefixed by "-", which means that redis will not fail to -# start if the address is not available. Being not available only refers to -# addresses that does not correspond to any network interfece. Addresses that -# are already in use will always fail, and unsupported protocols will always BE -# silently skipped. -# -# Examples: -# -# bind 192.168.1.100 10.0.0.1 # listens on two specific IPv4 addresses -# bind 127.0.0.1 ::1 # listens on loopback IPv4 and IPv6 -# bind * -::* # like the default, all available interfaces -# -# ~~~ WARNING ~~~ If the computer running KeyDB is directly exposed to the -# internet, binding to all the interfaces is dangerous and will expose the -# instance to everybody on the internet. So by default we uncomment the -# following bind directive, that will force KeyDB to listen only on the -# IPv4 and IPv6 (if available) loopback interface addresses (this means KeyDB will only be able to -# accept client connections from the same host that it is running on). -# -# IF YOU ARE SURE YOU WANT YOUR INSTANCE TO LISTEN TO ALL THE INTERFACES -# JUST COMMENT OUT THE FOLLOWING LINE. -# -# You will also need to set a password unless you explicitly disable protected -# mode. -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# bind 127.0.0.1 -::1 - -# Protected mode is a layer of security protection, in order to avoid that -# KeyDB instances left open on the internet are accessed and exploited. -# -# When protected mode is on and if: -# -# 1) The server is not binding explicitly to a set of addresses using the -# "bind" directive. -# 2) No password is configured. -# -# The server only accepts connections from clients connecting from the -# IPv4 and IPv6 loopback addresses 127.0.0.1 and ::1, and from Unix domain -# sockets. -# -# By default protected mode is enabled. You should disable it only if -# you are sure you want clients from other hosts to connect to KeyDB -# even if no authentication is configured, nor a specific set of interfaces -# are explicitly listed using the "bind" directive. -protected-mode no - -# Accept connections on the specified port, default is 6379 (IANA #815344). -# If port 0 is specified KeyDB will not listen on a TCP socket. -port 6379 - -# TCP listen() backlog. -# -# In high requests-per-second environments you need a high backlog in order -# to avoid slow clients connection issues. Note that the Linux kernel -# will silently truncate it to the value of /proc/sys/net/core/somaxconn so -# make sure to raise both the value of somaxconn and tcp_max_syn_backlog -# in order to get the desired effect. -tcp-backlog 511 - -# Unix socket. -# -# Specify the path for the Unix socket that will be used to listen for -# incoming connections. There is no default, so KeyDB will not listen -# on a unix socket when not specified. -# -# unixsocket /tmp/keydb.sock -# unixsocketperm 700 - -# Close the connection after a client is idle for N seconds (0 to disable) -timeout 0 - -# TCP keepalive. -# -# If non-zero, use SO_KEEPALIVE to send TCP ACKs to clients in absence -# of communication. This is useful for two reasons: -# -# 1) Detect dead peers. -# 2) Force network equipment in the middle to consider the connection to be -# alive. -# -# On Linux, the specified value (in seconds) is the period used to send ACKs. -# Note that to close the connection the double of the time is needed. -# On other kernels the period depends on the kernel configuration. -# -# A reasonable value for this option is 300 seconds, which is the new -# KeyDB default starting with KeyDB 3.2.1. -tcp-keepalive 300 - -################################# TLS/SSL ##################################### - -# By default, TLS/SSL is disabled. To enable it, the "tls-port" configuration -# directive can be used to define TLS-listening ports. To enable TLS on the -# default port, use: -# -# port 0 -# tls-port 6379 - -# Configure a X.509 certificate and private key to use for authenticating the -# server to connected clients, masters or cluster peers. These files should be -# PEM formatted. -# -# tls-cert-file keydb.crt -# tls-key-file keydb.key -# -# If the key file is encrypted using a passphrase, it can be included here -# as well. -# -# tls-key-file-pass secret - -# Normally KeyDB uses the same certificate for both server functions (accepting -# connections) and client functions (replicating from a master, establishing -# cluster bus connections, etc.). -# -# Sometimes certificates are issued with attributes that designate them as -# client-only or server-only certificates. In that case it may be desired to use -# different certificates for incoming (server) and outgoing (client) -# connections. To do that, use the following directives: -# -# tls-client-cert-file client.crt -# tls-client-key-file client.key -# -# If the key file is encrypted using a passphrase, it can be included here -# as well. -# -# tls-client-key-file-pass secret - -# Configure a DH parameters file to enable Diffie-Hellman (DH) key exchange, -# required by older versions of OpenSSL (<3.0). Newer versions do not require -# this configuration and recommend against it. -# -# tls-dh-params-file keydb.dh - -# Configure a CA certificate(s) bundle or directory to authenticate TLS/SSL -# clients and peers. KeyDB requires an explicit configuration of at least one -# of these, and will not implicitly use the system wide configuration. -# -# tls-ca-cert-file ca.crt -# tls-ca-cert-dir /etc/ssl/certs - -# By default, clients (including replica servers) on a TLS port are required -# to authenticate using valid client side certificates. -# -# If "no" is specified, client certificates are not required and not accepted. -# If "optional" is specified, client certificates are accepted and must be -# valid if provided, but are not required. -# -# tls-auth-clients no -# tls-auth-clients optional - -# By default, a KeyDB replica does not attempt to establish a TLS connection -# with its master. -# -# Use the following directive to enable TLS on replication links. -# -# tls-replication yes - -# By default, the KeyDB Cluster bus uses a plain TCP connection. To enable -# TLS for the bus protocol, use the following directive: -# -# tls-cluster yes - -# Explicitly specify TLS versions to support. Allowed values are case insensitive -# and include "TLSv1", "TLSv1.1", "TLSv1.2", "TLSv1.3" (OpenSSL >= 1.1.1) or -# any combination. To enable only TLSv1.2 and TLSv1.3, use: -# -# tls-protocols "TLSv1.2 TLSv1.3" - -# Configure allowed ciphers. See the ciphers(1ssl) manpage for more information -# about the syntax of this string. -# -# Note: this configuration applies only to <= TLSv1.2. -# -# tls-ciphers DEFAULT:!MEDIUM - -# Configure allowed TLSv1.3 ciphersuites. See the ciphers(1ssl) manpage for more -# information about the syntax of this string, and specifically for TLSv1.3 -# ciphersuites. -# -# tls-ciphersuites TLS_CHACHA20_POLY1305_SHA256 - -# When choosing a cipher, use the server's preference instead of the client -# preference. By default, the server follows the client's preference. -# -# tls-prefer-server-ciphers yes - -# By default, TLS session caching is enabled to allow faster and less expensive -# reconnections by clients that support it. Use the following directive to disable -# caching. -# -# tls-session-caching no - -# Change the default number of TLS sessions cached. A zero value sets the cache -# to unlimited size. The default size is 20480. -# -# tls-session-cache-size 5000 - -# Change the default timeout of cached TLS sessions. The default timeout is 300 -# seconds. -# -# tls-session-cache-timeout 60 - -# Allow the server to monitor the filesystem and rotate out TLS certificates if -# they change on disk, defaults to no. -# -# tls-rotation no - -# Setup a allowlist of allowed Common Names (CNs)/Subject Alternative Names (SANs) -# that are allowed to connect to this server. This includes both normal clients as -# well as other servers connected for replication/clustering purposes. If nothing is -# specified, then no allowlist is used and all certificates are accepted. -# Supports IPv4, DNS, RFC822, and URI SAN types. -# You can put multiple names on one line as follows: -# -# tls-allowlist ... -# -# -# This configuration also allows for wildcard characters with glob style formatting -# i.e. "*.com" would allow all clients to connect with a CN/SAN that ends with ".com" - -################################# GENERAL ##################################### - -# By default KeyDB does not run as a daemon. Use 'yes' if you need it. -# Note that KeyDB will write a pid file in /var/run/keydb.pid when daemonized. -# daemonize no - -# If you run KeyDB from upstart or systemd, KeyDB can interact with your -# supervision tree. Options: -# supervised no - no supervision interaction -# supervised upstart - signal upstart by putting KeyDB into SIGSTOP mode -# requires "expect stop" in your upstart job config -# supervised systemd - signal systemd by writing READY=1 to $NOTIFY_SOCKET -# supervised auto - detect upstart or systemd method based on -# UPSTART_JOB or NOTIFY_SOCKET environment variables -# Note: these supervision methods only signal "process is ready." -# They do not enable continuous pings back to your supervisor. -supervised no - -# If a pid file is specified, KeyDB writes it where specified at startup -# and removes it at exit. -# -# When the server runs non daemonized, no pid file is created if none is -# specified in the configuration. When the server is daemonized, the pid file -# is used even if not specified, defaulting to "/var/run/keydb.pid". -# -# Creating a pid file is best effort: if KeyDB is not able to create it -# nothing bad happens, the server will start and run normally. -pidfile /var/run/keydb_6379.pid - -# Specify the server verbosity level. -# This can be one of: -# debug (a lot of information, useful for development/testing) -# verbose (many rarely useful info, but not a mess like the debug level) -# notice (moderately verbose, what you want in production probably) -# warning (only very important / critical messages are logged) -loglevel notice - -# Specify the log file name. Also the empty string can be used to force -# KeyDB to log on the standard output. Note that if you use standard -# output for logging but daemonize, logs will be sent to /dev/null -# logfile "" - -# To enable logging to the system logger, just set 'syslog-enabled' to yes, -# and optionally update the other syslog parameters to suit your needs. -# syslog-enabled no - -# Specify the syslog identity. -# syslog-ident keydb - -# Specify the syslog facility. Must be USER or between LOCAL0-LOCAL7. -# syslog-facility local0 - -# To disable the built in crash log, which will possibly produce cleaner core -# dumps when they are needed, uncomment the following: -# -# crash-log-enabled no - -# To disable the fast memory check that's run as part of the crash log, which -# will possibly let keydb terminate sooner, uncomment the following: -# -# crash-memcheck-enabled no - -# Set the number of databases. The default database is DB 0, you can select -# a different one on a per-connection basis using SELECT where -# dbid is a number between 0 and 'databases'-1 -databases 16 - -# By default KeyDB shows an ASCII art logo only when started to log to the -# standard output and if the standard output is a TTY. Basically this means -# that normally a logo is displayed only in interactive sessions. -# -# However it is possible to force the pre-4.0 behavior and always show a -# ASCII art logo in startup logs by setting the following option to yes. -always-show-logo yes - -# By default, KeyDB modifies the process title (as seen in 'top' and 'ps') to -# provide some runtime information. It is possible to disable this and leave -# the process name as executed by setting the following to no. -set-proc-title yes - -# Retrieving "message of today" using CURL requests. -#enable-motd yes - -# When changing the process title, KeyDB uses the following template to construct -# the modified title. -# -# Template variables are specified in curly brackets. The following variables are -# supported: -# -# {title} Name of process as executed if parent, or type of child process. -# {listen-addr} Bind address or '*' followed by TCP or TLS port listening on, or -# Unix socket if only that's available. -# {server-mode} Special mode, i.e. "[sentinel]" or "[cluster]". -# {port} TCP port listening on, or 0. -# {tls-port} TLS port listening on, or 0. -# {unixsocket} Unix domain socket listening on, or "". -# {config-file} Name of configuration file used. -# -proc-title-template "{title} {listen-addr} {server-mode}" - -################################ SNAPSHOTTING ################################ -# -# Save the DB on disk: -# -# save -# -# Will save the DB if both the given number of seconds and the given -# number of write operations against the DB occurred. -# -# In the example below the behavior will be to save: -# after 900 sec (15 min) if at least 1 key changed -# after 300 sec (5 min) if at least 10 keys changed -# after 60 sec if at least 10000 keys changed -# -# It is also possible to remove all the previously configured save -# points by adding a save directive with a single empty string argument -# like in the following example: -# -# save "" - -save 900 1 -save 300 10 -save 60 10000 - -# By default KeyDB will stop accepting writes if RDB snapshots are enabled -# (at least one save point) and the latest background save failed. -# This will make the user aware (in a hard way) that data is not persisting -# on disk properly, otherwise chances are that no one will notice and some -# disaster will happen. -# -# If the background saving process will start working again KeyDB will -# automatically allow writes again. -# -# However if you have setup your proper monitoring of the KeyDB server -# and persistence, you may want to disable this feature so that KeyDB will -# continue to work as usual even if there are problems with disk, -# permissions, and so forth. -stop-writes-on-bgsave-error yes - -# Compress string objects using LZF when dump .rdb databases? -# By default compression is enabled as it's almost always a win. -# If you want to save some CPU in the saving child set it to 'no' but -# the dataset will likely be bigger if you have compressible values or keys. -rdbcompression yes - -# Since version 5 of RDB a CRC64 checksum is placed at the end of the file. -# This makes the format more resistant to corruption but there is a performance -# hit to pay (around 10%) when saving and loading RDB files, so you can disable it -# for maximum performances. -# -# RDB files created with checksum disabled have a checksum of zero that will -# tell the loading code to skip the check. -rdbchecksum yes - -# Enables or disables full sanitation checks for ziplist and listpack etc when -# loading an RDB or RESTORE payload. This reduces the chances of a assertion or -# crash later on while processing commands. -# Options: -# no - Never perform full sanitation -# yes - Always perform full sanitation -# clients - Perform full sanitation only for user connections. -# Excludes: RDB files, RESTORE commands received from the master -# connection, and client connections which have the -# skip-sanitize-payload ACL flag. -# The default should be 'clients' but since it currently affects cluster -# resharding via MIGRATE, it is temporarily set to 'no' by default. -# -# sanitize-dump-payload no - -# The filename where to dump the DB -dbfilename dump.rdb - -# Remove RDB files used by replication in instances without persistence -# enabled. By default this option is disabled, however there are environments -# where for regulations or other security concerns, RDB files persisted on -# disk by masters in order to feed replicas, or stored on disk by replicas -# in order to load them for the initial synchronization, should be deleted -# ASAP. Note that this option ONLY WORKS in instances that have both AOF -# and RDB persistence disabled, otherwise is completely ignored. -# -# An alternative (and sometimes better) way to obtain the same effect is -# to use diskless replication on both master and replicas instances. However -# in the case of replicas, diskless is not always an option. -rdb-del-sync-files no - -# The working directory. -# -# The DB will be written inside this directory, with the filename specified -# above using the 'dbfilename' configuration directive. -# -# The Append Only File will also be created inside this directory. -# -# Note that you must specify a directory here, not a file name. -# dir ./ -dir /data - -################################# REPLICATION ################################# - -# Master-Replica replication. Use replicaof to make a KeyDB instance a copy of -# another KeyDB server. A few things to understand ASAP about KeyDB replication. -# -# +------------------+ +---------------+ -# | Master | ---> | Replica | -# | (receive writes) | | (exact copy) | -# +------------------+ +---------------+ -# -# 1) KeyDB replication is asynchronous, but you can configure a master to -# stop accepting writes if it appears to be not connected with at least -# a given number of replicas. -# 2) KeyDB replicas are able to perform a partial resynchronization with the -# master if the replication link is lost for a relatively small amount of -# time. You may want to configure the replication backlog size (see the next -# sections of this file) with a sensible value depending on your needs. -# 3) Replication is automatic and does not need user intervention. After a -# network partition replicas automatically try to reconnect to masters -# and resynchronize with them. -# -# replicaof - -# If the master is password protected (using the "requirepass" configuration -# directive below) it is possible to tell the replica to authenticate before -# starting the replication synchronization process, otherwise the master will -# refuse the replica request. -# -# masterauth -# -# However this is not enough if you are using KeyDB ACLs (for KeyDB version -# 6 or greater), and the default user is not capable of running the PSYNC -# command and/or other commands needed for replication (gathered in the -# @replication group). In this case it's better to configure a special user to -# use with replication, and specify the masteruser configuration as such: -# -# masteruser -# -# When masteruser is specified, the replica will authenticate against its -# master using the new AUTH form: AUTH . - -# When a replica loses its connection with the master, or when the replication -# is still in progress, the replica can act in two different ways: -# -# 1) if replica-serve-stale-data is set to 'yes' (the default) the replica will -# still reply to client requests, possibly with out of date data, or the -# data set may just be empty if this is the first synchronization. -# -# 2) If replica-serve-stale-data is set to 'no' the replica will reply with -# an error "SYNC with master in progress" to all commands except: -# INFO, REPLICAOF, AUTH, PING, SHUTDOWN, REPLCONF, ROLE, CONFIG, SUBSCRIBE, -# UNSUBSCRIBE, PSUBSCRIBE, PUNSUBSCRIBE, PUBLISH, PUBSUB, COMMAND, POST, -# HOST and LATENCY. -# -replica-serve-stale-data yes - -# Active Replicas will allow read only data access while loading remote RDBs -# provided they are permitted to serve stale data. As an option you may also -# permit them to accept write commands. This is an EXPERIMENTAL feature and -# may result in commands not being fully synchronized -# -# allow-write-during-load no - -# You can modify the number of masters necessary to form a replica quorum when -# multi-master is enabled and replica-serve-stale-data is "no". By default -# this is set to -1 which implies the number of known masters (e.g. those -# you added with replicaof) -# -# replica-quorum -1 - -# You can configure a replica instance to accept writes or not. Writing against -# a replica instance may be useful to store some ephemeral data (because data -# written on a replica will be easily deleted after resync with the master) but -# may also cause problems if clients are writing to it because of a -# misconfiguration. -# -# Since KeyDB 2.6 by default replicas are read-only. -# -# Note: read only replicas are not designed to be exposed to untrusted clients -# on the internet. It's just a protection layer against misuse of the instance. -# Still a read only replica exports by default all the administrative commands -# such as CONFIG, DEBUG, and so forth. To a limited extent you can improve -# security of read only replicas using 'rename-command' to shadow all the -# administrative / dangerous commands. -replica-read-only yes - -# Replication SYNC strategy: disk or socket. -# -# New replicas and reconnecting replicas that are not able to continue the -# replication process just receiving differences, need to do what is called a -# "full synchronization". An RDB file is transmitted from the master to the -# replicas. -# -# The transmission can happen in two different ways: -# -# 1) Disk-backed: The KeyDB master creates a new process that writes the RDB -# file on disk. Later the file is transferred by the parent -# process to the replicas incrementally. -# 2) Diskless: The KeyDB master creates a new process that directly writes the -# RDB file to replica sockets, without touching the disk at all. -# -# With disk-backed replication, while the RDB file is generated, more replicas -# can be queued and served with the RDB file as soon as the current child -# producing the RDB file finishes its work. With diskless replication instead -# once the transfer starts, new replicas arriving will be queued and a new -# transfer will start when the current one terminates. -# -# When diskless replication is used, the master waits a configurable amount of -# time (in seconds) before starting the transfer in the hope that multiple -# replicas will arrive and the transfer can be parallelized. -# -# With slow disks and fast (large bandwidth) networks, diskless replication -# works better. -repl-diskless-sync no - -# When diskless replication is enabled, it is possible to configure the delay -# the server waits in order to spawn the child that transfers the RDB via socket -# to the replicas. -# -# This is important since once the transfer starts, it is not possible to serve -# new replicas arriving, that will be queued for the next RDB transfer, so the -# server waits a delay in order to let more replicas arrive. -# -# The delay is specified in seconds, and by default is 5 seconds. To disable -# it entirely just set it to 0 seconds and the transfer will start ASAP. -repl-diskless-sync-delay 5 - -# ----------------------------------------------------------------------------- -# WARNING: RDB diskless load is experimental. Since in this setup the replica -# does not immediately store an RDB on disk, it may cause data loss during -# failovers. RDB diskless load + KeyDB modules not handling I/O reads may also -# cause KeyDB to abort in case of I/O errors during the initial synchronization -# stage with the master. Use only if your do what you are doing. -# ----------------------------------------------------------------------------- -# -# Replica can load the RDB it reads from the replication link directly from the -# socket, or store the RDB to a file and read that file after it was completely -# received from the master. -# -# In many cases the disk is slower than the network, and storing and loading -# the RDB file may increase replication time (and even increase the master's -# Copy on Write memory and salve buffers). -# However, parsing the RDB file directly from the socket may mean that we have -# to flush the contents of the current database before the full rdb was -# received. For this reason we have the following options: -# -# "disabled" - Don't use diskless load (store the rdb file to the disk first) -# "on-empty-db" - Use diskless load only when it is completely safe. -# "swapdb" - Keep a copy of the current db contents in RAM while parsing -# the data directly from the socket. note that this requires -# sufficient memory, if you don't have it, you risk an OOM kill. -repl-diskless-load disabled - -# Replicas send PINGs to server in a predefined interval. It's possible to -# change this interval with the repl_ping_replica_period option. The default -# value is 10 seconds. -# -# repl-ping-replica-period 10 - -# The following option sets the replication timeout for: -# -# 1) Bulk transfer I/O during SYNC, from the point of view of replica. -# 2) Master timeout from the point of view of replicas (data, pings). -# 3) Replica timeout from the point of view of masters (REPLCONF ACK pings). -# -# It is important to make sure that this value is greater than the value -# specified for repl-ping-replica-period otherwise a timeout will be detected -# every time there is low traffic between the master and the replica. The default -# value is 60 seconds. -# -# repl-timeout 60 - -# Disable TCP_NODELAY on the replica socket after SYNC? -# -# If you select "yes" KeyDB will use a smaller number of TCP packets and -# less bandwidth to send data to replicas. But this can add a delay for -# the data to appear on the replica side, up to 40 milliseconds with -# Linux kernels using a default configuration. -# -# If you select "no" the delay for data to appear on the replica side will -# be reduced but more bandwidth will be used for replication. -# -# By default we optimize for low latency, but in very high traffic conditions -# or when the master and replicas are many hops away, turning this to "yes" may -# be a good idea. -repl-disable-tcp-nodelay no - -# Set the replication backlog size. The backlog is a buffer that accumulates -# replica data when replicas are disconnected for some time, so that when a -# replica wants to reconnect again, often a full resync is not needed, but a -# partial resync is enough, just passing the portion of data the replica -# missed while disconnected. -# -# The bigger the replication backlog, the longer the replica can endure the -# disconnect and later be able to perform a partial resynchronization. -# -# The backlog is only allocated if there is at least one replica connected. -# -# repl-backlog-size 1mb - -# After a master has no connected replicas for some time, the backlog will be -# freed. The following option configures the amount of seconds that need to -# elapse, starting from the time the last replica disconnected, for the backlog -# buffer to be freed. -# -# Note that replicas never free the backlog for timeout, since they may be -# promoted to masters later, and should be able to correctly "partially -# resynchronize" with other replicas: hence they should always accumulate backlog. -# -# A value of 0 means to never release the backlog. -# -# repl-backlog-ttl 3600 - -# The replica priority is an integer number published by KeyDB in the INFO -# output. It is used by KeyDB Sentinel in order to select a replica to promote -# into a master if the master is no longer working correctly. -# -# A replica with a low priority number is considered better for promotion, so -# for instance if there are three replicas with priority 10, 100, 25 Sentinel -# will pick the one with priority 10, that is the lowest. -# -# However a special priority of 0 marks the replica as not able to perform the -# role of master, so a replica with priority of 0 will never be selected by -# KeyDB Sentinel for promotion. -# -# By default the priority is 100. -replica-priority 100 - -# ----------------------------------------------------------------------------- -# By default, KeyDB Sentinel includes all replicas in its reports. A replica -# can be excluded from KeyDB Sentinel's announcements. An unannounced replica -# will be ignored by the 'sentinel replicas ' command and won't be -# exposed to KeyDB Sentinel's clients. -# -# This option does not change the behavior of replica-priority. Even with -# replica-announced set to 'no', the replica can be promoted to master. To -# prevent this behavior, set replica-priority to 0. -# -# replica-announced yes - -# It is possible for a master to stop accepting writes if there are less than -# N replicas connected, having a lag less or equal than M seconds. -# -# The N replicas need to be in "online" state. -# -# The lag in seconds, that must be <= the specified value, is calculated from -# the last ping received from the replica, that is usually sent every second. -# -# This option does not GUARANTEE that N replicas will accept the write, but -# will limit the window of exposure for lost writes in case not enough replicas -# are available, to the specified number of seconds. -# -# For example to require at least 3 replicas with a lag <= 10 seconds use: -# -# min-replicas-to-write 3 -# min-replicas-max-lag 10 -# -# Setting one or the other to 0 disables the feature. -# -# By default min-replicas-to-write is set to 0 (feature disabled) and -# min-replicas-max-lag is set to 10. - -# A KeyDB master is able to list the address and port of the attached -# replicas in different ways. For example the "INFO replication" section -# offers this information, which is used, among other tools, by -# KeyDB Sentinel in order to discover replica instances. -# Another place where this info is available is in the output of the -# "ROLE" command of a master. -# -# The listed IP address and port normally reported by a replica is -# obtained in the following way: -# -# IP: The address is auto detected by checking the peer address -# of the socket used by the replica to connect with the master. -# -# Port: The port is communicated by the replica during the replication -# handshake, and is normally the port that the replica is using to -# listen for connections. -# -# However when port forwarding or Network Address Translation (NAT) is -# used, the replica may actually be reachable via different IP and port -# pairs. The following two options can be used by a replica in order to -# report to its master a specific set of IP and port, so that both INFO -# and ROLE will report those values. -# -# There is no need to use both the options if you need to override just -# the port or the IP address. -# -# replica-announce-ip 5.5.5.5 -# replica-announce-port 1234 - -############################### KEYS TRACKING ################################# - -# KeyDB implements server assisted support for client side caching of values. -# This is implemented using an invalidation table that remembers, using -# 16 millions of slots, what clients may have certain subsets of keys. In turn -# this is used in order to send invalidation messages to clients. Please -# check this page to understand more about the feature: -# -# https://redis.io/topics/client-side-caching -# -# When tracking is enabled for a client, all the read only queries are assumed -# to be cached: this will force KeyDB to store information in the invalidation -# table. When keys are modified, such information is flushed away, and -# invalidation messages are sent to the clients. However if the workload is -# heavily dominated by reads, KeyDB could use more and more memory in order -# to track the keys fetched by many clients. -# -# For this reason it is possible to configure a maximum fill value for the -# invalidation table. By default it is set to 1M of keys, and once this limit -# is reached, KeyDB will start to evict keys in the invalidation table -# even if they were not modified, just to reclaim memory: this will in turn -# force the clients to invalidate the cached values. Basically the table -# maximum size is a trade off between the memory you want to spend server -# side to track information about who cached what, and the ability of clients -# to retain cached objects in memory. -# -# If you set the value to 0, it means there are no limits, and KeyDB will -# retain as many keys as needed in the invalidation table. -# In the "stats" INFO section, you can find information about the number of -# keys in the invalidation table at every given moment. -# -# Note: when key tracking is used in broadcasting mode, no memory is used -# in the server side so this setting is useless. -# -# tracking-table-max-keys 1000000 - -################################## SECURITY ################################### - -# Warning: since KeyDB is pretty fast, an outside user can try up to -# 1 million passwords per second against a modern box. This means that you -# should use very strong passwords, otherwise they will be very easy to break. -# Note that because the password is really a shared secret between the client -# and the server, and should not be memorized by any human, the password -# can be easily a long string from /dev/urandom or whatever, so by using a -# long and unguessable password no brute force attack will be possible. - -# KeyDB ACL users are defined in the following format: -# -# user ... acl rules ... -# -# For example: -# -# user worker +@list +@connection ~jobs:* on >ffa9203c493aa99 -# -# The special username "default" is used for new connections. If this user -# has the "nopass" rule, then new connections will be immediately authenticated -# as the "default" user without the need of any password provided via the -# AUTH command. Otherwise if the "default" user is not flagged with "nopass" -# the connections will start in not authenticated state, and will require -# AUTH (or the HELLO command AUTH option) in order to be authenticated and -# start to work. -# -# The ACL rules that describe what a user can do are the following: -# -# on Enable the user: it is possible to authenticate as this user. -# off Disable the user: it's no longer possible to authenticate -# with this user, however the already authenticated connections -# will still work. -# skip-sanitize-payload RESTORE dump-payload sanitation is skipped. -# sanitize-payload RESTORE dump-payload is sanitized (default). -# + Allow the execution of that command -# - Disallow the execution of that command -# +@ Allow the execution of all the commands in such category -# with valid categories are like @admin, @set, @sortedset, ... -# and so forth, see the full list in the server.cpp file where -# the KeyDB command table is described and defined. -# The special category @all means all the commands, but currently -# present in the server, and that will be loaded in the future -# via modules. -# +|subcommand Allow a specific subcommand of an otherwise -# disabled command. Note that this form is not -# allowed as negative like -DEBUG|SEGFAULT, but -# only additive starting with "+". -# allcommands Alias for +@all. Note that it implies the ability to execute -# all the future commands loaded via the modules system. -# nocommands Alias for -@all. -# ~ Add a pattern of keys that can be mentioned as part of -# commands. For instance ~* allows all the keys. The pattern -# is a glob-style pattern like the one of KEYS. -# It is possible to specify multiple patterns. -# allkeys Alias for ~* -# resetkeys Flush the list of allowed keys patterns. -# & Add a glob-style pattern of Pub/Sub channels that can be -# accessed by the user. It is possible to specify multiple channel -# patterns. -# allchannels Alias for &* -# resetchannels Flush the list of allowed channel patterns. -# > Add this password to the list of valid password for the user. -# For example >mypass will add "mypass" to the list. -# This directive clears the "nopass" flag (see later). -# < Remove this password from the list of valid passwords. -# nopass All the set passwords of the user are removed, and the user -# is flagged as requiring no password: it means that every -# password will work against this user. If this directive is -# used for the default user, every new connection will be -# immediately authenticated with the default user without -# any explicit AUTH command required. Note that the "resetpass" -# directive will clear this condition. -# resetpass Flush the list of allowed passwords. Moreover removes the -# "nopass" status. After "resetpass" the user has no associated -# passwords and there is no way to authenticate without adding -# some password (or setting it as "nopass" later). -# reset Performs the following actions: resetpass, resetkeys, off, -# -@all. The user returns to the same state it has immediately -# after its creation. -# -# ACL rules can be specified in any order: for instance you can start with -# passwords, then flags, or key patterns. However note that the additive -# and subtractive rules will CHANGE MEANING depending on the ordering. -# For instance see the following example: -# -# user alice on +@all -DEBUG ~* >somepassword -# -# This will allow "alice" to use all the commands with the exception of the -# DEBUG command, since +@all added all the commands to the set of the commands -# alice can use, and later DEBUG was removed. However if we invert the order -# of two ACL rules the result will be different: -# -# user alice on -DEBUG +@all ~* >somepassword -# -# Now DEBUG was removed when alice had yet no commands in the set of allowed -# commands, later all the commands are added, so the user will be able to -# execute everything. -# -# Basically ACL rules are processed left-to-right. -# -# The following is a list of command categories and their meanings: -# * keyspace - Writing or reading from keys, databases, or their metadata -# in a type agnostic way. Includes DEL, RESTORE, DUMP, RENAME, EXISTS, DBSIZE, -# KEYS, EXPIRE, TTL, FLUSHALL, etc. Commands that may modify the keyspace, -# key or metadata will also have `write` category. Commands that only read -# the keyspace, key or metadata will have the `read` category. -# * read - Reading from keys (values or metadata). Note that commands that don't -# interact with keys, will not have either `read` or `write`. -# * write - Writing to keys (values or metadata) -# * admin - Administrative commands. Normal applications will never need to use -# these. Includes REPLICAOF, CONFIG, DEBUG, SAVE, MONITOR, ACL, SHUTDOWN, etc. -# * dangerous - Potentially dangerous (each should be considered with care for -# various reasons). This includes FLUSHALL, MIGRATE, RESTORE, SORT, KEYS, -# CLIENT, DEBUG, INFO, CONFIG, SAVE, REPLICAOF, etc. -# * connection - Commands affecting the connection or other connections. -# This includes AUTH, SELECT, COMMAND, CLIENT, ECHO, PING, etc. -# * blocking - Potentially blocking the connection until released by another -# command. -# * fast - Fast O(1) commands. May loop on the number of arguments, but not the -# number of elements in the key. -# * slow - All commands that are not Fast. -# * pubsub - PUBLISH / SUBSCRIBE related -# * transaction - WATCH / MULTI / EXEC related commands. -# * scripting - Scripting related. -# * set - Data type: sets related. -# * sortedset - Data type: zsets related. -# * list - Data type: lists related. -# * hash - Data type: hashes related. -# * string - Data type: strings related. -# * bitmap - Data type: bitmaps related. -# * hyperloglog - Data type: hyperloglog related. -# * geo - Data type: geo related. -# * stream - Data type: streams related. -# -# For more information about ACL configuration please refer to -# the Redis web site at https://redis.io/topics/acl - -# ACL LOG -# -# The ACL Log tracks failed commands and authentication events associated -# with ACLs. The ACL Log is useful to troubleshoot failed commands blocked -# by ACLs. The ACL Log is stored in memory. You can reclaim memory with -# ACL LOG RESET. Define the maximum entry length of the ACL Log below. -acllog-max-len 128 - -# Using an external ACL file -# -# Instead of configuring users here in this file, it is possible to use -# a stand-alone file just listing users. The two methods cannot be mixed: -# if you configure users here and at the same time you activate the external -# ACL file, the server will refuse to start. -# -# The format of the external ACL user file is exactly the same as the -# format that is used inside keydb.conf to describe users. -# -# aclfile /etc/keydb/users.acl - -# IMPORTANT NOTE: starting with KeyDB 6 "requirepass" is just a compatibility -# layer on top of the new ACL system. The option effect will be just setting -# the password for the default user. Clients will still authenticate using -# AUTH as usually, or more explicitly with AUTH default -# if they follow the new protocol: both will work. -# -# The requirepass is not compatible with aclfile option and the ACL LOAD -# command, these will cause requirepass to be ignored. -# -# requirepass foobared - -# New users are initialized with restrictive permissions by default, via the -# equivalent of this ACL rule 'off resetkeys -@all'. Starting with KeyDB 6.2, it -# is possible to manage access to Pub/Sub channels with ACL rules as well. The -# default Pub/Sub channels permission if new users is controlled by the -# acl-pubsub-default configuration directive, which accepts one of these values: -# -# allchannels: grants access to all Pub/Sub channels -# resetchannels: revokes access to all Pub/Sub channels -# -# To ensure backward compatibility while upgrading KeyDB 6.0, acl-pubsub-default -# defaults to the 'allchannels' permission. -# -# Future compatibility note: it is very likely that in a future version of KeyDB -# the directive's default of 'allchannels' will be changed to 'resetchannels' in -# order to provide better out-of-the-box Pub/Sub security. Therefore, it is -# recommended that you explicitly define Pub/Sub permissions for all users -# rather then rely on implicit default values. Once you've set explicit -# Pub/Sub for all existing users, you should uncomment the following line. -# -# acl-pubsub-default resetchannels - -# Command renaming (DEPRECATED). -# -# ------------------------------------------------------------------------ -# WARNING: avoid using this option if possible. Instead use ACLs to remove -# commands from the default user, and put them only in some admin user you -# create for administrative purposes. -# ------------------------------------------------------------------------ -# -# It is possible to change the name of dangerous commands in a shared -# environment. For instance the CONFIG command may be renamed into something -# hard to guess so that it will still be available for internal-use tools -# but not available for general clients. -# -# Example: -# -# rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52 -# -# It is also possible to completely kill a command by renaming it into -# an empty string: -# -# rename-command CONFIG "" -# -# Please note that changing the name of commands that are logged into the -# AOF file or transmitted to replicas may cause problems. - -################################### CLIENTS #################################### - -# Set the max number of connected clients at the same time. By default -# this limit is set to 10000 clients, however if the KeyDB server is not -# able to configure the process file limit to allow for the specified limit -# the max number of allowed clients is set to the current file limit -# minus 32 (as KeyDB reserves a few file descriptors for internal uses). -# -# Once the limit is reached KeyDB will close all the new connections sending -# an error 'max number of clients reached'. -# -# IMPORTANT: When KeyDB Cluster is used, the max number of connections is also -# shared with the cluster bus: every node in the cluster will use two -# connections, one incoming and another outgoing. It is important to size the -# limit accordingly in case of very large clusters. -# -# maxclients 10000 - -############################## MEMORY MANAGEMENT ################################ - -# Set a memory usage limit to the specified amount of bytes. -# When the memory limit is reached KeyDB will try to remove keys -# according to the eviction policy selected (see maxmemory-policy). -# -# If KeyDB can't remove keys according to the policy, or if the policy is -# set to 'noeviction', KeyDB will start to reply with errors to commands -# that would use more memory, like SET, LPUSH, and so on, and will continue -# to reply to read-only commands like GET. -# -# This option is usually useful when using KeyDB as an LRU or LFU cache, or to -# set a hard memory limit for an instance (using the 'noeviction' policy). -# -# WARNING: If you have replicas attached to an instance with maxmemory on, -# the size of the output buffers needed to feed the replicas are subtracted -# from the used memory count, so that network problems / resyncs will -# not trigger a loop where keys are evicted, and in turn the output -# buffer of replicas is full with DELs of keys evicted triggering the deletion -# of more keys, and so forth until the database is completely emptied. -# -# In short... if you have replicas attached it is suggested that you set a lower -# limit for maxmemory so that there is some free RAM on the system for replica -# output buffers (but this is not needed if the policy is 'noeviction'). -# -# maxmemory - -# MAXMEMORY POLICY: how KeyDB will select what to remove when maxmemory -# is reached. You can select one from the following behaviors: -# -# volatile-lru -> Evict using approximated LRU, only keys with an expire set. -# allkeys-lru -> Evict any key using approximated LRU. -# volatile-lfu -> Evict using approximated LFU, only keys with an expire set. -# allkeys-lfu -> Evict any key using approximated LFU. -# volatile-random -> Remove a random key having an expire set. -# allkeys-random -> Remove a random key, any key. -# volatile-ttl -> Remove the key with the nearest expire time (minor TTL) -# noeviction -> Don't evict anything, just return an error on write operations. -# -# LRU means Least Recently Used -# LFU means Least Frequently Used -# -# Both LRU, LFU and volatile-ttl are implemented using approximated -# randomized algorithms. -# -# Note: with any of the above policies, KeyDB will return an error on write -# operations, when there are no suitable keys for eviction. -# -# At the date of writing these commands are: set setnx setex append -# incr decr rpush lpush rpushx lpushx linsert lset rpoplpush sadd -# sinter sinterstore sunion sunionstore sdiff sdiffstore zadd zincrby -# zunionstore zinterstore hset hsetnx hmset hincrby incrby decrby -# getset mset msetnx exec sort -# -# The default is: -# -# maxmemory-policy noeviction - -# LRU, LFU and minimal TTL algorithms are not precise algorithms but approximated -# algorithms (in order to save memory), so you can tune it for speed or -# accuracy. By default KeyDB will check five keys and pick the one that was -# used least recently, you can change the sample size using the following -# configuration directive. -# -# The default of 5 produces good enough results. 10 Approximates very closely -# true LRU but costs more CPU. 3 is faster but not very accurate. -# -# maxmemory-samples 5 - -# Eviction processing is designed to function well with the default setting. -# If there is an unusually large amount of write traffic, this value may need to -# be increased. Decreasing this value may reduce latency at the risk of -# eviction processing effectiveness -# 0 = minimum latency, 10 = default, 100 = process without regard to latency -# -# maxmemory-eviction-tenacity 10 - -# Starting from KeyDB 5, by default a replica will ignore its maxmemory setting -# (unless it is promoted to master after a failover or manually). It means -# that the eviction of keys will be just handled by the master, sending the -# DEL commands to the replica as keys evict in the master side. -# -# This behavior ensures that masters and replicas stay consistent, and is usually -# what you want, however if your replica is writable, or you want the replica -# to have a different memory setting, and you are sure all the writes performed -# to the replica are idempotent, then you may change this default (but be sure -# to understand what you are doing). -# -# Note that since the replica by default does not evict, it may end using more -# memory than the one set via maxmemory (there are certain buffers that may -# be larger on the replica, or data structures may sometimes take more memory -# and so forth). So make sure you monitor your replicas and make sure they -# have enough memory to never hit a real out-of-memory condition before the -# master hits the configured maxmemory setting. -# -# replica-ignore-maxmemory yes - -# KeyDB reclaims expired keys in two ways: upon access when those keys are -# found to be expired, and also in background, in what is called the -# "active expire key". The key space is slowly and interactively scanned -# looking for expired keys to reclaim, so that it is possible to free memory -# of keys that are expired and will never be accessed again in a short time. -# -# The default effort of the expire cycle will try to avoid having more than -# ten percent of expired keys still in memory, and will try to avoid consuming -# more than 25% of total memory and to add latency to the system. However -# it is possible to increase the expire "effort" that is normally set to -# "1", to a greater value, up to the value "10". At its maximum value the -# system will use more CPU, longer cycles (and technically may introduce -# more latency), and will tolerate less already expired keys still present -# in the system. It's a tradeoff between memory, CPU and latency. -# -# active-expire-effort 1 - -# Force evictions when used system memory reaches X% of total system memory. -# This is useful as a safeguard to prevent OOM kills (0 to disable). -# -# force-eviction-percent 0 - -############################# LAZY FREEING #################################### - -# KeyDB has two primitives to delete keys. One is called DEL and is a blocking -# deletion of the object. It means that the server stops processing new commands -# in order to reclaim all the memory associated with an object in a synchronous -# way. If the key deleted is associated with a small object, the time needed -# in order to execute the DEL command is very small and comparable to most other -# O(1) or O(log_N) commands in KeyDB. However if the key is associated with an -# aggregated value containing millions of elements, the server can block for -# a long time (even seconds) in order to complete the operation. -# -# For the above reasons KeyDB also offers non blocking deletion primitives -# such as UNLINK (non blocking DEL) and the ASYNC option of FLUSHALL and -# FLUSHDB commands, in order to reclaim memory in background. Those commands -# are executed in constant time. Another thread will incrementally free the -# object in the background as fast as possible. -# -# DEL, UNLINK and ASYNC option of FLUSHALL and FLUSHDB are user-controlled. -# It's up to the design of the application to understand when it is a good -# idea to use one or the other. However the KeyDB server sometimes has to -# delete keys or flush the whole database as a side effect of other operations. -# Specifically KeyDB deletes objects independently of a user call in the -# following scenarios: -# -# 1) On eviction, because of the maxmemory and maxmemory policy configurations, -# in order to make room for new data, without going over the specified -# memory limit. -# 2) Because of expire: when a key with an associated time to live (see the -# EXPIRE command) must be deleted from memory. -# 3) Because of a side effect of a command that stores data on a key that may -# already exist. For example the RENAME command may delete the old key -# content when it is replaced with another one. Similarly SUNIONSTORE -# or SORT with STORE option may delete existing keys. The SET command -# itself removes any old content of the specified key in order to replace -# it with the specified string. -# 4) During replication, when a replica performs a full resynchronization with -# its master, the content of the whole database is removed in order to -# load the RDB file just transferred. -# -# In all the above cases the default is to delete objects in a blocking way, -# like if DEL was called. However you can configure each case specifically -# in order to instead release memory in a non-blocking way like if UNLINK -# was called, using the following configuration directives. - -lazyfree-lazy-eviction no -lazyfree-lazy-expire no -lazyfree-lazy-server-del no -replica-lazy-flush no - -# It is also possible, for the case when to replace the user code DEL calls -# with UNLINK calls is not easy, to modify the default behavior of the DEL -# command to act exactly like UNLINK, using the following configuration -# directive: - -lazyfree-lazy-user-del no - -# FLUSHDB, FLUSHALL, and SCRIPT FLUSH support both asynchronous and synchronous -# deletion, which can be controlled by passing the [SYNC|ASYNC] flags into the -# commands. When neither flag is passed, this directive will be used to determine -# if the data should be deleted asynchronously. - -lazyfree-lazy-user-flush no - -############################ KERNEL OOM CONTROL ############################## - -# On Linux, it is possible to hint the kernel OOM killer on what processes -# should be killed first when out of memory. -# -# Enabling this feature makes KeyDB actively control the oom_score_adj value -# for all its processes, depending on their role. The default scores will -# attempt to have background child processes killed before all others, and -# replicas killed before masters. -# -# KeyDB supports three options: -# -# no: Don't make changes to oom-score-adj (default). -# yes: Alias to "relative" see below. -# absolute: Values in oom-score-adj-values are written as is to the kernel. -# relative: Values are used relative to the initial value of oom_score_adj when -# the server starts and are then clamped to a range of -1000 to 1000. -# Because typically the initial value is 0, they will often match the -# absolute values. -oom-score-adj no - -# When oom-score-adj is used, this directive controls the specific values used -# for master, replica and background child processes. Values range -2000 to -# 2000 (higher means more likely to be killed). -# -# Unprivileged processes (not root, and without CAP_SYS_RESOURCE capabilities) -# can freely increase their value, but not decrease it below its initial -# settings. This means that setting oom-score-adj to "relative" and setting the -# oom-score-adj-values to positive values will always succeed. -oom-score-adj-values 0 200 800 - - -#################### KERNEL transparent hugepage CONTROL ###################### - -# Usually the kernel Transparent Huge Pages control is set to "madvise" or -# or "never" by default (/sys/kernel/mm/transparent_hugepage/enabled), in which -# case this config has no effect. On systems in which it is set to "always", -# KeyDB will attempt to disable it specifically for the KeyDB process in order -# to avoid latency problems specifically with fork(2) and CoW. -# If for some reason you prefer to keep it enabled, you can set this config to -# "no" and the kernel global to "always". - -disable-thp yes - -############################## APPEND ONLY MODE ############################### - -# By default KeyDB asynchronously dumps the dataset on disk. This mode is -# good enough in many applications, but an issue with the KeyDB process or -# a power outage may result into a few minutes of writes lost (depending on -# the configured save points). -# -# The Append Only File is an alternative persistence mode that provides -# much better durability. For instance using the default data fsync policy -# (see later in the config file) KeyDB can lose just one second of writes in a -# dramatic event like a server power outage, or a single write if something -# wrong with the KeyDB process itself happens, but the operating system is -# still running correctly. -# -# AOF and RDB persistence can be enabled at the same time without problems. -# If the AOF is enabled on startup KeyDB will load the AOF, that is the file -# with the better durability guarantees. -# -# Please check http://redis.io/topics/persistence for more information. - -appendonly no - -# The name of the append only file (default: "appendonly.aof") - -appendfilename "appendonly.aof" - -# The fsync() call tells the Operating System to actually write data on disk -# instead of waiting for more data in the output buffer. Some OS will really flush -# data on disk, some other OS will just try to do it ASAP. -# -# KeyDB supports three different modes: -# -# no: don't fsync, just let the OS flush the data when it wants. Faster. -# always: fsync after every write to the append only log. Slow, Safest. -# everysec: fsync only one time every second. Compromise. -# -# The default is "everysec", as that's usually the right compromise between -# speed and data safety. It's up to you to understand if you can relax this to -# "no" that will let the operating system flush the output buffer when -# it wants, for better performances (but if you can live with the idea of -# some data loss consider the default persistence mode that's snapshotting), -# or on the contrary, use "always" that's very slow but a bit safer than -# everysec. -# -# More details please check the following article: -# http://antirez.com/post/redis-persistence-demystified.html -# -# If unsure, use "everysec". - -# appendfsync always -appendfsync everysec -# appendfsync no - -# When the AOF fsync policy is set to always or everysec, and a background -# saving process (a background save or AOF log background rewriting) is -# performing a lot of I/O against the disk, in some Linux configurations -# KeyDB may block too long on the fsync() call. Note that there is no fix for -# this currently, as even performing fsync in a different thread will block -# our synchronous write(2) call. -# -# In order to mitigate this problem it's possible to use the following option -# that will prevent fsync() from being called in the main process while a -# BGSAVE or BGREWRITEAOF is in progress. -# -# This means that while another child is saving, the durability of KeyDB is -# the same as "appendfsync none". In practical terms, this means that it is -# possible to lose up to 30 seconds of log in the worst scenario (with the -# default Linux settings). -# -# If you have latency problems turn this to "yes". Otherwise leave it as -# "no" that is the safest pick from the point of view of durability. - -no-appendfsync-on-rewrite no - -# Automatic rewrite of the append only file. -# KeyDB is able to automatically rewrite the log file implicitly calling -# BGREWRITEAOF when the AOF log size grows by the specified percentage. -# -# This is how it works: KeyDB remembers the size of the AOF file after the -# latest rewrite (if no rewrite has happened since the restart, the size of -# the AOF at startup is used). -# -# This base size is compared to the current size. If the current size is -# bigger than the specified percentage, the rewrite is triggered. Also -# you need to specify a minimal size for the AOF file to be rewritten, this -# is useful to avoid rewriting the AOF file even if the percentage increase -# is reached but it is still pretty small. -# -# Specify a percentage of zero in order to disable the automatic AOF -# rewrite feature. - -auto-aof-rewrite-percentage 100 -auto-aof-rewrite-min-size 64mb - -# An AOF file may be found to be truncated at the end during the KeyDB -# startup process, when the AOF data gets loaded back into memory. -# This may happen when the system where KeyDB is running -# crashes, especially when an ext4 filesystem is mounted without the -# data=ordered option (however this can't happen when KeyDB itself -# crashes or aborts but the operating system still works correctly). -# -# KeyDB can either exit with an error when this happens, or load as much -# data as possible (the default now) and start if the AOF file is found -# to be truncated at the end. The following option controls this behavior. -# -# If aof-load-truncated is set to yes, a truncated AOF file is loaded and -# the KeyDB server starts emitting a log to inform the user of the event. -# Otherwise if the option is set to no, the server aborts with an error -# and refuses to start. When the option is set to no, the user requires -# to fix the AOF file using the "keydb-check-aof" utility before to restart -# the server. -# -# Note that if the AOF file will be found to be corrupted in the middle -# the server will still exit with an error. This option only applies when -# KeyDB will try to read more data from the AOF file but not enough bytes -# will be found. -aof-load-truncated yes - -# When rewriting the AOF file, KeyDB is able to use an RDB preamble in the -# AOF file for faster rewrites and recoveries. When this option is turned -# on the rewritten AOF file is composed of two different stanzas: -# -# [RDB file][AOF tail] -# -# When loading, KeyDB recognizes that the AOF file starts with the "REDIS" -# string and loads the prefixed RDB file, then continues loading the AOF -# tail. -aof-use-rdb-preamble yes - -################################ LUA SCRIPTING ############################### - -# Max execution time of a Lua script in milliseconds. -# -# If the maximum execution time is reached KeyDB will log that a script is -# still in execution after the maximum allowed time and will start to -# reply to queries with an error. -# -# When a long running script exceeds the maximum execution time only the -# SCRIPT KILL and SHUTDOWN NOSAVE commands are available. The first can be -# used to stop a script that did not yet call any write commands. The second -# is the only way to shut down the server in the case a write command was -# already issued by the script but the user doesn't want to wait for the natural -# termination of the script. -# -# Set it to 0 or a negative value for unlimited execution without warnings. -lua-time-limit 5000 - -################################ KEYDB CLUSTER ############################### - -# Normal KeyDB instances can't be part of a KeyDB Cluster; only nodes that are -# started as cluster nodes can. In order to start a KeyDB instance as a -# cluster node enable the cluster support uncommenting the following: -# -# cluster-enabled yes - -# Every cluster node has a cluster configuration file. This file is not -# intended to be edited by hand. It is created and updated by KeyDB nodes. -# Every KeyDB Cluster node requires a different cluster configuration file. -# Make sure that instances running in the same system do not have -# overlapping cluster configuration file names. -# -# cluster-config-file nodes-6379.conf - -# Cluster node timeout is the amount of milliseconds a node must be unreachable -# for it to be considered in failure state. -# Most other internal time limits are a multiple of the node timeout. -# -# cluster-node-timeout 15000 - -# A replica of a failing master will avoid to start a failover if its data -# looks too old. -# -# There is no simple way for a replica to actually have an exact measure of -# its "data age", so the following two checks are performed: -# -# 1) If there are multiple replicas able to failover, they exchange messages -# in order to try to give an advantage to the replica with the best -# replication offset (more data from the master processed). -# Replicas will try to get their rank by offset, and apply to the start -# of the failover a delay proportional to their rank. -# -# 2) Every single replica computes the time of the last interaction with -# its master. This can be the last ping or command received (if the master -# is still in the "connected" state), or the time that elapsed since the -# disconnection with the master (if the replication link is currently down). -# If the last interaction is too old, the replica will not try to failover -# at all. -# -# The point "2" can be tuned by user. Specifically a replica will not perform -# the failover if, since the last interaction with the master, the time -# elapsed is greater than: -# -# (node-timeout * cluster-replica-validity-factor) + repl-ping-replica-period -# -# So for example if node-timeout is 30 seconds, and the cluster-replica-validity-factor -# is 10, and assuming a default repl-ping-replica-period of 10 seconds, the -# replica will not try to failover if it was not able to talk with the master -# for longer than 310 seconds. -# -# A large cluster-replica-validity-factor may allow replicas with too old data to failover -# a master, while a too small value may prevent the cluster from being able to -# elect a replica at all. -# -# For maximum availability, it is possible to set the cluster-replica-validity-factor -# to a value of 0, which means, that replicas will always try to failover the -# master regardless of the last time they interacted with the master. -# (However they'll always try to apply a delay proportional to their -# offset rank). -# -# Zero is the only value able to guarantee that when all the partitions heal -# the cluster will always be able to continue. -# -# cluster-replica-validity-factor 10 - -# Cluster replicas are able to migrate to orphaned masters, that are masters -# that are left without working replicas. This improves the cluster ability -# to resist to failures as otherwise an orphaned master can't be failed over -# in case of failure if it has no working replicas. -# -# Replicas migrate to orphaned masters only if there are still at least a -# given number of other working replicas for their old master. This number -# is the "migration barrier". A migration barrier of 1 means that a replica -# will migrate only if there is at least 1 other working replica for its master -# and so forth. It usually reflects the number of replicas you want for every -# master in your cluster. -# -# Default is 1 (replicas migrate only if their masters remain with at least -# one replica). To disable migration just set it to a very large value or -# set cluster-allow-replica-migration to 'no'. -# A value of 0 can be set but is useful only for debugging and dangerous -# in production. -# -# cluster-migration-barrier 1 - -# Turning off this option allows to use less automatic cluster configuration. -# It both disables migration to orphaned masters and migration from masters -# that became empty. -# -# Default is 'yes' (allow automatic migrations). -# -# cluster-allow-replica-migration yes - -# By default KeyDB Cluster nodes stop accepting queries if they detect there -# is at least a hash slot uncovered (no available node is serving it). -# This way if the cluster is partially down (for example a range of hash slots -# are no longer covered) all the cluster becomes, eventually, unavailable. -# It automatically returns available as soon as all the slots are covered again. -# -# However sometimes you want the subset of the cluster which is working, -# to continue to accept queries for the part of the key space that is still -# covered. In order to do so, just set the cluster-require-full-coverage -# option to no. -# -# cluster-require-full-coverage yes - -# This option, when set to yes, prevents replicas from trying to failover its -# master during master failures. However the master can still perform a -# manual failover, if forced to do so. -# -# This is useful in different scenarios, especially in the case of multiple -# data center operations, where we want one side to never be promoted if not -# in the case of a total DC failure. -# -# cluster-replica-no-failover no - -# This option, when set to yes, allows nodes to serve read traffic while the -# the cluster is in a down state, as long as it believes it owns the slots. -# -# This is useful for two cases. The first case is for when an application -# doesn't require consistency of data during node failures or network partitions. -# One example of this is a cache, where as long as the node has the data it -# should be able to serve it. -# -# The second use case is for configurations that don't meet the recommended -# three shards but want to enable cluster mode and scale later. A -# master outage in a 1 or 2 shard configuration causes a read/write outage to the -# entire cluster without this option set, with it set there is only a write outage. -# Without a quorum of masters, slot ownership will not change automatically. -# -# cluster-allow-reads-when-down no - -# In order to setup your cluster make sure to read the documentation -# available at http://redis.io web site. - -########################## CLUSTER DOCKER/NAT support ######################## - -# In certain deployments, KeyDB Cluster nodes address discovery fails, because -# addresses are NAT-ted or because ports are forwarded (the typical case is -# Docker and other containers). -# -# In order to make KeyDB Cluster working in such environments, a static -# configuration where each node knows its public address is needed. The -# following four options are used for this scope, and are: -# -# * cluster-announce-ip -# * cluster-announce-port -# * cluster-announce-tls-port -# * cluster-announce-bus-port -# -# Each instructs the node about its address, client ports (for connections -# without and with TLS), and cluster message -# bus port. The information is then published in the header of the bus packets -# so that other nodes will be able to correctly map the address of the node -# publishing the information. -# -# If cluster-tls is set to yes and cluster-announce-tls-port is omitted or set -# to zero, then cluster-announce-port refers to the TLS port. Note also that -# cluster-announce-tls-port has no effect if cluster-tls is set to no. -# -# If the above options are not used, the normal KeyDB Cluster auto-detection -# will be used instead. -# -# Note that when remapped, the bus port may not be at the fixed offset of -# clients port + 10000, so you can specify any port and bus-port depending -# on how they get remapped. If the bus-port is not set, a fixed offset of -# 10000 will be used as usual. -# -# Example: -# -# cluster-announce-ip 10.1.1.5 -# cluster-announce-tls-port 6379 -# cluster-announce-port 0 -# cluster-announce-bus-port 6380 - -################################## SLOW LOG ################################### - -# The KeyDB Slow Log is a system to log queries that exceeded a specified -# execution time. The execution time does not include the I/O operations -# like talking with the client, sending the reply and so forth, -# but just the time needed to actually execute the command (this is the only -# stage of command execution where the thread is blocked and can not serve -# other requests in the meantime). -# -# You can configure the slow log with two parameters: one tells KeyDB -# what is the execution time, in microseconds, to exceed in order for the -# command to get logged, and the other parameter is the length of the -# slow log. When a new command is logged the oldest one is removed from the -# queue of logged commands. - -# The following time is expressed in microseconds, so 1000000 is equivalent -# to one second. Note that a negative number disables the slow log, while -# a value of zero forces the logging of every command. -slowlog-log-slower-than 10000 - -# There is no limit to this length. Just be aware that it will consume memory. -# You can reclaim memory used by the slow log with SLOWLOG RESET. -slowlog-max-len 128 - -################################ LATENCY MONITOR ############################## - -# The KeyDB latency monitoring subsystem samples different operations -# at runtime in order to collect data related to possible sources of -# latency of a KeyDB instance. -# -# Via the LATENCY command this information is available to the user that can -# print graphs and obtain reports. -# -# The system only logs operations that were performed in a time equal or -# greater than the amount of milliseconds specified via the -# latency-monitor-threshold configuration directive. When its value is set -# to zero, the latency monitor is turned off. -# -# By default latency monitoring is disabled since it is mostly not needed -# if you don't have latency issues, and collecting data has a performance -# impact, that while very small, can be measured under big load. Latency -# monitoring can easily be enabled at runtime using the command -# "CONFIG SET latency-monitor-threshold " if needed. -latency-monitor-threshold 0 - -############################# EVENT NOTIFICATION ############################## - -# KeyDB can notify Pub/Sub clients about events happening in the key space. -# This feature is documented at http://redis.io/topics/notifications -# -# For instance if keyspace events notification is enabled, and a client -# performs a DEL operation on key "foo" stored in the Database 0, two -# messages will be published via Pub/Sub: -# -# PUBLISH __keyspace@0__:foo del -# PUBLISH __keyevent@0__:del foo -# -# It is possible to select the events that KeyDB will notify among a set -# of classes. Every class is identified by a single character: -# -# K Keyspace events, published with __keyspace@__ prefix. -# E Keyevent events, published with __keyevent@__ prefix. -# g Generic commands (non-type specific) like DEL, EXPIRE, RENAME, ... -# $ String commands -# l List commands -# s Set commands -# h Hash commands -# z Sorted set commands -# x Expired events (events generated every time a key expires) -# e Evicted events (events generated when a key is evicted for maxmemory) -# t Stream commands -# d Module key type events -# m Key-miss events (Note: It is not included in the 'A' class) -# A Alias for g$lshzxetd, so that the "AKE" string means all the events -# (Except key-miss events which are excluded from 'A' due to their -# unique nature). -# -# The "notify-keyspace-events" takes as argument a string that is composed -# of zero or multiple characters. The empty string means that notifications -# are disabled. -# -# Example: to enable list and generic events, from the point of view of the -# event name, use: -# -# notify-keyspace-events Elg -# -# Example 2: to get the stream of the expired keys subscribing to channel -# name __keyevent@0__:expired use: -# -# notify-keyspace-events Ex -# -# By default all notifications are disabled because most users don't need -# this feature and the feature has some overhead. Note that if you don't -# specify at least one of K or E, no events will be delivered. -notify-keyspace-events "" - -############################### ADVANCED CONFIG ############################### - -# Hashes are encoded using a memory efficient data structure when they have a -# small number of entries, and the biggest entry does not exceed a given -# threshold. These thresholds can be configured using the following directives. -hash-max-ziplist-entries 512 -hash-max-ziplist-value 64 - -# Lists are also encoded in a special way to save a lot of space. -# The number of entries allowed per internal list node can be specified -# as a fixed maximum size or a maximum number of elements. -# For a fixed maximum size, use -5 through -1, meaning: -# -5: max size: 64 Kb <-- not recommended for normal workloads -# -4: max size: 32 Kb <-- not recommended -# -3: max size: 16 Kb <-- probably not recommended -# -2: max size: 8 Kb <-- good -# -1: max size: 4 Kb <-- good -# Positive numbers mean store up to _exactly_ that number of elements -# per list node. -# The highest performing option is usually -2 (8 Kb size) or -1 (4 Kb size), -# but if your use case is unique, adjust the settings as necessary. -list-max-ziplist-size -2 - -# Lists may also be compressed. -# Compress depth is the number of quicklist ziplist nodes from *each* side of -# the list to *exclude* from compression. The head and tail of the list -# are always uncompressed for fast push/pop operations. Settings are: -# 0: disable all list compression -# 1: depth 1 means "don't start compressing until after 1 node into the list, -# going from either the head or tail" -# So: [head]->node->node->...->node->[tail] -# [head], [tail] will always be uncompressed; inner nodes will compress. -# 2: [head]->[next]->node->node->...->node->[prev]->[tail] -# 2 here means: don't compress head or head->next or tail->prev or tail, -# but compress all nodes between them. -# 3: [head]->[next]->[next]->node->node->...->node->[prev]->[prev]->[tail] -# etc. -list-compress-depth 0 - -# Sets have a special encoding in just one case: when a set is composed -# of just strings that happen to be integers in radix 10 in the range -# of 64 bit signed integers. -# The following configuration setting sets the limit in the size of the -# set in order to use this special memory saving encoding. -set-max-intset-entries 512 - -# Similarly to hashes and lists, sorted sets are also specially encoded in -# order to save a lot of space. This encoding is only used when the length and -# elements of a sorted set are below the following limits: -zset-max-ziplist-entries 128 -zset-max-ziplist-value 64 - -# HyperLogLog sparse representation bytes limit. The limit includes the -# 16 bytes header. When an HyperLogLog using the sparse representation crosses -# this limit, it is converted into the dense representation. -# -# A value greater than 16000 is totally useless, since at that point the -# dense representation is more memory efficient. -# -# The suggested value is ~ 3000 in order to have the benefits of -# the space efficient encoding without slowing down too much PFADD, -# which is O(N) with the sparse encoding. The value can be raised to -# ~ 10000 when CPU is not a concern, but space is, and the data set is -# composed of many HyperLogLogs with cardinality in the 0 - 15000 range. -hll-sparse-max-bytes 3000 - -# Streams macro node max size / items. The stream data structure is a radix -# tree of big nodes that encode multiple items inside. Using this configuration -# it is possible to configure how big a single node can be in bytes, and the -# maximum number of items it may contain before switching to a new node when -# appending new stream entries. If any of the following settings are set to -# zero, the limit is ignored, so for instance it is possible to set just a -# max entires limit by setting max-bytes to 0 and max-entries to the desired -# value. -stream-node-max-bytes 4096 -stream-node-max-entries 100 - -# Active rehashing uses 1 millisecond every 100 milliseconds of CPU time in -# order to help rehashing the main KeyDB hash table (the one mapping top-level -# keys to values). The hash table implementation KeyDB uses (see dict.c) -# performs a lazy rehashing: the more operation you run into a hash table -# that is rehashing, the more rehashing "steps" are performed, so if the -# server is idle the rehashing is never complete and some more memory is used -# by the hash table. -# -# The default is to use this millisecond 10 times every second in order to -# actively rehash the main dictionaries, freeing memory when possible. -# -# If unsure: -# use "activerehashing no" if you have hard latency requirements and it is -# not a good thing in your environment that KeyDB can reply from time to time -# to queries with 2 milliseconds delay. -# -# use "activerehashing yes" if you don't have such hard requirements but -# want to free memory asap when possible. -activerehashing yes - -# The client output buffer limits can be used to force disconnection of clients -# that are not reading data from the server fast enough for some reason (a -# common reason is that a Pub/Sub client can't consume messages as fast as the -# publisher can produce them). -# -# The limit can be set differently for the three different classes of clients: -# -# normal -> normal clients including MONITOR clients -# replica -> replica clients -# pubsub -> clients subscribed to at least one pubsub channel or pattern -# -# The syntax of every client-output-buffer-limit directive is the following: -# -# client-output-buffer-limit -# -# A client is immediately disconnected once the hard limit is reached, or if -# the soft limit is reached and remains reached for the specified number of -# seconds (continuously). -# So for instance if the hard limit is 32 megabytes and the soft limit is -# 16 megabytes / 10 seconds, the client will get disconnected immediately -# if the size of the output buffers reach 32 megabytes, but will also get -# disconnected if the client reaches 16 megabytes and continuously overcomes -# the limit for 10 seconds. -# -# By default normal clients are not limited because they don't receive data -# without asking (in a push way), but just after a request, so only -# asynchronous clients may create a scenario where data is requested faster -# than it can read. -# -# Instead there is a default limit for pubsub and replica clients, since -# subscribers and replicas receive data in a push fashion. -# -# Both the hard or the soft limit can be disabled by setting them to zero. -client-output-buffer-limit normal 0 0 0 -client-output-buffer-limit replica 256mb 64mb 60 -client-output-buffer-limit pubsub 32mb 8mb 60 - -# Client query buffers accumulate new commands. They are limited to a fixed -# amount by default in order to avoid that a protocol desynchronization (for -# instance due to a bug in the client) will lead to unbound memory usage in -# the query buffer. However you can configure it here if you have very special -# needs, such us huge multi/exec requests or alike. -# -# client-query-buffer-limit 1gb - -# In the KeyDB protocol, bulk requests, that are, elements representing single -# strings, are normally limited to 512 mb. However you can change this limit -# here, but must be 1mb or greater -# -# proto-max-bulk-len 512mb - -# KeyDB calls an internal function to perform many background tasks, like -# closing connections of clients in timeout, purging expired keys that are -# never requested, and so forth. -# -# Not all tasks are performed with the same frequency, but KeyDB checks for -# tasks to perform according to the specified "hz" value. -# -# By default "hz" is set to 10. Raising the value will use more CPU when -# KeyDB is idle, but at the same time will make KeyDB more responsive when -# there are many keys expiring at the same time, and timeouts may be -# handled with more precision. -# -# The range is between 1 and 500, however a value over 100 is usually not -# a good idea. Most users should use the default of 10 and raise this up to -# 100 only in environments where very low latency is required. -hz 10 - -# Normally it is useful to have an HZ value which is proportional to the -# number of clients connected. This is useful in order, for instance, to -# avoid too many clients are processed for each background task invocation -# in order to avoid latency spikes. -# -# Since the default HZ value by default is conservatively set to 10, KeyDB -# offers, and enables by default, the ability to use an adaptive HZ value -# which will temporarily raise when there are many connected clients. -# -# When dynamic HZ is enabled, the actual configured HZ will be used -# as a baseline, but multiples of the configured HZ value will be actually -# used as needed once more clients are connected. In this way an idle -# instance will use very little CPU time while a busy instance will be -# more responsive. -dynamic-hz yes - -# When a child rewrites the AOF file, if the following option is enabled -# the file will be fsync-ed every 32 MB of data generated. This is useful -# in order to commit the file to the disk more incrementally and avoid -# big latency spikes. -aof-rewrite-incremental-fsync yes - -# When KeyDB saves RDB file, if the following option is enabled -# the file will be fsync-ed every 32 MB of data generated. This is useful -# in order to commit the file to the disk more incrementally and avoid -# big latency spikes. -rdb-save-incremental-fsync yes - -# KeyDB LFU eviction (see maxmemory setting) can be tuned. However it is a good -# idea to start with the default settings and only change them after investigating -# how to improve the performances and how the keys LFU change over time, which -# is possible to inspect via the OBJECT FREQ command. -# -# There are two tunable parameters in the KeyDB LFU implementation: the -# counter logarithm factor and the counter decay time. It is important to -# understand what the two parameters mean before changing them. -# -# The LFU counter is just 8 bits per key, it's maximum value is 255, so KeyDB -# uses a probabilistic increment with logarithmic behavior. Given the value -# of the old counter, when a key is accessed, the counter is incremented in -# this way: -# -# 1. A random number R between 0 and 1 is extracted. -# 2. A probability P is calculated as 1/(old_value*lfu_log_factor+1). -# 3. The counter is incremented only if R < P. -# -# The default lfu-log-factor is 10. This is a table of how the frequency -# counter changes with a different number of accesses with different -# logarithmic factors: -# -# +--------+------------+------------+------------+------------+------------+ -# | factor | 100 hits | 1000 hits | 100K hits | 1M hits | 10M hits | -# +--------+------------+------------+------------+------------+------------+ -# | 0 | 104 | 255 | 255 | 255 | 255 | -# +--------+------------+------------+------------+------------+------------+ -# | 1 | 18 | 49 | 255 | 255 | 255 | -# +--------+------------+------------+------------+------------+------------+ -# | 10 | 10 | 18 | 142 | 255 | 255 | -# +--------+------------+------------+------------+------------+------------+ -# | 100 | 8 | 11 | 49 | 143 | 255 | -# +--------+------------+------------+------------+------------+------------+ -# -# NOTE: The above table was obtained by running the following commands: -# -# keydb-benchmark -n 1000000 incr foo -# keydb-cli object freq foo -# -# NOTE 2: The counter initial value is 5 in order to give new objects a chance -# to accumulate hits. -# -# The counter decay time is the time, in minutes, that must elapse in order -# for the key counter to be divided by two (or decremented if it has a value -# less <= 10). -# -# The default value for the lfu-decay-time is 1. A special value of 0 means to -# decay the counter every time it happens to be scanned. -# -# lfu-log-factor 10 -# lfu-decay-time 1 - -########################### ACTIVE DEFRAGMENTATION ####################### -# -# What is active defragmentation? -# ------------------------------- -# -# Active (online) defragmentation allows a KeyDB server to compact the -# spaces left between small allocations and deallocations of data in memory, -# thus allowing to reclaim back memory. -# -# Fragmentation is a natural process that happens with every allocator (but -# less so with Jemalloc, fortunately) and certain workloads. Normally a server -# restart is needed in order to lower the fragmentation, or at least to flush -# away all the data and create it again. However thanks to this feature -# implemented by Oran Agra for Redis 4.0 this process can happen at runtime -# in a "hot" way, while the server is running. -# -# Basically when the fragmentation is over a certain level (see the -# configuration options below) KeyDB will start to create new copies of the -# values in contiguous memory regions by exploiting certain specific Jemalloc -# features (in order to understand if an allocation is causing fragmentation -# and to allocate it in a better place), and at the same time, will release the -# old copies of the data. This process, repeated incrementally for all the keys -# will cause the fragmentation to drop back to normal values. -# -# Important things to understand: -# -# 1. This feature is disabled by default, and only works if you compiled KeyDB -# to use the copy of Jemalloc we ship with the source code of KeyDB. -# This is the default with Linux builds. -# -# 2. You never need to enable this feature if you don't have fragmentation -# issues. -# -# 3. Once you experience fragmentation, you can enable this feature when -# needed with the command "CONFIG SET activedefrag yes". -# -# The configuration parameters are able to fine tune the behavior of the -# defragmentation process. If you are not sure about what they mean it is -# a good idea to leave the defaults untouched. - -# Enabled active defragmentation -# activedefrag no - -# Minimum amount of fragmentation waste to start active defrag -# active-defrag-ignore-bytes 100mb - -# Minimum percentage of fragmentation to start active defrag -# active-defrag-threshold-lower 10 - -# Maximum percentage of fragmentation at which we use maximum effort -# active-defrag-threshold-upper 100 - -# Minimal effort for defrag in CPU percentage, to be used when the lower -# threshold is reached -# active-defrag-cycle-min 1 - -# Maximal effort for defrag in CPU percentage, to be used when the upper -# threshold is reached -# active-defrag-cycle-max 25 - -# Maximum number of set/hash/zset/list fields that will be processed from -# the main dictionary scan -# active-defrag-max-scan-fields 1000 - -# Jemalloc background thread for purging will be enabled by default -jemalloc-bg-thread yes - -# It is possible to pin different threads and processes of KeyDB to specific -# CPUs in your system, in order to maximize the performances of the server. -# This is useful both in order to pin different KeyDB threads in different -# CPUs, but also in order to make sure that multiple KeyDB instances running -# in the same host will be pinned to different CPUs. -# -# Normally you can do this using the "taskset" command, however it is also -# possible to this via KeyDB configuration directly, both in Linux and FreeBSD. -# -# You can pin the server/IO threads, bio threads, aof rewrite child process, and -# the bgsave child process. The syntax to specify the cpu list is the same as -# the taskset command: -# -# Set redis server/io threads to cpu affinity 0,2,4,6: -# server_cpulist 0-7:2 -# -# Set bio threads to cpu affinity 1,3: -# bio_cpulist 1,3 -# -# Set aof rewrite child process to cpu affinity 8,9,10,11: -# aof_rewrite_cpulist 8-11 -# -# Set bgsave child process to cpu affinity 1,10,11 -# bgsave_cpulist 1,10-11 - -# In some cases KeyDB will emit warnings and even refuse to start if it detects -# that the system is in bad state, it is possible to suppress these warnings -# by setting the following config which takes a space delimited list of warnings -# to suppress -# -# ignore-warnings ARM64-COW-BUG - -# The minimum number of clients on a thread before KeyDB assigns new connections to a different thread -# Tuning this parameter is a tradeoff between locking overhead and distributing the workload over multiple cores -# min-clients-per-thread 50 - -# How often to run RDB load progress callback? -# The callback runs during key load to ping other servers and prevent timeouts. -# It also updates load time estimates. -# Change these values to run it more or less often. It will run when either condition is true. -# Either when x bytes have been processed, or when x keys have been loaded. -# loading-process-events-interval-bytes 2097152 -# loading-process-events-interval-keys 8192 - -# Avoid forwarding RREPLAY messages to other masters? -# WARNING: This setting is dangerous! You must be certain all masters are connected to each -# other in a true mesh topology or data loss will occur! -# This command can be used to reduce multimaster bus traffic -# multi-master-no-forward no - -# Path to directory for file backed scratchpad. The file backed scratchpad -# reduces memory requirements by storing rarely accessed data on disk -# instead of RAM. A temporary file will be created in this directory. -# scratch-file-path /tmp/ - -# Number of worker threads serving requests. This number should be related to the performance -# of your network hardware, not the number of cores on your machine. We don't recommend going -# above 4 at this time. By default this is set 1. -# -# Note: KeyDB does not use io-threads, but io-threads is a config alias for server-threads -server-threads 2 - -# Should KeyDB pin threads to CPUs? By default this is disabled, and KeyDB will not bind threads. -# When enabled threads are bount to cores sequentially starting at core 0. -# server-thread-affinity true - -# Uncomment the option below to enable Active Active support. Note that -# replicas will still sync in the normal way and incorrect ordering when -# bringing up replicas can result in data loss (the first master will win). -# active-replica yes - -# KeyDB will attempt to balance clients across threads evenly; However, replica clients -# are usually much more expensive than a normal client, and so KeyDB will try to assign -# fewer clients to threads with a replica. The weighting factor below is intented to help tune -# this behavior. A replica weighting factor of 2 means we treat a replica as the equivalent -# of two normal clients. Adjusting this value may improve performance when replication is -# used. The best weighting is workload specific - e.g. read heavy workloads should set -# this to 1. Very write heavy workloads may benefit from higher numbers. -# -# By default KeyDB sets this to 2. -replica-weighting-factor 2 - -# Should KeyDB make active attempts at balancing clients across threads? This can impact -# performance accepting new clients. By default this is enabled. If disabled there is still -# a best effort from the kernel to distribute across threads with SO_REUSEPORT but it will not -# be as fair. -# -# By default this is enabled -# -active-client-balancing yes - -# Enable FLASH support (Experimental Feature) -# storage-provider flash /path/to/flash/db - -# Blob support is a way to store very large objects (>200MB) on disk -# The files are automatically cleaned up when KeyDB exits and are only -# for temporary use. This helps reduce memory pressure for very large -# data items at the cost of some performance. -# -# By default this config is disable. When enabled the disk associated -# with KeyDB's working directory will be used. If there is insufficient -# disk space or any other I/O error KeyDB will instead use memory. -# -# blob-support false - -# Begin load shedding if we use more than X% CPU relative to the number of server threads -# E.g. if overload-protect-percent is set to 80 and there are 8 server-threads, then the -# actual CPU protection will be 8 * 100 * 0.80 = 640% CPU usage. -# -# Set to 0 to disable -# overload-protect-percent 0 - -# Inform KeyDB of the availability zone if running in a cloud environment. Currently -# this is only exposed via the info command for clients to use, but in the future we -# we may also use this when making decisions for replication. -# -# availability-zone "us-east-1a" \ No newline at end of file diff --git a/keydb/6.3.4/data.yml b/keydb/6.3.4/data.yml deleted file mode 100644 index 3acc7469a..000000000 --- a/keydb/6.3.4/data.yml +++ /dev/null @@ -1,28 +0,0 @@ -additionalProperties: - formFields: - - default: jhkdjhkjdhsIUTYURTU - envKey: PANEL_KEYDB_ROOT_PASSWORD - labelEn: Password - labelZh: 密码 - random: true - required: true - rule: paramComplexity - type: password - - default: 6379 - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number - - envKey: ARCH - default: 'x86_64' - labelEn: Chip architecture - labelZh: 芯片架构 - edit: true - type: select - values: - - label: amd64 - value: 'x86_64' - - label: arm64 - value: 'arm64' \ No newline at end of file diff --git a/keydb/6.3.4/docker-compose.yml b/keydb/6.3.4/docker-compose.yml deleted file mode 100644 index 230d49623..000000000 --- a/keydb/6.3.4/docker-compose.yml +++ /dev/null @@ -1,19 +0,0 @@ -services: - keydb: - image: eqalpha/keydb:${ARCH}_v6.3.4 - restart: always - container_name: ${CONTAINER_NAME} - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_HTTP}:6379 - command: keydb-server /etc/keydb/keydb.conf --requirepass ${PANEL_KEYDB_ROOT_PASSWORD} - volumes: - - ./data:/data - - ./conf/keydb.conf:/etc/keydb/keydb.conf - - ./logs:/logs - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/keydb/README.md b/keydb/README.md deleted file mode 100644 index 91c3b54d6..000000000 --- a/keydb/README.md +++ /dev/null @@ -1,8 +0,0 @@ -什么是KeyDB? --------------- - -KeyDB 是 Redis 的高性能分支,专注于多线程、内存效率和高吞吐量。除了性能改进之外,KeyDB 还提供主动复制、闪存存储和子Key过期等功能。 KeyDB 具有 MVCC 架构,允许您执行 KEYS 和 SCAN 等查询,而不会阻塞数据库并降低性能。 - -KeyDB 与 Redis 协议、模块和脚本保持完全兼容。这包括脚本和事务的原子性保证。由于 KeyDB 与 Redis 开发保持同步,因此 KeyDB 是 Redis 功能的超集,这使得 KeyDB 成为现有 Redis 部署的替代品。 - -在相同的硬件上,KeyDB 可以实现比 Redis 显着更高的吞吐量。主动复制简化了热备用故障转移,使您可以轻松地在副本上分发写入并使用简单的基于 TCP 的负载平衡/故障转移。 KeyDB 的更高性能使您可以在更少的硬件上完成更多工作,从而降低运营成本和复杂性。 diff --git a/keydb/data.yml b/keydb/data.yml deleted file mode 100644 index 5821d9097..000000000 --- a/keydb/data.yml +++ /dev/null @@ -1,21 +0,0 @@ -name: KeyDB -tags: - - 数据库 -title: Redis 的多线程分支 -description: Redis 的多线程分支 -additionalProperties: - key: keydb - name: KeyDB - tags: - - Database - shortDescZh: Redis 的多线程分支 - shortDescEn: A Multithreaded Fork of Redis - type: runtime - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://docs.keydb.dev - github: https://github.com/Snapchat/KeyDB - document: https://docs.keydb.dev/docs - architectures: - - amd64 diff --git a/keydb/logo.png b/keydb/logo.png deleted file mode 100644 index d2321604b..000000000 Binary files a/keydb/logo.png and /dev/null differ diff --git a/kkfileview/4.1.0/data.yml b/kkfileview/4.1.0/data.yml deleted file mode 100644 index dfe86a1d2..000000000 --- a/kkfileview/4.1.0/data.yml +++ /dev/null @@ -1,10 +0,0 @@ -additionalProperties: - formFields: - - default: 40145 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number diff --git a/kkfileview/4.1.0/docker-compose.yml b/kkfileview/4.1.0/docker-compose.yml deleted file mode 100644 index 190551164..000000000 --- a/kkfileview/4.1.0/docker-compose.yml +++ /dev/null @@ -1,14 +0,0 @@ -services: - kkfileview: - container_name: ${CONTAINER_NAME} - image: keking/kkfileview:4.1.0 - restart: always - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_HTTP}:8012 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/kkfileview/README.md b/kkfileview/README.md deleted file mode 100644 index 4826fb7b6..000000000 --- a/kkfileview/README.md +++ /dev/null @@ -1,36 +0,0 @@ -# kkFileView - -文档在线预览项目解决方案,项目使用流行的spring boot搭建,易上手和部署。万能的文件预览开源项目,基本支持主流文档格式预览,如: - -1. 支持 doc, docx, xls, xlsx, xlsm, ppt, pptx, csv, tsv, dotm, xlt, xltm, dot, dotx,xlam, xla ,pages 等 Office 办公文档 -2. 支持 wps, dps, et, ett, wpt 等国产 WPS Office 办公文档 -3. 支持 odt, ods, ots, odp, otp, six, ott, fodt, fods 等OpenOffice、LibreOffice 办公文档 -4. 支持 vsd, vsdx 等 Visio 流程图文件 -5. 支持 wmf, emf 等 Windows 系统图像文件 -6. 支持 psd ,eps 等 Photoshop 软件模型文件 -7. 支持 pdf ,ofd, rtf 等文档 -8. 支持 xmind 软件模型文件 -9. 支持 bpmn 工作流文件 -10. 支持 eml 邮件文件 -11. 支持 epub 图书文档 -12. 支持 obj, 3ds, stl, ply, gltf, glb, off, 3dm, fbx, dae, wrl, 3mf, ifc, brep, step, iges, fcstd, bim 等 3D 模型文件 -13. 支持 dwg, dxf, dwf, iges , igs, dwt, dng, ifc, dwfx, stl, cf2, plt 等 CAD 模型文件 -14. 支持 txt, xml(渲染), xbrl(渲染), md(渲染), java, php, py, js, css 等所有纯文本 -15. 支持 zip, rar, jar, tar, gzip, 7z 等压缩包 -16. 支持 jpg, jpeg, png, gif, bmp, ico, jfif, webp 等图片预览(翻转,缩放,镜像) -17. 支持 tif, tiff 图信息模型文件 -18. 支持 tga 图像格式文件 -19. 支持 svg 矢量图像格式文件 -20. 支持 mp3,wav,mp4,flv 等音视频格式文件 -21. 支持 avi,mov,rm,webm,ts,rm,mkv,mpeg,ogg,mpg,rmvb,wmv,3gp,ts,swf 等视频格式转码预览 -22. 支持 dcm 等医疗数位影像预览 -23. 支持 drawio 绘图预览 - -> 基于当前良好的架构模式,支持的文件类型在进一步丰富中 - -### 项目特性 - -- 使用 spring-boot 开发,预览服务搭建部署非常简便 -- rest 接口提供服务,跨语言、跨平台特性(java,php,python,go,php,....)都支持,应用接入简单方便 -- 抽象预览服务接口,方便二次开发,非常方便添加其他类型文件预览支持 -- 最最重要 Apache 协议开源,代码 pull 下来想干嘛就干嘛 \ No newline at end of file diff --git a/kkfileview/data.yml b/kkfileview/data.yml deleted file mode 100644 index 94d70d008..000000000 --- a/kkfileview/data.yml +++ /dev/null @@ -1,21 +0,0 @@ -name: kkFileView -tags: - - 实用工具 -title: 基于 Spring-Boot 的通用文件在线预览项目 -description: 基于 Spring-Boot 的通用文件在线预览项目 -additionalProperties: - key: kkfileview - name: kkFileView - tags: - - Tool - shortDescZh: 基于 Spring-Boot 的通用文件在线预览项目 - shortDescEn: Universal File Online Preview Project based on Spring-Boot - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://kkview.cn/zh-cn/index.html - github: https://github.com/kekingcn/kkFileView - document: https://kkfileview.keking.cn/zh-cn/docs/home.html - architectures: - - amd64 diff --git a/kkfileview/logo.png b/kkfileview/logo.png deleted file mode 100644 index e12e7f78f..000000000 Binary files a/kkfileview/logo.png and /dev/null differ diff --git a/kodbox/1.4505/data.yml b/kodbox/1.4505/data.yml deleted file mode 100755 index fef861e2a..000000000 --- a/kodbox/1.4505/data.yml +++ /dev/null @@ -1,10 +0,0 @@ -additionalProperties: - formFields: - - default: 8081 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number diff --git a/kodbox/1.4505/docker-compose.yml b/kodbox/1.4505/docker-compose.yml deleted file mode 100644 index aa259cf06..000000000 --- a/kodbox/1.4505/docker-compose.yml +++ /dev/null @@ -1,16 +0,0 @@ -services: - kodbox: - image: kodcloud/kodbox:v1.4505 - container_name: ${CONTAINER_NAME} - ports: - - ${PANEL_APP_PORT_HTTP}:80 - volumes: - - "./site:/var/www/html" - restart: always - labels: - createdBy: "Apps" - networks: - - 1panel-network -networks: - 1panel-network: - external: true diff --git a/kodbox/README.md b/kodbox/README.md deleted file mode 100644 index ca89c6d44..000000000 --- a/kodbox/README.md +++ /dev/null @@ -1,12 +0,0 @@ -# Kodbox - -**Kodbox** 是一个开源的在线文件管理器,提供了方便的文件浏览、上传、下载和共享功能。它可以让您通过 web 浏览器访问和管理您的文件,无论是个人使用还是团队协作都非常便捷。 - -## 主要功能: - -- **直观友好的界面**:Kodbox 提供了直观简洁的用户界面,使您可以轻松地浏览和管理文件,无需复杂的配置和学习曲线。 -- **强大的文件管理功能**:Kodbox 支持文件的上传、下载、复制、剪切、重命名和删除等常用操作,方便您对文件进行管理和整理。 -- **文件共享和协作**:Kodbox 允许您通过链接或密码共享文件,方便与他人进行文件共享和协作,提高团队工作效率。 -- **多种文件预览模式**:Kodbox 支持多种文件预览模式,包括文本预览、图片预览、音频预览和视频预览等,方便快速查看文件内容。 -- **权限管理**:Kodbox 支持对文件和文件夹设置权限,您可以控制谁可以访问、编辑或共享您的文件,保护您的文件安全和隐私。 -- **插件扩展**:Kodbox 提供了丰富的插件系统,允许您根据需要添加额外的功能和扩展,满足个性化的文件管理需求。 \ No newline at end of file diff --git a/kodbox/data.yml b/kodbox/data.yml deleted file mode 100755 index 948bb8178..000000000 --- a/kodbox/data.yml +++ /dev/null @@ -1,26 +0,0 @@ -name: Kodbox -tags: - - 云存储 -title: 可道云推出的企业级私有云存储解决方案 -description: 可道云推出的企业级私有云存储解决方案 -additionalProperties: - key: kodbox - name: Kodbox - tags: - - Storage - shortDescZh: 可道云推出的企业级私有云存储解决方案 - shortDescEn: An enterprise-class private cloud storage solution launched by Kedao Cloud - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://kodcloud.com/ - github: https://github.com/kalcaddle/kodbox - document: https://docs.kodcloud.com/ - architectures: - - amd64 - - arm/v6 - - arm/v7 - - arm64 - - ppc64le - - s390x diff --git a/kodbox/logo.png b/kodbox/logo.png deleted file mode 100644 index 076d34405..000000000 Binary files a/kodbox/logo.png and /dev/null differ diff --git a/koishi/1.15.0/data.yml b/koishi/1.15.0/data.yml deleted file mode 100644 index c3450dd10..000000000 --- a/koishi/1.15.0/data.yml +++ /dev/null @@ -1,57 +0,0 @@ -additionalProperties: - formFields: - - child: - default: "" - envKey: PANEL_DB_HOST - required: true - type: service - default: mysql - envKey: PANEL_DB_TYPE - labelEn: Database Service - labelZh: 数据库服务 - required: true - type: apps - values: - - label: MySQL - value: mysql - - label: MariaDB - value: mariadb - - default: koishi - envKey: PANEL_DB_NAME - labelEn: Database - labelZh: 数据库名 - random: true - required: true - rule: paramCommon - type: text - - default: koishi - envKey: PANEL_DB_USER - labelEn: User - labelZh: 数据库用户 - random: true - required: true - rule: paramCommon - type: text - - default: koishi - edit: true - envKey: PANEL_DB_USER_PASSWORD - labelEn: Password - labelZh: 数据库用户密码 - random: true - required: true - type: password - - default: 5140 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number - - default: Asia/Shanghai - edit: true - envKey: TIME_ZONE - labelEn: Time zone - labelZh: 时区 - required: true - type: text \ No newline at end of file diff --git a/koishi/1.15.0/docker-compose.yml b/koishi/1.15.0/docker-compose.yml deleted file mode 100644 index a97da6083..000000000 --- a/koishi/1.15.0/docker-compose.yml +++ /dev/null @@ -1,18 +0,0 @@ -services: - koishi: - image: koishijs/koishi:v1.15.0 - container_name: ${CONTAINER_NAME} - restart: always - environment: - - TZ=${TIME_ZONE} - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_HTTP}:5140 - volumes: - - ./data:/koishi - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/koishi/README.md b/koishi/README.md deleted file mode 100644 index ddeec27c9..000000000 --- a/koishi/README.md +++ /dev/null @@ -1,25 +0,0 @@ -# Koishi - -**Koishi** 是一个跨平台、可扩展、高性能的聊天机器人框架。 - -## 特性 - -### 开箱即用 - -Koishi 提供了高度便利的控制台,让你无需基础让你在几分钟之内搭建自己的聊天机器人。 - -- 提供在线插件市场,即使没有任何编程基础,也能轻松在控制台中下载安装插件 -- 支持 QQ,Telegram,Discord,飞书等主流聊天平台,支持多账户和跨平台数据互通 -- 随时随地通过控制面板监控运行状态,控制机器人的行为,甚至上号聊天 - -### 生态丰富 - -经过了长达四年的迭代,Koishi 已经发展出了丰富的插件生态和与之匹配的健壮系统。超过 1000 个官方和社区插件覆盖了机器人开发的方方面面,从平台支持、数据库、资源存储、网页控制台、状态管理到具体的业务功能一应俱全。无论你的目标是构建大型交互应用还是轻量级的辅助机器人,Koishi 都为你提供了最佳实践。如果担心在复杂的功能中迷失方向,我们也准备了细致的文档来提供帮助。 - -### 专为开发者打造 - -Koishi 更为开发者准备了众多专业功能,使插件开发者得以在各种复杂需求中构建规模化的解决方案。 - -- 类型支持:Koishi 完全基于 TypeScript 开发,拥有顶级的类型支持,丰富的代码提示让你在编写代码的时候甚至无需查看文档 -- 单元测试:所有核心功能均已经通过单元测试,既确保了可靠性,也为开发者提供了一套测试插件和定位问题的最佳实践 -- 模块热重载:开发 Koishi 插件时,只需轻点保存即可热重载,无需频繁重启机器人,如同前端开发一样丝滑顺畅 diff --git a/koishi/data.yml b/koishi/data.yml deleted file mode 100644 index 23529caeb..000000000 --- a/koishi/data.yml +++ /dev/null @@ -1,22 +0,0 @@ -name: Koishi -tags: - - 实用工具 -title: 跨平台、可扩展、高性能的聊天机器人框架 -description: 跨平台、可扩展、高性能的聊天机器人框架 -additionalProperties: - key: koishi - name: Koishi - tags: - - Tool - shortDescZh: 跨平台、可扩展、高性能的聊天机器人框架 - shortDescEn: Cross-platform, extensive, high-performance chatbot framework - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://koishi.chat - github: https://github.com/koishijs/koishi - document: https://koishi.chat/zh-CN/manual/introduction.html - architectures: - - amd64 - - arm64 diff --git a/koishi/logo.png b/koishi/logo.png deleted file mode 100644 index 7c45cc5d6..000000000 Binary files a/koishi/logo.png and /dev/null differ diff --git a/komga/1.22.0/data.yml b/komga/1.22.0/data.yml deleted file mode 100644 index ded6e00f7..000000000 --- a/komga/1.22.0/data.yml +++ /dev/null @@ -1,19 +0,0 @@ -additionalProperties: - formFields: - - default: 25600 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh: 端口 - zh-Hant: 埠 - required: true - rule: paramPort - type: number diff --git a/komga/1.22.0/docker-compose.yml b/komga/1.22.0/docker-compose.yml deleted file mode 100644 index 514205b8e..000000000 --- a/komga/1.22.0/docker-compose.yml +++ /dev/null @@ -1,18 +0,0 @@ -services: - komga: - container_name: ${CONTAINER_NAME} - ports: - - ${PANEL_APP_PORT_HTTP}:25600 - #user: "1000:1000" - restart: unless-stopped - networks: - - 1panel-network - volumes: - - ./data:/data - - ./config:/config - image: gotson/komga:1.22.0 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/komga/README.md b/komga/README.md deleted file mode 100644 index 3e9c07caa..000000000 --- a/komga/README.md +++ /dev/null @@ -1,18 +0,0 @@ -# Komga - -**Komga** 是一款免费开源的漫画、杂志媒体服务。 - -## 特性: - -- 通过适用于台式机、平板电脑和手机的响应式 Web UI 浏览图书馆、丛书和书籍 -- 通过馆藏和阅读列表来组织您的图书馆 -- 编辑系列和书籍的元数据 -- 自动导入嵌入元数据 -- 具有多种阅读模式的网络阅读器 -- 通过每个库的访问控制、年龄限制和标签限制来管理多个用户 -- 提供REST API,许多社区工具和脚本可以与Komga交互 -- 下载书籍文件、整个系列或阅读列表 -- 重复文件检测 -- 重复页面检测和删除 -- 将图书馆外部的书籍直接导入到系列文件夹中 -- 导入 ComicRackcbl阅读列表 \ No newline at end of file diff --git a/komga/README_en.md b/komga/README_en.md deleted file mode 100644 index f0a85ab84..000000000 --- a/komga/README_en.md +++ /dev/null @@ -1,18 +0,0 @@ -# Komga - -**Komga** is a free and open-source media server for comics and magazines. - -## Features: - -- Browse your library, series, and books through a responsive Web UI suitable for desktops, tablets, and phones. -- Organize your library with collections and reading lists. -- Edit metadata for series and books. -- Automatically import embedded metadata. -- Web reader with multiple reading modes. -- Manage multiple users with access control, age restrictions, and tag restrictions per library. -- Provides a REST API, enabling many community tools and scripts to interact with Komga. -- Download book files, entire series, or reading lists. -- Duplicate file detection. -- Detect and remove duplicate pages. -- Import books directly into series folders from outside the library. -- Import ComicRack `.cbl` reading lists. \ No newline at end of file diff --git a/komga/data.yml b/komga/data.yml deleted file mode 100644 index b01a99e28..000000000 --- a/komga/data.yml +++ /dev/null @@ -1,32 +0,0 @@ -name: Komga -tags: - - 多媒体 -title: 免费开源的漫画、杂志媒体服务 -description: 免费开源的漫画、杂志媒体服务 -additionalProperties: - key: komga - name: Komga - tags: - - Media - shortDescZh: 免费开源的漫画、杂志媒体服务 - shortDescEn: Komga is a media server for your comics, mangas, BDs and magazines. - type: website - crossVersionUpdate: true - limit: 1 - recommend: 0 - website: https://komga.org/ - github: https://github.com/gotson/komga - document: https://komga.org/docs/introduction - description: - en: Komga is a media server for your comics, mangas, BDs and magazines. - zh: Komga 是一个用于漫画、杂志等的媒体服务器。 - zh-Hant: Komga 是一個用於漫畫、雜誌等的媒體伺服器。 - ja: Komga は、コミック、マンガ、BD、雑誌のためのメディアサーバーです。 - ms: Komga ialah pelayan media untuk komik, manga, BD dan majalah anda. - pt-br: Komga é um servidor de mídia para seus quadrinhos, mangás, BDs e revistas. - ru: Komga — это медиа-сервер для ваших комиксов, манги, BD и журналов. - ko: Komga는 만화, 잡지 등을 위한 미디어 서버입니다. - architectures: - - amd64 - - arm/v7 - - arm64 diff --git a/komga/logo.png b/komga/logo.png deleted file mode 100644 index a8d4606ee..000000000 Binary files a/komga/logo.png and /dev/null differ diff --git a/koodo-reader/README.md b/koodo-reader/README.md deleted file mode 100644 index 39ceac1e8..000000000 --- a/koodo-reader/README.md +++ /dev/null @@ -1,24 +0,0 @@ -# Koodo Reader - -**Koodo Reader** 是一个跨平台的电子书阅读器,支持多种格式的电子书,包括 EPUB、PDF、Kindle、纯文本、漫画、富文本、FB2、超文本等。Koodo Reader 支持 **Windows**,**macOS**,**Linux** 和 **网页版**,并且可以备份数据到 **Dropbox** 和 **Webdav**,支持自定义源文件夹,利用 OneDrive、百度网盘、iCloud、Dropbox 等进行多设备同步。 - - -## 特色 - -- 支持阅读格式: - - EPUB (**.epub**) - - 扫描文档 (**.pdf**) - - Kindle (**.azw3**, **.mobi**, **.azw**) - - 纯文本 (**.txt**) - - 漫画 (**.cbr**, **.cbz**, **.cbt**, **.cb7**) - - 富文本 (**.md**, **.docx**) - - FB2 (**.fb2**) - - 超文本 (**.html**, **.xml**, **.xhtml**, **.mhtml**, **.htm**, **.htm**) -- 支持 **Windows**,**macOS**,**Linux** 和 **网页版** -- 备份数据到 **Dropbox** 和 **Webdav** -- 自定义源文件夹,利用 OneDrive、百度网盘、iCloud、Dropbox 等进行多设备同步 -- 双页模式,单页模式,滚动模式 -- 听书功能,翻译功能,触控屏支持,批量导入图书 -- 支持目录,书签,笔记,高亮,书架,标签 -- 自定义字体,字体大小,行间距,段落间距,阅读背景色,文字颜色,屏幕亮度,文字下划线、斜体、文字阴影、字体粗细 -- 黑夜模式和主题色设置 \ No newline at end of file diff --git a/koodo-reader/data.yml b/koodo-reader/data.yml deleted file mode 100644 index 73b24c79e..000000000 --- a/koodo-reader/data.yml +++ /dev/null @@ -1,23 +0,0 @@ -name: Koodo Reader -tags: - - 多媒体 -title: 一个跨平台的电子书阅读器 -description: 一个跨平台的电子书阅读器 -additionalProperties: - key: koodo-reader - name: Koodo Reader - tags: - - Media - shortDescZh: 一个跨平台的电子书阅读器 - shortDescEn: A cross-platform ebook reader - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://koodoreader.com/ - github: https://github.com/koodo-reader/koodo-reader - document: https://www.koodoreader.com/en/document - architectures: - - amd64 - - arm64 - - arm/v7 diff --git a/koodo-reader/logo.png b/koodo-reader/logo.png deleted file mode 100644 index ae34559ca..000000000 Binary files a/koodo-reader/logo.png and /dev/null differ diff --git a/koodo-reader/master/data.yml b/koodo-reader/master/data.yml deleted file mode 100644 index d05e72f45..000000000 --- a/koodo-reader/master/data.yml +++ /dev/null @@ -1,10 +0,0 @@ -additionalProperties: - formFields: - - default: 8860 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number diff --git a/koodo-reader/master/docker-compose.yml b/koodo-reader/master/docker-compose.yml deleted file mode 100644 index a074037fd..000000000 --- a/koodo-reader/master/docker-compose.yml +++ /dev/null @@ -1,14 +0,0 @@ -services: - koodo-reader: - image: ghcr.io/koodo-reader/koodo-reader:master - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_HTTP}:80 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/kubepi/1.9.0/data.yml b/kubepi/1.9.0/data.yml deleted file mode 100755 index ebd49f4c0..000000000 --- a/kubepi/1.9.0/data.yml +++ /dev/null @@ -1,10 +0,0 @@ -additionalProperties: - formFields: - - default: 8090 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number diff --git a/kubepi/1.9.0/docker-compose.yml b/kubepi/1.9.0/docker-compose.yml deleted file mode 100644 index 609b76447..000000000 --- a/kubepi/1.9.0/docker-compose.yml +++ /dev/null @@ -1,17 +0,0 @@ -services: - kubepi: - image: 1panel/kubepi:v1.9.0 - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_HTTP}:80 - volumes: - - ./data:/var/lib/kubepi - privileged: true - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/kubepi/README.md b/kubepi/README.md deleted file mode 100644 index 8cf0d00ad..000000000 --- a/kubepi/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# 默认账户密码 - -``` -username:admin -password:kubepi -``` - -# KubePi 功能简介 - -**KubePi** 是一款功能强大的 Kubernetes 管理工具,旨在简化和增强 Kubernetes 集群的管理和监控。 - -## 主要功能: - -- **集群管理**:允许您轻松管理 Kubernetes 集群,包括创建、扩展、缩减和删除集群。您可以通过简单的界面完成这些操作,无需深入了解 Kubernetes 的复杂性。 -- **应用部署**:您可以快速部署应用程序到 Kubernetes 集群中。它支持 Helm Charts 和自定义 YAML 文件,使应用程序的部署变得简单而可控。 -- **监控和日志**:提供了强大的监控和日志功能,帮助您实时监视集群的健康状况和应用程序的性能。它整合了 Prometheus 和 Grafana,提供了直观的仪表板,同时还能够查看容器日志。 -- **配置管理**:通过 KubePi,您可以轻松管理配置文件,包括 ConfigMaps 和 Secrets。它提供了一个集中的界面,用于查看、编辑和更新配置。 -- **安全性**:支持 RBAC(基于角色的访问控制),可帮助您管理用户和团队对集群资源的访问权限,从而增强安全性。 -- **自动化**:提供了自动化工具,可以自动扩展和缩减集群,以满足应用程序的需求。它还支持自动备份和恢复操作,确保集群的可靠性。 \ No newline at end of file diff --git a/kubepi/data.yml b/kubepi/data.yml deleted file mode 100755 index c04edc8d4..000000000 --- a/kubepi/data.yml +++ /dev/null @@ -1,22 +0,0 @@ -name: KubePi -tags: - - 开发工具 -title: 现代化的 K8s 面板 -description: 现代化的 K8s 面板 -additionalProperties: - key: kubepi - name: KubePi - tags: - - DevTool - shortDescZh: 现代化的 K8s 面板 - shortDescEn: A modernized K8s dashboard - type: website - crossVersionUpdate: false - limit: 0 - recommend: 100 - website: https://github.com/1Panel-dev/ - github: https://github.com/1Panel-dev/KubePi - document: https://github.com/1Panel-dev/KubePi/blob/master/README.md - architectures: - - amd64 - - arm64 diff --git a/kubepi/logo.png b/kubepi/logo.png deleted file mode 100644 index 9193ef65d..000000000 Binary files a/kubepi/logo.png and /dev/null differ diff --git a/linux-command/1.20.0/data.yml b/linux-command/1.20.0/data.yml deleted file mode 100644 index 2d6660433..000000000 --- a/linux-command/1.20.0/data.yml +++ /dev/null @@ -1,10 +0,0 @@ -additionalProperties: - formFields: - - default: 40255 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number diff --git a/linux-command/1.20.0/docker-compose.yml b/linux-command/1.20.0/docker-compose.yml deleted file mode 100644 index 3304ebaf3..000000000 --- a/linux-command/1.20.0/docker-compose.yml +++ /dev/null @@ -1,14 +0,0 @@ -services: - linux-command: - image: wcjiang/linux-command:1.20.0 - container_name: ${CONTAINER_NAME} - restart: always - ports: - - ${PANEL_APP_PORT_HTTP}:3000 - networks: - - 1panel-network - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/linux-command/README.md b/linux-command/README.md deleted file mode 100644 index 472ef264c..000000000 --- a/linux-command/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# Linux Command - -Linux 命令大全搜索工具,内容包含 Linux 命令手册、详解、学习、搜集。 - -当前仓库搜集了 580 多个 Linux 命令,是一个非盈利性的仓库,生成了一个 web 网站方便使用,目前网站没有任何广告,内容包含 Linux 命令手册、详解、学习,内容来自网络和网友的补充,非常值得收藏的 Linux 命令速查手册。版权归属原作者,对任何法律问题及风险不承担任何责任,没有任何商业目的,如果认为侵犯了您的版权,请来信告知。我不能完全保证内容的正确性。通过使用本站内容带来的风险与我无关。当使用本站时,代表您已接受了本站的使用条款和隐私条款。 diff --git a/linux-command/data.yml b/linux-command/data.yml deleted file mode 100644 index d3cb9aacb..000000000 --- a/linux-command/data.yml +++ /dev/null @@ -1,22 +0,0 @@ -name: Linux Command -tags: - - 开发工具 -title: Linux 命令大全搜索工具 -description: Linux 命令大全搜索工具 -additionalProperties: - key: linux-command - name: Linux Command - tags: - - DevTool - shortDescZh: Linux 命令大全搜索工具 - shortDescEn: Comprehensive Linux command search tool - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://git.io/linux - github: https://github.com/jaywcjlove/linux-command - document: https://github.com/jaywcjlove/linux-command - architectures: - - amd64 - - arm64 diff --git a/linux-command/logo.png b/linux-command/logo.png deleted file mode 100644 index d1492dc2d..000000000 Binary files a/linux-command/logo.png and /dev/null differ diff --git a/lobe-chat/1.96.9/data.yml b/lobe-chat/1.96.9/data.yml deleted file mode 100644 index aba6f716d..000000000 --- a/lobe-chat/1.96.9/data.yml +++ /dev/null @@ -1,40 +0,0 @@ -additionalProperties: - formFields: - - default: 40247 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number - - default: "password" - edit: true - envKey: OPENAI_API_KEY - labelEn: OpenAI API Key - labelZh: OpenAI API 密钥 - required: false - type: password - - default: "https://api.openai.com/v1" - edit: true - envKey: OPENAI_PROXY_URL - labelEn: OpenAI Proxy URL - labelZh: OpenAI 代理 URL - required: false - type: text - - default: "" - edit: true - envKey: ACCESS_CODE - labelEn: Access Code - labelZh: 访问密码 - random: true - required: false - rule: paramComplexity - type: password - - default: "" - edit: true - envKey: OPENAI_MODEL_LIST - labelEn: OpenAI Model List - labelZh: OpenAI 模型列表 - required: false - type: text diff --git a/lobe-chat/1.96.9/docker-compose.yml b/lobe-chat/1.96.9/docker-compose.yml deleted file mode 100644 index 1d7708d2f..000000000 --- a/lobe-chat/1.96.9/docker-compose.yml +++ /dev/null @@ -1,19 +0,0 @@ -services: - lobe-chat: - image: lobehub/lobe-chat:1.96.9 - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTP}:3210" - environment: - - OPENAI_API_KEY=${OPENAI_API_KEY} - - OPENAI_PROXY_URL=${OPENAI_PROXY_URL} - - ACCESS_CODE=${ACCESS_CODE} - - OPENAI_MODEL_LIST=${OPENAI_MODEL_LIST} - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/lobe-chat/README.md b/lobe-chat/README.md deleted file mode 100644 index 66f2dcf89..000000000 --- a/lobe-chat/README.md +++ /dev/null @@ -1,18 +0,0 @@ -# LobeChat - -**LobeChat** 是一个现代化设计的开源 ChatGPT/LLMs 聊天应用与开发框架,支持语音合成、多模态、可扩展的(function call)插件系统,一键免费拥有你自己的 ChatGPT/Gemini/Claude/Ollama 应用。 - -## 特性: - -- 多模型服务商支持; -- 支持本地大语言模型 (LLM); -- 模型视觉识别 (Model Visual); -- TTS & STT 语音会话; -- Text to Image 文生图; -- 插件系统 (Function Calling); -- 助手市场 (GPTs); -- 支持本地 / 远程数据库; -- 支持多用户管理; -- 渐进式 Web 应用 (PWA); -- 移动设备适配; -- 自定义主题。 \ No newline at end of file diff --git a/lobe-chat/data.yml b/lobe-chat/data.yml deleted file mode 100644 index 5357fd9ef..000000000 --- a/lobe-chat/data.yml +++ /dev/null @@ -1,22 +0,0 @@ -name: LobeChat -tags: - - AI / 大模型 -title: 开源、现代设计的 ChatGPT/LLMs UI/框架 -description: 开源、现代设计的 ChatGPT/LLMs UI/框架 -additionalProperties: - key: lobe-chat - name: LobeChat - tags: - - AI - shortDescZh: 现代化设计的开源 ChatGPT/LLMs 聊天应用与开发框架 - shortDescEn: An open-source, modern-design ChatGPT/LLMs UI/Framework - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://lobehub.com - github: https://github.com/lobehub/lobe-chat - document: https://lobehub.com/docs - architectures: - - amd64 - - arm64 diff --git a/lobe-chat/logo.png b/lobe-chat/logo.png deleted file mode 100644 index 531bae6aa..000000000 Binary files a/lobe-chat/logo.png and /dev/null differ diff --git a/localai/3.0.0-aio-cpu/data.yml b/localai/3.0.0-aio-cpu/data.yml deleted file mode 100644 index 89bba7ac1..000000000 --- a/localai/3.0.0-aio-cpu/data.yml +++ /dev/null @@ -1,19 +0,0 @@ -additionalProperties: - formFields: - - default: 8080 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh: 端口 - zh-Hant: 埠 - required: true - rule: paramPort - type: number diff --git a/localai/3.0.0-aio-cpu/docker-compose.yml b/localai/3.0.0-aio-cpu/docker-compose.yml deleted file mode 100644 index 833857adf..000000000 --- a/localai/3.0.0-aio-cpu/docker-compose.yml +++ /dev/null @@ -1,34 +0,0 @@ -services: - localai: - image: localai/localai:v3.0.0-aio-cpu - container_name: ${CONTAINER_NAME} - # For Nvidia GPUs decomment one of the following (cuda11 or cuda12): - # image: localai/localai:v2.25.0-aio-gpu-nvidia-cuda-11 - # image: localai/localai:v2.25.0-aio-gpu-nvidia-cuda-12 - # Decomment the following piece if running with Nvidia GPUs - # deploy: - # resources: - # reservations: - # devices: - # - driver: nvidia - # count: 1 - # capabilities: [gpu] - restart: always - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_HTTP}:8080 - environment: - - DEBUG=true - healthcheck: - test: ["CMD", "curl", "-f", "http://localhost:8080/readyz"] - interval: 1m - timeout: 20m - retries: 5 - volumes: - - ./data:/build/models:cached - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/localai/README.md b/localai/README.md deleted file mode 100644 index 8a16a70df..000000000 --- a/localai/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# LocalAI - -**LocalAI** 是免费的开源 OpenAI 替代品。LocalAI 可作为替代 REST API,与 OpenAI(Elevenlabs、Anthropic……)API 规范兼容,用于本地 AI 推理。它允许您在本地或使用消费级硬件运行 LLM、生成图像、音频(不止于此),支持多种模型系列。不需要 GPU。 - -## 主要功能: - -- 使用 GPT 生成文本(llama.cpp、transformers、vllm 等等) -- 文本转音频 -- 音频转文本(带音频转录 whisper.cpp) -- 图像生成 -- 类似 OpenAI 的工具 API -- 向量数据库的嵌入生成 -- 受限语法 -- 直接从 Huggingface 下载模型 -- 视觉 API -- 重新排序 API -- P2P 推理 -- 语音活动检测(Silero-VAD 支持) -- 集成 WebUI! \ No newline at end of file diff --git a/localai/README_en.md b/localai/README_en.md deleted file mode 100644 index 8ac87d807..000000000 --- a/localai/README_en.md +++ /dev/null @@ -1,17 +0,0 @@ -# LocalAI -**LocalAI** is a free and open-source alternative to OpenAI. LocalAI serves as a replacement REST API, compatible with OpenAI (Elevenlabs, Anthropic, etc.) API specifications, for local AI inference. It allows you to run LLMs, generate images, audio (and more) locally or using consumer-grade hardware, supporting various model families. No GPU is required. - -## Key Features: -- Generate text using GPT (llama.cpp, transformers, vllm, etc.) -- Text-to-audio conversion -- Audio-to-text transcription (with audio transcription via whisper.cpp) -- Image generation -- OpenAI-like tools API -- Embedding generation for vector databases -- Constrained grammar -- Download models directly from Huggingface -- Vision API -- Re-ranking API -- P2P inference -- Voice activity detection (Silero-VAD support) -- Integrated WebUI! \ No newline at end of file diff --git a/localai/data.yml b/localai/data.yml deleted file mode 100644 index 772f057f9..000000000 --- a/localai/data.yml +++ /dev/null @@ -1,30 +0,0 @@ -name: LocalAI -tags: - - AI / 大模型 -title: 免费的开源 OpenAI 替代品 -description: 免费的开源 OpenAI 替代品 -additionalProperties: - key: localai - name: LocalAI - tags: - - AI - shortDescZh: 免费的开源 OpenAI 替代品 - shortDescEn: The free, Open Source OpenAI alternative - type: website - crossVersionUpdate: false - limit: 0 - recommend: 0 - website: https://localai.io/ - github: https://github.com/mudler/LocalAI/ - document: https://localai.io/ - description: - en: The free, Open Source OpenAI alternative - zh: 免费的开源 OpenAI 替代品 - zh-Hant: 免費的開源 OpenAI 替代品 - ja: 無料のオープンソース OpenAI 代替品 - ms: Alternatif OpenAI sumber terbuka percuma - pt-br: A alternativa gratuita e de código aberto ao OpenAI - ru: Бесплатная альтернатива OpenAI с открытым исходным кодом - ko: 무료 오픈 소스 OpenAI 대안 - architectures: - - amd64 diff --git a/localai/logo.png b/localai/logo.png deleted file mode 100644 index 72c715006..000000000 Binary files a/localai/logo.png and /dev/null differ diff --git a/logto/1.28.0/data.yml b/logto/1.28.0/data.yml deleted file mode 100644 index b27947078..000000000 --- a/logto/1.28.0/data.yml +++ /dev/null @@ -1,150 +0,0 @@ -additionalProperties: - formFields: - - child: - default: "" - envKey: PANEL_DB_HOST - required: true - type: service - default: postgresql - envKey: PANEL_DB_TYPE - labelEn: Database Service - labelZh: 数据库服务 - label: - en: Database Service - ja: データベースサービス - ms: Perkhidmatan Pangkalan Data - pt-br: Serviço de Banco de Dados - ru: Сервис базы данных - ko: 데이터베이스 서비스 - zh: 数据库服务 - zh-Hant: 數據庫服務 - required: true - type: apps - values: - - label: PostgreSQL - value: postgresql - - default: logto - envKey: PANEL_DB_NAME - labelEn: Database - labelZh: 数据库名 - label: - en: Database - ja: データベース - ms: Pangkalan Data - pt-br: Banco de Dados - ru: База данных - ko: 데이터베이스 - zh: 数据库名 - zh-Hant: 數據庫名 - random: true - required: true - rule: paramCommon - type: text - - default: logto - envKey: PANEL_DB_USER - labelEn: User - labelZh: 数据库用户 - label: - en: User - ja: ユーザー - ms: Pengguna - pt-br: Usuário - ru: Пользователь - ko: 사용자 - zh: 数据库用户 - zh-Hant: 數據庫用戶 - random: true - required: true - rule: paramCommon - type: text - - default: logto - envKey: PANEL_DB_USER_PASSWORD - labelEn: Password - labelZh: 数据库用户密码 - label: - en: Password - ja: パスワード - ms: Kata laluan - pt-br: Senha - ru: Пароль - ko: 비밀번호 - zh: 数据库用户密码 - zh-Hant: 數據庫用戶密碼 - random: true - required: true - type: password - - default: 3001 - envKey: PANEL_APP_PORT_HTTP_LOGTO - labelEn: Logto Port - labelZh: Logto 监听的端口 - label: - en: Logto Port - ja: Logto ポート - ms: Port Logto - pt-br: Porta Logto - ru: Порт Logto - ko: Logto 포트 - zh: Logto 监听的端口 - zh-Hant: Logto 監聽的埠 - required: true - rule: paramPort - type: number - - default: 3002 - envKey: PANEL_APP_PORT_HTTP - labelEn: Logto Admin Port - labelZh: Logto 管理控制台端口 - label: - en: Logto Admin Port - ja: Logto 管理者ポート - ms: Port Admin Logto - pt-br: Porta Admin Logto - ru: Админ-порт Logto - ko: Logto 관리자 포트 - zh: Logto 管理控制台端口 - zh-Hant: Logto 管理控制台埠 - required: true - rule: paramPort - type: number - - default: https://logto.domain.com - edit: true - envKey: LOGTO_ENDPOINT_URL - labelEn: Logto Endpoint - labelZh: Logto 服务地址(进入网站页面添加反向代理网站,并启用 HTTPS) - label: - en: Logto Endpoint - ja: Logto エンドポイント - ms: Endpoint Logto - pt-br: Endpoint Logto - ru: Конечная точка Logto - ko: Logto 엔드포인트 - zh: Logto 服务地址 - zh-Hant: Logto 服務地址 - description: - zh: 可以添加为反向代理网站,并启用 HTTPS - en: You can add it as a reverse proxy site and enable HTTPS - ja: リバースプロキシサイトとして追加し、HTTPSを有効にできます - ms: Anda boleh menambahnya sebagai laman proksi songsang dan mengaktifkan HTTPS - pt-br: Você pode adicioná-lo como um site de proxy reverso e habilitar o HTTPS - ru: Вы можете добавить его в качестве сайта обратного прокси и включить HTTPS - ko: 리버스 프록시 사이트로 추가하고 HTTPS를 활성화할 수 있습니다 - zh-Hant: 可以添加為反向代理網站,並啟用 HTTPS - required: true - rule: paramExtUrl - type: text - - default: https://admin.domain.com - edit: true - envKey: LOGTO_ADMIN_ENDPOINT_URL - labelEn: Logto Admin Endpoint - labelZh: Logto 管理控制台地址 - label: - en: Logto Admin Endpoint - ja: Logto 管理者エンドポイント - ms: Endpoint Admin Logto - pt-br: Endpoint Admin Logto - ru: Админ-конечная точка Logto - ko: Logto 관리자 엔드포인트 - zh: Logto 管理控制台地址 - zh-Hant: Logto 管理控制台地址 - required: true - rule: paramExtUrl - type: text diff --git a/logto/1.28.0/docker-compose.yml b/logto/1.28.0/docker-compose.yml deleted file mode 100644 index d1759e646..000000000 --- a/logto/1.28.0/docker-compose.yml +++ /dev/null @@ -1,21 +0,0 @@ -services: - logto: - container_name: ${CONTAINER_NAME} - image: svhd/logto:1.28.0 - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_HTTP}:3002 - - ${PANEL_APP_PORT_HTTP_LOGTO}:3001 - entrypoint: ["sh", "-c", "npm run cli db seed -- --swe && npm start"] - environment: - - TRUST_PROXY_HEADER=1 - - DB_URL=postgres://${PANEL_DB_USER}:${PANEL_DB_USER_PASSWORD}@${PANEL_DB_HOST}:${PANEL_DB_PORT}/${PANEL_DB_NAME} - - ENDPOINT=${LOGTO_ENDPOINT_URL} - - ADMIN_ENDPOINT=${LOGTO_ADMIN_ENDPOINT_URL} - labels: - createdBy: "Apps" - restart: always -networks: - 1panel-network: - external: true diff --git a/logto/README.md b/logto/README.md deleted file mode 100644 index 7f571d2ef..000000000 --- a/logto/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# **启用 HTTPS** - -- **创建应用**:Logto 管理控制台地址必须填写 `https://admin.domain.com`(请根据实际情况替换域名)。 -- **创建反向代理网站**:代理地址填写 `http://127.0.0.1:3002`(请根据实际情况替换 IP 和端口)。 -- **申请证书**:为 `https://admin.domain.com` 创建证书,验证方式选择 HTTP 类型。 -- **启用 HTTPS**:进入网站设置页面,点击 HTTPS,选择刚刚添加的证书并保存。 - -> Logto 服务地址和管理控制台地址一样,也必须使用 HTTPS 协议,否则会导致无法正常访问。 diff --git a/logto/README_en.md b/logto/README_en.md deleted file mode 100644 index d0619bdf3..000000000 --- a/logto/README_en.md +++ /dev/null @@ -1,6 +0,0 @@ -# Enable HTTPS -- **Create Application**: The Logto admin console address must be `https://admin.domain.com` (replace `domain.com` with your actual domain). -- **Create Reverse Proxy Website**: Set the proxy address to `http://127.0.0.1:3002` (replace IP and port as needed). -- **Apply for Certificate**: Create a certificate for `https://admin.domain.com` and select HTTP verification. -- **Enable HTTPS**: Go to the website settings page, click HTTPS, select the newly added certificate, and save. -> The Logto service address and admin console address must use the HTTPS protocol to function correctly. \ No newline at end of file diff --git a/logto/data.yml b/logto/data.yml deleted file mode 100644 index 3c18b2b9c..000000000 --- a/logto/data.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: Logto -tags: - - 安全 -title: 专为现代应用和 SaaS 产品设计的开源 Auth0 替代品 -description: 专为现代应用和 SaaS 产品设计的开源 Auth0 替代品 -additionalProperties: - key: logto - name: Logto - tags: - - Security - shortDescZh: 专为现代应用和 SaaS 产品设计的开源 Auth0 替代品 - shortDescEn: An Auth0 alternative designed for modern apps and SaaS products - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://logto.io/zh-CN/ - github: https://github.com/logto-io/logto - document: https://docs.logto.io/ - description: - en: An Auth0 alternative designed for modern apps and SaaS products - zh: 专为现代应用和 SaaS 产品设计的 Auth0 替代品 - zh-Hant: 專為現代應用和 SaaS 產品設計的 Auth0 替代品 - ja: モダンなアプリと SaaS 製品向けに設計された Auth0 の代替品 - ms: Alternatif Auth0 yang direka untuk aplikasi moden dan produk SaaS - pt-br: Uma alternativa ao Auth0 projetada para aplicativos modernos e produtos SaaS - ru: Альтернатива Auth0, разработанная для современных приложений и продуктов SaaS - ko: 현대적인 앱과 SaaS 제품을 위해 설계된 Auth0 대안 - architectures: - - amd64 - - arm64 \ No newline at end of file diff --git a/logto/logo.png b/logto/logo.png deleted file mode 100644 index 3691e4b6c..000000000 Binary files a/logto/logo.png and /dev/null differ diff --git a/lsky-pro/README.md b/lsky-pro/README.md deleted file mode 100644 index f91624e1c..000000000 --- a/lsky-pro/README.md +++ /dev/null @@ -1,17 +0,0 @@ -# Lsky Pro - -Lsky Pro 是一个用于在线上传、管理图片的图床程序,中文名:兰空图床,你可以将它作为自己的云上相册,亦可以当作你的写作贴图库。 - -## 产品特色: - -- 支持本地等多种第三方云储存 AWS S3、阿里云 OSS、腾讯云 COS、七牛云、又拍云、SFTP、FTP、WebDav、Minio -- 多种数据库驱动支持,MySQL 5.7+、PostgreSQL 9.6+、SQLite 3.8.8+、SQL Server 2017+ -- 支持配置使用多种缓存驱动,Memcached、Redis、DynamoDB、等其他关系型数据库,默认以文件的方式缓存 -- 多图上传、拖拽上传、粘贴上传、动态设置策略上传、复制、一键复制链接 -- 强大的图片管理功能,瀑布流展示,支持鼠标右键、单选多选、重命名等操作 -- 自由度极高的角色组配置,可以为每个组配置多个储存策略,同时储存策略可以配置多个角色组 -- 可针对角色组设置上传文件、文件夹路径命名规则、上传频率限制、图片审核等功能 -- 支持图片水印、文字水印、水印平铺、设置水印位置、X/y 轴偏移量设置、旋转角度等 -- 支持通过接口上传、管理图片、管理相册 -- 支持在线增量更新、跨版本更新 -- 图片广场 \ No newline at end of file diff --git a/lsky-pro/data.yml b/lsky-pro/data.yml deleted file mode 100644 index 5c0da3943..000000000 --- a/lsky-pro/data.yml +++ /dev/null @@ -1,22 +0,0 @@ -name: Lsky-pro -tags: - - 云存储 -title: 用于在线上传、管理图片的图床程序 -description: 用于在线上传、管理图片的图床程序 -additionalProperties: - key: lsky-pro - name: Lsky-pro - tags: - - Storage - shortDescZh: 用于在线上传、管理图片的图床程序 - shortDescEn: An image bed program for uploading and managing images online - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://hub.docker.com/r/halcyonazure/lsky-pro-docker - github: https://github.com/lsky-org/lsky-pro - document: https://docs.lsky.pro/ - architectures: - - amd64 - - arm64 diff --git a/lsky-pro/latest/data.yml b/lsky-pro/latest/data.yml deleted file mode 100644 index 4f86dac53..000000000 --- a/lsky-pro/latest/data.yml +++ /dev/null @@ -1,10 +0,0 @@ -additionalProperties: - formFields: - - default: 40027 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number diff --git a/lsky-pro/latest/docker-compose.yml b/lsky-pro/latest/docker-compose.yml deleted file mode 100644 index 1b126df08..000000000 --- a/lsky-pro/latest/docker-compose.yml +++ /dev/null @@ -1,18 +0,0 @@ -services: - lskypro: - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - volumes: - - ./data:/var/www/html/ - ports: - - "${PANEL_APP_PORT_HTTP}:8089" - environment: - - "WEB_PORT=8089" - image: halcyonazure/lsky-pro-docker:latest - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/lsky-pro/logo.png b/lsky-pro/logo.png deleted file mode 100644 index 9b6a788c2..000000000 Binary files a/lsky-pro/logo.png and /dev/null differ diff --git a/maddy-mail/0.8.1/data.yml b/maddy-mail/0.8.1/data.yml deleted file mode 100644 index 9750257dc..000000000 --- a/maddy-mail/0.8.1/data.yml +++ /dev/null @@ -1,119 +0,0 @@ -additionalProperties: - formFields: - - default: 25 - disabled: true - envKey: SMTP_IN_PORT - labelEn: SMTP inbound port - labelZh: SMTP 入站端口 - required: true - rule: paramPort - type: number - label: - en: SMTP inbound port - ja: SMTP 受信ポート - ms: Port masuk SMTP - pt-br: Porta de entrada SMTP - ru: Входной порт SMTP - ko: SMTP 수신 포트 - zh-Hant: SMTP 進口埠 - zh: SMTP 入站端口 - - default: 143 - disabled: true - envKey: IMAP4_PORT - labelEn: IMAP4 port - labelZh: IMAP4 端口 - required: true - rule: paramPort - type: number - label: - en: IMAP4 port - ja: IMAP4 ポート - ms: Port IMAP4 - pt-br: Porta IMAP4 - ru: Порт IMAP4 - ko: IMAP4 포트 - zh-Hant: IMAP4 埠 - zh: IMAP4 端口 - - default: 993 - disabled: true - envKey: IMAP4_PORT2 - labelEn: IMAP4 port - labelZh: IMAP4 端口 - required: true - rule: paramPort - type: number - label: - en: IMAP4 port - ja: IMAP4 ポート - ms: Port IMAP4 - pt-br: Porta IMAP4 - ru: Порт IMAP4 - ko: IMAP4 포트 - zh-Hant: IMAP4 埠 - zh: IMAP4 端口 - - default: 465 - disabled: true - envKey: SMTP_S_PORT - labelEn: SMTP Submission ports - labelZh: SMTP 提交端口 - required: true - rule: paramPort - type: number - label: - en: SMTP Submission ports - ja: SMTP 提出ポート - ms: Port Penghantaran SMTP - pt-br: Portas de envio SMTP - ru: Порты отправки SMTP - ko: SMTP 제출 포트 - zh-Hant: SMTP 提交埠 - zh: SMTP 提交端口 - - default: 587 - disabled: true - envKey: SMTP_S_PORT2 - labelEn: SMTP Submission ports - labelZh: SMTP 提交端口 - required: true - rule: paramPort - type: number - label: - en: SMTP Submission ports - ja: SMTP 提出ポート - ms: Port Penghantaran SMTP - pt-br: Portas de envio SMTP - ru: Порты отправки SMTP - ko: SMTP 제출 포트 - zh-Hant: SMTP 提交埠 - zh: SMTP 提交端口 - - default: mail.example.com - edit: true - envKey: MAIL_HOSTNAME - labelEn: Mail MX hostname - labelZh: 邮箱 MX 主机名 - required: true - type: text - label: - en: Mail MX hostname - ja: メール MX ホスト名 - ms: Nama hos MX mel - pt-br: Nome do host MX de e-mail - ru: Имя хоста MX для почты - ko: 메일 MX 호스트 이름 - zh-Hant: 郵件 MX 主機名稱 - zh: 邮件 MX 主机名 - - default: example.com - edit: true - envKey: MAIL_DOMAIN - labelEn: Mail domain - labelZh: 邮箱域名 - required: true - type: text - label: - en: Mail domain - ja: メールドメイン - ms: Domain mel - pt-br: Domínio de e-mail - ru: Почтовый домен - ko: 메일 도메인 - zh-Hant: 郵件域名 - zh: 邮件域名 \ No newline at end of file diff --git a/maddy-mail/0.8.1/docker-compose.yml b/maddy-mail/0.8.1/docker-compose.yml deleted file mode 100644 index c082961ea..000000000 --- a/maddy-mail/0.8.1/docker-compose.yml +++ /dev/null @@ -1,28 +0,0 @@ -services: - maddymail: - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - "${SMTP_IN_PORT}:25" - - "${IMAP4_PORT}:143" - - "${SMTP_S_PORT}:465" - - "${SMTP_S_PORT2}:587" - - "${IMAP4_PORT2}:993" - volumes: - - maddydata:/data - environment: - - MADDY_HOSTNAME=${MAIL_HOSTNAME} - - MADDY_DOMAIN=${MAIL_DOMAIN} - image: foxcpp/maddy:0.8.1 - labels: - createdBy: "Apps" - -volumes: - maddydata: - external: true - -networks: - 1panel-network: - external: true diff --git a/maddy-mail/0.8.1/scripts/init.sh b/maddy-mail/0.8.1/scripts/init.sh deleted file mode 100644 index fcbb02260..000000000 --- a/maddy-mail/0.8.1/scripts/init.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -docker volume create maddydata \ No newline at end of file diff --git a/maddy-mail/0.8.1/scripts/uninstall.sh b/maddy-mail/0.8.1/scripts/uninstall.sh deleted file mode 100644 index 1a62d5e58..000000000 --- a/maddy-mail/0.8.1/scripts/uninstall.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -docker-compose down --volumes \ No newline at end of file diff --git a/maddy-mail/README.md b/maddy-mail/README.md deleted file mode 100644 index c9161af87..000000000 --- a/maddy-mail/README.md +++ /dev/null @@ -1,98 +0,0 @@ -# 使用说明 - -## 1. 准备域名证书 -使用`acme.sh`、`certbot`、手动上传等方式准备好域名证书,注意需要按需修改。 - -证书对应域名为邮箱`MX`主机名如`mail.example.com `。 - -## 2. 安装应用 - -应用商店安装应用, - -第一次安装会显示异常,容器无法正常运行,不必在意,因为缺少证书文件。 - -忽略错误,进行下一步操作。 - - -## 3. 域名证书存放到存储卷 - -如果 容器-存储卷 目录没有 maddydata ,那么需要手动执行 -``` -docker volume create maddydata -``` - -存储卷默认路径如下 -`/var/lib/docker/volumes/maddydata/_data/` - -``` -# 进入存储卷路径 -cd $(docker volume inspect maddydata --format '{{.Mountpoint}}') - -# 创建证书文件夹 -mkdir -p tls -``` -上传证书和私钥到`tls`文件夹,并重命名为 -- fullchain.pem -- privkey.pem - -按要求上传完成证书文件后,容器会自动正常运行。 - -## 4. 设置DKIM DNS解析 -### 4.1 获取DKIM值 - -当容器正常运行后 - -在`/var/lib/docker/volumes/maddydata/_data/dkim_keys`路径下 - -会有个类似`example.com_default.dns`的文件 - -其中则是需要获取的相关信息。 - -- 注意按需修改域名 - -终端查看 -``` -cat /var/lib/docker/volumes/maddydata/_data/dkim_keys/example.com_default.dns -``` - -会得到类似以下内容 -``` -default._domainkey.example.org. TXT "v=DKIM1; k=ed25519; p=nAcUUozPlhc4VPhp7hZl+owES7j7OlEv0laaDEDBAqg=" -``` - -### 4.2 设置DNS TXT记录 - -根据获取的信息设置`DNS解析` - -例子如下: -为 `default._domainkey.example.com` 添加`TXT`记录,值设置为`v=DKIM1; k=ed25519; p=nAcUUozPlhc4VPhp7hZl+owES7j7OlEv0laaDEDBAqg=`。 - -## 5. 设置DNS解析 - -- 注意按需修改 - -| 记录类型 | 域名 | 值 | -| --- | --- | --- | -| A | `mail.example.com` | `服务器ipv4地址` | -| A | `example.com` | `服务器ipv4地址` | -| AAAA | `mail.example.com` | `服务器ipv6地址(如果有)` | -| AAAA | `example.com` | `服务器ipv6地址(如果有)` | -| MX | `example.com` | `mail.example.com` | -| TXT | `mail.example.com` | `v=spf1 mx ~all` | -| TXT | `example.com` | `v=spf1 mx ~all` | -| TXT | `_dmarc.example.com` | `v=DMARC1; p=quarantine; ruf=mailto:postmaster@example.com` | -| TXT | `_mta-sts.example.com` | `v=STSv1; id=1` | -| TXT | `_smtp._tls.example.com` | `v=TLSRPTv1;rua=mailto:postmaster@example.com` | - -## 6. 创建发送账户 - -面板`容器`界面,连接容器终端,执行以下命令 - -- 注意按需修改 - -``` -maddy creds create postmaster@example.com - -maddy imap-acct create postmaster@example.com -``` -结束 diff --git a/maddy-mail/README_en.md b/maddy-mail/README_en.md deleted file mode 100644 index fcf515321..000000000 --- a/maddy-mail/README_en.md +++ /dev/null @@ -1,97 +0,0 @@ -# User Guide - -## 1. Prepare Domain Certificates - -Prepare a domain certificate using tools like `acme.sh`, `certbot`, or manual upload. Modify the configurations as needed. - -The certificate domain should correspond to the mail server's `MX` hostname, such as `mail.example.com`. - - -## 2. Install the Application - -Install the application from the app store. - -The first installation may show an error and the container may not run properly due to missing certificate files. - -Ignore the error and proceed to the next step. - - -## 3. Place the Domain Certificate into the Volume - -If the maddydata directory is not present in the container storage volume, you need to manually execute: -``` -docker volume create maddydata -``` - -The default path for the volume is:`/var/lib/docker/volumes/maddydata/_data/` - -``` -# Enter the volume path -cd $(docker volume inspect maddydata --format '{{.Mountpoint}}') - -# Create certificate folder -mkdir -p tls -``` -Upload the certificate and private key to the tls folder, and rename them as: -- fullchain.pem -- privkey.pem - -Once the certificates are correctly uploaded, the container will automatically start running. - -## 4. Configure DKIM DNS Records -### 4.1 Retrieve DKIM Values - -After the container starts running, check the path:`/var/lib/docker/volumes/maddydata/_data/dkim_keys` - -You will find a file named like `example.com_default.dns`. - -This file contains the required DKIM information. - -- Make sure to modify the domain as needed. - -To view the contents in the terminal: -``` -cat /var/lib/docker/volumes/maddydata/_data/dkim_keys/example.com_default.dns -``` - -Example output: -``` -default._domainkey.example.org. TXT "v=DKIM1; k=ed25519; p=nAcUUozPlhc4VPhp7hZl+owES7j7OlEv0laaDEDBAqg=" -``` - -### 4.2 Set DNS TXT Record - -Set the `DNS records` based on the retrieved information. - -For example: -Add a `TXT` record for `default._domainkey.example.com` with the value `v=DKIM1; k=ed25519; p=nAcUUozPlhc4VPhp7hZl+owES7j7OlEv0laaDEDBAqg=`. - -## 5. Set DNS Records - -- Ensure modifications as needed. - -| Record Type | Domain | Value | -|-------------| --- |-------------------------------------------------------------| -| A | `mail.example.com` | `Server IPv4 Address` | -| A | `example.com` | `Server IPv4 Address` | -| AAAA | `mail.example.com` | `Server IPv4 Address (if available)` | -| AAAA | `example.com` | `Server IPv4 Address (if available)` | -| MX | `example.com` | `mail.example.com` | -| TXT | `mail.example.com` | `v=spf1 mx ~all` | -| TXT | `example.com` | `v=spf1 mx ~all` | -| TXT | `_dmarc.example.com` | `v=DMARC1; p=quarantine; ruf=mailto:postmaster@example.com` | -| TXT | `_mta-sts.example.com` | `v=STSv1; id=1` | -| TXT | `_smtp._tls.example.com` | `v=TLSRPTv1;rua=mailto:postmaster@example.com` | - -## 6. Create Sending Accounts - -Access the container terminal via the `Containers` panel and execute the following commands: - -- Ensure modifications as needed. - -``` -maddy creds create postmaster@example.com - -maddy imap-acct create postmaster@example.com -``` -END diff --git a/maddy-mail/data.yml b/maddy-mail/data.yml deleted file mode 100644 index 53e31a6af..000000000 --- a/maddy-mail/data.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: Maddy Mail Server -tags: - - 邮件服务 -title: 可组合的多合一邮件服务器 -description: 可组合的多合一邮件服务器 -additionalProperties: - key: maddy-mail - name: Maddy Mail Server - tags: - - Email - shortDescZh: 可组合的多合一邮件服务器 - shortDescEn: Composable all-in-one mail server - description: - en: Composable all-in-one mail server - ja: 組み合わせ可能なオールインワンメールサーバー - ms: Pelayan mel semua-dalam-satu yang boleh disusun - pt-br: Servidor de e-mail tudo-em-um composível - ru: Составной универсальный почтовый сервер - ko: 구성 가능한 올인원 메일 서버 - zh-Hant: 可組合的一體化郵件伺服器 - zh: 可组合的全能邮件服务器 - type: website - crossVersionUpdate: true - limit: 1 - recommend: 0 - website: https://maddy.email - github: https://github.com/foxcpp/maddy - document: https://maddy.email - architectures: - - amd64 - - arm64 diff --git a/maddy-mail/logo.png b/maddy-mail/logo.png deleted file mode 100644 index 61bb89660..000000000 Binary files a/maddy-mail/logo.png and /dev/null differ diff --git a/mailserver/15.0.2/conf/mailserver.env b/mailserver/15.0.2/conf/mailserver.env deleted file mode 100644 index 1d619d762..000000000 --- a/mailserver/15.0.2/conf/mailserver.env +++ /dev/null @@ -1,619 +0,0 @@ -# ----------------------------------------------- -# --- Mailserver Environment Variables ---------- -# ----------------------------------------------- - -# DOCUMENTATION FOR THESE VARIABLES IS FOUND UNDER -# https://docker-mailserver.github.io/docker-mailserver/latest/config/environment/ - -# ----------------------------------------------- -# --- General Section --------------------------- -# ----------------------------------------------- - -# empty => uses the `hostname` command to get the mail server's canonical hostname -# => Specify a fully-qualified domainname to serve mail for. This is used for many of the config features so if you can't set your hostname (e.g. you're in a container platform that doesn't let you) specify it in this environment variable. -OVERRIDE_HOSTNAME= - -# REMOVED in version v11.0.0! Use LOG_LEVEL instead. -DMS_DEBUG=0 - -# Set the log level for DMS. -# This is mostly relevant for container startup scripts and change detection event feedback. -# -# Valid values (in order of increasing verbosity) are: `error`, `warn`, `info`, `debug` and `trace`. -# The default log level is `info`. -LOG_LEVEL=info - -# critical => Only show critical messages -# error => Only show erroneous output -# **warn** => Show warnings -# info => Normal informational output -# debug => Also show debug messages -SUPERVISOR_LOGLEVEL= - -# 0 => mail state in default directories -# 1 => consolidate all states into a single directory (`/var/mail-state`) to allow persistence using docker volumes -ONE_DIR=1 - -# Support for deployment where these defaults are not compatible (eg: some NAS appliances): -# /var/mail vmail User ID (default: 5000) -DMS_VMAIL_UID= -# /var/mail vmail Group ID (default: 5000) -DMS_VMAIL_GID= - -# **empty** => use FILE -# LDAP => use LDAP authentication -# OIDC => use OIDC authentication (not yet implemented) -# FILE => use local files (this is used as the default) -ACCOUNT_PROVISIONER= - -# empty => postmaster@domain.com -# => Specify the postmaster address -POSTMASTER_ADDRESS= - -# Check for updates on container start and then once a day -# If an update is available, a mail is sent to POSTMASTER_ADDRESS -# 0 => Update check disabled -# 1 => Update check enabled -ENABLE_UPDATE_CHECK=1 - -# Customize the update check interval. -# Number + Suffix. Suffix must be 's' for seconds, 'm' for minutes, 'h' for hours or 'd' for days. -UPDATE_CHECK_INTERVAL=1d - -# Set different options for mynetworks option (can be overwrite in postfix-main.cf) -# **WARNING**: Adding the docker network's gateway to the list of trusted hosts, e.g. using the `network` or -# `connected-networks` option, can create an open relay -# https://github.com/docker-mailserver/docker-mailserver/issues/1405#issuecomment-590106498 -# The same can happen for rootless podman. To prevent this, set the value to "none" or configure slirp4netns -# https://github.com/docker-mailserver/docker-mailserver/issues/2377 -# -# none => Explicitly force authentication -# container => Container IP address only -# host => Add docker container network (ipv4 only) -# network => Add all docker container networks (ipv4 only) -# connected-networks => Add all connected docker networks (ipv4 only) -PERMIT_DOCKER=none - -# Set the timezone. If this variable is unset, the container runtime will try to detect the time using -# `/etc/localtime`, which you can alternatively mount into the container. The value of this variable -# must follow the pattern `AREA/ZONE`, i.e. of you want to use Germany's time zone, use `Europe/Berlin`. -# You can lookup all available timezones here: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List -TZ= - -# In case you network interface differs from 'eth0', e.g. when you are using HostNetworking in Kubernetes, -# you can set NETWORK_INTERFACE to whatever interface you want. This interface will then be used. -# - **empty** => eth0 -NETWORK_INTERFACE= - -# empty => modern -# modern => Enables TLSv1.2 and modern ciphers only. (default) -# intermediate => Enables TLSv1, TLSv1.1 and TLSv1.2 and broad compatibility ciphers. -TLS_LEVEL= - -# Configures the handling of creating mails with forged sender addresses. -# -# **0** => (not recommended) Mail address spoofing allowed. Any logged in user may create email messages with a forged sender address (see also https://en.wikipedia.org/wiki/Email_spoofing). -# 1 => Mail spoofing denied. Each user may only send with his own or his alias addresses. Addresses with extension delimiters(http://www.postfix.org/postconf.5.html#recipient_delimiter) are not able to send messages. -SPOOF_PROTECTION= - -# Enables the Sender Rewriting Scheme. SRS is needed if your mail server acts as forwarder. See [postsrsd](https://github.com/roehling/postsrsd/blob/master/README.md#sender-rewriting-scheme-crash-course) for further explanation. -# - **0** => Disabled -# - 1 => Enabled -ENABLE_SRS=0 - -# Enables the OpenDKIM service. -# **1** => Enabled -# 0 => Disabled -ENABLE_OPENDKIM=1 - -# Enables the OpenDMARC service. -# **1** => Enabled -# 0 => Disabled -ENABLE_OPENDMARC=1 - - -# Enabled `policyd-spf` in Postfix's configuration. You will likely want to set this -# to `0` in case you're using Rspamd (`ENABLE_RSPAMD=1`). -# -# - 0 => Disabled -# - **1** => Enabled -ENABLE_POLICYD_SPF=1 - -# 1 => Enables POP3 service -# empty => disables POP3 -ENABLE_POP3= - -# Enables ClamAV, and anti-virus scanner. -# 1 => Enabled -# **0** => Disabled -ENABLE_CLAMAV=0 - -# Enables Rspamd -# **0** => Disabled -# 1 => Enabled -ENABLE_RSPAMD=0 - -# When `ENABLE_RSPAMD=1`, an internal Redis instance is enabled implicitly. -# This setting provides an opt-out to allow using an external instance instead. -# 0 => Disabled -# 1 => Enabled -ENABLE_RSPAMD_REDIS= - -# When enabled, -# -# 1. the "[autolearning][rspamd-autolearn]" feature is turned on; -# 2. the Bayes classifier will be trained when moving mails from or to the Junk folder (with the help of Sieve scripts). -# -# **0** => disabled -# 1 => enabled -RSPAMD_LEARN=0 - -# This settings controls whether checks should be performed on emails coming -# from authenticated users (i.e. most likely outgoing emails). The default value -# is `0` in order to align better with SpamAssassin. We recommend reading -# through https://rspamd.com/doc/tutorials/scanning_outbound.html though to -# decide for yourself whether you need and want this feature. -RSPAMD_CHECK_AUTHENTICATED=0 - -# Controls whether the Rspamd Greylisting module is enabled. -# This module can further assist in avoiding spam emails by greylisting -# e-mails with a certain spam score. -# -# **0** => disabled -# 1 => enabled -RSPAMD_GREYLISTING=0 - -# Can be used to enable or disable the Hfilter group module. -# -# - 0 => Disabled -# - **1** => Enabled -RSPAMD_HFILTER=1 - -# Can be used to control the score when the HFILTER_HOSTNAME_UNKNOWN symbol applies. A higher score is more punishing. Setting it to 15 is equivalent to rejecting the email when the check fails. -# -# Default: 6 -RSPAMD_HFILTER_HOSTNAME_UNKNOWN_SCORE=6 - -# Amavis content filter (used for ClamAV & SpamAssassin) -# 0 => Disabled -# 1 => Enabled -ENABLE_AMAVIS=1 - -# -1/-2/-3 => Only show errors -# **0** => Show warnings -# 1/2 => Show default informational output -# 3/4/5 => log debug information (very verbose) -AMAVIS_LOGLEVEL=0 - -# This enables DNS block lists in Postscreen. -# Note: Emails will be rejected, if they don't pass the block list checks! -# **0** => DNS block lists are disabled -# 1 => DNS block lists are enabled -ENABLE_DNSBL=0 - -# If you enable Fail2Ban, don't forget to add the following lines to your `compose.yaml`: -# cap_add: -# - NET_ADMIN -# Otherwise, `nftables` won't be able to ban IPs. -ENABLE_FAIL2BAN=0 - -# Fail2Ban blocktype -# drop => drop packet (send NO reply) -# reject => reject packet (send ICMP unreachable) -FAIL2BAN_BLOCKTYPE=drop - -# 1 => Enables Managesieve on port 4190 -# empty => disables Managesieve -ENABLE_MANAGESIEVE= - -# **enforce** => Allow other tests to complete. Reject attempts to deliver mail with a 550 SMTP reply, and log the helo/sender/recipient information. Repeat this test the next time the client connects. -# drop => Drop the connection immediately with a 521 SMTP reply. Repeat this test the next time the client connects. -# ignore => Ignore the failure of this test. Allow other tests to complete. Repeat this test the next time the client connects. This option is useful for testing and collecting statistics without blocking mail. -POSTSCREEN_ACTION=enforce - -# empty => all daemons start -# 1 => only launch postfix smtp -SMTP_ONLY= - -# Please read [the SSL page in the documentation](https://docker-mailserver.github.io/docker-mailserver/latest/config/security/ssl) for more information. -# -# empty => SSL disabled -# letsencrypt => Enables Let's Encrypt certificates -# custom => Enables custom certificates -# manual => Let's you manually specify locations of your SSL certificates for non-standard cases -# self-signed => Enables self-signed certificates -SSL_TYPE= - -# These are only supported with `SSL_TYPE=manual`. -# Provide the path to your cert and key files that you've mounted access to within the container. -SSL_CERT_PATH= -SSL_KEY_PATH= -# Optional: A 2nd certificate can be supported as fallback (dual cert support), eg ECDSA with an RSA fallback. -# Useful for additional compatibility with older MTA and MUA (eg pre-2015). -SSL_ALT_CERT_PATH= -SSL_ALT_KEY_PATH= - -# Set how many days a virusmail will stay on the server before being deleted -# empty => 7 days -VIRUSMAILS_DELETE_DELAY= - -# Configure Postfix `virtual_transport` to deliver mail to a different LMTP client (default is a dovecot socket). -# Provide any valid URI. Examples: -# -# empty => `lmtp:unix:/var/run/dovecot/lmtp` (default, configured in Postfix main.cf) -# `lmtp:unix:private/dovecot-lmtp` (use socket) -# `lmtps:inet::` (secure lmtp with starttls) -# `lmtp::2003` (use kopano as mailstore) -POSTFIX_DAGENT= - -# Set the mailbox size limit for all users. If set to zero, the size will be unlimited (default). -# -# empty => 0 -POSTFIX_MAILBOX_SIZE_LIMIT= - -# See https://docker-mailserver.github.io/docker-mailserver/edge/config/user-management/accounts/#notes -# 0 => Dovecot quota is disabled -# 1 => Dovecot quota is enabled -ENABLE_QUOTAS=1 - -# Set the message size limit for all users. If set to zero, the size will be unlimited (not recommended!) -# -# empty => 10240000 (~10 MB) -POSTFIX_MESSAGE_SIZE_LIMIT= - -# Mails larger than this limit won't be scanned. -# ClamAV must be enabled (ENABLE_CLAMAV=1) for this. -# -# empty => 25M (25 MB) -CLAMAV_MESSAGE_SIZE_LIMIT= - -# Enables regular pflogsumm mail reports. -# This is a new option. The old REPORT options are still supported for backwards compatibility. If this is not set and reports are enabled with the old options, logrotate will be used. -# -# not set => No report -# daily_cron => Daily report for the previous day -# logrotate => Full report based on the mail log when it is rotated -PFLOGSUMM_TRIGGER= - -# Recipient address for pflogsumm reports. -# -# not set => Use REPORT_RECIPIENT or POSTMASTER_ADDRESS -# => Specify the recipient address(es) -PFLOGSUMM_RECIPIENT= - -# Sender address (`FROM`) for pflogsumm reports if pflogsumm reports are enabled. -# -# not set => Use REPORT_SENDER -# => Specify the sender address -PFLOGSUMM_SENDER= - -# Interval for logwatch report. -# -# none => No report is generated -# daily => Send a daily report -# weekly => Send a report every week -LOGWATCH_INTERVAL= - -# Recipient address for logwatch reports if they are enabled. -# -# not set => Use REPORT_RECIPIENT or POSTMASTER_ADDRESS -# => Specify the recipient address(es) -LOGWATCH_RECIPIENT= - -# Sender address (`FROM`) for logwatch reports if logwatch reports are enabled. -# -# not set => Use REPORT_SENDER -# => Specify the sender address -LOGWATCH_SENDER= - -# Defines who receives reports if they are enabled. -# **empty** => ${POSTMASTER_ADDRESS} -# => Specify the recipient address -REPORT_RECIPIENT= - -# Defines who sends reports if they are enabled. -# **empty** => mailserver-report@${DOMAINNAME} -# => Specify the sender address -REPORT_SENDER= - -# Changes the interval in which log files are rotated -# **weekly** => Rotate log files weekly -# daily => Rotate log files daily -# monthly => Rotate log files monthly -# -# Note: This Variable actually controls logrotate inside the container -# and rotates the log files depending on this setting. The main log output is -# still available in its entirety via `docker logs mail` (Or your -# respective container name). If you want to control logrotation for -# the Docker-generated logfile see: -# https://docs.docker.com/config/containers/logging/configure/ -# -# Note: This variable can also determine the interval for Postfix's log summary reports, see [`PFLOGSUMM_TRIGGER`](#pflogsumm_trigger). -LOGROTATE_INTERVAL=weekly - - -# If enabled, employs `reject_unknown_client_hostname` to sender restrictions in Postfix's configuration. -# -# - **0** => Disabled -# - 1 => Enabled -POSTFIX_REJECT_UNKNOWN_CLIENT_HOSTNAME=0 - -# Choose TCP/IP protocols for postfix to use -# **all** => All possible protocols. -# ipv4 => Use only IPv4 traffic. Most likely you want this behind Docker. -# ipv6 => Use only IPv6 traffic. -# -# Note: More details at http://www.postfix.org/postconf.5.html#inet_protocols -POSTFIX_INET_PROTOCOLS=all - -# Choose TCP/IP protocols for dovecot to use -# **all** => Listen on all interfaces -# ipv4 => Listen only on IPv4 interfaces. Most likely you want this behind Docker. -# ipv6 => Listen only on IPv6 interfaces. -# -# Note: More information at https://dovecot.org/doc/dovecot-example.conf -DOVECOT_INET_PROTOCOLS=all - -# ----------------------------------------------- -# --- SpamAssassin Section ---------------------- -# ----------------------------------------------- - -ENABLE_SPAMASSASSIN=0 - -# deliver spam messages in the inbox (eventually tagged using SA_SPAM_SUBJECT) -SPAMASSASSIN_SPAM_TO_INBOX=1 - -# KAM is a 3rd party SpamAssassin ruleset, provided by the McGrail Foundation. -# If SpamAssassin is enabled, KAM can be used in addition to the default ruleset. -# - **0** => KAM disabled -# - 1 => KAM enabled -# -# Note: only has an effect if `ENABLE_SPAMASSASSIN=1` -ENABLE_SPAMASSASSIN_KAM=0 - -# spam messages will be moved in the Junk folder (SPAMASSASSIN_SPAM_TO_INBOX=1 required) -MOVE_SPAM_TO_JUNK=1 - -# spam messages wil be marked as read -MARK_SPAM_AS_READ=0 - -# add spam info headers if at, or above that level: -SA_TAG=2.0 - -# add 'spam detected' headers at that level -SA_TAG2=6.31 - -# triggers spam evasive actions -SA_KILL=10.0 - -# add tag to subject if spam detected -SA_SPAM_SUBJECT=***SPAM***** - -# ----------------------------------------------- -# --- Fetchmail Section ------------------------- -# ----------------------------------------------- - -ENABLE_FETCHMAIL=0 - -# The interval to fetch mail in seconds -FETCHMAIL_POLL=300 - -# Enable or disable `getmail`. -# -# - **0** => Disabled -# - 1 => Enabled -ENABLE_GETMAIL=0 - -# The number of minutes for the interval. Min: 1; Max: 30. -GETMAIL_POLL=5 - -# ----------------------------------------------- -# --- LDAP Section ------------------------------ -# ----------------------------------------------- - -# A second container for the ldap service is necessary (i.e. https://hub.docker.com/r/bitnami/openldap/) - -# empty => no -# yes => LDAP over TLS enabled for Postfix -LDAP_START_TLS= - -# empty => mail.example.com -# Specify the `` / `` where the LDAP server is reachable via a URI like: `ldaps://mail.example.com`. -# Note: You must include the desired URI scheme (`ldap://`, `ldaps://`, `ldapi://`). -LDAP_SERVER_HOST= - -# empty => ou=people,dc=domain,dc=com -# => e.g. LDAP_SEARCH_BASE=dc=mydomain,dc=local -LDAP_SEARCH_BASE= - -# empty => cn=admin,dc=domain,dc=com -# => take a look at examples of SASL_LDAP_BIND_DN -LDAP_BIND_DN= - -# empty** => admin -# => Specify the password to bind against ldap -LDAP_BIND_PW= - -# e.g. `"(&(mail=%s)(mailEnabled=TRUE))"` -# => Specify how ldap should be asked for users -LDAP_QUERY_FILTER_USER= - -# e.g. `"(&(mailGroupMember=%s)(mailEnabled=TRUE))"` -# => Specify how ldap should be asked for groups -LDAP_QUERY_FILTER_GROUP= - -# e.g. `"(&(mailAlias=%s)(mailEnabled=TRUE))"` -# => Specify how ldap should be asked for aliases -LDAP_QUERY_FILTER_ALIAS= - -# e.g. `"(&(|(mail=*@%s)(mailalias=*@%s)(mailGroupMember=*@%s))(mailEnabled=TRUE))"` -# => Specify how ldap should be asked for domains -LDAP_QUERY_FILTER_DOMAIN= - -# ----------------------------------------------- -# --- Dovecot Section --------------------------- -# ----------------------------------------------- - -# empty => no -# yes => LDAP over TLS enabled for Dovecot -DOVECOT_TLS= - -# e.g. `"(&(objectClass=PostfixBookMailAccount)(uniqueIdentifier=%n))"` -DOVECOT_USER_FILTER= - -# e.g. `"(&(objectClass=PostfixBookMailAccount)(uniqueIdentifier=%n))"` -DOVECOT_PASS_FILTER= - -# Define the mailbox format to be used -# default is maildir, supported values are: sdbox, mdbox, maildir -DOVECOT_MAILBOX_FORMAT=maildir - -# empty => no -# yes => Allow bind authentication for LDAP -# https://wiki.dovecot.org/AuthDatabase/LDAP/AuthBinds -DOVECOT_AUTH_BIND= - -# ----------------------------------------------- -# --- Postgrey Section -------------------------- -# ----------------------------------------------- - -ENABLE_POSTGREY=0 -# greylist for N seconds -POSTGREY_DELAY=300 -# delete entries older than N days since the last time that they have been seen -POSTGREY_MAX_AGE=35 -# response when a mail is greylisted -POSTGREY_TEXT="Delayed by Postgrey" -# whitelist host after N successful deliveries (N=0 to disable whitelisting) -POSTGREY_AUTO_WHITELIST_CLIENTS=5 - -# ----------------------------------------------- -# --- SASL Section ------------------------------ -# ----------------------------------------------- - -ENABLE_SASLAUTHD=0 - -# empty => pam -# `ldap` => authenticate against ldap server -# `shadow` => authenticate against local user db -# `mysql` => authenticate against mysql db -# `rimap` => authenticate against imap server -# Note: can be a list of mechanisms like pam ldap shadow -SASLAUTHD_MECHANISMS= - -# empty => None -# e.g. with SASLAUTHD_MECHANISMS rimap you need to specify the ip-address/servername of the imap server ==> xxx.xxx.xxx.xxx -SASLAUTHD_MECH_OPTIONS= - -# empty => Use value of LDAP_SERVER_HOST -# Note: You must include the desired URI scheme (`ldap://`, `ldaps://`, `ldapi://`). -SASLAUTHD_LDAP_SERVER= - -# empty => Use value of LDAP_BIND_DN -# specify an object with privileges to search the directory tree -# e.g. active directory: SASLAUTHD_LDAP_BIND_DN=cn=Administrator,cn=Users,dc=mydomain,dc=net -# e.g. openldap: SASLAUTHD_LDAP_BIND_DN=cn=admin,dc=mydomain,dc=net -SASLAUTHD_LDAP_BIND_DN= - -# empty => Use value of LDAP_BIND_PW -SASLAUTHD_LDAP_PASSWORD= - -# empty => Use value of LDAP_SEARCH_BASE -# specify the search base -SASLAUTHD_LDAP_SEARCH_BASE= - -# empty => default filter `(&(uniqueIdentifier=%u)(mailEnabled=TRUE))` -# e.g. for active directory: `(&(sAMAccountName=%U)(objectClass=person))` -# e.g. for openldap: `(&(uid=%U)(objectClass=person))` -SASLAUTHD_LDAP_FILTER= - -# empty => no -# yes => LDAP over TLS enabled for SASL -# If set to yes, the protocol in SASLAUTHD_LDAP_SERVER must be ldap:// or missing. -SASLAUTHD_LDAP_START_TLS= - -# empty => no -# yes => Require and verify server certificate -# If yes you must/could specify SASLAUTHD_LDAP_TLS_CACERT_FILE or SASLAUTHD_LDAP_TLS_CACERT_DIR. -SASLAUTHD_LDAP_TLS_CHECK_PEER= - -# File containing CA (Certificate Authority) certificate(s). -# empty => Nothing is added to the configuration -# Any value => Fills the `ldap_tls_cacert_file` option -SASLAUTHD_LDAP_TLS_CACERT_FILE= - -# Path to directory with CA (Certificate Authority) certificates. -# empty => Nothing is added to the configuration -# Any value => Fills the `ldap_tls_cacert_dir` option -SASLAUTHD_LDAP_TLS_CACERT_DIR= - -# Specify what password attribute to use for password verification. -# empty => Nothing is added to the configuration but the documentation says it is `userPassword` by default. -# Any value => Fills the `ldap_password_attr` option -SASLAUTHD_LDAP_PASSWORD_ATTR= - -# empty => `bind` will be used as a default value -# `fastbind` => The fastbind method is used -# `custom` => The custom method uses userPassword attribute to verify the password -SASLAUTHD_LDAP_AUTH_METHOD= - -# Specify the authentication mechanism for SASL bind -# empty => Nothing is added to the configuration -# Any value => Fills the `ldap_mech` option -SASLAUTHD_LDAP_MECH= - -# ----------------------------------------------- -# --- SRS Section ------------------------------- -# ----------------------------------------------- - -# envelope_sender => Rewrite only envelope sender address (default) -# header_sender => Rewrite only header sender (not recommended) -# envelope_sender,header_sender => Rewrite both senders -# An email has an "envelope" sender (indicating the sending server) and a -# "header" sender (indicating who sent it). More strict SPF policies may require -# you to replace both instead of just the envelope sender. -SRS_SENDER_CLASSES=envelope_sender - -# empty => Envelope sender will be rewritten for all domains -# provide comma separated list of domains to exclude from rewriting -SRS_EXCLUDE_DOMAINS= - -# empty => generated when the image is built -# provide a secret to use in base64 -# you may specify multiple keys, comma separated. the first one is used for -# signing and the remaining will be used for verification. this is how you -# rotate and expire keys -SRS_SECRET= - -# ----------------------------------------------- -# --- Default Relay Host Section ---------------- -# ----------------------------------------------- - -# Setup relaying all mail through a default relay host -# -# empty => don't configure default relay host -# default host and optional port to relay all mail through -DEFAULT_RELAY_HOST= - -# ----------------------------------------------- -# --- Multi-Domain Relay Section ---------------- -# ----------------------------------------------- - -# Setup relaying for multiple domains based on the domain name of the sender -# optionally uses usernames and passwords in postfix-sasl-password.cf and relay host mappings in postfix-relaymap.cf -# -# empty => don't configure relay host -# default host to relay mail through -RELAY_HOST= - -# empty => 25 -# default port to relay mail -RELAY_PORT=25 - -# empty => no default -# default relay username (if no specific entry exists in postfix-sasl-password.cf) -RELAY_USER= - -# empty => no default -# password for default relay user -RELAY_PASSWORD= \ No newline at end of file diff --git a/mailserver/15.0.2/data.yml b/mailserver/15.0.2/data.yml deleted file mode 100755 index 4fd0e1f97..000000000 --- a/mailserver/15.0.2/data.yml +++ /dev/null @@ -1,106 +0,0 @@ -additionalProperties: - formFields: - - default: mail.example.com - edit: true - envKey: MS_HOSTNAME - labelEn: domain - labelZh: 域名 - required: true - rule: paramExtUrl - type: text - label: - en: Domain - ja: ドメイン - ms: Domain - pt-br: Domínio - ru: Домен - ko: 도메인 - zh-Hant: 域名 - zh: 域名 - - default: 25 - edit: true - envKey: PANEL_APP_PORT_SMTP - labelEn: Port - labelZh: SMTP 端口 - required: true - rule: paramPort - type: number - label: - en: SMTP port - ja: SMTP ポート - ms: Port SMTP - pt-br: Porta SMTP - ru: Порт SMTP - ko: SMTP 포트 - zh-Hant: SMTP 埠 - zh: SMTP 端口 - - default: 143 - edit: true - envKey: PANEL_APP_PORT_IMAP4_143 - labelEn: Port - labelZh: IMAP4 端口 - required: true - rule: paramPort - type: number - label: - en: IMAP4 port - ja: IMAP4 ポート - ms: Port IMAP4 - pt-br: Porta IMAP4 - ru: Порт IMAP4 - ko: IMAP4 포트 - zh-Hant: IMAP4 埠 - zh: IMAP4 端口 - - default: 465 - edit: true - envKey: PANEL_APP_PORT_ESMTP_465 - labelEn: Port - labelZh: ESMTP 端口 - required: true - rule: paramPort - type: number - label: - en: ESMTP port - ja: ESMTP ポート - ms: Port ESMTP - pt-br: Porta ESMTP - ru: Порт ESMTP - ko: ESMTP 포트 - zh-Hant: ESMTP 埠 - zh: ESMTP 端口 - - default: 587 - edit: true - envKey: PANEL_APP_PORT_ESMTP_587 - labelEn: Port - labelZh: ESMTP 端口 - required: true - rule: paramPort - type: number - label: - en: ESMTP port - ja: ESMTP ポート - ms: Port ESMTP - pt-br: Porta ESMTP - ru: Порт ESMTP - ko: ESMTP 포트 - zh-Hant: ESMTP 埠 - zh: ESMTP 端口 - - default: 993 - edit: true - envKey: PANEL_APP_PORT_IMAP4_993 - labelEn: Port - labelZh: IMAP4 端口 - required: true - rule: paramPort - type: number - label: - en: IMAP4 port - ja: IMAP4 ポート - ms: Port IMAP4 - pt-br: Porta IMAP4 - ru: Порт IMAP4 - ko: IMAP4 포트 - zh-Hant: IMAP4 埠 - zh: IMAP4 端口 - - diff --git a/mailserver/15.0.2/docker-compose.yml b/mailserver/15.0.2/docker-compose.yml deleted file mode 100644 index d80304403..000000000 --- a/mailserver/15.0.2/docker-compose.yml +++ /dev/null @@ -1,31 +0,0 @@ -services: - mailserver: - image: ghcr.io/docker-mailserver/docker-mailserver:15.0.2 - container_name: ${CONTAINER_NAME} - hostname: ${MS_HOSTNAME} - env_file: ./conf/mailserver.env - ports: - - "${PANEL_APP_PORT_SMTP}:25" - - "${PANEL_APP_PORT_IMAP4_143}:143" - - "${PANEL_APP_PORT_ESMTP_465}:465" - - "${PANEL_APP_PORT_ESMTP_587}:587" - - "${PANEL_APP_PORT_IMAP4_993}:993" - volumes: - - ./data/dms/mail-data/:/var/mail/ - - ./data/dms/mail-state/:/var/mail-state/ - - ./data/dms/mail-logs/:/var/log/mail/ - - ./data/dms/config/:/tmp/docker-mailserver/ - - /etc/localtime:/etc/localtime:ro - restart: always - networks: - - 1panel-network - stop_grace_period: 1m - labels: - createdBy: "Apps" - healthcheck: - test: "ss --listening --tcp | grep -P 'LISTEN.+:smtp' || exit 1" - timeout: 3s - retries: 0 -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/mailserver/README.md b/mailserver/README.md deleted file mode 100644 index 5fb2dc391..000000000 --- a/mailserver/README.md +++ /dev/null @@ -1,13 +0,0 @@ -# 创建邮箱账户 - -点击左侧 `容器` 菜单,点击右侧 `终端` 按钮,执行以下命令来创建邮箱账户: - -```shell -// 创建邮箱账户: docker exec -ti setup email add - -setup email add admin@example.com -``` - -# Mailserver - -Mailserver 是一个生产就绪的全栈但简单的容器化邮件服务器(SMTP、IMAP、LDAP、反垃圾邮件、防病毒等)。只有配置文件,没有SQL数据库。保持简单和版本化。易于部署和升级。 \ No newline at end of file diff --git a/mailserver/README_en.md b/mailserver/README_en.md deleted file mode 100644 index 0ad00e436..000000000 --- a/mailserver/README_en.md +++ /dev/null @@ -1,15 +0,0 @@ -# Create Email Account - -1. Click the **`Containers`** menu on the left. -2. On the right, click the **`Terminal`** button. -3. Run the following command to create an email account: - - ```shell - // Create email account: - docker exec -ti setup email add - docker exec -ti setup email add admin@example.com - -# Mailserver - -Mailserver is a production-ready, full-stack but simple containerized email server (SMTP, IMAP, LDAP, anti-spam, antivirus, etc.). It uses only configuration files and no SQL database. It is designed to be simple, versioned, easy to deploy and upgrade. - diff --git a/mailserver/data.yml b/mailserver/data.yml deleted file mode 100755 index 812f194f7..000000000 --- a/mailserver/data.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: Mailserver -tags: - - 邮件服务 -title: 全栈但简单的容器化邮件服务器 -description: 全栈但简单的容器化邮件服务器 -additionalProperties: - key: mailserver - name: Mailserver - tags: - - Email - shortDescZh: 全栈但简单的容器化邮件服务器 - shortDescEn: Fullstack but simple containerized mail server - description: - en: Fullstack but simple containerized mail server - ja: フルスタックでありながらシンプルなコンテナ化されたメールサーバー - ms: Pelayan mel yang terkontainerisasi tetapi mudah - pt-br: Servidor de e-mail completo e simples, contêinerizado - ru: Полный, но простой контейнеризованный почтовый сервер - ko: 풀스택이지만 간단한 컨테이너화된 메일 서버 - zh-Hant: 全堆疊但簡單的容器化郵件伺服器 - zh: 全栈但简单的容器化邮件服务器 - type: website - crossVersionUpdate: false - limit: 0 - recommend: 0 - website: https://docker-mailserver.github.io/docker-mailserver/latest/ - github: https://github.com/docker-mailserver/docker-mailserver - document: https://docker-mailserver.github.io/docker-mailserver/latest/ - architectures: - - amd64 - - arm64 diff --git a/mailserver/logo.png b/mailserver/logo.png deleted file mode 100644 index 26d657721..000000000 Binary files a/mailserver/logo.png and /dev/null differ diff --git a/mariadb/10.11.13/conf/my.cnf b/mariadb/10.11.13/conf/my.cnf deleted file mode 100644 index 2debec9b3..000000000 --- a/mariadb/10.11.13/conf/my.cnf +++ /dev/null @@ -1,30 +0,0 @@ -# The MariaDB configuration file -# -# The MariaDB/MySQL tools read configuration files in the following order: -# 0. "/etc/mysql/my.cnf" symlinks to this file, reason why all the rest is read. -# 1. "/etc/mysql/mariadb.cnf" (this file) to set global defaults, -# 2. "/etc/mysql/conf.d/*.cnf" to set global options. -# 3. "/etc/mysql/mariadb.conf.d/*.cnf" to set MariaDB-only options. -# 4. "~/.my.cnf" to set user-specific options. -# -# If the same option is defined multiple times, the last one will apply. -# -# One can use all long options that the program supports. -# Run program with --help to get a list of available options and with -# --print-defaults to see which it would actually understand and use. -# -# If you are new to MariaDB, check out https://mariadb.com/kb/en/basic-mariadb-articles/ - -# -# This group is read both by the client and the server -# use it for options that affect everything -# -[client-server] -# Port or socket location where to connect -# port = 3306 -socket = /run/mysqld/mysqld.sock - -# Import all .cnf files from configuration directory - -!includedir /etc/mysql/mariadb.conf.d/ -!includedir /etc/mysql/conf.d/ \ No newline at end of file diff --git a/mariadb/10.11.13/data.yml b/mariadb/10.11.13/data.yml deleted file mode 100644 index 6f952e6ab..000000000 --- a/mariadb/10.11.13/data.yml +++ /dev/null @@ -1,35 +0,0 @@ -additionalProperties: - formFields: - - default: mariadb - envKey: PANEL_DB_ROOT_PASSWORD - labelEn: Root Password - labelZh: root用户密码 - random: true - required: true - type: password - label: - en: Root Password - ja: ルートパスワード - ms: Kata laluan root - pt-br: Senha do root - ru: Пароль root - ko: 루트 비밀번호 - zh-Hant: Root 密碼 - zh: Root 用户密码 - - default: 3306 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh-Hant: 埠 - zh: 端口 diff --git a/mariadb/10.11.13/docker-compose.yml b/mariadb/10.11.13/docker-compose.yml deleted file mode 100644 index 1964a81d1..000000000 --- a/mariadb/10.11.13/docker-compose.yml +++ /dev/null @@ -1,19 +0,0 @@ -services: - mariadb: - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - image: "mariadb:10.11.13" - ports: - - ${PANEL_APP_PORT_HTTP}:3306 - volumes: - - ./db/data:/var/lib/mysql - - ./conf/my.cnf:/etc/mysql/my.cnf - environment: - MYSQL_ROOT_PASSWORD: ${PANEL_DB_ROOT_PASSWORD} - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/mariadb/11.4.7/conf/my.cnf b/mariadb/11.4.7/conf/my.cnf deleted file mode 100644 index 2debec9b3..000000000 --- a/mariadb/11.4.7/conf/my.cnf +++ /dev/null @@ -1,30 +0,0 @@ -# The MariaDB configuration file -# -# The MariaDB/MySQL tools read configuration files in the following order: -# 0. "/etc/mysql/my.cnf" symlinks to this file, reason why all the rest is read. -# 1. "/etc/mysql/mariadb.cnf" (this file) to set global defaults, -# 2. "/etc/mysql/conf.d/*.cnf" to set global options. -# 3. "/etc/mysql/mariadb.conf.d/*.cnf" to set MariaDB-only options. -# 4. "~/.my.cnf" to set user-specific options. -# -# If the same option is defined multiple times, the last one will apply. -# -# One can use all long options that the program supports. -# Run program with --help to get a list of available options and with -# --print-defaults to see which it would actually understand and use. -# -# If you are new to MariaDB, check out https://mariadb.com/kb/en/basic-mariadb-articles/ - -# -# This group is read both by the client and the server -# use it for options that affect everything -# -[client-server] -# Port or socket location where to connect -# port = 3306 -socket = /run/mysqld/mysqld.sock - -# Import all .cnf files from configuration directory - -!includedir /etc/mysql/mariadb.conf.d/ -!includedir /etc/mysql/conf.d/ \ No newline at end of file diff --git a/mariadb/11.4.7/data.yml b/mariadb/11.4.7/data.yml deleted file mode 100644 index 02bae38f7..000000000 --- a/mariadb/11.4.7/data.yml +++ /dev/null @@ -1,35 +0,0 @@ -additionalProperties: - formFields: - - default: mariadb - envKey: PANEL_DB_ROOT_PASSWORD - labelEn: Root Password - labelZh: root用户密码 - random: true - required: true - type: password - label: - en: Root Password - ja: ルートパスワード - ms: Kata laluan root - pt-br: Senha do root - ru: Пароль root - ko: 루트 비밀번호 - zh-Hant: Root 密碼 - zh: Root 用户密码 - - default: 3306 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh-Hant: 埠 - zh: 端口 diff --git a/mariadb/11.4.7/docker-compose.yml b/mariadb/11.4.7/docker-compose.yml deleted file mode 100644 index 1e9193fbb..000000000 --- a/mariadb/11.4.7/docker-compose.yml +++ /dev/null @@ -1,19 +0,0 @@ -services: - mariadb: - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - image: mariadb:11.4.7 - ports: - - ${PANEL_APP_PORT_HTTP}:3306 - volumes: - - ./db/data:/var/lib/mysql - - ./conf/my.cnf:/etc/mysql/my.cnf - environment: - MYSQL_ROOT_PASSWORD: ${PANEL_DB_ROOT_PASSWORD} - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/mariadb/11.6.2/conf/my.cnf b/mariadb/11.6.2/conf/my.cnf deleted file mode 100644 index 2debec9b3..000000000 --- a/mariadb/11.6.2/conf/my.cnf +++ /dev/null @@ -1,30 +0,0 @@ -# The MariaDB configuration file -# -# The MariaDB/MySQL tools read configuration files in the following order: -# 0. "/etc/mysql/my.cnf" symlinks to this file, reason why all the rest is read. -# 1. "/etc/mysql/mariadb.cnf" (this file) to set global defaults, -# 2. "/etc/mysql/conf.d/*.cnf" to set global options. -# 3. "/etc/mysql/mariadb.conf.d/*.cnf" to set MariaDB-only options. -# 4. "~/.my.cnf" to set user-specific options. -# -# If the same option is defined multiple times, the last one will apply. -# -# One can use all long options that the program supports. -# Run program with --help to get a list of available options and with -# --print-defaults to see which it would actually understand and use. -# -# If you are new to MariaDB, check out https://mariadb.com/kb/en/basic-mariadb-articles/ - -# -# This group is read both by the client and the server -# use it for options that affect everything -# -[client-server] -# Port or socket location where to connect -# port = 3306 -socket = /run/mysqld/mysqld.sock - -# Import all .cnf files from configuration directory - -!includedir /etc/mysql/mariadb.conf.d/ -!includedir /etc/mysql/conf.d/ \ No newline at end of file diff --git a/mariadb/11.6.2/data.yml b/mariadb/11.6.2/data.yml deleted file mode 100644 index 02bae38f7..000000000 --- a/mariadb/11.6.2/data.yml +++ /dev/null @@ -1,35 +0,0 @@ -additionalProperties: - formFields: - - default: mariadb - envKey: PANEL_DB_ROOT_PASSWORD - labelEn: Root Password - labelZh: root用户密码 - random: true - required: true - type: password - label: - en: Root Password - ja: ルートパスワード - ms: Kata laluan root - pt-br: Senha do root - ru: Пароль root - ko: 루트 비밀번호 - zh-Hant: Root 密碼 - zh: Root 用户密码 - - default: 3306 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh-Hant: 埠 - zh: 端口 diff --git a/mariadb/11.6.2/docker-compose.yml b/mariadb/11.6.2/docker-compose.yml deleted file mode 100644 index b0ec2c5a3..000000000 --- a/mariadb/11.6.2/docker-compose.yml +++ /dev/null @@ -1,19 +0,0 @@ -services: - mariadb: - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - image: mariadb:11.6.2 - ports: - - ${PANEL_APP_PORT_HTTP}:3306 - volumes: - - ./db/data:/var/lib/mysql - - ./conf/my.cnf:/etc/mysql/my.cnf - environment: - MYSQL_ROOT_PASSWORD: ${PANEL_DB_ROOT_PASSWORD} - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/mariadb/README.md b/mariadb/README.md deleted file mode 100644 index c1941e351..000000000 --- a/mariadb/README.md +++ /dev/null @@ -1,38 +0,0 @@ -# MariaDB - -MariaDB 是一个流行的开源关系型数据库管理系统(RDBMS),它是MySQL的一个分支,提供了丰富的功能和性能,适用于各种应用场景。 - -## 核心功能 - -- **SQL支持**: MariaDB完全支持SQL(Structured Query Language),允许用户执行各种数据库操作,包括查询、插入、更新、删除等。 -- **高性能**: MariaDB通过优化的查询执行计划、索引、缓存和多线程处理,提供出色的数据库性能。 -- **跨平台**: 可在多种操作系统上运行,包括Linux、Windows、macOS等。 -- **事务支持**: 支持事务处理,包括ACID(原子性、一致性、隔离性和持久性)属性,确保数据的完整性和可靠性。 -- **复制和高可用性**: 提供数据复制和主从复制功能,以及集群支持,确保数据的高可用性和冗余备份。 - -## 安全性 - -- **访问控制**: 支持基于角色的访问控制,可以限制用户对数据库的访问权限。 -- **数据加密**: 提供数据传输和存储的加密选项,保护敏感数据不被未经授权的访问泄露。 -- **身份验证**: 支持各种身份验证方法,包括用户名/密码、SSL证书等。 - -## 数据类型 - -- **标准数据类型**: 提供各种标准的数据类型,包括整数、浮点数、日期时间、字符串等。 -- **地理空间数据**: 支持地理信息系统(GIS)功能,用于处理地理空间数据。 - -## 存储引擎 - -- **InnoDB**: 默认的存储引擎,支持事务和外键,适用于大多数应用。 -- **MyISAM**: 支持全文本搜索和高性能插入操作,适用于某些特定场景。 -- **其他存储引擎**: 还支持其他存储引擎,如Aria、TokuDB等,以满足不同需求。 - -## 扩展性 - -- **存储过程和触发器**: 允许用户定义存储过程和触发器,以实现自定义的业务逻辑。 -- **插件支持**: 支持插件系统,可以轻松扩展MariaDB的功能。 - -## 社区支持 - -- **活跃社区**: MariaDB拥有活跃的开源社区,提供文档、论坛和支持,以帮助用户解决问题。 -- **开源**: MariaDB是开源软件,可以自由使用、修改和分发。 \ No newline at end of file diff --git a/mariadb/README_en.md b/mariadb/README_en.md deleted file mode 100644 index 17facdfd0..000000000 --- a/mariadb/README_en.md +++ /dev/null @@ -1,38 +0,0 @@ -# MariaDB - -MariaDB is a popular open-source relational database management system (RDBMS), a fork of MySQL, offering robust features and performance suitable for a wide range of applications. - -## Core Features - -- **SQL Support**: Fully supports SQL (Structured Query Language), enabling users to perform various database operations, including queries, inserts, updates, and deletes. -- **High Performance**: Delivers excellent performance through optimized query execution plans, indexing, caching, and multi-threaded processing. -- **Cross-Platform**: Compatible with various operating systems, including Linux, Windows, and macOS. -- **Transaction Support**: Provides ACID (Atomicity, Consistency, Isolation, Durability) compliant transaction handling to ensure data integrity and reliability. -- **Replication and High Availability**: Offers data replication, master-slave replication, and clustering to ensure high availability and redundancy. - -## Security - -- **Access Control**: Role-based access control limits user permissions to safeguard database access. -- **Data Encryption**: Supports encryption for data in transit and at rest to protect sensitive information from unauthorized access. -- **Authentication**: Compatible with multiple authentication methods, including username/password and SSL certificates. - -## Data Types - -- **Standard Data Types**: Includes integers, floating points, date/time, and strings. -- **Geospatial Data**: GIS functionality supports the storage and processing of geospatial data. - -## Storage Engines - -- **InnoDB**: The default storage engine, supporting transactions and foreign keys, ideal for most applications. -- **MyISAM**: Provides full-text search and high-performance inserts for specific use cases. -- **Additional Engines**: Supports other engines like Aria and TokuDB to meet diverse requirements. - -## Scalability - -- **Stored Procedures and Triggers**: Allows custom business logic implementation via stored procedures and triggers. -- **Plugin Support**: Extensible through a plugin system to enhance MariaDB functionality. - -## Community Support - -- **Active Community**: A vibrant open-source community offers documentation, forums, and support for troubleshooting. -- **Open Source**: Freely available for use, modification, and distribution, fostering innovation and flexibility. \ No newline at end of file diff --git a/mariadb/data.yml b/mariadb/data.yml deleted file mode 100644 index 9495ddfb3..000000000 --- a/mariadb/data.yml +++ /dev/null @@ -1,34 +0,0 @@ -name: MariaDB -tags: - - 数据库 -title: 著名的 MySQL 分支版本 -description: 著名的 MySQL 分支版本 -additionalProperties: - key: mariadb - name: MariaDB - tags: - - Database - shortDescZh: 著名的 MySQL 分支版本 - shortDescEn: The open source relational database - description: - en: The open source relational database - ja: オープンソースのリレーショナルデータベース - ms: Pangkalan data relasional sumber terbuka - pt-br: O banco de dados relacional de código aberto - ru: Открытая реляционная база данных - ko: 오픈 소스 관계형 데이터베이스 - zh-Hant: 開源關聯式資料庫 - zh: 著名的 MySQL 分支版本 - type: runtime - crossVersionUpdate: false - limit: 0 - recommend: 0 - website: https://mariadb.org/ - github: https://github.com/MariaDB/server/ - document: https://mariadb.org/documentation/ - memoryRequired: 1024 - architectures: - - amd64 - - arm64 - - ppc64le - - s390x diff --git a/mariadb/logo.png b/mariadb/logo.png deleted file mode 100644 index 12f0ba1ce..000000000 Binary files a/mariadb/logo.png and /dev/null differ diff --git a/maxkb/1.10.8-lts/data.yml b/maxkb/1.10.8-lts/data.yml deleted file mode 100644 index 8556efd53..000000000 --- a/maxkb/1.10.8-lts/data.yml +++ /dev/null @@ -1,19 +0,0 @@ -additionalProperties: - formFields: - - default: 8080 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh-Hant: 埠 - zh: 端口 - required: true - rule: paramPort - type: number \ No newline at end of file diff --git a/maxkb/1.10.8-lts/docker-compose.yml b/maxkb/1.10.8-lts/docker-compose.yml deleted file mode 100644 index b0a254601..000000000 --- a/maxkb/1.10.8-lts/docker-compose.yml +++ /dev/null @@ -1,17 +0,0 @@ -services: - maxkb: - image: 1panel/maxkb:v1.10.8-lts - container_name: ${CONTAINER_NAME} - restart: unless-stopped - ports: - - ${PANEL_APP_PORT_HTTP}:8080 - networks: - - 1panel-network - volumes: - - ./data:/var/lib/postgresql/data - - ./python-packages:/opt/maxkb/app/sandbox/python-packages - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/maxkb/README.md b/maxkb/README.md deleted file mode 100644 index 03cb2b6e4..000000000 --- a/maxkb/README.md +++ /dev/null @@ -1,17 +0,0 @@ -# 默认账户密码 - -``` -username:admin -password:MaxKB@123.. -``` - -# MaxKB - -**MaxKB** = Max Knowledge Brain,是一款强大易用的企业级 AI 助手,支持 RAG 检索增强、工作流编排、MCP 工具调用能力。MaxKB 支持对接各种主流大语言模型,广泛应用于智能客服、企业内部知识库问答、员工助手、学术研究与教育等场景。 - -## 优势: - -- **RAG 检索增强**:支持直接上传文档 / 自动爬取在线文档,支持文本自动拆分、向量化和 RAG(检索增强生成),有效减少大模型幻觉,智能问答交互体验好; -- **灵活编排**:内置强大的工作流引擎、函数库和 MCP 工具调用能力,支持编排 AI 工作过程,满足复杂业务场景下的需求; -- **无缝嵌入**:支持零编码快速嵌入到第三方业务系统,让已有系统快速拥有智能问答能力,提高用户满意度; -- **模型中立**:支持对接各种大模型,包括本地私有大模型(DeepSeek R1 / Llama 3 / Qwen 2 等)、国内公共大模型(通义千问 / 腾讯混元 / 字节豆包 / 百度千帆 / 智谱 AI / Kimi 等)和国外公共大模型(OpenAI / Claude / Gemini 等)。 diff --git a/maxkb/README_en.md b/maxkb/README_en.md deleted file mode 100644 index d2ec430e4..000000000 --- a/maxkb/README_en.md +++ /dev/null @@ -1,18 +0,0 @@ -# Default admin credentials - -``` -username:admin -password:MaxKB@123.. -``` - -# MaxKB - -**MaxKB** = Max Knowledge Brain, it is a powerful and easy-to-use AI assistant that integrates Retrieval-Augmented Generation (RAG) pipelines, supports robust workflows, and provides advanced MCP tool-use capabilities. MaxKB is widely applied in scenarios such as intelligent customer service, corporate internal knowledge bases, academic research, and education. - -## Advantage - -- **RAG Pipeline**: Supports direct uploading of documents / automatic crawling of online documents, with features for automatic text splitting, vectorization, and RAG (Retrieval-Augmented Generation). This effectively reduces hallucinations in large models, providing a superior smart Q&A interaction experience. -- **Flexible Orchestration**: Equipped with a powerful workflow engine, function library and MCP tool-use, enabling the orchestration of AI processes to meet the needs of complex business scenarios. -- **Seamless Integration**: Facilitates zero-coding rapid integration into third-party business systems, quickly equipping existing systems with intelligent Q&A capabilities to enhance user satisfaction. -- **Model-Agnostic**: Supports various large models, including private models (such as DeepSeek, Llama, Qwen, etc.) and public models (like OpenAI, Claude, Gemini, etc.). -- **Multi Modal**: Native support for input and output text, image, audio and video. diff --git a/maxkb/data.yml b/maxkb/data.yml deleted file mode 100644 index e9de0ca08..000000000 --- a/maxkb/data.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: MaxKB -tags: - - AI / 大模型 -title: 强大易用的企业级 AI 助手 -description: 强大易用的企业级 AI 助手 -additionalProperties: - key: maxkb - name: MaxKB - tags: - - AI - shortDescZh: 强大易用的企业级 AI 助手 - shortDescEn: Powerful and Easy-to-use AI Assistant - description: - en: Powerful and Easy-to-use AI Assistant - ja: 強力で使いやすいAIアシスタント - ms: Pembantu AI yang Berkuasa dan Mudah Digunakan - pt-br: Assistente de IA poderoso e fácil de usar - ru: Мощный и простой в использовании ИИ-ассистент - ko: 강력하고 사용하기 쉬운 AI 도우미 - zh-Hant: 強大易用的企業級 AI 助手 - zh: 强大易用的企业级 AI 助手 - type: website - crossVersionUpdate: true - limit: 0 - recommend: 20 - website: https://github.com/1Panel-dev/MaxKB - github: https://github.com/1Panel-dev/MaxKB - document: https://github.com/1Panel-dev/MaxKB/wiki - architectures: - - amd64 - - arm64 diff --git a/maxkb/logo.png b/maxkb/logo.png deleted file mode 100644 index 86929b34b..000000000 Binary files a/maxkb/logo.png and /dev/null differ diff --git a/mblog/1.1.0/data.yml b/mblog/1.1.0/data.yml deleted file mode 100644 index 51066820c..000000000 --- a/mblog/1.1.0/data.yml +++ /dev/null @@ -1,10 +0,0 @@ -additionalProperties: - formFields: - - default: 38321 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 应用端口 - required: true - rule: paramPort - type: number diff --git a/mblog/1.1.0/docker-compose.yml b/mblog/1.1.0/docker-compose.yml deleted file mode 100644 index e431f75f6..000000000 --- a/mblog/1.1.0/docker-compose.yml +++ /dev/null @@ -1,18 +0,0 @@ -services: - halo: - image: kingwrcy/mblog:1.1.0 - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - volumes: - - ./data:/opt/mblog - environment: - DB_TYPE: -sqlite - ports: - - ${PANEL_APP_PORT_HTTP}:38321 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/mblog/README.md b/mblog/README.md deleted file mode 100644 index ca41879a9..000000000 --- a/mblog/README.md +++ /dev/null @@ -1,23 +0,0 @@ -# 默认账户密码 - -``` -username:admin -password:a123456 -``` - -# mBlog - -**mBlog (mtons blog)** 是一款开源免费的 Java 博客系统,是一个简单、大气、美观、响应式设计的多人博客系统,基于 MySQL 数据库;具有性能优异、简单实用、安全稳定、支持全文检索的特点。 - -## 项目特色: - -- JDK8 -- SSH (Spring、SpringMVC、Hibernate) -- 安全权限 Shiro -- 搜索工具 Lucene -- 缓存 Ehcache -- 视图模板 Velocity -- 其它 Jsoup、fastjson、GraphicsMagick、jQuery、Seajs -- Bootstrap 前端框架 -- UEditor/Markdown编辑器 -- font-wesome 字体/图标 diff --git a/mblog/data.yml b/mblog/data.yml deleted file mode 100644 index eb67e26e0..000000000 --- a/mblog/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: mBlog -tags: - - 建站 -title: 开源自部署的个人微博 -description: 开源自部署的个人微博 -additionalProperties: - key: mblog - name: MBlog - tags: - - Website - shortDescZh: 开源自部署的个人微博 - shortDescEn: Open source self hosted personal micro blog platform - type: website - crossVersionUpdate: true - limit: 0 - website: https://mblog.club/ - github: https://github.com/kingwrcy/mblog-backend - document: https://github.com/kingwrcy/mblog-backend - architectures: - - amd64 diff --git a/mblog/logo.png b/mblog/logo.png deleted file mode 100644 index 248e04292..000000000 Binary files a/mblog/logo.png and /dev/null differ diff --git a/mcsmanager-daemon/README.md b/mcsmanager-daemon/README.md deleted file mode 100644 index a794a1af3..000000000 --- a/mcsmanager-daemon/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# MCSManager - -**分布式,稳定可靠,开箱即用,高扩展性,支持 Minecraft 和其他少数游戏的控制面板。** - -MCSManager 面板(简称:MCSM 面板)是一款开源,分布式,轻量级,快速部署,支持大部分游戏服务端和控制台程序的管理面板。 - -软件在 Minecraft 和其他游戏社区内中已有一定的流行程度,它可以帮助你集中管理多个物理服务器,动态在任何主机上创建游戏服务端,并且提供安全可靠的多用户权限系统,可以很轻松的帮助你管理多个服务器。一直在为 Minecraft,Terraria,Steam 游戏服务器管理员,运维人员和个人开发者提供健康的软件支持。 \ No newline at end of file diff --git a/mcsmanager-daemon/data.yml b/mcsmanager-daemon/data.yml deleted file mode 100644 index 0f7a1287d..000000000 --- a/mcsmanager-daemon/data.yml +++ /dev/null @@ -1,22 +0,0 @@ -name: MCSManager -tags: -- 休闲游戏 -title: Minecraft 服务器控制面板(后端) -description: Minecraft 服务器控制面板(后端) -additionalProperties: - key: mcsmanager-daemon - name: MCSManager - tags: - - Game - shortDescZh: Minecraft 服务器控制面板(后端) - shortDescEn: Minecraft server control panel(Daemon) - type: tool - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://hub.docker.com/r/alisaqaq/mcsmanager-web - github: https://github.com/MCSManager/MCSManager - document: https://docs.mcsmanager.com/ - architectures: - - amd64 - - arm64 diff --git a/mcsmanager-daemon/latest/data.yml b/mcsmanager-daemon/latest/data.yml deleted file mode 100644 index be4c44f9d..000000000 --- a/mcsmanager-daemon/latest/data.yml +++ /dev/null @@ -1,10 +0,0 @@ -additionalProperties: - formFields: - - default: 40057 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number diff --git a/mcsmanager-daemon/latest/docker-compose.yml b/mcsmanager-daemon/latest/docker-compose.yml deleted file mode 100644 index dcf9e0cb8..000000000 --- a/mcsmanager-daemon/latest/docker-compose.yml +++ /dev/null @@ -1,21 +0,0 @@ -services: - mcsm-daemon: - image: githubyumao/mcsmanager-daemon:latest - container_name: ${CONTAINER_NAME} - restart: unless-stopped - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTP}:24444" - environment: - - MCSM_DOCKER_WORKSPACE_PATH=./data/daemon/data/InstanceData - volumes: - - /etc/localtime:/etc/localtime:ro - - ./data/daemon/data:/opt/mcsmanager/daemon/data - - ./data/daemon/logs:/opt/mcsmanager/daemon/logs - - /var/run/docker.sock:/var/run/docker.sock - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/mcsmanager-daemon/logo.png b/mcsmanager-daemon/logo.png deleted file mode 100644 index 948029be6..000000000 Binary files a/mcsmanager-daemon/logo.png and /dev/null differ diff --git a/mcsmanager-web/README.md b/mcsmanager-web/README.md deleted file mode 100644 index a794a1af3..000000000 --- a/mcsmanager-web/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# MCSManager - -**分布式,稳定可靠,开箱即用,高扩展性,支持 Minecraft 和其他少数游戏的控制面板。** - -MCSManager 面板(简称:MCSM 面板)是一款开源,分布式,轻量级,快速部署,支持大部分游戏服务端和控制台程序的管理面板。 - -软件在 Minecraft 和其他游戏社区内中已有一定的流行程度,它可以帮助你集中管理多个物理服务器,动态在任何主机上创建游戏服务端,并且提供安全可靠的多用户权限系统,可以很轻松的帮助你管理多个服务器。一直在为 Minecraft,Terraria,Steam 游戏服务器管理员,运维人员和个人开发者提供健康的软件支持。 \ No newline at end of file diff --git a/mcsmanager-web/data.yml b/mcsmanager-web/data.yml deleted file mode 100644 index 2274c867c..000000000 --- a/mcsmanager-web/data.yml +++ /dev/null @@ -1,22 +0,0 @@ -name: MCSManager -tags: - - 休闲游戏 -title: Minecraft 服务器控制面板(前端) -description: Minecraft 服务器控制面板(前端) -additionalProperties: - key: mcsmanager-web - name: MCSManager - tags: - - Game - shortDescZh: Minecraft 服务器控制面板(前端) - shortDescEn: Minecraft server control panel(Web) - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://hub.docker.com/r/alisaqaq/mcsmanager-web - github: https://github.com/MCSManager/MCSManager - document: https://docs.mcsmanager.com/ - architectures: - - amd64 - - arm64 diff --git a/mcsmanager-web/latest/data.yml b/mcsmanager-web/latest/data.yml deleted file mode 100644 index 663b74afd..000000000 --- a/mcsmanager-web/latest/data.yml +++ /dev/null @@ -1,10 +0,0 @@ -additionalProperties: - formFields: - - default: 40056 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number diff --git a/mcsmanager-web/latest/docker-compose.yml b/mcsmanager-web/latest/docker-compose.yml deleted file mode 100644 index 88e9a89e9..000000000 --- a/mcsmanager-web/latest/docker-compose.yml +++ /dev/null @@ -1,18 +0,0 @@ -services: - mcsm-web: - image: githubyumao/mcsmanager-web:latest - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTP}:23333" - volumes: - - /etc/localtime:/etc/localtime:ro - - ./data/web/data:/opt/mcsmanager/web/data - - ./data/web/logs:/opt/mcsmanager/web/logs - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/mcsmanager-web/logo.png b/mcsmanager-web/logo.png deleted file mode 100644 index 948029be6..000000000 Binary files a/mcsmanager-web/logo.png and /dev/null differ diff --git a/meilisearch/1.15.2/config/config.toml b/meilisearch/1.15.2/config/config.toml deleted file mode 100644 index e3a5e8f8e..000000000 --- a/meilisearch/1.15.2/config/config.toml +++ /dev/null @@ -1,131 +0,0 @@ -# This file shows the default configuration of Meilisearch. -# All variables are defined here: https://www.meilisearch.com/docs/learn/configuration/instance_options#environment-variables - -db_path = "./data.ms" -# Designates the location where database files will be created and retrieved. -# https://www.meilisearch.com/docs/learn/configuration/instance_options#database-path - -env = "development" -# Configures the instance's environment. Value must be either `production` or `development`. -# https://www.meilisearch.com/docs/learn/configuration/instance_options#environment - -http_addr = "localhost:7700" -# The address on which the HTTP server will listen. - -# master_key = "YOUR_MASTER_KEY_VALUE" -# Sets the instance's master key, automatically protecting all routes except GET /health. -# https://www.meilisearch.com/docs/learn/configuration/instance_options#master-key - -# no_analytics = true -# Deactivates Meilisearch's built-in telemetry when provided. -# Meilisearch automatically collects data from all instances that do not opt out using this flag. -# All gathered data is used solely for the purpose of improving Meilisearch, and can be deleted at any time. -# https://www.meilisearch.com/docs/learn/configuration/instance_options#disable-analytics - -http_payload_size_limit = "100 MB" -# Sets the maximum size of accepted payloads. -# https://www.meilisearch.com/docs/learn/configuration/instance_options#payload-limit-size - -log_level = "INFO" -# Defines how much detail should be present in Meilisearch's logs. -# Meilisearch currently supports six log levels, listed in order of increasing verbosity: `OFF`, `ERROR`, `WARN`, `INFO`, `DEBUG`, `TRACE` -# https://www.meilisearch.com/docs/learn/configuration/instance_options#log-level - -# max_indexing_memory = "2 GiB" -# Sets the maximum amount of RAM Meilisearch can use when indexing. -# https://www.meilisearch.com/docs/learn/configuration/instance_options#max-indexing-memory - -# max_indexing_threads = 4 -# Sets the maximum number of threads Meilisearch can use during indexing. -# https://www.meilisearch.com/docs/learn/configuration/instance_options#max-indexing-threads - -############# -### DUMPS ### -############# - -dump_dir = "dumps/" -# Sets the directory where Meilisearch will create dump files. -# https://www.meilisearch.com/docs/learn/configuration/instance_options#dump-directory - -# import_dump = "./path/to/my/file.dump" -# Imports the dump file located at the specified path. Path must point to a .dump file. -# https://www.meilisearch.com/docs/learn/configuration/instance_options#import-dump - -ignore_missing_dump = false -# Prevents Meilisearch from throwing an error when `import_dump` does not point to a valid dump file. -# https://www.meilisearch.com/docs/learn/configuration/instance_options#ignore-missing-dump - -ignore_dump_if_db_exists = false -# Prevents a Meilisearch instance with an existing database from throwing an error when using `import_dump`. -# https://www.meilisearch.com/docs/learn/configuration/instance_options#ignore-dump-if-db-exists - - -################# -### SNAPSHOTS ### -################# - -schedule_snapshot = false -# Enables scheduled snapshots when true, disable when false (the default). -# If the value is given as an integer, then enables the scheduled snapshot with the passed value as the interval -# between each snapshot, in seconds. -# https://www.meilisearch.com/docs/learn/configuration/instance_options#schedule-snapshot-creation - -snapshot_dir = "snapshots/" -# Sets the directory where Meilisearch will store snapshots. -# https://www.meilisearch.com/docs/learn/configuration/instance_options#snapshot-destination - -# import_snapshot = "./path/to/my/snapshot" -# Launches Meilisearch after importing a previously-generated snapshot at the given filepath. -# https://www.meilisearch.com/docs/learn/configuration/instance_options#import-snapshot - -ignore_missing_snapshot = false -# Prevents a Meilisearch instance from throwing an error when `import_snapshot` does not point to a valid snapshot file. -# https://www.meilisearch.com/docs/learn/configuration/instance_options#ignore-missing-snapshot - -ignore_snapshot_if_db_exists = false -# Prevents a Meilisearch instance with an existing database from throwing an error when using `import_snapshot`. -# https://www.meilisearch.com/docs/learn/configuration/instance_options#ignore-snapshot-if-db-exists - - -########### -### SSL ### -########### - -# ssl_auth_path = "./path/to/root" -# Enables client authentication in the specified path. -# https://www.meilisearch.com/docs/learn/configuration/instance_options#ssl-authentication-path - -# ssl_cert_path = "./path/to/certfile" -# Sets the server's SSL certificates. -# https://www.meilisearch.com/docs/learn/configuration/instance_options#ssl-certificates-path - -# ssl_key_path = "./path/to/private-key" -# Sets the server's SSL key files. -# https://www.meilisearch.com/docs/learn/configuration/instance_options#ssl-key-path - -# ssl_ocsp_path = "./path/to/ocsp-file" -# Sets the server's OCSP file. -# https://www.meilisearch.com/docs/learn/configuration/instance_options#ssl-ocsp-path - -ssl_require_auth = false -# Makes SSL authentication mandatory. -# https://www.meilisearch.com/docs/learn/configuration/instance_options#ssl-require-auth - -ssl_resumption = false -# Activates SSL session resumption. -# https://www.meilisearch.com/docs/learn/configuration/instance_options#ssl-resumption - -ssl_tickets = false -# Activates SSL tickets. -# https://www.meilisearch.com/docs/learn/configuration/instance_options#ssl-tickets - -############################# -### Experimental features ### -############################# - -experimental_enable_metrics = false -# Experimental metrics feature. For more information, see: -# Enables the Prometheus metrics on the `GET /metrics` endpoint. - -experimental_reduce_indexing_memory_usage = false -# Experimental RAM reduction during indexing, do not use in production, see: \ No newline at end of file diff --git a/meilisearch/1.15.2/data.yml b/meilisearch/1.15.2/data.yml deleted file mode 100644 index 64b7a03e6..000000000 --- a/meilisearch/1.15.2/data.yml +++ /dev/null @@ -1,57 +0,0 @@ -additionalProperties: - formFields: - - envKey: PANEL_APP_PORT_HTTP - default: 7700 - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh: 端口 - zh-Hant: 埠 - edit: true - required: true - rule: paramPort - type: number - - envKey: MEILI_MASTER_KEY - default: HmPEKZhcoANzRt3DTPhRQVRxPEVZw7m2TymKwKhs - labelEn: MasterKey - labelZh: 主密钥 - label: - en: MasterKey - ja: マスターキー - ms: Kunci Utama - pt-br: Chave Mestra - ru: Главный ключ - ko: 마스터 키 - zh: 主密钥 - zh-Hant: 主密鑰 - edit: true - required: true - random: true - rule: paramComplexity - type: password - - default: "true" - envKey: MEILI_NO_ANALYTICS - labelEn: Meilisearch's built-in telemetry - labelZh: Meilisearch 的内置遥测 - label: - en: Meilisearch's built-in telemetry - ja: Meilisearch の組み込みテレメトリ - ms: Telemetri Bawaan Meilisearch - pt-br: Telemetria Interna do Meilisearch - ru: Встроенная телеметрия Meilisearch - ko: Meilisearch의 내장 원격 측정 - zh: Meilisearch 的内置遥测 - zh-Hant: Meilisearch 的內置遙測 - edit: true - type: select - values: - - label: 开启 - value: "true" - - label: 关闭 - value: "false" \ No newline at end of file diff --git a/meilisearch/1.15.2/docker-compose.yml b/meilisearch/1.15.2/docker-compose.yml deleted file mode 100644 index 156b28675..000000000 --- a/meilisearch/1.15.2/docker-compose.yml +++ /dev/null @@ -1,29 +0,0 @@ -services: - meilisearch: - container_name: ${CONTAINER_NAME} - image: getmeili/meilisearch:v1.15.2 - restart: always - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_HTTP}:7700 - environment: - MEILI_CONFIG_FILE_PATH: /config/config.toml - MEILI_MASTER_KEY: ${MEILI_MASTER_KEY} - volumes: - - ./config:/config - - ./data:/meili_data - - ./dumps:/dumps - - ./snapshots:/snapshots - command: > - sh -c ' - if [ "${MEILI_NO_ANALYTICS}" = "true" ]; then - /bin/meilisearch - else - /bin/meilisearch --no-analytics - fi' - labels: - createdBy: Apps -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/meilisearch/1.15.2/scripts/upgrade.sh b/meilisearch/1.15.2/scripts/upgrade.sh deleted file mode 100644 index 619083dfd..000000000 --- a/meilisearch/1.15.2/scripts/upgrade.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/bash - -ENV_FILE="./.env" - -if [[ -f $ENV_FILE ]]; then - source "$ENV_FILE" - if [ -z "$MEILI_NO_ANALYTICS" ] || [ "$MEILI_NO_ANALYTICS" = "" ]; then - NEW_VALUE='"true"' - elif [ "$MEILI_NO_ANALYTICS" = "--no-analytics" ]; then - NEW_VALUE='"false"' - else - NEW_VALUE="\"$MEILI_NO_ANALYTICS\"" - fi - sed -i "s/^MEILI_NO_ANALYTICS=.*/MEILI_NO_ANALYTICS=$NEW_VALUE/" "$ENV_FILE" -else - echo ".env 文件不存在" -fi \ No newline at end of file diff --git a/meilisearch/README.md b/meilisearch/README.md deleted file mode 100644 index 79b498c24..000000000 --- a/meilisearch/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Meilisearch - -Meilisearch 是一款开源的全文搜索引擎,它具有高度可定制性、快速、易于使用的特点。 - -## 主要功能: - -- **快速的全文搜索:** Meilisearch 提供出色的搜索性能,能够快速检索大量文本数据。它采用高度优化的算法,使用户可以在毫秒级别内获取搜索结果。 -- **开源和免费:** Meilisearch 是一个开源项目,可以免费使用,这使得开发者和组织可以轻松集成和部署。 -- **简单的API:** Meilisearch 提供了简单而强大的API,使开发者能够轻松与其集成。您可以使用RESTful API或客户端SDK来进行搜索和索引操作。 -- **高度可定制性:** Meilisearch 允许用户根据其特定需求进行定制。您可以定义自定义搜索字段、排序规则和筛选条件,以满足项目的独特需求。 -- **多语言支持:** Meilisearch 支持多种语言和字符集,可以用于处理不同语种的文本数据。 -- **实时索引更新:** Meilisearch 具备实时索引更新功能,可以随着数据的变化即时更新索引,确保搜索结果的及时性。 -- **全文搜索高亮:** 它支持搜索结果中关键词的高亮显示,帮助用户更容易地找到他们需要的信息。 -- **强大的排名算法:** Meilisearch 使用先进的排名算法,可以根据相关性对搜索结果进行排序,提供更准确的搜索结果。 -- **分布式部署:** 可以将 Meilisearch 部署在多个服务器上,以实现负载均衡和高可用性,确保系统的稳定性和可靠性。 -- **开发者友好:** Meilisearch 提供了丰富的文档和示例代码,以帮助开发者快速上手和解决问题。 \ No newline at end of file diff --git a/meilisearch/README_en.md b/meilisearch/README_en.md deleted file mode 100644 index 1405399a6..000000000 --- a/meilisearch/README_en.md +++ /dev/null @@ -1,17 +0,0 @@ -# Meilisearch - -Meilisearch is an open-source full-text search engine known for its high customizability, speed, and ease of use. - -## Key Features: - -- **Fast Full-Text Search**: Meilisearch offers excellent search performance, capable of quickly retrieving large amounts of text data. It uses highly optimized algorithms, enabling users to get search results in milliseconds. -- **Open Source and Free**: Meilisearch is an open-source project and is free to use, making it easy for developers and organizations to integrate and deploy. -- **Simple API**: Meilisearch provides a simple yet powerful API, allowing developers to easily integrate it. You can use the RESTful API or client SDKs for search and indexing operations. -- **Highly Customizable**: Meilisearch allows users to customize it according to their specific needs. You can define custom search fields, sorting rules, and filters to meet the unique requirements of your project. -- **Multi-language Support**: Meilisearch supports multiple languages and character sets, allowing it to handle text data in various languages. -- **Real-time Index Updates**: Meilisearch features real-time index updates, instantly updating the index as data changes to ensure timely search results. -- **Full-text Search Highlighting**: It supports highlighting keywords in search results, helping users easily find the information they need. -- **Advanced Ranking Algorithm**: Meilisearch uses advanced ranking algorithms to sort search results by relevance, providing more accurate results. -- **Distributed Deployment**: Meilisearch can be deployed on multiple servers for load balancing and high availability, ensuring system stability and reliability. -- **Developer-Friendly**: Meilisearch provides extensive documentation and sample code to help developers get started quickly and solve problems. - diff --git a/meilisearch/data.yml b/meilisearch/data.yml deleted file mode 100644 index e5c27b555..000000000 --- a/meilisearch/data.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: MeiliSearch -tags: - - 实用工具 -title: 开源、快如闪电且高度相关的搜索引擎 -description: 开源、快如闪电且高度相关的搜索引擎 -additionalProperties: - key: meilisearch - name: MeiliSearch - tags: - - Tool - shortDescZh: 开源、快如闪电且高度相关的搜索引擎 - shortDescEn: An open-source, lightning-fast, and hyper-relevant search engine that fits effortlessly into your workflow - type: website - crossVersionUpdate: false - limit: 0 - recommend: 0 - website: https://www.meilisearch.com - github: https://github.com/meilisearch/meilisearch - document: https://www.meilisearch.com/docs - description: - en: An open-source, lightning-fast, and hyper-relevant search engine that fits effortlessly into your workflow - zh: 开源、快如闪电且高度相关的搜索引擎,轻松融入您的工作流程 - zh-Hant: 開源、快如閃電且高度相關的搜索引擎,輕鬆融入您的工作流程 - ja: オープンソースで、稲妻のように速く、高度に関連性のある検索エンジンで、ワークフローに簡単に適合します - ms: Enjin carian sumber terbuka, sepantas kilat, dan sangat relevan yang sesuai dengan aliran kerja anda - pt-br: Um mecanismo de busca de código aberto, incrivelmente rápido e altamente relevante que se encaixa perfeitamente no seu fluxo de trabalho - ru: Открытая, молниеносная и высокорелевантная поисковая система, которая легко вписывается в ваш рабочий процесс - ko: 오픈 소스, 번개처럼 빠르고 매우 관련성 높은 검색 엔진으로 워크플로우에 쉽게 통합됩니다. - architectures: - - amd64 - - arm64 diff --git a/meilisearch/logo.png b/meilisearch/logo.png deleted file mode 100644 index fc7bdbf3e..000000000 Binary files a/meilisearch/logo.png and /dev/null differ diff --git a/memcached/1.6.22/data.yml b/memcached/1.6.22/data.yml deleted file mode 100644 index 703cb3253..000000000 --- a/memcached/1.6.22/data.yml +++ /dev/null @@ -1,35 +0,0 @@ -additionalProperties: - formFields: - - default: 11211 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh: 端口 - zh-Hant: 埠 - required: true - rule: paramPort - type: number - - default: '64' - edit: true - envKey: MEM_CACHED - labelEn: Maximum memory usage(MB) - labelZh: 内存最大占用量(MB) - label: - en: Maximum memory usage(MB) - ja: 最大メモリ使用量(MB) - ms: Penggunaan Memori Maksimum(MB) - pt-br: Uso Máximo de Memória(MB) - ru: Максимальное использование памяти(МБ) - ko: 최대 메모리 사용량(MB) - zh: 内存最大占用量(MB) - zh-Hant: 內存最大佔用量(MB) - required: true - type: number diff --git a/memcached/1.6.22/docker-compose.yml b/memcached/1.6.22/docker-compose.yml deleted file mode 100644 index 4b579e28d..000000000 --- a/memcached/1.6.22/docker-compose.yml +++ /dev/null @@ -1,15 +0,0 @@ -services: - memcached: - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTP}:11211" - command: memcached -m ${MEM_CACHED} - image: "memcached:1.6.22-alpine3.18" - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/memcached/README.md b/memcached/README.md deleted file mode 100644 index bf976e0af..000000000 --- a/memcached/README.md +++ /dev/null @@ -1,37 +0,0 @@ -# Memcached - -Memcached(Memory Cache Daemon)是一个开源的高性能分布式内存对象缓存系统,旨在加速应用程序的数据访问速度和减轻数据库负载。 - -## 主要功能: - -### 内存缓存 - -Memcached 将数据存储在内存中,因此能够快速读取和写入数据,相比于传统的数据库系统,响应速度更快。 - -### 分布式支持 - -Memcached 支持分布式部署,可以将数据存储在多台服务器上,提高了可伸缩性和容错性。这意味着它可以处理大量的并发请求,并且不容易成为单点故障。 - -### 键-值存储 - -Memcached 使用简单的键-值存储模型,通过唯一的键来检索数据。这使得它适用于各种数据类型,包括文本、二进制数据和对象。 - -### 数据自动过期 - -Memcached 允许为缓存的数据设置过期时间,一旦数据超过过期时间,系统会自动删除它们。这有助于保持缓存中的数据的新鲜度。 - -### 高性能 - -Memcached 的主要目标是提供快速的数据访问速度。它能够处理高吞吐量和低延迟的请求,使应用程序能够更快地响应用户操作。 - -### 支持多语言 - -Memcached 提供了多种编程语言的客户端库,可以轻松集成到各种应用程序中,包括PHP、Python、Java等。 - -### 减轻数据库负载 - -通过将常用的数据存储在内存中,Memcached 可以减轻数据库的负载,从而提高数据库的性能和稳定性。 - -### 数据分片 - -Memcached 支持数据分片,可以将数据均匀分布在多个节点上,以确保负载均衡和可伸缩性。 \ No newline at end of file diff --git a/memcached/README_en.md b/memcached/README_en.md deleted file mode 100644 index 3c28571c8..000000000 --- a/memcached/README_en.md +++ /dev/null @@ -1,27 +0,0 @@ -# Memcached -Memcached (Memory Cache Daemon) is an open-source, high-performance, distributed memory object caching system designed to speed up data access and reduce database load for applications. - -## Key Features: -### In-Memory Caching -Memcached stores data in memory, enabling fast read and write operations compared to traditional database systems. - -### Distributed Support -Memcached supports distributed deployment, allowing data to be stored across multiple servers, improving scalability and fault tolerance. - -### Key-Value Storage -Memcached uses a simple key-value storage model, making it suitable for various data types, including text, binary data, and objects. - -### Data Expiration -Memcached allows setting expiration times for cached data, ensuring freshness and automatic deletion of outdated data. - -### High Performance -Memcached is optimized for high throughput and low latency, making it ideal for handling large volumes of requests. - -### Multi-Language Support -Memcached provides client libraries for multiple programming languages, including PHP, Python, and Java, for easy integration. - -### Database Load Reduction -By caching frequently accessed data in memory, Memcached reduces the load on databases, improving their performance and stability. - -### Data Sharding -Memcached supports data sharding, distributing data evenly across nodes to ensure balanced load and scalability. \ No newline at end of file diff --git a/memcached/data.yml b/memcached/data.yml deleted file mode 100644 index 00ab4f5cf..000000000 --- a/memcached/data.yml +++ /dev/null @@ -1,32 +0,0 @@ -name: Memcached -tags: - - 实用工具 -title: 分布式的高速缓存系统 -description: 分布式的高速缓存系统 -additionalProperties: - key: memcached - name: Memcached - tags: - - Database - shortDescZh: 分布式的高速缓存系统 - shortDescEn: A distributed caching system - type: tool - crossVersionUpdate: true - limit: 0 - website: https://memcached.org/ - github: https://github.com/memcached/memcached - document: https://github.com/memcached/memcached/wiki - description: - en: A distributed caching system - zh: 分布式高速缓存系统 - zh-Hant: 分佈式高速緩存系統 - ja: 分散型キャッシングシステム - ms: Sistem caching teragih - pt-br: Um sistema de cache distribuído - ru: Распределённая система кэширования - ko: 분산 캐싱 시스템 - architectures: - - amd64 - - arm64 - - ppc64le - - s390x \ No newline at end of file diff --git a/memcached/logo.png b/memcached/logo.png deleted file mode 100644 index 9b7c01e8f..000000000 Binary files a/memcached/logo.png and /dev/null differ diff --git a/memos/0.24.4/data.yml b/memos/0.24.4/data.yml deleted file mode 100755 index 4c8714c64..000000000 --- a/memos/0.24.4/data.yml +++ /dev/null @@ -1,19 +0,0 @@ -additionalProperties: - formFields: - - default: 5230 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh-Hant: 埠 - zh: 端口 diff --git a/memos/0.24.4/docker-compose.yml b/memos/0.24.4/docker-compose.yml deleted file mode 100644 index c416e6587..000000000 --- a/memos/0.24.4/docker-compose.yml +++ /dev/null @@ -1,16 +0,0 @@ -services: - memos: - image: neosmemo/memos:0.24.4 - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_HTTP}:5230 - volumes: - - ./memos:/var/opt/memos - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/memos/README.md b/memos/README.md deleted file mode 100644 index b1d0c7dfe..000000000 --- a/memos/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# Memos - -Memos 是一款隐私优先的轻量级笔记服务,轻松捕捉并分享您的精彩想法。 - -## 产品特色: - -- **开源且永久免费**:通过我们的开源解决方案拥抱创造力无国界的未来——今天、明天、永远免费。 -- **只需几秒钟即可使用 Docker 自托管**:享受 Docker 提供的灵活性、可扩展性和易于设置的优势,让您能够完全控制您的数据和隐私。 -- **添加了 Markdown 支持的纯文本**:告别丰富格式带来的压倒性精神负担,拥抱极简主义方法。 -- **轻松定制和分享您的笔记**:借助我们直观的共享功能,您可以轻松地与其他人协作和分发您的笔记。 -- **用于第三方服务的 RESTful API**:借助我们的 RESTful API 支持,拥抱集成的力量并释放新的可能性。 \ No newline at end of file diff --git a/memos/README_en.md b/memos/README_en.md deleted file mode 100644 index 10bdc7d70..000000000 --- a/memos/README_en.md +++ /dev/null @@ -1,11 +0,0 @@ -# Memos - -Memos is a lightweight, privacy-first note-taking service designed to effortlessly capture and share your brilliant ideas. - -## Features: - -- **Open Source and Free Forever**: Embrace a borderless creative future with our open-source solution—free today, tomorrow, and always. -- **Self-Host in Seconds with Docker**: Enjoy the flexibility, scalability, and ease of setup provided by Docker, giving you full control over your data and privacy. -- **Plain Text with Markdown Support**: Say goodbye to the overwhelming complexity of rich formatting and adopt a minimalist approach to note-taking. -- **Easily Customize and Share Notes**: With our intuitive sharing features, you can effortlessly collaborate with others and distribute your notes. -- **RESTful API**: Unlock new possibilities by harnessing the power of integration with our RESTful API support. \ No newline at end of file diff --git a/memos/data.yml b/memos/data.yml deleted file mode 100755 index 27f1b9022..000000000 --- a/memos/data.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: Memos -tags: - - 实用工具 -title: 轻量级、自托管的备忘录中心 -description: 轻量级、自托管的备忘录中心 -additionalProperties: - key: memos - name: Memos - tags: - - Tool - shortDescZh: 轻量级、自托管的备忘录中心 - shortDescEn: A lightweight, self-hosted memo hub - description: - en: A lightweight, self-hosted memo hub - ja: 軽量な自己ホスト型メモハブ - ms: Pusat memo ringan yang dihoskan sendiri - pt-br: Um hub de anotações leve e auto-hospedado - ru: Легкий, самостоятельно размещаемый хаб для заметок - ko: 가벼운 자체 호스팅 메모 허브 - zh-Hant: 輕量級自託管備忘錄中心 - zh: 轻量级自托管备忘录中心 - type: website - crossVersionUpdate: false - limit: 0 - recommend: 0 - website: https://usememos.com/ - github: https://github.com/usememos/memos - document: https://usememos.com/docs - architectures: - - amd64 - - arm64 diff --git a/memos/logo.png b/memos/logo.png deleted file mode 100644 index 05d73a3fe..000000000 Binary files a/memos/logo.png and /dev/null differ diff --git a/metabase/0.55.4/data.yml b/metabase/0.55.4/data.yml deleted file mode 100755 index ed9c654cb..000000000 --- a/metabase/0.55.4/data.yml +++ /dev/null @@ -1,84 +0,0 @@ -additionalProperties: - formFields: - - default: "" - envKey: PANEL_DB_HOST - key: mysql - labelEn: Database Service - labelZh: 数据库服务 - required: true - type: service - label: - en: Database Service - ja: データベースサービス - ms: Perkhidmatan Pangkalan Data - pt-br: Serviço de Banco de Dados - ru: Сервис баз данных - ko: 데이터베이스 서비스 - zh-hant: 資料庫服務 - zh: 数据库服务 - - default: metabase - envKey: PANEL_DB_NAME - labelEn: Database - labelZh: 数据库名 - random: true - required: true - rule: paramCommon - type: text - label: - en: Database - ja: データベース - ms: Pangkalan Data - pt-br: Banco de Dados - ru: База данных - ko: 데이터베이스 - zh-hant: 資料庫 - zh: 数据库 - - default: metabase - envKey: PANEL_DB_USER - labelEn: User - labelZh: 数据库用户 - random: true - required: true - rule: paramCommon - type: text - label: - en: Database User - ja: データベースユーザー - ms: Pengguna Pangkalan Data - pt-br: Usuário do Banco de Dados - ru: Пользователь базы данных - ko: 데이터베이스 사용자 - zh-hant: 資料庫用戶 - zh: 数据库用户 - - default: metabase - envKey: PANEL_DB_USER_PASSWORD - labelEn: Password - labelZh: 数据库用户密码 - random: true - required: true - type: password - label: - en: Database Password - ja: データベースのパスワード - ms: Kata Laluan Pangkalan Data - pt-br: Senha do Banco de Dados - ru: Пароль базы данных - ko: 데이터베이스 비밀번호 - zh-hant: 資料庫密碼 - zh: 数据库密码 - - default: 3000 - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh-Hant: 埠 - zh: 端口 diff --git a/metabase/0.55.4/docker-compose.yml b/metabase/0.55.4/docker-compose.yml deleted file mode 100644 index 732ea47e5..000000000 --- a/metabase/0.55.4/docker-compose.yml +++ /dev/null @@ -1,29 +0,0 @@ -services: - metabase: - image: metabase/metabase:v0.55.4 - container_name: ${CONTAINER_NAME} - ports: - - ${PANEL_APP_PORT_HTTP}:3000 - restart: always - networks: - - 1panel-network - volumes: - - ./data/metabase:/metabase - - ./data/metabase-data:/metabase-data - environment: - MB_DB_TYPE: mysql - MB_DB_DBNAME: ${PANEL_DB_NAME} - MB_DB_PORT: 3306 - MB_DB_USER: ${PANEL_DB_USER} - MB_DB_PASS: ${PANEL_DB_USER_PASSWORD} - MB_DB_HOST: ${PANEL_DB_HOST} - labels: - createdBy: "Apps" - healthcheck: - test: curl --fail -I http://localhost:3000/api/health || exit 1 - interval: 15s - timeout: 5s - retries: 5 -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/metabase/README.md b/metabase/README.md deleted file mode 100644 index 57004f6ab..000000000 --- a/metabase/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Metabase - -Metabase 是一款开源的数据分析和可视化工具,它提供了丰富的功能来帮助用户探索、分析和可视化数据。以下是 Metabase 的一些主要功能简介,使用 Markdown 语法进行描述: - -## 主要功能: - -- **数据连接**:Metabase 可以连接多种数据源,包括关系型数据库(如MySQL、PostgreSQL、Oracle)、NoSQL数据库(如MongoDB)、云服务(如Amazon Redshift、Google BigQuery)以及各种数据文件格式。 -- **数据查询**:用户可以通过直观的图形界面或SQL查询语言来执行数据查询,从而轻松地提取所需的数据。 -- **可视化**:Metabase 提供了多种图表类型,包括条形图、折线图、饼图等,用户可以使用这些图表来呈现数据,并自定义图表样式和颜色。 -- **数据仪表板**:用户可以创建交互式的数据仪表板,将多个图表和查询结果组合在一起,以便更好地理解数据趋势和关系。 -- **自动化报表**:Metabase 允许用户创建定期自动生成的报表,以便在特定时间发送给团队成员或其他相关方。 -- **数据权限和安全性**:Metabase 提供了细粒度的数据访问权限控制,以确保只有授权用户能够访问敏感数据。 -- **问题和答案**:用户可以使用 Metabase 的“问题”功能来直接向系统提问,系统会自动执行相应的查询并返回答案,无需编写SQL查询。 -- **自动建议**:Metabase 提供了智能的查询建议功能,帮助用户更快地构建有效的查询。 -- **数据导出**:用户可以将查询结果以多种格式导出,包括CSV、Excel、图像等,以便进一步分析或共享数据。 -- **插件和扩展性**:Metabase 支持各种插件和扩展,可以根据需要添加新的功能和数据源连接。 \ No newline at end of file diff --git a/metabase/README_en.md b/metabase/README_en.md deleted file mode 100644 index 7d3d8a87d..000000000 --- a/metabase/README_en.md +++ /dev/null @@ -1,37 +0,0 @@ -# Metabase - -Metabase is an open-source platform for data analysis and visualization, offering a range of features to help users explore, analyze, and present data effectively. - -## Main Features - -- **Data Connectivity**: - Supports integration with various data sources, including relational databases (e.g., MySQL, PostgreSQL, Oracle), NoSQL databases (e.g., MongoDB), cloud platforms (e.g., Amazon Redshift, Google BigQuery), and data file formats. - -- **Data Querying**: - Provides an intuitive graphical interface and SQL query support, enabling users to retrieve data effortlessly. - -- **Data Visualization**: - Offers multiple chart types such as bar charts, line charts, and pie charts, along with options for customizing chart styles and colors to effectively present data. - -- **Interactive Dashboards**: - Create interactive dashboards by combining multiple charts and query results, making it easier to understand trends and relationships within the data. - -- **Automated Reporting**: - Schedule and automate report generation to share insights with team members at regular intervals. - -- **Permissions and Security**: - Fine-grained access control ensures that sensitive data is only accessible to authorized users. - -- **Questions and Answers**: - Utilize Metabase's "Questions" feature to ask natural language queries, which are executed automatically to provide insights without needing SQL knowledge. - -- **Smart Suggestions**: - Offers intelligent query recommendations to help users build efficient and accurate queries quickly. - -- **Data Export**: - Export query results in formats like CSV, Excel, and image files for further analysis or sharing. - -- **Plugins and Extensibility**: - Supports plugins and extensions to add new features or connect to additional data sources as needed. - -Metabase empowers teams to transform raw data into actionable insights, making it a valuable tool for businesses and organizations of all sizes. \ No newline at end of file diff --git a/metabase/data.yml b/metabase/data.yml deleted file mode 100755 index f4fd46c05..000000000 --- a/metabase/data.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: Metabase -tags: - - BI -title: 开源的数据分析和可视化工具 -description: 开源的数据分析和可视化工具 -additionalProperties: - key: metabase - name: Metabase - tags: - - BI - shortDescZh: 开源的数据分析和可视化工具 - shortDescEn: Open source data analysis and visualization tool - type: website - description: - en: Open source data analysis and visualization tool - ja: オープンソースのデータ分析と可視化ツール - ms: Alat analisis data dan visualisasi sumber terbuka - pt-br: Ferramenta de análise e visualização de dados de código aberto - ru: Открытый инструмент для анализа данных и визуализации - ko: 오픈 소스 데이터 분석 및 시각화 도구 - zh-Hant: 開源數據分析和可視化工具 - zh: 开源数据分析和可视化工具 - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://www.metabase.com - github: https://github.com/metabase/metabase - document: https://www.metabase.com/docs - memoryRequired: 1024 - architectures: - - amd64 diff --git a/metabase/logo.png b/metabase/logo.png deleted file mode 100644 index 75ecdbd3e..000000000 Binary files a/metabase/logo.png and /dev/null differ diff --git a/metersphere/3.6.4-lts/data.yml b/metersphere/3.6.4-lts/data.yml deleted file mode 100644 index 4872350e5..000000000 --- a/metersphere/3.6.4-lts/data.yml +++ /dev/null @@ -1,16 +0,0 @@ -additionalProperties: - formFields: - - default: 8081 - envKey: PANEL_APP_PORT_HTTP - labelEn: Web Port - labelZh: Web 端口 - required: true - rule: paramPort - type: number - - default: 15 - envKey: JAVA_MAX_HEAP_RATIO - labelEn: Java Max Heap Ratio - labelZh: Java 最大堆内存比例 - required: true - rule: paramPort - type: number diff --git a/metersphere/3.6.4-lts/data/conf/kafka/config/server.properties b/metersphere/3.6.4-lts/data/conf/kafka/config/server.properties deleted file mode 100755 index ea3892602..000000000 --- a/metersphere/3.6.4-lts/data/conf/kafka/config/server.properties +++ /dev/null @@ -1,34 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Set properties not provided in the file input -controller.quorum.voters=1@127.0.0.1:29093 -listeners=CONTROLLER://:29093,PLAINTEXT_HOST://:9092,PLAINTEXT://:19092 -node.id=1 -advertised.listeners=PLAINTEXT_HOST://127.0.0.1:9092,PLAINTEXT://broker:19092 -controller.listener.names=CONTROLLER -group.initial.rebalance.delay.ms=0 -inter.broker.listener.name=PLAINTEXT -listener.security.protocol.map=PLAINTEXT:PLAINTEXT,CONTROLLER:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT -log.dirs=/tmp/kraft-combined-logs -offsets.topic.replication.factor=1 -process.roles=broker,controller -transaction.state.log.min.isr=1 -transaction.state.log.replication.factor=1 -log.retention.ms=60000 -max.request.size=524288000 -message.max.bytes=524288000 -replica.fetch.max.bytes=524288000 -fetch.message.max_bytes=524288000 -partition.fetch.bytes=524288000 diff --git a/metersphere/3.6.4-lts/data/conf/metersphere.properties b/metersphere/3.6.4-lts/data/conf/metersphere.properties deleted file mode 100755 index 89e284e37..000000000 --- a/metersphere/3.6.4-lts/data/conf/metersphere.properties +++ /dev/null @@ -1,14 +0,0 @@ -logger.sql.level=info -management.endpoints.enabled-by-default=false -springdoc.api-docs.groups.enabled=true -spring.freemarker.check-template-location=false -spring.groovy.template.check-template-location=false - -spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test?autoReconnect=false&useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8&zeroDateTimeBehavior=convertToNull&allowPublicKeyRetrieval=true&useSSL=false&sessionVariables=sql_mode=%27STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION%27 -spring.datasource.username=root -spring.datasource.password=111111 -kafka.bootstrapServers=127.0.0.1:9092 -spring.session.timeout=30d -minio.endpoint=http://127.0.0.1:9000 -minio.accessKey=minioadmin -minio.secretKey=minioadmin \ No newline at end of file diff --git a/metersphere/3.6.4-lts/data/conf/mysql/my.cnf b/metersphere/3.6.4-lts/data/conf/mysql/my.cnf deleted file mode 100755 index 5616a9801..000000000 --- a/metersphere/3.6.4-lts/data/conf/mysql/my.cnf +++ /dev/null @@ -1,35 +0,0 @@ -[mysqld] -datadir=/opt/metersphere/data/mysql - -default-storage-engine=INNODB -character_set_server=utf8mb4 -lower_case_table_names=1 -performance_schema=off -table_open_cache=128 -transaction_isolation=READ-COMMITTED -max_connections=1000 -max_connect_errors=6000 -max_allowed_packet=64M -innodb_file_per_table=1 -innodb_buffer_pool_size=256M -innodb_lock_wait_timeout=1800 - -server-id=1 -log-bin=mysql-bin -expire_logs_days = 2 -binlog_format=mixed - -character-set-client-handshake = FALSE -character-set-server=utf8mb4 -collation-server=utf8mb4_general_ci -init_connect='SET default_collation_for_utf8mb4=utf8mb4_general_ci' - -sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION - -skip-name-resolve - -[mysql] -default-character-set=utf8mb4 - -[mysql.server] -default-character-set=utf8mb4 \ No newline at end of file diff --git a/metersphere/3.6.4-lts/data/conf/redis/redis.conf b/metersphere/3.6.4-lts/data/conf/redis/redis.conf deleted file mode 100755 index 2744c68c1..000000000 --- a/metersphere/3.6.4-lts/data/conf/redis/redis.conf +++ /dev/null @@ -1,2051 +0,0 @@ -# Redis configuration file example. -# -# Note that in order to read the configuration file, Redis must be -# started with the file path as first argument: -# -# ./redis-server /path/to/redis.conf - -# Note on units: when memory size is needed, it is possible to specify -# it in the usual form of 1k 5GB 4M and so forth: -# -# 1k => 1000 bytes -# 1kb => 1024 bytes -# 1m => 1000000 bytes -# 1mb => 1024*1024 bytes -# 1g => 1000000000 bytes -# 1gb => 1024*1024*1024 bytes -# -# units are case insensitive so 1GB 1Gb 1gB are all the same. - -################################## INCLUDES ################################### - -# Include one or more other config files here. This is useful if you -# have a standard template that goes to all Redis servers but also need -# to customize a few per-server settings. Include files can include -# other files, so use this wisely. -# -# Note that option "include" won't be rewritten by command "CONFIG REWRITE" -# from admin or Redis Sentinel. Since Redis always uses the last processed -# line as value of a configuration directive, you'd better put includes -# at the beginning of this file to avoid overwriting config change at runtime. -# -# If instead you are interested in using includes to override configuration -# options, it is better to use include as the last line. -# -# include /path/to/local.conf -# include /path/to/other.conf - -################################## MODULES ##################################### - -# Load modules at startup. If the server is not able to load modules -# it will abort. It is possible to use multiple loadmodule directives. -# -# loadmodule /path/to/my_module.so -# loadmodule /path/to/other_module.so - -################################## NETWORK ##################################### - -# By default, if no "bind" configuration directive is specified, Redis listens -# for connections from all available network interfaces on the host machine. -# It is possible to listen to just one or multiple selected interfaces using -# the "bind" configuration directive, followed by one or more IP addresses. -# Each address can be prefixed by "-", which means that redis will not fail to -# start if the address is not available. Being not available only refers to -# addresses that does not correspond to any network interfece. Addresses that -# are already in use will always fail, and unsupported protocols will always BE -# silently skipped. -# -# Examples: -# -# bind 192.168.1.100 10.0.0.1 # listens on two specific IPv4 addresses -# bind 127.0.0.1 ::1 # listens on loopback IPv4 and IPv6 -# bind * -::* # like the default, all available interfaces -# -# ~~~ WARNING ~~~ If the computer running Redis is directly exposed to the -# internet, binding to all the interfaces is dangerous and will expose the -# instance to everybody on the internet. So by default we uncomment the -# following bind directive, that will force Redis to listen only on the -# IPv4 and IPv6 (if available) loopback interface addresses (this means Redis -# will only be able to accept client connections from the same host that it is -# running on). -# -# IF YOU ARE SURE YOU WANT YOUR INSTANCE TO LISTEN TO ALL THE INTERFACES -# JUST COMMENT OUT THE FOLLOWING LINE. -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -bind 0.0.0.0 - -# Protected mode is a layer of security protection, in order to avoid that -# Redis instances left open on the internet are accessed and exploited. -# -# When protected mode is on and if: -# -# 1) The server is not binding explicitly to a set of addresses using the -# "bind" directive. -# 2) No password is configured. -# -# The server only accepts connections from clients connecting from the -# IPv4 and IPv6 loopback addresses 127.0.0.1 and ::1, and from Unix domain -# sockets. -# -# By default protected mode is enabled. You should disable it only if -# you are sure you want clients from other hosts to connect to Redis -# even if no authentication is configured, nor a specific set of interfaces -# are explicitly listed using the "bind" directive. -protected-mode yes - -# Accept connections on the specified port, default is 6379 (IANA #815344). -# If port 0 is specified Redis will not listen on a TCP socket. -port 6379 - -# TCP listen() backlog. -# -# In high requests-per-second environments you need a high backlog in order -# to avoid slow clients connection issues. Note that the Linux kernel -# will silently truncate it to the value of /proc/sys/net/core/somaxconn so -# make sure to raise both the value of somaxconn and tcp_max_syn_backlog -# in order to get the desired effect. -tcp-backlog 511 - -# Unix socket. -# -# Specify the path for the Unix socket that will be used to listen for -# incoming connections. There is no default, so Redis will not listen -# on a unix socket when not specified. -# -# unixsocket /run/redis.sock -# unixsocketperm 700 - -# Close the connection after a client is idle for N seconds (0 to disable) -timeout 0 - -# TCP keepalive. -# -# If non-zero, use SO_KEEPALIVE to send TCP ACKs to clients in absence -# of communication. This is useful for two reasons: -# -# 1) Detect dead peers. -# 2) Force network equipment in the middle to consider the connection to be -# alive. -# -# On Linux, the specified value (in seconds) is the period used to send ACKs. -# Note that to close the connection the double of the time is needed. -# On other kernels the period depends on the kernel configuration. -# -# A reasonable value for this option is 300 seconds, which is the new -# Redis default starting with Redis 3.2.1. -tcp-keepalive 300 - -################################# TLS/SSL ##################################### - -# By default, TLS/SSL is disabled. To enable it, the "tls-port" configuration -# directive can be used to define TLS-listening ports. To enable TLS on the -# default port, use: -# -# port 0 -# tls-port 6379 - -# Configure a X.509 certificate and private key to use for authenticating the -# server to connected clients, masters or cluster peers. These files should be -# PEM formatted. -# -# tls-cert-file redis.crt -# tls-key-file redis.key -# -# If the key file is encrypted using a passphrase, it can be included here -# as well. -# -# tls-key-file-pass secret - -# Normally Redis uses the same certificate for both server functions (accepting -# connections) and client functions (replicating from a master, establishing -# cluster bus connections, etc.). -# -# Sometimes certificates are issued with attributes that designate them as -# client-only or server-only certificates. In that case it may be desired to use -# different certificates for incoming (server) and outgoing (client) -# connections. To do that, use the following directives: -# -# tls-client-cert-file client.crt -# tls-client-key-file client.key -# -# If the key file is encrypted using a passphrase, it can be included here -# as well. -# -# tls-client-key-file-pass secret - -# Configure a DH parameters file to enable Diffie-Hellman (DH) key exchange: -# -# tls-dh-params-file redis.dh - -# Configure a CA certificate(s) bundle or directory to authenticate TLS/SSL -# clients and peers. Redis requires an explicit configuration of at least one -# of these, and will not implicitly use the system wide configuration. -# -# tls-ca-cert-file ca.crt -# tls-ca-cert-dir /etc/ssl/certs - -# By default, clients (including replica servers) on a TLS port are required -# to authenticate using valid client side certificates. -# -# If "no" is specified, client certificates are not required and not accepted. -# If "optional" is specified, client certificates are accepted and must be -# valid if provided, but are not required. -# -# tls-auth-clients no -# tls-auth-clients optional - -# By default, a Redis replica does not attempt to establish a TLS connection -# with its master. -# -# Use the following directive to enable TLS on replication links. -# -# tls-replication yes - -# By default, the Redis Cluster bus uses a plain TCP connection. To enable -# TLS for the bus protocol, use the following directive: -# -# tls-cluster yes - -# By default, only TLSv1.2 and TLSv1.3 are enabled and it is highly recommended -# that older formally deprecated versions are kept disabled to reduce the attack surface. -# You can explicitly specify TLS versions to support. -# Allowed values are case insensitive and include "TLSv1", "TLSv1.1", "TLSv1.2", -# "TLSv1.3" (OpenSSL >= 1.1.1) or any combination. -# To enable only TLSv1.2 and TLSv1.3, use: -# -# tls-protocols "TLSv1.2 TLSv1.3" - -# Configure allowed ciphers. See the ciphers(1ssl) manpage for more information -# about the syntax of this string. -# -# Note: this configuration applies only to <= TLSv1.2. -# -# tls-ciphers DEFAULT:!MEDIUM - -# Configure allowed TLSv1.3 ciphersuites. See the ciphers(1ssl) manpage for more -# information about the syntax of this string, and specifically for TLSv1.3 -# ciphersuites. -# -# tls-ciphersuites TLS_CHACHA20_POLY1305_SHA256 - -# When choosing a cipher, use the server's preference instead of the client -# preference. By default, the server follows the client's preference. -# -# tls-prefer-server-ciphers yes - -# By default, TLS session caching is enabled to allow faster and less expensive -# reconnections by clients that support it. Use the following directive to disable -# caching. -# -# tls-session-caching no - -# Change the default number of TLS sessions cached. A zero value sets the cache -# to unlimited size. The default size is 20480. -# -# tls-session-cache-size 5000 - -# Change the default timeout of cached TLS sessions. The default timeout is 300 -# seconds. -# -# tls-session-cache-timeout 60 - -################################# GENERAL ##################################### - -# By default Redis does not run as a daemon. Use 'yes' if you need it. -# Note that Redis will write a pid file in /var/run/redis.pid when daemonized. -# When Redis is supervised by upstart or systemd, this parameter has no impact. -daemonize no - -# If you run Redis from upstart or systemd, Redis can interact with your -# supervision tree. Options: -# supervised no - no supervision interaction -# supervised upstart - signal upstart by putting Redis into SIGSTOP mode -# requires "expect stop" in your upstart job config -# supervised systemd - signal systemd by writing READY=1 to $NOTIFY_SOCKET -# on startup, and updating Redis status on a regular -# basis. -# supervised auto - detect upstart or systemd method based on -# UPSTART_JOB or NOTIFY_SOCKET environment variables -# Note: these supervision methods only signal "process is ready." -# They do not enable continuous pings back to your supervisor. -# -# The default is "no". To run under upstart/systemd, you can simply uncomment -# the line below: -# -# supervised auto - -# If a pid file is specified, Redis writes it where specified at startup -# and removes it at exit. -# -# When the server runs non daemonized, no pid file is created if none is -# specified in the configuration. When the server is daemonized, the pid file -# is used even if not specified, defaulting to "/var/run/redis.pid". -# -# Creating a pid file is best effort: if Redis is not able to create it -# nothing bad happens, the server will start and run normally. -# -# Note that on modern Linux systems "/run/redis.pid" is more conforming -# and should be used instead. -pidfile /var/run/redis_6379.pid - -# Specify the server verbosity level. -# This can be one of: -# debug (a lot of information, useful for development/testing) -# verbose (many rarely useful info, but not a mess like the debug level) -# notice (moderately verbose, what you want in production probably) -# warning (only very important / critical messages are logged) -loglevel notice - -# Specify the log file name. Also the empty string can be used to force -# Redis to log on the standard output. Note that if you use standard -# output for logging but daemonize, logs will be sent to /dev/null -logfile "" - -# To enable logging to the system logger, just set 'syslog-enabled' to yes, -# and optionally update the other syslog parameters to suit your needs. -# syslog-enabled no - -# Specify the syslog identity. -# syslog-ident redis - -# Specify the syslog facility. Must be USER or between LOCAL0-LOCAL7. -# syslog-facility local0 - -# To disable the built in crash log, which will possibly produce cleaner core -# dumps when they are needed, uncomment the following: -# -# crash-log-enabled no - -# To disable the fast memory check that's run as part of the crash log, which -# will possibly let redis terminate sooner, uncomment the following: -# -# crash-memcheck-enabled no - -# Set the number of databases. The default database is DB 0, you can select -# a different one on a per-connection basis using SELECT where -# dbid is a number between 0 and 'databases'-1 -databases 16 - -# By default Redis shows an ASCII art logo only when started to log to the -# standard output and if the standard output is a TTY and syslog logging is -# disabled. Basically this means that normally a logo is displayed only in -# interactive sessions. -# -# However it is possible to force the pre-4.0 behavior and always show a -# ASCII art logo in startup logs by setting the following option to yes. -always-show-logo no - -# By default, Redis modifies the process title (as seen in 'top' and 'ps') to -# provide some runtime information. It is possible to disable this and leave -# the process name as executed by setting the following to no. -set-proc-title yes - -# When changing the process title, Redis uses the following template to construct -# the modified title. -# -# Template variables are specified in curly brackets. The following variables are -# supported: -# -# {title} Name of process as executed if parent, or type of child process. -# {listen-addr} Bind address or '*' followed by TCP or TLS port listening on, or -# Unix socket if only that's available. -# {server-mode} Special mode, i.e. "[sentinel]" or "[cluster]". -# {port} TCP port listening on, or 0. -# {tls-port} TLS port listening on, or 0. -# {unixsocket} Unix domain socket listening on, or "". -# {config-file} Name of configuration file used. -# -proc-title-template "{title} {listen-addr} {server-mode}" - -################################ SNAPSHOTTING ################################ - -# Save the DB to disk. -# -# save -# -# Redis will save the DB if both the given number of seconds and the given -# number of write operations against the DB occurred. -# -# Snapshotting can be completely disabled with a single empty string argument -# as in following example: -# -# save "" -# -# Unless specified otherwise, by default Redis will save the DB: -# * After 3600 seconds (an hour) if at least 1 key changed -# * After 300 seconds (5 minutes) if at least 100 keys changed -# * After 60 seconds if at least 10000 keys changed -# -# You can set these explicitly by uncommenting the three following lines. -# -# save 3600 1 -# save 300 100 -# save 60 10000 - -# By default Redis will stop accepting writes if RDB snapshots are enabled -# (at least one save point) and the latest background save failed. -# This will make the user aware (in a hard way) that data is not persisting -# on disk properly, otherwise chances are that no one will notice and some -# disaster will happen. -# -# If the background saving process will start working again Redis will -# automatically allow writes again. -# -# However if you have setup your proper monitoring of the Redis server -# and persistence, you may want to disable this feature so that Redis will -# continue to work as usual even if there are problems with disk, -# permissions, and so forth. -stop-writes-on-bgsave-error yes - -# Compress string objects using LZF when dump .rdb databases? -# By default compression is enabled as it's almost always a win. -# If you want to save some CPU in the saving child set it to 'no' but -# the dataset will likely be bigger if you have compressible values or keys. -rdbcompression yes - -# Since version 5 of RDB a CRC64 checksum is placed at the end of the file. -# This makes the format more resistant to corruption but there is a performance -# hit to pay (around 10%) when saving and loading RDB files, so you can disable it -# for maximum performances. -# -# RDB files created with checksum disabled have a checksum of zero that will -# tell the loading code to skip the check. -rdbchecksum yes - -# Enables or disables full sanitation checks for ziplist and listpack etc when -# loading an RDB or RESTORE payload. This reduces the chances of a assertion or -# crash later on while processing commands. -# Options: -# no - Never perform full sanitation -# yes - Always perform full sanitation -# clients - Perform full sanitation only for user connections. -# Excludes: RDB files, RESTORE commands received from the master -# connection, and client connections which have the -# skip-sanitize-payload ACL flag. -# The default should be 'clients' but since it currently affects cluster -# resharding via MIGRATE, it is temporarily set to 'no' by default. -# -# sanitize-dump-payload no - -# The filename where to dump the DB -dbfilename dump.rdb - -# Remove RDB files used by replication in instances without persistence -# enabled. By default this option is disabled, however there are environments -# where for regulations or other security concerns, RDB files persisted on -# disk by masters in order to feed replicas, or stored on disk by replicas -# in order to load them for the initial synchronization, should be deleted -# ASAP. Note that this option ONLY WORKS in instances that have both AOF -# and RDB persistence disabled, otherwise is completely ignored. -# -# An alternative (and sometimes better) way to obtain the same effect is -# to use diskless replication on both master and replicas instances. However -# in the case of replicas, diskless is not always an option. -rdb-del-sync-files no - -# The working directory. -# -# The DB will be written inside this directory, with the filename specified -# above using the 'dbfilename' configuration directive. -# -# The Append Only File will also be created inside this directory. -# -# Note that you must specify a directory here, not a file name. -dir /opt/metersphere/data/redis - -################################# REPLICATION ################################# - -# Master-Replica replication. Use replicaof to make a Redis instance a copy of -# another Redis server. A few things to understand ASAP about Redis replication. -# -# +------------------+ +---------------+ -# | Master | ---> | Replica | -# | (receive writes) | | (exact copy) | -# +------------------+ +---------------+ -# -# 1) Redis replication is asynchronous, but you can configure a master to -# stop accepting writes if it appears to be not connected with at least -# a given number of replicas. -# 2) Redis replicas are able to perform a partial resynchronization with the -# master if the replication link is lost for a relatively small amount of -# time. You may want to configure the replication backlog size (see the next -# sections of this file) with a sensible value depending on your needs. -# 3) Replication is automatic and does not need user intervention. After a -# network partition replicas automatically try to reconnect to masters -# and resynchronize with them. -# -# replicaof - -# If the master is password protected (using the "requirepass" configuration -# directive below) it is possible to tell the replica to authenticate before -# starting the replication synchronization process, otherwise the master will -# refuse the replica request. -# -# masterauth -# -# However this is not enough if you are using Redis ACLs (for Redis version -# 6 or greater), and the default user is not capable of running the PSYNC -# command and/or other commands needed for replication. In this case it's -# better to configure a special user to use with replication, and specify the -# masteruser configuration as such: -# -# masteruser -# -# When masteruser is specified, the replica will authenticate against its -# master using the new AUTH form: AUTH . - -# When a replica loses its connection with the master, or when the replication -# is still in progress, the replica can act in two different ways: -# -# 1) if replica-serve-stale-data is set to 'yes' (the default) the replica will -# still reply to client requests, possibly with out of date data, or the -# data set may just be empty if this is the first synchronization. -# -# 2) If replica-serve-stale-data is set to 'no' the replica will reply with -# an error "SYNC with master in progress" to all commands except: -# INFO, REPLICAOF, AUTH, PING, SHUTDOWN, REPLCONF, ROLE, CONFIG, SUBSCRIBE, -# UNSUBSCRIBE, PSUBSCRIBE, PUNSUBSCRIBE, PUBLISH, PUBSUB, COMMAND, POST, -# HOST and LATENCY. -# -replica-serve-stale-data yes - -# You can configure a replica instance to accept writes or not. Writing against -# a replica instance may be useful to store some ephemeral data (because data -# written on a replica will be easily deleted after resync with the master) but -# may also cause problems if clients are writing to it because of a -# misconfiguration. -# -# Since Redis 2.6 by default replicas are read-only. -# -# Note: read only replicas are not designed to be exposed to untrusted clients -# on the internet. It's just a protection layer against misuse of the instance. -# Still a read only replica exports by default all the administrative commands -# such as CONFIG, DEBUG, and so forth. To a limited extent you can improve -# security of read only replicas using 'rename-command' to shadow all the -# administrative / dangerous commands. -replica-read-only yes - -# Replication SYNC strategy: disk or socket. -# -# New replicas and reconnecting replicas that are not able to continue the -# replication process just receiving differences, need to do what is called a -# "full synchronization". An RDB file is transmitted from the master to the -# replicas. -# -# The transmission can happen in two different ways: -# -# 1) Disk-backed: The Redis master creates a new process that writes the RDB -# file on disk. Later the file is transferred by the parent -# process to the replicas incrementally. -# 2) Diskless: The Redis master creates a new process that directly writes the -# RDB file to replica sockets, without touching the disk at all. -# -# With disk-backed replication, while the RDB file is generated, more replicas -# can be queued and served with the RDB file as soon as the current child -# producing the RDB file finishes its work. With diskless replication instead -# once the transfer starts, new replicas arriving will be queued and a new -# transfer will start when the current one terminates. -# -# When diskless replication is used, the master waits a configurable amount of -# time (in seconds) before starting the transfer in the hope that multiple -# replicas will arrive and the transfer can be parallelized. -# -# With slow disks and fast (large bandwidth) networks, diskless replication -# works better. -repl-diskless-sync no - -# When diskless replication is enabled, it is possible to configure the delay -# the server waits in order to spawn the child that transfers the RDB via socket -# to the replicas. -# -# This is important since once the transfer starts, it is not possible to serve -# new replicas arriving, that will be queued for the next RDB transfer, so the -# server waits a delay in order to let more replicas arrive. -# -# The delay is specified in seconds, and by default is 5 seconds. To disable -# it entirely just set it to 0 seconds and the transfer will start ASAP. -repl-diskless-sync-delay 5 - -# ----------------------------------------------------------------------------- -# WARNING: RDB diskless load is experimental. Since in this setup the replica -# does not immediately store an RDB on disk, it may cause data loss during -# failovers. RDB diskless load + Redis modules not handling I/O reads may also -# cause Redis to abort in case of I/O errors during the initial synchronization -# stage with the master. Use only if you know what you are doing. -# ----------------------------------------------------------------------------- -# -# Replica can load the RDB it reads from the replication link directly from the -# socket, or store the RDB to a file and read that file after it was completely -# received from the master. -# -# In many cases the disk is slower than the network, and storing and loading -# the RDB file may increase replication time (and even increase the master's -# Copy on Write memory and salve buffers). -# However, parsing the RDB file directly from the socket may mean that we have -# to flush the contents of the current database before the full rdb was -# received. For this reason we have the following options: -# -# "disabled" - Don't use diskless load (store the rdb file to the disk first) -# "on-empty-db" - Use diskless load only when it is completely safe. -# "swapdb" - Keep a copy of the current db contents in RAM while parsing -# the data directly from the socket. note that this requires -# sufficient memory, if you don't have it, you risk an OOM kill. -repl-diskless-load disabled - -# Replicas send PINGs to server in a predefined interval. It's possible to -# change this interval with the repl_ping_replica_period option. The default -# value is 10 seconds. -# -# repl-ping-replica-period 10 - -# The following option sets the replication timeout for: -# -# 1) Bulk transfer I/O during SYNC, from the point of view of replica. -# 2) Master timeout from the point of view of replicas (data, pings). -# 3) Replica timeout from the point of view of masters (REPLCONF ACK pings). -# -# It is important to make sure that this value is greater than the value -# specified for repl-ping-replica-period otherwise a timeout will be detected -# every time there is low traffic between the master and the replica. The default -# value is 60 seconds. -# -# repl-timeout 60 - -# Disable TCP_NODELAY on the replica socket after SYNC? -# -# If you select "yes" Redis will use a smaller number of TCP packets and -# less bandwidth to send data to replicas. But this can add a delay for -# the data to appear on the replica side, up to 40 milliseconds with -# Linux kernels using a default configuration. -# -# If you select "no" the delay for data to appear on the replica side will -# be reduced but more bandwidth will be used for replication. -# -# By default we optimize for low latency, but in very high traffic conditions -# or when the master and replicas are many hops away, turning this to "yes" may -# be a good idea. -repl-disable-tcp-nodelay no - -# Set the replication backlog size. The backlog is a buffer that accumulates -# replica data when replicas are disconnected for some time, so that when a -# replica wants to reconnect again, often a full resync is not needed, but a -# partial resync is enough, just passing the portion of data the replica -# missed while disconnected. -# -# The bigger the replication backlog, the longer the replica can endure the -# disconnect and later be able to perform a partial resynchronization. -# -# The backlog is only allocated if there is at least one replica connected. -# -# repl-backlog-size 1mb - -# After a master has no connected replicas for some time, the backlog will be -# freed. The following option configures the amount of seconds that need to -# elapse, starting from the time the last replica disconnected, for the backlog -# buffer to be freed. -# -# Note that replicas never free the backlog for timeout, since they may be -# promoted to masters later, and should be able to correctly "partially -# resynchronize" with other replicas: hence they should always accumulate backlog. -# -# A value of 0 means to never release the backlog. -# -# repl-backlog-ttl 3600 - -# The replica priority is an integer number published by Redis in the INFO -# output. It is used by Redis Sentinel in order to select a replica to promote -# into a master if the master is no longer working correctly. -# -# A replica with a low priority number is considered better for promotion, so -# for instance if there are three replicas with priority 10, 100, 25 Sentinel -# will pick the one with priority 10, that is the lowest. -# -# However a special priority of 0 marks the replica as not able to perform the -# role of master, so a replica with priority of 0 will never be selected by -# Redis Sentinel for promotion. -# -# By default the priority is 100. -replica-priority 100 - -# ----------------------------------------------------------------------------- -# By default, Redis Sentinel includes all replicas in its reports. A replica -# can be excluded from Redis Sentinel's announcements. An unannounced replica -# will be ignored by the 'sentinel replicas ' command and won't be -# exposed to Redis Sentinel's clients. -# -# This option does not change the behavior of replica-priority. Even with -# replica-announced set to 'no', the replica can be promoted to master. To -# prevent this behavior, set replica-priority to 0. -# -# replica-announced yes - -# It is possible for a master to stop accepting writes if there are less than -# N replicas connected, having a lag less or equal than M seconds. -# -# The N replicas need to be in "online" state. -# -# The lag in seconds, that must be <= the specified value, is calculated from -# the last ping received from the replica, that is usually sent every second. -# -# This option does not GUARANTEE that N replicas will accept the write, but -# will limit the window of exposure for lost writes in case not enough replicas -# are available, to the specified number of seconds. -# -# For example to require at least 3 replicas with a lag <= 10 seconds use: -# -# min-replicas-to-write 3 -# min-replicas-max-lag 10 -# -# Setting one or the other to 0 disables the feature. -# -# By default min-replicas-to-write is set to 0 (feature disabled) and -# min-replicas-max-lag is set to 10. - -# A Redis master is able to list the address and port of the attached -# replicas in different ways. For example the "INFO replication" section -# offers this information, which is used, among other tools, by -# Redis Sentinel in order to discover replica instances. -# Another place where this info is available is in the output of the -# "ROLE" command of a master. -# -# The listed IP address and port normally reported by a replica is -# obtained in the following way: -# -# IP: The address is auto detected by checking the peer address -# of the socket used by the replica to connect with the master. -# -# Port: The port is communicated by the replica during the replication -# handshake, and is normally the port that the replica is using to -# listen for connections. -# -# However when port forwarding or Network Address Translation (NAT) is -# used, the replica may actually be reachable via different IP and port -# pairs. The following two options can be used by a replica in order to -# report to its master a specific set of IP and port, so that both INFO -# and ROLE will report those values. -# -# There is no need to use both the options if you need to override just -# the port or the IP address. -# -# replica-announce-ip 5.5.5.5 -# replica-announce-port 1234 - -############################### KEYS TRACKING ################################# - -# Redis implements server assisted support for client side caching of values. -# This is implemented using an invalidation table that remembers, using -# a radix key indexed by key name, what clients have which keys. In turn -# this is used in order to send invalidation messages to clients. Please -# check this page to understand more about the feature: -# -# https://redis.io/topics/client-side-caching -# -# When tracking is enabled for a client, all the read only queries are assumed -# to be cached: this will force Redis to store information in the invalidation -# table. When keys are modified, such information is flushed away, and -# invalidation messages are sent to the clients. However if the workload is -# heavily dominated by reads, Redis could use more and more memory in order -# to track the keys fetched by many clients. -# -# For this reason it is possible to configure a maximum fill value for the -# invalidation table. By default it is set to 1M of keys, and once this limit -# is reached, Redis will start to evict keys in the invalidation table -# even if they were not modified, just to reclaim memory: this will in turn -# force the clients to invalidate the cached values. Basically the table -# maximum size is a trade off between the memory you want to spend server -# side to track information about who cached what, and the ability of clients -# to retain cached objects in memory. -# -# If you set the value to 0, it means there are no limits, and Redis will -# retain as many keys as needed in the invalidation table. -# In the "stats" INFO section, you can find information about the number of -# keys in the invalidation table at every given moment. -# -# Note: when key tracking is used in broadcasting mode, no memory is used -# in the server side so this setting is useless. -# -# tracking-table-max-keys 1000000 - -################################## SECURITY ################################### - -# Warning: since Redis is pretty fast, an outside user can try up to -# 1 million passwords per second against a modern box. This means that you -# should use very strong passwords, otherwise they will be very easy to break. -# Note that because the password is really a shared secret between the client -# and the server, and should not be memorized by any human, the password -# can be easily a long string from /dev/urandom or whatever, so by using a -# long and unguessable password no brute force attack will be possible. - -# Redis ACL users are defined in the following format: -# -# user ... acl rules ... -# -# For example: -# -# user worker +@list +@connection ~jobs:* on >ffa9203c493aa99 -# -# The special username "default" is used for new connections. If this user -# has the "nopass" rule, then new connections will be immediately authenticated -# as the "default" user without the need of any password provided via the -# AUTH command. Otherwise if the "default" user is not flagged with "nopass" -# the connections will start in not authenticated state, and will require -# AUTH (or the HELLO command AUTH option) in order to be authenticated and -# start to work. -# -# The ACL rules that describe what a user can do are the following: -# -# on Enable the user: it is possible to authenticate as this user. -# off Disable the user: it's no longer possible to authenticate -# with this user, however the already authenticated connections -# will still work. -# skip-sanitize-payload RESTORE dump-payload sanitation is skipped. -# sanitize-payload RESTORE dump-payload is sanitized (default). -# + Allow the execution of that command -# - Disallow the execution of that command -# +@ Allow the execution of all the commands in such category -# with valid categories are like @admin, @set, @sortedset, ... -# and so forth, see the full list in the server.c file where -# the Redis command table is described and defined. -# The special category @all means all the commands, but currently -# present in the server, and that will be loaded in the future -# via modules. -# +|subcommand Allow a specific subcommand of an otherwise -# disabled command. Note that this form is not -# allowed as negative like -DEBUG|SEGFAULT, but -# only additive starting with "+". -# allcommands Alias for +@all. Note that it implies the ability to execute -# all the future commands loaded via the modules system. -# nocommands Alias for -@all. -# ~ Add a pattern of keys that can be mentioned as part of -# commands. For instance ~* allows all the keys. The pattern -# is a glob-style pattern like the one of KEYS. -# It is possible to specify multiple patterns. -# allkeys Alias for ~* -# resetkeys Flush the list of allowed keys patterns. -# & Add a glob-style pattern of Pub/Sub channels that can be -# accessed by the user. It is possible to specify multiple channel -# patterns. -# allchannels Alias for &* -# resetchannels Flush the list of allowed channel patterns. -# > Add this password to the list of valid password for the user. -# For example >mypass will add "mypass" to the list. -# This directive clears the "nopass" flag (see later). -# < Remove this password from the list of valid passwords. -# nopass All the set passwords of the user are removed, and the user -# is flagged as requiring no password: it means that every -# password will work against this user. If this directive is -# used for the default user, every new connection will be -# immediately authenticated with the default user without -# any explicit AUTH command required. Note that the "resetpass" -# directive will clear this condition. -# resetpass Flush the list of allowed passwords. Moreover removes the -# "nopass" status. After "resetpass" the user has no associated -# passwords and there is no way to authenticate without adding -# some password (or setting it as "nopass" later). -# reset Performs the following actions: resetpass, resetkeys, off, -# -@all. The user returns to the same state it has immediately -# after its creation. -# -# ACL rules can be specified in any order: for instance you can start with -# passwords, then flags, or key patterns. However note that the additive -# and subtractive rules will CHANGE MEANING depending on the ordering. -# For instance see the following example: -# -# user alice on +@all -DEBUG ~* >somepassword -# -# This will allow "alice" to use all the commands with the exception of the -# DEBUG command, since +@all added all the commands to the set of the commands -# alice can use, and later DEBUG was removed. However if we invert the order -# of two ACL rules the result will be different: -# -# user alice on -DEBUG +@all ~* >somepassword -# -# Now DEBUG was removed when alice had yet no commands in the set of allowed -# commands, later all the commands are added, so the user will be able to -# execute everything. -# -# Basically ACL rules are processed left-to-right. -# -# For more information about ACL configuration please refer to -# the Redis web site at https://redis.io/topics/acl - -# ACL LOG -# -# The ACL Log tracks failed commands and authentication events associated -# with ACLs. The ACL Log is useful to troubleshoot failed commands blocked -# by ACLs. The ACL Log is stored in memory. You can reclaim memory with -# ACL LOG RESET. Define the maximum entry length of the ACL Log below. -acllog-max-len 128 - -# Using an external ACL file -# -# Instead of configuring users here in this file, it is possible to use -# a stand-alone file just listing users. The two methods cannot be mixed: -# if you configure users here and at the same time you activate the external -# ACL file, the server will refuse to start. -# -# The format of the external ACL user file is exactly the same as the -# format that is used inside redis.conf to describe users. -# -# aclfile /etc/redis/users.acl - -# IMPORTANT NOTE: starting with Redis 6 "requirepass" is just a compatibility -# layer on top of the new ACL system. The option effect will be just setting -# the password for the default user. Clients will still authenticate using -# AUTH as usually, or more explicitly with AUTH default -# if they follow the new protocol: both will work. -# -# The requirepass is not compatable with aclfile option and the ACL LOAD -# command, these will cause requirepass to be ignored. -# -# requirepass foobared - -# New users are initialized with restrictive permissions by default, via the -# equivalent of this ACL rule 'off resetkeys -@all'. Starting with Redis 6.2, it -# is possible to manage access to Pub/Sub channels with ACL rules as well. The -# default Pub/Sub channels permission if new users is controlled by the -# acl-pubsub-default configuration directive, which accepts one of these values: -# -# allchannels: grants access to all Pub/Sub channels -# resetchannels: revokes access to all Pub/Sub channels -# -# To ensure backward compatibility while upgrading Redis 6.0, acl-pubsub-default -# defaults to the 'allchannels' permission. -# -# Future compatibility note: it is very likely that in a future version of Redis -# the directive's default of 'allchannels' will be changed to 'resetchannels' in -# order to provide better out-of-the-box Pub/Sub security. Therefore, it is -# recommended that you explicitly define Pub/Sub permissions for all users -# rather then rely on implicit default values. Once you've set explicit -# Pub/Sub for all existing users, you should uncomment the following line. -# -# acl-pubsub-default resetchannels - -# Command renaming (DEPRECATED). -# -# ------------------------------------------------------------------------ -# WARNING: avoid using this option if possible. Instead use ACLs to remove -# commands from the default user, and put them only in some admin user you -# create for administrative purposes. -# ------------------------------------------------------------------------ -# -# It is possible to change the name of dangerous commands in a shared -# environment. For instance the CONFIG command may be renamed into something -# hard to guess so that it will still be available for internal-use tools -# but not available for general clients. -# -# Example: -# -# rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52 -# -# It is also possible to completely kill a command by renaming it into -# an empty string: -# -# rename-command CONFIG "" -# -# Please note that changing the name of commands that are logged into the -# AOF file or transmitted to replicas may cause problems. - -################################### CLIENTS #################################### - -# Set the max number of connected clients at the same time. By default -# this limit is set to 10000 clients, however if the Redis server is not -# able to configure the process file limit to allow for the specified limit -# the max number of allowed clients is set to the current file limit -# minus 32 (as Redis reserves a few file descriptors for internal uses). -# -# Once the limit is reached Redis will close all the new connections sending -# an error 'max number of clients reached'. -# -# IMPORTANT: When Redis Cluster is used, the max number of connections is also -# shared with the cluster bus: every node in the cluster will use two -# connections, one incoming and another outgoing. It is important to size the -# limit accordingly in case of very large clusters. -# -# maxclients 10000 - -############################## MEMORY MANAGEMENT ################################ - -# Set a memory usage limit to the specified amount of bytes. -# When the memory limit is reached Redis will try to remove keys -# according to the eviction policy selected (see maxmemory-policy). -# -# If Redis can't remove keys according to the policy, or if the policy is -# set to 'noeviction', Redis will start to reply with errors to commands -# that would use more memory, like SET, LPUSH, and so on, and will continue -# to reply to read-only commands like GET. -# -# This option is usually useful when using Redis as an LRU or LFU cache, or to -# set a hard memory limit for an instance (using the 'noeviction' policy). -# -# WARNING: If you have replicas attached to an instance with maxmemory on, -# the size of the output buffers needed to feed the replicas are subtracted -# from the used memory count, so that network problems / resyncs will -# not trigger a loop where keys are evicted, and in turn the output -# buffer of replicas is full with DELs of keys evicted triggering the deletion -# of more keys, and so forth until the database is completely emptied. -# -# In short... if you have replicas attached it is suggested that you set a lower -# limit for maxmemory so that there is some free RAM on the system for replica -# output buffers (but this is not needed if the policy is 'noeviction'). -# -maxmemory 1G - -# MAXMEMORY POLICY: how Redis will select what to remove when maxmemory -# is reached. You can select one from the following behaviors: -# -# volatile-lru -> Evict using approximated LRU, only keys with an expire set. -# allkeys-lru -> Evict any key using approximated LRU. -# volatile-lfu -> Evict using approximated LFU, only keys with an expire set. -# allkeys-lfu -> Evict any key using approximated LFU. -# volatile-random -> Remove a random key having an expire set. -# allkeys-random -> Remove a random key, any key. -# volatile-ttl -> Remove the key with the nearest expire time (minor TTL) -# noeviction -> Don't evict anything, just return an error on write operations. -# -# LRU means Least Recently Used -# LFU means Least Frequently Used -# -# Both LRU, LFU and volatile-ttl are implemented using approximated -# randomized algorithms. -# -# Note: with any of the above policies, when there are no suitable keys for -# eviction, Redis will return an error on write operations that require -# more memory. These are usually commands that create new keys, add data or -# modify existing keys. A few examples are: SET, INCR, HSET, LPUSH, SUNIONSTORE, -# SORT (due to the STORE argument), and EXEC (if the transaction includes any -# command that requires memory). -# -# The default is: -# -maxmemory-policy allkeys-lru - -# LRU, LFU and minimal TTL algorithms are not precise algorithms but approximated -# algorithms (in order to save memory), so you can tune it for speed or -# accuracy. By default Redis will check five keys and pick the one that was -# used least recently, you can change the sample size using the following -# configuration directive. -# -# The default of 5 produces good enough results. 10 Approximates very closely -# true LRU but costs more CPU. 3 is faster but not very accurate. -# -# maxmemory-samples 5 - -# Eviction processing is designed to function well with the default setting. -# If there is an unusually large amount of write traffic, this value may need to -# be increased. Decreasing this value may reduce latency at the risk of -# eviction processing effectiveness -# 0 = minimum latency, 10 = default, 100 = process without regard to latency -# -# maxmemory-eviction-tenacity 10 - -# Starting from Redis 5, by default a replica will ignore its maxmemory setting -# (unless it is promoted to master after a failover or manually). It means -# that the eviction of keys will be just handled by the master, sending the -# DEL commands to the replica as keys evict in the master side. -# -# This behavior ensures that masters and replicas stay consistent, and is usually -# what you want, however if your replica is writable, or you want the replica -# to have a different memory setting, and you are sure all the writes performed -# to the replica are idempotent, then you may change this default (but be sure -# to understand what you are doing). -# -# Note that since the replica by default does not evict, it may end using more -# memory than the one set via maxmemory (there are certain buffers that may -# be larger on the replica, or data structures may sometimes take more memory -# and so forth). So make sure you monitor your replicas and make sure they -# have enough memory to never hit a real out-of-memory condition before the -# master hits the configured maxmemory setting. -# -# replica-ignore-maxmemory yes - -# Redis reclaims expired keys in two ways: upon access when those keys are -# found to be expired, and also in background, in what is called the -# "active expire key". The key space is slowly and interactively scanned -# looking for expired keys to reclaim, so that it is possible to free memory -# of keys that are expired and will never be accessed again in a short time. -# -# The default effort of the expire cycle will try to avoid having more than -# ten percent of expired keys still in memory, and will try to avoid consuming -# more than 25% of total memory and to add latency to the system. However -# it is possible to increase the expire "effort" that is normally set to -# "1", to a greater value, up to the value "10". At its maximum value the -# system will use more CPU, longer cycles (and technically may introduce -# more latency), and will tolerate less already expired keys still present -# in the system. It's a tradeoff between memory, CPU and latency. -# -# active-expire-effort 1 - -############################# LAZY FREEING #################################### - -# Redis has two primitives to delete keys. One is called DEL and is a blocking -# deletion of the object. It means that the server stops processing new commands -# in order to reclaim all the memory associated with an object in a synchronous -# way. If the key deleted is associated with a small object, the time needed -# in order to execute the DEL command is very small and comparable to most other -# O(1) or O(log_N) commands in Redis. However if the key is associated with an -# aggregated value containing millions of elements, the server can block for -# a long time (even seconds) in order to complete the operation. -# -# For the above reasons Redis also offers non blocking deletion primitives -# such as UNLINK (non blocking DEL) and the ASYNC option of FLUSHALL and -# FLUSHDB commands, in order to reclaim memory in background. Those commands -# are executed in constant time. Another thread will incrementally free the -# object in the background as fast as possible. -# -# DEL, UNLINK and ASYNC option of FLUSHALL and FLUSHDB are user-controlled. -# It's up to the design of the application to understand when it is a good -# idea to use one or the other. However the Redis server sometimes has to -# delete keys or flush the whole database as a side effect of other operations. -# Specifically Redis deletes objects independently of a user call in the -# following scenarios: -# -# 1) On eviction, because of the maxmemory and maxmemory policy configurations, -# in order to make room for new data, without going over the specified -# memory limit. -# 2) Because of expire: when a key with an associated time to live (see the -# EXPIRE command) must be deleted from memory. -# 3) Because of a side effect of a command that stores data on a key that may -# already exist. For example the RENAME command may delete the old key -# content when it is replaced with another one. Similarly SUNIONSTORE -# or SORT with STORE option may delete existing keys. The SET command -# itself removes any old content of the specified key in order to replace -# it with the specified string. -# 4) During replication, when a replica performs a full resynchronization with -# its master, the content of the whole database is removed in order to -# load the RDB file just transferred. -# -# In all the above cases the default is to delete objects in a blocking way, -# like if DEL was called. However you can configure each case specifically -# in order to instead release memory in a non-blocking way like if UNLINK -# was called, using the following configuration directives. - -lazyfree-lazy-eviction no -lazyfree-lazy-expire no -lazyfree-lazy-server-del no -replica-lazy-flush no - -# It is also possible, for the case when to replace the user code DEL calls -# with UNLINK calls is not easy, to modify the default behavior of the DEL -# command to act exactly like UNLINK, using the following configuration -# directive: - -lazyfree-lazy-user-del no - -# FLUSHDB, FLUSHALL, and SCRIPT FLUSH support both asynchronous and synchronous -# deletion, which can be controlled by passing the [SYNC|ASYNC] flags into the -# commands. When neither flag is passed, this directive will be used to determine -# if the data should be deleted asynchronously. - -lazyfree-lazy-user-flush no - -################################ THREADED I/O ################################# - -# Redis is mostly single threaded, however there are certain threaded -# operations such as UNLINK, slow I/O accesses and other things that are -# performed on side threads. -# -# Now it is also possible to handle Redis clients socket reads and writes -# in different I/O threads. Since especially writing is so slow, normally -# Redis users use pipelining in order to speed up the Redis performances per -# core, and spawn multiple instances in order to scale more. Using I/O -# threads it is possible to easily speedup two times Redis without resorting -# to pipelining nor sharding of the instance. -# -# By default threading is disabled, we suggest enabling it only in machines -# that have at least 4 or more cores, leaving at least one spare core. -# Using more than 8 threads is unlikely to help much. We also recommend using -# threaded I/O only if you actually have performance problems, with Redis -# instances being able to use a quite big percentage of CPU time, otherwise -# there is no point in using this feature. -# -# So for instance if you have a four cores boxes, try to use 2 or 3 I/O -# threads, if you have a 8 cores, try to use 6 threads. In order to -# enable I/O threads use the following configuration directive: -# -# io-threads 4 -# -# Setting io-threads to 1 will just use the main thread as usual. -# When I/O threads are enabled, we only use threads for writes, that is -# to thread the write(2) syscall and transfer the client buffers to the -# socket. However it is also possible to enable threading of reads and -# protocol parsing using the following configuration directive, by setting -# it to yes: -# -# io-threads-do-reads no -# -# Usually threading reads doesn't help much. -# -# NOTE 1: This configuration directive cannot be changed at runtime via -# CONFIG SET. Aso this feature currently does not work when SSL is -# enabled. -# -# NOTE 2: If you want to test the Redis speedup using redis-benchmark, make -# sure you also run the benchmark itself in threaded mode, using the -# --threads option to match the number of Redis threads, otherwise you'll not -# be able to notice the improvements. - -############################ KERNEL OOM CONTROL ############################## - -# On Linux, it is possible to hint the kernel OOM killer on what processes -# should be killed first when out of memory. -# -# Enabling this feature makes Redis actively control the oom_score_adj value -# for all its processes, depending on their role. The default scores will -# attempt to have background child processes killed before all others, and -# replicas killed before masters. -# -# Redis supports three options: -# -# no: Don't make changes to oom-score-adj (default). -# yes: Alias to "relative" see below. -# absolute: Values in oom-score-adj-values are written as is to the kernel. -# relative: Values are used relative to the initial value of oom_score_adj when -# the server starts and are then clamped to a range of -1000 to 1000. -# Because typically the initial value is 0, they will often match the -# absolute values. -oom-score-adj no - -# When oom-score-adj is used, this directive controls the specific values used -# for master, replica and background child processes. Values range -2000 to -# 2000 (higher means more likely to be killed). -# -# Unprivileged processes (not root, and without CAP_SYS_RESOURCE capabilities) -# can freely increase their value, but not decrease it below its initial -# settings. This means that setting oom-score-adj to "relative" and setting the -# oom-score-adj-values to positive values will always succeed. -oom-score-adj-values 0 200 800 - - -#################### KERNEL transparent hugepage CONTROL ###################### - -# Usually the kernel Transparent Huge Pages control is set to "madvise" or -# or "never" by default (/sys/kernel/mm/transparent_hugepage/enabled), in which -# case this config has no effect. On systems in which it is set to "always", -# redis will attempt to disable it specifically for the redis process in order -# to avoid latency problems specifically with fork(2) and CoW. -# If for some reason you prefer to keep it enabled, you can set this config to -# "no" and the kernel global to "always". - -disable-thp yes - -############################## APPEND ONLY MODE ############################### - -# By default Redis asynchronously dumps the dataset on disk. This mode is -# good enough in many applications, but an issue with the Redis process or -# a power outage may result into a few minutes of writes lost (depending on -# the configured save points). -# -# The Append Only File is an alternative persistence mode that provides -# much better durability. For instance using the default data fsync policy -# (see later in the config file) Redis can lose just one second of writes in a -# dramatic event like a server power outage, or a single write if something -# wrong with the Redis process itself happens, but the operating system is -# still running correctly. -# -# AOF and RDB persistence can be enabled at the same time without problems. -# If the AOF is enabled on startup Redis will load the AOF, that is the file -# with the better durability guarantees. -# -# Please check https://redis.io/topics/persistence for more information. - -appendonly no - -# The name of the append only file (default: "appendonly.aof") - -appendfilename "appendonly.aof" - -# The fsync() call tells the Operating System to actually write data on disk -# instead of waiting for more data in the output buffer. Some OS will really flush -# data on disk, some other OS will just try to do it ASAP. -# -# Redis supports three different modes: -# -# no: don't fsync, just let the OS flush the data when it wants. Faster. -# always: fsync after every write to the append only log. Slow, Safest. -# everysec: fsync only one time every second. Compromise. -# -# The default is "everysec", as that's usually the right compromise between -# speed and data safety. It's up to you to understand if you can relax this to -# "no" that will let the operating system flush the output buffer when -# it wants, for better performances (but if you can live with the idea of -# some data loss consider the default persistence mode that's snapshotting), -# or on the contrary, use "always" that's very slow but a bit safer than -# everysec. -# -# More details please check the following article: -# http://antirez.com/post/redis-persistence-demystified.html -# -# If unsure, use "everysec". - -# appendfsync always -appendfsync everysec -# appendfsync no - -# When the AOF fsync policy is set to always or everysec, and a background -# saving process (a background save or AOF log background rewriting) is -# performing a lot of I/O against the disk, in some Linux configurations -# Redis may block too long on the fsync() call. Note that there is no fix for -# this currently, as even performing fsync in a different thread will block -# our synchronous write(2) call. -# -# In order to mitigate this problem it's possible to use the following option -# that will prevent fsync() from being called in the main process while a -# BGSAVE or BGREWRITEAOF is in progress. -# -# This means that while another child is saving, the durability of Redis is -# the same as "appendfsync none". In practical terms, this means that it is -# possible to lose up to 30 seconds of log in the worst scenario (with the -# default Linux settings). -# -# If you have latency problems turn this to "yes". Otherwise leave it as -# "no" that is the safest pick from the point of view of durability. - -no-appendfsync-on-rewrite no - -# Automatic rewrite of the append only file. -# Redis is able to automatically rewrite the log file implicitly calling -# BGREWRITEAOF when the AOF log size grows by the specified percentage. -# -# This is how it works: Redis remembers the size of the AOF file after the -# latest rewrite (if no rewrite has happened since the restart, the size of -# the AOF at startup is used). -# -# This base size is compared to the current size. If the current size is -# bigger than the specified percentage, the rewrite is triggered. Also -# you need to specify a minimal size for the AOF file to be rewritten, this -# is useful to avoid rewriting the AOF file even if the percentage increase -# is reached but it is still pretty small. -# -# Specify a percentage of zero in order to disable the automatic AOF -# rewrite feature. - -auto-aof-rewrite-percentage 100 -auto-aof-rewrite-min-size 64mb - -# An AOF file may be found to be truncated at the end during the Redis -# startup process, when the AOF data gets loaded back into memory. -# This may happen when the system where Redis is running -# crashes, especially when an ext4 filesystem is mounted without the -# data=ordered option (however this can't happen when Redis itself -# crashes or aborts but the operating system still works correctly). -# -# Redis can either exit with an error when this happens, or load as much -# data as possible (the default now) and start if the AOF file is found -# to be truncated at the end. The following option controls this behavior. -# -# If aof-load-truncated is set to yes, a truncated AOF file is loaded and -# the Redis server starts emitting a log to inform the user of the event. -# Otherwise if the option is set to no, the server aborts with an error -# and refuses to start. When the option is set to no, the user requires -# to fix the AOF file using the "redis-check-aof" utility before to restart -# the server. -# -# Note that if the AOF file will be found to be corrupted in the middle -# the server will still exit with an error. This option only applies when -# Redis will try to read more data from the AOF file but not enough bytes -# will be found. -aof-load-truncated yes - -# When rewriting the AOF file, Redis is able to use an RDB preamble in the -# AOF file for faster rewrites and recoveries. When this option is turned -# on the rewritten AOF file is composed of two different stanzas: -# -# [RDB file][AOF tail] -# -# When loading, Redis recognizes that the AOF file starts with the "REDIS" -# string and loads the prefixed RDB file, then continues loading the AOF -# tail. -aof-use-rdb-preamble yes - -################################ LUA SCRIPTING ############################### - -# Max execution time of a Lua script in milliseconds. -# -# If the maximum execution time is reached Redis will log that a script is -# still in execution after the maximum allowed time and will start to -# reply to queries with an error. -# -# When a long running script exceeds the maximum execution time only the -# SCRIPT KILL and SHUTDOWN NOSAVE commands are available. The first can be -# used to stop a script that did not yet call any write commands. The second -# is the only way to shut down the server in the case a write command was -# already issued by the script but the user doesn't want to wait for the natural -# termination of the script. -# -# Set it to 0 or a negative value for unlimited execution without warnings. -lua-time-limit 5000 - -################################ REDIS CLUSTER ############################### - -# Normal Redis instances can't be part of a Redis Cluster; only nodes that are -# started as cluster nodes can. In order to start a Redis instance as a -# cluster node enable the cluster support uncommenting the following: -# -# cluster-enabled yes - -# Every cluster node has a cluster configuration file. This file is not -# intended to be edited by hand. It is created and updated by Redis nodes. -# Every Redis Cluster node requires a different cluster configuration file. -# Make sure that instances running in the same system do not have -# overlapping cluster configuration file names. -# -# cluster-config-file nodes-6379.conf - -# Cluster node timeout is the amount of milliseconds a node must be unreachable -# for it to be considered in failure state. -# Most other internal time limits are a multiple of the node timeout. -# -# cluster-node-timeout 15000 - -# A replica of a failing master will avoid to start a failover if its data -# looks too old. -# -# There is no simple way for a replica to actually have an exact measure of -# its "data age", so the following two checks are performed: -# -# 1) If there are multiple replicas able to failover, they exchange messages -# in order to try to give an advantage to the replica with the best -# replication offset (more data from the master processed). -# Replicas will try to get their rank by offset, and apply to the start -# of the failover a delay proportional to their rank. -# -# 2) Every single replica computes the time of the last interaction with -# its master. This can be the last ping or command received (if the master -# is still in the "connected" state), or the time that elapsed since the -# disconnection with the master (if the replication link is currently down). -# If the last interaction is too old, the replica will not try to failover -# at all. -# -# The point "2" can be tuned by user. Specifically a replica will not perform -# the failover if, since the last interaction with the master, the time -# elapsed is greater than: -# -# (node-timeout * cluster-replica-validity-factor) + repl-ping-replica-period -# -# So for example if node-timeout is 30 seconds, and the cluster-replica-validity-factor -# is 10, and assuming a default repl-ping-replica-period of 10 seconds, the -# replica will not try to failover if it was not able to talk with the master -# for longer than 310 seconds. -# -# A large cluster-replica-validity-factor may allow replicas with too old data to failover -# a master, while a too small value may prevent the cluster from being able to -# elect a replica at all. -# -# For maximum availability, it is possible to set the cluster-replica-validity-factor -# to a value of 0, which means, that replicas will always try to failover the -# master regardless of the last time they interacted with the master. -# (However they'll always try to apply a delay proportional to their -# offset rank). -# -# Zero is the only value able to guarantee that when all the partitions heal -# the cluster will always be able to continue. -# -# cluster-replica-validity-factor 10 - -# Cluster replicas are able to migrate to orphaned masters, that are masters -# that are left without working replicas. This improves the cluster ability -# to resist to failures as otherwise an orphaned master can't be failed over -# in case of failure if it has no working replicas. -# -# Replicas migrate to orphaned masters only if there are still at least a -# given number of other working replicas for their old master. This number -# is the "migration barrier". A migration barrier of 1 means that a replica -# will migrate only if there is at least 1 other working replica for its master -# and so forth. It usually reflects the number of replicas you want for every -# master in your cluster. -# -# Default is 1 (replicas migrate only if their masters remain with at least -# one replica). To disable migration just set it to a very large value or -# set cluster-allow-replica-migration to 'no'. -# A value of 0 can be set but is useful only for debugging and dangerous -# in production. -# -# cluster-migration-barrier 1 - -# Turning off this option allows to use less automatic cluster configuration. -# It both disables migration to orphaned masters and migration from masters -# that became empty. -# -# Default is 'yes' (allow automatic migrations). -# -# cluster-allow-replica-migration yes - -# By default Redis Cluster nodes stop accepting queries if they detect there -# is at least a hash slot uncovered (no available node is serving it). -# This way if the cluster is partially down (for example a range of hash slots -# are no longer covered) all the cluster becomes, eventually, unavailable. -# It automatically returns available as soon as all the slots are covered again. -# -# However sometimes you want the subset of the cluster which is working, -# to continue to accept queries for the part of the key space that is still -# covered. In order to do so, just set the cluster-require-full-coverage -# option to no. -# -# cluster-require-full-coverage yes - -# This option, when set to yes, prevents replicas from trying to failover its -# master during master failures. However the replica can still perform a -# manual failover, if forced to do so. -# -# This is useful in different scenarios, especially in the case of multiple -# data center operations, where we want one side to never be promoted if not -# in the case of a total DC failure. -# -# cluster-replica-no-failover no - -# This option, when set to yes, allows nodes to serve read traffic while the -# the cluster is in a down state, as long as it believes it owns the slots. -# -# This is useful for two cases. The first case is for when an application -# doesn't require consistency of data during node failures or network partitions. -# One example of this is a cache, where as long as the node has the data it -# should be able to serve it. -# -# The second use case is for configurations that don't meet the recommended -# three shards but want to enable cluster mode and scale later. A -# master outage in a 1 or 2 shard configuration causes a read/write outage to the -# entire cluster without this option set, with it set there is only a write outage. -# Without a quorum of masters, slot ownership will not change automatically. -# -# cluster-allow-reads-when-down no - -# In order to setup your cluster make sure to read the documentation -# available at https://redis.io web site. - -########################## CLUSTER DOCKER/NAT support ######################## - -# In certain deployments, Redis Cluster nodes address discovery fails, because -# addresses are NAT-ted or because ports are forwarded (the typical case is -# Docker and other containers). -# -# In order to make Redis Cluster working in such environments, a static -# configuration where each node knows its public address is needed. The -# following four options are used for this scope, and are: -# -# * cluster-announce-ip -# * cluster-announce-port -# * cluster-announce-tls-port -# * cluster-announce-bus-port -# -# Each instructs the node about its address, client ports (for connections -# without and with TLS) and cluster message bus port. The information is then -# published in the header of the bus packets so that other nodes will be able to -# correctly map the address of the node publishing the information. -# -# If cluster-tls is set to yes and cluster-announce-tls-port is omitted or set -# to zero, then cluster-announce-port refers to the TLS port. Note also that -# cluster-announce-tls-port has no effect if cluster-tls is set to no. -# -# If the above options are not used, the normal Redis Cluster auto-detection -# will be used instead. -# -# Note that when remapped, the bus port may not be at the fixed offset of -# clients port + 10000, so you can specify any port and bus-port depending -# on how they get remapped. If the bus-port is not set, a fixed offset of -# 10000 will be used as usual. -# -# Example: -# -# cluster-announce-ip 10.1.1.5 -# cluster-announce-tls-port 6379 -# cluster-announce-port 0 -# cluster-announce-bus-port 6380 - -################################## SLOW LOG ################################### - -# The Redis Slow Log is a system to log queries that exceeded a specified -# execution time. The execution time does not include the I/O operations -# like talking with the client, sending the reply and so forth, -# but just the time needed to actually execute the command (this is the only -# stage of command execution where the thread is blocked and can not serve -# other requests in the meantime). -# -# You can configure the slow log with two parameters: one tells Redis -# what is the execution time, in microseconds, to exceed in order for the -# command to get logged, and the other parameter is the length of the -# slow log. When a new command is logged the oldest one is removed from the -# queue of logged commands. - -# The following time is expressed in microseconds, so 1000000 is equivalent -# to one second. Note that a negative number disables the slow log, while -# a value of zero forces the logging of every command. -slowlog-log-slower-than 10000 - -# There is no limit to this length. Just be aware that it will consume memory. -# You can reclaim memory used by the slow log with SLOWLOG RESET. -slowlog-max-len 128 - -################################ LATENCY MONITOR ############################## - -# The Redis latency monitoring subsystem samples different operations -# at runtime in order to collect data related to possible sources of -# latency of a Redis instance. -# -# Via the LATENCY command this information is available to the user that can -# print graphs and obtain reports. -# -# The system only logs operations that were performed in a time equal or -# greater than the amount of milliseconds specified via the -# latency-monitor-threshold configuration directive. When its value is set -# to zero, the latency monitor is turned off. -# -# By default latency monitoring is disabled since it is mostly not needed -# if you don't have latency issues, and collecting data has a performance -# impact, that while very small, can be measured under big load. Latency -# monitoring can easily be enabled at runtime using the command -# "CONFIG SET latency-monitor-threshold " if needed. -latency-monitor-threshold 0 - -############################# EVENT NOTIFICATION ############################## - -# Redis can notify Pub/Sub clients about events happening in the key space. -# This feature is documented at https://redis.io/topics/notifications -# -# For instance if keyspace events notification is enabled, and a client -# performs a DEL operation on key "foo" stored in the Database 0, two -# messages will be published via Pub/Sub: -# -# PUBLISH __keyspace@0__:foo del -# PUBLISH __keyevent@0__:del foo -# -# It is possible to select the events that Redis will notify among a set -# of classes. Every class is identified by a single character: -# -# K Keyspace events, published with __keyspace@__ prefix. -# E Keyevent events, published with __keyevent@__ prefix. -# g Generic commands (non-type specific) like DEL, EXPIRE, RENAME, ... -# $ String commands -# l List commands -# s Set commands -# h Hash commands -# z Sorted set commands -# x Expired events (events generated every time a key expires) -# e Evicted events (events generated when a key is evicted for maxmemory) -# t Stream commands -# d Module key type events -# m Key-miss events (Note: It is not included in the 'A' class) -# A Alias for g$lshzxetd, so that the "AKE" string means all the events -# (Except key-miss events which are excluded from 'A' due to their -# unique nature). -# -# The "notify-keyspace-events" takes as argument a string that is composed -# of zero or multiple characters. The empty string means that notifications -# are disabled. -# -# Example: to enable list and generic events, from the point of view of the -# event name, use: -# -# notify-keyspace-events Elg -# -# Example 2: to get the stream of the expired keys subscribing to channel -# name __keyevent@0__:expired use: -# -# notify-keyspace-events Ex -# -# By default all notifications are disabled because most users don't need -# this feature and the feature has some overhead. Note that if you don't -# specify at least one of K or E, no events will be delivered. -notify-keyspace-events "" - -############################### GOPHER SERVER ################################# - -# Redis contains an implementation of the Gopher protocol, as specified in -# the RFC 1436 (https://www.ietf.org/rfc/rfc1436.txt). -# -# The Gopher protocol was very popular in the late '90s. It is an alternative -# to the web, and the implementation both server and client side is so simple -# that the Redis server has just 100 lines of code in order to implement this -# support. -# -# What do you do with Gopher nowadays? Well Gopher never *really* died, and -# lately there is a movement in order for the Gopher more hierarchical content -# composed of just plain text documents to be resurrected. Some want a simpler -# internet, others believe that the mainstream internet became too much -# controlled, and it's cool to create an alternative space for people that -# want a bit of fresh air. -# -# Anyway for the 10nth birthday of the Redis, we gave it the Gopher protocol -# as a gift. -# -# --- HOW IT WORKS? --- -# -# The Redis Gopher support uses the inline protocol of Redis, and specifically -# two kind of inline requests that were anyway illegal: an empty request -# or any request that starts with "/" (there are no Redis commands starting -# with such a slash). Normal RESP2/RESP3 requests are completely out of the -# path of the Gopher protocol implementation and are served as usual as well. -# -# If you open a connection to Redis when Gopher is enabled and send it -# a string like "/foo", if there is a key named "/foo" it is served via the -# Gopher protocol. -# -# In order to create a real Gopher "hole" (the name of a Gopher site in Gopher -# talking), you likely need a script like the following: -# -# https://github.com/antirez/gopher2redis -# -# --- SECURITY WARNING --- -# -# If you plan to put Redis on the internet in a publicly accessible address -# to server Gopher pages MAKE SURE TO SET A PASSWORD to the instance. -# Once a password is set: -# -# 1. The Gopher server (when enabled, not by default) will still serve -# content via Gopher. -# 2. However other commands cannot be called before the client will -# authenticate. -# -# So use the 'requirepass' option to protect your instance. -# -# Note that Gopher is not currently supported when 'io-threads-do-reads' -# is enabled. -# -# To enable Gopher support, uncomment the following line and set the option -# from no (the default) to yes. -# -# gopher-enabled no - -############################### ADVANCED CONFIG ############################### - -# Hashes are encoded using a memory efficient data structure when they have a -# small number of entries, and the biggest entry does not exceed a given -# threshold. These thresholds can be configured using the following directives. -hash-max-ziplist-entries 512 -hash-max-ziplist-value 64 - -# Lists are also encoded in a special way to save a lot of space. -# The number of entries allowed per internal list node can be specified -# as a fixed maximum size or a maximum number of elements. -# For a fixed maximum size, use -5 through -1, meaning: -# -5: max size: 64 Kb <-- not recommended for normal workloads -# -4: max size: 32 Kb <-- not recommended -# -3: max size: 16 Kb <-- probably not recommended -# -2: max size: 8 Kb <-- good -# -1: max size: 4 Kb <-- good -# Positive numbers mean store up to _exactly_ that number of elements -# per list node. -# The highest performing option is usually -2 (8 Kb size) or -1 (4 Kb size), -# but if your use case is unique, adjust the settings as necessary. -list-max-ziplist-size -2 - -# Lists may also be compressed. -# Compress depth is the number of quicklist ziplist nodes from *each* side of -# the list to *exclude* from compression. The head and tail of the list -# are always uncompressed for fast push/pop operations. Settings are: -# 0: disable all list compression -# 1: depth 1 means "don't start compressing until after 1 node into the list, -# going from either the head or tail" -# So: [head]->node->node->...->node->[tail] -# [head], [tail] will always be uncompressed; inner nodes will compress. -# 2: [head]->[next]->node->node->...->node->[prev]->[tail] -# 2 here means: don't compress head or head->next or tail->prev or tail, -# but compress all nodes between them. -# 3: [head]->[next]->[next]->node->node->...->node->[prev]->[prev]->[tail] -# etc. -list-compress-depth 0 - -# Sets have a special encoding in just one case: when a set is composed -# of just strings that happen to be integers in radix 10 in the range -# of 64 bit signed integers. -# The following configuration setting sets the limit in the size of the -# set in order to use this special memory saving encoding. -set-max-intset-entries 512 - -# Similarly to hashes and lists, sorted sets are also specially encoded in -# order to save a lot of space. This encoding is only used when the length and -# elements of a sorted set are below the following limits: -zset-max-ziplist-entries 128 -zset-max-ziplist-value 64 - -# HyperLogLog sparse representation bytes limit. The limit includes the -# 16 bytes header. When an HyperLogLog using the sparse representation crosses -# this limit, it is converted into the dense representation. -# -# A value greater than 16000 is totally useless, since at that point the -# dense representation is more memory efficient. -# -# The suggested value is ~ 3000 in order to have the benefits of -# the space efficient encoding without slowing down too much PFADD, -# which is O(N) with the sparse encoding. The value can be raised to -# ~ 10000 when CPU is not a concern, but space is, and the data set is -# composed of many HyperLogLogs with cardinality in the 0 - 15000 range. -hll-sparse-max-bytes 3000 - -# Streams macro node max size / items. The stream data structure is a radix -# tree of big nodes that encode multiple items inside. Using this configuration -# it is possible to configure how big a single node can be in bytes, and the -# maximum number of items it may contain before switching to a new node when -# appending new stream entries. If any of the following settings are set to -# zero, the limit is ignored, so for instance it is possible to set just a -# max entries limit by setting max-bytes to 0 and max-entries to the desired -# value. -stream-node-max-bytes 4096 -stream-node-max-entries 100 - -# Active rehashing uses 1 millisecond every 100 milliseconds of CPU time in -# order to help rehashing the main Redis hash table (the one mapping top-level -# keys to values). The hash table implementation Redis uses (see dict.c) -# performs a lazy rehashing: the more operation you run into a hash table -# that is rehashing, the more rehashing "steps" are performed, so if the -# server is idle the rehashing is never complete and some more memory is used -# by the hash table. -# -# The default is to use this millisecond 10 times every second in order to -# actively rehash the main dictionaries, freeing memory when possible. -# -# If unsure: -# use "activerehashing no" if you have hard latency requirements and it is -# not a good thing in your environment that Redis can reply from time to time -# to queries with 2 milliseconds delay. -# -# use "activerehashing yes" if you don't have such hard requirements but -# want to free memory asap when possible. -activerehashing yes - -# The client output buffer limits can be used to force disconnection of clients -# that are not reading data from the server fast enough for some reason (a -# common reason is that a Pub/Sub client can't consume messages as fast as the -# publisher can produce them). -# -# The limit can be set differently for the three different classes of clients: -# -# normal -> normal clients including MONITOR clients -# replica -> replica clients -# pubsub -> clients subscribed to at least one pubsub channel or pattern -# -# The syntax of every client-output-buffer-limit directive is the following: -# -# client-output-buffer-limit -# -# A client is immediately disconnected once the hard limit is reached, or if -# the soft limit is reached and remains reached for the specified number of -# seconds (continuously). -# So for instance if the hard limit is 32 megabytes and the soft limit is -# 16 megabytes / 10 seconds, the client will get disconnected immediately -# if the size of the output buffers reach 32 megabytes, but will also get -# disconnected if the client reaches 16 megabytes and continuously overcomes -# the limit for 10 seconds. -# -# By default normal clients are not limited because they don't receive data -# without asking (in a push way), but just after a request, so only -# asynchronous clients may create a scenario where data is requested faster -# than it can read. -# -# Instead there is a default limit for pubsub and replica clients, since -# subscribers and replicas receive data in a push fashion. -# -# Both the hard or the soft limit can be disabled by setting them to zero. -client-output-buffer-limit normal 0 0 0 -client-output-buffer-limit replica 256mb 64mb 60 -client-output-buffer-limit pubsub 32mb 8mb 60 - -# Client query buffers accumulate new commands. They are limited to a fixed -# amount by default in order to avoid that a protocol desynchronization (for -# instance due to a bug in the client) will lead to unbound memory usage in -# the query buffer. However you can configure it here if you have very special -# needs, such us huge multi/exec requests or alike. -# -# client-query-buffer-limit 1gb - -# In the Redis protocol, bulk requests, that are, elements representing single -# strings, are normally limited to 512 mb. However you can change this limit -# here, but must be 1mb or greater -# -# proto-max-bulk-len 512mb - -# Redis calls an internal function to perform many background tasks, like -# closing connections of clients in timeout, purging expired keys that are -# never requested, and so forth. -# -# Not all tasks are performed with the same frequency, but Redis checks for -# tasks to perform according to the specified "hz" value. -# -# By default "hz" is set to 10. Raising the value will use more CPU when -# Redis is idle, but at the same time will make Redis more responsive when -# there are many keys expiring at the same time, and timeouts may be -# handled with more precision. -# -# The range is between 1 and 500, however a value over 100 is usually not -# a good idea. Most users should use the default of 10 and raise this up to -# 100 only in environments where very low latency is required. -hz 10 - -# Normally it is useful to have an HZ value which is proportional to the -# number of clients connected. This is useful in order, for instance, to -# avoid too many clients are processed for each background task invocation -# in order to avoid latency spikes. -# -# Since the default HZ value by default is conservatively set to 10, Redis -# offers, and enables by default, the ability to use an adaptive HZ value -# which will temporarily raise when there are many connected clients. -# -# When dynamic HZ is enabled, the actual configured HZ will be used -# as a baseline, but multiples of the configured HZ value will be actually -# used as needed once more clients are connected. In this way an idle -# instance will use very little CPU time while a busy instance will be -# more responsive. -dynamic-hz yes - -# When a child rewrites the AOF file, if the following option is enabled -# the file will be fsync-ed every 32 MB of data generated. This is useful -# in order to commit the file to the disk more incrementally and avoid -# big latency spikes. -aof-rewrite-incremental-fsync yes - -# When redis saves RDB file, if the following option is enabled -# the file will be fsync-ed every 32 MB of data generated. This is useful -# in order to commit the file to the disk more incrementally and avoid -# big latency spikes. -rdb-save-incremental-fsync yes - -# Redis LFU eviction (see maxmemory setting) can be tuned. However it is a good -# idea to start with the default settings and only change them after investigating -# how to improve the performances and how the keys LFU change over time, which -# is possible to inspect via the OBJECT FREQ command. -# -# There are two tunable parameters in the Redis LFU implementation: the -# counter logarithm factor and the counter decay time. It is important to -# understand what the two parameters mean before changing them. -# -# The LFU counter is just 8 bits per key, it's maximum value is 255, so Redis -# uses a probabilistic increment with logarithmic behavior. Given the value -# of the old counter, when a key is accessed, the counter is incremented in -# this way: -# -# 1. A random number R between 0 and 1 is extracted. -# 2. A probability P is calculated as 1/(old_value*lfu_log_factor+1). -# 3. The counter is incremented only if R < P. -# -# The default lfu-log-factor is 10. This is a table of how the frequency -# counter changes with a different number of accesses with different -# logarithmic factors: -# -# +--------+------------+------------+------------+------------+------------+ -# | factor | 100 hits | 1000 hits | 100K hits | 1M hits | 10M hits | -# +--------+------------+------------+------------+------------+------------+ -# | 0 | 104 | 255 | 255 | 255 | 255 | -# +--------+------------+------------+------------+------------+------------+ -# | 1 | 18 | 49 | 255 | 255 | 255 | -# +--------+------------+------------+------------+------------+------------+ -# | 10 | 10 | 18 | 142 | 255 | 255 | -# +--------+------------+------------+------------+------------+------------+ -# | 100 | 8 | 11 | 49 | 143 | 255 | -# +--------+------------+------------+------------+------------+------------+ -# -# NOTE: The above table was obtained by running the following commands: -# -# redis-benchmark -n 1000000 incr foo -# redis-cli object freq foo -# -# NOTE 2: The counter initial value is 5 in order to give new objects a chance -# to accumulate hits. -# -# The counter decay time is the time, in minutes, that must elapse in order -# for the key counter to be divided by two (or decremented if it has a value -# less <= 10). -# -# The default value for the lfu-decay-time is 1. A special value of 0 means to -# decay the counter every time it happens to be scanned. -# -# lfu-log-factor 10 -# lfu-decay-time 1 - -########################### ACTIVE DEFRAGMENTATION ####################### -# -# What is active defragmentation? -# ------------------------------- -# -# Active (online) defragmentation allows a Redis server to compact the -# spaces left between small allocations and deallocations of data in memory, -# thus allowing to reclaim back memory. -# -# Fragmentation is a natural process that happens with every allocator (but -# less so with Jemalloc, fortunately) and certain workloads. Normally a server -# restart is needed in order to lower the fragmentation, or at least to flush -# away all the data and create it again. However thanks to this feature -# implemented by Oran Agra for Redis 4.0 this process can happen at runtime -# in a "hot" way, while the server is running. -# -# Basically when the fragmentation is over a certain level (see the -# configuration options below) Redis will start to create new copies of the -# values in contiguous memory regions by exploiting certain specific Jemalloc -# features (in order to understand if an allocation is causing fragmentation -# and to allocate it in a better place), and at the same time, will release the -# old copies of the data. This process, repeated incrementally for all the keys -# will cause the fragmentation to drop back to normal values. -# -# Important things to understand: -# -# 1. This feature is disabled by default, and only works if you compiled Redis -# to use the copy of Jemalloc we ship with the source code of Redis. -# This is the default with Linux builds. -# -# 2. You never need to enable this feature if you don't have fragmentation -# issues. -# -# 3. Once you experience fragmentation, you can enable this feature when -# needed with the command "CONFIG SET activedefrag yes". -# -# The configuration parameters are able to fine tune the behavior of the -# defragmentation process. If you are not sure about what they mean it is -# a good idea to leave the defaults untouched. - -# Enabled active defragmentation -# activedefrag no - -# Minimum amount of fragmentation waste to start active defrag -# active-defrag-ignore-bytes 100mb - -# Minimum percentage of fragmentation to start active defrag -# active-defrag-threshold-lower 10 - -# Maximum percentage of fragmentation at which we use maximum effort -# active-defrag-threshold-upper 100 - -# Minimal effort for defrag in CPU percentage, to be used when the lower -# threshold is reached -# active-defrag-cycle-min 1 - -# Maximal effort for defrag in CPU percentage, to be used when the upper -# threshold is reached -# active-defrag-cycle-max 25 - -# Maximum number of set/hash/zset/list fields that will be processed from -# the main dictionary scan -# active-defrag-max-scan-fields 1000 - -# Jemalloc background thread for purging will be enabled by default -jemalloc-bg-thread yes - -# It is possible to pin different threads and processes of Redis to specific -# CPUs in your system, in order to maximize the performances of the server. -# This is useful both in order to pin different Redis threads in different -# CPUs, but also in order to make sure that multiple Redis instances running -# in the same host will be pinned to different CPUs. -# -# Normally you can do this using the "taskset" command, however it is also -# possible to this via Redis configuration directly, both in Linux and FreeBSD. -# -# You can pin the server/IO threads, bio threads, aof rewrite child process, and -# the bgsave child process. The syntax to specify the cpu list is the same as -# the taskset command: -# -# Set redis server/io threads to cpu affinity 0,2,4,6: -# server_cpulist 0-7:2 -# -# Set bio threads to cpu affinity 1,3: -# bio_cpulist 1,3 -# -# Set aof rewrite child process to cpu affinity 8,9,10,11: -# aof_rewrite_cpulist 8-11 -# -# Set bgsave child process to cpu affinity 1,10,11 -# bgsave_cpulist 1,10-11 - -# In some cases redis will emit warnings and even refuse to start if it detects -# that the system is in bad state, it is possible to suppress these warnings -# by setting the following config which takes a space delimited list of warnings -# to suppress -# -ignore-warnings ARM64-COW-BUG diff --git a/metersphere/3.6.4-lts/data/conf/redisson.yml b/metersphere/3.6.4-lts/data/conf/redisson.yml deleted file mode 100755 index 280650d92..000000000 --- a/metersphere/3.6.4-lts/data/conf/redisson.yml +++ /dev/null @@ -1,6 +0,0 @@ -singleServerConfig: - password: - address: "redis://127.0.0.1:6379" - database: 0 -threads: 4 -nettyThreads: 8 \ No newline at end of file diff --git a/metersphere/3.6.4-lts/data/data/.gitkeep b/metersphere/3.6.4-lts/data/data/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/metersphere/3.6.4-lts/data/logs/.gitkeep b/metersphere/3.6.4-lts/data/logs/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/metersphere/3.6.4-lts/docker-compose.yml b/metersphere/3.6.4-lts/docker-compose.yml deleted file mode 100644 index bbc04bc8f..000000000 --- a/metersphere/3.6.4-lts/docker-compose.yml +++ /dev/null @@ -1,21 +0,0 @@ -services: - metersphere: - image: metersphere/metersphere-ce-allinone:v3.6.4-lts - container_name: ${CONTAINER_NAME} - restart: always - ports: - - ${PANEL_APP_PORT_HTTP}:8081 - networks: - - 1panel-network - privileged: true - environment: - JAVA_MAX_HEAP_RATIO: ${JAVA_MAX_HEAP_RATIO} - volumes: - - ./data/logs:/opt/metersphere/logs - - ./data/data:/opt/metersphere/data - - ./data/conf:/opt/metersphere/conf - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/metersphere/3.6.4-lts/scripts/init.sh b/metersphere/3.6.4-lts/scripts/init.sh deleted file mode 100644 index cc9e3f8a5..000000000 --- a/metersphere/3.6.4-lts/scripts/init.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -chmod 777 data/logs \ No newline at end of file diff --git a/metersphere/README.md b/metersphere/README.md deleted file mode 100644 index ff47c6148..000000000 --- a/metersphere/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# 默认账户密码 - -``` -username:admin -password:metersphere -``` - -# MeterSphere - -**MeterSphere** 是新一代的测试管理和接口测试工具,让测试工作更简单、更高效,不再成为持续交付的瓶颈。 - -## 主要功能: - -- **测试管理**: 从测试用例管理,到测试计划执行、缺陷管理、测试报告生成,具有远超禅道和 TestLink 的使用体验; -- **接口测试**: 集 Postman 的易用与 JMeter 的灵活于一体,接口定义、接口调试、接口 Mock、场景自动化、接口报告,你想要的都有; -- **团队协作**: 摆脱单机测试工具的束缚,支持团队协作并对接 DevOps 工具链,将测试融入持续交付体系。 \ No newline at end of file diff --git a/metersphere/data.yml b/metersphere/data.yml deleted file mode 100644 index dd49dab3e..000000000 --- a/metersphere/data.yml +++ /dev/null @@ -1,23 +0,0 @@ -name: MeterSphere -tags: - - DevOps -title: 新一代的测试管理和接口测试工具 -description: 新一代的测试管理和接口测试工具 -additionalProperties: - key: metersphere - name: MeterSphere - tags: - - DevOps - shortDescZh: 新一代的测试管理和接口测试工具 - shortDescEn: The next-gen test management and interface testing tools - type: website - crossVersionUpdate: false - limit: 1 - recommend: 60 - website: https://www.metersphere.io - github: https://github.com/metersphere/metersphere - document: https://metersphere.io/docs - memoryRequired: 4096 - architectures: - - amd64 - - arm64 diff --git a/metersphere/logo.png b/metersphere/logo.png deleted file mode 100644 index f6fb2abcf..000000000 Binary files a/metersphere/logo.png and /dev/null differ diff --git a/minio/2025-04-08/data.yml b/minio/2025-04-08/data.yml deleted file mode 100644 index 715448303..000000000 --- a/minio/2025-04-08/data.yml +++ /dev/null @@ -1,123 +0,0 @@ -additionalProperties: - formFields: - - default: minio - envKey: PANEL_MINIO_ROOT_USER - labelEn: User - labelZh: 用户 - random: true - required: true - rule: paramCommon - type: text - label: - en: User - ja: ユーザー - ms: Pengguna - pt-br: Usuário - ru: Пользователь - ko: 사용자 - zh-Hant: 用戶 - zh: 用户 - - default: minio - envKey: PANEL_MINIO_ROOT_PASSWORD - labelEn: Password - labelZh: 密码 - random: true - required: true - rule: paramComplexity - type: password - label: - en: Password - ja: パスワード - ms: Kata laluan - pt-br: Senha - ru: Пароль - ko: 비밀번호 - zh-Hant: 密碼 - zh: 密码 - - default: 9001 - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh-Hant: 埠 - zh: 端口 - - default: 9000 - envKey: PANEL_APP_PORT_API - labelEn: Port - labelZh: API 端口 - required: true - rule: paramPort - type: number - label: - en: API port - ja: API ポート - ms: Port API - pt-br: Porta API - ru: Порт API - ko: API 포트 - zh-Hant: API 埠 - zh: API 端口 - - default: "12h" - envKey: MINIO_BROWSER_SESSION_DURATION - labelEn: Session duration - labelZh: 会话持续时间 (s/秒 m/分钟 h/小时 d/天) - required: true - type: text - label: - en: Session duration - ja: セッションの期間 - ms: Tempoh sesi - pt-br: Duração da sessão - ru: Длительность сессии - ko: 세션 지속 시간 - zh-Hant: 會話持續時間 - zh: 会话持续时间 - - default: "on" - envKey: MINIO_BROWSER - labelEn: Enable WebUI - labelZh: 启用WebUI - required: true - type: select - values: - - label: "ON" - value: "on" - - label: "OFF" - value: "off" - label: - en: Enable WebUI - ja: WebUI を有効にする - ms: Aktifkan WebUI - pt-br: Habilitar WebUI - ru: Включить WebUI - ko: WebUI 활성화 - zh-Hant: 啟用 WebUI - zh: 启用 WebUI - - default: "on" - envKey: MINIO_BROWSER_LOGIN_ANIMATION - labelEn: WebUI login animation - labelZh: WebUI 登录动画 - required: true - type: select - values: - - label: "ON" - value: "on" - - label: "OFF" - value: "off" - label: - en: WebUI login animation - ja: WebUI ログインアニメーション - ms: Animasi log masuk WebUI - pt-br: Animação de login do WebUI - ru: Анимация входа в WebUI - ko: WebUI 로그인 애니메이션 - zh-Hant: WebUI 登入動畫 - zh: WebUI 登录动画 \ No newline at end of file diff --git a/minio/2025-04-08/docker-compose.yml b/minio/2025-04-08/docker-compose.yml deleted file mode 100644 index 1b8c72312..000000000 --- a/minio/2025-04-08/docker-compose.yml +++ /dev/null @@ -1,32 +0,0 @@ -services: - minio: - image: minio/minio:RELEASE.2025-04-08T15-41-24Z - container_name: ${CONTAINER_NAME} - ports: - - ${PANEL_APP_PORT_HTTP}:9001 - - ${PANEL_APP_PORT_API}:9000 - restart: always - command: "server /data --console-address :9001 --address :9000" - environment: - MINIO_ROOT_USER: ${PANEL_MINIO_ROOT_USER} - MINIO_ROOT_PASSWORD: ${PANEL_MINIO_ROOT_PASSWORD} - MINIO_BROWSER_SESSION_DURATION: ${MINIO_BROWSER_SESSION_DURATION} - MINIO_BROWSER: ${MINIO_BROWSER} - MINIO_BROWSER_LOGIN_ANIMATION: ${MINIO_BROWSER_LOGIN_ANIMATION} - MINIO_SERVER_URL: "http://127.0.0.1:9000" - MINIO_BROWSER_REDIRECT_URL: "http://127.0.0.1:9001" - logging: - options: - max-size: "5M" - max-file: "10" - driver: json-file - networks: - - 1panel-network - volumes: - - ./data:/data - - ./certs:/root/.minio/certs - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/minio/2025-04-08/scripts/upgrade.sh b/minio/2025-04-08/scripts/upgrade.sh deleted file mode 100644 index 142c3e35f..000000000 --- a/minio/2025-04-08/scripts/upgrade.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash - -if [[ -f ./.env ]]; then - - if grep -q "MINIO_BROWSER_SESSION_DURATION" ./.env; then - echo "MINIO_BROWSER_SESSION_DURATION 已存在" - else - echo 'MINIO_BROWSER_SESSION_DURATION="12h"' >> ./.env - fi - - if grep -q "MINIO_BROWSER=" ./.env; then - echo "MINIO_BROWSER 已存在" - else - echo 'MINIO_BROWSER="on"' >> ./.env - fi - - if grep -q "MINIO_BROWSER_LOGIN_ANIMATION" ./.env; then - echo "MINIO_BROWSER_LOGIN_ANIMATION 已存在" - else - echo 'MINIO_BROWSER_LOGIN_ANIMATION="on"' >> ./.env - fi -else - echo ".env 文件不存在" -fi diff --git a/minio/README.md b/minio/README.md deleted file mode 100644 index 982729d61..000000000 --- a/minio/README.md +++ /dev/null @@ -1,37 +0,0 @@ -# MinIO - -MinIO 是根据 GNU Affero 通用公共许可证 v3.0 发布的高性能对象存储。它与 Amazon S3 云存储服务 API 兼容。使用 MinIO 为机器学习、分析和应用程序数据工作负载构建高性能基础架构。 - -## 主要功能: - -### 高度可扩展 - -MinIO 采用分布式架构,可以轻松扩展以满足不断增长的数据存储需求。您可以根据需要添加新的存储节点,无需中断服务。 - -### 高性能 - -MinIO 具有卓越的性能,能够提供高速的对象存储服务。它支持并行读写操作,同时具备低延迟,适用于需要快速访问大量数据的应用。 - -### 数据安全 - -MinIO 提供数据加密和访问控制功能,以确保数据的安全性和隐私保护。您可以使用SSL/TLS进行数据传输加密,并配置访问策略以限制访问权限。 - -### S3兼容性 - -MinIO 与Amazon S3兼容,这意味着您可以使用现有的S3工具和应用程序与MinIO进行集成。这种兼容性使得迁移和扩展现有S3工作负载变得更加容易。 - -### 多租户支持 - -MinIO 支持多租户环境,允许您在单个MinIO实例中为不同的组织或用户提供独立的存储空间和访问控制。 - -### 版本控制 - -MinIO 支持对象版本控制,您可以保留和管理对象的不同版本,以便进行数据恢复和审计。 - -### 分层存储 - -MinIO 支持将数据存储在不同的后端存储系统上,包括本地磁盘、云存储和对象存储设备,以实现灵活的数据存储架构。 - -### 开源和社区支持 - -MinIO 是开源项目,拥有活跃的社区支持。您可以自由地使用、修改和分发MinIO,同时从社区的知识和资源中获益。 \ No newline at end of file diff --git a/minio/README_en.md b/minio/README_en.md deleted file mode 100644 index 54c9279da..000000000 --- a/minio/README_en.md +++ /dev/null @@ -1,37 +0,0 @@ -# MinIO - -MinIO is a high-performance object storage system released under the GNU Affero General Public License v3.0. It is compatible with the Amazon S3 cloud storage service API, making it ideal for building high-performance infrastructures for machine learning, analytics, and application data workloads. - -## Main Features - -### Highly Scalable - -MinIO uses a distributed architecture that can scale seamlessly to meet growing data storage needs. You can add new storage nodes as required without service disruption. - -### High Performance - -MinIO delivers exceptional performance with fast object storage services. It supports parallel read/write operations and provides low latency, making it suitable for applications requiring quick access to large datasets. - -### Data Security - -MinIO ensures data security through encryption and access control. It supports SSL/TLS for encrypted data transmission and allows configuration of access policies to restrict access. - -### S3 Compatibility - -MinIO is compatible with Amazon S3, allowing integration with existing S3 tools and applications. This compatibility simplifies migration and scaling of existing S3 workloads. - -### Multi-Tenancy Support - -MinIO supports multi-tenancy environments, enabling independent storage spaces and access controls for different organizations or users within a single MinIO instance. - -### Version Control - -MinIO offers object version control, allowing you to retain and manage multiple versions of an object for data recovery and auditing purposes. - -### Tiered Storage - -MinIO supports tiered storage, enabling you to store data across various backend storage systems, such as local disks, cloud storage, and object storage devices, providing a flexible data storage architecture. - -### Open Source and Community Support - -MinIO is an open-source project with active community support. You can freely use, modify, and distribute MinIO while benefiting from the community's knowledge and resources. \ No newline at end of file diff --git a/minio/data.yml b/minio/data.yml deleted file mode 100755 index 01557bf6c..000000000 --- a/minio/data.yml +++ /dev/null @@ -1,34 +0,0 @@ -name: MinIO -tags: - - 中间件 -title: 开源的对象存储服务器 -description: 开源的对象存储服务器 -additionalProperties: - key: minio - name: MinIO - tags: - - Middleware - shortDescZh: 开源的对象存储服务器 - shortDescEn: Open source object storage server - description: - en: Open source object storage server - ja: オープンソースのオブジェクトストレージサーバー - ms: Pelayan storan objek sumber terbuka - pt-br: Servidor de armazenamento de objetos de código aberto - ru: Открытый сервер объектного хранения - ko: 오픈 소스 객체 저장 서버 - zh-Hant: 開源物件儲存伺服器 - zh: 开源对象存储服务器 - type: website - crossVersionUpdate: true - limit: 1 - recommend: 0 - website: https://min.io/download - github: https://github.com/minio/minio - document: https://min.io/docs/minio/kubernetes/upstream - memoryRequired: 2048 - architectures: - - arm64 - - amd64 - - ppc64le - - s390x diff --git a/minio/logo.png b/minio/logo.png deleted file mode 100644 index 0738212d1..000000000 Binary files a/minio/logo.png and /dev/null differ diff --git a/mkdocs-material/9.6.14/data.yml b/mkdocs-material/9.6.14/data.yml deleted file mode 100644 index 7a1d54db7..000000000 --- a/mkdocs-material/9.6.14/data.yml +++ /dev/null @@ -1,19 +0,0 @@ -additionalProperties: - formFields: - - default: 8111 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh: 端口 - zh-Hant: 埠 - required: true - rule: paramPort - type: number diff --git a/mkdocs-material/9.6.14/data/docs/index.md b/mkdocs-material/9.6.14/data/docs/index.md deleted file mode 100644 index 6cd327e84..000000000 --- a/mkdocs-material/9.6.14/data/docs/index.md +++ /dev/null @@ -1,5 +0,0 @@ -# Hello 1Panel - -你好,1Panel! - -这是 MKDOCS 的默认页,你可以从这里开始。 \ No newline at end of file diff --git a/mkdocs-material/9.6.14/data/mkdocs.yml b/mkdocs-material/9.6.14/data/mkdocs.yml deleted file mode 100644 index bb0200ab7..000000000 --- a/mkdocs-material/9.6.14/data/mkdocs.yml +++ /dev/null @@ -1,3 +0,0 @@ -site_name: 'MKDOCS - 1Panel' -theme: - name: material \ No newline at end of file diff --git a/mkdocs-material/9.6.14/docker-compose.yml b/mkdocs-material/9.6.14/docker-compose.yml deleted file mode 100644 index 9bc7159de..000000000 --- a/mkdocs-material/9.6.14/docker-compose.yml +++ /dev/null @@ -1,16 +0,0 @@ -services: - mkdocs-material: - image: squidfunk/mkdocs-material:9.6.14 - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTP}:8000" - volumes: - - ./data:/docs - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/mkdocs-material/README.md b/mkdocs-material/README.md deleted file mode 100644 index 3bfe98e54..000000000 --- a/mkdocs-material/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# 使用帮助 - -进入 `/opt/1panel/apps/mkdocs-material/mkdocs-material/data/docs` 目录,开始您的撰写。 - -# Material for MkDocs - -**MkDocs** 是一个快速、简单且华丽的静态站点生成器,适用于构建项目文档。文档源文件是用 Markdown 编写的,并使用单个 YAML 配置文件进行配置。 - -## 特征: - -- 很棒的主题可供选择:MkDocs有一堆好看的主题可供使用。在内置主题之间进行选择: mkdocs和 readthedocs,选择第三方主题之一(在MkDocs 主题wiki 页面以及MkDocs Catalog上),或者构建您自己的. -- 易于定制:通过自定义主题和/或安装一些插件 ,让您的项目文档看起来就像您想要的那样 。使用Markdown 扩展修改 Markdown 的行为。有许多配置选项可用。 -- 在工作时预览您的网站:内置的开发服务器允许您在编写文档时预览文档。每当您保存更改时,它甚至会自动重新加载并刷新您的浏览器。 -- 随处托管:MkDocs 构建完全静态的 HTML 站点,您可以将其托管在 GitHub Pages、Amazon S3 或您选择的任何其他地方。 \ No newline at end of file diff --git a/mkdocs-material/README_en.md b/mkdocs-material/README_en.md deleted file mode 100644 index 500bafa43..000000000 --- a/mkdocs-material/README_en.md +++ /dev/null @@ -1,11 +0,0 @@ -# Usage Guide -Navigate to `/opt/1panel/apps/mkdocs-material/mkdocs-material/data/docs` to start your documentation writing. - -# Material for MkDocs -**MkDocs** is a fast, simple, and elegant static site generator suitable for building project documentation. Documentation source files are written in Markdown and configured with a single YAML configuration file. - -## Features: -- **Great Themes**: MkDocs offers a variety of beautiful themes, including built-in options like `mkdocs` and `readthedocs`, as well as third-party themes or custom-built ones. -- **Customizable**: Customize themes and/or install plugins to make your project documentation look exactly as you want. Extend Markdown behavior with Markdown extensions and configuration options. -- **Live Preview**: The built-in development server allows you to preview your documentation as you write it. It even auto-reloads and refreshes your browser whenever you save changes. -- **Deploy Anywhere**: MkDocs builds completely static HTML sites that can be hosted on GitHub Pages, Amazon S3, or any other hosting platform of your choice. \ No newline at end of file diff --git a/mkdocs-material/data.yml b/mkdocs-material/data.yml deleted file mode 100644 index ea85484b4..000000000 --- a/mkdocs-material/data.yml +++ /dev/null @@ -1,32 +0,0 @@ -name: Material for MkDocs -tags: - - 实用工具 -title: Markdown 文件托管平台 -description: Markdown 文件托管平台 -additionalProperties: - key: mkdocs-material - name: Material for MkDocs - tags: - - Tool - shortDescZh: Markdown 文件托管平台 - shortDescEn: A powerful documentation framework on top of MkDocs - type: website - crossVersionUpdate: false - limit: 0 - recommend: 0 - website: https://squidfunk.github.io/mkdocs-material/ - github: https://github.com/squidfunk/mkdocs-material - document: https://squidfunk.github.io/mkdocs-material/getting-started/ - description: - en: A powerful documentation framework on top of MkDocs - zh: 基于 MkDocs 的强大文档框架 - zh-Hant: 基於 MkDocs 的強大文檔框架 - ja: MkDocs 上に構築された強力なドキュメントフレームワーク - ms: Rangka kerja dokumentasi yang kuat di atas MkDocs - pt-br: Um poderoso framework de documentação baseado no MkDocs - ru: Мощный фреймворк для документации на основе MkDocs - ko: MkDocs 위에 구축된 강력한 문서화 프레임워크 - architectures: - - amd64 - - arm64 - - arm/v7 diff --git a/mkdocs-material/logo.png b/mkdocs-material/logo.png deleted file mode 100644 index 8eec33aff..000000000 Binary files a/mkdocs-material/logo.png and /dev/null differ diff --git a/mongo-express/1.0.2-20/data.yml b/mongo-express/1.0.2-20/data.yml deleted file mode 100755 index ec49e9bfe..000000000 --- a/mongo-express/1.0.2-20/data.yml +++ /dev/null @@ -1,104 +0,0 @@ -additionalProperties: - formFields: - - default: 8081 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh-Hant: 埠 - zh: 端口 - required: true - rule: paramPort - type: number - - default: "" - edit: true - envKey: MONGO_HOST - key: mongodb - labelEn: Database Service - labelZh: 数据库服务 - label: - en: Database Service - ja: データベースサービス - ms: Perkhidmatan Pangkalan Data - pt-br: Serviço de Banco de Dados - ru: Сервис баз данных - ko: 데이터베이스 서비스 - zh-hant: 資料庫服務 - zh: 数据库服务 - required: true - type: service - - default: "" - edit: true - envKey: PANEL_DB_ROOT_USER - labelEn: Database User - labelZh: 数据库用户 - label: - en: Database User - ja: データベースユーザー - ms: Pengguna Pangkalan Data - pt-br: Usuário do Banco de Dados - ru: Пользователь базы данных - ko: 데이터베이스 사용자 - zh-hant: 資料庫用戶 - zh: 数据库用户 - required: true - rule: paramCommon - type: text - - default: "" - edit: true - envKey: PANEL_DB_ROOT_PASSWORD - labelEn: Database Password - labelZh: 数据库密码 - label: - en: Database Password - ja: データベースのパスワード - ms: Kata Laluan Pangkalan Data - pt-br: Senha do Banco de Dados - ru: Пароль базы данных - ko: 데이터베이스 비밀번호 - zh-hant: 資料庫密碼 - zh: 数据库密码 - required: true - type: password - - default: "mongo-express" - edit: true - envKey: BASICAUTH_USERNAME - labelEn: Management Username - labelZh: 管理平台用户名 - label: - en: Management Username - ja: 管理者ユーザー名 - ms: Nama Pengguna Pengurusan - pt-br: Nome de Usuário de Gerenciamento - ru: Имя пользователя для управления - ko: 관리자 사용자 이름 - zh-hant: 管理使用者名稱 - zh: 管理平台用户名 - required: true - rule: paramCommon - type: text - - default: "mongo-express" - edit: true - envKey: BASICAUTH_PASSWORD - labelEn: Management Password - labelZh: 管理平台密码 - label: - en: Management Password - ja: 管理者パスワード - ms: Kata Laluan Pengurusan - pt-br: Senha de Gerenciamento - ru: Пароль для управления - ko: 관리자 비밀번호 - zh-hant: 管理平台密碼 - zh: 管理平台密码 - random: true - required: true - rule: paramCommon - type: text diff --git a/mongo-express/1.0.2-20/docker-compose.yml b/mongo-express/1.0.2-20/docker-compose.yml deleted file mode 100644 index 70ec72e72..000000000 --- a/mongo-express/1.0.2-20/docker-compose.yml +++ /dev/null @@ -1,19 +0,0 @@ -services: - tailchat: - container_name: ${CONTAINER_NAME} - restart: unless-stopped - image: mongo-express:1.0.2-20 - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_HTTP}:8081 - environment: - ME_CONFIG_BASICAUTH: true - ME_CONFIG_BASICAUTH_USERNAME: ${BASICAUTH_USERNAME} - ME_CONFIG_BASICAUTH_PASSWORD: ${BASICAUTH_PASSWORD} - ME_CONFIG_MONGODB_URL: mongodb://${PANEL_DB_ROOT_USER}:${PANEL_DB_ROOT_PASSWORD}@${MONGO_HOST}:27017 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/mongo-express/README.md b/mongo-express/README.md deleted file mode 100644 index 643c52d82..000000000 --- a/mongo-express/README.md +++ /dev/null @@ -1,21 +0,0 @@ -# mongo-express - -**mongo-express** 是一款使用 Node.js、Express 和 Bootstrap 5 编写的基于 Web 的 MongoDB 管理界面。 - -## 主要功能: - -- 连接到多个数据库 -- 查看/添加/删除数据库 -- 查看/添加/重命名/删除集合 -- 查看/添加/更新/删除文档 -- 在集合视图中内嵌预览音频/视频/图像资源 -- 嵌套和/或大型对象可折叠,以便于概览 -- 异步按需加载大文档属性(默认>100KB)以保持集合视图快速 -- GridFS 支持 - 添加/获取/删除非常大的文件 -- 在文档中使用 BSON 数据类型 -- 移动/响应式 - 当您遇到困难时,Bootstrap 5 在小屏幕上的表现还算可以 -- 连接并验证各个数据库 -- 以管理员身份验证以查看所有数据库 -- 数据库黑名单/白名单 -- 自定义 CA/TLS/SSL 和 CA 验证禁用 -- 支持副本集 diff --git a/mongo-express/README_en.md b/mongo-express/README_en.md deleted file mode 100644 index 883681a75..000000000 --- a/mongo-express/README_en.md +++ /dev/null @@ -1,21 +0,0 @@ -# mongo-express - -**mongo-express** is a web-based MongoDB management interface built using Node.js, Express, and Bootstrap 5. - -## Key Features: - -- Connect to multiple databases -- View/Add/Delete databases -- View/Add/Rename/Delete collections -- View/Add/Update/Delete documents -- Inline preview of audio, video, and image resources in the collection view -- Collapsible nested or large objects for easier overview -- Asynchronous on-demand loading of large document properties (default >100KB) to keep the collection view fast -- GridFS support - Add/Retrieve/Delete very large files -- Use BSON data types within documents -- Mobile/Responsive - Bootstrap 5 works reasonably well on small screens -- Connect and authenticate individual databases -- Authenticate as an admin to view all databases -- Blacklist/Whitelist databases -- Custom CA/TLS/SSL support and CA validation disabling -- Replica set support \ No newline at end of file diff --git a/mongo-express/data.yml b/mongo-express/data.yml deleted file mode 100755 index 75bd81266..000000000 --- a/mongo-express/data.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: mongo-express -tags: - - 开发工具 -title: 基于 Web 的 MongoDB 管理界面 -description: 基于 Web 的 MongoDB 管理界面 -additionalProperties: - key: mongo-express - name: mongo-express - tags: - - DevTool - shortDescZh: 基于 Web 的 MongoDB 管理界面 - shortDescEn: Web-based MongoDB admin interface - description: - en: Web-based MongoDB admin interface - ja: WebベースのMongoDB管理インターフェース - ms: Antara muka pentadbiran MongoDB berasaskan web - pt-br: Interface administrativa do MongoDB baseada na web - ru: Веб-интерфейс для управления MongoDB - ko: 웹 기반 MongoDB 관리 인터페이스 - zh-hant: 基於網頁的 MongoDB 管理介面 - zh: 基于 Web 的 MongoDB 管理界面 - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://github.com/mongo-express/mongo-express - github: https://github.com/mongo-express/mongo-express - document: https://github.com/mongo-express/mongo-express - architectures: - - amd64 - - arm64 diff --git a/mongo-express/logo.png b/mongo-express/logo.png deleted file mode 100644 index 4bf896657..000000000 Binary files a/mongo-express/logo.png and /dev/null differ diff --git a/mongodb/6.0.24/data.yml b/mongodb/6.0.24/data.yml deleted file mode 100755 index ed5b70a4f..000000000 --- a/mongodb/6.0.24/data.yml +++ /dev/null @@ -1,51 +0,0 @@ -additionalProperties: - formFields: - - default: mongo - envKey: PANEL_DB_ROOT_USER - labelEn: Username - labelZh: 用户名 - random: true - required: true - rule: paramCommon - type: text - label: - en: Username - ja: ユーザー名 - ms: Nama pengguna - pt-br: Nome de usuário - ru: Имя пользователя - ko: 사용자 이름 - zh-Hant: 用戶名 - zh: 用户名 - - default: mongo - envKey: PANEL_DB_ROOT_PASSWORD - labelEn: Password - labelZh: 用户密码 - random: true - required: true - type: password - label: - en: Password - ja: パスワード - ms: Kata laluan - pt-br: Senha - ru: Пароль - ko: 비밀번호 - zh-Hant: 密碼 - zh: 密码 - - default: 27017 - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh-Hant: 埠 - zh: 端口 diff --git a/mongodb/6.0.24/docker-compose.yml b/mongodb/6.0.24/docker-compose.yml deleted file mode 100644 index 5a12eb464..000000000 --- a/mongodb/6.0.24/docker-compose.yml +++ /dev/null @@ -1,19 +0,0 @@ -services: - mongodb: - container_name: ${CONTAINER_NAME} - image: mongo:6.0.24 - restart: always - environment: - MONGO_INITDB_ROOT_USERNAME: ${PANEL_DB_ROOT_USER} - MONGO_INITDB_ROOT_PASSWORD: ${PANEL_DB_ROOT_PASSWORD} - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_HTTP}:27017 - volumes: - - ./data:/data/db - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/mongodb/7.0.21/data.yml b/mongodb/7.0.21/data.yml deleted file mode 100755 index ed5b70a4f..000000000 --- a/mongodb/7.0.21/data.yml +++ /dev/null @@ -1,51 +0,0 @@ -additionalProperties: - formFields: - - default: mongo - envKey: PANEL_DB_ROOT_USER - labelEn: Username - labelZh: 用户名 - random: true - required: true - rule: paramCommon - type: text - label: - en: Username - ja: ユーザー名 - ms: Nama pengguna - pt-br: Nome de usuário - ru: Имя пользователя - ko: 사용자 이름 - zh-Hant: 用戶名 - zh: 用户名 - - default: mongo - envKey: PANEL_DB_ROOT_PASSWORD - labelEn: Password - labelZh: 用户密码 - random: true - required: true - type: password - label: - en: Password - ja: パスワード - ms: Kata laluan - pt-br: Senha - ru: Пароль - ko: 비밀번호 - zh-Hant: 密碼 - zh: 密码 - - default: 27017 - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh-Hant: 埠 - zh: 端口 diff --git a/mongodb/7.0.21/docker-compose.yml b/mongodb/7.0.21/docker-compose.yml deleted file mode 100644 index 1871c5c64..000000000 --- a/mongodb/7.0.21/docker-compose.yml +++ /dev/null @@ -1,19 +0,0 @@ -services: - mongodb: - container_name: ${CONTAINER_NAME} - image: mongo:7.0.21 - restart: always - environment: - MONGO_INITDB_ROOT_USERNAME: ${PANEL_DB_ROOT_USER} - MONGO_INITDB_ROOT_PASSWORD: ${PANEL_DB_ROOT_PASSWORD} - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_HTTP}:27017 - volumes: - - ./data:/data/db - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/mongodb/README.md b/mongodb/README.md deleted file mode 100644 index 0b98eac78..000000000 --- a/mongodb/README.md +++ /dev/null @@ -1,41 +0,0 @@ -# MongoDB - -MongoDB 是一款流行的NoSQL数据库管理系统,它提供了许多功能,使其成为处理大规模数据和灵活的数据模型的强大工具。 - -## 主要功能: - -### 文档型数据库 - -MongoDB 是一个文档型数据库,数据以 BSON(二进制JSON)文档的形式存储。这种数据模型非常灵活,可以容易地处理不同结构的数据,而不需要固定的表结构。 - -### 高度可扩展性 - -MongoDB支持水平扩展,可以轻松地添加更多的服务器来处理大量数据和高并发请求。它适用于大规模的应用程序和增长型项目。 - -### 强大的查询语言 - -MongoDB提供了丰富的查询语言,支持复杂的查询操作,包括过滤、聚合、排序和地理空间查询等。用户可以轻松地提取所需的数据。 - -### 复制和故障转移 - -MongoDB支持数据复制,可以创建主-从复制集群以提高数据的可用性和容错性。在主节点故障时,自动选择新的主节点。 - -### 自动分片 - -MongoDB支持数据分片,允许水平拆分数据,以便在多台服务器上存储和处理数据。这有助于提高性能和负载均衡。 - -### 支持索引 - -MongoDB支持多种索引类型,包括单字段索引、复合索引和地理空间索引。索引可以大幅提高查询性能。 - -### 内置复杂事务 - -MongoDB 4.0及更高版本支持多文档事务,允许多个操作在一个事务中执行,确保数据的一致性。 - -### 高级安全性 - -MongoDB提供了访问控制、身份验证和加密等高级安全性功能,确保数据的保密性和完整性。 - -### 社区支持和生态系统 - -MongoDB拥有庞大的社区和丰富的生态系统,有大量的工具、驱动程序和扩展可用于不同的开发和运维任务。 \ No newline at end of file diff --git a/mongodb/README_en.md b/mongodb/README_en.md deleted file mode 100644 index b1ee62310..000000000 --- a/mongodb/README_en.md +++ /dev/null @@ -1,41 +0,0 @@ -# MongoDB - -MongoDB is a popular NoSQL database management system that offers a wealth of features, making it a powerful tool for handling large-scale data and flexible data models. - -## Main Features: - -### Document-Oriented Database - -MongoDB stores data in BSON (Binary JSON) documents, providing a highly flexible data model. This allows for easy handling of varying data structures without the constraints of a fixed table schema. - -### High Scalability - -MongoDB supports horizontal scaling, making it easy to add servers to handle large volumes of data and high concurrency requests. This is ideal for large-scale applications and growing projects. - -### Powerful Query Language - -MongoDB's query language supports complex operations, including filtering, aggregation, sorting, and geospatial queries. Users can easily retrieve the data they need. - -### Replication and Failover - -MongoDB supports data replication, allowing for master-slave clusters that improve data availability and fault tolerance. In case of a primary node failure, a new primary is automatically elected. - -### Automatic Sharding - -MongoDB supports sharding, enabling horizontal partitioning of data across multiple servers. This improves performance and load balancing. - -### Indexing Support - -MongoDB offers various index types, including single-field, compound, and geospatial indexes. Indexes significantly enhance query performance. - -### Built-in Complex Transactions - -From version 4.0 onward, MongoDB supports multi-document transactions, allowing multiple operations to be executed within a single transaction to ensure data consistency. - -### Advanced Security - -MongoDB provides advanced security features, including access control, authentication, and encryption, ensuring data confidentiality and integrity. - -### Community Support and Ecosystem - -MongoDB boasts a large community and a rich ecosystem, with numerous tools, drivers, and extensions available for various development and operational tasks. diff --git a/mongodb/data.yml b/mongodb/data.yml deleted file mode 100755 index 46ec90f62..000000000 --- a/mongodb/data.yml +++ /dev/null @@ -1,34 +0,0 @@ -name: MongoDB -tags: - - 数据库 -title: 开源文档数据库 -description: 开源文档数据库 -additionalProperties: - key: mongodb - name: MongoDB - tags: - - Database - shortDescZh: MongoDB 开源文档数据库 - shortDescEn: Fractional file storage database - description: - en: Fractional file storage database - ja: 分数ファイルストレージデータベース - ms: Pangkalan data penyimpanan fail pecahan - pt-br: Banco de dados de armazenamento de arquivos fracionados - ru: Фракционная файловая база данных - ko: 분수 파일 저장소 데이터베이스 - zh-Hant: 分段文件儲存資料庫 - zh: 分段文件存储数据库 - type: runtime - crossVersionUpdate: false - limit: 1 - recommend: 0 - website: https://www.mongodb.com/ - github: https://github.com/mongodb/mongo - document: https://www.mongodb.com/docs/ - memoryRequired: 2048 - architectures: - - amd64 - - arm64 - - amd64 - - amd64 diff --git a/mongodb/logo.png b/mongodb/logo.png deleted file mode 100644 index a97b147ef..000000000 Binary files a/mongodb/logo.png and /dev/null differ diff --git a/mssql/2017-latest/data.yml b/mssql/2017-latest/data.yml deleted file mode 100644 index 91e8891fa..000000000 --- a/mssql/2017-latest/data.yml +++ /dev/null @@ -1,45 +0,0 @@ -additionalProperties: - formFields: - - default: 1433 - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh: 端口 - zh-Hant: 埠 - required: true - rule: paramPort - type: number - - default: "mssql" - edit: true - envKey: MSSQL_SA_PASSWORD - labelEn: SA PASSWORD - labelZh: SA 用户密码(至少包含8个字符,且需包含大写字母、小写字母、数字和特殊字符中的三种) - label: - en: SA PASSWORD - ja: SA パスワード - ms: Kata Laluan SA - pt-br: SENHA SA - ru: Пароль SA - ko: SA 비밀번호 - zh: SA 用户密码 - zh-Hant: SA 用戶密碼 - description: - zh: 至少包含8个字符,且需包含大写字母、小写字母、数字和特殊字符中的三种 - en: Must contain at least 8 characters, including three of the following uppercase letters, lowercase letters, numbers, and special characters - ja: 8文字以上、大文字、小文字、数字、特殊文字のうち3種類を含む必要があります - ms: Mesti mengandungi sekurang-kurangnya 8 aksara, termasuk huruf besar, huruf kecil, nombor, dan salah satu aksara khas - pt-br: Deve conter pelo menos 8 caracteres, incluindo letras maiúsculas, minúsculas, números e um caractere especial - ru: Должен содержать не менее 8 символов, включая заглавные и строчные буквы, цифры и один из специальных символов - ko: 8자 이상, 대문자, 소문자, 숫자 및 특수 문자 중 3가지를 포함해야 함 - zh-Hant: 至少包含8個字符,且需包含大寫字母、小寫字母、數字和特殊字符中的三種 - random: true - required: true - rule: paramCommon - type: text diff --git a/mssql/2017-latest/data/.gitkeep b/mssql/2017-latest/data/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/mssql/2017-latest/docker-compose.yml b/mssql/2017-latest/docker-compose.yml deleted file mode 100644 index 26e58ba0a..000000000 --- a/mssql/2017-latest/docker-compose.yml +++ /dev/null @@ -1,19 +0,0 @@ -services: - mssql: - container_name: ${CONTAINER_NAME} - image: mcr.microsoft.com/mssql/server:2017-latest - restart: unless-stopped - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_HTTP}:1433 - environment: - - ACCEPT_EULA=Y - - MSSQL_SA_PASSWORD=${MSSQL_SA_PASSWORD} - volumes: - - ./data:/var/opt/mssql/data - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/mssql/2017-latest/scripts/init.sh b/mssql/2017-latest/scripts/init.sh deleted file mode 100644 index 4a11f81ff..000000000 --- a/mssql/2017-latest/scripts/init.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -chown -R 10001:10001 data \ No newline at end of file diff --git a/mssql/2019-latest/data.yml b/mssql/2019-latest/data.yml deleted file mode 100644 index 91e8891fa..000000000 --- a/mssql/2019-latest/data.yml +++ /dev/null @@ -1,45 +0,0 @@ -additionalProperties: - formFields: - - default: 1433 - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh: 端口 - zh-Hant: 埠 - required: true - rule: paramPort - type: number - - default: "mssql" - edit: true - envKey: MSSQL_SA_PASSWORD - labelEn: SA PASSWORD - labelZh: SA 用户密码(至少包含8个字符,且需包含大写字母、小写字母、数字和特殊字符中的三种) - label: - en: SA PASSWORD - ja: SA パスワード - ms: Kata Laluan SA - pt-br: SENHA SA - ru: Пароль SA - ko: SA 비밀번호 - zh: SA 用户密码 - zh-Hant: SA 用戶密碼 - description: - zh: 至少包含8个字符,且需包含大写字母、小写字母、数字和特殊字符中的三种 - en: Must contain at least 8 characters, including three of the following uppercase letters, lowercase letters, numbers, and special characters - ja: 8文字以上、大文字、小文字、数字、特殊文字のうち3種類を含む必要があります - ms: Mesti mengandungi sekurang-kurangnya 8 aksara, termasuk huruf besar, huruf kecil, nombor, dan salah satu aksara khas - pt-br: Deve conter pelo menos 8 caracteres, incluindo letras maiúsculas, minúsculas, números e um caractere especial - ru: Должен содержать не менее 8 символов, включая заглавные и строчные буквы, цифры и один из специальных символов - ko: 8자 이상, 대문자, 소문자, 숫자 및 특수 문자 중 3가지를 포함해야 함 - zh-Hant: 至少包含8個字符,且需包含大寫字母、小寫字母、數字和特殊字符中的三種 - random: true - required: true - rule: paramCommon - type: text diff --git a/mssql/2019-latest/data/.gitkeep b/mssql/2019-latest/data/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/mssql/2019-latest/docker-compose.yml b/mssql/2019-latest/docker-compose.yml deleted file mode 100644 index 79b630b2f..000000000 --- a/mssql/2019-latest/docker-compose.yml +++ /dev/null @@ -1,19 +0,0 @@ -services: - mssql: - container_name: ${CONTAINER_NAME} - image: mcr.microsoft.com/mssql/server:2019-latest - restart: unless-stopped - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_HTTP}:1433 - environment: - - ACCEPT_EULA=Y - - MSSQL_SA_PASSWORD=${MSSQL_SA_PASSWORD} - volumes: - - ./data:/var/opt/mssql/data - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/mssql/2019-latest/scripts/init.sh b/mssql/2019-latest/scripts/init.sh deleted file mode 100644 index 4a11f81ff..000000000 --- a/mssql/2019-latest/scripts/init.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -chown -R 10001:10001 data \ No newline at end of file diff --git a/mssql/2022-latest/data.yml b/mssql/2022-latest/data.yml deleted file mode 100644 index 50aca05e1..000000000 --- a/mssql/2022-latest/data.yml +++ /dev/null @@ -1,36 +0,0 @@ -additionalProperties: - formFields: - - default: 1433 - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh: 端口 - zh-Hant: 埠 - required: true - rule: paramPort - type: number - - default: "mssql" - edit: true - envKey: MSSQL_SA_PASSWORD - labelEn: SA PASSWORD - labelZh: SA 用户密码(至少包含8个字符,且需包含大写字母、小写字母、数字和特殊字符中的三种) - label: - en: SA PASSWORD - ja: SA パスワード(8文字以上、大文字、小文字、数字、特殊文字のうち3種類を含む必要があります) - ms: Kata Laluan SA (Mesti mengandungi sekurang-kurangnya 8 aksara, termasuk huruf besar, huruf kecil, nombor, dan salah satu aksara khas) - pt-br: SENHA SA (Deve conter pelo menos 8 caracteres, incluindo letras maiúsculas, minúsculas, números e um caractere especial) - ru: Пароль SA (должен содержать не менее 8 символов, включая заглавные и строчные буквы, цифры и один из специальных символов) - ko: SA 비밀번호 (8자 이상, 대문자, 소문자, 숫자 및 특수 문자 중 3가지를 포함해야 함) - zh: SA 用户密码(至少包含8个字符,且需包含大写字母、小写字母、数字和特殊字符中的三种) - zh-Hant: SA 用戶密碼(至少包含8個字符,且需包含大寫字母、小寫字母、數字和特殊字符中的三種) - random: true - required: true - rule: paramCommon - type: text diff --git a/mssql/2022-latest/data/.gitkeep b/mssql/2022-latest/data/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/mssql/2022-latest/docker-compose.yml b/mssql/2022-latest/docker-compose.yml deleted file mode 100644 index 5ab4794af..000000000 --- a/mssql/2022-latest/docker-compose.yml +++ /dev/null @@ -1,19 +0,0 @@ -services: - mssql: - container_name: ${CONTAINER_NAME} - image: mcr.microsoft.com/mssql/server:2022-latest - restart: unless-stopped - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_HTTP}:1433 - environment: - - ACCEPT_EULA=Y - - MSSQL_SA_PASSWORD=${MSSQL_SA_PASSWORD} - volumes: - - ./data:/var/opt/mssql/data - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/mssql/2022-latest/scripts/init.sh b/mssql/2022-latest/scripts/init.sh deleted file mode 100644 index 4a11f81ff..000000000 --- a/mssql/2022-latest/scripts/init.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -chown -R 10001:10001 data \ No newline at end of file diff --git a/mssql/README.md b/mssql/README.md deleted file mode 100644 index 890b3fc50..000000000 --- a/mssql/README.md +++ /dev/null @@ -1,12 +0,0 @@ -# Microsoft SQL Server - -**Microsoft SQL Server** 是一种关系型数据库管理系统(RDBMS),由微软开发和维护。它提供了一系列功能,用于存储、管理和处理数据,支持广泛的应用场景,包括企业级数据管理、业务智能、数据分析和应用程序开发等。 - -## 主要功能: - -- **数据存储和管理**:可以存储大量的数据,并提供高效的管理功能,包括数据的增删改查操作、事务管理和数据完整性维护。 -- **安全性**:提供了多种安全功能,包括访问控制、加密、身份验证和审计,以保护数据免受未经授权的访问和恶意攻击。 -- **高可用性和容错**:支持多种高可用性解决方案,如故障转移集群、数据库镜像、始终可用组和备份/恢复功能,以确保数据的持久性和可靠性。 -- **性能优化**:包括多种性能优化功能,如索引、查询优化器、分区和内存优化表,以提高数据库的性能和响应速度。 -- **数据分析和报告**:提供了强大的数据分析和报告功能,包括多维数据分析(OLAP)、数据挖掘和报表服务,以支持用户对数据进行深入分析和可视化呈现。 -- **集成和扩展性**:可以与其他微软产品和第三方应用程序进行集成,并提供了丰富的开发工具和API,以满足不同业务需求和扩展性要求。 \ No newline at end of file diff --git a/mssql/README_en.md b/mssql/README_en.md deleted file mode 100644 index 4c5f3bb75..000000000 --- a/mssql/README_en.md +++ /dev/null @@ -1,13 +0,0 @@ -# Microsoft SQL Server - -**Microsoft SQL Server** is a relational database management system (RDBMS) developed and maintained by Microsoft. It provides a series of functionalities for storing, managing, and processing data, supporting a wide range of application scenarios, including enterprise-level data management, business intelligence, data analysis, and application development. - -## Key Features: - -- **Data Storage and Management**: It can store large amounts of data and provides efficient management functionalities, including CRUD operations, transaction management, and data integrity maintenance. -- **Security**: It offers various security features, including access control, encryption, authentication, and auditing, to protect data from unauthorized access and malicious attacks. -- **High Availability and Fault Tolerance**: It supports multiple high-availability solutions, such as failover clustering, database mirroring, Always On Availability Groups, and backup/recovery functionalities, ensuring data persistence and reliability. -- **Performance Optimization**: It includes various performance optimization features, such as indexing, query optimizer, partitioning, and memory-optimized tables, to improve database performance and response speed. -- **Data Analysis and Reporting**: It provides powerful data analysis and reporting functionalities, including multidimensional data analysis (OLAP), data mining, and reporting services, to support in-depth data analysis and visualization. -- **Integration and Extensibility**: It can integrate with other Microsoft products and third-party applications, offering a rich set of development tools and APIs to meet different business needs and extensibility requirements. - diff --git a/mssql/data.yml b/mssql/data.yml deleted file mode 100644 index e66794c4e..000000000 --- a/mssql/data.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: Microsoft SQL Server -tags: - - 数据库 -title: SQL Server 在 Docker 资源中的官方微软存储库 -description: SQL Server 在 Docker 资源中的官方微软存储库 -additionalProperties: - key: mssql - name: Microsoft SQL Server - tags: - - Database - shortDescZh: SQL Server 在 Docker 资源中的官方微软存储库 - shortDescEn: Official Microsoft repository for SQL Server in Docker resources - type: runtime - crossVersionUpdate: false - limit: 0 - recommend: 0 - website: https://github.com/microsoft/mssql-docker - github: https://github.com/microsoft/mssql-docker - document: https://github.com/microsoft/mssql-docker - description: - en: Official Microsoft repository for SQL Server in Docker resources - zh: SQL Server 在 Docker 资源中的官方微软存储库 - zh-Hant: SQL Server 在 Docker 資源中的官方微軟存儲庫 - ja: Docker リソース内の SQL Server 用の公式 Microsoft リポジトリ - ms: Repositori rasmi Microsoft untuk SQL Server dalam sumber Docker - pt-br: Repositório oficial da Microsoft para SQL Server em recursos Docker - ru: Официальный репозиторий Microsoft для SQL Server в ресурсах Docker - ko: Docker 리소스에서 SQL Server를 위한 Microsoft 공식 저장소 - memoryRequired: 1024 - architectures: - - amd64 diff --git a/mssql/logo.png b/mssql/logo.png deleted file mode 100644 index 313e16bfd..000000000 Binary files a/mssql/logo.png and /dev/null differ diff --git a/mysql/5.6.51/conf/my.cnf b/mysql/5.6.51/conf/my.cnf deleted file mode 100644 index 94804f848..000000000 --- a/mysql/5.6.51/conf/my.cnf +++ /dev/null @@ -1,71 +0,0 @@ -# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved. -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License, version 2.0, -# as published by the Free Software Foundation. -# -# This program is also distributed with certain software (including -# but not limited to OpenSSL) that is licensed under separate terms, -# as designated in a particular file or component or in included license -# documentation. The authors of MySQL hereby grant you an additional -# permission to link the program and your derivative works with the -# separately licensed software that they have included with MySQL. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License, version 2.0, for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -# -# The MySQL Server configuration file. -# -# For explanations see -# http://dev.mysql.com/doc/mysql/en/server-system-variables.html - -# * IMPORTANT: Additional settings that can override those from this file! -# The files must end with '.cnf', otherwise they'll be ignored. -# - -[mysqld] -# -# Remove leading # and set to the amount of RAM for the most important data -# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%. -# innodb_buffer_pool_size = 128M -# -# Remove leading # to turn on a very important data integrity option: logging -# changes to the binary log between backups. -# log_bin -# -# Remove leading # to set options mainly useful for reporting servers. -# The server defaults are faster for transactions and fast SELECTs. -# Adjust sizes as needed, experiment to find the optimal values. -# join_buffer_size = 128M -# sort_buffer_size = 2M -# read_rnd_buffer_size = 2M -skip-host-cache -skip-name-resolve -datadir=/var/lib/mysql -socket=/var/run/mysqld/mysqld.sock -secure-file-priv=/var/lib/mysql-files -user=mysql - -# Disabling symbolic-links is recommended to prevent assorted security risks -symbolic-links=0 - -#log-error=/var/log/mysqld.log -pid-file=/var/run/mysqld/mysqld.pid - -max_allowed_packet=64M -character_set_server=utf8 -lower_case_table_names=1 -group_concat_max_len=1024000 - -[client] -socket=/var/run/mysqld/mysqld.sock - -!includedir /etc/mysql/conf.d/ -!includedir /etc/mysql/mysql.conf.d/ \ No newline at end of file diff --git a/mysql/5.6.51/data.yml b/mysql/5.6.51/data.yml deleted file mode 100755 index 510c93edc..000000000 --- a/mysql/5.6.51/data.yml +++ /dev/null @@ -1,34 +0,0 @@ -additionalProperties: - formFields: - - default: mysql - envKey: PANEL_DB_ROOT_PASSWORD - labelEn: Root Password - labelZh: root用户密码 - random: true - required: true - type: password - label: - en: Root Password - ja: ルートパスワード - ms: Kata Laluan Root - pt-br: Senha Root - ru: Пароль Root - ko: 루트 비밀번호 - zh-Hant: Root 密碼 - zh: Root 密码 - - default: 3306 - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh-Hant: 埠 - zh: 端口 \ No newline at end of file diff --git a/mysql/5.6.51/docker-compose.yml b/mysql/5.6.51/docker-compose.yml deleted file mode 100644 index 44ade8220..000000000 --- a/mysql/5.6.51/docker-compose.yml +++ /dev/null @@ -1,25 +0,0 @@ -services: - mysql: - image: mysql:5.6.51 - container_name: ${CONTAINER_NAME} - restart: always - environment: - MYSQL_ROOT_PASSWORD: ${PANEL_DB_ROOT_PASSWORD} - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_HTTP}:3306 - volumes: - - ./data/:/var/lib/mysql - - ./conf/my.cnf:/etc/mysql/my.cnf - - ./log:/var/log/mysql - command: - - --character-set-server=utf8mb4 - - --collation-server=utf8mb4_general_ci - - --explicit_defaults_for_timestamp=true - - --lower_case_table_names=1 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/mysql/5.7.44/conf/my.cnf b/mysql/5.7.44/conf/my.cnf deleted file mode 100644 index 9a6aa6f99..000000000 --- a/mysql/5.7.44/conf/my.cnf +++ /dev/null @@ -1,42 +0,0 @@ -# For advice on how to change settings please see -# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html - -[mysqld] -# -# Remove leading # and set to the amount of RAM for the most important data -# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%. -# innodb_buffer_pool_size = 128M -# -# Remove leading # to turn on a very important data integrity option: logging -# changes to the binary log between backups. -# log_bin -# -# Remove leading # to set options mainly useful for reporting servers. -# The server defaults are faster for transactions and fast SELECTs. -# Adjust sizes as needed, experiment to find the optimal values. -# join_buffer_size = 128M -# sort_buffer_size = 2M -# read_rnd_buffer_size = 2M -skip-host-cache -skip-name-resolve -datadir=/var/lib/mysql -socket=/var/run/mysqld/mysqld.sock -secure-file-priv=/var/lib/mysql-files -user=mysql - -# Disabling symbolic-links is recommended to prevent assorted security risks -symbolic-links=0 - -#log-error=/var/log/mysqld.log -pid-file=/var/run/mysqld/mysqld.pid - -max_allowed_packet=64M -character_set_server=utf8 -lower_case_table_names=1 -group_concat_max_len=1024000 - -[client] -socket=/var/run/mysqld/mysqld.sock - -!includedir /etc/mysql/conf.d/ -!includedir /etc/mysql/mysql.conf.d/ \ No newline at end of file diff --git a/mysql/5.7.44/data.yml b/mysql/5.7.44/data.yml deleted file mode 100755 index ede1da18b..000000000 --- a/mysql/5.7.44/data.yml +++ /dev/null @@ -1,34 +0,0 @@ -additionalProperties: - formFields: - - default: mysql - envKey: PANEL_DB_ROOT_PASSWORD - labelEn: Root Password - labelZh: root用户密码 - random: true - required: true - type: password - label: - en: Root Password - ja: ルートパスワード - ms: Kata Laluan Root - pt-br: Senha Root - ru: Пароль Root - ko: 루트 비밀번호 - zh-Hant: Root 密碼 - zh: Root 密码 - - default: 3306 - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh-Hant: 埠 - zh: 端口 \ No newline at end of file diff --git a/mysql/5.7.44/docker-compose.yml b/mysql/5.7.44/docker-compose.yml deleted file mode 100644 index a7332cce3..000000000 --- a/mysql/5.7.44/docker-compose.yml +++ /dev/null @@ -1,27 +0,0 @@ -services: - mysql: - image: mysql:5.7.44 - container_name: ${CONTAINER_NAME} - restart: always - environment: - MYSQL_ROOT_PASSWORD: ${PANEL_DB_ROOT_PASSWORD} - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_HTTP}:3306 - volumes: - - ./data/:/var/lib/mysql - - ./conf/my.cnf:/etc/mysql/my.cnf - - ./log:/var/log/mysql - - /etc/timezone:/etc/timezone:ro - - /etc/localtime:/etc/localtime:ro - command: - - --character-set-server=utf8mb4 - - --collation-server=utf8mb4_general_ci - - --explicit_defaults_for_timestamp=true - - --lower_case_table_names=1 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/mysql/8.0.42/conf/my.cnf b/mysql/8.0.42/conf/my.cnf deleted file mode 100644 index 6877bbfc9..000000000 --- a/mysql/8.0.42/conf/my.cnf +++ /dev/null @@ -1,19 +0,0 @@ -[mysqld] -skip-host-cache -skip-name-resolve -datadir=/var/lib/mysql -socket=/var/run/mysqld/mysqld.sock -secure-file-priv=/var/lib/mysql-files -user=mysql -log_error_suppression_list='MY-013360' - -character_set_server=utf8 -lower_case_table_names=1 -group_concat_max_len=1024000 -log_bin_trust_function_creators=1 - -pid-file=/var/run/mysqld/mysqld.pid -[client] -socket=/var/run/mysqld/mysqld.sock - -!includedir /etc/mysql/conf.d/ \ No newline at end of file diff --git a/mysql/8.0.42/data.yml b/mysql/8.0.42/data.yml deleted file mode 100755 index ede1da18b..000000000 --- a/mysql/8.0.42/data.yml +++ /dev/null @@ -1,34 +0,0 @@ -additionalProperties: - formFields: - - default: mysql - envKey: PANEL_DB_ROOT_PASSWORD - labelEn: Root Password - labelZh: root用户密码 - random: true - required: true - type: password - label: - en: Root Password - ja: ルートパスワード - ms: Kata Laluan Root - pt-br: Senha Root - ru: Пароль Root - ko: 루트 비밀번호 - zh-Hant: Root 密碼 - zh: Root 密码 - - default: 3306 - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh-Hant: 埠 - zh: 端口 \ No newline at end of file diff --git a/mysql/8.0.42/docker-compose.yml b/mysql/8.0.42/docker-compose.yml deleted file mode 100644 index ed015025e..000000000 --- a/mysql/8.0.42/docker-compose.yml +++ /dev/null @@ -1,24 +0,0 @@ -services: - mysql: - image: mysql:8.0.42 - container_name: ${CONTAINER_NAME} - restart: always - environment: - MYSQL_ROOT_PASSWORD: ${PANEL_DB_ROOT_PASSWORD} - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_HTTP}:3306 - volumes: - - ./data/:/var/lib/mysql - - ./conf/my.cnf:/etc/my.cnf - - ./log:/var/log/mysql - - /etc/timezone:/etc/timezone:ro - - /etc/localtime:/etc/localtime:ro - labels: - createdBy: "Apps" - command: - - --default-authentication-plugin=mysql_native_password -networks: - 1panel-network: - external: true diff --git a/mysql/8.4.5/conf/my.cnf b/mysql/8.4.5/conf/my.cnf deleted file mode 100644 index 13e999b0e..000000000 --- a/mysql/8.4.5/conf/my.cnf +++ /dev/null @@ -1,13 +0,0 @@ -[mysqld] -host-cache-size=0 -skip-name-resolve -datadir=/var/lib/mysql -socket=/var/run/mysqld/mysqld.sock -secure-file-priv=/var/lib/mysql-files -user=mysql - -pid-file=/var/run/mysqld/mysqld.pid -[client] -socket=/var/run/mysqld/mysqld.sock - -!includedir /etc/mysql/conf.d/ \ No newline at end of file diff --git a/mysql/8.4.5/data.yml b/mysql/8.4.5/data.yml deleted file mode 100755 index ede1da18b..000000000 --- a/mysql/8.4.5/data.yml +++ /dev/null @@ -1,34 +0,0 @@ -additionalProperties: - formFields: - - default: mysql - envKey: PANEL_DB_ROOT_PASSWORD - labelEn: Root Password - labelZh: root用户密码 - random: true - required: true - type: password - label: - en: Root Password - ja: ルートパスワード - ms: Kata Laluan Root - pt-br: Senha Root - ru: Пароль Root - ko: 루트 비밀번호 - zh-Hant: Root 密碼 - zh: Root 密码 - - default: 3306 - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh-Hant: 埠 - zh: 端口 \ No newline at end of file diff --git a/mysql/8.4.5/docker-compose.yml b/mysql/8.4.5/docker-compose.yml deleted file mode 100644 index 63e509e62..000000000 --- a/mysql/8.4.5/docker-compose.yml +++ /dev/null @@ -1,24 +0,0 @@ -services: - mysql: - image: mysql:8.4.5 - container_name: ${CONTAINER_NAME} - restart: always - environment: - MYSQL_ROOT_PASSWORD: ${PANEL_DB_ROOT_PASSWORD} - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_HTTP}:3306 - volumes: - - ./data/:/var/lib/mysql - - ./conf/my.cnf:/etc/my.cnf - - ./log:/var/log/mysql - - /etc/timezone:/etc/timezone:ro - - /etc/localtime:/etc/localtime:ro - labels: - createdBy: "Apps" - command: - - --mysql-native-password=on -networks: - 1panel-network: - external: true diff --git a/mysql/8.4.5/scripts/upgrade.sh b/mysql/8.4.5/scripts/upgrade.sh deleted file mode 100644 index 029df7a7b..000000000 --- a/mysql/8.4.5/scripts/upgrade.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -CONFIG_FILE="./conf/my.cnf" - -if grep -q "skip-host-cache" "$CONFIG_FILE"; then - sed -i '/skip-host-cache/d' "$CONFIG_FILE" -else - echo "'skip-host-cache' does not exist in the configuration file." -fi \ No newline at end of file diff --git a/mysql/README.md b/mysql/README.md deleted file mode 100644 index a9088d51e..000000000 --- a/mysql/README.md +++ /dev/null @@ -1,37 +0,0 @@ -# MySQL - -MySQL是一个流行的开源关系型数据库管理系统(RDBMS),它提供了丰富的功能,适用于各种应用场景。 - -## 主要功能: - -### 数据存储和管理 - -MySQL允许用户创建、存储和管理大量的数据。它支持多种数据类型,包括整数、浮点数、字符串、日期等,以满足不同类型的数据需求。 - -### 数据检索和查询 - -MySQL提供强大的查询功能,允许用户使用SQL(Structured Query Language)语言来检索和过滤数据。用户可以执行各种复杂的查询操作,包括筛选、排序、分组和连接多个表格中的数据。 - -### 数据完整性和约束 - -MySQL支持数据完整性和约束,包括主键、外键、唯一性约束和检查约束,以确保数据的一致性和有效性。 - -### 多用户支持和权限管理 - -MySQL允许多个用户同时访问数据库,并提供了灵活的权限管理功能。管理员可以控制每个用户对数据库和表的访问权限,以保护数据的安全性。 - -### 数据备份和恢复 - -MySQL支持数据备份和恢复操作,用户可以定期备份数据库,以防止数据丢失或损坏,并在需要时进行恢复。 - -### 多平台支持 - -MySQL可以在多种操作系统上运行,包括Windows、Linux、macOS等,使其适用于各种不同的开发和部署环境。 - -### 扩展性 - -MySQL具有良好的扩展性,支持分布式数据库架构,可以处理高负载的应用程序。 - -### 开源和社区支持 - -MySQL是开源软件,拥有强大的社区支持。用户可以从社区获取帮助、文档和各种插件来扩展MySQL的功能。 \ No newline at end of file diff --git a/mysql/README_en.md b/mysql/README_en.md deleted file mode 100644 index 19b4a8f2b..000000000 --- a/mysql/README_en.md +++ /dev/null @@ -1,37 +0,0 @@ -# MySQL - -MySQL is a popular open-source RDBMS (Relational Database Management System) that offers a rich set of features suitable for various application scenarios. - -## Main Features - -### Data Storage and Management - -MySQL allows users to create, store, and manage large amounts of data. It supports various data types, including integers, floating-point numbers, strings, dates, etc., to meet different data requirements. - -### Data Retrieval and Querying - -MySQL provides powerful query capabilities, allowing users to use SQL (Structured Query Language) to retrieve and filter data. Users can perform various complex query operations, including filtering, sorting, grouping, and joining data from multiple tables. - -### Data Integrity and Constraints - -MySQL supports data integrity and constraints, including primary keys, foreign keys, unique constraints, and check constraints, to ensure data consistency and validity. - -### Multi-User Support and Permission Management - -MySQL allows multiple users to access the database simultaneously and provides flexible permission management features. Administrators can control each user's access to databases and tables to protect data security. - -### Data Backup and Recovery - -MySQL supports data backup and recovery operations. Users can regularly back up the database to prevent data loss or corruption and restore it when needed. - -### Multi-Platform Support - -MySQL can run on various operating systems, including Windows, Linux, macOS, etc., making it suitable for different development and deployment environments. - -### Scalability - -MySQL has good scalability, supporting distributed database architectures and handling high-load applications. - -### Open Source and Community Support - -MySQL is open-source software with strong community support. Users can get help, documentation, and various plugins from the community to extend MySQL's functionality. diff --git a/mysql/data.yml b/mysql/data.yml deleted file mode 100755 index 00a09ac0c..000000000 --- a/mysql/data.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: MySQL -tags: - - 数据库 -title: MySQL 开源关系型数据库 -description: MySQL 开源关系型数据库 -additionalProperties: - key: mysql - name: MySQL - tags: - - Database - shortDescZh: 开源关系型数据库 - shortDescEn: Open source relational database management system - description: - en: Open Source Relational Database - ja: オープンソースのリレーショナルデータベース - ms: Pangkalan Data Relasi Sumber Terbuka - pt-br: Banco de Dados Relacional de Código Aberto - ru: Открытая Реляционная База Данных - ko: 오픈 소스 관계형 데이터베이스 - zh-hant: 開源關係型資料庫 - zh: 开源关系型数据库 - type: runtime - crossVersionUpdate: false - limit: 0 - recommend: 5 - website: https://www.mysql.com - github: https://github.com/mysql/mysql-server - document: https://dev.mysql.com/doc/ - architectures: - - amd64 - - arm64 diff --git a/mysql/logo.png b/mysql/logo.png deleted file mode 100644 index 269640f51..000000000 Binary files a/mysql/logo.png and /dev/null differ diff --git a/n8n/1.100.0/data.yml b/n8n/1.100.0/data.yml deleted file mode 100644 index bbd39d2a5..000000000 --- a/n8n/1.100.0/data.yml +++ /dev/null @@ -1,18 +0,0 @@ -additionalProperties: - formFields: - - default: 5678 - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: HTTP 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh-Hant: 埠 - zh: 端口 - required: true - rule: paramPort - type: number diff --git a/n8n/1.100.0/data/.gitkeep b/n8n/1.100.0/data/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/n8n/1.100.0/docker-compose.yml b/n8n/1.100.0/docker-compose.yml deleted file mode 100644 index 7a448d386..000000000 --- a/n8n/1.100.0/docker-compose.yml +++ /dev/null @@ -1,18 +0,0 @@ -services: - homeassistant: - image: n8nio/n8n:1.100.0 - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_HTTP}:5678 - volumes: - - ./data:/home/node/.n8n - environment: - N8N_SECURE_COOKIE: false - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/n8n/1.100.0/scripts/init.sh b/n8n/1.100.0/scripts/init.sh deleted file mode 100644 index 4e811c86a..000000000 --- a/n8n/1.100.0/scripts/init.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -chown -R 1000:1000 data \ No newline at end of file diff --git a/n8n/README.md b/n8n/README.md deleted file mode 100644 index 67ee31c3d..000000000 --- a/n8n/README.md +++ /dev/null @@ -1,13 +0,0 @@ -# n8n - -**n8n** 是一种可扩展的工作流自动化工具。借助公平代码分发模型,n8n 将始终拥有可见的源代码,可供自托管,并允许您添加自己的自定义函数、逻辑和应用程序。n8n 基于节点的方法使其具有高度的通用性,使您可以将任何事物连接到一切事物。 - -## 主要功能: - -- **工作流自动化**:通过图形化界面创建自动化的工作流,将不同的应用和服务连接起来。 -- **支持多个应用**:提供了丰富的集成节点,可以连接到各种应用和服务,如 Google Sheets、Slack、GitHub、Twitter 等。 -- **灵活的触发器和动作**:支持基于事件的触发器和各种动作,使得工作流可以响应特定事件并执行相关任务。 -- **条件和循环**:可以在工作流中添加条件判断和循环操作,处理更复杂的逻辑。 -- **可自定义的代码执行**:支持在工作流中添加自定义 JavaScript 代码,以实现更复杂的逻辑和处理。 -- **自托管**:用户可以在本地或云服务器上自托管 n8n,确保数据安全和隐私。 -- **版本控制**:支持将工作流导出为 JSON 文件,以便版本控制和备份。 \ No newline at end of file diff --git a/n8n/README_en.md b/n8n/README_en.md deleted file mode 100644 index 6a55bc571..000000000 --- a/n8n/README_en.md +++ /dev/null @@ -1,13 +0,0 @@ -# n8n - -**n8n** is a scalable workflow automation tool. With a fair-code distribution model, n8n will always have visible source code, enabling self-hosting and allowing you to add your own custom functions, logic, and applications. Its node-based approach makes it highly versatile, allowing you to connect anything to everything. - -## Key Features: - -- **Workflow Automation**: Create automated workflows through a visual interface, connecting various apps and services. -- **Supports Multiple Applications**: Offers a wide range of integration nodes for apps and services like Google Sheets, Slack, GitHub, Twitter, and more. -- **Flexible Triggers and Actions**: Supports event-based triggers and various actions, enabling workflows to respond to specific events and perform related tasks. -- **Conditions and Loops**: Add conditional logic and loops to workflows to handle more complex processes. -- **Custom Code Execution**: Incorporate custom JavaScript code into workflows to implement advanced logic and processing. -- **Self-Hosting**: Host n8n on local or cloud servers to ensure data security and privacy. -- **Version Control**: Export workflows as JSON files for version control and backups. \ No newline at end of file diff --git a/n8n/data.yml b/n8n/data.yml deleted file mode 100644 index 030ca8b97..000000000 --- a/n8n/data.yml +++ /dev/null @@ -1,32 +0,0 @@ -name: n8n -tags: - - AI / 大模型 -title: 具有原生 AI 能力的 Fair-code 工作流自动化平台 -description: 具有原生 AI 能力的 Fair-code 工作流自动化平台 -additionalProperties: - key: n8n - name: n8n - tags: - - AI - shortDescZh: 具有原生 AI 能力的 Fair-code 工作流自动化平台 - shortDescEn: Fair-code workflow automation platform with native AI capabilities - description: - en: Fair-code workflow automation platform with native AI capabilities - ja: フェアコードのワークフロー自動化プラットフォーム、ネイティブAI機能を備えています - ms: Platform automasi aliran kerja kod adil dengan keupayaan AI asli - pt-br: Plataforma de automação de fluxo de trabalho com código justo e recursos nativos de IA - ru: Платформа автоматизации рабочих процессов с открытым исходным кодом и встроенными возможностями ИИ - ko: 공정 코드 워크플로 자동화 플랫폼, 네이티브 AI 기능 제공 - zh-Hant: 具備原生 AI 功能的 Fair-code 工作流程自動化平台 - zh: 具有原生 AI 能力的 Fair-code 工作流自动化平台 - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://n8n.io/ - github: https://github.com/n8n-io/n8n - document: https://docs.n8n.io/ - memoryRequired: 1024 - architectures: - - amd64 - - arm64 diff --git a/n8n/logo.png b/n8n/logo.png deleted file mode 100644 index 995eab4c1..000000000 Binary files a/n8n/logo.png and /dev/null differ diff --git a/nacos/3.0.1/data.yml b/nacos/3.0.1/data.yml deleted file mode 100644 index 89d4f4d48..000000000 --- a/nacos/3.0.1/data.yml +++ /dev/null @@ -1,100 +0,0 @@ -additionalProperties: - formFields: - - default: "false" - envKey: NACOS_AUTH_ENABLE - labelEn: Enable Authentication - labelZh: 开启鉴权 - required: true - type: select - values: - - label: 开启 - value: "true" - - label: 关闭 - value: "false" - - default: 8080 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Nacos GUI port - labelZh: Nacos 界面 访问端口 - required: true - rule: paramPort - type: number - - default: 8848 - edit: true - envKey: PANEL_APP_PORT_API_HTTP - labelEn: Nacos api port - labelZh: Nacos API端口 - required: true - rule: paramPort - type: number - - default: 9848 - edit: true - envKey: PANEL_APP_PORT_COMMUNICATION - labelEn: Nacos communication port - labelZh: Nacos 通讯端口 - required: true - rule: paramPort - type: number - - default: "serverIdentity" - edit: true - envKey: NACOS_AUTH_IDENTITY_KEY - labelEn: Nacos auth identity key - labelZh: Nacos身份验证密钥键 - required: true - type: text - - default: "security" - edit: true - envKey: NACOS_AUTH_IDENTITY_VALUE - labelEn: Nacos auth identity value - labelZh: Nacos身份验证密钥值 - required: true - type: text - - default: "SecretKey012345678901234567890123456789012345678901234567890123456789" - edit: true - envKey: NACOS_AUTH_TOKEN - labelEn: Nacos auth token - labelZh: Nacos身份验证令牌 - required: true - type: text - - default: "" - edit: true - envKey: NACOS_SERVER_IP - labelEn: IP can be specified in multi network card mode - labelZh: 多网卡模式下可以指定IP - required: false - type: text - - default: "2g" - edit: true - envKey: JVM_XMS - labelEn: JVM_XMS - labelZh: JVM_XMS - required: true - type: text - - default: "2g" - edit: true - envKey: JVM_XMX - labelEn: JVM_XMX - labelZh: JVM_XMX - required: true - type: text - - default: "1g" - edit: true - envKey: JVM_XMN - labelEn: JVM_XMN - labelZh: JVM_XMN - required: true - type: text - - default: "128m" - edit: true - envKey: JVM_MS - labelEn: JVM_MS - labelZh: JVM_MS - required: true - type: text - - default: "320m" - edit: true - envKey: JVM_MMS - labelEn: JVM_MMS - labelZh: JVM_MMS - required: true - type: text diff --git a/nacos/3.0.1/docker-compose.yml b/nacos/3.0.1/docker-compose.yml deleted file mode 100644 index a79e2a91e..000000000 --- a/nacos/3.0.1/docker-compose.yml +++ /dev/null @@ -1,30 +0,0 @@ -services: - nacos: - image: nacos/nacos-server:v3.0.1 - container_name: ${CONTAINER_NAME}-standalone - restart: always - environment: - - NACOS_AUTH_ENABLE=${NACOS_AUTH_ENABLE:-FALSE} - - PREFER_HOST_MODE=hostname - - MODE=standalone - - JVM_XMS=${JVM_XMS} - - JVM_XMX=${JVM_XMX} - - JVM_XMN=${JVM_XMN} - - JVM_MS=${JVM_MS} - - JVM_MMS=${JVM_MMS} - - NACOS_AUTH_IDENTITY_KEY=${NACOS_AUTH_IDENTITY_KEY} - - NACOS_AUTH_IDENTITY_VALUE=${NACOS_AUTH_IDENTITY_VALUE} - - NACOS_AUTH_TOKEN=${NACOS_AUTH_TOKEN} - - NACOS_SERVER_IP=${NACOS_SERVER_IP} - volumes: - - ./data/logs:/home/nacos/logs - - ./data/data:/home/nacos/data - ports: - - "${PANEL_APP_PORT_HTTP}:8080" - - "${PANEL_APP_PORT_API_HTTP}:8848" - - "${PANEL_APP_PORT_COMMUNICATION}:9848" - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/nacos/README.md b/nacos/README.md deleted file mode 100644 index fb2a4cf4a..000000000 --- a/nacos/README.md +++ /dev/null @@ -1,37 +0,0 @@ -# 使用说明 - -## 服务地址 - -- 访问地址:`http://IP:8848/nacos` -- 用户名:`nacos` -- 密码:`nacos` - - -### 如果是nacos3.0+版本 - -- 访问地址:`http://IP:8080/index.html` -- 用户名:`nacos` -- 密码:首次打开会要求初始化管理员用户nacos的密码 - -## 参数调优 - -```shell -- JVM_XMS=64m # -Xms default :2g -- JVM_XMX=64m # -Xmx default :2g -- JVM_XMN=16m # -Xmn default :1g -- JVM_MS=8m # -XX:MetaspaceSize default :128m -- JVM_MMS=8m # -XX:MaxMetaspaceSize default :320m -``` - -# Nacos - -**Nacos** 是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。 - -## Nacos 的关键特性 - -## 特色: - -- **易用**:动态服务发现的一站式解决方案。配置管理和动态 DNS服务。提供 20 多项开箱即用的特性,适用于面向服务的架构。轻量级的生产就绪控制台。 -- **可靠**:无缝支持 Kubernetes 和 Spring Cloud,更容易在流行的公共云(例如阿里云和 AWS)上部署和运行,支持多租户和多环境。 -- **云原生**:源自阿里巴巴集团经过时间验证的内部产品。支持具有数百万服务规模的大型场景。开源产品并提供企业级的服务级别协议(SLA)。 -- **可扩展**:支持速率限制、大规模推广计划和多区域主动-主动架构。直接或稍作扩展支持各种相关的基于互联网的使用案例。流量调度和服务治理。 \ No newline at end of file diff --git a/nacos/data.yml b/nacos/data.yml deleted file mode 100644 index cd32023d7..000000000 --- a/nacos/data.yml +++ /dev/null @@ -1,22 +0,0 @@ -name: Nacos -tags: -- 中间件 -title: 动态服务发现、配置管理和服务管理平台 -description: 动态服务发现、配置管理和服务管理平台 -additionalProperties: - key: nacos - name: Nacos - tags: - - Middleware - shortDescZh: 动态服务发现、配置管理和服务管理平台 - shortDescEn: Dynamic service discovery, configuration and service management platform - type: website - crossVersionUpdate: false - limit: 1 - recommend: 0 - website: https://nacos.io/ - github: https://github.com/alibaba/nacos - document: https://nacos.io/docs/latest/what-is-nacos/ - architectures: - - amd64 - - arm64 diff --git a/nacos/logo.png b/nacos/logo.png deleted file mode 100644 index 7614f2115..000000000 Binary files a/nacos/logo.png and /dev/null differ diff --git a/navidrome/0.56.1/data.yml b/navidrome/0.56.1/data.yml deleted file mode 100644 index 7cfc19acf..000000000 --- a/navidrome/0.56.1/data.yml +++ /dev/null @@ -1,19 +0,0 @@ -additionalProperties: - formFields: - - default: 40108 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: HTTP Port - labelZh: HTTP端口 - label: - en: HTTP Port - ja: HTTPポート - ms: Port HTTP - pt-br: Porta HTTP - ru: HTTP-порт - ko: HTTP 포트 - zh: HTTP端口 - zh-Hant: HTTP連接埠 - required: true - rule: paramPort - type: number diff --git a/navidrome/0.56.1/data/.gitkeep b/navidrome/0.56.1/data/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/navidrome/0.56.1/data/data/.gitkeep b/navidrome/0.56.1/data/data/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/navidrome/0.56.1/data/music/.gitkeep b/navidrome/0.56.1/data/music/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/navidrome/0.56.1/docker-compose.yml b/navidrome/0.56.1/docker-compose.yml deleted file mode 100644 index c07c17635..000000000 --- a/navidrome/0.56.1/docker-compose.yml +++ /dev/null @@ -1,23 +0,0 @@ -services: - navidrome: - image: deluan/navidrome:0.56.1 - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_HTTP}:4533 - volumes: - - ./data/data:/data - - ./data/music:/music:ro - user: 1000:1000 - environment: - ND_SCANSCHEDULE: 1h - ND_LOGLEVEL: info - ND_SESSIONTIMEOUT: 24h - ND_BASEURL: "" - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/navidrome/0.56.1/scripts/init.sh b/navidrome/0.56.1/scripts/init.sh deleted file mode 100644 index 4e811c86a..000000000 --- a/navidrome/0.56.1/scripts/init.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -chown -R 1000:1000 data \ No newline at end of file diff --git a/navidrome/README.md b/navidrome/README.md deleted file mode 100644 index 6adf2f260..000000000 --- a/navidrome/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# Navidrome - -**Navidrome** 是一个基于网络的开源音乐收藏服务器和流媒体。它让您可以自由地从任何浏览器或移动设备聆听您的音乐收藏。它就像您的个人 Spotify! - -## 特性: - -- 处理非常**大的音乐收藏** -- 几乎可以传输任何可用的**音频格式** -- 读取并使用您精心策划的所有**元数据** -- **对合辑**(各种艺术家专辑)和**盒装**(多光盘专辑)的大力支持 -- **多用户**,每个用户都有自己的播放次数、播放列表、收藏夹等... -- **资源使用率**极低 -- **多平台**,可在 macOS、Linux 和 Windows 上运行。还提供了**Docker镜像** -- 适用于所有主要平台的现成二进制文件,包括**Raspberry Pi** -- 自动**监控您的库**的更改、导入新文件并重新加载新元数据 -- 基于[Material UI](https://material-ui.com) 的**主题化**、现代且响应式的**Web 界面** -- 与所有 Subsonic/Madsonic/Airsonic[客户端](https://www.navidrome.org/docs/overview/#apps)**兼容** -- 即时**转码**。可以为每个用户/玩家设置。**支持 Opus 编码** -- 翻译成**多种语言** \ No newline at end of file diff --git a/navidrome/README_en.md b/navidrome/README_en.md deleted file mode 100644 index fd43923a7..000000000 --- a/navidrome/README_en.md +++ /dev/null @@ -1,20 +0,0 @@ -# Navidrome - -**Navidrome** is a web-based open-source music collection server and streamer. It allows you to freely listen to your music collection from any browser or mobile device. It's like your personal Spotify! - -## Features: - -- Handles **very large music collections** -- Can stream almost any **audio format** available -- Reads and uses all of your carefully curated **metadata** -- Strong support for **compilation albums** (various artists) and **boxed sets** (multi-disc albums) -- **Multi-user support**, with each user having their own play counts, playlists, favorites, etc... -- Extremely low **resource usage** -- **Multi-platform**, runs on macOS, Linux, and Windows. **Docker images** are also available. -- Ready-to-use binaries for all major platforms, including **Raspberry Pi** -- Automatically **monitors your library** for changes, imports new files, and reloads new metadata -- Themed, modern, and responsive **web interface** based on [Material UI](https://material-ui.com) -- **Compatible** with all Subsonic/Madsonic/Airsonic [clients](https://www.navidrome.org/docs/overview/#apps) -- Instant **transcoding**. Can be set per user/player. **Supports Opus encoding** -- Translated into **multiple languages** - diff --git a/navidrome/data.yml b/navidrome/data.yml deleted file mode 100644 index 5fdb316ad..000000000 --- a/navidrome/data.yml +++ /dev/null @@ -1,33 +0,0 @@ -name: Navidrome -tags: - - 多媒体 -title: 基于 Web 的开源音乐收藏服务器和流媒体 -description: 基于 Web 的开源音乐收藏服务器和流媒体 -additionalProperties: - key: navidrome - name: Navidrome - tags: - - Media - shortDescZh: 基于 Web 的开源音乐收藏服务器和流媒体 - shortDescEn: An open source web-based music collection server and streamer - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://www.navidrome.org - github: https://github.com/navidrome/navidrome - document: https://www.navidrome.org/docs - description: - en: An open source web-based music collection server and streamer - zh: 基于 Web 的开源音乐收藏服务器和流媒体 - zh-Hant: 基於 Web 的開源音樂收藏伺服器和流媒體 - ja: オープンソースの Web ベースの音楽コレクションサーバーおよびストリーマー - ms: Pelayan koleksi muzik berasaskan web sumber terbuka dan penstriman - pt-br: Um servidor de coleção de músicas baseado na web e de código aberto - ru: Открытый веб-сервер для коллекции музыки и потоковой передачи - ko: 웹 기반 오픈 소스 음악 컬렉션 서버 및 스트리머 - architectures: - - amd64 - - arm/v6 - - arm/v7 - - arm64 diff --git a/navidrome/logo.png b/navidrome/logo.png deleted file mode 100644 index 7abd45d40..000000000 Binary files a/navidrome/logo.png and /dev/null differ diff --git a/neo4j/5.26.8/data.yml b/neo4j/5.26.8/data.yml deleted file mode 100644 index 8f7b81761..000000000 --- a/neo4j/5.26.8/data.yml +++ /dev/null @@ -1,34 +0,0 @@ -additionalProperties: - formFields: - - default: 7474 - envKey: PANEL_APP_PORT_HTTP - labelEn: Http Port - labelZh: http 端口 - label: - en: Http Port - ja: Http ポート - ms: Port Http - pt-br: Porta Http - ru: Http-порт - ko: Http 포트 - zh: http 端口 - zh-Hant: http 連接埠 - required: true - rule: paramPort - type: number - - default: 7687 - envKey: PANEL_APP_PORT_BOLT - labelEn: Bolt Port - labelZh: bolt 端口 - label: - en: Bolt Port - ja: Bolt ポート - ms: Port Bolt - pt-br: Porta Bolt - ru: Bolt-порт - ko: Bolt 포트 - zh: bolt 端口 - zh-Hant: bolt 連接埠 - required: true - rule: paramPort - type: number \ No newline at end of file diff --git a/neo4j/5.26.8/data/data/.gitkeep b/neo4j/5.26.8/data/data/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/neo4j/5.26.8/data/logs/.gitkeep b/neo4j/5.26.8/data/logs/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/neo4j/5.26.8/docker-compose.yml b/neo4j/5.26.8/docker-compose.yml deleted file mode 100644 index c550e83a7..000000000 --- a/neo4j/5.26.8/docker-compose.yml +++ /dev/null @@ -1,18 +0,0 @@ -services: - neo4j: - image: neo4j:5.26.8 - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_HTTP}:7474 - - ${PANEL_APP_PORT_BOLT}:7687 - volumes: - - ./data/data:/data - - ./data/logs:/logs - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/neo4j/5.26.8/scripts/init.sh b/neo4j/5.26.8/scripts/init.sh deleted file mode 100644 index 36ac55e5f..000000000 --- a/neo4j/5.26.8/scripts/init.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -chown -R 7474:7474 data \ No newline at end of file diff --git a/neo4j/README.md b/neo4j/README.md deleted file mode 100644 index 36a931dd9..000000000 --- a/neo4j/README.md +++ /dev/null @@ -1,46 +0,0 @@ -# 默认账户密码 - -``` -username:neo4j -password:neo4j -``` - -# Neo4j - -**Neo4j** 是世界领先的图数据库。它是一个高性能图形存储,具有成熟且强大的数据库所需的所有功能,例如友好的查询语言和 ACID 事务。程序员使用灵活的节点和关系网络结构而不是静态表进行工作,但可以享受企业级数据库的所有好处。对于许多应用程序来说,与关系数据库相比,Neo4j 提供了数量级的性能优势。 - -## 核心功能 - -### 1. 图形数据模型 - -- **节点(Nodes)**:图数据库的基本单元,表示实体。 -- **边(Relationships)**:连接节点的有向连接,表示实体间的关系。 -- **属性(Properties)**:节点和边可以附带的键值对,用于描述节点和边的特性。 - -### 2. Cypher 查询语言 - -- **声明性查询语言**:类似 SQL,但专为图形数据库设计。 -- **模式匹配**:基于图模式进行查询,简洁高效。 -- **读写操作**:支持复杂查询、插入、更新和删除操作。 - -### 3. ACID 事务支持 - -- **原子性(Atomicity)**:确保所有操作都成功,或者在失败时回滚。 -- **一致性(Consistency)**:数据库从一个一致状态转换到另一个一致状态。 -- **隔离性(Isolation)**:并发事务互不干扰。 -- **持久性(Durability)**:事务提交后,数据持久化保存。 - -### 4. 高性能和可扩展性 - -- **内存中图处理**:大部分操作在内存中完成,速度快。 -- **水平扩展**:支持分片和复制,处理大规模数据。 - -### 5. 可视化工具 - -- **Neo4j Browser**:内置的交互式可视化工具,方便查询和结果展示。 -- **Neo4j Bloom**:高级数据可视化和探索工具,适合商业用户。 - -### 6. 安全和访问控制 - -- **身份验证和授权**:基于角色的访问控制,确保数据安全。 -- **SSL/TLS 加密**:保护数据传输安全。 \ No newline at end of file diff --git a/neo4j/README_en.md b/neo4j/README_en.md deleted file mode 100644 index 3fa72fba6..000000000 --- a/neo4j/README_en.md +++ /dev/null @@ -1,37 +0,0 @@ -# Default Account Credentials -``` -username: neo4j -password: neo4j -``` - -# Neo4j -**Neo4j** is the world's leading graph database. It is a high-performance graph storage system with all the features required by a mature and powerful database, such as a user-friendly query language and ACID transactions. Developers can work with flexible node and relationship network structures instead of static tables while enjoying the benefits of enterprise-grade databases. For many applications, Neo4j offers orders-of-magnitude performance advantages over relational databases. - -## Core Features -### 1. Graph Data Model -- **Nodes**: The basic unit of a graph database, representing entities. -- **Relationships**: Directed connections between nodes, representing relationships between entities. -- **Properties**: Key-value pairs attached to nodes and relationships to describe their characteristics. - -### 2. Cypher Query Language -- **Declarative Query Language**: Similar to SQL but designed for graph databases. -- **Pattern Matching**: Query based on graph patterns, simple and efficient. -- **Read and Write Operations**: Supports complex queries, inserts, updates, and deletions. - -### 3. ACID Transaction Support -- **Atomicity**: Ensures all operations succeed or roll back on failure. -- **Consistency**: Transitions the database from one consistent state to another. -- **Isolation**: Prevents interference between concurrent transactions. -- **Durability**: Ensures data persistence after transaction commits. - -### 4. High Performance and Scalability -- **In-Memory Graph Processing**: Most operations are completed in memory for speed. -- **Horizontal Scalability**: Supports sharding and replication for large-scale data processing. - -### 5. Visualization Tools -- **Neo4j Browser**: Built-in interactive visualization tool for queries and results. -- **Neo4j Bloom**: Advanced data visualization and exploration tool for business users. - -### 6. Security and Access Control -- **Authentication and Authorization**: Role-based access control to ensure data security. -- **SSL/TLS Encryption**: Protects data transmission security. \ No newline at end of file diff --git a/neo4j/data.yml b/neo4j/data.yml deleted file mode 100644 index 5f68c0d4d..000000000 --- a/neo4j/data.yml +++ /dev/null @@ -1,32 +0,0 @@ -name: Neo4j -tags: - - 数据库 -title: 世界领先的图数据库 -description: 世界领先的图数据库 -additionalProperties: - key: neo4j - name: Neo4j - tags: - - Database - shortDescZh: 世界领先的图数据库 - shortDescEn: The world’s leading Graph Database - type: runtime - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://neo4j.com/ - github: https://github.com/neo4j/neo4j - document: https://neo4j.com/docs/ - description: - en: The world’s leading Graph Database - zh: 世界领先的图数据库 - zh-Hant: 世界領先的圖數據庫 - ja: 世界をリードするグラフデータベース - ms: Pangkalan Data Graf terkemuka di dunia - pt-br: O principal banco de dados de grafos do mundo - ru: Ведущая в мире графовая база данных - ko: 세계 최고의 그래프 데이터베이스 - memoryRequired: 2048 - architectures: - - amd64 - - arm64 diff --git a/neo4j/logo.png b/neo4j/logo.png deleted file mode 100644 index 5f3103197..000000000 Binary files a/neo4j/logo.png and /dev/null differ diff --git a/nextcloud/31.0.6/data.yml b/nextcloud/31.0.6/data.yml deleted file mode 100644 index 6aea6c3b0..000000000 --- a/nextcloud/31.0.6/data.yml +++ /dev/null @@ -1,35 +0,0 @@ -additionalProperties: - formFields: - - default: 40069 - edit: true - envKey: PANEL_APP_PORT_HTTPS - labelEn: HTTPS Port - labelZh: HTTPS 端口 - required: true - rule: paramPort - type: number - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh-Hant: 埠 - zh: 端口 - - default: Asia/Shanghai - edit: true - envKey: TIME_ZONE - labelEn: Time zone - labelZh: 时区 - required: true - type: text - label: - en: Time Zone - ja: タイムゾーン - ms: Zon Waktu - pt-br: Fuso Horário - ru: Часовой пояс - ko: 시간대 - zh-Hant: 時區 - zh: 时区 \ No newline at end of file diff --git a/nextcloud/31.0.6/docker-compose.yml b/nextcloud/31.0.6/docker-compose.yml deleted file mode 100644 index e548d251d..000000000 --- a/nextcloud/31.0.6/docker-compose.yml +++ /dev/null @@ -1,21 +0,0 @@ -services: - nextcloud: - image: linuxserver/nextcloud:31.0.6 - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTPS}:443" - volumes: - - "./data/config:/config" - - "./data/data:/data" - environment: - - PUID=1000 - - PGID=1000 - - TZ=${TIME_ZONE} - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/nextcloud/README.md b/nextcloud/README.md deleted file mode 100644 index bd3b91825..000000000 --- a/nextcloud/README.md +++ /dev/null @@ -1,29 +0,0 @@ -# Nextcloud - -Nextcloud 是一款开源的自托管云存储和协作平台,它提供了一系列功能,旨在帮助您管理和共享文件、日历、联系人、任务等,同时保护您的数据隐私。 - -## 主要功能: - -### 文件存储和同步 - -Nextcloud允许您轻松地上传、存储和同步文件。您可以访问您的文件,无论是在计算机、手机还是平板电脑上,都可以随时随地访问和共享它们。 - -### 日历和联系人 - -Nextcloud包括一个功能强大的日历和联系人应用程序,可以帮助您组织约会、任务和联系人信息。您可以与其他用户共享日历,并协同工作。 - -### 文件共享和协作 - -您可以轻松地与其他用户共享文件和文件夹,设置不同的权限级别,以控制对文件的访问权限。还可以协同编辑文档、制定计划等。 - -### 数据隐私和安全 - -Nextcloud非常注重数据隐私和安全性。它提供了端到端的加密、双因素认证、文件版本控制等功能,以确保您的数据受到最佳的保护。 - -### 扩展性和插件 - -Nextcloud具有丰富的插件生态系统,允许您根据自己的需求扩展功能。您可以添加各种应用程序和插件,以满足不同的用例需求。 - -### 自托管 - -您可以将Nextcloud部署在自己的服务器上,完全掌握您的数据。这意味着您不必依赖第三方云服务提供商,可以更好地控制您的数字生活。 \ No newline at end of file diff --git a/nextcloud/README_en.md b/nextcloud/README_en.md deleted file mode 100644 index a2ce19c5f..000000000 --- a/nextcloud/README_en.md +++ /dev/null @@ -1,29 +0,0 @@ -# Nextcloud - -Nextcloud is an open-source, self-hosted cloud storage and collaboration platform that provides a range of features designed to help you manage and share files, calendars, contacts, tasks, and more, while protecting your data privacy. - -## Main Features: - -### File Storage and Sync - -Nextcloud allows you to easily upload, store, and synchronize files. You can access your files anytime, anywhere, whether on a computer, phone, or tablet, and share them effortlessly. - -### Calendars and Contacts - -Nextcloud includes a powerful calendar and contacts application that helps you organize appointments, tasks, and contact information. You can share calendars with other users and collaborate efficiently. - -### File Sharing and Collaboration - -You can easily share files and folders with other users and set different permission levels to control access. Nextcloud also supports collaborative document editing and planning. - -### Privacy and Security - -Nextcloud places a strong emphasis on data privacy and security. It offers end-to-end encryption, two-factor authentication, file versioning, and more to ensure your data is well-protected. - -### Extensibility and Plugins - -Nextcloud has a rich ecosystem of plugins, allowing you to extend its functionality based on your needs. You can add various applications and plugins to meet different use-case requirements. - -### Self-Hosting - -You can deploy Nextcloud on your own server, giving you full control over your data. This means you don't need to rely on third-party cloud service providers, offering better control over your digital life. diff --git a/nextcloud/data.yml b/nextcloud/data.yml deleted file mode 100644 index 67777b661..000000000 --- a/nextcloud/data.yml +++ /dev/null @@ -1,32 +0,0 @@ -name: Nextcloud -tags: - - 云存储 -title: Nextcloud 服务器,所有数据的安全家园 -description: Nextcloud 服务器,所有数据的安全家园 -additionalProperties: - key: nextcloud - name: Nextcloud - tags: - - Storage - shortDescZh: Nextcloud 服务器,所有数据的安全家园 - shortDescEn: Nextcloud server, a safe home for all your data - description: - en: Nextcloud server, a safe home for all your data - ja: Nextcloud サーバー、あなたのすべてのデータの安全な保管場所 - ms: Pelayan Nextcloud, rumah yang selamat untuk semua data anda - pt-br: Servidor Nextcloud, um lar seguro para todos os seus dados - ru: Сервер Nextcloud, безопасное место для всех ваших данных - ko: Nextcloud 서버, 모든 데이터의 안전한 집 - zh-Hant: Nextcloud 伺服器,所有資料的安全之家 - zh: Nextcloud 服务器,所有数据的安全之家 - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://nextcloud.com/ - github: https://github.com/nextcloud/server - document: https://docs.nextcloud.com/ - memoryRequired: 1024 - architectures: - - amd64 - - arm64 diff --git a/nextcloud/logo.png b/nextcloud/logo.png deleted file mode 100644 index 8d8168842..000000000 Binary files a/nextcloud/logo.png and /dev/null differ diff --git a/nexus/3.81.1/data.yml b/nexus/3.81.1/data.yml deleted file mode 100755 index 9e4ff22a5..000000000 --- a/nexus/3.81.1/data.yml +++ /dev/null @@ -1,18 +0,0 @@ -additionalProperties: - formFields: - - default: 8081 - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh: 端口 - zh-Hant: 埠 - required: true - rule: paramPort - type: number diff --git a/nexus/3.81.1/data/.gitkeep b/nexus/3.81.1/data/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/nexus/3.81.1/docker-compose.yml b/nexus/3.81.1/docker-compose.yml deleted file mode 100644 index f75eb4e4a..000000000 --- a/nexus/3.81.1/docker-compose.yml +++ /dev/null @@ -1,18 +0,0 @@ -services: - nexus: - image: sonatype/nexus3:3.81.1 - restart: always - container_name: ${CONTAINER_NAME} - environment: - - TZ=Asia/Shanghai - ports: - - ${PANEL_APP_PORT_HTTP}:8081 - volumes: - - ./data:/nexus-data - networks: - - 1panel-network - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/nexus/3.81.1/scripts/init.sh b/nexus/3.81.1/scripts/init.sh deleted file mode 100644 index 669f11a03..000000000 --- a/nexus/3.81.1/scripts/init.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -chown -R 200:0 data \ No newline at end of file diff --git a/nexus/README.md b/nexus/README.md deleted file mode 100644 index b872b0f3b..000000000 --- a/nexus/README.md +++ /dev/null @@ -1,37 +0,0 @@ -# Nexus Repository - -Nexus Repository 是一个功能强大的软件仓库管理工具,用于支持软件开发和构建过程中的软件组件管理。 - -## 主要功能: - -### 存储和管理软件组件 - -Nexus Repository 可以存储和管理各种软件组件,如库文件、Jar包、Docker 镜像、NPM包、Maven构建等。这使得团队能够轻松地将这些组件集中存储并进行版本控制。 - -### 代理远程仓库 - -Nexus Repository 允许代理远程仓库,以便在本地缓存远程仓库中的组件。这提高了构建速度,同时减少了对外部仓库的依赖性,提高了可用性。 - -### 安全和权限管理 - -Nexus Repository 提供了灵活的权限和安全控制,允许管理员为不同的用户和团队分配访问权限。这有助于保护关键的软件组件免受未经授权的访问和操纵。 - -### 丰富的搜索和元数据 - -工具提供了强大的搜索功能,以帮助用户快速找到所需的组件。此外,它还提供了丰富的元数据,帮助开发人员更好地理解和评估组件。 - -### 构建和部署支持 - -Nexus Repository 可以与各种构建工具和持续集成系统(如Maven、Gradle、Jenkins等)集成,从而简化了构建和部署软件的过程。 - -### 定制化和扩展性 - -它具有高度可定制性和扩展性,可以根据特定的团队和项目需求进行配置。用户可以编写自定义插件以扩展其功能。 - -### 高可用性和可伸缩性 - -Nexus Repository 可以部署为高可用性集群,并支持横向扩展,以满足不断增长的存储和用户需求。 - -### 用户友好的界面 - -工具提供了直观的用户界面,使管理员和开发人员能够轻松地管理和访问软件组件。 \ No newline at end of file diff --git a/nexus/README_en.md b/nexus/README_en.md deleted file mode 100644 index b13d2dc5d..000000000 --- a/nexus/README_en.md +++ /dev/null @@ -1,34 +0,0 @@ -# Nexus Repository - -Nexus Repository is a powerful software repository management tool that supports software component management during software development and build processes. - -## Key Features: - -### Storing and Managing Software Components - -Nexus Repository can store and manage various software components, such as library files, JAR packages, Docker images, NPM packages, Maven builds, etc. This allows teams to easily centralize these components and manage versions. - -### Proxying Remote Repositories - -Nexus Repository allows proxying remote repositories to locally cache components from remote repositories. This improves build speed while reducing dependency on external repositories, enhancing availability. - -### Security and Access Control - -Nexus Repository provides flexible access control and security settings, allowing administrators to assign access permissions to different users and teams. This helps protect critical software components from unauthorized access and manipulation. - -### Rich Search and Metadata - -The tool offers powerful search capabilities to help users quickly find the components they need. Additionally, it provides rich metadata to help developers better understand and evaluate components. - -### Build and Deployment Support - -Nexus Repository can integrate with various build tools and continuous integration systems (such as Maven, Gradle, Jenkins, etc.), simplifying the process of building and deploying software. - -### Customizability and Extensibility - -It is highly customizable and extensible, allowing configuration based on specific team and project requirements. Users can write custom plugins to extend its functionality. - -### High Availability and Scalability - -Nexus Repository can be deployed as a high-availability cluster and supports horizontal scaling to meet - diff --git a/nexus/data.yml b/nexus/data.yml deleted file mode 100755 index 3ad85c92d..000000000 --- a/nexus/data.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: Nexus Repository -tags: - - DevOps -title: 开源的软件制品库 -description: 开源的软件制品库 -additionalProperties: - key: nexus - name: Nexus Repository - tags: - - DevOps - shortDescZh: 开源的软件制品库 - shortDescEn: An open source repository for build artifacts - type: website - crossVersionUpdate: false - limit: 1 - recommend: 0 - website: https://www.sonatype.com/products/nexus-repository - github: https://github.com/sonatype/docker-nexus3 - document: https://help.sonatype.com/repomanager3 - description: - en: An open source repository for build artifacts - zh: 开源的构建工件存储库 - zh-Hant: 開源的構建工件存儲庫 - ja: ビルドアーティファクトのためのオープンソースリポジトリ - ms: Repositori sumber terbuka untuk artifak binaan - pt-br: Um repositório de código aberto para artefatos de build - ru: Открытый репозиторий для артефактов сборки - ko: 빌드 아티팩트를 위한 오픈 소스 저장소 - memoryRequired: 1024 - architectures: - - amd64 diff --git a/nexus/logo.png b/nexus/logo.png deleted file mode 100644 index e40d6f802..000000000 Binary files a/nexus/logo.png and /dev/null differ diff --git a/nginx-proxy-manager/2.12.3/data.yml b/nginx-proxy-manager/2.12.3/data.yml deleted file mode 100644 index 32614f0e4..000000000 --- a/nginx-proxy-manager/2.12.3/data.yml +++ /dev/null @@ -1,53 +0,0 @@ -additionalProperties: - formFields: - - default: 30080 - edit: true - envKey: PANEL_APP_PORT_HTTP1 - labelEn: HTTP Port - labelZh: HTTP端口 - required: true - rule: paramPort - type: number - label: - en: HTTP port - ja: HTTP ポート - ms: Port HTTP - pt-br: Porta HTTP - ru: Порт HTTP - ko: HTTP 포트 - zh-Hant: HTTP 埠 - zh: HTTP 端口 - - default: 30081 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Console Port - labelZh: 控制台端口 - required: true - rule: paramPort - type: number - label: - en: Console port - ja: コンソールポート - ms: Port konsol - pt-br: Porta do console - ru: Порт консоли - ko: 콘솔 포트 - zh-Hant: 控制台埠 - zh: 控制台端口 - - default: 30443 - edit: true - envKey: PANEL_APP_PORT_HTTP2 - labelEn: HTTPS Port - labelZh: HTTPS端口 - required: true - rule: paramPort - type: number - label: - en: HTTPS port - ja: HTTPS ポート - ms: Port HTTPS - pt-br: Porta HTTPS - ru: Порт HTTPS - ko: HTTPS 포트 - zh-Hant: HTTPS 埠 - zh: HTTPS 端口 diff --git a/nginx-proxy-manager/2.12.3/docker-compose.yml b/nginx-proxy-manager/2.12.3/docker-compose.yml deleted file mode 100644 index 2bb0ba946..000000000 --- a/nginx-proxy-manager/2.12.3/docker-compose.yml +++ /dev/null @@ -1,19 +0,0 @@ -services: - nginxpm: - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTP1}:80" - - "${PANEL_APP_PORT_HTTP}:81" - - "${PANEL_APP_PORT_HTTP2}:443" - volumes: - - ./data/data:/data - - ./data/ssl:/etc/letsencrypt - image: jc21/nginx-proxy-manager:2.12.3 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/nginx-proxy-manager/README.md b/nginx-proxy-manager/README.md deleted file mode 100644 index 30a629e40..000000000 --- a/nginx-proxy-manager/README.md +++ /dev/null @@ -1,44 +0,0 @@ -## 账户密码 - -``` -Email: admin@example.com -Password: changeme -``` - -## Nginx Proxy Manager - -**Nginx Proxy Manager** 是一个功能强大的反向代理和Web服务器管理工具,它使您能够轻松地管理多个网站和应用程序的代理设置。 - -### 主要功能: - -#### Web界面管理 - -Nginx Proxy Manager提供了一个直观的Web界面,您可以通过该界面轻松管理您的代理设置和虚拟主机。无需深入了解Nginx配置文件的复杂性,您可以通过简单的图形界面完成所有操作。 - -#### 反向代理 - -通过Nginx Proxy Manager,您可以设置反向代理规则,将来自外部世界的请求路由到内部服务器或应用程序。这有助于隐藏内部服务器的细节,同时提供安全的外部访问。 - -#### SSL证书管理 - -该工具内置了SSL证书管理功能,您可以轻松为您的网站和应用程序添加SSL/TLS支持。这使您的网站更加安全,并提供HTTPS加密。 - -#### 自动DNS配置 - -Nginx Proxy Manager可以自动为您的虚拟主机配置DNS记录,无需手动操作。这简化了域名管理并提高了效率。 - -#### Let's Encrypt集成 - -与Let's Encrypt集成使您能够轻松为您的域名生成免费的SSL/TLS证书。这是保护网站数据的重要方式。 - -#### HTTP/HTTPS重定向 - -您可以轻松地配置HTTP到HTTPS的重定向,以确保所有的流量都是经过加密的。 - -#### WebSocket支持 - -Nginx Proxy Manager支持WebSocket协议,允许您代理WebSocket应用程序,如聊天应用或实时数据传输应用。 - -#### 访问控制和身份验证 - -您可以设置访问控制规则,限制特定IP地址或网络的访问。此外,还可以启用基本身份验证来保护您的应用程序。 \ No newline at end of file diff --git a/nginx-proxy-manager/README_en.md b/nginx-proxy-manager/README_en.md deleted file mode 100644 index ffdb2023c..000000000 --- a/nginx-proxy-manager/README_en.md +++ /dev/null @@ -1,44 +0,0 @@ -## Account Credentials - -``` -Email: admin@example.com -Password: changeme -``` - -## Nginx Proxy Manager - -**Nginx Proxy Manager** is a powerful reverse proxy and web server management tool that enables you to easily manage proxy settings for multiple websites and applications. - -### Main Features: - -#### Web Interface Management - -Nginx Proxy Manager provides an intuitive web interface that allows you to effortlessly manage your proxy settings and virtual hosts. Without delving into the complexities of Nginx configuration files, all operations can be completed through a simple graphical interface. - -#### Reverse Proxy - -With Nginx Proxy Manager, you can configure reverse proxy rules to route external requests to internal servers or applications. This helps conceal the details of internal servers while providing secure external access. - -#### SSL Certificate Management - -The tool includes built-in SSL certificate management, making it easy to add SSL/TLS support for your websites and applications. This enhances website security and enables HTTPS encryption. - -#### Automatic DNS Configuration - -Nginx Proxy Manager can automatically configure DNS records for your virtual hosts, eliminating the need for manual intervention. This simplifies domain management and improves efficiency. - -#### Let's Encrypt Integration - -Integration with Let's Encrypt allows you to easily generate free SSL/TLS certificates for your domains, providing an essential layer of protection for website data. - -#### HTTP/HTTPS Redirection - -You can configure HTTP to HTTPS redirection effortlessly to ensure all traffic is encrypted. - -#### WebSocket Support - -Nginx Proxy Manager supports the WebSocket protocol, enabling you to proxy WebSocket applications such as chat apps or real-time data transmission services. - -#### Access Control and Authentication - -Set access control rules to restrict access based on specific IP addresses or networks. Additionally, basic authentication can be enabled to secure your applications. \ No newline at end of file diff --git a/nginx-proxy-manager/data.yml b/nginx-proxy-manager/data.yml deleted file mode 100644 index aab510c71..000000000 --- a/nginx-proxy-manager/data.yml +++ /dev/null @@ -1,32 +0,0 @@ -name: Nginx Proxy Manager -tags: - - Web 服务器 -title: Nginx 可视化管理工具 -description: Nginx 可视化管理工具 -additionalProperties: - key: nginx-proxy-manager - name: Nginx Proxy Manager - tags: - - Server - shortDescZh: Nginx 可视化管理工具 - shortDescEn: Nginx visual management tool - description: - en: Nginx visual management tool - ja: Nginx の視覚的管理ツール - ms: Alat pengurusan visual Nginx - pt-br: Ferramenta de gerenciamento visual do Nginx - ru: Визуальный инструмент управления Nginx - ko: Nginx 시각적 관리 도구 - zh-Hant: Nginx 視覺化管理工具 - zh: Nginx 可视化管理工具 - type: website - crossVersionUpdate: true - limit: 0 - recommend: 90 - website: https://nginxproxymanager.com/ - github: https://github.com/NginxProxyManager/nginx-proxy-manager - document: https://nginxproxymanager.com/guide/ - architectures: - - amd64 - - arm64 - - arm/v7 diff --git a/nginx-proxy-manager/logo.png b/nginx-proxy-manager/logo.png deleted file mode 100644 index 31ffc2666..000000000 Binary files a/nginx-proxy-manager/logo.png and /dev/null differ diff --git a/nocobase/1.7.17/data.yml b/nocobase/1.7.17/data.yml deleted file mode 100644 index 1f83cd0a6..000000000 --- a/nocobase/1.7.17/data.yml +++ /dev/null @@ -1,128 +0,0 @@ -additionalProperties: - formFields: - - default: 8080 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh: 端口 - zh-Hant: 埠 - required: true - rule: paramPort - type: number - - child: - default: "" - envKey: PANEL_DB_HOST - required: true - type: service - default: mysql - envKey: PANEL_DB_TYPE - labelEn: Database Service - labelZh: 数据库服务 - label: - en: Database Service - ja: データベースサービス - ms: Perkhidmatan Pangkalan Data - pt-br: Serviço de Banco de Dados - ru: Сервис базы данных - ko: 데이터베이스 서비스 - zh: 数据库服务 - zh-Hant: 數據庫服務 - required: true - type: apps - values: - - label: MySQL - value: mysql - - label: MariaDB - value: mariadb - - label: PostgreSQL - value: postgres - - default: nocobase - envKey: PANEL_DB_NAME - labelEn: Database - labelZh: 数据库名 - label: - en: Database - ja: データベース - ms: Pangkalan Data - pt-br: Banco de Dados - ru: База данных - ko: 데이터베이스 - zh: 数据库名 - zh-Hant: 數據庫名 - random: true - required: true - rule: paramCommon - type: text - - default: nocobase - envKey: PANEL_DB_USER - labelEn: User - labelZh: 数据库用户 - label: - en: User - ja: ユーザー - ms: Pengguna - pt-br: Usuário - ru: Пользователь - ko: 사용자 - zh: 数据库用户 - zh-Hant: 數據庫用戶 - random: true - required: true - rule: paramCommon - type: text - - default: nocobase - envKey: PANEL_DB_USER_PASSWORD - labelEn: Password - labelZh: 数据库用户密码 - label: - en: Password - ja: パスワード - ms: Kata laluan - pt-br: Senha - ru: Пароль - ko: 비밀번호 - zh: 数据库用户密码 - zh-Hant: 數據庫用戶密碼 - random: true - required: true - type: password - - default: "your-secret-key" - edit: true - envKey: APP_KEY - labelEn: APP Secret Key - labelZh: 应用密钥 - label: - en: APP Secret Key - ja: アプリシークレットキー - ms: Kunci Rahsia APP - pt-br: Chave Secreta do APP - ru: Секретный ключ APP - ko: APP 비밀 키 - zh: 应用密钥 - zh-Hant: 應用密鑰 - required: true - type: text - - default: Asia/Shanghai - edit: true - envKey: TIME_ZONE - labelEn: Time zone - labelZh: 时区 - label: - en: Time zone - ja: タイムゾーン - ms: Zon masa - pt-br: Fuso horário - ru: Часовой пояс - ko: 시간대 - zh: 时区 - zh-Hant: 時區 - required: true - type: text diff --git a/nocobase/1.7.17/docker-compose.yml b/nocobase/1.7.17/docker-compose.yml deleted file mode 100644 index c5236e383..000000000 --- a/nocobase/1.7.17/docker-compose.yml +++ /dev/null @@ -1,26 +0,0 @@ -services: - nocobase: - image: nocobase/nocobase:1.7.17 - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_HTTP}:80 - environment: - - APP_KEY=${APP_KEY} - - DB_DIALECT=${PANEL_DB_TYPE} - - DB_HOST=${PANEL_DB_HOST} - - DB_PORT=${PANEL_DB_PORT} - - DB_DATABASE=${PANEL_DB_NAME} - - DB_USER=${PANEL_DB_USER} - - DB_PASSWORD=${PANEL_DB_USER_PASSWORD} - - DB_UNDERSCORED=true - - TZ=${TIME_ZONE} - volumes: - - ./data:/app/nocobase/storage - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/nocobase/README.md b/nocobase/README.md deleted file mode 100644 index 4613adffe..000000000 --- a/nocobase/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# NocoBase - -**NocoBase** 是一个极易扩展的开源无代码开发平台。 不必投入几年时间、数百万资金研发,花几分钟时间部署 NocoBase,马上拥有一个私有、可控、极易扩展的无代码开发平台。 - -## 与众不同之处 - -### 1. 数据模型驱动 - -多数以表单、表格或者流程驱动的无代码产品都是在使用界面上直接创建数据结构,比如 Airtable 在表格里新增一列就是新增一个字段。这样的好处是使用简单,不足是功能和灵活性受限,难以满足较复杂场景的需求。 - -NocoBase 采用数据结构与使用界面分离的设计思路,可以为数据表创建任意数量、任意形态的区块(数据视图),每个区块里可以定义不同的样式、文案、操作。这样既兼顾了无代码的简单操作,又具备了原生开发的灵活性。 - -### 2. 所见即所得 - -NocoBase 可以开发复杂和有特色的业务系统,但这并不意味着需要复杂和专业的操作。只需一次点击,就可以在使用界面上显示出配置选项,具备系统配置权限的管理员可以用所见即所得的操作方式,直接配置用户的使用界面。 - -### 3. 一切皆插件 - -NocoBase 采用插件化架构,所有新功能都可以通过开发和安装插件来实现,扩展功能就像在手机上安装 APP 一样简单。 \ No newline at end of file diff --git a/nocobase/README_en.md b/nocobase/README_en.md deleted file mode 100644 index 5ae296e8d..000000000 --- a/nocobase/README_en.md +++ /dev/null @@ -1,12 +0,0 @@ -# NocoBase -**NocoBase** is an extremely extensible open-source no-code development platform. Deploy NocoBase in minutes to have a private, controllable, and highly extensible no-code development platform without years of development or millions in funding. - -## Unique Features -### 1. Data Model Driven -Unlike other no-code products that directly create data structures in the user interface, NocoBase separates data structure from the user interface. This allows for the creation of unlimited, flexible data blocks (data views) for each table, with customizable styles, documents, and operations. It combines the simplicity of no-code with the flexibility of native development. - -### 2. What You See Is What You Get -NocoBase enables the development of complex and unique business systems without requiring complex operations. With a single click, administrators can configure user interfaces directly in the system, providing a WYSIWYG experience. - -### 3. Everything is a Plugin -NocoBase uses a plugin-based architecture. All new features can be implemented through plugin development and installation, making feature expansion as simple as installing an app on a smartphone. \ No newline at end of file diff --git a/nocobase/data.yml b/nocobase/data.yml deleted file mode 100755 index db3bc938c..000000000 --- a/nocobase/data.yml +++ /dev/null @@ -1,32 +0,0 @@ -name: NocoBase -tags: - - 开发工具 -title: 可扩展性优先的开源无代码开发平台 -description: 可扩展性优先的开源无代码开发平台 -additionalProperties: - key: nocobase - name: NocoBase - tags: - - DevTool - shortDescZh: 可扩展性优先的开源无代码开发平台 - shortDescEn: A scalability-first, open-source no-code development platform - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://www.nocobase.com/ - github: https://github.com/nocobase/nocobase/ - document: https://docs.nocobase.com/ - description: - en: A scalability-first, open-source no-code development platform - zh: 可扩展性优先的开源无代码开发平台 - zh-Hant: 可擴展性優先的開源無代碼開發平台 - ja: スケーラビリティを最優先にしたオープンソースのノーコード開発プラットフォーム - ms: Platform pembangunan tanpa kod sumber terbuka yang mengutamakan kebolehskalaan - pt-br: Uma plataforma de desenvolvimento sem código de código aberto com prioridade na escalabilidade - ru: Открытая платформа для разработки без кода с приоритетом масштабируемости - ko: 확장성을 우선으로 하는 오픈 소스 노코드 개발 플랫폼 - memoryRequired: 2048 - architectures: - - amd64 - - arm64 diff --git a/nocobase/logo.png b/nocobase/logo.png deleted file mode 100644 index ddba45802..000000000 Binary files a/nocobase/logo.png and /dev/null differ diff --git a/nocodb/0.263.8/data.yml b/nocodb/0.263.8/data.yml deleted file mode 100644 index ea7635d80..000000000 --- a/nocodb/0.263.8/data.yml +++ /dev/null @@ -1,96 +0,0 @@ -additionalProperties: - formFields: - - child: - default: "" - envKey: PANEL_DB_HOST - required: true - type: service - default: mysql - edit: true - envKey: PANEL_DB_TYPE - labelZh: 数据库 服务 - labelEn: Database Service - label: - en: Database Service - ja: データベースサービス - ms: Perkhidmatan Pangkalan Data - pt-br: Serviço de Banco de Dados - ru: Сервис базы данных - ko: 데이터베이스 서비스 - zh: 数据库 服务 - zh-Hant: 數據庫 服務 - required: true - type: apps - values: - - label: MySQL - value: mysql - - label: PostgreSQL - value: postgresql - - label: MariaDB - value: mariadb - - default: nocodb - envKey: PANEL_DB_NAME - labelEn: Database - labelZh: 数据库名 - label: - en: Database - ja: データベース - ms: Pangkalan Data - pt-br: Banco de Dados - ru: База данных - ko: 데이터베이스 - zh: 数据库名 - zh-Hant: 數據庫名 - random: true - required: true - rule: paramCommon - type: text - - default: nocodb - envKey: PANEL_DB_USER - labelEn: User - labelZh: 数据库用户 - label: - en: User - ja: ユーザー - ms: Pengguna - pt-br: Usuário - ru: Пользователь - ko: 사용자 - zh: 数据库用户 - zh-Hant: 數據庫用戶 - random: true - required: true - rule: paramCommon - type: text - - default: nocodb - envKey: PANEL_DB_USER_PASSWORD - labelEn: Password - labelZh: 数据库用户密码 - label: - en: Password - ja: パスワード - ms: Kata laluan - pt-br: Senha - ru: Пароль - ko: 비밀번호 - zh: 数据库用户密码 - zh-Hant: 數據庫用戶密碼 - random: true - required: true - type: password - - default: 8080 - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh: 端口 - zh-Hant: 埠 - required: true - rule: paramPort - type: number \ No newline at end of file diff --git a/nocodb/0.263.8/docker-compose.yml b/nocodb/0.263.8/docker-compose.yml deleted file mode 100644 index 3a19d4540..000000000 --- a/nocodb/0.263.8/docker-compose.yml +++ /dev/null @@ -1,18 +0,0 @@ -services: - nocodb: - image: nocodb/nocodb:0.263.8 - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_HTTP}:8080 - environment: - NC_DB: "${PANEL_DB_TYPE}://${PANEL_DB_HOST}:${PANEL_DB_PORT}?u=${PANEL_DB_USER}&p=${PANEL_DB_USER_PASSWORD}&d=${PANEL_DB_NAME}" - volumes: - - ./data:/usr/app/data - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/nocodb/0.263.8/scripts/init.sh b/nocodb/0.263.8/scripts/init.sh deleted file mode 100644 index 7c600aa84..000000000 --- a/nocodb/0.263.8/scripts/init.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/bash - -ENV_FILE=".env" - -if [ -f "$ENV_FILE" ]; then - PANEL_DB_TYPE=$(grep '^PANEL_DB_TYPE=' "$ENV_FILE" | cut -d '=' -f 2 | tr -d '"') - - if [ "$PANEL_DB_TYPE" == "postgresql" ]; then - NEW_DB_TYPE="pg" - elif [ "$PANEL_DB_TYPE" == "mysql" ] || [ "$PANEL_DB_TYPE" == "mariadb" ]; then - NEW_DB_TYPE="mysql2" - else - echo "Unsupported PANEL_DB_TYPE value: $PANEL_DB_TYPE" - exit 1 - fi - - sed -i "s/^PANEL_DB_TYPE=.*/PANEL_DB_TYPE=\"$NEW_DB_TYPE\"/" "$ENV_FILE" - -else - echo ".env file not found!" - exit 1 -fi \ No newline at end of file diff --git a/nocodb/README.md b/nocodb/README.md deleted file mode 100644 index b6ee34047..000000000 --- a/nocodb/README.md +++ /dev/null @@ -1,15 +0,0 @@ -# NocoDB - -**NocoDB** 是一个开源的无代码(No-Code)数据库平台,它使得用户能够通过图形化界面创建、管理和操作数据库,而无需编写代码。NocoDB 旨在简化数据管理过程,提供一个可视化的用户界面来处理数据库中的数据,支持与各种数据库系统的集成。 - -## 主要功能: - -- **无代码数据库管理**:提供直观的图形化界面,用户可以通过拖放操作来管理数据库表和字段,无需编写 SQL 语句或进行复杂的设置。 -- **多种数据库支持**:支持多种主流数据库系统,包括 MySQL、PostgreSQL、SQL Server 和 SQLite,使用户能够轻松连接和管理各种数据源。 -- **表格视图和数据操作**:允许用户以表格视图查看和编辑数据,提供类似电子表格的操作体验,方便数据的查看、修改和过滤。 -- **自定义视图和过滤器**:用户可以创建自定义视图,应用过滤器和排序选项,以满足特定的数据查看和操作需求。 -- **表单和视图设计**:支持创建自定义表单和视图,用户可以根据需要设计数据输入表单和数据展示界面。 -- **API 接口生成**:自动生成 RESTful API 接口,使得用户能够通过 API 访问和操作数据库中的数据,方便与其他应用和系统集成。 -- **用户权限管理**:提供灵活的权限管理功能,允许管理员为不同的用户和用户组设置访问权限和操作权限,确保数据安全性。 -- **自动化和集成**:支持与第三方服务和应用的集成,提供自动化操作和工作流的功能,帮助用户实现数据的自动化处理和管理。 -- **审计和日志记录**:记录数据操作的日志,提供审计功能,帮助用户跟踪和审查数据的变更历史和操作记录。 \ No newline at end of file diff --git a/nocodb/README_en.md b/nocodb/README_en.md deleted file mode 100644 index 45dc23f8c..000000000 --- a/nocodb/README_en.md +++ /dev/null @@ -1,16 +0,0 @@ -# NocoDB - -**NocoDB** is an open source no-code database platform that allows users to create, manage, and operate databases through a graphical interface without writing code. NocoDB aims to simplify data management processes by providing a visual user interface to handle data in databases, supporting integration with various database systems. - -## Core Features: - -- **No-code Database Management**: Offers an intuitive graphical interface where users can manage database tables and fields through drag-and-drop operations, without needing to write SQL statements or perform complex configurations. -- **Multiple Database Support**: Supports major database systems including MySQL, PostgreSQL, SQL Server, and SQLite, enabling users to easily connect and manage various data sources. -- **Table Views and Data Operations**: Allows users to view and edit data in table format, providing a spreadsheet-like experience for easy data viewing, modification, and filtering. -- **Custom Views and Filters**: Users can create custom views, apply filters, and set sorting options to meet specific data viewing and manipulation needs. -- **Form and View Design**: Supports the creation of custom forms and views, allowing users to design data input forms and data display interfaces as needed. -- **API Generation**: Automatically generates RESTful APIs, enabling users to access and manipulate database data through APIs, facilitating integration with other applications and systems. -- **User Permission Management**: Provides flexible permission management features, allowing administrators to set access and operation permissions for different users or user groups, ensuring data security. -- **Automation and Integration**: Supports integration with third-party services and applications, offering automation and workflow functionalities to help users automate data processing and management. -- **Audit and Logging**: Logs data operations and provides auditing capabilities, helping users track and review data change histories and operation records. - diff --git a/nocodb/data.yml b/nocodb/data.yml deleted file mode 100644 index 01bac30e3..000000000 --- a/nocodb/data.yml +++ /dev/null @@ -1,33 +0,0 @@ -name: NocoDB -tags: - - 数据库 -title: 无代码数据库平台 -description: 无代码数据库平台 -additionalProperties: - key: nocodb - name: NocoDB - tags: - - Database - shortDescZh: 无代码数据库平台 - shortDescEn: Code-free database platform - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://nocodb.com/ - github: https://github.com/nocodb/nocodb/ - document: https://docs.nocodb.com/ - description: - en: Code-free database platform - zh: 无代码数据库平台 - zh-Hant: 無代碼數據庫平台 - ja: コード不要のデータベースプラットフォーム - ms: Platform pangkalan data tanpa kod - pt-br: Plataforma de banco de dados sem código - ru: Платформа базы данных без кода - ko: 코드 없는 데이터베이스 플랫폼 - memoryRequired: 1024 - architectures: - - amd64 - - arm64 - - arm/v7 diff --git a/nocodb/logo.png b/nocodb/logo.png deleted file mode 100644 index 63195ff2f..000000000 Binary files a/nocodb/logo.png and /dev/null differ diff --git a/node-exporter/1.9.1/data.yml b/node-exporter/1.9.1/data.yml deleted file mode 100644 index 129e7d57c..000000000 --- a/node-exporter/1.9.1/data.yml +++ /dev/null @@ -1,19 +0,0 @@ -additionalProperties: - formFields: - - default: 9100 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh: 端口 - zh-Hant: 埠 - required: true - rule: paramPort - type: number diff --git a/node-exporter/1.9.1/docker-compose.yml b/node-exporter/1.9.1/docker-compose.yml deleted file mode 100644 index e357d2c2f..000000000 --- a/node-exporter/1.9.1/docker-compose.yml +++ /dev/null @@ -1,19 +0,0 @@ -services: - node_exporter: - image: prom/node-exporter:v1.9.1 - container_name: ${CONTAINER_NAME} - restart: unless-stopped - command: - - '--path.rootfs=/host' - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_HTTP}:9100 - pid: host - volumes: - - '/:/host:ro,rslave' - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/node-exporter/README.md b/node-exporter/README.md deleted file mode 100644 index 6b178e573..000000000 --- a/node-exporter/README.md +++ /dev/null @@ -1,10 +0,0 @@ -# Node Exporter - -**Node Exporter** 是一款用于收集系统级性能指标的导出器,专为 Prometheus 设计,支持从各类操作系统(如 Linux、Windows)中抓取硬件资源的使用情况。 - -## 主要功能: - -- **CPU 使用率**:包括各核的使用情况和负载。 -- **内存使用情况**:包括总内存、可用内存、缓存、交换区等信息。 -- **磁盘使用情况**:包括各个挂载点的使用率、I/O 速率。 -- **网络流量**:监控网络接口的流入和流出流量、错误包等。 diff --git a/node-exporter/README_en.md b/node-exporter/README_en.md deleted file mode 100644 index ee89a9d72..000000000 --- a/node-exporter/README_en.md +++ /dev/null @@ -1,11 +0,0 @@ -# Node Exporter - -**Node Exporter** is a system metrics exporter designed for Prometheus, supporting the collection of hardware resource usage from various operating systems such as Linux and Windows. - -## Key Features: - -- **CPU Usage**: Includes usage and load for each core. -- **Memory Usage**: Includes total memory, available memory, cache, swap, and more. -- **Disk Usage**: Includes usage and I/O rates for each mounted point. -- **Network Traffic**: Monitors inbound and outbound traffic, error packets, and more for network interfaces. - diff --git a/node-exporter/data.yml b/node-exporter/data.yml deleted file mode 100644 index 1d76a04b5..000000000 --- a/node-exporter/data.yml +++ /dev/null @@ -1,34 +0,0 @@ -name: Node Exporter -tags: - - 实用工具 -title: 服务器指标导出器 -description: 服务器指标导出器 -additionalProperties: - key: node-exporter - name: Node Exporter - tags: - - Tool - shortDescZh: 服务器指标导出器 - shortDescEn: Exporter for machine metrics - type: tool - crossVersionUpdate: false - limit: 1 - recommend: 0 - website: https://prometheus.io/ - github: https://github.com/prometheus/node_exporter/ - document: https://prometheus.io/docs/introduction/overview/ - description: - en: Exporter for machine metrics - zh: 服务器指标导出器 - zh-Hant: 伺服器指標導出器 - ja: マシンメトリクスのエクスポーター - ms: Eksportir metrik mesin - pt-br: Exportador de métricas de máquina - ru: Экспортер метрик машины - ko: 머신 메트릭 내보내기 도구 - architectures: - - amd64 - - arm/v7 - - arm64 - - ppc64le - - s390x \ No newline at end of file diff --git a/node-exporter/logo.png b/node-exporter/logo.png deleted file mode 100644 index a3a960138..000000000 Binary files a/node-exporter/logo.png and /dev/null differ diff --git a/node-red/4.0.9/data.yml b/node-red/4.0.9/data.yml deleted file mode 100644 index ee37a9356..000000000 --- a/node-red/4.0.9/data.yml +++ /dev/null @@ -1,19 +0,0 @@ -additionalProperties: - formFields: - - default: "21880" - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh: 端口 - zh-Hant: 埠 - required: true - rule: paramPort - type: number diff --git a/node-red/4.0.9/docker-compose.yml b/node-red/4.0.9/docker-compose.yml deleted file mode 100644 index 971a534e0..000000000 --- a/node-red/4.0.9/docker-compose.yml +++ /dev/null @@ -1,19 +0,0 @@ -services: - node-red: - image: nodered/node-red:4.0.9 - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - user: root - ports: - - ${PANEL_APP_PORT_HTTP}:1880 - environment: - - TZ=Asia/Shanghai - volumes: - - ./data:/data - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/node-red/README.md b/node-red/README.md deleted file mode 100644 index 338351bdd..000000000 --- a/node-red/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Node-RED - -**Node-RED** Node-RED 是一种编程工具,用于以新颖有趣的方式将硬件设备、API 和在线服务连接在一起。 \ No newline at end of file diff --git a/node-red/README_en.md b/node-red/README_en.md deleted file mode 100644 index 25f58a2ee..000000000 --- a/node-red/README_en.md +++ /dev/null @@ -1,2 +0,0 @@ -# Node-RED -**Node-RED** is a programming tool designed to connect hardware devices, APIs, and online services in innovative and engaging ways. \ No newline at end of file diff --git a/node-red/data.yml b/node-red/data.yml deleted file mode 100644 index ce8fe607b..000000000 --- a/node-red/data.yml +++ /dev/null @@ -1,32 +0,0 @@ -name: Node-RED -tags: - - 实用工具 -title: 用于事件驱动应用的低代码编程 -description: 用于事件驱动应用的低代码编程 -additionalProperties: - key: node-red - name: Node-RED - tags: - - Tool - shortDescZh: 用于事件驱动应用的低代码编程 - shortDescEn: Low-code programming for event-driven applications - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://nodered.org/ - github: https://github.com/node-red/node-red - document: https://nodered.org/docs/ - description: - en: Low-code programming for event-driven applications - zh: 用于事件驱动应用的低代码编程 - zh-Hant: 用於事件驅動應用的低代碼編程 - ja: イベント駆動型アプリケーションのためのローコードプログラミング - ms: Pengaturcaraan kod rendah untuk aplikasi yang didorong oleh acara - pt-br: Programação de baixo código para aplicativos orientados a eventos - ru: Программирование с низким уровнем кода для приложений, управляемых событиями - ko: 이벤트 기반 애플리케이션을 위한 로우코드 프로그래밍 - architectures: - - amd64 - - arm/v7 - - arm64 diff --git a/node-red/logo.png b/node-red/logo.png deleted file mode 100755 index 363fea982..000000000 Binary files a/node-red/logo.png and /dev/null differ diff --git a/node/12.22.12/data.yml b/node/12.22.12/data.yml deleted file mode 100644 index fcc6ed694..000000000 --- a/node/12.22.12/data.yml +++ /dev/null @@ -1 +0,0 @@ -additionalProperties: \ No newline at end of file diff --git a/node/12.22.12/docker-compose.yml b/node/12.22.12/docker-compose.yml deleted file mode 100644 index ee01eacc6..000000000 --- a/node/12.22.12/docker-compose.yml +++ /dev/null @@ -1,20 +0,0 @@ -services: - node: - image: node:${NODE_VERSION} - container_name: ${CONTAINER_NAME} - working_dir: /app - volumes: - - ${CODE_DIR}:/app - - ./run.sh:/run.sh - - ./.env:/.env - command: bash /run.sh - networks: - - 1panel-network - ports: - - ${HOST_IP}:${PANEL_APP_PORT_HTTP}:${APP_PORT} - restart: on-failure:5 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/node/12.22.12/run.sh b/node/12.22.12/run.sh deleted file mode 100644 index 72ae7b16f..000000000 --- a/node/12.22.12/run.sh +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/bash - -source /.env - -if [[ "$PACKAGE_MANAGER" == "npm" ]]; then - npm config set registry $CONTAINER_PACKAGE_URL -elif [[ "$PACKAGE_MANAGER" == "yarn" ]]; then - yarn config set registry $CONTAINER_PACKAGE_URL -fi - -if [[ "$RUN_INSTALL" -eq "1" ]]; then - if [[ "$PACKAGE_MANAGER" == "npm" ]]; then - npm install - elif [[ "$PACKAGE_MANAGER" == "yarn" ]]; then - yarn install - else - echo "未知的 PACKAGE_MANAGER: $PACKAGE_MANAGER" - exit 1 - fi -fi - - -if [[ "$CUSTOM_SCRIPT" -eq "1" ]]; then - eval $EXEC_SCRIPT -else - if [[ "$PACKAGE_MANAGER" == "npm" ]]; then - npm run $EXEC_SCRIPT - elif [[ "$PACKAGE_MANAGER" == "yarn" ]]; then - yarn run $EXEC_SCRIPT - fi -fi - - - - diff --git a/node/14.21.3/data.yml b/node/14.21.3/data.yml deleted file mode 100644 index fcc6ed694..000000000 --- a/node/14.21.3/data.yml +++ /dev/null @@ -1 +0,0 @@ -additionalProperties: \ No newline at end of file diff --git a/node/14.21.3/docker-compose.yml b/node/14.21.3/docker-compose.yml deleted file mode 100644 index ee01eacc6..000000000 --- a/node/14.21.3/docker-compose.yml +++ /dev/null @@ -1,20 +0,0 @@ -services: - node: - image: node:${NODE_VERSION} - container_name: ${CONTAINER_NAME} - working_dir: /app - volumes: - - ${CODE_DIR}:/app - - ./run.sh:/run.sh - - ./.env:/.env - command: bash /run.sh - networks: - - 1panel-network - ports: - - ${HOST_IP}:${PANEL_APP_PORT_HTTP}:${APP_PORT} - restart: on-failure:5 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/node/14.21.3/run.sh b/node/14.21.3/run.sh deleted file mode 100644 index 3187406d3..000000000 --- a/node/14.21.3/run.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/bash - -source /.env - -if [[ "$PACKAGE_MANAGER" == "npm" ]]; then - npm config set registry $CONTAINER_PACKAGE_URL -elif [[ "$PACKAGE_MANAGER" == "yarn" ]]; then - yarn config set registry $CONTAINER_PACKAGE_URL -fi - -if [[ "$RUN_INSTALL" -eq "1" ]]; then - if [[ "$PACKAGE_MANAGER" == "npm" ]]; then - npm install - elif [[ "$PACKAGE_MANAGER" == "yarn" ]]; then - yarn install - else - echo "未知的 PACKAGE_MANAGER: $PACKAGE_MANAGER" - exit 1 - fi -fi - - -if [[ "$PACKAGE_MANAGER" == "npm" ]]; then - npm run $EXEC_SCRIPT -elif [[ "$PACKAGE_MANAGER" == "yarn" ]]; then - yarn run $EXEC_SCRIPT -fi diff --git a/node/16.20.2/data.yml b/node/16.20.2/data.yml deleted file mode 100644 index fcc6ed694..000000000 --- a/node/16.20.2/data.yml +++ /dev/null @@ -1 +0,0 @@ -additionalProperties: \ No newline at end of file diff --git a/node/16.20.2/docker-compose.yml b/node/16.20.2/docker-compose.yml deleted file mode 100644 index ee01eacc6..000000000 --- a/node/16.20.2/docker-compose.yml +++ /dev/null @@ -1,20 +0,0 @@ -services: - node: - image: node:${NODE_VERSION} - container_name: ${CONTAINER_NAME} - working_dir: /app - volumes: - - ${CODE_DIR}:/app - - ./run.sh:/run.sh - - ./.env:/.env - command: bash /run.sh - networks: - - 1panel-network - ports: - - ${HOST_IP}:${PANEL_APP_PORT_HTTP}:${APP_PORT} - restart: on-failure:5 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/node/16.20.2/run.sh b/node/16.20.2/run.sh deleted file mode 100644 index 3187406d3..000000000 --- a/node/16.20.2/run.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/bash - -source /.env - -if [[ "$PACKAGE_MANAGER" == "npm" ]]; then - npm config set registry $CONTAINER_PACKAGE_URL -elif [[ "$PACKAGE_MANAGER" == "yarn" ]]; then - yarn config set registry $CONTAINER_PACKAGE_URL -fi - -if [[ "$RUN_INSTALL" -eq "1" ]]; then - if [[ "$PACKAGE_MANAGER" == "npm" ]]; then - npm install - elif [[ "$PACKAGE_MANAGER" == "yarn" ]]; then - yarn install - else - echo "未知的 PACKAGE_MANAGER: $PACKAGE_MANAGER" - exit 1 - fi -fi - - -if [[ "$PACKAGE_MANAGER" == "npm" ]]; then - npm run $EXEC_SCRIPT -elif [[ "$PACKAGE_MANAGER" == "yarn" ]]; then - yarn run $EXEC_SCRIPT -fi diff --git a/node/18.20.3/data.yml b/node/18.20.3/data.yml deleted file mode 100644 index fcc6ed694..000000000 --- a/node/18.20.3/data.yml +++ /dev/null @@ -1 +0,0 @@ -additionalProperties: \ No newline at end of file diff --git a/node/18.20.3/docker-compose.yml b/node/18.20.3/docker-compose.yml deleted file mode 100644 index ae57f6418..000000000 --- a/node/18.20.3/docker-compose.yml +++ /dev/null @@ -1,20 +0,0 @@ -services: - node: - image: 1panel/node:${NODE_VERSION} - container_name: ${CONTAINER_NAME} - working_dir: /app - volumes: - - ${CODE_DIR}:/app - - ./run.sh:/run.sh - - ./.env:/.env - command: bash /run.sh - networks: - - 1panel-network - ports: - - ${HOST_IP}:${PANEL_APP_PORT_HTTP}:${APP_PORT} - restart: on-failure:5 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/node/18.20.3/run.sh b/node/18.20.3/run.sh deleted file mode 100644 index 2726722ae..000000000 --- a/node/18.20.3/run.sh +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/bash - -source /.env - -if [[ "$PACKAGE_MANAGER" == "npm" ]]; then - npm config set registry $CONTAINER_PACKAGE_URL -elif [[ "$PACKAGE_MANAGER" == "yarn" ]]; then - yarn config set registry $CONTAINER_PACKAGE_URL -elif [[ "$PACKAGE_MANAGER" == "pnpm" ]]; then - pnpm config set registry $CONTAINER_PACKAGE_URL -fi - -if [[ "$RUN_INSTALL" -eq "1" ]]; then - if [[ "$PACKAGE_MANAGER" == "npm" ]]; then - npm install - elif [[ "$PACKAGE_MANAGER" == "yarn" ]]; then - yarn install - elif [[ "$PACKAGE_MANAGER" == "pnpm" ]]; then - pnpm install - else - echo "未知的 PACKAGE_MANAGER: $PACKAGE_MANAGER" - exit 1 - fi -fi - - -if [[ "$CUSTOM_SCRIPT" -eq "1" ]]; then - eval $EXEC_SCRIPT -else - if [[ "$PACKAGE_MANAGER" == "npm" ]]; then - npm run $EXEC_SCRIPT - elif [[ "$PACKAGE_MANAGER" == "yarn" ]]; then - yarn run $EXEC_SCRIPT - elif [[ "$PACKAGE_MANAGER" == "pnpm" ]]; then - pnpm run $EXEC_SCRIPT - fi -fi - diff --git a/node/20.14.0/data.yml b/node/20.14.0/data.yml deleted file mode 100644 index fcc6ed694..000000000 --- a/node/20.14.0/data.yml +++ /dev/null @@ -1 +0,0 @@ -additionalProperties: \ No newline at end of file diff --git a/node/20.14.0/docker-compose.yml b/node/20.14.0/docker-compose.yml deleted file mode 100644 index ae57f6418..000000000 --- a/node/20.14.0/docker-compose.yml +++ /dev/null @@ -1,20 +0,0 @@ -services: - node: - image: 1panel/node:${NODE_VERSION} - container_name: ${CONTAINER_NAME} - working_dir: /app - volumes: - - ${CODE_DIR}:/app - - ./run.sh:/run.sh - - ./.env:/.env - command: bash /run.sh - networks: - - 1panel-network - ports: - - ${HOST_IP}:${PANEL_APP_PORT_HTTP}:${APP_PORT} - restart: on-failure:5 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/node/20.14.0/run.sh b/node/20.14.0/run.sh deleted file mode 100644 index 2726722ae..000000000 --- a/node/20.14.0/run.sh +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/bash - -source /.env - -if [[ "$PACKAGE_MANAGER" == "npm" ]]; then - npm config set registry $CONTAINER_PACKAGE_URL -elif [[ "$PACKAGE_MANAGER" == "yarn" ]]; then - yarn config set registry $CONTAINER_PACKAGE_URL -elif [[ "$PACKAGE_MANAGER" == "pnpm" ]]; then - pnpm config set registry $CONTAINER_PACKAGE_URL -fi - -if [[ "$RUN_INSTALL" -eq "1" ]]; then - if [[ "$PACKAGE_MANAGER" == "npm" ]]; then - npm install - elif [[ "$PACKAGE_MANAGER" == "yarn" ]]; then - yarn install - elif [[ "$PACKAGE_MANAGER" == "pnpm" ]]; then - pnpm install - else - echo "未知的 PACKAGE_MANAGER: $PACKAGE_MANAGER" - exit 1 - fi -fi - - -if [[ "$CUSTOM_SCRIPT" -eq "1" ]]; then - eval $EXEC_SCRIPT -else - if [[ "$PACKAGE_MANAGER" == "npm" ]]; then - npm run $EXEC_SCRIPT - elif [[ "$PACKAGE_MANAGER" == "yarn" ]]; then - yarn run $EXEC_SCRIPT - elif [[ "$PACKAGE_MANAGER" == "pnpm" ]]; then - pnpm run $EXEC_SCRIPT - fi -fi - diff --git a/node/21.7.3/data.yml b/node/21.7.3/data.yml deleted file mode 100644 index fcc6ed694..000000000 --- a/node/21.7.3/data.yml +++ /dev/null @@ -1 +0,0 @@ -additionalProperties: \ No newline at end of file diff --git a/node/21.7.3/docker-compose.yml b/node/21.7.3/docker-compose.yml deleted file mode 100644 index ae57f6418..000000000 --- a/node/21.7.3/docker-compose.yml +++ /dev/null @@ -1,20 +0,0 @@ -services: - node: - image: 1panel/node:${NODE_VERSION} - container_name: ${CONTAINER_NAME} - working_dir: /app - volumes: - - ${CODE_DIR}:/app - - ./run.sh:/run.sh - - ./.env:/.env - command: bash /run.sh - networks: - - 1panel-network - ports: - - ${HOST_IP}:${PANEL_APP_PORT_HTTP}:${APP_PORT} - restart: on-failure:5 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/node/21.7.3/run.sh b/node/21.7.3/run.sh deleted file mode 100644 index 2726722ae..000000000 --- a/node/21.7.3/run.sh +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/bash - -source /.env - -if [[ "$PACKAGE_MANAGER" == "npm" ]]; then - npm config set registry $CONTAINER_PACKAGE_URL -elif [[ "$PACKAGE_MANAGER" == "yarn" ]]; then - yarn config set registry $CONTAINER_PACKAGE_URL -elif [[ "$PACKAGE_MANAGER" == "pnpm" ]]; then - pnpm config set registry $CONTAINER_PACKAGE_URL -fi - -if [[ "$RUN_INSTALL" -eq "1" ]]; then - if [[ "$PACKAGE_MANAGER" == "npm" ]]; then - npm install - elif [[ "$PACKAGE_MANAGER" == "yarn" ]]; then - yarn install - elif [[ "$PACKAGE_MANAGER" == "pnpm" ]]; then - pnpm install - else - echo "未知的 PACKAGE_MANAGER: $PACKAGE_MANAGER" - exit 1 - fi -fi - - -if [[ "$CUSTOM_SCRIPT" -eq "1" ]]; then - eval $EXEC_SCRIPT -else - if [[ "$PACKAGE_MANAGER" == "npm" ]]; then - npm run $EXEC_SCRIPT - elif [[ "$PACKAGE_MANAGER" == "yarn" ]]; then - yarn run $EXEC_SCRIPT - elif [[ "$PACKAGE_MANAGER" == "pnpm" ]]; then - pnpm run $EXEC_SCRIPT - fi -fi - diff --git a/node/22.2.0/data.yml b/node/22.2.0/data.yml deleted file mode 100644 index fcc6ed694..000000000 --- a/node/22.2.0/data.yml +++ /dev/null @@ -1 +0,0 @@ -additionalProperties: \ No newline at end of file diff --git a/node/22.2.0/docker-compose.yml b/node/22.2.0/docker-compose.yml deleted file mode 100644 index ae57f6418..000000000 --- a/node/22.2.0/docker-compose.yml +++ /dev/null @@ -1,20 +0,0 @@ -services: - node: - image: 1panel/node:${NODE_VERSION} - container_name: ${CONTAINER_NAME} - working_dir: /app - volumes: - - ${CODE_DIR}:/app - - ./run.sh:/run.sh - - ./.env:/.env - command: bash /run.sh - networks: - - 1panel-network - ports: - - ${HOST_IP}:${PANEL_APP_PORT_HTTP}:${APP_PORT} - restart: on-failure:5 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/node/22.2.0/run.sh b/node/22.2.0/run.sh deleted file mode 100644 index 2726722ae..000000000 --- a/node/22.2.0/run.sh +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/bash - -source /.env - -if [[ "$PACKAGE_MANAGER" == "npm" ]]; then - npm config set registry $CONTAINER_PACKAGE_URL -elif [[ "$PACKAGE_MANAGER" == "yarn" ]]; then - yarn config set registry $CONTAINER_PACKAGE_URL -elif [[ "$PACKAGE_MANAGER" == "pnpm" ]]; then - pnpm config set registry $CONTAINER_PACKAGE_URL -fi - -if [[ "$RUN_INSTALL" -eq "1" ]]; then - if [[ "$PACKAGE_MANAGER" == "npm" ]]; then - npm install - elif [[ "$PACKAGE_MANAGER" == "yarn" ]]; then - yarn install - elif [[ "$PACKAGE_MANAGER" == "pnpm" ]]; then - pnpm install - else - echo "未知的 PACKAGE_MANAGER: $PACKAGE_MANAGER" - exit 1 - fi -fi - - -if [[ "$CUSTOM_SCRIPT" -eq "1" ]]; then - eval $EXEC_SCRIPT -else - if [[ "$PACKAGE_MANAGER" == "npm" ]]; then - npm run $EXEC_SCRIPT - elif [[ "$PACKAGE_MANAGER" == "yarn" ]]; then - yarn run $EXEC_SCRIPT - elif [[ "$PACKAGE_MANAGER" == "pnpm" ]]; then - pnpm run $EXEC_SCRIPT - fi -fi - diff --git a/node/README.md b/node/README.md deleted file mode 100644 index aa2e5dade..000000000 --- a/node/README.md +++ /dev/null @@ -1,21 +0,0 @@ -# Node.js - -Node.js是一个流行的服务器端运行环境,允许开发者构建动态和可扩展的Web应用程序和网络化软件。 - -## 主要功能: - -- **非阻塞I/O**:Node.js以其非阻塞、事件驱动的架构而闻名。这意味着它可以高效地处理大量并发连接,而无需等待一个操作完成后再进行下一个操作,这使其非常适合构建实时应用程序。 - -- **JavaScript**:Node.js使用JavaScript进行服务器端编程,通过允许开发者在应用程序的客户端和服务器端都使用相同的语言,简化了Web应用程序开发。 - -- **包管理**:Node.js拥有一个强大的包管理器,称为npm(Node Package Manager),它允许开发者轻松地安装、管理和共享代码库,从而加速开发过程。 - -- **跨平台**:Node.js可以在多种操作系统上运行,包括Windows、Linux和macOS,这使其非常灵活,能够满足不同的部署需求。 - -- **事件驱动**:Node.js基于事件驱动的编程模型,开发者可以轻松地监听和响应事件,使其特别适合构建实时、交互式的应用程序。 - -- **模块化**:Node.js支持模块化编程,使开发者能够将代码分成小块,提高了可维护性和可扩展性。 - -- **社区支持**:Node.js拥有一个庞大的开发者社区,因此可以轻松找到各种模块和库来扩展其功能,也能够获得社区的支持和反馈。 - -- **单线程**:Node.js通常运行在单线程中,但通过事件循环机制和异步操作,能够实现高效的并发处理,同时减少了多线程开发时可能出现的问题。 \ No newline at end of file diff --git a/node/README_en.md b/node/README_en.md deleted file mode 100644 index 4afef1e82..000000000 --- a/node/README_en.md +++ /dev/null @@ -1,21 +0,0 @@ -# Node.js - -Node.js is a popular server-side runtime environment that enables developers to build dynamic and scalable web applications and networked software. - -## Main Features: - -- **Non-Blocking I/O**: Node.js processes multiple concurrent connections efficiently without blocking operations, making it ideal for real-time applications. - -- **JavaScript**: Node.js uses JavaScript for server-side programming, allowing developers to use the same language for both client-side and server-side application development, simplifying web application development. - -- **Package Management**: Node.js comes with a powerful package manager that facilitates easy installation, management, and sharing of code libraries, speeding up development. - -- **Cross-Platform**: Node.js runs seamlessly on Windows, Linux, and macOS, making it versatile for different deployment needs. - -- **Event-Driven**: Developers can easily listen to and handle events, which is particularly suitable for creating real-time, interactive applications. - -- **Modular Design**: Node.js supports modular programming, allowing developers to break down code into smaller, reusable components, improving maintainability and scalability. - -- **Community Support**: With a large and active developer community, Node.js offers a vast array of modules and libraries, as well as community assistance. - -- **Single-Threaded**: Node.js uses a single-threaded model combined with an event loop and asynchronous operations, achieving efficient concurrency while avoiding challenges associated with multithreaded programming. \ No newline at end of file diff --git a/node/data.yml b/node/data.yml deleted file mode 100644 index a73b32845..000000000 --- a/node/data.yml +++ /dev/null @@ -1,34 +0,0 @@ -name: Node.js -tags: - - 运行环境 -title: Node.js 运行环境 -description: Node.js 运行环境 -additionalProperties: - key: node - name: Node.js - tags: - - Runtime - shortDescZh: Node.js 运行环境 - shortDescEn: Node.js Runtime - description: - en: Node Runtime Environment - ja: Node 実行環境 - ms: Persekitaran Larian Node - pt-br: Ambiente de Execução Node - ru: Среда выполнения Node - ko: Node 실행 환경 - zh-Hant: Node 執行環境 - zh: Node 运行环境 - type: node - crossVersionUpdate: false - limit: 0 - recommend: 110 - website: https://nodejs.org/en - github: https://github.com/nodejs - document: "" - architectures: - - amd64 - - arm/v7 - - arm64 - - ppc64le - - s390x diff --git a/node/logo.png b/node/logo.png deleted file mode 100644 index 380a0a849..000000000 Binary files a/node/logo.png and /dev/null differ diff --git a/nodebb/4.4.4/data.yml b/nodebb/4.4.4/data.yml deleted file mode 100644 index e90c10d31..000000000 --- a/nodebb/4.4.4/data.yml +++ /dev/null @@ -1,19 +0,0 @@ -additionalProperties: - formFields: - - default: 4567 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh: 端口 - zh-Hant: 埠 - required: true - rule: paramPort - type: number diff --git a/nodebb/4.4.4/data/build/.gitkeep b/nodebb/4.4.4/data/build/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/nodebb/4.4.4/data/config/.gitkeep b/nodebb/4.4.4/data/config/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/nodebb/4.4.4/data/node_modules/.gitkeep b/nodebb/4.4.4/data/node_modules/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/nodebb/4.4.4/data/uploads/.gitkeep b/nodebb/4.4.4/data/uploads/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/nodebb/4.4.4/docker-compose.yml b/nodebb/4.4.4/docker-compose.yml deleted file mode 100644 index dab4593b4..000000000 --- a/nodebb/4.4.4/docker-compose.yml +++ /dev/null @@ -1,19 +0,0 @@ -services: - nodebb: - image: ghcr.io/nodebb/nodebb:4.4.4 - container_name: ${CONTAINER_NAME} - restart: unless-stopped - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTP}:4567" - volumes: - - ./data/build:/usr/src/app/build - - ./data/node_modules:/usr/src/app/node_modules - - ./data/uploads:/usr/src/app/public/uploads - - ./data/config:/opt/config - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/nodebb/4.4.4/scripts/init.sh b/nodebb/4.4.4/scripts/init.sh deleted file mode 100644 index 4bf77dcbf..000000000 --- a/nodebb/4.4.4/scripts/init.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -chown -R 1001:1001 data diff --git a/nodebb/README.md b/nodebb/README.md deleted file mode 100644 index f510a5f4f..000000000 --- a/nodebb/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# NodeBB - -**NodeBB** 论坛软件由 Node.js 提供支持,支持 Redis、MongoDB 或 PostgreSQL 数据库。它利用 WebSocket 实现即时互动和实时通知。NodeBB 吸收了现代网络的精华:实时流式讨论、移动响应能力、丰富的 RESTful 读/写 API,同时忠实于原始的公告栏/论坛格式 → 分类分层、本地用户账户和异步消息传递。 - -NodeBB 本身包含一个基本功能的 “通用核心”,而其他功能和集成则通过使用第三方插件来实现。 - -> 容器首次启动后请等待 npm 模块安装,当日志显示出 `Web installer listening on http://0.0.0.0:4567` 时,即可通过网页安装程序进行配置。 - -## 数据库 - -NodeBB 有一个数据库抽象层(DBAL),允许用户为自己选择的数据库编写驱动程序。目前我们有以下选项: - -### MongoDB(默认) - -如果您担心使用 Redis 会耗尽内存,或者希望您的论坛更容易扩展,您可以使用 MongoDB 安装 NodeBB。本教程假定你知道如何通过 SSH 登录服务器并拥有 root 访问权限。 - -这些说明适用于 Ubuntu。请根据你的发行版进行相应调整。 - -注:如果你必须在任何命令中添加 sudo,请照做。没人会对你不利;) - -[配置 MongoDB](https://docs.nodebb.org/configuring/databases/mongo/#step-1-install-mongodb)(如果使用docker,请参阅步骤6与步骤7) - -### Redis - -NodeBB 默认使用 MongoDB 作为其主要数据存储,尽管我们也支持 Redis。在 NodeBB 中,Redis 和 MongoDB 都被视为具有一流支持的数据存储,因此,如果您在使用 Redis 而不是 MongoDB 作为数据存储时遇到错误,我们仍然鼓励您[提交问题](https://github.com/NodeBB/NodeBB/issues/new)。 - -Redis 的设计将整个数据库保存在活动内存中,因此在某些高可扩展性场景中可能非常有用。与 MongoDB 相比,Redis 的速度可能会有一些不明显的提高。 - -不过,这种优势也是一把双刃剑。由于 Redis 将整个数据库保存在活动内存中,这意味着系统内存需要比数据集大两倍(如果不是更大的话)(例如,2GB 的数据需要至少 4GB 的系统内存)。Redis 需要两倍于数据集的内存,因为它的备份策略是先克隆内存中的数据,然后再将其持久化到磁盘上。 - -请仔细考虑您的硬件选项,看看您的安装是否值得权衡利弊。请记住,NodeBB 团队为有需要的用户提供 Redis 到 MongoDB 的迁移服务。如需了解更多信息,请联系 sales@nodebb.org。 - -[配置 Redis](https://docs.nodebb.org/configuring/databases/redis/#step-1-install-redis)(如果使用docker,请参阅步骤2) - -### PostgreSQL - -注:尽管 NodeBB 完全支持 PostgreSQL,但我们仍然建议使用MongoDB和Redis,因为这是我们自己和托管客户端上使用的。 - -PostgreSQL 无需多余配置。 \ No newline at end of file diff --git a/nodebb/README_en.md b/nodebb/README_en.md deleted file mode 100644 index f0d8c3d7c..000000000 --- a/nodebb/README_en.md +++ /dev/null @@ -1,34 +0,0 @@ -# NodeBB -**NodeBB** is a forum software powered by Node.js, supporting Redis, MongoDB, or PostgreSQL databases. It leverages WebSocket for real-time interaction and notifications. NodeBB incorporates modern web features such as real-time streaming discussions, mobile responsiveness, a rich RESTful read/write API, while staying true to the traditional bulletin board/forum format → categorized hierarchy, local user accounts, and asynchronous messaging. - -NodeBB itself includes a basic "universal core" with essential functionality, while additional features and integrations are implemented through third-party plugins. - -> After the container starts for the first time, wait for the npm modules to install. Once the logs display `Web installer listening on http://0.0.0.0:4567`, you can proceed with the web installer for configuration. - -## Databases -NodeBB has a database abstraction layer (DBAL) that allows users to write drivers for their preferred database. Currently, the following options are available: - -### MongoDB (Default) -If you are concerned about running out of memory with Redis or want your forum to scale more easily, you can install NodeBB with MongoDB. This tutorial assumes you know how to SSH into your server and have root access. - -These instructions are for Ubuntu. Adjust accordingly for your distribution. - -Note: If you need to prepend `sudo` to any commands, please do so. Nobody will hold it against you ;) - -[Configure MongoDB](https://docs.nodebb.org/configuring/databases/mongo/#step-1-install-mongodb) (For Docker, refer to steps 6 and 7). - -### Redis -NodeBB uses MongoDB as its primary data store by default, although Redis is also supported. In NodeBB, both Redis and MongoDB are treated as first-class data stores. If you encounter errors using Redis instead of MongoDB, we still encourage you to [submit an issue](https://github.com/NodeBB/NodeBB/issues/new). - -Redis is designed to keep the entire database in active memory, which can be very useful in certain high-scalability scenarios. Compared to MongoDB, Redis may offer some marginal speed improvements. - -However, this advantage comes with a trade-off. Since Redis keeps the entire database in active memory, the system memory needs to be at least twice the size of the dataset (e.g., 2GB of data requires at least 4GB of system memory). Redis requires twice the memory of the dataset because its backup strategy involves cloning the in-memory data before persisting it to disk. - -Carefully consider your hardware options to see if the trade-offs are worth it for your installation. Remember, the NodeBB team offers migration services from Redis to MongoDB for users who need it. For more information, contact sales@nodebb.org. - -[Configure Redis](https://docs.nodebb.org/configuring/databases/redis/#step-1-install-redis) (For Docker, refer to step 2). - -### PostgreSQL -Note: While NodeBB fully supports PostgreSQL, we still recommend using MongoDB and Redis, as these are what we use for our own and hosted clients. - -PostgreSQL requires no additional configuration. \ No newline at end of file diff --git a/nodebb/data.yml b/nodebb/data.yml deleted file mode 100644 index 314bcd1a4..000000000 --- a/nodebb/data.yml +++ /dev/null @@ -1,33 +0,0 @@ -name: NodeBB -tags: - - 建站 -title: 基于 Node.js 的现代化论坛程序 -description: 基于 Node.js 的现代化论坛程序 -additionalProperties: - key: nodebb - name: NodeBB - tags: - - Website - shortDescZh: 基于 Node.js 的现代化论坛程序 - shortDescEn: Node.js based forum software built for the modern web - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://nodebb.org - github: https://github.com/NodeBB/NodeBB - document: https://docs.nodebb.org - description: - en: Node.js based forum software built for the modern web - zh: 基于 Node.js 的现代化论坛软件 - zh-Hant: 基於 Node.js 的現代化論壇軟件 - ja: モダンな Web のために構築された Node.js ベースのフォーラムソフトウェア - ms: Perisian forum berasaskan Node.js yang dibina untuk web moden - pt-br: Software de fórum baseado em Node.js construído para a web moderna - ru: Программное обеспечение для форумов на основе Node.js, созданное для современной сети - ko: 현대 웹을 위해 구축된 Node.js 기반 포럼 소프트웨어 - memoryRequired: 2048 - architectures: - - amd64 - - arm/v7 - - arm64 diff --git a/nodebb/logo.png b/nodebb/logo.png deleted file mode 100644 index f0afd4026..000000000 Binary files a/nodebb/logo.png and /dev/null differ diff --git a/ntfy/2.12.0/data.yml b/ntfy/2.12.0/data.yml deleted file mode 100644 index e340a5287..000000000 --- a/ntfy/2.12.0/data.yml +++ /dev/null @@ -1,84 +0,0 @@ -additionalProperties: - formFields: - - default: "40265" - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh: 端口 - zh-Hant: 埠 - required: true - rule: paramPort - type: number - - default: "80" - edit: true - envKey: APP_PORT_INTERNAL - labelEn: Internal Container Ports - labelZh: 容器内部端口 - label: - en: Internal Container Ports - ja: 内部コンテナポート - ms: Port Dalaman Kontena - pt-br: Portas Internas do Contêiner - ru: Внутренние порты контейнера - ko: 내부 컨테이너 포트 - zh: 容器内部端口 - zh-Hant: 容器內部埠 - required: true - rule: paramPort - type: number - - default: "Asia/Shanghai" - edit: true - envKey: TIME_ZONE - labelEn: Time Zone - labelZh: 时区 - label: - en: Time Zone - ja: タイムゾーン - ms: Zon Masa - pt-br: Fuso Horário - ru: Часовой пояс - ko: 시간대 - zh: 时区 - zh-Hant: 時區 - required: true - type: text - - default: "1000" - edit: true - envKey: PUID - labelEn: User ID - labelZh: 用户 ID - label: - en: User ID - ja: ユーザー ID - ms: ID Pengguna - pt-br: ID do Usuário - ru: ID пользователя - ko: 사용자 ID - zh: 用户 ID - zh-Hant: 用戶 ID - required: true - type: number - - default: "1000" - edit: true - envKey: PGID - labelEn: Group ID - labelZh: 组 ID - label: - en: Group ID - ja: グループ ID - ms: ID Kumpulan - pt-br: ID do Grupo - ru: ID группы - ko: 그룹 ID - zh: 组 ID - zh-Hant: 組 ID - required: true - type: number diff --git a/ntfy/2.12.0/data/ntfy/server.yml.sample b/ntfy/2.12.0/data/ntfy/server.yml.sample deleted file mode 100644 index 4b48828ca..000000000 --- a/ntfy/2.12.0/data/ntfy/server.yml.sample +++ /dev/null @@ -1,372 +0,0 @@ -# ntfy server config file -# -# Please refer to the documentation at https://ntfy.sh/docs/config/ for details. -# All options also support underscores (_) instead of dashes (-) to comply with the YAML spec. - -# Public facing base URL of the service (e.g. https://ntfy.sh or https://ntfy.example.com) -# -# This setting is required for any of the following features: -# - attachments (to return a download URL) -# - e-mail sending (for the topic URL in the email footer) -# - iOS push notifications for self-hosted servers (to calculate the Firebase poll_request topic) -# - Matrix Push Gateway (to validate that the pushkey is correct) -# -# base-url: - -# Listen address for the HTTP & HTTPS web server. If "listen-https" is set, you must also -# set "key-file" and "cert-file". Format: []:, e.g. "1.2.3.4:8080". -# -# To listen on all interfaces, you may omit the IP address, e.g. ":443". -# To disable HTTP, set "listen-http" to "-". -# -# listen-http: ":80" -# listen-https: - -# Listen on a Unix socket, e.g. /var/lib/ntfy/ntfy.sock -# This can be useful to avoid port issues on local systems, and to simplify permissions. -# -# listen-unix: -# listen-unix-mode: - -# Path to the private key & cert file for the HTTPS web server. Not used if "listen-https" is not set. -# -# key-file: -# cert-file: - -# If set, also publish messages to a Firebase Cloud Messaging (FCM) topic for your app. -# This is optional and only required to save battery when using the Android app. -# -# firebase-key-file: - -# If "cache-file" is set, messages are cached in a local SQLite database instead of only in-memory. -# This allows for service restarts without losing messages in support of the since= parameter. -# -# The "cache-duration" parameter defines the duration for which messages will be buffered -# before they are deleted. This is required to support the "since=..." and "poll=1" parameter. -# To disable the cache entirely (on-disk/in-memory), set "cache-duration" to 0. -# The cache file is created automatically, provided that the correct permissions are set. -# -# The "cache-startup-queries" parameter allows you to run commands when the database is initialized, -# e.g. to enable WAL mode (see https://phiresky.github.io/blog/2020/sqlite-performance-tuning/)). -# Example: -# cache-startup-queries: | -# pragma journal_mode = WAL; -# pragma synchronous = normal; -# pragma temp_store = memory; -# pragma busy_timeout = 15000; -# vacuum; -# -# The "cache-batch-size" and "cache-batch-timeout" parameter allow enabling async batch writing -# of messages. If set, messages will be queued and written to the database in batches of the given -# size, or after the given timeout. This is only required for high volume servers. -# -# Debian/RPM package users: -# Use /var/cache/ntfy/cache.db as cache file to avoid permission issues. The package -# creates this folder for you. -# -# Check your permissions: -# If you are running ntfy with systemd, make sure this cache file is owned by the -# ntfy user and group by running: chown ntfy.ntfy . -# -# cache-file: -# cache-duration: "12h" -# cache-startup-queries: -# cache-batch-size: 0 -# cache-batch-timeout: "0ms" - -# If set, access to the ntfy server and API can be controlled on a granular level using -# the 'ntfy user' and 'ntfy access' commands. See the --help pages for details, or check the docs. -# -# - auth-file is the SQLite user/access database; it is created automatically if it doesn't already exist -# - auth-default-access defines the default/fallback access if no access control entry is found; it can be -# set to "read-write" (default), "read-only", "write-only" or "deny-all". -# - auth-startup-queries allows you to run commands when the database is initialized, e.g. to enable -# WAL mode. This is similar to cache-startup-queries. See above for details. -# -# Debian/RPM package users: -# Use /var/lib/ntfy/user.db as user database to avoid permission issues. The package -# creates this folder for you. -# -# Check your permissions: -# If you are running ntfy with systemd, make sure this user database file is owned by the -# ntfy user and group by running: chown ntfy.ntfy . -# -# auth-file: -# auth-default-access: "read-write" -# auth-startup-queries: - -# If set, the X-Forwarded-For header is used to determine the visitor IP address -# instead of the remote address of the connection. -# -# WARNING: If you are behind a proxy, you must set this, otherwise all visitors are rate limited -# as if they are one. -# -# behind-proxy: false - -# If enabled, clients can attach files to notifications as attachments. Minimum settings to enable attachments -# are "attachment-cache-dir" and "base-url". -# -# - attachment-cache-dir is the cache directory for attached files -# - attachment-total-size-limit is the limit of the on-disk attachment cache directory (total size) -# - attachment-file-size-limit is the per-file attachment size limit (e.g. 300k, 2M, 100M) -# - attachment-expiry-duration is the duration after which uploaded attachments will be deleted (e.g. 3h, 20h) -# -# attachment-cache-dir: -# attachment-total-size-limit: "5G" -# attachment-file-size-limit: "15M" -# attachment-expiry-duration: "3h" - -# If enabled, allow outgoing e-mail notifications via the 'X-Email' header. If this header is set, -# messages will additionally be sent out as e-mail using an external SMTP server. -# -# As of today, only SMTP servers with plain text auth (or no auth at all), and STARTLS are supported. -# Please also refer to the rate limiting settings below (visitor-email-limit-burst & visitor-email-limit-burst). -# -# - smtp-sender-addr is the hostname:port of the SMTP server -# - smtp-sender-from is the e-mail address of the sender -# - smtp-sender-user/smtp-sender-pass are the username and password of the SMTP user (leave blank for no auth) -# -# smtp-sender-addr: -# smtp-sender-from: -# smtp-sender-user: -# smtp-sender-pass: - -# If enabled, ntfy will launch a lightweight SMTP server for incoming messages. Once configured, users can send -# emails to a topic e-mail address to publish messages to a topic. -# -# - smtp-server-listen defines the IP address and port the SMTP server will listen on, e.g. :25 or 1.2.3.4:25 -# - smtp-server-domain is the e-mail domain, e.g. ntfy.sh -# - smtp-server-addr-prefix is an optional prefix for the e-mail addresses to prevent spam. If set to "ntfy-", -# for instance, only e-mails to ntfy-$topic@ntfy.sh will be accepted. If this is not set, all emails to -# $topic@ntfy.sh will be accepted (which may obviously be a spam problem). -# -# smtp-server-listen: -# smtp-server-domain: -# smtp-server-addr-prefix: - -# Web Push support (background notifications for browsers) -# -# If enabled, allows ntfy to receive push notifications, even when the ntfy web app is closed. When enabled, users -# can enable background notifications in the web app. Once enabled, ntfy will forward published messages to the push -# endpoint, which will then forward it to the browser. -# -# You must configure web-push-public/private key, web-push-file, and web-push-email-address below to enable Web Push. -# Run "ntfy webpush keys" to generate the keys. -# -# - web-push-public-key is the generated VAPID public key, e.g. AA1234BBCCddvveekaabcdfqwertyuiopasdfghjklzxcvbnm1234567890 -# - web-push-private-key is the generated VAPID private key, e.g. AA2BB1234567890abcdefzxcvbnm1234567890 -# - web-push-file is a database file to keep track of browser subscription endpoints, e.g. `/var/cache/ntfy/webpush.db` -# - web-push-email-address is the admin email address send to the push provider, e.g. `sysadmin@example.com` -# - web-push-startup-queries is an optional list of queries to run on startup` -# -# web-push-public-key: -# web-push-private-key: -# web-push-file: -# web-push-email-address: -# web-push-startup-queries: - -# If enabled, ntfy can perform voice calls via Twilio via the "X-Call" header. -# -# - twilio-account is the Twilio account SID -# - twilio-auth-token is the Twilio auth token, e.g. affebeef258625862586258625862586 -# - twilio-phone-number is the outgoing phone number you purchased, e.g. +18775132586 -# - twilio-verify-service is the Twilio Verify service SID, e.g. VA12345beefbeef67890beefbeef122586 -# -# twilio-account: -# twilio-auth-token: -# twilio-phone-number: -# twilio-verify-service: - -# Interval in which keepalive messages are sent to the client. This is to prevent -# intermediaries closing the connection for inactivity. -# -# Note that the Android app has a hardcoded timeout at 77s, so it should be less than that. -# -# keepalive-interval: "45s" - -# Interval in which the manager prunes old messages, deletes topics -# and prints the stats. -# -# manager-interval: "1m" - -# Defines topic names that are not allowed, because they are otherwise used. There are a few default topics -# that cannot be used (e.g. app, account, settings, ...). To extend the default list, define them here. -# -# Example: -# disallowed-topics: -# - about -# - pricing -# - contact -# -# disallowed-topics: - -# Defines the root path of the web app, or disables the web app entirely. -# -# Can be any simple path, e.g. "/", "/app", or "/ntfy". For backwards-compatibility reasons, -# the values "app" (maps to "/"), "home" (maps to "/app"), or "disable" (maps to "") to disable -# the web app entirely. -# -# web-root: / - -# Various feature flags used to control the web app, and API access, mainly around user and -# account management. -# -# - enable-signup allows users to sign up via the web app, or API -# - enable-login allows users to log in via the web app, or API -# - enable-reservations allows users to reserve topics (if their tier allows it) -# -# enable-signup: false -# enable-login: false -# enable-reservations: false - -# Server URL of a Firebase/APNS-connected ntfy server (likely "https://ntfy.sh"). -# -# iOS users: -# If you use the iOS ntfy app, you MUST configure this to receive timely notifications. You'll like want this: -# upstream-base-url: "https://ntfy.sh" -# -# If set, all incoming messages will publish a "poll_request" message to the configured upstream server, containing -# the message ID of the original message, instructing the iOS app to poll this server for the actual message contents. -# This is to prevent the upstream server and Firebase/APNS from being able to read the message. -# -# - upstream-base-url is the base URL of the upstream server. Should be "https://ntfy.sh". -# - upstream-access-token is the token used to authenticate with the upstream server. This is only required -# if you exceed the upstream rate limits, or the uptream server requires authentication. -# -# upstream-base-url: -# upstream-access-token: - -# Configures message-specific limits -# -# - message-size-limit defines the max size of a message body. Please note message sizes >4K are NOT RECOMMENDED, -# and largely untested. If FCM and/or APNS is used, the limit should stay 4K, because their limits are around that size. -# If you increase this size limit regardless, FCM and APNS will NOT work for large messages. -# - message-delay-limit defines the max delay of a message when using the "Delay" header. -# -# message-size-limit: "4k" -# message-delay-limit: "3d" - -# Rate limiting: Total number of topics before the server rejects new topics. -# -# global-topic-limit: 15000 - -# Rate limiting: Number of subscriptions per visitor (IP address) -# -# visitor-subscription-limit: 30 - -# Rate limiting: Allowed GET/PUT/POST requests per second, per visitor: -# - visitor-request-limit-burst is the initial bucket of requests each visitor has -# - visitor-request-limit-replenish is the rate at which the bucket is refilled -# - visitor-request-limit-exempt-hosts is a comma-separated list of hostnames, IPs or CIDRs to be -# exempt from request rate limiting. Hostnames are resolved at the time the server is started. -# Example: "1.2.3.4,ntfy.example.com,8.7.6.0/24" -# -# visitor-request-limit-burst: 60 -# visitor-request-limit-replenish: "5s" -# visitor-request-limit-exempt-hosts: "" - -# Rate limiting: Hard daily limit of messages per visitor and day. The limit is reset -# every day at midnight UTC. If the limit is not set (or set to zero), the request -# limit (see above) governs the upper limit. -# -# visitor-message-daily-limit: 0 - -# Rate limiting: Allowed emails per visitor: -# - visitor-email-limit-burst is the initial bucket of emails each visitor has -# - visitor-email-limit-replenish is the rate at which the bucket is refilled -# -# visitor-email-limit-burst: 16 -# visitor-email-limit-replenish: "1h" - -# Rate limiting: Attachment size and bandwidth limits per visitor: -# - visitor-attachment-total-size-limit is the total storage limit used for attachments per visitor -# - visitor-attachment-daily-bandwidth-limit is the total daily attachment download/upload traffic limit per visitor -# -# visitor-attachment-total-size-limit: "100M" -# visitor-attachment-daily-bandwidth-limit: "500M" - -# Rate limiting: Enable subscriber-based rate limiting (mostly used for UnifiedPush) -# -# If subscriber-based rate limiting is enabled, messages published on UnifiedPush topics** (topics starting with "up") -# will be counted towards the "rate visitor" of the topic. A "rate visitor" is the first subscriber to the topic. -# -# Once enabled, a client subscribing to UnifiedPush topics via HTTP stream, or websockets, will be automatically registered as -# a "rate visitor", i.e. the visitor whose rate limits will be used when publishing on this topic. Note that setting the rate visitor -# requires **read-write permission** on the topic. -# -# If this setting is enabled, publishing to UnifiedPush topics will lead to a HTTP 507 response if -# no "rate visitor" has been previously registered. This is to avoid burning the publisher's "visitor-message-daily-limit". -# -# visitor-subscriber-rate-limiting: false - -# Payments integration via Stripe -# -# - stripe-secret-key is the key used for the Stripe API communication. Setting this values -# enables payments in the ntfy web app (e.g. Upgrade dialog). See https://dashboard.stripe.com/apikeys. -# - stripe-webhook-key is the key required to validate the authenticity of incoming webhooks from Stripe. -# Webhooks are essential up keep the local database in sync with the payment provider. See https://dashboard.stripe.com/webhooks. -# - billing-contact is an email address or website displayed in the "Upgrade tier" dialog to let people reach -# out with billing questions. If unset, nothing will be displayed. -# -# stripe-secret-key: -# stripe-webhook-key: -# billing-contact: - -# Metrics -# -# ntfy can expose Prometheus-style metrics via a /metrics endpoint, or on a dedicated listen IP/port. -# Metrics may be considered sensitive information, so before you enable them, be sure you know what you are -# doing, and/or secure access to the endpoint in your reverse proxy. -# -# - enable-metrics enables the /metrics endpoint for the default ntfy server (i.e. HTTP, HTTPS and/or Unix socket) -# - metrics-listen-http exposes the metrics endpoint via a dedicated [IP]:port. If set, this option implicitly -# enables metrics as well, e.g. "10.0.1.1:9090" or ":9090" -# -# enable-metrics: false -# metrics-listen-http: - -# Profiling -# -# ntfy can expose Go's net/http/pprof endpoints to support profiling of the ntfy server. If enabled, ntfy will listen -# on a dedicated listen IP/port, which can be accessed via the web browser on http://:/debug/pprof/. -# This can be helpful to expose bottlenecks, and visualize call flows. See https://pkg.go.dev/net/http/pprof for details. -# -# profile-listen-http: - -# Logging options -# -# By default, ntfy logs to the console (stderr), with an "info" log level, and in a human-readable text format. -# ntfy supports five different log levels, can also write to a file, log as JSON, and even supports granular -# log level overrides for easier debugging. Some options (log-level and log-level-overrides) can be hot reloaded -# by calling "kill -HUP $pid" or "systemctl reload ntfy". -# -# - log-format defines the output format, can be "text" (default) or "json" -# - log-file is a filename to write logs to. If this is not set, ntfy logs to stderr. -# - log-level defines the default log level, can be one of "trace", "debug", "info" (default), "warn" or "error". -# Be aware that "debug" (and particularly "trace") can be VERY CHATTY. Only turn them on briefly for debugging purposes. -# - log-level-overrides lets you override the log level if certain fields match. This is incredibly powerful -# for debugging certain parts of the system (e.g. only the account management, or only a certain visitor). -# This is an array of strings in the format: -# - "field=value -> level" to match a value exactly, e.g. "tag=manager -> trace" -# - "field -> level" to match any value, e.g. "time_taken_ms -> debug" -# Warning: Using log-level-overrides has a performance penalty. Only use it for temporary debugging. -# -# Check your permissions: -# If you are running ntfy with systemd, make sure this log file is owned by the -# ntfy user and group by running: chown ntfy.ntfy . -# -# Example (good for production): -# log-level: info -# log-format: json -# log-file: /var/log/ntfy.log -# -# Example level overrides (for debugging, only use temporarily): -# log-level-overrides: -# - "tag=manager -> trace" -# - "visitor_ip=1.2.3.4 -> debug" -# - "time_taken_ms -> debug" -# -# log-level: info -# log-level-overrides: -# log-format: text -# log-file: diff --git a/ntfy/2.12.0/docker-compose.yml b/ntfy/2.12.0/docker-compose.yml deleted file mode 100644 index 661ea39fb..000000000 --- a/ntfy/2.12.0/docker-compose.yml +++ /dev/null @@ -1,28 +0,0 @@ -services: - ntfy: - image: "binwiederhier/ntfy:v2.12.0" - container_name: ${CONTAINER_NAME} - command: - - serve - environment: - - TZ=${TIME_ZONE} - user: ${PUID}:${PGID} - volumes: - - ./data/cache/ntfy:/var/cache/ntfy - - ./data/ntfy:/etc/ntfy - ports: - - "${PANEL_APP_PORT_HTTP}:${APP_PORT_INTERNAL}" - restart: always - networks: - - 1panel-network - healthcheck: - test: ["CMD-SHELL", "wget -q --tries=1 http://localhost:${APP_PORT_INTERNAL}/v1/health -O - | grep -Eo '\"healthy\"\\s*:\\s*true' || exit 1"] - interval: 60s - timeout: 10s - retries: 3 - start_period: 40s - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/ntfy/README.md b/ntfy/README.md deleted file mode 100644 index 5ce53d200..000000000 --- a/ntfy/README.md +++ /dev/null @@ -1,13 +0,0 @@ -# ntfy - -**ntfy** 是一种基于 HTTP 的简单发布-订阅 通知服务。使用 ntfy,您可以通过任何计算机的 脚本将通知发送到您的手机或桌面,而无需注册或支付任何费用。 - -## 主要功能: - -- **多平台支持**:Ntfy 支持在不同平台上使用,包括 Android、iOS、Windows、Linux 和 macOS 等。 -- **多种传输方式**:通知可以通过 HTTP API、命令行工具、Email、WebSocket 等多种方式发送和接收。 -- **自托管**:用户可以选择将 Ntfy 部署在自己的服务器上,实现完全的控制和隐私保护。 -- **订阅模式**:Ntfy 允许用户订阅特定主题,从而只接收相关的通知。 -- **简单集成**:通过简单的 HTTP 请求,Ntfy 可以与各种应用和脚本轻松集成。 -- **实时通知**:支持即时通知,让用户能够第一时间收到重要信息。 -- **开放源代码**:Ntfy 是一个开源项目,用户可以查看源代码,进行自定义和扩展。 \ No newline at end of file diff --git a/ntfy/README_en.md b/ntfy/README_en.md deleted file mode 100644 index ee33ac380..000000000 --- a/ntfy/README_en.md +++ /dev/null @@ -1,11 +0,0 @@ -# ntfy -**ntfy** is a simple HTTP-based publish-subscribe notification service. With ntfy, you can send notifications from any computer script to your phone or desktop without registration or fees. - -## Key Features: -- **Cross-Platform Support**: Available on Android, iOS, Windows, Linux, and macOS. -- **Multiple Transmission Methods**: Notifications can be sent and received via HTTP API, command-line tools, email, WebSocket, and more. -- **Self-Hosting**: Users can deploy ntfy on their own servers for complete control and privacy. -- **Subscription Model**: Allows users to subscribe to specific topics and receive only relevant notifications. -- **Simple Integration**: Easily integrates with various applications and scripts through simple HTTP requests. -- **Real-Time Notifications**: Supports real-time notifications for instant updates. -- **Open Source**: Fully open-source, allowing users to view, customize, and extend the source code. \ No newline at end of file diff --git a/ntfy/data.yml b/ntfy/data.yml deleted file mode 100644 index c6234cfe2..000000000 --- a/ntfy/data.yml +++ /dev/null @@ -1,32 +0,0 @@ -name: ntfy -tags: - - 开发工具 -title: 基于 HTTP 的简单 pub-sub 通知服务 -description: 基于 HTTP 的简单 pub-sub 通知服务 -additionalProperties: - key: ntfy - name: ntfy - tags: - - DevTool - shortDescZh: 基于 HTTP 的简单 pub-sub 通知服务 - shortDescEn: A simple HTTP-based pub-sub notification service - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://ntfy.sh/ - github: https://github.com/binwiederhier/ntfy - document: https://ntfy.sh/docs - description: - en: A simple HTTP-based pub-sub notification service - zh: 基于 HTTP 的简单 pub-sub 通知服务 - zh-Hant: 基於 HTTP 的簡單 pub-sub 通知服務 - ja: HTTP ベースのシンプルな pub-sub 通知サービス - ms: Perkhidmatan pemberitahuan pub-sub mudah berasaskan HTTP - pt-br: Um serviço de notificação pub-sub simples baseado em HTTP - ru: Простой сервис уведомлений pub-sub на основе HTTP - ko: HTTP 기반의 간단한 pub-sub 알림 서비스 - architectures: - - amd64 - - arm/v7 - - arm64 \ No newline at end of file diff --git a/ntfy/logo.png b/ntfy/logo.png deleted file mode 100644 index cf4c9c3b2..000000000 Binary files a/ntfy/logo.png and /dev/null differ diff --git a/obsidian_livesync/3.5.0/conf/local.ini b/obsidian_livesync/3.5.0/conf/local.ini deleted file mode 100644 index 8e5d78284..000000000 --- a/obsidian_livesync/3.5.0/conf/local.ini +++ /dev/null @@ -1,22 +0,0 @@ -[couchdb] -single_node=true -max_document_size = 50000000 - -[chttpd] -require_valid_user = true -max_http_request_size = 4294967296 - -[chttpd_auth] -require_valid_user = true -authentication_redirect = /_utils/session.html - -[httpd] -WWW-Authenticate = Basic realm="couchdb" -enable_cors = true - -[cors] -origins = app://obsidian.md,capacitor://localhost,http://localhost -credentials = true -headers = accept, authorization, content-type, origin, referer -methods = GET, PUT, POST, HEAD, DELETE -max_age = 3600 \ No newline at end of file diff --git a/obsidian_livesync/3.5.0/data.yml b/obsidian_livesync/3.5.0/data.yml deleted file mode 100644 index a003ad178..000000000 --- a/obsidian_livesync/3.5.0/data.yml +++ /dev/null @@ -1,52 +0,0 @@ -additionalProperties: - formFields: - - default: admin - envKey: OBSIDIAN_LIVESYNC_USER - labelEn: Username - labelZh: 用户名 - label: - en: Username - ja: ユーザー名 - ms: Nama Pengguna - pt-br: Nome de Usuário - ru: Имя пользователя - ko: 사용자 이름 - zh: 用户名 - zh-Hant: 用戶名 - required: true - rule: paramCommon - type: text - - default: obsidian - envKey: OBSIDIAN_LIVESYNC_USER_PASSWORD - labelEn: Password - labelZh: 密码 - label: - en: Password - ja: パスワード - ms: Kata laluan - pt-br: Senha - ru: Пароль - ko: 비밀번호 - zh: 密码 - zh-Hant: 密碼 - random: true - required: true - rule: paramComplexity - type: password - - default: 5984 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh: 端口 - zh-Hant: 埠 - required: true - rule: paramPort - type: number \ No newline at end of file diff --git a/obsidian_livesync/3.5.0/docker-compose.yml b/obsidian_livesync/3.5.0/docker-compose.yml deleted file mode 100644 index 266789ccd..000000000 --- a/obsidian_livesync/3.5.0/docker-compose.yml +++ /dev/null @@ -1,20 +0,0 @@ -services: - couchdb: - image: couchdb:3.5.0 - container_name: ${CONTAINER_NAME} - environment: - - COUCHDB_USER=${OBSIDIAN_LIVESYNC_USER} - - COUCHDB_PASSWORD=${OBSIDIAN_LIVESYNC_USER_PASSWORD} - volumes: - - ./data:/opt/couchdb/data - - ./conf/local.ini:/opt/couchdb/etc/local.ini - ports: - - ${PANEL_APP_PORT_HTTP}:5984 - restart: unless-stopped - networks: - - 1panel-network - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/obsidian_livesync/README.md b/obsidian_livesync/README.md deleted file mode 100644 index 33b625c23..000000000 --- a/obsidian_livesync/README.md +++ /dev/null @@ -1,28 +0,0 @@ -# 创建数据库 - -CouchDB 部署成功后, 需要手动创建一个数据库, 方便插件连接并同步. - -访问 `http://localhost:5984/_utils`, 输入帐号密码后进入管理页面,点击 `Create Database` 根据个人喜好创建数据库 - -> 如果你想要从移动设备访问 Self-hosted LiveSync,你需要一个合法的 SSL 证书。 - -# Self-hosted LiveSync - -**Self-hosted LiveSync** (自搭建在线同步) 是一个社区实现的在线同步插件。 -使用一个自搭建的或者购买的 CouchDB 作为中转服务器。 -兼容所有支持 Obsidian 的平台。 - -> 本插件与官方的 `Obsidian Sync` 服务不兼容。 - -## 功能: - -- 可视化的冲突解决器 -- 接近实时的多设备双向同步 -- 可使用 CouchDB 以及兼容的服务,如 IBM Cloudant -- 支持端到端加密 -- 插件同步 (Beta) -- 从 [obsidian-livesync-webclip](https://chrome.google.com/webstore/detail/obsidian-livesync-webclip/jfpaflmpckblieefkegjncjoceapakdf) 接收 WebClip (本功能不适用端到端加密) - -适用于出于安全原因需要将笔记完全自托管的研究人员、工程师或开发人员,以及任何喜欢笔记完全私密所带来的安全感的人。 - -> 具体使用问题,仍需参考官方文档 \ No newline at end of file diff --git a/obsidian_livesync/README_en.md b/obsidian_livesync/README_en.md deleted file mode 100644 index 7325cae0a..000000000 --- a/obsidian_livesync/README_en.md +++ /dev/null @@ -1,21 +0,0 @@ -# Create Database -After deploying CouchDB successfully, you need to manually create a database for the plugin to connect and sync. Visit `http://localhost:5984/_utils`, log in with your credentials, and click `Create Database` to create a database as per your preference. - -> If you want to access Self-hosted LiveSync from a mobile device, you need a valid SSL certificate. - -# Self-hosted LiveSync -**Self-hosted LiveSync** is a community-implemented online sync plugin. It uses a self-hosted or purchased CouchDB as a middleware server and is compatible with all platforms supported by Obsidian. - -> This plugin is not compatible with the official `Obsidian Sync` service. - -## Features: -- Visual conflict resolver -- Near real-time bidirectional sync across multiple devices -- Supports CouchDB and compatible services like IBM Cloudant -- End-to-end encryption -- Plugin sync (Beta) -- Receive WebClip from [obsidian-livesync-webclip](https://chrome.google.com/webstore/detail/obsidian-livesync-webclip/jfpaflmpckblieefkegjncjoceapakdf) (not applicable for end-to-end encryption) - -Ideal for researchers, engineers, or developers who need complete autonomy over their notes for security reasons, as well as anyone who values the privacy of their notes. - -> For detailed usage, refer to the official documentation. \ No newline at end of file diff --git a/obsidian_livesync/data.yml b/obsidian_livesync/data.yml deleted file mode 100644 index 3b2c22355..000000000 --- a/obsidian_livesync/data.yml +++ /dev/null @@ -1,33 +0,0 @@ -name: Obsidian LiveSync -tags: - - 实用工具 -title: Obsidian 在线同步插件 -description: Obsidian 在线同步插件 -additionalProperties: - key: obsidian_livesync - name: Obsidian LiveSync - tags: - - Tool - shortDescZh: Obsidian 在线同步插件 - shortDescEn: Obsidian Self-hosted LiveSync - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://github.com/vrtmrz/obsidian-livesync - github: https://github.com/vrtmrz/obsidian-livesync - document: https://github.com/vrtmrz/obsidian-livesync/blob/main/docs/setup_own_server_cn.md - description: - en: Obsidian Self-hosted LiveSync - zh: Obsidian 自托管实时同步 - zh-Hant: Obsidian 自託管實時同步 - ja: Obsidian 自己ホスト型ライブ同期 - ms: Obsidian LiveSync yang dihoskan sendiri - pt-br: Obsidian LiveSync auto-hospedado - ru: Обсидиан Самостоятельно размещаемая синхронизация в реальном времени - ko: Obsidian 자체 호스팅 실시간 동기화 - architectures: - - amd64 - - arm64 - - ppc64le - - s390x \ No newline at end of file diff --git a/obsidian_livesync/logo.png b/obsidian_livesync/logo.png deleted file mode 100644 index 321ff40b9..000000000 Binary files a/obsidian_livesync/logo.png and /dev/null differ diff --git a/oceanbase/4.3.5/data.yml b/oceanbase/4.3.5/data.yml deleted file mode 100644 index eb373d32b..000000000 --- a/oceanbase/4.3.5/data.yml +++ /dev/null @@ -1,56 +0,0 @@ -additionalProperties: - formFields: - - default: 2881 - edit: true - envKey: PANEL_APP_PORT_MYSQL - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number - - default: 'oceanbase' - edit: true - envKey: OB_TENANT_NAME - labelEn: TENANT NAME - labelZh: 租户名 - required: true - rule: paramCommon - type: text - - default: '' - edit: true - envKey: OB_SYS_PASSWORD - labelEn: Password of sys@root - labelZh: SYS 租户密码 - required: false - type: password - - default: 6 - edit: true - envKey: OB_MEMORY_LIMIT - labelEn: MEMORY LIMIT(Unit GB) - labelZh: 内存 (单位:GB) - required: true - rule: paramPort - type: number - - default: ./data - edit: true - envKey: OB_MOUNT_PATH - labelEn: Mount path of OceanBase files - labelZh: OceanBase 文件挂载路径 - required: true - type: text - - default: 5 - edit: true - envKey: OB_DATAFILE_SIZE - labelEn: DATAFILE SIZE(Unit GB) - labelZh: 数据文件大小 (单位:GB) - required: true - rule: paramPort - type: number - - default: 5 - edit: true - envKey: OB_LOG_DISK_SIZE - labelEn: LOG DISK SIZE(Unit GB) - labelZh: 日志文件大小 (单位:GB) - required: true - rule: paramPort - type: number diff --git a/oceanbase/4.3.5/docker-compose.yml b/oceanbase/4.3.5/docker-compose.yml deleted file mode 100644 index 5846cbcbb..000000000 --- a/oceanbase/4.3.5/docker-compose.yml +++ /dev/null @@ -1,25 +0,0 @@ -services: - oceanbase: - image: oceanbase/oceanbase-ce:4.3.5-lts - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_MYSQL}:2881 - environment: - MODE: mini - OB_CLUSTER_NAME: ob_1panel - OB_MEMORY_LIMIT: ${OB_MEMORY_LIMIT}G - OB_DATAFILE_SIZE: ${OB_DATAFILE_SIZE}G - OB_LOG_DISK_SIZE: ${OB_LOG_DISK_SIZE}G - OB_SYS_PASSWORD: ${OB_SYS_PASSWORD} - OB_TENANT_NAME: ${OB_TENANT_NAME} - volumes: - - ${OB_MOUNT_PATH}/ob:/root/ob - - ./data/.obd/cluster:/root/.obd/cluster - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/oceanbase/4.3.5/scripts/init.sh b/oceanbase/4.3.5/scripts/init.sh deleted file mode 100644 index c65226979..000000000 --- a/oceanbase/4.3.5/scripts/init.sh +++ /dev/null @@ -1,14 +0,0 @@ -source ./.env - -LOG='./init.log' -mkdir -p $PWD/data/.obd/cluster 2>&1 >> $LOG || exit 11 -if [ "x$OB_INSTALL_PATH" != "x" ]; then - HOME_PATH="$OB_INSTALL_PATH/ob/$CONTAINER_NAME" - echo "link $HOME_PATH to $OB_MOUNT_PATH/ob" >> $LOG - mkdir -p $HOME_PATH 2>&1 >> $LOG || exit 10 - ln -sf $HOME_PATH ./data/ob 2>&1 >> $LOG || exit 12 - echo "HOME_PATH=$HOME_PATH" >> ./.env -else - mkdir -p $OB_MOUNT_PATH/ob 2>&1 >> $LOG || exit 10 - echo "install path not set" >> $LOG -fi diff --git a/oceanbase/4.3.5/scripts/uninstall.sh b/oceanbase/4.3.5/scripts/uninstall.sh deleted file mode 100644 index db5a2bcd0..000000000 --- a/oceanbase/4.3.5/scripts/uninstall.sh +++ /dev/null @@ -1,7 +0,0 @@ -source ./.env - -LOG='./uninstall.log' - -HOME_PATH=`realpath $OB_MOUNT_PATH/ob/` -echo "remove $HOME_PATH" >> $LOG -rm -fr $OB_MOUNT_PATH/ob/ 2>&1 >> $LOG || exit 10 diff --git a/oceanbase/README.md b/oceanbase/README.md deleted file mode 100644 index 2d5042ad3..000000000 --- a/oceanbase/README.md +++ /dev/null @@ -1,41 +0,0 @@ -# OceanBase - -为现代数据架构打造的开源分布式数据库。兼容 MySQL 的单机分布式一体化国产开源数据库,具有原生分布式架构,支持金融级高可用、透明水平扩展、分布式事务、多租户和语法兼容等企业级特性。OceanBase 内核通过大规模商用场景的考验,已服务众多行业客户;面向未来携手社区生态伙伴,共建开源开放的数据库内核和生态。 - -## 使用说明 - -1. 默认配置为最小配置,请勿再调小 -2. SYS租户密码是SYS租户root账号的密码,并非业务租户的密码,业务租户请登录业务租户后自行修改 -3. 请使用业务租户,不要直接使用SYS租户 -4. 您可以使用 mysql 客户端链接业务租户,比如 mysql -h127.0.0.1 -P2881 -uroot@test - 1. 其中 2881 为默认端口,请自行修改为对应的配置端口 - 2. 其中 test 为默认业务租户名,请自行修改为对应的配置租户名 -5. 请确保安装目录为剩余空间大于 数据文件大小 + 日志文件大小 -6. OceanBase 的存储空间是预分配的,因此数据库启动时便会根据配置占用对应的空间,不必因为磁盘使用空间突然增加而担忧 -7. 卸载时将自动清理数据文件,卸载前请确保数据已备份 - -## 核心特性 - -### 高可用 - -独创 “三地五中心” 容灾架构方案,建立金融行业无损容灾新标准。支持同城/异地容灾,可实现多地多活,满足金融行业 6 级容灾标准(RPO=0,RTO< 8s),数据零丢失。 - -### 高兼容 - -高度兼容 Oracle 和 MySQL,覆盖绝大多数常见功能,支持过程语言、触发器等高级特性,提供自动迁移工具,支持迁移评估和反向同步以保障数据迁移安全,可支撑金融、政府、运营商等关键行业核心场景替代。 - -### 水平扩展 - -实现透明水平扩展,支持业务快速的扩容缩容,同时通过准内存处理架构实现高性能。支持集群节点超过数千个,单集群最大数据量超过 3PB,最大单表行数达万亿级。 - -### 低成本 - -基于 LSM-Tree 的高压缩引擎,存储成本降低 70% - 90%;原生支持多租户架构,同集群可为多个独立业务提供服务,租户间数据隔离,降低部署和运维成本。 - -### 实时 HTAP - -基于“同一份数据,同一个引擎”,同时支持在线实时交易及实时分析两种场景,“一份数据”的多个副本可以存储成多种形态,用于不同工作负载,从根本上保持数据一致性。 - -### 安全可靠 - -自 2010 年开始完全自主研发,代码级可控,自研单机分布式一体化架构,连续多年通过大规模金融核心场景的可靠性验证;完备的角色权限管理体系,数据存储和通信全链路透明加密,支持国密算法,通过等保三级专项合规检测。 \ No newline at end of file diff --git a/oceanbase/data.yml b/oceanbase/data.yml deleted file mode 100644 index d17d25049..000000000 --- a/oceanbase/data.yml +++ /dev/null @@ -1,23 +0,0 @@ -name: OceanBase -tags: - - 数据库 -title: OceanBase -description: 兼容 MySQL 的单机分布式一体化国产开源数据库 -additionalProperties: - key: oceanbase - name: OceanBase - tags: - - Database - shortDescZh: 兼容 MySQL 的单机分布式一体化国产开源数据库 - shortDescEn: An integrated domestic open-source database that is compatible with MySQL and supports single-node distributed architecture - type: runtime - crossVersionUpdate: false - limit: 0 - recommend: 0 - website: https://open.oceanbase.com/ - github: https://github.com/oceanbase/oceanbase - document: https://www.oceanbase.com/docs - memoryRequired: 8192 - architectures: - - amd64 - - arm64 diff --git a/oceanbase/logo.png b/oceanbase/logo.png deleted file mode 100644 index f4436f966..000000000 Binary files a/oceanbase/logo.png and /dev/null differ diff --git a/ollama-webui/0.6.15/data.yml b/ollama-webui/0.6.15/data.yml deleted file mode 100644 index 621a461c3..000000000 --- a/ollama-webui/0.6.15/data.yml +++ /dev/null @@ -1,54 +0,0 @@ -additionalProperties: - formFields: - - default: 3000 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh-Hant: 埠 - zh: 端口 - required: true - rule: paramPort - type: number - - default: '示例:http://192.168.10.100:11434' - edit: true - envKey: OLLAMA_BASE_URL - labelEn: Ollama Base Url - labelZh: Ollama 服务地址 - label: - en: Ollama Base Url - ja: OllamaベースURL - ms: URL Asas Ollama - pt-br: URL Base Ollama - ru: Базовый URL Ollama - ko: Ollama 기본 URL - zh-hant: Ollama 服務地址 - zh: Ollama 服务地址 - required: true - rule: paramExtUrl - type: text - - default: 'ollama' - edit: true - envKey: WEBUI_SECRET_KEY - labelEn: Secret Key - labelZh: Secret Key - label: - en: Secret Key - ja: シークレットキー - ms: Kunci Rahsia - pt-br: Chave Secreta - ru: Секретный ключ - ko: 비밀 키 - zh-hant: 密鑰 - zh: Secret Key - random: true - required: false - rule: paramComplexity - type: password \ No newline at end of file diff --git a/ollama-webui/0.6.15/docker-compose.yml b/ollama-webui/0.6.15/docker-compose.yml deleted file mode 100644 index e41462c53..000000000 --- a/ollama-webui/0.6.15/docker-compose.yml +++ /dev/null @@ -1,19 +0,0 @@ -services: - open-webui: - image: ghcr.io/open-webui/open-webui:v0.6.15 - container_name: ${CONTAINER_NAME} - restart: unless-stopped - ports: - - ${PANEL_APP_PORT_HTTP}:8080 - networks: - - 1panel-network - environment: - - OLLAMA_BASE_URL=${OLLAMA_BASE_URL} - - WEBUI_SECRET_KEY=${WEBUI_SECRET_KEY} - volumes: - - ./data:/app/backend/data - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/ollama-webui/README.md b/ollama-webui/README.md deleted file mode 100644 index 9c06157c6..000000000 --- a/ollama-webui/README.md +++ /dev/null @@ -1,40 +0,0 @@ -# Open WebUI - -**Open WebUI** 是针对 LLM 用户友好的 WebUI,支持的 LLM 运行程序包括 Ollama、OpenAI 兼容的 API。 - -## 主要功能: - -- **直观的界面**:我们的聊天界面从 ChatGPT 中汲取灵感,确保用户友好的体验。 -- **响应式设计**:在桌面和移动设备上享受无缝体验。 -- **快速响应**:享受快速响应的性能。 -- **轻松部署**:使用 Docker 或 Kubernetes(kubectl、kustomize 或 helm)无缝安装,以获得无忧体验。 -- **代码语法高亮**:通过我们的语法突出显示功能增强代码的可读性。 -- **Markdown 和 LaTeX 支持**:通过全面的 Markdown 和 LaTeX 功能来丰富交互,提升您的 LLM 体验。 -- **RAG 集成**:通过突破性的检索增强生成 (RAG) 支持深入了解聊天交互的未来。此功能将文档交互无缝集成到您的聊天体验中。您可以将文档直接加载到聊天中或将文件添加到文档库中,使用#提示中的命令轻松访问它们。在 alpha 阶段,当我们积极完善和增强此功能以确保最佳性能和可靠性时,可能会偶尔出现问题。 -- **网页浏览功能**:使用 `#URL` 后的命令将网站无缝集成到您的聊天体验中。此功能允许您将网络内容直接合并到您的对话中,从而增强交互的丰富性和深度。 -- **提示预设支持**:使用聊天输入中的命令立即访问预设提示。轻松加载预定义的对话开头并加快您的互动。通过Open WebUI Community集成轻松导入提示。 -- **RLHF 注释**:通过对消息进行“赞成”和“反对”评级来增强您的消息的能力,从而促进根据人类反馈 (RLHF) 创建强化学习数据集。利用您的消息来训练或微调模型,同时确保本地保存数据的机密性。 -- **对话管理**:轻松分类和定位特定聊天,以便快速参考和简化数据收集。 -- **下载/删除模型**:直接从 Web UI 轻松下载或删除模型。 -- **GGUF 文件模型创建**:通过直接从 Web UI 上传 GGUF 文件,轻松创建 Ollama 模型。简化的流程,可选择从您的计算机上传或从 Hugging Face 下载 GGUF 文件。 -- **多模型支持**:不同聊天模型之间无缝切换,实现多样化交互。 -- **多模式支持**:与支持多模式交互的模型无缝交互,包括图像(例如 LLava)。 -- **模型文件生成器**:通过 Web UI 轻松创建 Ollama 模型文件。通过开放 WebUI 社区集成轻松创建和添加角色/代理、自定义聊天元素以及导入模型文件。 -- **多个模特对话**:轻松地同时与多个模特互动,利用他们的独特优势来获得最佳响应。通过并行利用一组不同的模型来增强您的体验。 -- **协作聊天**:通过无缝编排群组对话来利用多个模型的集体智慧。使用@命令指定模型,在聊天界面中启用动态且多样化的对话。让自己沉浸在聊天环境中的集体智慧中。 -- **再生历史访问**:轻松重新访问和探索您的整个再生历史。 -- **聊天历史记录**:轻松访问和管理您的对话历史记录。 -- **导入/导出聊天历史记录**:将您的聊天数据无缝移入和移出平台。 -- **语音输入支持**:通过语音交互与您的模型互动;享受直接与模特交谈的便利。此外,探索在 3 秒静音后自动发送语音输入的选项,以获得简化的体验。 -- **使用高级参数进行微调控制**:通过调整温度等参数和定义系统提示来获得更深层次的控制,以根据您的特定偏好和需求定制对话。 -- **图像生成集成**:使用 AUTOMATIC1111 API(本地)和 DALL-E 无缝集成图像生成功能,通过动态视觉内容丰富您的聊天体验。 -- **OpenAI API 集成**:轻松集成 OpenAI 兼容 API,与 Ollama 模型进行多功能对话。自定义 API 基本 URL 以链接到LMStudio、Mistral、OpenRouter 等。 -- **多种 OpenAI 兼容 API 支持**:无缝集成和定制各种 OpenAI 兼容 API,增强聊天交互的多功能性。 -- **外部 Ollama 服务器连接**:通过配置环境变量无缝链接到托管在不同地址上的外部 Ollama 服务器。 -- **多个 Ollama 实例负载平衡**:轻松地在多个 Ollama 实例之间分配聊天请求,以增强性能和可靠性。 -- **多用户管理**:通过我们直观的管理面板轻松监督和管理用户,简化用户管理流程。 -- **基于角色的访问控制(RBAC)**:通过受限的权限确保安全访问;只有经过授权的个人才能访问您的 Ollama,并且为管理员保留专有的模型创建/拉取权限。 -- **后端反向代理支持**:通过 Open WebUI 后端和 Ollama 之间的直接通信增强安全性。这一关键功能消除了通过 LAN 公开 Ollama 的需要。从 Web UI 向`/ollama/api`路由发出的请求会从后端无缝重定向到 Ollama,从而增强整体系统安全性。 -- **持续更新**:我们致力于通过定期更新和新功能来改进 Open WebUI。 - -**Open WebUI** 提供了广泛的功能集和高度的可扩展性,是理想的 LLM 用户工具。 \ No newline at end of file diff --git a/ollama-webui/README_en.md b/ollama-webui/README_en.md deleted file mode 100644 index 78200f445..000000000 --- a/ollama-webui/README_en.md +++ /dev/null @@ -1,40 +0,0 @@ -# Open WebUI - -**Open WebUI** is a user-friendly WebUI for LLM users, supporting LLM runtime programs such as Ollama and OpenAI compatible APIs. - -## Main Features: - -- **Intuitive Interface**: Our chat interface is inspired by ChatGPT, ensuring a user-friendly experience. -- **Responsive Design**: Enjoy a seamless experience on both desktop and mobile devices. -- **Fast Response**: Experience fast response performance. -- **Easy Deployment**: Seamlessly install using Docker or Kubernetes (kubectl, kustomize, or helm) for a hassle-free experience. -- **Code Syntax Highlighting**: Enhance code readability with our syntax highlighting feature. -- **Markdown and LaTeX Support**: Enrich interactions with comprehensive Markdown and LaTeX features to enhance your LLM experience. -- **RAG Integration**: Support for cutting-edge retrieval-augmented generation (RAG) that allows you to deeply explore the future of chat interactions. This feature seamlessly integrates document interactions into your chat experience. You can load documents directly into the chat or add files to the document library and easily access them using #prompt commands. During the alpha phase, we are actively refining and enhancing this feature to ensure optimal performance and reliability, though occasional issues may arise. -- **Web Browsing Capabilities**: Seamlessly integrate websites into your chat experience using commands with `#URL`. This feature lets you directly merge web content into your conversation, enriching the depth and interaction. -- **Prompt Presets Support**: Instantly access preset prompts in the chat input. Easily load predefined conversation starters and speed up your interactions. You can easily import prompts via Open WebUI Community integration. -- **RLHF Annotation**: Enhance the capability of your messages by rating them "upvote" and "downvote" to facilitate the creation of reinforcement learning datasets based on human feedback (RLHF). Use your messages to train or fine-tune models while ensuring local data confidentiality. -- **Conversation Management**: Easily categorize and locate specific chats for quick reference and simplified data collection. -- **Download/Delete Models**: Easily download or delete models directly from the Web UI. -- **GGUF File Model Creation**: Easily create Ollama models by uploading GGUF files directly from the Web UI. A simplified process allows you to upload from your computer or download GGUF files from Hugging Face. -- **Multi-Model Support**: Seamlessly switch between different chat models for diverse interactions. -- **Multi-Mode Support**: Interact seamlessly with models that support multi-modal interactions, including images (e.g., LLava). -- **Model File Generator**: Easily create Ollama model files through the Web UI. Open WebUI Community integration allows you to create and add roles/agents, customize chat elements, and import model files with ease. -- **Multiple Model Conversations**: Interact simultaneously with multiple models, leveraging their unique strengths to get the best responses. Parallelly utilizing a range of different models enhances your experience. -- **Collaborative Chat**: Seamlessly orchestrate group conversations to harness the collective intelligence of multiple models. Use the @command to specify models and enable dynamic and diverse conversations in the chat interface. Immerse yourself in the collective wisdom within the chat environment. -- **Regeneration History Access**: Easily revisit and explore your entire regeneration history. -- **Chat History Management**: Easily access and manage your chat history. -- **Import/Export Chat History**: Seamlessly import and export your chat data into and out of the platform. -- **Voice Input Support**: Interact with your model through voice; enjoy the convenience of speaking directly with the model. Additionally, explore the option to automatically send voice input after 3 seconds of silence for a streamlined experience. -- **Advanced Parameter Fine-Tuning Control**: Gain deeper control over your conversations by adjusting parameters like temperature and defining system prompts, allowing you to tailor your interaction based on your specific preferences and needs. -- **Image Generation Integration**: Seamlessly integrate image generation features with AUTOMATIC1111 API (local) and DALL-E, enriching your chat experience with dynamic visual content. -- **OpenAI API Integration**: Easily integrate OpenAI compatible APIs for multi-functional conversations with Ollama models. Customize the API base URL to link with LMStudio, Mistral, OpenRouter, etc. -- **Multiple OpenAI Compatible API Support**: Seamlessly integrate and customize various OpenAI compatible APIs to enhance the multi-functionality of your chat interactions. -- **External Ollama Server Connection**: Seamlessly connect to external Ollama servers hosted at different addresses by configuring environment variables. -- **Multiple Ollama Instance Load Balancing**: Effortlessly distribute chat requests across multiple Ollama instances to enhance performance and reliability. -- **Multi-User Management**: Easily monitor and manage users through our intuitive management panel, simplifying the user management process. -- **Role-Based Access Control (RBAC)**: Ensure secure access with restricted permissions; only authorized individuals can access your Ollama, with exclusive model creation/pulling rights reserved for administrators. -- **Backend Reverse Proxy Support**: Enhance security with direct communication between the Open WebUI backend and Ollama. This key feature eliminates the need to expose Ollama over LAN. Requests routed from the Web UI to `/ollama/api` will seamlessly redirect to Ollama from the backend, improving overall system security. -- **Continuous Updates**: We are committed to improving Open WebUI with regular updates and new features. - -**Open WebUI** offers a broad feature set and high scalability, making it the ideal tool for LLM users. \ No newline at end of file diff --git a/ollama-webui/data.yml b/ollama-webui/data.yml deleted file mode 100644 index 417aaeaf2..000000000 --- a/ollama-webui/data.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: OpenWebUI -tags: - - AI / 大模型 -title: 面向 LLM 的用户友好型 WebUI -description: 面向 LLM 的用户友好型 WebUI -additionalProperties: - key: ollama-webui - name: OpenWebUI - tags: - - AI - shortDescZh: 面向 LLM 的用户友好型 WebUI - shortDescEn: User-friendly WebUI for LLMs - description: - en: User-friendly WebUI for LLMs - ja: LLM向けの使いやすいWebUI - ms: WebUI mesra pengguna untuk LLM - pt-br: WebUI amigável para LLMs - ru: Удобный WebUI для LLM - ko: LLM을 위한 사용자 친화적인 WebUI - zh-hant: 用於 LLM 的友好型 WebUI - zh: 面向 LLM 的用户友好型 WebUI - type: website - crossVersionUpdate: true - limit: 1 - recommend: 0 - website: https://openwebui.com/ - github: https://github.com/open-webui/open-webui - document: https://docs.openwebui.com/ - architectures: - - amd64 - - arm64 diff --git a/ollama-webui/logo.png b/ollama-webui/logo.png deleted file mode 100644 index 6620e95bd..000000000 Binary files a/ollama-webui/logo.png and /dev/null differ diff --git a/ollama/0.9.2/data.yml b/ollama/0.9.2/data.yml deleted file mode 100644 index 1d6bbdeff..000000000 --- a/ollama/0.9.2/data.yml +++ /dev/null @@ -1,19 +0,0 @@ -additionalProperties: - formFields: - - default: 11434 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh-Hant: 埠 - zh: 端口 - required: true - rule: paramPort - type: number \ No newline at end of file diff --git a/ollama/0.9.2/docker-compose.yml b/ollama/0.9.2/docker-compose.yml deleted file mode 100644 index d428bc10f..000000000 --- a/ollama/0.9.2/docker-compose.yml +++ /dev/null @@ -1,17 +0,0 @@ -services: - ollama: - image: ollama/ollama:0.9.2 - container_name: ${CONTAINER_NAME} - restart: unless-stopped - ports: - - ${PANEL_APP_PORT_HTTP}:11434 - networks: - - 1panel-network - tty: true - volumes: - - ./data:/root/.ollama - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/ollama/README.md b/ollama/README.md deleted file mode 100644 index 75cf47540..000000000 --- a/ollama/README.md +++ /dev/null @@ -1,17 +0,0 @@ -# Ollama - -**Ollama** 是一个开源的大型语言模型服务,提供了类似 OpenAI 的 API 接口和聊天界面,可以非常方便地部署最新版本的 GPT 模型并通过接口使用。支持热加载模型文件,无需重新启动即可切换不同的模型。 - -## 快速开始 - -> 进入 `容器` 列表,找到 Ollama 容器,点击进入终端运行并与 [DeepSeek R1](https://ollama.com/library/deepseek-r1) 聊天: - -``` -ollama run deepseek-r1:1.5b -``` - -## 模型库 - -Ollama 支持 [ollama.com/library](https://ollama.com/library) 上提供的一系列模型 - -> 注意:您应该至少有 8 GB 可用 RAM 来运行 7B 型号,16 GB 来运行 13B 型号,32 GB 来运行 33B 型号。 diff --git a/ollama/README_en.md b/ollama/README_en.md deleted file mode 100644 index 7cc85cc8e..000000000 --- a/ollama/README_en.md +++ /dev/null @@ -1,17 +0,0 @@ -# Ollama - -**Ollama** is an open-source large language model service that provides an API interface and chat interface similar to OpenAI. It allows seamless deployment of the latest GPT models and usage through APIs. It supports hot-loading model files, enabling model switching without restarting. - -## Quick Start - -> Access the `Containers` list, find the Ollama container, and open the terminal to chat with [DeepSeek R1](https://ollama.com/library/deepseek-r1): - -``` -ollama run deepseek-r1:1.5b -``` - -## Model Library - -Ollama supports a variety of models available at [ollama.com/library](https://ollama.com/library). - -> **Note**: You should have at least 8 GB of available RAM to run 7B models, 16 GB for 13B models, and 32 GB for 33B models. \ No newline at end of file diff --git a/ollama/data.yml b/ollama/data.yml deleted file mode 100644 index 316bfefad..000000000 --- a/ollama/data.yml +++ /dev/null @@ -1,33 +0,0 @@ -name: Ollama -tags: - - AI / 大模型 -title: 启动并运行 DeepSeek-R1、Llama 3.3、qwen2.5 及其他大型语言模型 -description: 启动并运行 DeepSeek-R1、Llama 3.3、qwen2.5 及其他大型语言模型 -additionalProperties: - key: ollama - name: Ollama - tags: - - AI - shortDescZh: 启动并运行 DeepSeek-R1、Llama 3.3、qwen2.5 及其他大型语言模型 - shortDescEn: Get up and running with DeepSeek-R1, Llama 3.3, qwen2.5 and other large language models - description: - en: Get up and running with DeepSeek-R1, Llama 3.3, qwen2.5 and other large language models - ja: DeepSeek-R1、Llama 3.3、qwen2.5 などの大規模言語モデルを起動して実行 - ms: Mulakan dan jalankan DeepSeek-R1, Llama 3.3, qwen2.5 dan model bahasa besar lain - pt-br: Inicie e execute DeepSeek-R1, Llama 3.3, qwen2.5 e outros modelos de linguagem grandes - ru: Запустите и выполните DeepSeek-R1, Llama 3.3, qwen2.5 и другие крупные языковые модели - ko: DeepSeek-R1, Llama 3.3, qwen2.5 및 기타 대형 언어 모델을 시작하고 실행 - zh-hant: 啟動並執行 DeepSeek-R1、Llama 3.3、qwen2.5 及其他大型語言模型 - zh: 启动并运行 DeepSeek-R1、Llama 3.3、qwen2.5 及其他大型语言模型 - type: website - crossVersionUpdate: true - limit: 1 - recommend: 70 - website: https://ollama.com/ - github: https://github.com/ollama/ollama - document: https://github.com/ollama/ollama/blob/main/docs/README.md - gpuSupport: true - memoryRequired: 2048 - architectures: - - amd64 - - arm64 \ No newline at end of file diff --git a/ollama/logo.png b/ollama/logo.png deleted file mode 100644 index 2bfbe7aee..000000000 Binary files a/ollama/logo.png and /dev/null differ diff --git a/one-api/0.6.10/data.yml b/one-api/0.6.10/data.yml deleted file mode 100644 index dcaf87b00..000000000 --- a/one-api/0.6.10/data.yml +++ /dev/null @@ -1,47 +0,0 @@ -additionalProperties: - formFields: - - default: "" - envKey: PANEL_DB_HOST - key: mysql - labelEn: Database Service - labelZh: 数据库服务 - required: true - type: service - - default: oneapi - envKey: PANEL_DB_NAME - labelEn: Database - labelZh: 数据库名 - random: true - required: true - rule: paramCommon - type: text - - default: oneapi - envKey: PANEL_DB_USER - labelEn: User - labelZh: 数据库用户 - random: true - required: true - rule: paramCommon - type: text - - default: oneapi - envKey: PANEL_DB_USER_PASSWORD - labelEn: Password - labelZh: 数据库用户密码 - random: true - required: true - type: password - - default: 3000 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number - - default: Asia/Shanghai - edit: true - envKey: TZ - labelEn: Time Zone - labelZh: 时区 - required: true - type: text \ No newline at end of file diff --git a/one-api/0.6.10/docker-compose.yml b/one-api/0.6.10/docker-compose.yml deleted file mode 100644 index 0e85d006a..000000000 --- a/one-api/0.6.10/docker-compose.yml +++ /dev/null @@ -1,24 +0,0 @@ -services: - one-api: - image: justsong/one-api:v0.6.10 - container_name: ${CONTAINER_NAME} - restart: always - ports: - - ${PANEL_APP_PORT_HTTP}:3000 - networks: - - 1panel-network - volumes: - - ./data:/data - environment: - - SQL_DSN=${PANEL_DB_USER}:${PANEL_DB_USER_PASSWORD}@tcp(${PANEL_DB_HOST}:${PANEL_DB_PORT})/${PANEL_DB_NAME} # 修改此行,或注释掉以使用 SQLite 作为数据库 - - TZ=${TZ} -# - REDIS_CONN_STRING=redis://redis -# - SESSION_SECRET=random_string # 修改为随机字符串 -# - NODE_TYPE=slave # 多机部署时从节点取消注释该行 -# - SYNC_FREQUENCY=60 # 需要定期从数据库加载数据时取消注释该行 -# - FRONTEND_BASE_URL=https://openai.justsong.cn # 多机部署时从节点取消注释该行 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/one-api/README.md b/one-api/README.md deleted file mode 100644 index 14958b1a7..000000000 --- a/one-api/README.md +++ /dev/null @@ -1,51 +0,0 @@ -# 使用说明 - -- 默认账户密码 - -``` -username:root -password:123456 -``` - -# One API - -**One API** 是一个通过标准的 OpenAI API 格式访问所有的大模型,开箱即用。 - -## 主要功能: - -- 支持多种大模型: - + [x] [OpenAI ChatGPT 系列模型](https://platform.openai.com/docs/guides/gpt/chat-completions-api)(支持 [Azure OpenAI API](https://learn.microsoft.com/en-us/azure/ai-services/openai/reference)) - + [x] [Anthropic Claude 系列模型](https://anthropic.com) - + [x] [Google PaLM2/Gemini 系列模型](https://developers.generativeai.google) - + [x] [百度文心一言系列模型](https://cloud.baidu.com/doc/WENXINWORKSHOP/index.html) - + [x] [阿里通义千问系列模型](https://help.aliyun.com/document_detail/2400395.html) - + [x] [讯飞星火认知大模型](https://www.xfyun.cn/doc/spark/Web.html) - + [x] [智谱 ChatGLM 系列模型](https://bigmodel.cn) - + [x] [360 智脑](https://ai.360.cn) - + [x] [腾讯混元大模型](https://cloud.tencent.com/document/product/1729) -- 支持配置镜像以及众多第三方代理服务。 -- 支持通过**负载均衡**的方式访问多个渠道。 -- 支持 **stream 模式**,可以通过流式传输实现打字机效果。 -- 支持**多机部署**。 -- 支持**令牌管理**,设置令牌的过期时间和额度。 -- 支持**兑换码管理**,支持批量生成和导出兑换码,可使用兑换码为账户进行充值。 -- 支持**通道管理**,批量创建通道。 -- 支持**用户分组**以及**渠道分组**,支持为不同分组设置不同的倍率。 -- 支持渠道**设置模型列表**。 -- 支持**查看额度明细**。 -- 支持**用户邀请奖励**。 -- 支持以美元为单位显示额度。 -- 支持发布公告,设置充值链接,设置新用户初始额度。 -- 支持模型映射,重定向用户的请求模型,如无必要请不要设置,设置之后会导致请求体被重新构造而非直接透传,会导致部分还未正式支持的字段无法传递成功。 -- 支持失败自动重试。 -- 支持绘图接口。 -- 支持 [Cloudflare AI Gateway](https://developers.cloudflare.com/ai-gateway/providers/openai/),渠道设置的代理部分填写 `https://gateway.ai.cloudflare.com/v1/ACCOUNT_TAG/GATEWAY/openai` 即可。 -- 持丰富的**自定义**设置, - 1. 支持自定义系统名称,logo 以及页脚。 - 2. 支持自定义首页和关于页面,可以选择使用 HTML & Markdown 代码进行自定义,或者使用一个单独的网页通过 iframe 嵌入。 -- 支持通过系统访问令牌访问管理 API(bearer token,用以替代 cookie,你可以自行抓包来查看 API 的用法)。 -- 支持 Cloudflare Turnstile 用户校验。 -- 支持用户管理,支持**多种用户登录注册方式**: - + 邮箱登录注册(支持注册邮箱白名单)以及通过邮箱进行密码重置。 - + [GitHub 开放授权](https://github.com/settings/applications/new)。 - + 微信公众号授权(需要额外部署 [WeChat Server](https://github.com/songquanpeng/wechat-server))。 \ No newline at end of file diff --git a/one-api/data.yml b/one-api/data.yml deleted file mode 100644 index f31973e2e..000000000 --- a/one-api/data.yml +++ /dev/null @@ -1,22 +0,0 @@ -name: One API -tags: - - AI / 大模型 -title: OpenAI 接口管理 & 分发系统 -description: OpenAI 接口管理 & 分发系统 -additionalProperties: - key: one-api - name: One API - tags: - - AI - shortDescZh: 通过标准的 OpenAI API 格式访问所有的大模型,开箱即用 - shortDescEn: Access all LLM through the standard OpenAI API format, easy to deploy & use - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://openai.justsong.cn/ - github: https://github.com/songquanpeng/one-api - document: https://github.com/songquanpeng/one-api - architectures: - - amd64 - - arm64 \ No newline at end of file diff --git a/one-api/logo.png b/one-api/logo.png deleted file mode 100644 index 0f237a226..000000000 Binary files a/one-api/logo.png and /dev/null differ diff --git a/onedev/11.11.1/data.yml b/onedev/11.11.1/data.yml deleted file mode 100644 index eb34e1a37..000000000 --- a/onedev/11.11.1/data.yml +++ /dev/null @@ -1,36 +0,0 @@ -additionalProperties: - formFields: - - default: 40085 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh: 端口 - zh-Hant: 埠 - required: true - rule: paramPort - type: number - - default: 40086 - edit: true - envKey: PANEL_APP_PORT_SSH - labelEn: SSH Port - labelZh: SSH 端口 - label: - en: SSH Port - ja: SSH ポート - ms: Port SSH - pt-br: Porta SSH - ru: Порт SSH - ko: SSH 포트 - zh: SSH 端口 - zh-Hant: SSH 埠 - required: true - rule: paramPort - type: number diff --git a/onedev/11.11.1/docker-compose.yml b/onedev/11.11.1/docker-compose.yml deleted file mode 100644 index 4c387b9fb..000000000 --- a/onedev/11.11.1/docker-compose.yml +++ /dev/null @@ -1,18 +0,0 @@ -services: - onedev: - image: 1dev/server:11.11.1 - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTP}:6610" - - "${PANEL_APP_PORT_SSH}:6611" - volumes: - - ./data:/opt/onedev - - /var/run/docker.sock:/var/run/docker.sock - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/onedev/README.md b/onedev/README.md deleted file mode 100644 index 66a6963e7..000000000 --- a/onedev/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# OneDev - -**OneDev** 是一款带有 CI/CD、Kanban 和 Packages 的 Git 服务器。无缝整合。无与伦比的体验。 - -# 功能简介: - -- **项目管理:** 提供全面的项目管理功能,包括创建、编辑和删除项目,以及管理项目成员和权限。 -- **代码托管:** 支持代码托管功能,用户可以在 OneDev 中托管他们的代码仓库,并进行版本控制。 -- **持续集成/持续部署 (CI/CD):** 内置 CI/CD 功能,支持自动化构建、测试和部署流程。 -- **问题跟踪:** 提供问题跟踪功能,用户可以创建、分配和解决问题,以便更好地管理项目。 -- **Wiki:** 提供 Wiki 功能,用于创建和共享项目文档、说明和教程。 -- **代码审查:** 支持代码审查功能,方便进行代码审查和合并请求的管理。 -- **Webhooks 支持:** 支持 Webhooks,允许用户在特定事件发生时触发自定义操作。 -- **多语言支持:** 提供多语言界面,以满足全球用户的需求。 -- **用户友好界面:** 提供直观友好的用户界面,使用户能够轻松上手并高效进行项目管理和开发。 -- **权限管理:** 支持灵活的权限管理,管理员可以根据需要分配和管理用户权限。 diff --git a/onedev/README_en.md b/onedev/README_en.md deleted file mode 100644 index 06bf0629f..000000000 --- a/onedev/README_en.md +++ /dev/null @@ -1,14 +0,0 @@ -# OneDev -**OneDev** is a Git server with CI/CD, Kanban, and Packages, offering seamless integration and an unparalleled experience. - -## Features: -- **Project Management**: Comprehensive project management features, including creating, editing, and deleting projects, as well as managing project members and permissions. -- **Code Hosting**: Supports code hosting, allowing users to manage their repositories and version control within OneDev. -- **CI/CD**: Built-in CI/CD capabilities for automating build, test, and deployment workflows. -- **Issue Tracking**: Provides issue tracking features for creating, assigning, and resolving issues. -- **Wiki**: Offers a Wiki for creating and sharing project documentation, guides, and tutorials. -- **Code Review**: Supports code review for managing pull requests and code merges. -- **Webhooks**: Allows users to trigger custom actions on specific events via Webhooks. -- **Multi-Language Support**: Provides a multilingual interface to cater to global users. -- **User-Friendly Interface**: Intuitive and user-friendly interface for efficient project management and development. -- **Permission Management**: Flexible permission management for assigning and managing user roles. \ No newline at end of file diff --git a/onedev/data.yml b/onedev/data.yml deleted file mode 100644 index 34e834ca0..000000000 --- a/onedev/data.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: OneDev -tags: - - DevOps -title: 带有 CI/CD、Kanban 和 Packages 的 Git 服务器 -description: 带有 CI/CD、Kanban 和 Packages 的 Git 服务器 -additionalProperties: - key: onedev - name: OneDev - tags: - - DevOps - shortDescZh: 带有 CI/CD、Kanban 和 Packages 的 Git 服务器 - shortDescEn: Git Server with CI/CD, Kanban, and Packages - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://onedev.io - github: https://github.com/theonedev/onedev - document: https://docs.onedev.io - description: - en: Git Server with CI/CD, Kanban, and Packages - zh: 带有 CI/CD、Kanban 和 Packages 的 Git 服务器 - zh-Hant: 帶有 CI/CD、Kanban 和 Packages 的 Git 伺服器 - ja: CI/CD、カンバン、およびパッケージを備えた Git サーバー - ms: Pelayan Git dengan CI/CD, Kanban, dan Pakej - pt-br: Servidor Git com CI/CD, Kanban e Pacotes - ru: Сервер Git с CI/CD, Kanban и пакетами - ko: CI/CD, Kanban 및 패키지가 포함된 Git 서버 - architectures: - - amd64 - - arm64 diff --git a/onedev/logo.png b/onedev/logo.png deleted file mode 100644 index e63903103..000000000 Binary files a/onedev/logo.png and /dev/null differ diff --git a/onlyoffice/9.0.0.1/data.yml b/onlyoffice/9.0.0.1/data.yml deleted file mode 100644 index 88fc53d49..000000000 --- a/onlyoffice/9.0.0.1/data.yml +++ /dev/null @@ -1,37 +0,0 @@ -additionalProperties: - formFields: - - default: 40156 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: HTTP Port - labelZh: HTTP 端口 - label: - en: HTTP Port - ja: HTTP ポート - ms: Port HTTP - pt-br: Porta HTTP - ru: HTTP-порт - ko: HTTP 포트 - zh: HTTP 端口 - zh-Hant: HTTP 埠 - required: true - rule: paramPort - type: number - - default: secret - edit: true - envKey: JWT_SECRET - labelEn: JWT Secret - labelZh: JWT密钥 - label: - en: JWT Secret - ja: JWT シークレット - ms: Rahsia JWT - pt-br: Segredo JWT - ru: Секрет JWT - ko: JWT 비밀 - zh: JWT密钥 - zh-Hant: JWT密鑰 - random: true - required: true - rule: paramComplexity - type: password diff --git a/onlyoffice/9.0.0.1/docker-compose.yml b/onlyoffice/9.0.0.1/docker-compose.yml deleted file mode 100644 index 0c9c6069c..000000000 --- a/onlyoffice/9.0.0.1/docker-compose.yml +++ /dev/null @@ -1,21 +0,0 @@ -services: - onlyoffice: - image: onlyoffice/documentserver:9.0.0.1 - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTP}:80" - volumes: - - ./data/logs:/var/log/onlyoffice - - ./data/data:/var/www/onlyoffice/Data - - ./data/lib:/var/lib/onlyoffice - - ./data/db:/var/lib/postgresql - environment: - - JWT_SECRET=${JWT_SECRET} - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/onlyoffice/README.md b/onlyoffice/README.md deleted file mode 100644 index 539637685..000000000 --- a/onlyoffice/README.md +++ /dev/null @@ -1,17 +0,0 @@ -# 使用说明 - -部署完成后按照页面提示,在终端执行命令,开启服务。 - -# ONLYOFFICE - -**ONLYOFFICE** 是一款全面的协作办公软件套件,集成了文档处理、电子表格和演示文稿等功能,为团队提供了无缝协作的工作环境。其功能强大,操作简便,是各种规模和类型的团队的首选工具。 - -# 功能简介: - -- **多人协作**:ONLYOFFICE 提供实时协作功能,让团队成员可以同时编辑文档、电子表格和演示文稿,无需担心版本冲突或数据丢失。 -- **云端存储**:用户可以将文件存储在ONLYOFFICE提供的云端服务中,随时随地访问和编辑,也可以选择自己的私有服务器进行部署,确保数据安全性。 -- **格式兼容**:ONLYOFFICE 支持多种文件格式,包括 Microsoft Office 格式(如.docx、.xlsx、.pptx)、OpenDocument 格式以及 PDF 等,确保用户可以方便地与其他人共享和编辑文件。 -- **强大的编辑工具**:无论是文本处理、数据处理还是演示文稿制作,ONLYOFFICE 都提供了丰富的编辑工具和格式选项,满足用户对于内容编辑和排版的各种需求。 -- **插件支持**:ONLYOFFICE 允许用户通过插件扩展功能,例如添加额外的语言支持、集成第三方服务等,使得软件更加灵活多样。 -- **安全性**:ONLYOFFICE 采用了先进的加密技术,保护用户数据的安全性和隐私,为用户提供了可靠的工作环境。 -- **跨平台支持**:ONLYOFFICE 可以在 Windows、MacOS、Linux 等操作系统上运行,并且提供了 Web 版本和移动应用程序,确保用户可以在不同设备上无缝使用。 \ No newline at end of file diff --git a/onlyoffice/README_en.md b/onlyoffice/README_en.md deleted file mode 100644 index 0219ce7a1..000000000 --- a/onlyoffice/README_en.md +++ /dev/null @@ -1,14 +0,0 @@ -# Instructions -After deployment, follow the prompts on the page and execute the command in the terminal to start the service. - -# ONLYOFFICE -**ONLYOFFICE** is a comprehensive collaborative office software suite that integrates document processing, spreadsheets, and presentations, providing a seamless collaborative work environment for teams. Its powerful features and ease of use make it the preferred tool for teams of all sizes and types. - -## Features Overview: -- **Real-Time Collaboration**: ONLYOFFICE offers real-time collaboration features, allowing team members to edit documents, spreadsheets, and presentations simultaneously without worrying about version conflicts or data loss. -- **Cloud Storage**: Users can store files in ONLYOFFICE's cloud service for anytime, anywhere access and editing, or choose to deploy on their private servers to ensure data security. -- **Format Compatibility**: ONLYOFFICE supports various file formats, including Microsoft Office formats (.docx, .xlsx, .pptx), OpenDocument formats, and PDFs, ensuring users can easily share and edit files with others. -- **Powerful Editing Tools**: Whether for text processing, data handling, or presentation creation, ONLYOFFICE provides a rich set of editing tools and formatting options to meet users' diverse content editing and layout needs. -- **Plugin Support**: ONLYOFFICE allows users to extend functionality through plugins, such as adding additional language support or integrating third-party services, making the software more flexible and versatile. -- **Security**: ONLYOFFICE employs advanced encryption technologies to protect user data and privacy, providing a reliable work environment. -- **Cross-Platform Support**: ONLYOFFICE runs on Windows, macOS, and Linux operating systems and offers web and mobile applications, ensuring seamless use across different devices. \ No newline at end of file diff --git a/onlyoffice/data.yml b/onlyoffice/data.yml deleted file mode 100644 index 4e8e6f0ff..000000000 --- a/onlyoffice/data.yml +++ /dev/null @@ -1,32 +0,0 @@ -name: ONLYOFFICE Docs -tags: - - 实用工具 -title: 免费的在线办公套件 -description: 免费的在线办公套件 -additionalProperties: - key: onlyoffice - name: ONLYOFFICE Docs - tags: - - Tool - shortDescZh: 免费的在线办公套件 - shortDescEn: A free collaborative online office suite - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://www.onlyoffice.com - github: https://github.com/ONLYOFFICE - document: https://helpcenter.onlyoffice.com - description: - en: A free collaborative online office suite - zh: 免费的在线办公套件 - zh-Hant: 免費的在線辦公套件 - ja: 無料のオンライン共同作業オフィススイート - ms: Suite pejabat dalam talian kolaboratif percuma - pt-br: Um pacote de escritório online colaborativo gratuito - ru: Бесплатный совместный онлайн-офисный пакет - ko: 무료 협업 온라인 오피스 스위트 - memoryRequired: 2048 - architectures: - - amd64 - - arm64 \ No newline at end of file diff --git a/onlyoffice/logo.png b/onlyoffice/logo.png deleted file mode 100644 index ab9a64e15..000000000 Binary files a/onlyoffice/logo.png and /dev/null differ diff --git a/opengist/1.10.0/data.yml b/opengist/1.10.0/data.yml deleted file mode 100644 index 3e29d4829..000000000 --- a/opengist/1.10.0/data.yml +++ /dev/null @@ -1,19 +0,0 @@ -additionalProperties: - formFields: - - default: 6157 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh: 端口 - zh-Hant: 埠 - required: true - rule: paramPort - type: number \ No newline at end of file diff --git a/opengist/1.10.0/docker-compose.yml b/opengist/1.10.0/docker-compose.yml deleted file mode 100644 index 8422dda9c..000000000 --- a/opengist/1.10.0/docker-compose.yml +++ /dev/null @@ -1,16 +0,0 @@ -services: - opengist: - image: ghcr.io/thomiceli/opengist:1.10.0 - container_name: ${CONTAINER_NAME} - restart: unless-stopped - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_HTTP}:6157 - volumes: - - ./data:/opengist - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/opengist/README.md b/opengist/README.md deleted file mode 100644 index 3cb70c305..000000000 --- a/opengist/README.md +++ /dev/null @@ -1,29 +0,0 @@ -# Opengist - -**Opengist** 是一个基于 Git 的高性能 Pastebin 平台,它提供了灵活的代码片段管理和强大的自托管能力,适用于个人和团队协作。 - -## 主要功能: - -### Git 驱动的代码片段管理 - -Opengist 依托 Git 存储所有代码片段,使用户能够使用标准的 Git 命令(Clone / Pull / Push)进行管理,同时支持 Web 界面操作。 - -### 代码高亮与多格式支持 - -Opengist 内置代码高亮功能,支持多种编程语言的语法着色,并兼容 Markdown 和 CSV 文件,提升可读性和可用性。 - -### 访问权限控制 - -用户可以创建公共、非公开或私有的代码片段,并对其进行访问权限控制,确保敏感信息的安全性。同时支持基于 OAuth2 的 GitHub、GitLab、Gitea 和 OpenID Connect 认证。 - -### 高效的搜索与组织 - -Opengist 允许用户通过搜索代码内容、浏览用户片段、添加主题标签等方式快速找到所需代码,同时支持代码片段的 Like、Fork 以及历史版本管理。 - -### 片段嵌入与下载 - -支持将代码片段嵌入到其他网站,方便共享与展示,并可以以原始文件或 ZIP 压缩包的形式下载。 - -### 轻量级与可扩展 - -Opengist 采用 Docker 进行部署,支持自定义用户/用户组权限(UID/GID),适用于各种自托管环境,提供高效、灵活的使用体验。 diff --git a/opengist/README_en.md b/opengist/README_en.md deleted file mode 100644 index 7dbce9b93..000000000 --- a/opengist/README_en.md +++ /dev/null @@ -1,22 +0,0 @@ -# Opengist -**Opengist** is a high-performance Pastebin platform based on Git. It provides flexible code snippet management and powerful self-hosting capabilities, suitable for individual and team collaboration. - -## Key Features: - -### Git-Driven Code Snippet Management -Opengist stores all code snippets using Git, allowing users to manage them with standard Git commands (Clone / Pull / Push) and through a web interface. - -### Code Highlighting and Multi-Format Support -Opengist includes built-in code highlighting, supporting syntax highlighting for various programming languages, as well as compatibility with Markdown and CSV files for improved readability and usability. - -### Access Control -Users can create public, non-public, or private code snippets and control access permissions to ensure the security of sensitive information. It also supports authentication via OAuth2 for GitHub, GitLab, Gitea, and OpenID Connect. - -### Efficient Search and Organization -Opengist allows users to quickly find code snippets through content search, browsing user snippets, and adding topic tags. It also supports liking, forking, and version management of code snippets. - -### Snippet Embedding and Download -Supports embedding code snippets into other websites for sharing and demonstration, and allows downloading in original file or ZIP format. - -### Lightweight and Extensible -Opengist is deployed using Docker, supports custom user/group permissions (UID/GID), and is suitable for various self-hosting environments, providing an efficient and flexible user experience. \ No newline at end of file diff --git a/opengist/data.yml b/opengist/data.yml deleted file mode 100644 index 7b1bf8d6e..000000000 --- a/opengist/data.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: Opengist -tags: - - DevOps -title: 一个由 Git 驱动的自托管 Pastebin -description: 一个由 Git 驱动的自托管 Pastebin -additionalProperties: - key: opengist - name: Opengist - tags: - - DevOps - shortDescZh: 一个由 Git 驱动的自托管 Pastebin - shortDescEn: Opengist is a self-hosted Pastebin powered by Git. - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://opengist.io/ - github: https://github.com/thomiceli/opengist - document: https://opengist.io/docs/ - description: - en: Opengist is a self-hosted Pastebin powered by Git. - zh: Opengist 是一个由 Git 驱动的自托管 Pastebin。 - zh-Hant: Opengist 是一個由 Git 驅動的自託管 Pastebin。 - ja: Opengist は、Git によって駆動される自己ホスト型 Pastebin です。 - ms: Opengist ialah Pastebin yang dihoskan sendiri yang dikuasakan oleh Git. - pt-br: Opengist é um Pastebin auto-hospedado alimentado por Git. - ru: Opengist — это Pastebin с самостоятельным хостингом на основе Git. - ko: Opengist는 Git으로 구동되는 자체 호스팅 Pastebin입니다. - architectures: - - amd64 - - arm64 diff --git a/opengist/logo.png b/opengist/logo.png deleted file mode 100644 index 8a5ffaba3..000000000 Binary files a/opengist/logo.png and /dev/null differ diff --git a/openldap/2.6.10/data.yml b/openldap/2.6.10/data.yml deleted file mode 100644 index a6557ab91..000000000 --- a/openldap/2.6.10/data.yml +++ /dev/null @@ -1,69 +0,0 @@ -additionalProperties: - formFields: - - envKey: LDAP_ROOT - default: dc=example,dc=org - labelEn: LDAP baseDN - labelZh: LDAP baseDN - label: - en: LDAP baseDN - ja: LDAP ベースDN - ms: LDAP baseDN - pt-br: LDAP baseDN - ru: LDAP baseDN - ko: LDAP baseDN - zh: LDAP baseDN - zh-Hant: LDAP baseDN - random: false - required: true - type: text - - envKey: LDAP_ADMIN_USERNAME - default: admin - labelEn: LDAP admin username - labelZh: LDAP 管理员用户名 - label: - en: LDAP admin username - ja: LDAP 管理者ユーザー名 - ms: Nama pengguna admin LDAP - pt-br: Nome de usuário admin LDAP - ru: Имя пользователя администратора LDAP - ko: LDAP 관리자 사용자 이름 - zh: LDAP 管理员用户名 - zh-Hant: LDAP 管理員用戶名 - random: false - required: true - rule: paramCommon - type: text - - envKey: LDAP_ADMIN_PASSWORD - default: adminpassword - labelEn: LDAP admin password - labelZh: LDAP 管理员密码 - label: - en: LDAP admin password - ja: LDAP 管理者パスワード - ms: Kata laluan admin LDAP - pt-br: Senha do admin LDAP - ru: Пароль администратора LDAP - ko: LDAP 관리자 비밀번호 - zh: LDAP 管理员密码 - zh-Hant: LDAP 管理員密碼 - random: true - required: true - rule: paramComplexity - type: password - - envKey: LDAP_PORT - default: 1389 - edit: true - labelEn: LDAP listening port - labelZh: LDAP 监听端口 - label: - en: LDAP listening port - ja: LDAP リスニングポート - ms: Port pendengaran LDAP - pt-br: Porta de escuta LDAP - ru: Порт прослушивания LDAP - ko: LDAP 수신 포트 - zh: LDAP 监听端口 - zh-Hant: LDAP 監聽埠 - required: true - rule: paramPort - type: number \ No newline at end of file diff --git a/openldap/2.6.10/docker-compose.yml b/openldap/2.6.10/docker-compose.yml deleted file mode 100644 index 381a5a781..000000000 --- a/openldap/2.6.10/docker-compose.yml +++ /dev/null @@ -1,21 +0,0 @@ -version: '3' -services: - openldap: - image: bitnami/openldap:2.6.10 - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - ${LDAP_PORT}:1389 - environment: - LDAP_ROOT: ${LDAP_ROOT} - LDAP_ADMIN_USERNAME: ${LDAP_ADMIN_USERNAME} - LDAP_ADMIN_PASSWORD: ${LDAP_ADMIN_PASSWORD} - volumes: - - './data:/bitnami/openldap' - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/openldap/2.6.10/scripts/init.sh b/openldap/2.6.10/scripts/init.sh deleted file mode 100644 index e88dbaebd..000000000 --- a/openldap/2.6.10/scripts/init.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/bash - -DIR="./data/" - -if [ -d "$DIR" ]; then - echo "目录 $DIR 已存在" -else - echo "目录 $DIR 不存在,正在创建..." - mkdir -p "$DIR" - if [ $? -eq 0 ]; then - echo "目录 $DIR 创建成功" - else - echo "目录 $DIR 创建失败" - fi -fi - -chown -R 1001:1001 $DIR \ No newline at end of file diff --git a/openldap/2.6.10/scripts/upgrade.sh b/openldap/2.6.10/scripts/upgrade.sh deleted file mode 100644 index e88dbaebd..000000000 --- a/openldap/2.6.10/scripts/upgrade.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/bash - -DIR="./data/" - -if [ -d "$DIR" ]; then - echo "目录 $DIR 已存在" -else - echo "目录 $DIR 不存在,正在创建..." - mkdir -p "$DIR" - if [ $? -eq 0 ]; then - echo "目录 $DIR 创建成功" - else - echo "目录 $DIR 创建失败" - fi -fi - -chown -R 1001:1001 $DIR \ No newline at end of file diff --git a/openldap/README.md b/openldap/README.md deleted file mode 100644 index 5789b1821..000000000 --- a/openldap/README.md +++ /dev/null @@ -1,26 +0,0 @@ -# OpenLDAP - -[OpenLDAP](https://openldap.org/) 是轻型目录访问协议(Lightweight Directory Access Protocol,LDAP)的自由和开源的实现。 - -该应用使用了 Bitnami 构建的 OpenLDAP Docker 镜像,通过该应用可以快速部署 OpenLDAP 服务。 - -## 相关链接 - -- OpenLDAP 官网: -- Bitnami OpenLDAP 构建仓库: - -## License - -Copyright © 2024 Broadcom. The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. diff --git a/openldap/README_en.md b/openldap/README_en.md deleted file mode 100644 index 0548cb947..000000000 --- a/openldap/README_en.md +++ /dev/null @@ -1,27 +0,0 @@ -# OpenLDAP - -[OpenLDAP](https://openldap.org/) is a free and open-source implementation of the Lightweight Directory Access Protocol (LDAP). - -This application uses the OpenLDAP Docker image built by Bitnami, allowing for quick deployment of OpenLDAP services. - -## Related Links - -- OpenLDAP Official Website: -- Bitnami OpenLDAP Repository: - -## License - -Copyright © 2024 Broadcom. The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. - diff --git a/openldap/data.yml b/openldap/data.yml deleted file mode 100644 index 1e5b3702e..000000000 --- a/openldap/data.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: OpenLDAP -tags: - - 数据库 -title: 开源的 LDAP(Lightweight Directory Access Protocol) 服务软件 -description: 开源的 LDAP(Lightweight Directory Access Protocol) 服务软件 -additionalProperties: - key: openldap - name: OpenLDAP - tags: - - Database - shortDescZh: 开源的 LDAP(Lightweight Directory Access Protocol) 服务软件 - shortDescEn: An open source implementation of the Lightweight Directory Access Protocol - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://openldap.org/ - github: https://github.com/openldap/openldap - document: https://hub.docker.com/r/bitnami/openldap - description: - en: An open source implementation of the Lightweight Directory Access Protocol - zh: 轻量级目录访问协议的开源实现 - zh-Hant: 輕量級目錄訪問協議的開源實現 - ja: 軽量ディレクトリアクセスプロトコルのオープンソース実装 - ms: Pelaksanaan sumber terbuka Protokol Akses Direktori Ringan - pt-br: Uma implementação de código aberto do Protocolo de Acesso a Diretórios Leves - ru: Открытая реализация протокола легкого доступа к каталогам - ko: 경량 디렉토리 액세스 프로토콜의 오픈 소스 구현 - architectures: - - amd64 - - arm64 diff --git a/openldap/logo.png b/openldap/logo.png deleted file mode 100644 index db06da25a..000000000 Binary files a/openldap/logo.png and /dev/null differ diff --git a/openlitespeed/1.8.1-lsphp74/data.yml b/openlitespeed/1.8.1-lsphp74/data.yml deleted file mode 100644 index 2b16a9e1e..000000000 --- a/openlitespeed/1.8.1-lsphp74/data.yml +++ /dev/null @@ -1,69 +0,0 @@ -additionalProperties: - formFields: - - default: 80 - edit: true - envKey: PANEL_APP_PORT_HTTP_80 - labelEn: HTTP Port - labelZh: HTTP端口 - label: - en: HTTP Port - ja: HTTPポート - ms: Port HTTP - pt-br: Porta HTTP - ru: HTTP-порт - ko: HTTP 포트 - zh: HTTP端口 - zh-Hant: HTTP連接埠 - required: true - rule: paramPort - type: number - - default: 443 - edit: true - envKey: PANEL_APP_PORT_HTTPS - labelEn: HTTPS Port - labelZh: HTTPS端口 - label: - en: HTTPS Port - ja: HTTPSポート - ms: Port HTTPS - pt-br: Porta HTTPS - ru: HTTPS-порт - ko: HTTPS 포트 - zh: HTTPS端口 - zh-Hant: HTTPS連接埠 - required: true - rule: paramPort - type: number - - default: 40113 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Console Port - labelZh: 控制台端口 - label: - en: Console Port - ja: コンソールポート - ms: Port Konsol - pt-br: Porta do Console - ru: Порт консоли - ko: 콘솔 포트 - zh: 控制台端口 - zh-Hant: 控制台埠 - required: true - rule: paramPort - type: number - - default: Asia/Shanghai - edit: true - envKey: TIME_ZONE - labelEn: Time zone - labelZh: 时区 - label: - en: Time zone - ja: タイムゾーン - ms: Zon masa - pt-br: Fuso horário - ru: Часовой пояс - ko: 시간대 - zh: 时区 - zh-Hant: 時區 - required: true - type: text diff --git a/openlitespeed/1.8.1-lsphp74/data/bin/container/appinstallctl.sh b/openlitespeed/1.8.1-lsphp74/data/bin/container/appinstallctl.sh deleted file mode 100644 index d79c63f11..000000000 --- a/openlitespeed/1.8.1-lsphp74/data/bin/container/appinstallctl.sh +++ /dev/null @@ -1,660 +0,0 @@ -#!/bin/bash -DEFAULT_VH_ROOT='/var/www/vhosts' -VH_DOC_ROOT='' -VHNAME='' -APP_NAME='' -DOMAIN='' -WWW_UID='' -WWW_GID='' -WP_CONST_CONF='' -PUB_IP=$(curl -s http://checkip.amazonaws.com) -DB_HOST='mysql' -PLUGINLIST="litespeed-cache.zip" -THEME='twentytwenty' -EPACE=' ' - -echow(){ - FLAG=${1} - shift - echo -e "\033[1m${EPACE}${FLAG}\033[0m${@}" -} - -help_message(){ - echo -e "\033[1mOPTIONS\033[0m" - echow '-A, -app [wordpress] -D, --domain [DOMAIN_NAME]' - echo "${EPACE}${EPACE}Example: appinstallctl.sh --app wordpress --domain example.com" - echow '-H, --help' - echo "${EPACE}${EPACE}Display help and exit." - exit 0 -} - -check_input(){ - if [ -z "${1}" ]; then - help_message - exit 1 - fi -} - -linechange(){ - LINENUM=$(grep -n "${1}" ${2} | cut -d: -f 1) - if [ -n "${LINENUM}" ] && [ "${LINENUM}" -eq "${LINENUM}" ] 2>/dev/null; then - sed -i "${LINENUM}d" ${2} - sed -i "${LINENUM}i${3}" ${2} - fi -} - -ck_ed(){ - if [ ! -f /bin/ed ]; then - echo "Install ed package.." - apt-get install ed -y > /dev/null 2>&1 - fi -} - -ck_unzip(){ - if [ ! -f /usr/bin/unzip ]; then - echo "Install unzip package.." - apt-get install unzip -y > /dev/null 2>&1 - fi -} - -get_owner(){ - WWW_UID=$(stat -c "%u" ${DEFAULT_VH_ROOT}) - WWW_GID=$(stat -c "%g" ${DEFAULT_VH_ROOT}) - if [ ${WWW_UID} -eq 0 ] || [ ${WWW_GID} -eq 0 ]; then - WWW_UID=1000 - WWW_GID=1000 - echo "Set owner to ${WWW_UID}" - fi -} - -get_db_pass(){ - if [ -f ${DEFAULT_VH_ROOT}/${1}/.db_pass ]; then - SQL_DB=$(grep -i Database ${VH_ROOT}/.db_pass | awk -F ':' '{print $2}' | tr -d '"') - SQL_USER=$(grep -i Username ${VH_ROOT}/.db_pass | awk -F ':' '{print $2}' | tr -d '"') - SQL_PASS=$(grep -i Password ${VH_ROOT}/.db_pass | awk -F ':' '{print $2}' | tr -d '"') - else - echo 'db pass file can not locate, skip wp-config pre-config.' - fi -} - -set_vh_docroot(){ - if [ "${VHNAME}" != '' ]; then - VH_ROOT="${DEFAULT_VH_ROOT}/${VHNAME}" - VH_DOC_ROOT="${DEFAULT_VH_ROOT}/${VHNAME}/html" - WP_CONST_CONF="${VH_DOC_ROOT}/wp-content/plugins/litespeed-cache/data/const.default.ini" - elif [ -d ${DEFAULT_VH_ROOT}/${1}/html ]; then - VH_ROOT="${DEFAULT_VH_ROOT}/${1}" - VH_DOC_ROOT="${DEFAULT_VH_ROOT}/${1}/html" - WP_CONST_CONF="${VH_DOC_ROOT}/wp-content/plugins/litespeed-cache/data/const.default.ini" - else - echo "${DEFAULT_VH_ROOT}/${1}/html does not exist, please add domain first! Abort!" - exit 1 - fi -} - -check_sql_native(){ - local COUNTER=0 - local LIMIT_NUM=100 - until [ "$(curl -v mysql:3306 2>&1 | grep -i 'native\|Connected')" ]; do - echo "Counter: ${COUNTER}/${LIMIT_NUM}" - COUNTER=$((COUNTER+1)) - if [ ${COUNTER} = 10 ]; then - echo '--- MySQL is starting, please wait... ---' - elif [ ${COUNTER} = ${LIMIT_NUM} ]; then - echo '--- MySQL is timeout, exit! ---' - exit 1 - fi - sleep 1 - done -} - -install_wp_plugin(){ - for PLUGIN in ${PLUGINLIST}; do - wget -q -P ${VH_DOC_ROOT}/wp-content/plugins/ https://downloads.wordpress.org/plugin/${PLUGIN} - if [ ${?} = 0 ]; then - ck_unzip - unzip -qq -o ${VH_DOC_ROOT}/wp-content/plugins/${PLUGIN} -d ${VH_DOC_ROOT}/wp-content/plugins/ - else - echo "${PLUGINLIST} FAILED to download" - fi - done - rm -f ${VH_DOC_ROOT}/wp-content/plugins/*.zip -} - -set_htaccess(){ - if [ ! -f ${VH_DOC_ROOT}/.htaccess ]; then - touch ${VH_DOC_ROOT}/.htaccess - fi - cat << EOM > ${VH_DOC_ROOT}/.htaccess -# BEGIN WordPress - -RewriteEngine On -RewriteBase / -RewriteRule ^index\.php$ - [L] -RewriteCond %{REQUEST_FILENAME} !-f -RewriteCond %{REQUEST_FILENAME} !-d -RewriteRule . /index.php [L] - -# END WordPress -EOM -} - -get_theme_name(){ - THEME_NAME=$(grep WP_DEFAULT_THEME ${VH_DOC_ROOT}/wp-includes/default-constants.php | grep -v '!' | awk -F "'" '{print $4}') - echo "${THEME_NAME}" | grep 'twenty' >/dev/null 2>&1 - if [ ${?} = 0 ]; then - THEME="${THEME_NAME}" - fi -} - -set_lscache(){ - cat << EOM > "${WP_CONST_CONF}" -; -; This is the predefined default LSCWP configuration file -; -; All the keys and values please refer \`src/const.cls.php\` -; -; Comments start with \`;\` -; -;; -------------------------------------------------- ;; -;; -------------- General ----------------- ;; -;; -------------------------------------------------- ;; -; O_AUTO_UPGRADE -auto_upgrade = false -; O_API_KEY -api_key = '' -; O_SERVER_IP -server_ip = '' -; O_NEWS -news = false -;; -------------------------------------------------- ;; -;; -------------- Cache ----------------- ;; -;; -------------------------------------------------- ;; -cache-priv = true -cache-commenter = true -cache-rest = true -cache-page_login = true -cache-favicon = true -cache-resources = true -cache-browser = false -cache-mobile = false -cache-mobile_rules = 'Mobile -Android -Silk/ -Kindle -BlackBerry -Opera Mini -Opera Mobi' -cache-exc_useragents = '' -cache-exc_cookies = '' -cache-exc_qs = '' -cache-exc_cat = '' -cache-exc_tag = '' -cache-force_uri = '' -cache-force_pub_uri = '' -cache-priv_uri = '' -cache-exc = '' -cache-exc_roles = '' -cache-drop_qs = 'fbclid -gclid -utm* -_ga' -cache-ttl_pub = 604800 -cache-ttl_priv = 1800 -cache-ttl_frontpage = 604800 -cache-ttl_feed = 604800 -; O_CACHE_TTL_REST -cache-ttl_rest = 604800 -cache-ttl_browser = 31557600 -cache-login_cookie = '' -cache-vary_group = '' -cache-ttl_status = '403 3600 -404 3600 -500 3600' -;; -------------------------------------------------- ;; -;; -------------- Purge ----------------- ;; -;; -------------------------------------------------- ;; -; O_PURGE_ON_UPGRADE -purge-upgrade = true -; O_PURGE_STALE -purge-stale = true -purge-post_all = false -purge-post_f = true -purge-post_h = true -purge-post_p = true -purge-post_pwrp = true -purge-post_a = true -purge-post_y = false -purge-post_m = true -purge-post_d = false -purge-post_t = true -purge-post_pt = true -purge-timed_urls = '' -purge-timed_urls_time = '' -purge-hook_all = 'switch_theme -wp_create_nav_menu -wp_update_nav_menu -wp_delete_nav_menu -create_term -edit_terms -delete_term -add_link -edit_link -delete_link' -;; -------------------------------------------------- ;; -;; -------------- ESI ----------------- ;; -;; -------------------------------------------------- ;; -; O_ESI -esi = false -; O_ESI_CACHE_ADMBAR -esi-cache_admbar = true -; O_ESI_CACHE_COMMFORM -esi-cache_commform = true -; O_ESI_NONCE -esi-nonce = 'stats_nonce -subscribe_nonce' -;; -------------------------------------------------- ;; -;; -------------- Utilities ----------------- ;; -;; -------------------------------------------------- ;; -util-heartbeat = true -util-instant_click = false -util-check_advcache = true -util-no_https_vary = false -;; -------------------------------------------------- ;; -;; -------------- Debug ----------------- ;; -;; -------------------------------------------------- ;; -; O_DEBUG_DISABLE_ALL -debug-disable_all = false -; O_DEBUG -debug = false -; O_DEBUG_IPS -debug-ips = '127.0.0.1' -; O_DEBUG_LEVEL -debug-level = false -; O_DEBUG_FILESIZE -debug-filesize = 3 -; O_DEBUG_COOKIE -debug-cookie = false -; O_DEBUG_COLLAPS_QS -debug-collaps_qs = false -; O_DEBUG_INC -debug-inc = '' -; O_DEBUG_EXC -debug-exc = '' -;; -------------------------------------------------- ;; -;; -------------- DB Optm ----------------- ;; -;; -------------------------------------------------- ;; -; O_DB_OPTM_REVISIONS_MAX -db_optm-revisions_max = 0 -; O_DB_OPTM_REVISIONS_AGE -db_optm-revisions_age = 0 -;; -------------------------------------------------- ;; -;; -------------- HTML Optm ----------------- ;; -;; -------------------------------------------------- ;; -; O_OPTM_CSS_MIN -optm-css_min = false -optm-css_inline_min = false -; O_OPTM_CSS_COMB -optm-css_comb = false -optm-css_comb_priority = false -; O_OPTM_CSS_HTTP2 -optm-css_http2 = false -optm-css_exc = '' -; O_OPTM_JS_MIN -optm-js_min = false -optm-js_inline_min = false -; O_OPTM_JS_COMB -optm-js_comb = false -optm-js_comb_priority = false -; O_OPTM_JS_HTTP2 -optm-js_http2 = false -; O_OPTM_EXC_JQ -optm-js_exc = '' -optm-ttl = 604800 -optm-html_min = false -optm-qs_rm = false -optm-ggfonts_rm = false -; O_OPTM_CSS_ASYNC -optm-css_async = false -; O_OPTM_CCSS_GEN -optm-ccss_gen = true -; O_OPTM_CCSS_ASYNC -optm-ccss_async = true -; O_OPTM_CSS_ASYNC_INLINE -optm-css_async_inline = true -; O_OPTM_CSS_FONT_DISPLAY -optm-css_font_display = false -; O_OPTM_JS_DEFER -optm-js_defer = false -; O_OPTM_JS_INLINE_DEFER -optm-js_inline_defer = false -optm-emoji_rm = false -optm-exc_jq = true -optm-ggfonts_async = false -optm-max_size = 2 -optm-rm_comment = false -optm-exc_roles = '' -optm-ccss_con = '' -optm-js_defer_exc = '' -; O_OPTM_DNS_PREFETCH -optm-dns_prefetch = '' -; O_OPTM_DNS_PREFETCH_CTRL -optm-dns_prefetch_ctrl = false -optm-exc = '' -; O_OPTM_CCSS_SEP_POSTTYPE -optm-ccss_sep_posttype = '' -; O_OPTM_CCSS_SEP_URI -optm-ccss_sep_uri = '' -;; -------------------------------------------------- ;; -;; -------------- Object Cache ----------------- ;; -;; -------------------------------------------------- ;; -object = true -object-kind = false -;object-host = 'localhost' -object-host = '/var/www/memcached.sock' -;object-port = 11211 -cache_object_port = '' -object-life = 360 -object-persistent = true -object-admin = true -object-transients = true -object-db_id = 0 -object-user = '' -object-pswd = '' -object-global_groups = 'users -userlogins -usermeta -user_meta -site-transient -site-options -site-lookup -blog-lookup -blog-details -rss -global-posts -blog-id-cache' -object-non_persistent_groups = 'comment -counts -plugins -wc_session_id' -;; -------------------------------------------------- ;; -;; -------------- Discussion ----------------- ;; -;; -------------------------------------------------- ;; -; O_DISCUSS_AVATAR_CACHE -discuss-avatar_cache = false -; O_DISCUSS_AVATAR_CRON -discuss-avatar_cron = false -; O_DISCUSS_AVATAR_CACHE_TTL -discuss-avatar_cache_ttl = 604800 -;; -------------------------------------------------- ;; -;; -------------- Media ----------------- ;; -;; -------------------------------------------------- ;; -; O_MEDIA_LAZY -media-lazy = false -; O_MEDIA_LAZY_PLACEHOLDER -media-lazy_placeholder = '' -; O_MEDIA_PLACEHOLDER_RESP -media-placeholder_resp = false -; O_MEDIA_PLACEHOLDER_RESP_COLOR -media-placeholder_resp_color = '#cfd4db' -; O_MEDIA_PLACEHOLDER_RESP_GENERATOR -media-placeholder_resp_generator = false -; O_MEDIA_PLACEHOLDER_RESP_SVG -media-placeholder_resp_svg = '' -; O_MEDIA_PLACEHOLDER_LQIP -media-placeholder_lqip = false -; O_MEDIA_PLACEHOLDER_LQIP_QUAL -media-placeholder_lqip_qual = 4 -; O_MEDIA_PLACEHOLDER_RESP_ASYNC -media-placeholder_resp_async = true -; O_MEDIA_IFRAME_LAZY -media-iframe_lazy = false -; O_MEDIA_LAZYJS_INLINE -media-lazyjs_inline = false -; O_MEDIA_LAZY_EXC -media-lazy_exc = '' -; O_MEDIA_LAZY_CLS_EXC -media-lazy_cls_exc = '' -; O_MEDIA_LAZY_PARENT_CLS_EXC -media-lazy_parent_cls_exc = '' -; O_MEDIA_IFRAME_LAZY_CLS_EXC -media-iframe_lazy_cls_exc = '' -; O_MEDIA_IFRAME_LAZY_PARENT_CLS_EXC -media-iframe_lazy_parent_cls_exc = '' -; O_MEDIA_LAZY_URI_EXC -media-lazy_uri_exc = '' -;; -------------------------------------------------- ;; -;; -------------- Image Optm ----------------- ;; -;; -------------------------------------------------- ;; -img_optm-auto = false -img_optm-cron = true -img_optm-ori = true -img_optm-rm_bkup = false -img_optm-webp = false -img_optm-lossless = false -img_optm-exif = false -img_optm-webp_replace = false -img_optm-webp_attr = 'img.src -div.data-thumb -img.data-src -div.data-large_image -img.retina_logo_url -div.data-parallax-image -video.poster' -img_optm-webp_replace_srcset = false -img_optm-jpg_quality = 82 -;; -------------------------------------------------- ;; -;; -------------- Crawler ----------------- ;; -;; -------------------------------------------------- ;; -crawler = false -crawler-inc_posts = true -crawler-inc_pages = true -crawler-inc_cats = true -crawler-inc_tags = true -crawler-exc_cpt = '' -crawler-order_links = 'date_desc' -crawler-usleep = 500 -crawler-run_duration = 400 -crawler-run_interval = 600 -crawler-crawl_interval = 302400 -crawler-threads = 3 -crawler-timeout = 30 -crawler-load_limit = 1 -; O_CRAWLER_SITEMAP -crawler-sitemap = '' -; O_CRAWLER_DROP_DOMAIN -crawler-drop_domain = true -crawler-roles = '' -crawler-cookies = '' -;; -------------------------------------------------- ;; -;; -------------- Misc ----------------- ;; -;; -------------------------------------------------- ;; -; O_MISC_HTACCESS_FRONT -misc-htaccess_front = '' -; O_MISC_HTACCESS_BACK -misc-htaccess_back = '' -; O_MISC_HEARTBEAT_FRONT -misc-heartbeat_front = false -; O_MISC_HEARTBEAT_FRONT_TTL -misc-heartbeat_front_ttl = 60 -; O_MISC_HEARTBEAT_BACK -misc-heartbeat_back = false -; O_MISC_HEARTBEAT_BACK_TTL -misc-heartbeat_back_ttl = 60 -; O_MISC_HEARTBEAT_EDITOR -misc-heartbeat_editor = false -; O_MISC_HEARTBEAT_EDITOR_TTL -misc-heartbeat_editor_ttl = 15 -;; -------------------------------------------------- ;; -;; -------------- CDN ----------------- ;; -;; -------------------------------------------------- ;; -cdn = false -cdn-ori = '' -cdn-ori_dir = '' -cdn-exc = '' -cdn-remote_jq = false -cdn-quic = false -cdn-quic_email = '' -cdn-quic_key = '' -cdn-cloudflare = false -cdn-cloudflare_email = '' -cdn-cloudflare_key = '' -cdn-cloudflare_name = '' -cdn-cloudflare_zone = '' -; \`cdn-mapping\` needs to be put in the end with a section tag -;; -------------------------------------------------- ;; -;; -------------- CDN 2 ----------------- ;; -;; -------------------------------------------------- ;; -; <------------ CDN Mapping Example BEGIN --------------------> -; Need to keep the section tag \`[cdn-mapping]\` before list. -; -; NOTE 1) Need to set all child options to make all resources to be replaced without missing. -; NOTE 2) \`url[n]\` option must have to enable the row setting of \`n\`. -; NOTE 3) This section needs to be put in the end of this .ini file -; -; To enable the 2nd mapping record by default, please remove the \`;;\` in the related lines. -[cdn-mapping] -url[0] = '' -inc_js[0] = true -inc_css[0] = true -inc_img[0] = true -filetype[0] = '.aac -.css -.eot -.gif -.jpeg -.js -.jpg -.less -.mp3 -.mp4 -.ogg -.otf -.pdf -.png -.svg -.ttf -.woff' -;;url[1] = 'https://2nd_CDN_url.com/' -;;filetype[1] = '.webm' -; <------------ CDN Mapping Example END ------------------> -EOM - - THEME_PATH="${VH_DOC_ROOT}/wp-content/themes/${THEME}" - if [ ! -f ${THEME_PATH}/functions.php ]; then - cat >> "${THEME_PATH}/functions.php" <>/dev/null 2>&1 -2i -require_once( WP_CONTENT_DIR.'/../wp-admin/includes/plugin.php' ); -\$path = 'litespeed-cache/litespeed-cache.php' ; -if (!is_plugin_active( \$path )) { - activate_plugin( \$path ) ; - rename( __FILE__ . '.bk', __FILE__ ); -} -. -w -q -END - fi -} - -preinstall_wordpress(){ - if [ "${VHNAME}" != '' ]; then - get_db_pass ${VHNAME} - else - get_db_pass ${DOMAIN} - fi - if [ ! -f ${VH_DOC_ROOT}/wp-config.php ] && [ -f ${VH_DOC_ROOT}/wp-config-sample.php ]; then - cp ${VH_DOC_ROOT}/wp-config-sample.php ${VH_DOC_ROOT}/wp-config.php - NEWDBPWD="define('DB_PASSWORD', '${SQL_PASS}');" - linechange 'DB_PASSWORD' ${VH_DOC_ROOT}/wp-config.php "${NEWDBPWD}" - NEWDBPWD="define('DB_USER', '${SQL_USER}');" - linechange 'DB_USER' ${VH_DOC_ROOT}/wp-config.php "${NEWDBPWD}" - NEWDBPWD="define('DB_NAME', '${SQL_DB}');" - linechange 'DB_NAME' ${VH_DOC_ROOT}/wp-config.php "${NEWDBPWD}" - #NEWDBPWD="define('DB_HOST', '${PUB_IP}');" - NEWDBPWD="define('DB_HOST', '${DB_HOST}');" - linechange 'DB_HOST' ${VH_DOC_ROOT}/wp-config.php "${NEWDBPWD}" - elif [ -f ${VH_DOC_ROOT}/wp-config.php ]; then - echo "${VH_DOC_ROOT}/wp-config.php already exist, exit !" - exit 1 - else - echo 'Skip!' - exit 2 - fi -} - -app_wordpress_dl(){ - if [ ! -f "${VH_DOC_ROOT}/wp-config.php" ] && [ ! -f "${VH_DOC_ROOT}/wp-config-sample.php" ]; then - wp core download \ - --allow-root \ - --quiet - else - echo 'wordpress already exist, abort!' - exit 1 - fi -} - -change_owner(){ - if [ "${VHNAME}" != '' ]; then - chown -R ${WWW_UID}:${WWW_GID} ${DEFAULT_VH_ROOT}/${VHNAME} - else - chown -R ${WWW_UID}:${WWW_GID} ${DEFAULT_VH_ROOT}/${DOMAIN} - fi -} - -main(){ - set_vh_docroot ${DOMAIN} - get_owner - cd ${VH_DOC_ROOT} - if [ "${APP_NAME}" = 'wordpress' ] || [ "${APP_NAME}" = 'wp' ]; then - check_sql_native - app_wordpress_dl - preinstall_wordpress - install_wp_plugin - set_htaccess - get_theme_name - set_lscache - change_owner - exit 0 - else - echo "APP: ${APP_NAME} not support, exit!" - exit 1 - fi -} - -check_input ${1} -while [ ! -z "${1}" ]; do - case ${1} in - -[hH] | -help | --help) - help_message - ;; - -[aA] | -app | --app) shift - check_input "${1}" - APP_NAME="${1}" - ;; - -[dD] | -domain | --domain) shift - check_input "${1}" - DOMAIN="${1}" - ;; - -vhname | --vhname) shift - VHNAME="${1}" - ;; - *) - help_message - ;; - esac - shift -done -main diff --git a/openlitespeed/1.8.1-lsphp74/data/bin/container/certhookctl.sh b/openlitespeed/1.8.1-lsphp74/data/bin/container/certhookctl.sh deleted file mode 100644 index 18be0965e..000000000 --- a/openlitespeed/1.8.1-lsphp74/data/bin/container/certhookctl.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/bash -BOTCRON='/var/spool/cron/crontabs/root' - -cert_hook(){ - grep 'acme' ${BOTCRON} >/dev/null - if [ ${?} = 0 ]; then - grep 'lswsctrl' ${BOTCRON} >/dev/null - if [ ${?} = 0 ]; then - echo 'Hook already exist, skip!' - else - sed -i 's/--cron/--cron --renew-hook "\/usr\/local\/lsws\/bin\/lswsctrl restart"/g' ${BOTCRON} - fi - else - echo "[X] ${BOTCRON} does not exist, please check it later!" - fi -} - -cert_hook \ No newline at end of file diff --git a/openlitespeed/1.8.1-lsphp74/data/bin/container/domainctl.sh b/openlitespeed/1.8.1-lsphp74/data/bin/container/domainctl.sh deleted file mode 100644 index 75539ef01..000000000 --- a/openlitespeed/1.8.1-lsphp74/data/bin/container/domainctl.sh +++ /dev/null @@ -1,160 +0,0 @@ -#!/usr/bin/env bash -CK_RESULT='' -LSDIR='/usr/local/lsws' -LS_HTTPD_CONF="${LSDIR}/conf/httpd_config.xml" -OLS_HTTPD_CONF="${LSDIR}/conf/httpd_config.conf" -EPACE=' ' - -echow(){ - FLAG=${1} - shift - echo -e "\033[1m${EPACE}${FLAG}\033[0m${@}" -} - -help_message(){ - echo -e "\033[1mOPTIONS\033[0m" - echow '-A, --add [DOMAIN_NAME]' - echo "${EPACE}${EPACE}Will add domain to listener and creat a virtual host from template" - echow '-D, --del [DOMAIN_NAME]' - echo "${EPACE}${EPACE}Will delete domain from listener" - echow '-H, --help' - echo "${EPACE}${EPACE}Display help." -} - -check_lsv(){ - if [ -f ${LSDIR}/bin/openlitespeed ]; then - LSV='openlitespeed' - elif [ -f ${LSDIR}/bin/litespeed ]; then - LSV='lsws' - else - echo 'Version not exist, abort!' - exit 1 - fi -} - -dot_escape(){ - ESCAPE=$(echo ${1} | sed 's/\./\\./g') -} - -check_duplicate(){ - CK_RESULT=$(grep -E "${1}" ${2}) -} - -fst_match_line(){ - FIRST_LINE_NUM=$(grep -n -m 1 ${1} ${2} | awk -F ':' '{print $1}') -} -fst_match_after(){ - FIRST_NUM_AFTER=$(tail -n +${1} ${2} | grep -n -m 1 ${3} | awk -F ':' '{print $1}') -} -lst_match_line(){ - fst_match_after ${1} ${2} ${3} - LAST_LINE_NUM=$((${FIRST_LINE_NUM}+${FIRST_NUM_AFTER}-1)) -} - -check_input(){ - if [ -z "${1}" ]; then - help_message - exit 1 - fi -} - -check_www(){ - CHECK_WWW=$(echo ${1} | cut -c1-4) - if [[ ${CHECK_WWW} == www. ]] ; then - echo 'www domain shoudnt be passed!' - exit 1 - fi -} - -www_domain(){ - check_www ${1} - WWW_DOMAIN=$(echo www.${1}) -} - -add_ls_domain(){ - fst_match_line 'docker.xml' ${LS_HTTPD_CONF} - NEWNUM=$((FIRST_LINE_NUM+2)) - sed -i "${NEWNUM}i \ \ \ \ \ \ \n \ \ \ \ \ \ \ ${DOMAIN}\n \ \ \ \ \ \ \ ${DOMAIN},${WWW_DOMAIN}\n \ \ \ \ \ \ " ${LS_HTTPD_CONF} -} - -add_ols_domain(){ - perl -0777 -p -i -e 's/(vhTemplate docker \{[^}]+)\}*(^.*listeners.*$)/\1$2 - member '${DOMAIN}' { - vhDomain '${DOMAIN},${WWW_DOMAIN}' - }/gmi' ${OLS_HTTPD_CONF} -} - -add_domain(){ - check_lsv - dot_escape ${1} - DOMAIN=${ESCAPE} - www_domain ${1} - if [ "${LSV}" = 'lsws' ]; then - check_duplicate "vhDomain.*${DOMAIN}" ${LS_HTTPD_CONF} - if [ "${CK_RESULT}" != '' ]; then - echo "# It appears the domain already exist! Check the ${LS_HTTPD_CONF} if you believe this is a mistake!" - exit 1 - fi - elif [ "${LSV}" = 'openlitespeed' ]; then - check_duplicate "member.*${DOMAIN}" ${OLS_HTTPD_CONF} - if [ "${CK_RESULT}" != '' ]; then - echo "# It appears the domain already exist! Check the ${OLS_HTTPD_CONF} if you believe this is a mistake!" - exit 1 - fi - fi - add_ls_domain - add_ols_domain -} - -del_ls_domain(){ - fst_match_line "*${1}" ${LS_HTTPD_CONF} - FIRST_LINE_NUM=$((FIRST_LINE_NUM-1)) - lst_match_line ${FIRST_LINE_NUM} ${LS_HTTPD_CONF} '' - sed -i "${FIRST_LINE_NUM},${LAST_LINE_NUM}d" ${LS_HTTPD_CONF} -} - -del_ols_domain(){ - fst_match_line ${1} ${OLS_HTTPD_CONF} - lst_match_line ${FIRST_LINE_NUM} ${OLS_HTTPD_CONF} '}' - sed -i "${FIRST_LINE_NUM},${LAST_LINE_NUM}d" ${OLS_HTTPD_CONF} -} - -del_domain(){ - check_lsv - dot_escape ${1} - DOMAIN=${ESCAPE} - if [ "${LSV}" = 'lsws' ]; then - check_duplicate "vhDomain.*${DOMAIN}" ${LS_HTTPD_CONF} - if [ "${CK_RESULT}" = '' ]; then - echo "# Domain non-exist! Check the ${LS_HTTPD_CONF} if you believe this is a mistake!" - exit 1 - fi - elif [ "${LSV}" = 'openlitespeed' ]; then - check_duplicate "member.*${DOMAIN}" ${OLS_HTTPD_CONF} - if [ "${CK_RESULT}" = '' ]; then - echo "# Domain non-exist! Check the ${OLS_HTTPD_CONF} if you believe this is a mistake!" - exit 1 - fi - fi - del_ls_domain ${1} - del_ols_domain ${1} -} - -check_input ${1} -while [ ! -z "${1}" ]; do - case ${1} in - -[hH] | -help | --help) - help_message - ;; - -[aA] | -add | --add) shift - add_domain ${1} - ;; - -[dD] | -del | --del | --delete) shift - del_domain ${1} - ;; - *) - help_message - ;; - esac - shift -done \ No newline at end of file diff --git a/openlitespeed/1.8.1-lsphp74/data/bin/container/owaspctl.sh b/openlitespeed/1.8.1-lsphp74/data/bin/container/owaspctl.sh deleted file mode 100644 index 72fd8e59c..000000000 --- a/openlitespeed/1.8.1-lsphp74/data/bin/container/owaspctl.sh +++ /dev/null @@ -1,236 +0,0 @@ -#!/bin/bash -LSDIR='/usr/local/lsws' -OWASP_DIR="${LSDIR}/conf/owasp" -RULE_FILE='modsec_includes.conf' -LS_HTTPD_CONF="${LSDIR}/conf/httpd_config.xml" -OLS_HTTPD_CONF="${LSDIR}/conf/httpd_config.conf" -EPACE=' ' -OWASP_V='3.3.4' - -echow(){ - FLAG=${1} - shift - echo -e "\033[1m${EPACE}${FLAG}\033[0m${@}" -} - -help_message(){ - echo -e "\033[1mOPTIONS\033[0m" - echow '-E, --enable' - echo "${EPACE}${EPACE}Will Enable mod_secure module with latest OWASP version of rules" - echow '-D, --disable' - echo "${EPACE}${EPACE}Will Disable mod_secure module with latest OWASP version of rules" - echow '-H, --help' - echo "${EPACE}${EPACE}Display help and exit." - exit 0 -} - -check_lsv(){ - if [ -f ${LSDIR}/bin/openlitespeed ]; then - LSV='openlitespeed' - elif [ -f ${LSDIR}/bin/litespeed ]; then - LSV='lsws' - else - echo 'Version not exist, abort!' - exit 1 - fi -} - -check_input(){ - if [ -z "${1}" ]; then - help_message - exit 1 - fi -} - -mk_owasp_dir(){ - if [ -d ${OWASP_DIR} ] ; then - rm -rf ${OWASP_DIR} - fi - mkdir -p ${OWASP_DIR} - if [ ${?} -ne 0 ] ; then - echo "Unable to create directory: ${OWASP_DIR}, exit!" - exit 1 - fi -} - -fst_match_line(){ - FIRST_LINE_NUM=$(grep -n -m 1 "${1}" ${2} | awk -F ':' '{print $1}') -} -fst_match_after(){ - FIRST_NUM_AFTER=$(tail -n +${1} ${2} | grep -n -m 1 ${3} | awk -F ':' '{print $1}') -} -lst_match_line(){ - fst_match_after ${1} ${2} ${3} - LAST_LINE_NUM=$((${FIRST_LINE_NUM}+${FIRST_NUM_AFTER}-1)) -} - -enable_ols_modsec(){ - grep 'module mod_security {' ${OLS_HTTPD_CONF} >/dev/null 2>&1 - if [ ${?} -eq 0 ] ; then - echo "Already configured for modsecurity." - else - echo 'Enable modsecurity' - sed -i "s=module cache=module mod_security {\nmodsecurity on\ - \nmodsecurity_rules \`\nSecRuleEngine On\n\`\nmodsecurity_rules_file \ - ${OWASP_DIR}/${RULE_FILE}\n ls_enabled 1\n}\ - \n\nmodule cache=" ${OLS_HTTPD_CONF} - fi -} - -enable_ls_modsec(){ - grep '1' ${LS_HTTPD_CONF} >/dev/null 2>&1 - if [ ${?} -eq 0 ] ; then - echo "LSWS already configured for modsecurity" - else - echo 'Enable modsecurity' - sed -i \ - "s=0=1=" ${LS_HTTPD_CONF} - sed -i \ - "s==\n\ - \n\ - ModSec\n\ - 1\n\ - include ${OWASP_DIR}/modsec_includes.conf\n\ - =" ${LS_HTTPD_CONF} - fi -} - -enable_modsec(){ - if [ "${LSV}" = 'lsws' ]; then - enable_ls_modsec - elif [ "${LSV}" = 'openlitespeed' ]; then - enable_ols_modsec - fi -} - -disable_ols_modesec(){ - grep 'module mod_security {' ${OLS_HTTPD_CONF} >/dev/null 2>&1 - if [ ${?} -eq 0 ] ; then - echo 'Disable modsecurity' - fst_match_line 'module mod_security' ${OLS_HTTPD_CONF} - lst_match_line ${FIRST_LINE_NUM} ${OLS_HTTPD_CONF} '}' - sed -i "${FIRST_LINE_NUM},${LAST_LINE_NUM}d" ${OLS_HTTPD_CONF} - else - echo 'Already disabled for modsecurity' - fi -} - -disable_ls_modesec(){ - grep '0' ${LS_HTTPD_CONF} - if [ ${?} -eq 0 ] ; then - echo 'Already disabled for modsecurity' - else - echo 'Disable modsecurity' - sed -i \ - "s=1=0=" ${LS_HTTPD_CONF} - fst_match_line 'censorshipRuleSet' ${LS_HTTPD_CONF} - lst_match_line ${FIRST_LINE_NUM} ${LS_HTTPD_CONF} '/censorshipRuleSet' - sed -i "${FIRST_LINE_NUM},${LAST_LINE_NUM}d" ${LS_HTTPD_CONF} - fi -} - -disable_modsec(){ - check_lsv - if [ "${LSV}" = 'lsws' ]; then - disable_ls_modesec - elif [ "${LSV}" = 'openlitespeed' ]; then - disable_ols_modesec - fi -} - -install_unzip(){ - if [ ! -f /usr/bin/unzip ]; then - echo 'Install Unzip' - apt update >/dev/null 2>&1 - apt-get install unzip -y >/dev/null 2>&1 - fi -} - -install_owasp(){ - cd ${OWASP_DIR} - echo 'Download OWASP rules' - wget -q https://github.com/coreruleset/coreruleset/archive/refs/tags/v${OWASP_V}.zip - unzip -qq v${OWASP_V}.zip - rm -f v${OWASP_V}.zip - mv coreruleset-* owasp-modsecurity-crs -} - -configure_owasp(){ - echo 'Config OWASP rules.' - cd ${OWASP_DIR} - echo "include modsecurity.conf -include owasp-modsecurity-crs/crs-setup.conf -include owasp-modsecurity-crs/rules/REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf -include owasp-modsecurity-crs/rules/REQUEST-901-INITIALIZATION.conf -include owasp-modsecurity-crs/rules/REQUEST-903.9001-DRUPAL-EXCLUSION-RULES.conf -include owasp-modsecurity-crs/rules/REQUEST-903.9002-WORDPRESS-EXCLUSION-RULES.conf -include owasp-modsecurity-crs/rules/REQUEST-903.9003-NEXTCLOUD-EXCLUSION-RULES.conf -include owasp-modsecurity-crs/rules/REQUEST-903.9004-DOKUWIKI-EXCLUSION-RULES.conf -include owasp-modsecurity-crs/rules/REQUEST-903.9005-CPANEL-EXCLUSION-RULES.conf -include owasp-modsecurity-crs/rules/REQUEST-903.9006-XENFORO-EXCLUSION-RULES.conf -include owasp-modsecurity-crs/rules/REQUEST-905-COMMON-EXCEPTIONS.conf -include owasp-modsecurity-crs/rules/REQUEST-910-IP-REPUTATION.conf -include owasp-modsecurity-crs/rules/REQUEST-911-METHOD-ENFORCEMENT.conf -include owasp-modsecurity-crs/rules/REQUEST-912-DOS-PROTECTION.conf -include owasp-modsecurity-crs/rules/REQUEST-913-SCANNER-DETECTION.conf -include owasp-modsecurity-crs/rules/REQUEST-920-PROTOCOL-ENFORCEMENT.conf -include owasp-modsecurity-crs/rules/REQUEST-921-PROTOCOL-ATTACK.conf -include owasp-modsecurity-crs/rules/REQUEST-930-APPLICATION-ATTACK-LFI.conf -include owasp-modsecurity-crs/rules/REQUEST-931-APPLICATION-ATTACK-RFI.conf -include owasp-modsecurity-crs/rules/REQUEST-932-APPLICATION-ATTACK-RCE.conf -include owasp-modsecurity-crs/rules/REQUEST-933-APPLICATION-ATTACK-PHP.conf -include owasp-modsecurity-crs/rules/REQUEST-934-APPLICATION-ATTACK-NODEJS.conf -include owasp-modsecurity-crs/rules/REQUEST-941-APPLICATION-ATTACK-XSS.conf -include owasp-modsecurity-crs/rules/REQUEST-942-APPLICATION-ATTACK-SQLI.conf -include owasp-modsecurity-crs/rules/REQUEST-943-APPLICATION-ATTACK-SESSION-FIXATION.conf -include owasp-modsecurity-crs/rules/REQUEST-944-APPLICATION-ATTACK-JAVA.conf -include owasp-modsecurity-crs/rules/REQUEST-949-BLOCKING-EVALUATION.conf -include owasp-modsecurity-crs/rules/RESPONSE-950-DATA-LEAKAGES.conf -include owasp-modsecurity-crs/rules/RESPONSE-951-DATA-LEAKAGES-SQL.conf -include owasp-modsecurity-crs/rules/RESPONSE-952-DATA-LEAKAGES-JAVA.conf -include owasp-modsecurity-crs/rules/RESPONSE-953-DATA-LEAKAGES-PHP.conf -include owasp-modsecurity-crs/rules/RESPONSE-954-DATA-LEAKAGES-IIS.conf -include owasp-modsecurity-crs/rules/RESPONSE-959-BLOCKING-EVALUATION.conf -include owasp-modsecurity-crs/rules/RESPONSE-980-CORRELATION.conf -include owasp-modsecurity-crs/rules/RESPONSE-999-EXCLUSION-RULES-AFTER-CRS.conf">modsec_includes.conf - echo "SecRuleEngine On">modsecurity.conf - cd ${OWASP_DIR}/owasp-modsecurity-crs - if [ -f crs-setup.conf.example ]; then - mv crs-setup.conf.example crs-setup.conf - fi - cd ${OWASP_DIR}/owasp-modsecurity-crs/rules - if [ -f REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf.example ]; then - mv REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf.example REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf - fi - if [ -f RESPONSE-999-EXCLUSION-RULES-AFTER-CRS.conf.example ]; then - mv RESPONSE-999-EXCLUSION-RULES-AFTER-CRS.conf.example RESPONSE-999-EXCLUSION-RULES-AFTER-CRS.conf - fi -} - -main_owasp(){ - mk_owasp_dir - install_unzip - install_owasp - configure_owasp - check_lsv - enable_modsec -} - -check_input ${1} -while [ ! -z "${1}" ]; do - case ${1} in - -[hH] | -help | --help) - help_message - ;; - -[eE] | -enable | --enable) - main_owasp - ;; - -[dD] | -disable | --disable) - disable_modsec - ;; - *) - help_message - ;; - esac - shift -done \ No newline at end of file diff --git a/openlitespeed/1.8.1-lsphp74/data/bin/container/serialctl.sh b/openlitespeed/1.8.1-lsphp74/data/bin/container/serialctl.sh deleted file mode 100644 index 42e312dc1..000000000 --- a/openlitespeed/1.8.1-lsphp74/data/bin/container/serialctl.sh +++ /dev/null @@ -1,84 +0,0 @@ -#!/bin/bash -LSDIR='/usr/local/lsws' -EPACE=' ' - -echow(){ - FLAG=${1} - shift - echo -e "\033[1m${EPACE}${FLAG}\033[0m${@}" -} - -help_message(){ - echo -e "\033[1mOPTIONS\033[0m" - echow '-S, --serial [YOUR_SERIAL|TRIAL]' - echo "${EPACE}${EPACE}Will apply and register the serial to LSWS." - echow '-H, --help' - echo "${EPACE}${EPACE}Display help and exit." - exit 0 -} - -check_input(){ - if [ -z "${1}" ]; then - help_message - exit 1 - fi -} - -backup_old(){ - if [ -f ${1} ] && [ ! -f ${1}_old ]; then - mv ${1} ${1}_old - fi -} - -detect_ols(){ - if [ -e ${LSDIR}/bin/openlitespeed ]; then - echo '[X] Detect OpenLiteSpeed, abort!' - exit 1 - fi -} - -apply_serial(){ - detect_ols - check_input ${1} - echo ${1} | grep -i 'trial' >/dev/null - if [ ${?} = 0 ]; then - echo 'Apply Trial License' - if [ ! -e ${LSDIR}/conf/serial.no ] && [ ! -e ${LSDIR}/conf/license.key ]; then - rm -f ${LSDIR}/conf/trial.key* - wget -P ${LSDIR}/conf -q http://license.litespeedtech.com/reseller/trial.key - echo 'Apply trial finished' - else - echo "Please backup and remove your existing license, apply abort!" - exit 1 - fi - else - echo "Apply Serial number: ${1}" - backup_old ${LSDIR}/conf/serial.no - backup_old ${LSDIR}/conf/license.key - backup_old ${LSDIR}/conf/trial.key - echo "${1}" > ${LSDIR}/conf/serial.no - ${LSDIR}/bin/lshttpd -r - if [ -f ${LSDIR}/conf/license.key ]; then - echo '[O] Apply success' - else - echo '[X] Apply failed, please check!' - exit 1 - fi - fi -} - -check_input ${1} -while [ ! -z "${1}" ]; do - case ${1} in - -[hH] | -help | --help) - help_message - ;; - -[sS] | -serial | --serial) shift - apply_serial "${1}" - ;; - *) - help_message - ;; - esac - shift -done \ No newline at end of file diff --git a/openlitespeed/1.8.1-lsphp74/data/sites/.gitignore b/openlitespeed/1.8.1-lsphp74/data/sites/.gitignore deleted file mode 100644 index d6b7ef32c..000000000 --- a/openlitespeed/1.8.1-lsphp74/data/sites/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -* -!.gitignore diff --git a/openlitespeed/1.8.1-lsphp74/docker-compose.yml b/openlitespeed/1.8.1-lsphp74/docker-compose.yml deleted file mode 100644 index 18e112ca8..000000000 --- a/openlitespeed/1.8.1-lsphp74/docker-compose.yml +++ /dev/null @@ -1,27 +0,0 @@ -services: - litespeed: - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - volumes: - - ./data/lsws/conf:/usr/local/lsws/conf - - ./data/lsws/admin-conf:/usr/local/lsws/admin/conf - - ./data/bin/container:/usr/local/bin - - ./data/sites:/var/www/vhosts/ - - ./data/acme:/root/.acme.sh/ - - ./data/logs:/usr/local/lsws/logs/ - ports: - - "${PANEL_APP_PORT_HTTP_80}:80" - - "${PANEL_APP_PORT_HTTPS}:443" - - "${PANEL_APP_PORT_HTTPS}:443/udp" - - "${PANEL_APP_PORT_HTTP}:7080" - environment: - - TZ=${TIME_ZONE} - image: litespeedtech/openlitespeed:1.8.1-lsphp74 - labels: - createdBy: "Apps" - -networks: - 1panel-network: - external: true diff --git a/openlitespeed/1.8.3-lsphp81/data.yml b/openlitespeed/1.8.3-lsphp81/data.yml deleted file mode 100644 index 2b16a9e1e..000000000 --- a/openlitespeed/1.8.3-lsphp81/data.yml +++ /dev/null @@ -1,69 +0,0 @@ -additionalProperties: - formFields: - - default: 80 - edit: true - envKey: PANEL_APP_PORT_HTTP_80 - labelEn: HTTP Port - labelZh: HTTP端口 - label: - en: HTTP Port - ja: HTTPポート - ms: Port HTTP - pt-br: Porta HTTP - ru: HTTP-порт - ko: HTTP 포트 - zh: HTTP端口 - zh-Hant: HTTP連接埠 - required: true - rule: paramPort - type: number - - default: 443 - edit: true - envKey: PANEL_APP_PORT_HTTPS - labelEn: HTTPS Port - labelZh: HTTPS端口 - label: - en: HTTPS Port - ja: HTTPSポート - ms: Port HTTPS - pt-br: Porta HTTPS - ru: HTTPS-порт - ko: HTTPS 포트 - zh: HTTPS端口 - zh-Hant: HTTPS連接埠 - required: true - rule: paramPort - type: number - - default: 40113 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Console Port - labelZh: 控制台端口 - label: - en: Console Port - ja: コンソールポート - ms: Port Konsol - pt-br: Porta do Console - ru: Порт консоли - ko: 콘솔 포트 - zh: 控制台端口 - zh-Hant: 控制台埠 - required: true - rule: paramPort - type: number - - default: Asia/Shanghai - edit: true - envKey: TIME_ZONE - labelEn: Time zone - labelZh: 时区 - label: - en: Time zone - ja: タイムゾーン - ms: Zon masa - pt-br: Fuso horário - ru: Часовой пояс - ko: 시간대 - zh: 时区 - zh-Hant: 時區 - required: true - type: text diff --git a/openlitespeed/1.8.3-lsphp81/data/bin/container/appinstallctl.sh b/openlitespeed/1.8.3-lsphp81/data/bin/container/appinstallctl.sh deleted file mode 100644 index d79c63f11..000000000 --- a/openlitespeed/1.8.3-lsphp81/data/bin/container/appinstallctl.sh +++ /dev/null @@ -1,660 +0,0 @@ -#!/bin/bash -DEFAULT_VH_ROOT='/var/www/vhosts' -VH_DOC_ROOT='' -VHNAME='' -APP_NAME='' -DOMAIN='' -WWW_UID='' -WWW_GID='' -WP_CONST_CONF='' -PUB_IP=$(curl -s http://checkip.amazonaws.com) -DB_HOST='mysql' -PLUGINLIST="litespeed-cache.zip" -THEME='twentytwenty' -EPACE=' ' - -echow(){ - FLAG=${1} - shift - echo -e "\033[1m${EPACE}${FLAG}\033[0m${@}" -} - -help_message(){ - echo -e "\033[1mOPTIONS\033[0m" - echow '-A, -app [wordpress] -D, --domain [DOMAIN_NAME]' - echo "${EPACE}${EPACE}Example: appinstallctl.sh --app wordpress --domain example.com" - echow '-H, --help' - echo "${EPACE}${EPACE}Display help and exit." - exit 0 -} - -check_input(){ - if [ -z "${1}" ]; then - help_message - exit 1 - fi -} - -linechange(){ - LINENUM=$(grep -n "${1}" ${2} | cut -d: -f 1) - if [ -n "${LINENUM}" ] && [ "${LINENUM}" -eq "${LINENUM}" ] 2>/dev/null; then - sed -i "${LINENUM}d" ${2} - sed -i "${LINENUM}i${3}" ${2} - fi -} - -ck_ed(){ - if [ ! -f /bin/ed ]; then - echo "Install ed package.." - apt-get install ed -y > /dev/null 2>&1 - fi -} - -ck_unzip(){ - if [ ! -f /usr/bin/unzip ]; then - echo "Install unzip package.." - apt-get install unzip -y > /dev/null 2>&1 - fi -} - -get_owner(){ - WWW_UID=$(stat -c "%u" ${DEFAULT_VH_ROOT}) - WWW_GID=$(stat -c "%g" ${DEFAULT_VH_ROOT}) - if [ ${WWW_UID} -eq 0 ] || [ ${WWW_GID} -eq 0 ]; then - WWW_UID=1000 - WWW_GID=1000 - echo "Set owner to ${WWW_UID}" - fi -} - -get_db_pass(){ - if [ -f ${DEFAULT_VH_ROOT}/${1}/.db_pass ]; then - SQL_DB=$(grep -i Database ${VH_ROOT}/.db_pass | awk -F ':' '{print $2}' | tr -d '"') - SQL_USER=$(grep -i Username ${VH_ROOT}/.db_pass | awk -F ':' '{print $2}' | tr -d '"') - SQL_PASS=$(grep -i Password ${VH_ROOT}/.db_pass | awk -F ':' '{print $2}' | tr -d '"') - else - echo 'db pass file can not locate, skip wp-config pre-config.' - fi -} - -set_vh_docroot(){ - if [ "${VHNAME}" != '' ]; then - VH_ROOT="${DEFAULT_VH_ROOT}/${VHNAME}" - VH_DOC_ROOT="${DEFAULT_VH_ROOT}/${VHNAME}/html" - WP_CONST_CONF="${VH_DOC_ROOT}/wp-content/plugins/litespeed-cache/data/const.default.ini" - elif [ -d ${DEFAULT_VH_ROOT}/${1}/html ]; then - VH_ROOT="${DEFAULT_VH_ROOT}/${1}" - VH_DOC_ROOT="${DEFAULT_VH_ROOT}/${1}/html" - WP_CONST_CONF="${VH_DOC_ROOT}/wp-content/plugins/litespeed-cache/data/const.default.ini" - else - echo "${DEFAULT_VH_ROOT}/${1}/html does not exist, please add domain first! Abort!" - exit 1 - fi -} - -check_sql_native(){ - local COUNTER=0 - local LIMIT_NUM=100 - until [ "$(curl -v mysql:3306 2>&1 | grep -i 'native\|Connected')" ]; do - echo "Counter: ${COUNTER}/${LIMIT_NUM}" - COUNTER=$((COUNTER+1)) - if [ ${COUNTER} = 10 ]; then - echo '--- MySQL is starting, please wait... ---' - elif [ ${COUNTER} = ${LIMIT_NUM} ]; then - echo '--- MySQL is timeout, exit! ---' - exit 1 - fi - sleep 1 - done -} - -install_wp_plugin(){ - for PLUGIN in ${PLUGINLIST}; do - wget -q -P ${VH_DOC_ROOT}/wp-content/plugins/ https://downloads.wordpress.org/plugin/${PLUGIN} - if [ ${?} = 0 ]; then - ck_unzip - unzip -qq -o ${VH_DOC_ROOT}/wp-content/plugins/${PLUGIN} -d ${VH_DOC_ROOT}/wp-content/plugins/ - else - echo "${PLUGINLIST} FAILED to download" - fi - done - rm -f ${VH_DOC_ROOT}/wp-content/plugins/*.zip -} - -set_htaccess(){ - if [ ! -f ${VH_DOC_ROOT}/.htaccess ]; then - touch ${VH_DOC_ROOT}/.htaccess - fi - cat << EOM > ${VH_DOC_ROOT}/.htaccess -# BEGIN WordPress - -RewriteEngine On -RewriteBase / -RewriteRule ^index\.php$ - [L] -RewriteCond %{REQUEST_FILENAME} !-f -RewriteCond %{REQUEST_FILENAME} !-d -RewriteRule . /index.php [L] - -# END WordPress -EOM -} - -get_theme_name(){ - THEME_NAME=$(grep WP_DEFAULT_THEME ${VH_DOC_ROOT}/wp-includes/default-constants.php | grep -v '!' | awk -F "'" '{print $4}') - echo "${THEME_NAME}" | grep 'twenty' >/dev/null 2>&1 - if [ ${?} = 0 ]; then - THEME="${THEME_NAME}" - fi -} - -set_lscache(){ - cat << EOM > "${WP_CONST_CONF}" -; -; This is the predefined default LSCWP configuration file -; -; All the keys and values please refer \`src/const.cls.php\` -; -; Comments start with \`;\` -; -;; -------------------------------------------------- ;; -;; -------------- General ----------------- ;; -;; -------------------------------------------------- ;; -; O_AUTO_UPGRADE -auto_upgrade = false -; O_API_KEY -api_key = '' -; O_SERVER_IP -server_ip = '' -; O_NEWS -news = false -;; -------------------------------------------------- ;; -;; -------------- Cache ----------------- ;; -;; -------------------------------------------------- ;; -cache-priv = true -cache-commenter = true -cache-rest = true -cache-page_login = true -cache-favicon = true -cache-resources = true -cache-browser = false -cache-mobile = false -cache-mobile_rules = 'Mobile -Android -Silk/ -Kindle -BlackBerry -Opera Mini -Opera Mobi' -cache-exc_useragents = '' -cache-exc_cookies = '' -cache-exc_qs = '' -cache-exc_cat = '' -cache-exc_tag = '' -cache-force_uri = '' -cache-force_pub_uri = '' -cache-priv_uri = '' -cache-exc = '' -cache-exc_roles = '' -cache-drop_qs = 'fbclid -gclid -utm* -_ga' -cache-ttl_pub = 604800 -cache-ttl_priv = 1800 -cache-ttl_frontpage = 604800 -cache-ttl_feed = 604800 -; O_CACHE_TTL_REST -cache-ttl_rest = 604800 -cache-ttl_browser = 31557600 -cache-login_cookie = '' -cache-vary_group = '' -cache-ttl_status = '403 3600 -404 3600 -500 3600' -;; -------------------------------------------------- ;; -;; -------------- Purge ----------------- ;; -;; -------------------------------------------------- ;; -; O_PURGE_ON_UPGRADE -purge-upgrade = true -; O_PURGE_STALE -purge-stale = true -purge-post_all = false -purge-post_f = true -purge-post_h = true -purge-post_p = true -purge-post_pwrp = true -purge-post_a = true -purge-post_y = false -purge-post_m = true -purge-post_d = false -purge-post_t = true -purge-post_pt = true -purge-timed_urls = '' -purge-timed_urls_time = '' -purge-hook_all = 'switch_theme -wp_create_nav_menu -wp_update_nav_menu -wp_delete_nav_menu -create_term -edit_terms -delete_term -add_link -edit_link -delete_link' -;; -------------------------------------------------- ;; -;; -------------- ESI ----------------- ;; -;; -------------------------------------------------- ;; -; O_ESI -esi = false -; O_ESI_CACHE_ADMBAR -esi-cache_admbar = true -; O_ESI_CACHE_COMMFORM -esi-cache_commform = true -; O_ESI_NONCE -esi-nonce = 'stats_nonce -subscribe_nonce' -;; -------------------------------------------------- ;; -;; -------------- Utilities ----------------- ;; -;; -------------------------------------------------- ;; -util-heartbeat = true -util-instant_click = false -util-check_advcache = true -util-no_https_vary = false -;; -------------------------------------------------- ;; -;; -------------- Debug ----------------- ;; -;; -------------------------------------------------- ;; -; O_DEBUG_DISABLE_ALL -debug-disable_all = false -; O_DEBUG -debug = false -; O_DEBUG_IPS -debug-ips = '127.0.0.1' -; O_DEBUG_LEVEL -debug-level = false -; O_DEBUG_FILESIZE -debug-filesize = 3 -; O_DEBUG_COOKIE -debug-cookie = false -; O_DEBUG_COLLAPS_QS -debug-collaps_qs = false -; O_DEBUG_INC -debug-inc = '' -; O_DEBUG_EXC -debug-exc = '' -;; -------------------------------------------------- ;; -;; -------------- DB Optm ----------------- ;; -;; -------------------------------------------------- ;; -; O_DB_OPTM_REVISIONS_MAX -db_optm-revisions_max = 0 -; O_DB_OPTM_REVISIONS_AGE -db_optm-revisions_age = 0 -;; -------------------------------------------------- ;; -;; -------------- HTML Optm ----------------- ;; -;; -------------------------------------------------- ;; -; O_OPTM_CSS_MIN -optm-css_min = false -optm-css_inline_min = false -; O_OPTM_CSS_COMB -optm-css_comb = false -optm-css_comb_priority = false -; O_OPTM_CSS_HTTP2 -optm-css_http2 = false -optm-css_exc = '' -; O_OPTM_JS_MIN -optm-js_min = false -optm-js_inline_min = false -; O_OPTM_JS_COMB -optm-js_comb = false -optm-js_comb_priority = false -; O_OPTM_JS_HTTP2 -optm-js_http2 = false -; O_OPTM_EXC_JQ -optm-js_exc = '' -optm-ttl = 604800 -optm-html_min = false -optm-qs_rm = false -optm-ggfonts_rm = false -; O_OPTM_CSS_ASYNC -optm-css_async = false -; O_OPTM_CCSS_GEN -optm-ccss_gen = true -; O_OPTM_CCSS_ASYNC -optm-ccss_async = true -; O_OPTM_CSS_ASYNC_INLINE -optm-css_async_inline = true -; O_OPTM_CSS_FONT_DISPLAY -optm-css_font_display = false -; O_OPTM_JS_DEFER -optm-js_defer = false -; O_OPTM_JS_INLINE_DEFER -optm-js_inline_defer = false -optm-emoji_rm = false -optm-exc_jq = true -optm-ggfonts_async = false -optm-max_size = 2 -optm-rm_comment = false -optm-exc_roles = '' -optm-ccss_con = '' -optm-js_defer_exc = '' -; O_OPTM_DNS_PREFETCH -optm-dns_prefetch = '' -; O_OPTM_DNS_PREFETCH_CTRL -optm-dns_prefetch_ctrl = false -optm-exc = '' -; O_OPTM_CCSS_SEP_POSTTYPE -optm-ccss_sep_posttype = '' -; O_OPTM_CCSS_SEP_URI -optm-ccss_sep_uri = '' -;; -------------------------------------------------- ;; -;; -------------- Object Cache ----------------- ;; -;; -------------------------------------------------- ;; -object = true -object-kind = false -;object-host = 'localhost' -object-host = '/var/www/memcached.sock' -;object-port = 11211 -cache_object_port = '' -object-life = 360 -object-persistent = true -object-admin = true -object-transients = true -object-db_id = 0 -object-user = '' -object-pswd = '' -object-global_groups = 'users -userlogins -usermeta -user_meta -site-transient -site-options -site-lookup -blog-lookup -blog-details -rss -global-posts -blog-id-cache' -object-non_persistent_groups = 'comment -counts -plugins -wc_session_id' -;; -------------------------------------------------- ;; -;; -------------- Discussion ----------------- ;; -;; -------------------------------------------------- ;; -; O_DISCUSS_AVATAR_CACHE -discuss-avatar_cache = false -; O_DISCUSS_AVATAR_CRON -discuss-avatar_cron = false -; O_DISCUSS_AVATAR_CACHE_TTL -discuss-avatar_cache_ttl = 604800 -;; -------------------------------------------------- ;; -;; -------------- Media ----------------- ;; -;; -------------------------------------------------- ;; -; O_MEDIA_LAZY -media-lazy = false -; O_MEDIA_LAZY_PLACEHOLDER -media-lazy_placeholder = '' -; O_MEDIA_PLACEHOLDER_RESP -media-placeholder_resp = false -; O_MEDIA_PLACEHOLDER_RESP_COLOR -media-placeholder_resp_color = '#cfd4db' -; O_MEDIA_PLACEHOLDER_RESP_GENERATOR -media-placeholder_resp_generator = false -; O_MEDIA_PLACEHOLDER_RESP_SVG -media-placeholder_resp_svg = '' -; O_MEDIA_PLACEHOLDER_LQIP -media-placeholder_lqip = false -; O_MEDIA_PLACEHOLDER_LQIP_QUAL -media-placeholder_lqip_qual = 4 -; O_MEDIA_PLACEHOLDER_RESP_ASYNC -media-placeholder_resp_async = true -; O_MEDIA_IFRAME_LAZY -media-iframe_lazy = false -; O_MEDIA_LAZYJS_INLINE -media-lazyjs_inline = false -; O_MEDIA_LAZY_EXC -media-lazy_exc = '' -; O_MEDIA_LAZY_CLS_EXC -media-lazy_cls_exc = '' -; O_MEDIA_LAZY_PARENT_CLS_EXC -media-lazy_parent_cls_exc = '' -; O_MEDIA_IFRAME_LAZY_CLS_EXC -media-iframe_lazy_cls_exc = '' -; O_MEDIA_IFRAME_LAZY_PARENT_CLS_EXC -media-iframe_lazy_parent_cls_exc = '' -; O_MEDIA_LAZY_URI_EXC -media-lazy_uri_exc = '' -;; -------------------------------------------------- ;; -;; -------------- Image Optm ----------------- ;; -;; -------------------------------------------------- ;; -img_optm-auto = false -img_optm-cron = true -img_optm-ori = true -img_optm-rm_bkup = false -img_optm-webp = false -img_optm-lossless = false -img_optm-exif = false -img_optm-webp_replace = false -img_optm-webp_attr = 'img.src -div.data-thumb -img.data-src -div.data-large_image -img.retina_logo_url -div.data-parallax-image -video.poster' -img_optm-webp_replace_srcset = false -img_optm-jpg_quality = 82 -;; -------------------------------------------------- ;; -;; -------------- Crawler ----------------- ;; -;; -------------------------------------------------- ;; -crawler = false -crawler-inc_posts = true -crawler-inc_pages = true -crawler-inc_cats = true -crawler-inc_tags = true -crawler-exc_cpt = '' -crawler-order_links = 'date_desc' -crawler-usleep = 500 -crawler-run_duration = 400 -crawler-run_interval = 600 -crawler-crawl_interval = 302400 -crawler-threads = 3 -crawler-timeout = 30 -crawler-load_limit = 1 -; O_CRAWLER_SITEMAP -crawler-sitemap = '' -; O_CRAWLER_DROP_DOMAIN -crawler-drop_domain = true -crawler-roles = '' -crawler-cookies = '' -;; -------------------------------------------------- ;; -;; -------------- Misc ----------------- ;; -;; -------------------------------------------------- ;; -; O_MISC_HTACCESS_FRONT -misc-htaccess_front = '' -; O_MISC_HTACCESS_BACK -misc-htaccess_back = '' -; O_MISC_HEARTBEAT_FRONT -misc-heartbeat_front = false -; O_MISC_HEARTBEAT_FRONT_TTL -misc-heartbeat_front_ttl = 60 -; O_MISC_HEARTBEAT_BACK -misc-heartbeat_back = false -; O_MISC_HEARTBEAT_BACK_TTL -misc-heartbeat_back_ttl = 60 -; O_MISC_HEARTBEAT_EDITOR -misc-heartbeat_editor = false -; O_MISC_HEARTBEAT_EDITOR_TTL -misc-heartbeat_editor_ttl = 15 -;; -------------------------------------------------- ;; -;; -------------- CDN ----------------- ;; -;; -------------------------------------------------- ;; -cdn = false -cdn-ori = '' -cdn-ori_dir = '' -cdn-exc = '' -cdn-remote_jq = false -cdn-quic = false -cdn-quic_email = '' -cdn-quic_key = '' -cdn-cloudflare = false -cdn-cloudflare_email = '' -cdn-cloudflare_key = '' -cdn-cloudflare_name = '' -cdn-cloudflare_zone = '' -; \`cdn-mapping\` needs to be put in the end with a section tag -;; -------------------------------------------------- ;; -;; -------------- CDN 2 ----------------- ;; -;; -------------------------------------------------- ;; -; <------------ CDN Mapping Example BEGIN --------------------> -; Need to keep the section tag \`[cdn-mapping]\` before list. -; -; NOTE 1) Need to set all child options to make all resources to be replaced without missing. -; NOTE 2) \`url[n]\` option must have to enable the row setting of \`n\`. -; NOTE 3) This section needs to be put in the end of this .ini file -; -; To enable the 2nd mapping record by default, please remove the \`;;\` in the related lines. -[cdn-mapping] -url[0] = '' -inc_js[0] = true -inc_css[0] = true -inc_img[0] = true -filetype[0] = '.aac -.css -.eot -.gif -.jpeg -.js -.jpg -.less -.mp3 -.mp4 -.ogg -.otf -.pdf -.png -.svg -.ttf -.woff' -;;url[1] = 'https://2nd_CDN_url.com/' -;;filetype[1] = '.webm' -; <------------ CDN Mapping Example END ------------------> -EOM - - THEME_PATH="${VH_DOC_ROOT}/wp-content/themes/${THEME}" - if [ ! -f ${THEME_PATH}/functions.php ]; then - cat >> "${THEME_PATH}/functions.php" <>/dev/null 2>&1 -2i -require_once( WP_CONTENT_DIR.'/../wp-admin/includes/plugin.php' ); -\$path = 'litespeed-cache/litespeed-cache.php' ; -if (!is_plugin_active( \$path )) { - activate_plugin( \$path ) ; - rename( __FILE__ . '.bk', __FILE__ ); -} -. -w -q -END - fi -} - -preinstall_wordpress(){ - if [ "${VHNAME}" != '' ]; then - get_db_pass ${VHNAME} - else - get_db_pass ${DOMAIN} - fi - if [ ! -f ${VH_DOC_ROOT}/wp-config.php ] && [ -f ${VH_DOC_ROOT}/wp-config-sample.php ]; then - cp ${VH_DOC_ROOT}/wp-config-sample.php ${VH_DOC_ROOT}/wp-config.php - NEWDBPWD="define('DB_PASSWORD', '${SQL_PASS}');" - linechange 'DB_PASSWORD' ${VH_DOC_ROOT}/wp-config.php "${NEWDBPWD}" - NEWDBPWD="define('DB_USER', '${SQL_USER}');" - linechange 'DB_USER' ${VH_DOC_ROOT}/wp-config.php "${NEWDBPWD}" - NEWDBPWD="define('DB_NAME', '${SQL_DB}');" - linechange 'DB_NAME' ${VH_DOC_ROOT}/wp-config.php "${NEWDBPWD}" - #NEWDBPWD="define('DB_HOST', '${PUB_IP}');" - NEWDBPWD="define('DB_HOST', '${DB_HOST}');" - linechange 'DB_HOST' ${VH_DOC_ROOT}/wp-config.php "${NEWDBPWD}" - elif [ -f ${VH_DOC_ROOT}/wp-config.php ]; then - echo "${VH_DOC_ROOT}/wp-config.php already exist, exit !" - exit 1 - else - echo 'Skip!' - exit 2 - fi -} - -app_wordpress_dl(){ - if [ ! -f "${VH_DOC_ROOT}/wp-config.php" ] && [ ! -f "${VH_DOC_ROOT}/wp-config-sample.php" ]; then - wp core download \ - --allow-root \ - --quiet - else - echo 'wordpress already exist, abort!' - exit 1 - fi -} - -change_owner(){ - if [ "${VHNAME}" != '' ]; then - chown -R ${WWW_UID}:${WWW_GID} ${DEFAULT_VH_ROOT}/${VHNAME} - else - chown -R ${WWW_UID}:${WWW_GID} ${DEFAULT_VH_ROOT}/${DOMAIN} - fi -} - -main(){ - set_vh_docroot ${DOMAIN} - get_owner - cd ${VH_DOC_ROOT} - if [ "${APP_NAME}" = 'wordpress' ] || [ "${APP_NAME}" = 'wp' ]; then - check_sql_native - app_wordpress_dl - preinstall_wordpress - install_wp_plugin - set_htaccess - get_theme_name - set_lscache - change_owner - exit 0 - else - echo "APP: ${APP_NAME} not support, exit!" - exit 1 - fi -} - -check_input ${1} -while [ ! -z "${1}" ]; do - case ${1} in - -[hH] | -help | --help) - help_message - ;; - -[aA] | -app | --app) shift - check_input "${1}" - APP_NAME="${1}" - ;; - -[dD] | -domain | --domain) shift - check_input "${1}" - DOMAIN="${1}" - ;; - -vhname | --vhname) shift - VHNAME="${1}" - ;; - *) - help_message - ;; - esac - shift -done -main diff --git a/openlitespeed/1.8.3-lsphp81/data/bin/container/certhookctl.sh b/openlitespeed/1.8.3-lsphp81/data/bin/container/certhookctl.sh deleted file mode 100644 index 18be0965e..000000000 --- a/openlitespeed/1.8.3-lsphp81/data/bin/container/certhookctl.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/bash -BOTCRON='/var/spool/cron/crontabs/root' - -cert_hook(){ - grep 'acme' ${BOTCRON} >/dev/null - if [ ${?} = 0 ]; then - grep 'lswsctrl' ${BOTCRON} >/dev/null - if [ ${?} = 0 ]; then - echo 'Hook already exist, skip!' - else - sed -i 's/--cron/--cron --renew-hook "\/usr\/local\/lsws\/bin\/lswsctrl restart"/g' ${BOTCRON} - fi - else - echo "[X] ${BOTCRON} does not exist, please check it later!" - fi -} - -cert_hook \ No newline at end of file diff --git a/openlitespeed/1.8.3-lsphp81/data/bin/container/domainctl.sh b/openlitespeed/1.8.3-lsphp81/data/bin/container/domainctl.sh deleted file mode 100644 index 75539ef01..000000000 --- a/openlitespeed/1.8.3-lsphp81/data/bin/container/domainctl.sh +++ /dev/null @@ -1,160 +0,0 @@ -#!/usr/bin/env bash -CK_RESULT='' -LSDIR='/usr/local/lsws' -LS_HTTPD_CONF="${LSDIR}/conf/httpd_config.xml" -OLS_HTTPD_CONF="${LSDIR}/conf/httpd_config.conf" -EPACE=' ' - -echow(){ - FLAG=${1} - shift - echo -e "\033[1m${EPACE}${FLAG}\033[0m${@}" -} - -help_message(){ - echo -e "\033[1mOPTIONS\033[0m" - echow '-A, --add [DOMAIN_NAME]' - echo "${EPACE}${EPACE}Will add domain to listener and creat a virtual host from template" - echow '-D, --del [DOMAIN_NAME]' - echo "${EPACE}${EPACE}Will delete domain from listener" - echow '-H, --help' - echo "${EPACE}${EPACE}Display help." -} - -check_lsv(){ - if [ -f ${LSDIR}/bin/openlitespeed ]; then - LSV='openlitespeed' - elif [ -f ${LSDIR}/bin/litespeed ]; then - LSV='lsws' - else - echo 'Version not exist, abort!' - exit 1 - fi -} - -dot_escape(){ - ESCAPE=$(echo ${1} | sed 's/\./\\./g') -} - -check_duplicate(){ - CK_RESULT=$(grep -E "${1}" ${2}) -} - -fst_match_line(){ - FIRST_LINE_NUM=$(grep -n -m 1 ${1} ${2} | awk -F ':' '{print $1}') -} -fst_match_after(){ - FIRST_NUM_AFTER=$(tail -n +${1} ${2} | grep -n -m 1 ${3} | awk -F ':' '{print $1}') -} -lst_match_line(){ - fst_match_after ${1} ${2} ${3} - LAST_LINE_NUM=$((${FIRST_LINE_NUM}+${FIRST_NUM_AFTER}-1)) -} - -check_input(){ - if [ -z "${1}" ]; then - help_message - exit 1 - fi -} - -check_www(){ - CHECK_WWW=$(echo ${1} | cut -c1-4) - if [[ ${CHECK_WWW} == www. ]] ; then - echo 'www domain shoudnt be passed!' - exit 1 - fi -} - -www_domain(){ - check_www ${1} - WWW_DOMAIN=$(echo www.${1}) -} - -add_ls_domain(){ - fst_match_line 'docker.xml' ${LS_HTTPD_CONF} - NEWNUM=$((FIRST_LINE_NUM+2)) - sed -i "${NEWNUM}i \ \ \ \ \ \ \n \ \ \ \ \ \ \ ${DOMAIN}\n \ \ \ \ \ \ \ ${DOMAIN},${WWW_DOMAIN}\n \ \ \ \ \ \ " ${LS_HTTPD_CONF} -} - -add_ols_domain(){ - perl -0777 -p -i -e 's/(vhTemplate docker \{[^}]+)\}*(^.*listeners.*$)/\1$2 - member '${DOMAIN}' { - vhDomain '${DOMAIN},${WWW_DOMAIN}' - }/gmi' ${OLS_HTTPD_CONF} -} - -add_domain(){ - check_lsv - dot_escape ${1} - DOMAIN=${ESCAPE} - www_domain ${1} - if [ "${LSV}" = 'lsws' ]; then - check_duplicate "vhDomain.*${DOMAIN}" ${LS_HTTPD_CONF} - if [ "${CK_RESULT}" != '' ]; then - echo "# It appears the domain already exist! Check the ${LS_HTTPD_CONF} if you believe this is a mistake!" - exit 1 - fi - elif [ "${LSV}" = 'openlitespeed' ]; then - check_duplicate "member.*${DOMAIN}" ${OLS_HTTPD_CONF} - if [ "${CK_RESULT}" != '' ]; then - echo "# It appears the domain already exist! Check the ${OLS_HTTPD_CONF} if you believe this is a mistake!" - exit 1 - fi - fi - add_ls_domain - add_ols_domain -} - -del_ls_domain(){ - fst_match_line "*${1}" ${LS_HTTPD_CONF} - FIRST_LINE_NUM=$((FIRST_LINE_NUM-1)) - lst_match_line ${FIRST_LINE_NUM} ${LS_HTTPD_CONF} '' - sed -i "${FIRST_LINE_NUM},${LAST_LINE_NUM}d" ${LS_HTTPD_CONF} -} - -del_ols_domain(){ - fst_match_line ${1} ${OLS_HTTPD_CONF} - lst_match_line ${FIRST_LINE_NUM} ${OLS_HTTPD_CONF} '}' - sed -i "${FIRST_LINE_NUM},${LAST_LINE_NUM}d" ${OLS_HTTPD_CONF} -} - -del_domain(){ - check_lsv - dot_escape ${1} - DOMAIN=${ESCAPE} - if [ "${LSV}" = 'lsws' ]; then - check_duplicate "vhDomain.*${DOMAIN}" ${LS_HTTPD_CONF} - if [ "${CK_RESULT}" = '' ]; then - echo "# Domain non-exist! Check the ${LS_HTTPD_CONF} if you believe this is a mistake!" - exit 1 - fi - elif [ "${LSV}" = 'openlitespeed' ]; then - check_duplicate "member.*${DOMAIN}" ${OLS_HTTPD_CONF} - if [ "${CK_RESULT}" = '' ]; then - echo "# Domain non-exist! Check the ${OLS_HTTPD_CONF} if you believe this is a mistake!" - exit 1 - fi - fi - del_ls_domain ${1} - del_ols_domain ${1} -} - -check_input ${1} -while [ ! -z "${1}" ]; do - case ${1} in - -[hH] | -help | --help) - help_message - ;; - -[aA] | -add | --add) shift - add_domain ${1} - ;; - -[dD] | -del | --del | --delete) shift - del_domain ${1} - ;; - *) - help_message - ;; - esac - shift -done \ No newline at end of file diff --git a/openlitespeed/1.8.3-lsphp81/data/bin/container/owaspctl.sh b/openlitespeed/1.8.3-lsphp81/data/bin/container/owaspctl.sh deleted file mode 100644 index 72fd8e59c..000000000 --- a/openlitespeed/1.8.3-lsphp81/data/bin/container/owaspctl.sh +++ /dev/null @@ -1,236 +0,0 @@ -#!/bin/bash -LSDIR='/usr/local/lsws' -OWASP_DIR="${LSDIR}/conf/owasp" -RULE_FILE='modsec_includes.conf' -LS_HTTPD_CONF="${LSDIR}/conf/httpd_config.xml" -OLS_HTTPD_CONF="${LSDIR}/conf/httpd_config.conf" -EPACE=' ' -OWASP_V='3.3.4' - -echow(){ - FLAG=${1} - shift - echo -e "\033[1m${EPACE}${FLAG}\033[0m${@}" -} - -help_message(){ - echo -e "\033[1mOPTIONS\033[0m" - echow '-E, --enable' - echo "${EPACE}${EPACE}Will Enable mod_secure module with latest OWASP version of rules" - echow '-D, --disable' - echo "${EPACE}${EPACE}Will Disable mod_secure module with latest OWASP version of rules" - echow '-H, --help' - echo "${EPACE}${EPACE}Display help and exit." - exit 0 -} - -check_lsv(){ - if [ -f ${LSDIR}/bin/openlitespeed ]; then - LSV='openlitespeed' - elif [ -f ${LSDIR}/bin/litespeed ]; then - LSV='lsws' - else - echo 'Version not exist, abort!' - exit 1 - fi -} - -check_input(){ - if [ -z "${1}" ]; then - help_message - exit 1 - fi -} - -mk_owasp_dir(){ - if [ -d ${OWASP_DIR} ] ; then - rm -rf ${OWASP_DIR} - fi - mkdir -p ${OWASP_DIR} - if [ ${?} -ne 0 ] ; then - echo "Unable to create directory: ${OWASP_DIR}, exit!" - exit 1 - fi -} - -fst_match_line(){ - FIRST_LINE_NUM=$(grep -n -m 1 "${1}" ${2} | awk -F ':' '{print $1}') -} -fst_match_after(){ - FIRST_NUM_AFTER=$(tail -n +${1} ${2} | grep -n -m 1 ${3} | awk -F ':' '{print $1}') -} -lst_match_line(){ - fst_match_after ${1} ${2} ${3} - LAST_LINE_NUM=$((${FIRST_LINE_NUM}+${FIRST_NUM_AFTER}-1)) -} - -enable_ols_modsec(){ - grep 'module mod_security {' ${OLS_HTTPD_CONF} >/dev/null 2>&1 - if [ ${?} -eq 0 ] ; then - echo "Already configured for modsecurity." - else - echo 'Enable modsecurity' - sed -i "s=module cache=module mod_security {\nmodsecurity on\ - \nmodsecurity_rules \`\nSecRuleEngine On\n\`\nmodsecurity_rules_file \ - ${OWASP_DIR}/${RULE_FILE}\n ls_enabled 1\n}\ - \n\nmodule cache=" ${OLS_HTTPD_CONF} - fi -} - -enable_ls_modsec(){ - grep '1' ${LS_HTTPD_CONF} >/dev/null 2>&1 - if [ ${?} -eq 0 ] ; then - echo "LSWS already configured for modsecurity" - else - echo 'Enable modsecurity' - sed -i \ - "s=0=1=" ${LS_HTTPD_CONF} - sed -i \ - "s==\n\ - \n\ - ModSec\n\ - 1\n\ - include ${OWASP_DIR}/modsec_includes.conf\n\ - =" ${LS_HTTPD_CONF} - fi -} - -enable_modsec(){ - if [ "${LSV}" = 'lsws' ]; then - enable_ls_modsec - elif [ "${LSV}" = 'openlitespeed' ]; then - enable_ols_modsec - fi -} - -disable_ols_modesec(){ - grep 'module mod_security {' ${OLS_HTTPD_CONF} >/dev/null 2>&1 - if [ ${?} -eq 0 ] ; then - echo 'Disable modsecurity' - fst_match_line 'module mod_security' ${OLS_HTTPD_CONF} - lst_match_line ${FIRST_LINE_NUM} ${OLS_HTTPD_CONF} '}' - sed -i "${FIRST_LINE_NUM},${LAST_LINE_NUM}d" ${OLS_HTTPD_CONF} - else - echo 'Already disabled for modsecurity' - fi -} - -disable_ls_modesec(){ - grep '0' ${LS_HTTPD_CONF} - if [ ${?} -eq 0 ] ; then - echo 'Already disabled for modsecurity' - else - echo 'Disable modsecurity' - sed -i \ - "s=1=0=" ${LS_HTTPD_CONF} - fst_match_line 'censorshipRuleSet' ${LS_HTTPD_CONF} - lst_match_line ${FIRST_LINE_NUM} ${LS_HTTPD_CONF} '/censorshipRuleSet' - sed -i "${FIRST_LINE_NUM},${LAST_LINE_NUM}d" ${LS_HTTPD_CONF} - fi -} - -disable_modsec(){ - check_lsv - if [ "${LSV}" = 'lsws' ]; then - disable_ls_modesec - elif [ "${LSV}" = 'openlitespeed' ]; then - disable_ols_modesec - fi -} - -install_unzip(){ - if [ ! -f /usr/bin/unzip ]; then - echo 'Install Unzip' - apt update >/dev/null 2>&1 - apt-get install unzip -y >/dev/null 2>&1 - fi -} - -install_owasp(){ - cd ${OWASP_DIR} - echo 'Download OWASP rules' - wget -q https://github.com/coreruleset/coreruleset/archive/refs/tags/v${OWASP_V}.zip - unzip -qq v${OWASP_V}.zip - rm -f v${OWASP_V}.zip - mv coreruleset-* owasp-modsecurity-crs -} - -configure_owasp(){ - echo 'Config OWASP rules.' - cd ${OWASP_DIR} - echo "include modsecurity.conf -include owasp-modsecurity-crs/crs-setup.conf -include owasp-modsecurity-crs/rules/REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf -include owasp-modsecurity-crs/rules/REQUEST-901-INITIALIZATION.conf -include owasp-modsecurity-crs/rules/REQUEST-903.9001-DRUPAL-EXCLUSION-RULES.conf -include owasp-modsecurity-crs/rules/REQUEST-903.9002-WORDPRESS-EXCLUSION-RULES.conf -include owasp-modsecurity-crs/rules/REQUEST-903.9003-NEXTCLOUD-EXCLUSION-RULES.conf -include owasp-modsecurity-crs/rules/REQUEST-903.9004-DOKUWIKI-EXCLUSION-RULES.conf -include owasp-modsecurity-crs/rules/REQUEST-903.9005-CPANEL-EXCLUSION-RULES.conf -include owasp-modsecurity-crs/rules/REQUEST-903.9006-XENFORO-EXCLUSION-RULES.conf -include owasp-modsecurity-crs/rules/REQUEST-905-COMMON-EXCEPTIONS.conf -include owasp-modsecurity-crs/rules/REQUEST-910-IP-REPUTATION.conf -include owasp-modsecurity-crs/rules/REQUEST-911-METHOD-ENFORCEMENT.conf -include owasp-modsecurity-crs/rules/REQUEST-912-DOS-PROTECTION.conf -include owasp-modsecurity-crs/rules/REQUEST-913-SCANNER-DETECTION.conf -include owasp-modsecurity-crs/rules/REQUEST-920-PROTOCOL-ENFORCEMENT.conf -include owasp-modsecurity-crs/rules/REQUEST-921-PROTOCOL-ATTACK.conf -include owasp-modsecurity-crs/rules/REQUEST-930-APPLICATION-ATTACK-LFI.conf -include owasp-modsecurity-crs/rules/REQUEST-931-APPLICATION-ATTACK-RFI.conf -include owasp-modsecurity-crs/rules/REQUEST-932-APPLICATION-ATTACK-RCE.conf -include owasp-modsecurity-crs/rules/REQUEST-933-APPLICATION-ATTACK-PHP.conf -include owasp-modsecurity-crs/rules/REQUEST-934-APPLICATION-ATTACK-NODEJS.conf -include owasp-modsecurity-crs/rules/REQUEST-941-APPLICATION-ATTACK-XSS.conf -include owasp-modsecurity-crs/rules/REQUEST-942-APPLICATION-ATTACK-SQLI.conf -include owasp-modsecurity-crs/rules/REQUEST-943-APPLICATION-ATTACK-SESSION-FIXATION.conf -include owasp-modsecurity-crs/rules/REQUEST-944-APPLICATION-ATTACK-JAVA.conf -include owasp-modsecurity-crs/rules/REQUEST-949-BLOCKING-EVALUATION.conf -include owasp-modsecurity-crs/rules/RESPONSE-950-DATA-LEAKAGES.conf -include owasp-modsecurity-crs/rules/RESPONSE-951-DATA-LEAKAGES-SQL.conf -include owasp-modsecurity-crs/rules/RESPONSE-952-DATA-LEAKAGES-JAVA.conf -include owasp-modsecurity-crs/rules/RESPONSE-953-DATA-LEAKAGES-PHP.conf -include owasp-modsecurity-crs/rules/RESPONSE-954-DATA-LEAKAGES-IIS.conf -include owasp-modsecurity-crs/rules/RESPONSE-959-BLOCKING-EVALUATION.conf -include owasp-modsecurity-crs/rules/RESPONSE-980-CORRELATION.conf -include owasp-modsecurity-crs/rules/RESPONSE-999-EXCLUSION-RULES-AFTER-CRS.conf">modsec_includes.conf - echo "SecRuleEngine On">modsecurity.conf - cd ${OWASP_DIR}/owasp-modsecurity-crs - if [ -f crs-setup.conf.example ]; then - mv crs-setup.conf.example crs-setup.conf - fi - cd ${OWASP_DIR}/owasp-modsecurity-crs/rules - if [ -f REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf.example ]; then - mv REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf.example REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf - fi - if [ -f RESPONSE-999-EXCLUSION-RULES-AFTER-CRS.conf.example ]; then - mv RESPONSE-999-EXCLUSION-RULES-AFTER-CRS.conf.example RESPONSE-999-EXCLUSION-RULES-AFTER-CRS.conf - fi -} - -main_owasp(){ - mk_owasp_dir - install_unzip - install_owasp - configure_owasp - check_lsv - enable_modsec -} - -check_input ${1} -while [ ! -z "${1}" ]; do - case ${1} in - -[hH] | -help | --help) - help_message - ;; - -[eE] | -enable | --enable) - main_owasp - ;; - -[dD] | -disable | --disable) - disable_modsec - ;; - *) - help_message - ;; - esac - shift -done \ No newline at end of file diff --git a/openlitespeed/1.8.3-lsphp81/data/bin/container/serialctl.sh b/openlitespeed/1.8.3-lsphp81/data/bin/container/serialctl.sh deleted file mode 100644 index 42e312dc1..000000000 --- a/openlitespeed/1.8.3-lsphp81/data/bin/container/serialctl.sh +++ /dev/null @@ -1,84 +0,0 @@ -#!/bin/bash -LSDIR='/usr/local/lsws' -EPACE=' ' - -echow(){ - FLAG=${1} - shift - echo -e "\033[1m${EPACE}${FLAG}\033[0m${@}" -} - -help_message(){ - echo -e "\033[1mOPTIONS\033[0m" - echow '-S, --serial [YOUR_SERIAL|TRIAL]' - echo "${EPACE}${EPACE}Will apply and register the serial to LSWS." - echow '-H, --help' - echo "${EPACE}${EPACE}Display help and exit." - exit 0 -} - -check_input(){ - if [ -z "${1}" ]; then - help_message - exit 1 - fi -} - -backup_old(){ - if [ -f ${1} ] && [ ! -f ${1}_old ]; then - mv ${1} ${1}_old - fi -} - -detect_ols(){ - if [ -e ${LSDIR}/bin/openlitespeed ]; then - echo '[X] Detect OpenLiteSpeed, abort!' - exit 1 - fi -} - -apply_serial(){ - detect_ols - check_input ${1} - echo ${1} | grep -i 'trial' >/dev/null - if [ ${?} = 0 ]; then - echo 'Apply Trial License' - if [ ! -e ${LSDIR}/conf/serial.no ] && [ ! -e ${LSDIR}/conf/license.key ]; then - rm -f ${LSDIR}/conf/trial.key* - wget -P ${LSDIR}/conf -q http://license.litespeedtech.com/reseller/trial.key - echo 'Apply trial finished' - else - echo "Please backup and remove your existing license, apply abort!" - exit 1 - fi - else - echo "Apply Serial number: ${1}" - backup_old ${LSDIR}/conf/serial.no - backup_old ${LSDIR}/conf/license.key - backup_old ${LSDIR}/conf/trial.key - echo "${1}" > ${LSDIR}/conf/serial.no - ${LSDIR}/bin/lshttpd -r - if [ -f ${LSDIR}/conf/license.key ]; then - echo '[O] Apply success' - else - echo '[X] Apply failed, please check!' - exit 1 - fi - fi -} - -check_input ${1} -while [ ! -z "${1}" ]; do - case ${1} in - -[hH] | -help | --help) - help_message - ;; - -[sS] | -serial | --serial) shift - apply_serial "${1}" - ;; - *) - help_message - ;; - esac - shift -done \ No newline at end of file diff --git a/openlitespeed/1.8.3-lsphp81/data/sites/.gitignore b/openlitespeed/1.8.3-lsphp81/data/sites/.gitignore deleted file mode 100644 index d6b7ef32c..000000000 --- a/openlitespeed/1.8.3-lsphp81/data/sites/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -* -!.gitignore diff --git a/openlitespeed/1.8.3-lsphp81/docker-compose.yml b/openlitespeed/1.8.3-lsphp81/docker-compose.yml deleted file mode 100644 index e0c5c00d3..000000000 --- a/openlitespeed/1.8.3-lsphp81/docker-compose.yml +++ /dev/null @@ -1,27 +0,0 @@ -services: - litespeed: - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - volumes: - - ./data/lsws/conf:/usr/local/lsws/conf - - ./data/lsws/admin-conf:/usr/local/lsws/admin/conf - - ./data/bin/container:/usr/local/bin - - ./data/sites:/var/www/vhosts/ - - ./data/acme:/root/.acme.sh/ - - ./data/logs:/usr/local/lsws/logs/ - ports: - - "${PANEL_APP_PORT_HTTP_80}:80" - - "${PANEL_APP_PORT_HTTPS}:443" - - "${PANEL_APP_PORT_HTTPS}:443/udp" - - "${PANEL_APP_PORT_HTTP}:7080" - environment: - - TZ=${TIME_ZONE} - image: litespeedtech/openlitespeed:1.8.3-lsphp81 - labels: - createdBy: "Apps" - -networks: - 1panel-network: - external: true diff --git a/openlitespeed/README.md b/openlitespeed/README.md deleted file mode 100644 index 461c4d5ba..000000000 --- a/openlitespeed/README.md +++ /dev/null @@ -1,21 +0,0 @@ -# 使用说明 - -安装完成后,在容器功能界面,连接容器终端,执行以下命令创建管理员账户密码 - -```shell -/usr/local/lsws/admin/misc/admpass.sh -``` - -# OpenLiteSpeed - -**OpenLiteSpeed** 是一个高性能、轻量级、开源 的HTTP 服务器。 - -# 功能简介: - -- **高性能**:OpenLiteSpeed 能够处理大量并发连接和请求,提供快速的响应时间和高吞吐量。 -- **内置缓存**:提供内置的高效缓存系统,可以显著提高网站的加载速度和性能。 -- **事件驱动架构**:采用事件驱动架构,有效利用系统资源,提高服务器处理能力。 -- **虚拟主机支持**:支持虚拟主机配置,允许在一台服务器上托管多个网站,提供灵活的部署选项。 -- **安全性**:内置防止 DDoS 攻击和恶意软件保护,提供可靠的安全防护措施。 -- **易于使用的 Web 管理界面**:提供直观的 Web 管理界面,方便用户配置和管理服务器设置。 -- **可扩展性**:支持各种插件和扩展,可以根据需要扩展服务器功能和性能。 \ No newline at end of file diff --git a/openlitespeed/README_en.md b/openlitespeed/README_en.md deleted file mode 100644 index 245306cd8..000000000 --- a/openlitespeed/README_en.md +++ /dev/null @@ -1,22 +0,0 @@ -# Usage Instructions - -After installation, connect to the container terminal from the container interface and execute the following command to create an administrator account password: - -```shell -/usr/local/lsws/admin/misc/admpass.sh -``` - -# OpenLiteSpeed - -**OpenLiteSpeed** is a high-performance, lightweight, open-source HTTP server. - -## Key Features: - -- **High Performance**: OpenLiteSpeed can handle a large number of concurrent connections and requests, providing fast response times and high throughput. -- **Built-in Cache**: Features an efficient built-in caching system that significantly improves website loading speed and performance. -- **Event-Driven Architecture**: Utilizes an event-driven architecture to efficiently use system resources and enhance server processing capabilities. -- **Virtual Host Support**: Supports virtual host configurations, allowing multiple websites to be hosted on a single server, providing flexible deployment options. -- **Security**: Includes built-in protection against DDoS attacks and malware, offering reliable security measures. -- **Easy-to-Use Web Management Interface**: Provides an intuitive web management interface for easy server configuration and management. -- **Scalability**: Supports various plugins and extensions, allowing server functionality and performance to be expanded as needed. - diff --git a/openlitespeed/data.yml b/openlitespeed/data.yml deleted file mode 100644 index 0ca8156f0..000000000 --- a/openlitespeed/data.yml +++ /dev/null @@ -1,30 +0,0 @@ -name: OpenLiteSpeed -tags: - - Web 服务器 -title: 高性能、轻量级、开源的 HTTP 服务器 -description: 高性能、轻量级、开源的 HTTP 服务器 -additionalProperties: - key: openlitespeed - name: OpenLiteSpeed - tags: - - Server - shortDescZh: 高性能、轻量级、开源的 HTTP 服务器 - shortDescEn: A high-performance, lightweight, open source HTTP server - type: website - crossVersionUpdate: true - limit: 1 - recommend: 0 - website: https://openlitespeed.org - github: https://github.com/litespeedtech/openlitespeed - document: https://openlitespeed.org/#install - description: - en: A high-performance, lightweight, open source HTTP server - zh: 高性能、轻量级、开源的 HTTP 服务器 - zh-Hant: 高性能、輕量級、開源的 HTTP 伺服器 - ja: 高性能で軽量、オープンソースの HTTP サーバー - ms: Pelayan HTTP sumber terbuka yang berprestasi tinggi dan ringan - pt-br: Um servidor HTTP de alto desempenho, leve e de código aberto - ru: Высокопроизводительный, легковесный, открытый HTTP-сервер - ko: 고성능, 경량, 오픈 소스 HTTP 서버 - architectures: - - amd64 \ No newline at end of file diff --git a/openlitespeed/logo.png b/openlitespeed/logo.png deleted file mode 100644 index 4b1d28cce..000000000 Binary files a/openlitespeed/logo.png and /dev/null differ diff --git a/openresty/1.21.4.3-3-3-focal/1pwaf/data/conf/.aes_key b/openresty/1.21.4.3-3-3-focal/1pwaf/data/conf/.aes_key deleted file mode 100644 index e69de29bb..000000000 diff --git a/openresty/1.21.4.3-3-3-focal/1pwaf/data/conf/.secret b/openresty/1.21.4.3-3-3-focal/1pwaf/data/conf/.secret deleted file mode 100644 index e69de29bb..000000000 diff --git a/openresty/1.21.4.3-3-3-focal/1pwaf/data/conf/global.json b/openresty/1.21.4.3-3-3-focal/1pwaf/data/conf/global.json deleted file mode 100644 index c473226dd..000000000 --- a/openresty/1.21.4.3-3-3-focal/1pwaf/data/conf/global.json +++ /dev/null @@ -1,173 +0,0 @@ -{ - "waf": { - "state": "off", - "mode": "protection", - "secret": "" - }, - "redis": { - "state": "off", - "host": "", - "port": 6379, - "password": "", - "ssl": false, - "poolSize": 10 - }, - "ipWhite": { - "state": "on", - "type": "ipWhite", - "action": "allow" - }, - "ipBlack": { - "state": "on", - "code": 403, - "action": "deny", - "type": "ipBlack", - "res": "ip" - }, - "urlWhite": { - "type": "urlWhite", - "state": "on", - "action": "allow" - }, - "urlBlack": { - "type": "urlBlack", - "state": "on", - "code": 403, - "action": "deny" - }, - "uaWhite": { - "type": "uaWhite", - "state": "off", - "action": "allow" - }, - "uaBlack": { - "type": "uaBlack", - "state": "on", - "code": 403, - "action": "deny" - }, - "notFoundCount": { - "state": "on", - "type": "notFoundCount", - "threshold": 30, - "duration": 10, - "action": "deny", - "ipBlock": "on", - "code": 403, - "ipBlockTime": 600 - }, - "methodWhite": { - "type": "methodWhite", - "state": "on", - "code": 444, - "action": "deny" - }, - "bot": { - "state": "on", - "type": "bot", - "uri": "/1pwaf/bot/trap", - "action": "REDIRECT_JS", - "ipBlock": "on", - "ipBlockTime": 600 - }, - "unknownWebsite": { - "state": "on", - "type": "unknownWebsite", - "action": "deny", - "code": 403, - "res": "unknown" - }, - "geoRestrict": { - "state": "off", - "rules": [], - "code": 403, - "action": "deny", - "type": "geoRestrict", - "res": "geo" - }, - "defaultIpBlack": { - "state": "on", - "type": "defaultIpBlack", - "code": 403, - "action": "deny" - }, - "xss": { - "state": "on", - "type": "xss", - "code": 403, - "action": "deny" - }, - "sql": { - "state": "on", - "type": "sql", - "code": 403, - "action": "deny" - }, - "cc": { - "state": "on", - "type": "cc", - "rule": "cc", - "tokenTimeOut": 1800, - "threshold": 100, - "duration": 10, - "action": "deny", - "ipBlock": "on", - "ipBlockTime": 600, - "mode": "uri" - }, - "ccurl": { - "state": "off", - "type": "urlcc", - "action": "deny", - "ipBlock": "on", - "ipBlockTime": 600 - }, - "attackCount": { - "state": "on", - "type": "attackCount", - "threshold": 10, - "duration": 60, - "action": "deny", - "ipBlock": "on", - "ipBlockTime": 3000 - }, - "fileExt": { - "state": "off", - "action": "deny", - "code": 403, - "type": "fileExtCheck" - }, - "cookie": { - "type": "cookie", - "state": "on", - "code": 403, - "action": "deny" - }, - "header": { - "state": "on", - "type": "header", - "code": 403, - "action": "deny" - }, - "defaultUaBlack": { - "type": "defaultUaBlack", - "state": "on", - "code": 403, - "action": "deny" - }, - "defaultUrlBlack": { - "type": "defaultUrlBlack", - "state": "on", - "code": 403, - "action": "deny" - }, - "args": { - "type": "args", - "state": "on", - "code": 403, - "action": "deny" - }, - "cdn": { - "state": "off" - } -} diff --git a/openresty/1.21.4.3-3-3-focal/1pwaf/data/conf/monitor.json b/openresty/1.21.4.3-3-3-focal/1pwaf/data/conf/monitor.json deleted file mode 100644 index 6bd119205..000000000 --- a/openresty/1.21.4.3-3-3-focal/1pwaf/data/conf/monitor.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "state": "off", - "exclude": { - "extensions": [ - "png", - "gif", - "jpg", - "css", - "js", - "svg", - "jpeg", - "woff", - "woff2", - "bmp", - "swf", - "icon", - "ttf", - "eot" - ], - "status": [], - "uri": [ - "/favicon.ico" - ], - "ua": [], - "ip": [] - }, - "log": { - "maxDay": 180 - } -} \ No newline at end of file diff --git a/openresty/1.21.4.3-3-3-focal/1pwaf/data/conf/siteConfig.json b/openresty/1.21.4.3-3-3-focal/1pwaf/data/conf/siteConfig.json deleted file mode 100644 index a489ce00c..000000000 --- a/openresty/1.21.4.3-3-3-focal/1pwaf/data/conf/siteConfig.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "waf": { - "state": "on", - "mode": "protection" - }, - "args": { - "state": "on", - "type": "args", - "code": 403, - "action": "deny" - }, - "defaultUaBlack": { - "type": "defaultUaBlack", - "state": "on", - "code": 403, - "action": "deny" - }, - "cookie": { - "state": "on", - "type": "cookie", - "code": 403, - "action": "deny" - }, - "bot": { - "type": "bot", - "state": "on", - "uri": "/1pwaf/bot/trap", - "action": "deny", - "ipBlock": "off", - "ipBlockTime": 600 - }, - "geoRestrict": { - "state": "off", - "rules": [], - "code": 403, - "action": "deny", - "type": "geoRestrict", - "res": "geo" - }, - "xss": { - "state": "on", - "type": "xss", - "code": 403, - "action": "deny" - }, - "sql": { - "state": "on", - "type": "sql", - "code": 403, - "action": "deny" - }, - "cc": { - "state": "on", - "type": "cc", - "rule": "cc", - "tokenTimeOut": 1800, - "threshold": 200, - "duration": 10, - "action": "deny", - "ipBlock": "on", - "ipBlockTime": 600, - "mode": "uri" - }, - "ccurl": { - "state": "on", - "type": "ccurl", - "action": "deny", - "ipBlock": "off", - "ipBlockTime": 600 - }, - "fileExt": { - "state": "off", - "action": "deny", - "code": 403, - "type": "fileExtCheck" - }, - "header": { - "state": "on", - "type": "header", - "code": 403, - "action": "deny" - }, - "defaultUrlBlack": { - "type": "defaultUrlBlack", - "state": "on", - "code": 403, - "action": "deny" - }, - "methodWhite": { - "type": "methodWhite", - "state": "on", - "code": 444, - "action": "deny" - }, - "cdn": { - "state": "off" - } -} diff --git a/openresty/1.21.4.3-3-3-focal/1pwaf/data/conf/sites.json b/openresty/1.21.4.3-3-3-focal/1pwaf/data/conf/sites.json deleted file mode 100644 index e69de29bb..000000000 diff --git a/openresty/1.21.4.3-3-3-focal/1pwaf/data/conf/token b/openresty/1.21.4.3-3-3-focal/1pwaf/data/conf/token deleted file mode 100644 index e69de29bb..000000000 diff --git a/openresty/1.21.4.3-3-3-focal/1pwaf/data/conf/waf.conf b/openresty/1.21.4.3-3-3-focal/1pwaf/data/conf/waf.conf deleted file mode 100644 index 7903ec5c4..000000000 --- a/openresty/1.21.4.3-3-3-focal/1pwaf/data/conf/waf.conf +++ /dev/null @@ -1,14 +0,0 @@ -lua_shared_dict waf_req_count 10m; -lua_shared_dict waf 50m; -lua_shared_dict waf_block_ip 10m; -lua_shared_dict waf_ip_arr 20m; -lua_shared_dict waf_limit 10m; -lua_shared_dict waf_sql 200m; -lua_shared_dict waf_locks 100k; - -lua_code_cache on; -lua_package_path "/usr/local/openresty/1pwaf/?.lua;/usr/local/openresty/1pwaf/lib/?.lua;;"; -init_by_lua_file /usr/local/openresty/1pwaf/init.lua; -access_by_lua_file /usr/local/openresty/1pwaf/waf.lua; -log_by_lua_file /usr/local/openresty/1pwaf/log_and_traffic.lua; -init_worker_by_lua_file /usr/local/openresty/1pwaf/worker.lua; diff --git a/openresty/1.21.4.3-3-3-focal/1pwaf/data/conf/waf.json b/openresty/1.21.4.3-3-3-focal/1pwaf/data/conf/waf.json deleted file mode 100644 index ab7668f0c..000000000 --- a/openresty/1.21.4.3-3-3-focal/1pwaf/data/conf/waf.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "name": "1Panel WAF", - "version": "1.0.0" -} \ No newline at end of file diff --git a/openresty/1.21.4.3-3-3-focal/1pwaf/data/default/cc.html b/openresty/1.21.4.3-3-3-focal/1pwaf/data/default/cc.html deleted file mode 100644 index 641a59caa..000000000 --- a/openresty/1.21.4.3-3-3-focal/1pwaf/data/default/cc.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - -请求拦截 - - - - -
-
请求频率太高 已被拦截
-
- - - - - - diff --git a/openresty/1.21.4.3-3-3-focal/1pwaf/data/default/forbidden.html b/openresty/1.21.4.3-3-3-focal/1pwaf/data/default/forbidden.html deleted file mode 100644 index 6c056e0c6..000000000 --- a/openresty/1.21.4.3-3-3-focal/1pwaf/data/default/forbidden.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - -请求拦截 - - - - -
-
请求携带恶意参数 已被拦截
-
- - - - - - diff --git a/openresty/1.21.4.3-3-3-focal/1pwaf/data/default/geo.html b/openresty/1.21.4.3-3-3-focal/1pwaf/data/default/geo.html deleted file mode 100644 index 7f7ff0b98..000000000 --- a/openresty/1.21.4.3-3-3-focal/1pwaf/data/default/geo.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - -地区拦截 - - - - -
-
你的区域被禁止访问
-
- - - - - - diff --git a/openresty/1.21.4.3-3-3-focal/1pwaf/data/default/global.json b/openresty/1.21.4.3-3-3-focal/1pwaf/data/default/global.json deleted file mode 100644 index c473226dd..000000000 --- a/openresty/1.21.4.3-3-3-focal/1pwaf/data/default/global.json +++ /dev/null @@ -1,173 +0,0 @@ -{ - "waf": { - "state": "off", - "mode": "protection", - "secret": "" - }, - "redis": { - "state": "off", - "host": "", - "port": 6379, - "password": "", - "ssl": false, - "poolSize": 10 - }, - "ipWhite": { - "state": "on", - "type": "ipWhite", - "action": "allow" - }, - "ipBlack": { - "state": "on", - "code": 403, - "action": "deny", - "type": "ipBlack", - "res": "ip" - }, - "urlWhite": { - "type": "urlWhite", - "state": "on", - "action": "allow" - }, - "urlBlack": { - "type": "urlBlack", - "state": "on", - "code": 403, - "action": "deny" - }, - "uaWhite": { - "type": "uaWhite", - "state": "off", - "action": "allow" - }, - "uaBlack": { - "type": "uaBlack", - "state": "on", - "code": 403, - "action": "deny" - }, - "notFoundCount": { - "state": "on", - "type": "notFoundCount", - "threshold": 30, - "duration": 10, - "action": "deny", - "ipBlock": "on", - "code": 403, - "ipBlockTime": 600 - }, - "methodWhite": { - "type": "methodWhite", - "state": "on", - "code": 444, - "action": "deny" - }, - "bot": { - "state": "on", - "type": "bot", - "uri": "/1pwaf/bot/trap", - "action": "REDIRECT_JS", - "ipBlock": "on", - "ipBlockTime": 600 - }, - "unknownWebsite": { - "state": "on", - "type": "unknownWebsite", - "action": "deny", - "code": 403, - "res": "unknown" - }, - "geoRestrict": { - "state": "off", - "rules": [], - "code": 403, - "action": "deny", - "type": "geoRestrict", - "res": "geo" - }, - "defaultIpBlack": { - "state": "on", - "type": "defaultIpBlack", - "code": 403, - "action": "deny" - }, - "xss": { - "state": "on", - "type": "xss", - "code": 403, - "action": "deny" - }, - "sql": { - "state": "on", - "type": "sql", - "code": 403, - "action": "deny" - }, - "cc": { - "state": "on", - "type": "cc", - "rule": "cc", - "tokenTimeOut": 1800, - "threshold": 100, - "duration": 10, - "action": "deny", - "ipBlock": "on", - "ipBlockTime": 600, - "mode": "uri" - }, - "ccurl": { - "state": "off", - "type": "urlcc", - "action": "deny", - "ipBlock": "on", - "ipBlockTime": 600 - }, - "attackCount": { - "state": "on", - "type": "attackCount", - "threshold": 10, - "duration": 60, - "action": "deny", - "ipBlock": "on", - "ipBlockTime": 3000 - }, - "fileExt": { - "state": "off", - "action": "deny", - "code": 403, - "type": "fileExtCheck" - }, - "cookie": { - "type": "cookie", - "state": "on", - "code": 403, - "action": "deny" - }, - "header": { - "state": "on", - "type": "header", - "code": 403, - "action": "deny" - }, - "defaultUaBlack": { - "type": "defaultUaBlack", - "state": "on", - "code": 403, - "action": "deny" - }, - "defaultUrlBlack": { - "type": "defaultUrlBlack", - "state": "on", - "code": 403, - "action": "deny" - }, - "args": { - "type": "args", - "state": "on", - "code": 403, - "action": "deny" - }, - "cdn": { - "state": "off" - } -} diff --git a/openresty/1.21.4.3-3-3-focal/1pwaf/data/default/ip.html b/openresty/1.21.4.3-3-3-focal/1pwaf/data/default/ip.html deleted file mode 100644 index 5d7c3ef77..000000000 --- a/openresty/1.21.4.3-3-3-focal/1pwaf/data/default/ip.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - -黑名单拦截 - - - - -
-
很抱歉,您的 IP 被禁止访问
-
- - - - - - diff --git a/openresty/1.21.4.3-3-3-focal/1pwaf/data/default/monitor.json b/openresty/1.21.4.3-3-3-focal/1pwaf/data/default/monitor.json deleted file mode 100644 index 6bd119205..000000000 --- a/openresty/1.21.4.3-3-3-focal/1pwaf/data/default/monitor.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "state": "off", - "exclude": { - "extensions": [ - "png", - "gif", - "jpg", - "css", - "js", - "svg", - "jpeg", - "woff", - "woff2", - "bmp", - "swf", - "icon", - "ttf", - "eot" - ], - "status": [], - "uri": [ - "/favicon.ico" - ], - "ua": [], - "ip": [] - }, - "log": { - "maxDay": 180 - } -} \ No newline at end of file diff --git a/openresty/1.21.4.3-3-3-focal/1pwaf/data/default/unknown.html b/openresty/1.21.4.3-3-3-focal/1pwaf/data/default/unknown.html deleted file mode 100644 index 6c39f4309..000000000 --- a/openresty/1.21.4.3-3-3-focal/1pwaf/data/default/unknown.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - -网站不存在 - - - - -
-
网站不存在,请检查域名
-
- - - - - - diff --git a/openresty/1.21.4.3-3-3-focal/1pwaf/data/html-en/5s.html b/openresty/1.21.4.3-3-3-focal/1pwaf/data/html-en/5s.html deleted file mode 100644 index cd8ffd7b0..000000000 --- a/openresty/1.21.4.3-3-3-focal/1pwaf/data/html-en/5s.html +++ /dev/null @@ -1,21 +0,0 @@ - - - -5s - - - -
-
Verifying...
-
Verification Passed
-
-
- - - diff --git a/openresty/1.21.4.3-3-3-focal/1pwaf/data/html-en/5s.js b/openresty/1.21.4.3-3-3-focal/1pwaf/data/html-en/5s.js deleted file mode 100644 index d20c2a8fb..000000000 --- a/openresty/1.21.4.3-3-3-focal/1pwaf/data/html-en/5s.js +++ /dev/null @@ -1,24 +0,0 @@ -window.onload = function () { - setTimeout(function () { - showSuccess(); - verifySucc(); - }, 5000); - - function showSuccess() { - document.getElementById("loadingText").style.display = "none"; - document.getElementById("loadingSuccess").style.display = "block"; - document.querySelector(".loadingSpinner").style.display = "none"; - } - - function verifySucc() { - let xhr = new XMLHttpRequest(); - xhr.onreadystatechange = function () { - if (xhr.readyState === 4 && xhr.status === 200) { - window.location.reload(); - } - }; - const requestUrl = "%s-%s-%s-%s-%s-"; - xhr.open("GET", requestUrl, true); - xhr.send(); - } -} \ No newline at end of file diff --git a/openresty/1.21.4.3-3-3-focal/1pwaf/data/html-en/cc.html b/openresty/1.21.4.3-3-3-focal/1pwaf/data/html-en/cc.html deleted file mode 100644 index f4c67d97c..000000000 --- a/openresty/1.21.4.3-3-3-focal/1pwaf/data/html-en/cc.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - -Request Intercepted - - - - -
-
Request frequency is too high and has been blocked
-
- - - - - - diff --git a/openresty/1.21.4.3-3-3-focal/1pwaf/data/html-en/forbidden.html b/openresty/1.21.4.3-3-3-focal/1pwaf/data/html-en/forbidden.html deleted file mode 100644 index 4b92fd05d..000000000 --- a/openresty/1.21.4.3-3-3-focal/1pwaf/data/html-en/forbidden.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - -Request Intercepted - - - - -
-
Request with malicious parameters has been intercepted
-
- - - - - - diff --git a/openresty/1.21.4.3-3-3-focal/1pwaf/data/html-en/geo.html b/openresty/1.21.4.3-3-3-focal/1pwaf/data/html-en/geo.html deleted file mode 100644 index 1454b8789..000000000 --- a/openresty/1.21.4.3-3-3-focal/1pwaf/data/html-en/geo.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - -Region Block - - - - -
-
Your region is blocked from access
-
- - - - - - diff --git a/openresty/1.21.4.3-3-3-focal/1pwaf/data/html-en/ip.html b/openresty/1.21.4.3-3-3-focal/1pwaf/data/html-en/ip.html deleted file mode 100644 index 198f2cadc..000000000 --- a/openresty/1.21.4.3-3-3-focal/1pwaf/data/html-en/ip.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - -Blacklist Interception - - - - -
-
Sorry, your IP is banned from access.
-
- - - - - - diff --git a/openresty/1.21.4.3-3-3-focal/1pwaf/data/html-en/redirect.html b/openresty/1.21.4.3-3-3-focal/1pwaf/data/html-en/redirect.html deleted file mode 100644 index 34045e43e..000000000 --- a/openresty/1.21.4.3-3-3-focal/1pwaf/data/html-en/redirect.html +++ /dev/null @@ -1,28 +0,0 @@ - - - - WAF - - - -
-
WAF
-
-

Your request is invalid and has been denied.

-
- -
- - diff --git a/openresty/1.21.4.3-3-3-focal/1pwaf/data/html-en/slide.html b/openresty/1.21.4.3-3-3-focal/1pwaf/data/html-en/slide.html deleted file mode 100644 index 46524d10a..000000000 --- a/openresty/1.21.4.3-3-3-focal/1pwaf/data/html-en/slide.html +++ /dev/null @@ -1,26 +0,0 @@ - - - -Sliding Authentication - - - -
-
-
-
-
-
-
- - - diff --git a/openresty/1.21.4.3-3-3-focal/1pwaf/data/html-en/slide.js b/openresty/1.21.4.3-3-3-focal/1pwaf/data/html-en/slide.js deleted file mode 100644 index b4088874f..000000000 --- a/openresty/1.21.4.3-3-3-focal/1pwaf/data/html-en/slide.js +++ /dev/null @@ -1,82 +0,0 @@ -window.onload = function () { - (function () { - const dragContainer = document.getElementById("dragContainer"); - const dragBg = document.getElementById("dragBg"); - const dragText = document.getElementById("dragText"); - const dragHandler = document.getElementById("dragHandler"); - const maxHandleOffset = dragContainer.clientWidth - dragHandler.clientWidth; - let isVertifySucc = false; - - initDrag(); - - function initDrag() { - dragText.textContent = "Slide to verify"; - dragHandler.addEventListener("mousedown", onDragStart); - dragHandler.addEventListener("touchstart", onDragStart); - } - - function onDragStart(a) { - a.preventDefault(); - if (a.type === "mousedown" || (a.type === "touchstart" && a.touches.length === 1)) { - document.addEventListener("mousemove", onDragMove); - document.addEventListener("touchmove", onDragMove); - document.addEventListener("mouseup", onDragEnd); - document.addEventListener("touchend", onDragEnd); - } - } - - function onDragMove(a) { - let clientX; - if (a.type === "mousemove") { - clientX = a.clientX; - } else if (a.type === "touchmove" && a.touches.length === 1) { - clientX = a.touches[0].clientX; - } - let containerOffsetX = clientX - dragContainer.getBoundingClientRect().left; - let left = containerOffsetX - dragHandler.clientWidth / 2; - if (left < 0) { - left = 0; - } else if (left > maxHandleOffset) { - left = maxHandleOffset; - } - dragHandler.style.left = left + "px"; - dragBg.style.width = dragHandler.style.left; - } - - function onDragEnd() { - document.removeEventListener("mousemove", onDragMove); - document.removeEventListener("touchmove", onDragMove); - document.removeEventListener("mouseup", onDragEnd); - document.removeEventListener("touchend", onDragEnd); - - if (!isVertifySucc) { - let left = dragHandler.offsetLeft; - if (left >= maxHandleOffset) { - verifySucc(); - } else { - dragHandler.style.left = "0px"; - dragBg.style.width = "0px"; - } - } - } - - function verifySucc() { - isVertifySucc = true; - dragText.textContent = "Verification Passed"; - dragText.style.color = "white"; - dragHandler.setAttribute("class", "dragHandlerOkBg"); - dragHandler.removeEventListener("mousedown", onDragStart); - dragHandler.removeEventListener("touchstart", onDragStart); - - let xhr = new XMLHttpRequest(); - xhr.onreadystatechange = function () { - if (xhr.readyState === 4 && xhr.status === 200) { - window.location.reload(); - } - }; - const requestUrl = "%s-%s-%s-%s-%s-"; - xhr.open("GET", requestUrl, true); - xhr.send(); - } - })(); -}; diff --git a/openresty/1.21.4.3-3-3-focal/1pwaf/data/html-en/unknown.html b/openresty/1.21.4.3-3-3-focal/1pwaf/data/html-en/unknown.html deleted file mode 100644 index 760eda86e..000000000 --- a/openresty/1.21.4.3-3-3-focal/1pwaf/data/html-en/unknown.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - -The website does not exist - - - - -
-
The website does not exist, please check the domain name.
-
- - - - - - diff --git a/openresty/1.21.4.3-3-3-focal/1pwaf/data/html/5s.html b/openresty/1.21.4.3-3-3-focal/1pwaf/data/html/5s.html deleted file mode 100644 index 392bf66c4..000000000 --- a/openresty/1.21.4.3-3-3-focal/1pwaf/data/html/5s.html +++ /dev/null @@ -1,21 +0,0 @@ - - - -5s - - - -
-
正在验证...
-
验证成功
-
-
- - - diff --git a/openresty/1.21.4.3-3-3-focal/1pwaf/data/html/5s.js b/openresty/1.21.4.3-3-3-focal/1pwaf/data/html/5s.js deleted file mode 100644 index d20c2a8fb..000000000 --- a/openresty/1.21.4.3-3-3-focal/1pwaf/data/html/5s.js +++ /dev/null @@ -1,24 +0,0 @@ -window.onload = function () { - setTimeout(function () { - showSuccess(); - verifySucc(); - }, 5000); - - function showSuccess() { - document.getElementById("loadingText").style.display = "none"; - document.getElementById("loadingSuccess").style.display = "block"; - document.querySelector(".loadingSpinner").style.display = "none"; - } - - function verifySucc() { - let xhr = new XMLHttpRequest(); - xhr.onreadystatechange = function () { - if (xhr.readyState === 4 && xhr.status === 200) { - window.location.reload(); - } - }; - const requestUrl = "%s-%s-%s-%s-%s-"; - xhr.open("GET", requestUrl, true); - xhr.send(); - } -} \ No newline at end of file diff --git a/openresty/1.21.4.3-3-3-focal/1pwaf/data/html/cc.html b/openresty/1.21.4.3-3-3-focal/1pwaf/data/html/cc.html deleted file mode 100644 index 641a59caa..000000000 --- a/openresty/1.21.4.3-3-3-focal/1pwaf/data/html/cc.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - -请求拦截 - - - - -
-
请求频率太高 已被拦截
-
- - - - - - diff --git a/openresty/1.21.4.3-3-3-focal/1pwaf/data/html/forbidden.html b/openresty/1.21.4.3-3-3-focal/1pwaf/data/html/forbidden.html deleted file mode 100644 index 6c056e0c6..000000000 --- a/openresty/1.21.4.3-3-3-focal/1pwaf/data/html/forbidden.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - -请求拦截 - - - - -
-
请求携带恶意参数 已被拦截
-
- - - - - - diff --git a/openresty/1.21.4.3-3-3-focal/1pwaf/data/html/geo.html b/openresty/1.21.4.3-3-3-focal/1pwaf/data/html/geo.html deleted file mode 100644 index 7f7ff0b98..000000000 --- a/openresty/1.21.4.3-3-3-focal/1pwaf/data/html/geo.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - -地区拦截 - - - - -
-
你的区域被禁止访问
-
- - - - - - diff --git a/openresty/1.21.4.3-3-3-focal/1pwaf/data/html/ip.html b/openresty/1.21.4.3-3-3-focal/1pwaf/data/html/ip.html deleted file mode 100644 index 5d7c3ef77..000000000 --- a/openresty/1.21.4.3-3-3-focal/1pwaf/data/html/ip.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - -黑名单拦截 - - - - -
-
很抱歉,您的 IP 被禁止访问
-
- - - - - - diff --git a/openresty/1.21.4.3-3-3-focal/1pwaf/data/html/redirect.html b/openresty/1.21.4.3-3-3-focal/1pwaf/data/html/redirect.html deleted file mode 100644 index 64c776b47..000000000 --- a/openresty/1.21.4.3-3-3-focal/1pwaf/data/html/redirect.html +++ /dev/null @@ -1,24 +0,0 @@ - - - - 网站防火墙 - - - -
-
网站防火墙
-
-

您的请求不合法,已被拒绝

-
- -
- - diff --git a/openresty/1.21.4.3-3-3-focal/1pwaf/data/html/slide.html b/openresty/1.21.4.3-3-3-focal/1pwaf/data/html/slide.html deleted file mode 100644 index 6ac7d7596..000000000 --- a/openresty/1.21.4.3-3-3-focal/1pwaf/data/html/slide.html +++ /dev/null @@ -1,26 +0,0 @@ - - - -滑动认证 - - - -
-
-
-
-
-
-
- - - diff --git a/openresty/1.21.4.3-3-3-focal/1pwaf/data/html/slide.js b/openresty/1.21.4.3-3-3-focal/1pwaf/data/html/slide.js deleted file mode 100644 index a8f92789b..000000000 --- a/openresty/1.21.4.3-3-3-focal/1pwaf/data/html/slide.js +++ /dev/null @@ -1,82 +0,0 @@ -window.onload = function () { - (function () { - const dragContainer = document.getElementById("dragContainer"); - const dragBg = document.getElementById("dragBg"); - const dragText = document.getElementById("dragText"); - const dragHandler = document.getElementById("dragHandler"); - const maxHandleOffset = dragContainer.clientWidth - dragHandler.clientWidth; - let isVertifySucc = false; - - initDrag(); - - function initDrag() { - dragText.textContent = "拖动滑块验证"; - dragHandler.addEventListener("mousedown", onDragStart); - dragHandler.addEventListener("touchstart", onDragStart); - } - - function onDragStart(a) { - a.preventDefault(); - if (a.type === "mousedown" || (a.type === "touchstart" && a.touches.length === 1)) { - document.addEventListener("mousemove", onDragMove); - document.addEventListener("touchmove", onDragMove); - document.addEventListener("mouseup", onDragEnd); - document.addEventListener("touchend", onDragEnd); - } - } - - function onDragMove(a) { - let clientX; - if (a.type === "mousemove") { - clientX = a.clientX; - } else if (a.type === "touchmove" && a.touches.length === 1) { - clientX = a.touches[0].clientX; - } - let containerOffsetX = clientX - dragContainer.getBoundingClientRect().left; - let left = containerOffsetX - dragHandler.clientWidth / 2; - if (left < 0) { - left = 0; - } else if (left > maxHandleOffset) { - left = maxHandleOffset; - } - dragHandler.style.left = left + "px"; - dragBg.style.width = dragHandler.style.left; - } - - function onDragEnd() { - document.removeEventListener("mousemove", onDragMove); - document.removeEventListener("touchmove", onDragMove); - document.removeEventListener("mouseup", onDragEnd); - document.removeEventListener("touchend", onDragEnd); - - if (!isVertifySucc) { - let left = dragHandler.offsetLeft; - if (left >= maxHandleOffset) { - verifySucc(); - } else { - dragHandler.style.left = "0px"; - dragBg.style.width = "0px"; - } - } - } - - function verifySucc() { - isVertifySucc = true; - dragText.textContent = "验证通过"; - dragText.style.color = "white"; - dragHandler.setAttribute("class", "dragHandlerOkBg"); - dragHandler.removeEventListener("mousedown", onDragStart); - dragHandler.removeEventListener("touchstart", onDragStart); - - let xhr = new XMLHttpRequest(); - xhr.onreadystatechange = function () { - if (xhr.readyState === 4 && xhr.status === 200) { - window.location.reload(); - } - }; - const requestUrl = "%s-%s-%s-%s-%s-"; - xhr.open("GET", requestUrl, true); - xhr.send(); - } - })(); -}; diff --git a/openresty/1.21.4.3-3-3-focal/1pwaf/data/html/unknown.html b/openresty/1.21.4.3-3-3-focal/1pwaf/data/html/unknown.html deleted file mode 100644 index 6c39f4309..000000000 --- a/openresty/1.21.4.3-3-3-focal/1pwaf/data/html/unknown.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - -网站不存在 - - - - -
-
网站不存在,请检查域名
-
- - - - - - diff --git a/openresty/1.21.4.3-3-3-focal/1pwaf/data/rules/acl.json b/openresty/1.21.4.3-3-3-focal/1pwaf/data/rules/acl.json deleted file mode 100644 index b7fca6ded..000000000 --- a/openresty/1.21.4.3-3-3-focal/1pwaf/data/rules/acl.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "rules": [ - ] -} \ No newline at end of file diff --git a/openresty/1.21.4.3-3-3-focal/1pwaf/data/rules/args.json b/openresty/1.21.4.3-3-3-focal/1pwaf/data/rules/args.json deleted file mode 100644 index 60a5fa6af..000000000 --- a/openresty/1.21.4.3-3-3-focal/1pwaf/data/rules/args.json +++ /dev/null @@ -1,157 +0,0 @@ -{ - "rules": [ - { - "state": "on", - "name": "sqlInject1", - "rule": "select.+(from|limit)", - "type": "sqlInject" - }, - { - "state": "on", - "name": "sqlInject2", - "rule": "(?:(union(.*?)select))", - "type": "sqlInject" - }, - { - "state": "on", - "name": "sqlInject3", - "rule": "having|rongjitest", - "type": "sqlInject" - }, - { - "state": "on", - "name": "sqlInject4", - "rule": "sleep\\((\\s*)(\\d*)(\\s*)\\)", - "type": "sqlInject" - }, - { - "state": "on", - "name": "sqlInject5", - "rule": "benchmark\\((.*)\\,(.*)\\)", - "type": "sqlInject" - }, - { - "state": "on", - "name": "sqlInject6", - "rule": "group\\s+by.+\\(", - "type": "sqlInject" - }, - { - "state": "on", - "name": "sqlInject7", - "rule": "(?:from\\W+information_schema\\W)", - "type": "sqlInject" - }, - { - "state": "on", - "name": "sqlInject8", - "rule": "(?:(?:current_)user|database|schema|connection_id)\\s*\\(", - "type": "sqlInject" - }, - { - "state": "on", - "name": "sqlInject9", - "rule": "into(\\s+)+(?:dump|out)file\\s*", - "type": "sqlInject" - }, - { - "state": "on", - "name": "sqlInject10", - "rule": "\\s+(or|xor|and)\\s+.*(=|<|>|'|\")", - "type": "sqlInject" - }, - { - "state": "on", - "name": "args1", - "rule": "xwork.MethodAccessor", - "type": "args", - "description": "Struts 恶意参数过滤" - }, - { - "state": "on", - "name": "args2", - "rule": "xwork\\.MethodAccessor", - "type": "args", - "description": "Struts 恶意参数过滤" - }, - { - "state": "on", - "name": "oneWordTrojan1", - "rule": "(?:define|eval|file_get_contents|include|require|require_once|shell_exec|phpinfo|system|passthru|preg_\\w+|execute|echo|print|print_r|var_dump|(fp)open|alert|showmodaldialog)\\(", - "type": "oneWordTrojan" - }, - { - "state": "on", - "name": "oneWordTrojan2", - "rule": "\\$_(GET|post|cookie|files|session|env|phplib|GLOBALS|SERVER)\\[", - "type": "oneWordTrojan" - }, - { - "state": "on", - "name": "protocolFilter1", - "rule": "(gopher|doc|php|glob|file|phar|zlib|ftp|ldap|dict|ogg|data)\\:\\/", - "type": "protocolFilter", - "description": "协议过滤" - }, - { - "state": "on", - "name": "dirFilter1", - "rule": "(?:etc\\/\\W*passwd)", - "type": "dirFilter" - }, - { - "state": "on", - "name": "dirFilter2", - "rule": "java\\.lang", - "type": "dirFilter" - }, - { - "state": "on", - "name": "dirFilter3", - "rule": "(?:etc\\/\\W*shadow)", - "type": "dirFilter" - }, - { - "state": "on", - "name": "dirFilter4", - "rule": "(?:bin\\/\\W*sh)", - "type": "dirFilter" - }, - { - "state": "on", - "name": "xss1", - "rule": "\\<(iframe|script|body|img|layer|div|meta|style|base|object|input)", - "type": "xss" - }, - { - "state": "on", - "name": "xss2", - "rule": "(onmouseover|onerror|onload)\\=", - "type": "xss" - }, - { - "state": "on", - "name": "xss3", - "rule": "base64_decode\\(", - "type": "xss" - }, - { - "state": "on", - "name": "webshell1", - "rule": "/shell?cd+/tmp;\\s*rm+-rf\\+\\*;\\s*wget", - "type": "webshell" - }, - { - "state": "on", - "name": "phpExec1", - "rule": "/systembc/password.php", - "type": "phpExec" - }, - { - "state": "on", - "name": "scannerFilter1", - "rule": "(Acunetix-Aspect|Acunetix-Aspect-Password|Acunetix-Aspect-Queries|X-WIPP|X-RequestManager-Memo|X-Request-Memo|X-Scan-Memo)", - "type": "scannerFilter" - } - ] -} \ No newline at end of file diff --git a/openresty/1.21.4.3-3-3-focal/1pwaf/data/rules/cdn.json b/openresty/1.21.4.3-3-3-focal/1pwaf/data/rules/cdn.json deleted file mode 100644 index 4cea12773..000000000 --- a/openresty/1.21.4.3-3-3-focal/1pwaf/data/rules/cdn.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "rules": [ - { - "rule": "x-forwarded-for" - }, - { - "rule": "x-real-ip" - }, - { - "rule": "x-forwarded" - }, - { - "rule": "forwarded-for" - }, - { - "rule": "forwarded" - }, - { - "rule": "true-client-ip" - }, - { - "rule": "client-ip" - }, - { - "rule": "ali-cdn-real-ip" - }, - { - "rule": "cdn-src-ip" - }, - { - "rule": "cdn-real-ip" - }, - { - "rule": "cf-connecting-ip" - }, - { - "rule": "x-cluster-client-ip" - }, - { - "rule": "wl-proxy-client-ip" - }, - { - "rule": "proxy-client-ip" - } - ], - "type": "headers", - "header": "x-real-ip" -} \ No newline at end of file diff --git a/openresty/1.21.4.3-3-3-focal/1pwaf/data/rules/cookie.json b/openresty/1.21.4.3-3-3-focal/1pwaf/data/rules/cookie.json deleted file mode 100644 index 147a05eec..000000000 --- a/openresty/1.21.4.3-3-3-focal/1pwaf/data/rules/cookie.json +++ /dev/null @@ -1,138 +0,0 @@ -{ - "rules": [ - { - "state": "on", - "name": "dirFilter1", - "rule": "\\.\\./", - "type": "dirFilter" - }, - { - "state": "on", - "name": "dirFilter2", - "rule": "\\:\\$", - "type": "dirFilter" - }, - { - "state": "on", - "name": "dirFilter3", - "rule": "\\$\\{", - "type": "dirFilter" - }, - { - "state": "on", - "name": "dirFilter4", - "rule": "(?:etc\\/\\W*passwd)", - "type": "dirFilter" - }, - { - "state": "on", - "name": "dirFilter5", - "rule": "java\\.lang", - "type": "dirFilter" - }, - { - "state": "on", - "name": "sqlInject1", - "rule": "select.+(from|limit)", - "type": "sqlInject" - }, - { - "state": "on", - "name": "sqlInject2", - "rule": "(?:(union(.*?)select))", - "type": "sqlInject" - }, - { - "state": "on", - "name": "sqlInject3", - "rule": "having|rongjitest", - "type": "sqlInject" - }, - { - "state": "on", - "name": "sqlInject4", - "rule": "sleep\\((\\s*)(\\d*)(\\s*)\\)", - "type": "sqlInject" - }, - { - "state": "on", - "name": "sqlInject5", - "rule": "benchmark\\((.*)\\,(.*)\\)", - "type": "sqlInject" - }, - { - "state": "on", - "name": "sqlInject6", - "rule": "group\\s+by.+\\(", - "type": "sqlInject" - }, - { - "state": "on", - "name": "sqlInject7", - "rule": "(?:from\\W+information_schema\\W)", - "type": "sqlInject" - }, - { - "state": "on", - "name": "sqlInject8", - "rule": "(?:(?:current_)user|database|schema|connection_id)\\s*\\(", - "type": "sqlInject" - }, - { - "state": "on", - "name": "sqlInject9", - "rule": "into(\\s+)+(?:dump|out)file\\s*", - "type": "sqlInject" - }, - { - "state": "on", - "name": "sqlInject10", - "rule": "\\s+(or|xor|and)\\s+.*(=|<|>|'|\")", - "type": "sqlInject" - }, - { - "state": "on", - "name": "args1", - "rule": "xwork.MethodAccessor", - "type": "args", - "description": "Struts 恶意参数过滤" - }, - { - "state": "on", - "name": "args2", - "rule": "xwork\\.MethodAccessor", - "type": "args", - "description": "Struts 恶意参数过滤" - }, - { - "state": "on", - "name": "oneWordTrojan1", - "rule": "(?:define|eval|file_get_contents|include|require|require_once|shell_exec|phpinfo|system|passthru|preg_\\w+|execute|echo|print|print_r|var_dump|(fp)open|alert|showmodaldialog)\\(", - "type": "oneWordTrojan" - }, - { - "state": "on", - "name": "oneWordTrojan2", - "rule": "\\$_(GET|post|cookie|files|session|env|phplib|GLOBALS|SERVER)\\[", - "type": "oneWordTrojan" - }, - { - "state": "on", - "name": "protocolFilter1", - "rule": "(gopher|doc|php|glob|file|phar|zlib|ftp|ldap|dict|ogg|data)\\:\\/", - "type": "protocolFilter" - }, - { - "state":"on", - "name":"scannerFilter1", - "rule":"(CustomCookie|acunetixCookie)", - "type": "scannerFilter" - }, - { - "state": "on", - "name": "xss1", - "rule": "base64_decode\\(", - "type": "xss" - } - ] -} \ No newline at end of file diff --git a/openresty/1.21.4.3-3-3-focal/1pwaf/data/rules/defaultUaBlack.json b/openresty/1.21.4.3-3-3-focal/1pwaf/data/rules/defaultUaBlack.json deleted file mode 100644 index b5b984b8f..000000000 --- a/openresty/1.21.4.3-3-3-focal/1pwaf/data/rules/defaultUaBlack.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "rules": [ - { - "state": "on", - "name": "uaBlock1", - "rule": "HTTrack|Apache-HttpClient|harvest|audit|dirbuster|pangolin|nmap|sqln|hydra|Parser|libwww|BBBike|sqlmap|w3af|owasp|Nikto|fimap|havij|zmeu|BabyKrokodil|netsparker|httperf| SF/", - "type": "scannerFilter" - } - ] -} \ No newline at end of file diff --git a/openresty/1.21.4.3-3-3-focal/1pwaf/data/rules/defaultUrlBlack.json b/openresty/1.21.4.3-3-3-focal/1pwaf/data/rules/defaultUrlBlack.json deleted file mode 100644 index 56c775d76..000000000 --- a/openresty/1.21.4.3-3-3-focal/1pwaf/data/rules/defaultUrlBlack.json +++ /dev/null @@ -1,196 +0,0 @@ -{ - "rules": [ - { - "state": "on", - "rule": "\\.(htaccess|mysql_history|bash_history|DS_Store|git|idea|user\\.ini)", - "name": "dirFilter1", - "type": "dirFilter" - }, - { - "state": "on", - "rule": "\\.(bak|inc|old|mdb|sql|backup|java|class)$", - "name": "dirFilter2", - "type": "dirFilter" - }, - { - "state": "on", - "rule": "^/(vhost|bbs|host|wwwroot|www|site|root|backup|data|ftp|db|admin|website|web).*\\.(rar|sql|zip|tar\\.gz|tar)$", - "name": "dirFilter3", - "type": "dirFilter" - }, - { - "state": "on", - "rule": "java\\.lang", - "name": "dirFilter4", - "type": "dirFilter" - }, - { - "state": "on", - "name": "dirFilter5", - "rule": "(?:etc\\/\\W*passwd)", - "type": "dirFilter" - }, - { - "state": "on", - "name": "dirFilter6", - "rule": "(?:bin\\/\\W*sh)", - "type": "dirFilter" - }, - { - "state": "on", - "rule": "/(hack|shell|spy|phpspy)\\.php$", - "name": "phpExec1", - "type": "phpExec" - }, - { - "state": "on", - "rule": "/(attachments|upimg|images|css|uploadfiles|html|uploads|templets|static|template|data|inc|forumdata|upload|includes|cache|avatar)/(\\\\w+).(php|jsp)", - "name": "phpExec2", - "type": "phpExec" - }, - { - "state": "on", - "rule": "(?:phpMyAdmin2|phpMyAdmin|phpmyadmin|dbadmin|pma|myadmin|admin|mysql)/scripts/setup%.php", - "name": "phpExec3", - "type": "phpExec" - }, - { - "state": "on", - "rule": "(?:define|eval|file_get_contents|include|require|require_once|shell_exec|phpinfo|system|passthru|preg_\\w+|execute|echo|print|print_r|var_dump|(fp)open|alert|showmodaldialog)\\(", - "name": "oneWordTrojan1", - "type": "oneWordTrojan" - }, - { - "state": "on", - "rule": "(?:(union(.*?)select))", - "name": "sqlInject1", - "type": "sqlInject" - }, - { - "state": "on", - "rule": "(phpmyadmin|jmx-console|jmxinvokerservlet)", - "name": "appFilter1", - "type": "appFilter" - }, - { - "state": "on", - "rule": "wp-includes/wlwmanifest.xml", - "name": "appFilter2", - "type": "appFilter" - }, - { - "state": "on", - "rule": "die(@md5(HelloThinkCMF))", - "name": "appFilter3", - "type": "appFilter" - }, - { - "state": "on", - "rule": "/boaform/admin/formLogin", - "name": "appFilter4", - "type": "appFilter" - }, - { - "state": "on", - "rule": "/password_change.cgi", - "name": "appFilter5", - "type": "appFilter" - }, - { - "state": "on", - "rule": "/service/extdirect", - "name": "appFilter6", - "type": "appFilter" - }, - { - "state": "on", - "rule": "/api/jsonws/invoke", - "name": "appFilter7", - "type": "appFilter" - }, - { - "state": "on", - "rule": "/jars/upload", - "name": "appFilter8", - "type": "appFilter" - }, - { - "state": "on", - "rule": "/example/tree/a/search", - "name": "appFilter9", - "type": "appFilter" - }, - { - "state": "on", - "rule": "/actuator/gateway/routes/hacktest", - "name": "appFilter10", - "type": "appFilter" - }, - { - "state": "on", - "rule": "/api/v1/method.callAnon/getPasswordPolicy", - "name": "appFilter11", - "type": "appFilter" - }, - { - "state": "on", - "rule": "/functionRouter", - "name": "appFilter12", - "type": "appFilter" - }, - { - "state": "on", - "rule": "/uploadfiles/apache.php.jpeg", - "name": "appFilter14", - "type": "appFilter" - }, - { - "state": "on", - "rule": "/xxx/..;/admin/", - "name": "appFilter15", - "type": "appFilter" - }, - { - "state": "on", - "rule": "/dvwa/js/dvwaPage.js", - "name": "appFilter16", - "type": "appFilter" - }, - { - "state": "on", - "rule": "/api/index.php/v1/config/application", - "name": "appFilter17", - "type": "appFilter" - }, - { - "state": "on", - "rule": "/WEB-INF/web.xml", - "name": "appFilter18", - "type": "appFilter" - }, - { - "state": "on", - "rule": "/rest/tinymce/1/macro/preview", - "name": "appFilter19", - "type": "appFilter" - }, - { - "state": "on", - "rule": "/pages/doenterpagevariables.action", - "name": "appFilter20", - "type": "appFilter" - }, - { - "state": "on", - "rule": "/service/rest/beta/repositories/go/group", - "name": "appFilter21", - "type": "appFilter" - }, - { - "state": "on", - "rule": "/dvwa/js/add_event_listeners.js", - "name": "appFilter22", - "type": "appFilter" - } - ] -} \ No newline at end of file diff --git a/openresty/1.21.4.3-3-3-focal/1pwaf/data/rules/fileExt.json b/openresty/1.21.4.3-3-3-focal/1pwaf/data/rules/fileExt.json deleted file mode 100644 index c0cc78781..000000000 --- a/openresty/1.21.4.3-3-3-focal/1pwaf/data/rules/fileExt.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "rules": [ - { - "state": "on", - "rule": "php", - "name": "php", - "type": "fileExt" - }, - { - "state": "on", - "rule": "jsp", - "name": "jsp", - "type": "fileExt" - }, - { - "state": "on", - "rule": "asp", - "name": "asp", - "type": "fileExt" - }, - { - "state": "on", - "rule": "exe", - "name": "exe", - "type": "fileExt" - }, - { - "state": "on", - "rule": "sh", - "name": "sh", - "type": "fileExt" - } - ] -} diff --git a/openresty/1.21.4.3-3-3-focal/1pwaf/data/rules/header.json b/openresty/1.21.4.3-3-3-focal/1pwaf/data/rules/header.json deleted file mode 100644 index c49c28f73..000000000 --- a/openresty/1.21.4.3-3-3-focal/1pwaf/data/rules/header.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "rules": [ - { - "state": "on", - "name": "appFilter1", - "rule": "TomcatBypass|Command|Base64", - "type": "appFilter" - }, - { - "state": "on", - "name": "appFilter2", - "rule": "j\\S*ndi\\S*:\\S*(?:dap|dns)\\S+", - "type": "appFilter" - }, - { - "state": "on", - "name": "appFilter3", - "rule": "(?:etc\\/\\W*passwd)", - "type": "appFilter" - }, - { - "state": "on", - "name": "scannerFilter1", - "rule": "(/acunetix-wvs-test-for-some-inexistent-file|netsparker|acunetix_wvs_security_test|AppScan|XSS@HERE)", - "type": "scannerFilter" - } - ] -} \ No newline at end of file diff --git a/openresty/1.21.4.3-3-3-focal/1pwaf/data/rules/ipBlack.json b/openresty/1.21.4.3-3-3-focal/1pwaf/data/rules/ipBlack.json deleted file mode 100644 index b7fca6ded..000000000 --- a/openresty/1.21.4.3-3-3-focal/1pwaf/data/rules/ipBlack.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "rules": [ - ] -} \ No newline at end of file diff --git a/openresty/1.21.4.3-3-3-focal/1pwaf/data/rules/ipWhite.json b/openresty/1.21.4.3-3-3-focal/1pwaf/data/rules/ipWhite.json deleted file mode 100644 index b7fca6ded..000000000 --- a/openresty/1.21.4.3-3-3-focal/1pwaf/data/rules/ipWhite.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "rules": [ - ] -} \ No newline at end of file diff --git a/openresty/1.21.4.3-3-3-focal/1pwaf/data/rules/methodWhite.json b/openresty/1.21.4.3-3-3-focal/1pwaf/data/rules/methodWhite.json deleted file mode 100644 index 93fcad090..000000000 --- a/openresty/1.21.4.3-3-3-focal/1pwaf/data/rules/methodWhite.json +++ /dev/null @@ -1,130 +0,0 @@ -{ - "rules": [ - { - "state": "on", - "rule": "GET", - "name": "GET", - "type": "httpMethod" - }, - { - "state": "on", - "rule": "POST", - "name": "POST", - "type": "httpMethod" - }, - { - "state": "on", - "rule": "PUT", - "name": "PUT", - "type": "httpMethod" - }, - { - "state": "on", - "rule": "DELETE", - "name": "DELETE", - "type": "httpMethod" - }, - { - "state": "on", - "rule": "PATCH", - "name": "PATCH", - "type": "httpMethod" - }, - { - "state": "on", - "rule": "HEAD", - "name": "HEAD", - "type": "httpMethod" - }, - { - "state": "on", - "rule": "OPTIONS", - "name": "OPTIONS", - "type": "httpMethod" - }, - { - "state": "on", - "rule": "TRACE", - "name": "TRACE", - "type": "httpMethod" - }, - { - "state": "on", - "rule": "CONNECT", - "name": "CONNECT", - "type": "httpMethod" - }, - { - "state": "on", - "rule": "PROPFIND", - "name": "PROPFIND", - "type": "httpMethod" - }, - { - "state": "on", - "rule": "PROPPATCH", - "name": "PROPPATCH", - "type": "httpMethod" - }, - { - "state": "on", - "rule": "MKCOL", - "name": "MKCOL", - "type": "httpMethod" - }, - { - "state": "on", - "rule": "COPY", - "name": "COPY", - "type": "httpMethod" - }, - { - "state": "on", - "rule": "MOVE", - "name": "MOVE", - "type": "httpMethod" - }, - { - "state": "on", - "rule": "LOCK", - "name": "LOCK", - "type": "httpMethod" - }, - { - "state": "on", - "rule": "UNLOCK", - "name": "UNLOCK", - "type": "httpMethod" - }, - { - "state": "on", - "rule": "LINK", - "name": "LINK", - "type": "httpMethod" - }, - { - "state": "on", - "rule": "UNLINK", - "name": "UNLINK", - "type": "httpMethod" - }, - { - "state": "on", - "rule": "WRAPPED", - "name": "WRAPPED", - "type": "httpMethod" - }, - { - "state": "on", - "rule": "PROPFIND", - "name": "PROPFIND", - "type": "httpMethod" - }, - { - "state": "on", - "rule": "SRARCH", - "name": "SRARCH", - "type": "httpMethod" - } - ] -} diff --git a/openresty/1.21.4.3-3-3-focal/1pwaf/data/rules/post.json b/openresty/1.21.4.3-3-3-focal/1pwaf/data/rules/post.json deleted file mode 100644 index 2722b88ff..000000000 --- a/openresty/1.21.4.3-3-3-focal/1pwaf/data/rules/post.json +++ /dev/null @@ -1,121 +0,0 @@ -{ - "rules": [ - { - "state": "on", - "name": "sqlInject1", - "rule": "select.+(from|limit)", - "type": "sqlInject" - }, - { - "state": "on", - "name": "sqlInject2", - "rule": "(?:(union(.*?)select))", - "type": "sqlInject" - }, - { - "state": "on", - "name": "sqlInject3", - "rule": "having|rongjitest", - "type": "sqlInject" - }, - { - "state": "on", - "name": "sqlInject4", - "rule": "sleep\\((\\s*)(\\d*)(\\s*)\\)", - "type": "sqlInject" - }, - { - "state": "on", - "name": "sqlInject5", - "rule": "benchmark\\((.*)\\,(.*)\\)", - "type": "sqlInject" - }, - { - "state": "on", - "name": "sqlInject6", - "rule": "group\\s+by.+\\(", - "type": "sqlInject" - }, - { - "state": "on", - "name": "sqlInject7", - "rule": "(?:from\\W+information_schema\\W)", - "type": "sqlInject" - }, - { - "state": "on", - "name": "sqlInject8", - "rule": "(?:(?:current_)user|database|schema|connection_id)\\s*\\(", - "type": "sqlInject" - }, - { - "state": "on", - "name": "sqlInject9", - "rule": "into(\\s+)+(?:dump|out)file\\s*", - "type": "sqlInject" - }, - { - "state": "on", - "name": "args1", - "rule": "xwork.MethodAccessor", - "type": "args", - "description": "Struts 恶意参数过滤" - }, - { - "state": "on", - "name": "args2", - "rule": "xwork\\.MethodAccessor", - "type": "args", - "description": "Struts 恶意参数过滤" - }, - { - "state": "on", - "name": "oneWordTrojan1", - "rule": "(?:define|eval|file_get_contents|include|require|require_once|shell_exec|phpinfo|system|passthru|preg_\\w+|execute|echo|print|print_r|var_dump|(fp)open|alert|showmodaldialog)\\(", - "type": "oneWordTrojan" - }, - { - "state": "on", - "name": "protocolFilter1", - "rule": "(gopher|doc|php|glob|file|phar|zlib|ftp|ldap|dict|ogg|data)\\:\\/", - "type": "protocolFilter", - "description": "协议过滤" - }, - { - "state": "on", - "name": "oneWordTrojan2", - "rule": "\\$_(GET|post|cookie|files|session|env|phplib|GLOBALS|SERVER)\\[", - "type": "oneWordTrojan" - }, - { - "state": "on", - "name": "xss1", - "rule": "\\<(iframe|script|body|img|layer|div|meta|style|base|object|input)", - "type": "xss" - }, - { - "state": "on", - "name": "xss2", - "rule": "(onmouseover|onerror|onload)\\=", - "type": "xss" - }, - { - "state": "on", - "name": "xss3", - "rule": "base64_decode\\(", - "type": "xss" - }, - { - "state": "on", - "name": "dirFilter1", - "rule": "(?:etc\\/\\W*passwd)", - "type": "dirFilter" - }, - { - "state": "on", - "name": "dirFilter2", - "rule": "java\\.lang", - "type": "dirFilter" - } - ] -} \ No newline at end of file diff --git a/openresty/1.21.4.3-3-3-focal/1pwaf/data/rules/uaBlack.json b/openresty/1.21.4.3-3-3-focal/1pwaf/data/rules/uaBlack.json deleted file mode 100644 index b7fca6ded..000000000 --- a/openresty/1.21.4.3-3-3-focal/1pwaf/data/rules/uaBlack.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "rules": [ - ] -} \ No newline at end of file diff --git a/openresty/1.21.4.3-3-3-focal/1pwaf/data/rules/uaWhite.json b/openresty/1.21.4.3-3-3-focal/1pwaf/data/rules/uaWhite.json deleted file mode 100644 index f70da9920..000000000 --- a/openresty/1.21.4.3-3-3-focal/1pwaf/data/rules/uaWhite.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "rules": [] -} diff --git a/openresty/1.21.4.3-3-3-focal/1pwaf/data/rules/urlBlack.json b/openresty/1.21.4.3-3-3-focal/1pwaf/data/rules/urlBlack.json deleted file mode 100644 index 7d00d1f4a..000000000 --- a/openresty/1.21.4.3-3-3-focal/1pwaf/data/rules/urlBlack.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "rules": [] -} \ No newline at end of file diff --git a/openresty/1.21.4.3-3-3-focal/1pwaf/data/rules/urlWhite.json b/openresty/1.21.4.3-3-3-focal/1pwaf/data/rules/urlWhite.json deleted file mode 100644 index 7d00d1f4a..000000000 --- a/openresty/1.21.4.3-3-3-focal/1pwaf/data/rules/urlWhite.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "rules": [] -} \ No newline at end of file diff --git a/openresty/1.21.4.3-3-3-focal/conf/conf.d/00.default.conf b/openresty/1.21.4.3-3-3-focal/conf/conf.d/00.default.conf deleted file mode 100644 index aa768b259..000000000 --- a/openresty/1.21.4.3-3-3-focal/conf/conf.d/00.default.conf +++ /dev/null @@ -1,18 +0,0 @@ -map "" $empty { - default ""; -} - -server -{ - listen 80; - listen 443 ssl http2; - server_name _; - - ssl_ciphers aNULL; - ssl_certificate data:$empty; - ssl_certificate_key data:$empty; - ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; - - index 404.html; - root /usr/share/nginx/html; -} \ No newline at end of file diff --git a/openresty/1.21.4.3-3-3-focal/conf/conf.d/default.conf b/openresty/1.21.4.3-3-3-focal/conf/conf.d/default.conf deleted file mode 100644 index da6594f8f..000000000 --- a/openresty/1.21.4.3-3-3-focal/conf/conf.d/default.conf +++ /dev/null @@ -1,18 +0,0 @@ -server { - listen 80 ; - server_name 127.0.0.1; - charset utf-8; - default_type text/html; - - location ~ /.well-known/acme-challenge { - allow all; - root /usr/share/nginx/html; - } - - location /nginx_status { - stub_status on; - access_log off; - } - - root /usr/share/nginx/html; -} \ No newline at end of file diff --git a/openresty/1.21.4.3-3-3-focal/conf/fastcgi-php.conf b/openresty/1.21.4.3-3-3-focal/conf/fastcgi-php.conf deleted file mode 100644 index 0f3d134d0..000000000 --- a/openresty/1.21.4.3-3-3-focal/conf/fastcgi-php.conf +++ /dev/null @@ -1,13 +0,0 @@ -# regex to split $uri to $fastcgi_script_name and $fastcgi_path -fastcgi_split_path_info ^(.+\.php)(/.+)$; - -# Check that the PHP script exists before passing it -try_files $fastcgi_script_name =404; - -# Bypass the fact that try_files resets $fastcgi_path_info -# see: http://trac.nginx.org/nginx/ticket/321 -set $path_info $fastcgi_path_info; -#fastcgi_param PATH_INFO $path_info; -fastcgi_read_timeout 3600; - -fastcgi_index index.php; diff --git a/openresty/1.21.4.3-3-3-focal/conf/fastcgi_params b/openresty/1.21.4.3-3-3-focal/conf/fastcgi_params deleted file mode 100644 index 0aa378e6b..000000000 --- a/openresty/1.21.4.3-3-3-focal/conf/fastcgi_params +++ /dev/null @@ -1,24 +0,0 @@ -fastcgi_param QUERY_STRING $query_string; -fastcgi_param REQUEST_METHOD $request_method; -fastcgi_param CONTENT_TYPE $content_type; -fastcgi_param CONTENT_LENGTH $content_length; - -fastcgi_param SCRIPT_NAME $fastcgi_script_name; -fastcgi_param REQUEST_URI $request_uri; -fastcgi_param DOCUMENT_URI $document_uri; -fastcgi_param DOCUMENT_ROOT $document_root; -fastcgi_param SERVER_PROTOCOL $server_protocol; -fastcgi_param REQUEST_SCHEME $scheme; -fastcgi_param HTTPS $https if_not_empty; - -fastcgi_param GATEWAY_INTERFACE CGI/1.1; -fastcgi_param SERVER_SOFTWARE nginx; - -fastcgi_param REMOTE_ADDR $remote_addr; -fastcgi_param REMOTE_PORT $remote_port; -fastcgi_param SERVER_ADDR $server_addr; -fastcgi_param SERVER_PORT $server_port; -fastcgi_param SERVER_NAME $server_name; - -# PHP only, required if PHP was built with --enable-force-cgi-redirect -fastcgi_param REDIRECT_STATUS 200; \ No newline at end of file diff --git a/openresty/1.21.4.3-3-3-focal/conf/mime.types b/openresty/1.21.4.3-3-3-focal/conf/mime.types deleted file mode 100644 index 065d89186..000000000 --- a/openresty/1.21.4.3-3-3-focal/conf/mime.types +++ /dev/null @@ -1,98 +0,0 @@ -types { - text/html html htm shtml; - text/css css; - text/xml xml; - image/gif gif; - image/jpeg jpeg jpg; - application/javascript js; - application/atom+xml atom; - application/rss+xml rss; - - text/mathml mml; - text/plain txt; - text/vnd.sun.j2me.app-descriptor jad; - text/vnd.wap.wml wml; - text/x-component htc; - - image/avif avif; - image/png png; - image/svg+xml svg svgz; - image/tiff tif tiff; - image/vnd.wap.wbmp wbmp; - image/webp webp; - image/x-icon ico; - image/x-jng jng; - image/x-ms-bmp bmp; - - font/woff woff; - font/woff2 woff2; - - application/java-archive jar war ear; - application/json json; - application/mac-binhex40 hqx; - application/msword doc; - application/pdf pdf; - application/postscript ps eps ai; - application/rtf rtf; - application/vnd.apple.mpegurl m3u8; - application/vnd.google-earth.kml+xml kml; - application/vnd.google-earth.kmz kmz; - application/vnd.ms-excel xls; - application/vnd.ms-fontobject eot; - application/vnd.ms-powerpoint ppt; - application/vnd.oasis.opendocument.graphics odg; - application/vnd.oasis.opendocument.presentation odp; - application/vnd.oasis.opendocument.spreadsheet ods; - application/vnd.oasis.opendocument.text odt; - application/vnd.openxmlformats-officedocument.presentationml.presentation - pptx; - application/vnd.openxmlformats-officedocument.spreadsheetml.sheet - xlsx; - application/vnd.openxmlformats-officedocument.wordprocessingml.document - docx; - application/vnd.wap.wmlc wmlc; - application/wasm wasm; - application/x-7z-compressed 7z; - application/x-cocoa cco; - application/x-java-archive-diff jardiff; - application/x-java-jnlp-file jnlp; - application/x-makeself run; - application/x-perl pl pm; - application/x-pilot prc pdb; - application/x-rar-compressed rar; - application/x-redhat-package-manager rpm; - application/x-sea sea; - application/x-shockwave-flash swf; - application/x-stuffit sit; - application/x-tcl tcl tk; - application/x-x509-ca-cert der pem crt; - application/x-xpinstall xpi; - application/xhtml+xml xhtml; - application/xspf+xml xspf; - application/zip zip; - - application/octet-stream bin exe dll; - application/octet-stream deb; - application/octet-stream dmg; - application/octet-stream iso img; - application/octet-stream msi msp msm; - - audio/midi mid midi kar; - audio/mpeg mp3; - audio/ogg ogg; - audio/x-m4a m4a; - audio/x-realaudio ra; - - video/3gpp 3gpp 3gp; - video/mp2t ts; - video/mp4 mp4; - video/mpeg mpeg mpg; - video/quicktime mov; - video/webm webm; - video/x-flv flv; - video/x-m4v m4v; - video/x-mng mng; - video/x-ms-asf asx asf; - video/x-ms-wmv wmv; - video/x-msvideo avi; -} \ No newline at end of file diff --git a/openresty/1.21.4.3-3-3-focal/conf/nginx.conf b/openresty/1.21.4.3-3-3-focal/conf/nginx.conf deleted file mode 100644 index 4a5f3673e..000000000 --- a/openresty/1.21.4.3-3-3-focal/conf/nginx.conf +++ /dev/null @@ -1,43 +0,0 @@ -user root; -worker_processes auto; -error_log /var/log/nginx/error.log notice; -error_log /dev/stdout notice; -pid /var/run/nginx.pid; - -events { - worker_connections 1024; -} - -http { - include mime.types; - default_type application/octet-stream; - log_format main '$remote_addr - $remote_user [$time_local] "$request" ' - '$status $body_bytes_sent "$http_referer" ' - '"$http_user_agent" "$http_x_forwarded_for"'; - server_tokens off; - access_log /var/log/nginx/access.log main; - access_log /dev/stdout main; - sendfile on; - - server_names_hash_bucket_size 512; - client_header_buffer_size 32k; - client_max_body_size 50m; - keepalive_timeout 60; - keepalive_requests 100000; - - gzip on; - gzip_min_length 1k; - gzip_buffers 4 16k; - gzip_http_version 1.1; - gzip_comp_level 2; - gzip_types text/plain application/javascript application/x-javascript text/javascript text/css application/xml; - gzip_vary on; - gzip_proxied expired no-cache no-store private auth; - gzip_disable "MSIE [1-6]\."; - - limit_conn_zone $binary_remote_addr zone=perip:10m; - limit_conn_zone $server_name zone=perserver:10m; - - include /usr/local/openresty/nginx/conf/conf.d/*.conf; - include /usr/local/openresty/1pwaf/data/conf/waf.conf; -} \ No newline at end of file diff --git a/openresty/1.21.4.3-3-3-focal/data.yml b/openresty/1.21.4.3-3-3-focal/data.yml deleted file mode 100755 index eb426145a..000000000 --- a/openresty/1.21.4.3-3-3-focal/data.yml +++ /dev/null @@ -1,32 +0,0 @@ -additionalProperties: - formFields: - - default: 80 - envKey: PANEL_APP_PORT_HTTP - labelEn: HTTP Port - labelZh: HTTP 端口 - required: true - type: number - label: - en: HTTP Port - ja: HTTP ポート - ms: Port HTTP - pt-br: Porta HTTP - ru: HTTP Порт - ko: HTTP 포트 - zh-Hant: HTTP 埠 - zh: HTTP 端口 - - default: 443 - envKey: PANEL_APP_PORT_HTTPS - labelEn: HTTPS Port - labelZh: HTTPS 端口 - required: true - type: number - label: - en: HTTPS Port - ja: HTTPS ポート - ms: Port HTTPS - pt-br: Porta HTTPS - ru: HTTPS Порт - ko: HTTPS 포트 - zh-Hant: HTTPS 埠 - zh: HTTPS 端口 diff --git a/openresty/1.21.4.3-3-3-focal/docker-compose.yml b/openresty/1.21.4.3-3-3-focal/docker-compose.yml deleted file mode 100644 index bd44da1a1..000000000 --- a/openresty/1.21.4.3-3-3-focal/docker-compose.yml +++ /dev/null @@ -1,19 +0,0 @@ -services: - openresty: - image: 1panel/openresty:1.21.4.3-3-3-focal - container_name: ${CONTAINER_NAME} - restart: always - network_mode: host - volumes: - - ./conf/nginx.conf:/usr/local/openresty/nginx/conf/nginx.conf - - ./conf/fastcgi_params:/usr/local/openresty/nginx/conf/fastcgi_params - - ./conf/fastcgi-php.conf:/usr/local/openresty/nginx/conf/fastcgi-php.conf - - ./conf/mime.types:/usr/local/openresty/nginx/conf/mime.types - - ./log:/var/log/nginx - - ./conf/conf.d:/usr/local/openresty/nginx/conf/conf.d/ - - ./www:/www - - ./root:/usr/share/nginx/html - - /etc/localtime:/etc/localtime - - ./1pwaf/data:/usr/local/openresty/1pwaf/data - labels: - createdBy: "Apps" diff --git a/openresty/1.21.4.3-3-3-focal/root/404.html b/openresty/1.21.4.3-3-3-focal/root/404.html deleted file mode 100644 index d75ed7812..000000000 --- a/openresty/1.21.4.3-3-3-focal/root/404.html +++ /dev/null @@ -1,6 +0,0 @@ - -404 Not Found - -

404 Not Found

-
nginx
- \ No newline at end of file diff --git a/openresty/1.21.4.3-3-3-focal/root/index.html b/openresty/1.21.4.3-3-3-focal/root/index.html deleted file mode 100644 index 7ad10b812..000000000 --- a/openresty/1.21.4.3-3-3-focal/root/index.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - 恭喜,站点创建成功! - - - -
-

恭喜, 站点创建成功!

-

这是默认index.html,本页面由系统自动生成

-
    -
  • 您可以修改、删除或覆盖本页面
  • -
-
- - \ No newline at end of file diff --git a/openresty/1.21.4.3-3-3-focal/root/stop/index.html b/openresty/1.21.4.3-3-3-focal/root/stop/index.html deleted file mode 100644 index 27234c626..000000000 --- a/openresty/1.21.4.3-3-3-focal/root/stop/index.html +++ /dev/null @@ -1,33 +0,0 @@ - - - - - 抱歉,站点已暂停 - - - - -
-

抱歉!该站点已经被管理员停止运行,请联系管理员了解详情!

-
- - \ No newline at end of file diff --git a/openresty/1.21.4.3-3-3-focal/scripts/init.sh b/openresty/1.21.4.3-3-3-focal/scripts/init.sh deleted file mode 100644 index dd1465ed3..000000000 --- a/openresty/1.21.4.3-3-3-focal/scripts/init.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -source ./.env - -sed -i -E "s/(listen[[:space:]]+)(80)([[:space:]]*;)/\1${PANEL_APP_PORT_HTTP}\3/" conf/conf.d/00.default.conf -sed -i -E "s/(listen[[:space:]]+)(443)([[:space:]]+ssl[[:space:]]+http2;)/\1${PANEL_APP_PORT_HTTPS}\3/" conf/conf.d/00.default.conf - -sed -i -E "s/(listen[[:space:]]+)(80)([[:space:]]*;)/\1${PANEL_APP_PORT_HTTP}\3/" conf/conf.d/default.conf - diff --git a/openresty/1.27.1.2-0-1-focal/.env b/openresty/1.27.1.2-0-1-focal/.env deleted file mode 100644 index 7f46847fc..000000000 --- a/openresty/1.27.1.2-0-1-focal/.env +++ /dev/null @@ -1,3 +0,0 @@ -RESTY_CONFIG_OPTIONS_MORE="" -RESTY_ADD_PACKAGE_BUILDDEPS="" -CONTAINER_PACKAGE_URL="" \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/conf/.aes_key b/openresty/1.27.1.2-0-1-focal/1pwaf/data/conf/.aes_key deleted file mode 100644 index e69de29bb..000000000 diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/conf/.secret b/openresty/1.27.1.2-0-1-focal/1pwaf/data/conf/.secret deleted file mode 100644 index e69de29bb..000000000 diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/conf/global.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/conf/global.json deleted file mode 100644 index 4aa850013..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/conf/global.json +++ /dev/null @@ -1,175 +0,0 @@ -{ - "waf": { - "state": "off", - "mode": "protection", - "secret": "" - }, - "ipWhite": { - "state": "on", - "type": "ipWhite", - "action": "allow" - }, - "ipBlack": { - "state": "on", - "code": 403, - "action": "deny", - "type": "ipBlack", - "res": "ip" - }, - "urlWhite": { - "type": "urlWhite", - "state": "on", - "action": "allow" - }, - "urlBlack": { - "type": "urlBlack", - "state": "on", - "code": 403, - "action": "deny" - }, - "uaWhite": { - "type": "uaWhite", - "state": "off", - "action": "allow" - }, - "uaBlack": { - "type": "uaBlack", - "state": "on", - "code": 403, - "action": "deny" - }, - "notFoundCount": { - "state": "off", - "type": "notFoundCount", - "threshold": 30, - "duration": 10, - "action": "deny", - "ipBlock": "on", - "code": 403, - "ipBlockTime": 600 - }, - "methodWhite": { - "type": "methodWhite", - "state": "on", - "code": 444, - "action": "deny" - }, - "unknownWebsite": { - "state": "on", - "type": "unknownWebsite", - "action": "deny", - "code": 403, - "res": "unknown" - }, - "geoRestrict": { - "state": "off", - "rules": [], - "code": 403, - "action": "deny", - "type": "geoRestrict", - "res": "geo" - }, - "defaultIpBlack": { - "state": "on", - "type": "defaultIpBlack", - "code": 403, - "action": "deny" - }, - "xss": { - "state": "on", - "type": "xss", - "code": 403, - "action": "deny" - }, - "sql": { - "state": "on", - "type": "sql", - "code": 403, - "action": "deny" - }, - "cc": { - "state": "off", - "type": "cc", - "rule": "cc", - "tokenTimeOut": 1800, - "threshold": 100, - "duration": 10, - "action": "deny", - "ipBlock": "on", - "ipBlockTime": 600, - "mode": "uri" - }, - "urlcc": { - "state": "off", - "type": "urlcc", - "action": "deny", - "ipBlock": "on", - "ipBlockTime": 600 - }, - "attackCount": { - "state": "off", - "type": "attackCount", - "threshold": 10, - "duration": 60, - "action": "deny", - "ipBlock": "on", - "ipBlockTime": 3000 - }, - "fileExt": { - "state": "off", - "action": "deny", - "code": 403, - "type": "fileExtCheck" - }, - "cookie": { - "type": "cookie", - "state": "on", - "code": 403, - "action": "deny" - }, - "header": { - "state": "on", - "type": "header", - "code": 403, - "action": "deny" - }, - "defaultUaBlack": { - "type": "defaultUaBlack", - "state": "on", - "code": 403, - "action": "deny" - }, - "defaultUrlBlack": { - "type": "defaultUrlBlack", - "state": "on", - "code": 403, - "action": "deny" - }, - "args": { - "type": "args", - "state": "on", - "code": 403, - "action": "deny" - }, - "cdn": { - "state": "off" - }, - "vuln": { - "state": "off", - "type": "vulnCheck", - "code": 403, - "action": "deny" - }, - "log": { - "state": "on", - "maxDay": 180, - "maxSize": 1, - "external": ["acl","ipWhite","ipBlack","geoRestrict","urlWhite","urlBlack","uaWhite","uaBlack"] - }, - "strict": { - "state": "off", - "type": "strict", - "code": 403, - "action": "deny" - } -} diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/conf/monitor.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/conf/monitor.json deleted file mode 100644 index 5c996ef00..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/conf/monitor.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "state": "off", - "exclude": { - "extensions": [ - "png", - "gif", - "jpg", - "css", - "js", - "svg", - "jpeg", - "woff", - "woff2", - "bmp", - "swf", - "icon", - "ttf", - "eot" - ], - "status": [], - "uri": [ - "/favicon.ico" - ], - "ua": [], - "ip": [] - }, - "log": { - "maxDay": 180, - "maxSize": 5 - } -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/conf/siteConfig.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/conf/siteConfig.json deleted file mode 100644 index 87a75e295..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/conf/siteConfig.json +++ /dev/null @@ -1,95 +0,0 @@ -{ - "waf": { - "state": "on", - "mode": "protection" - }, - "args": { - "state": "on", - "type": "args", - "code": 403, - "action": "deny" - }, - "defaultUaBlack": { - "type": "defaultUaBlack", - "state": "on", - "code": 403, - "action": "deny" - }, - "cookie": { - "state": "on", - "type": "cookie", - "code": 403, - "action": "deny" - }, - "geoRestrict": { - "state": "off", - "rules": [], - "code": 403, - "action": "deny", - "type": "geoRestrict", - "res": "geo" - }, - "xss": { - "state": "on", - "type": "xss", - "code": 403, - "action": "deny" - }, - "sql": { - "state": "on", - "type": "sql", - "code": 403, - "action": "deny" - }, - "cc": { - "state": "on", - "type": "cc", - "rule": "cc", - "tokenTimeOut": 1800, - "threshold": 200, - "duration": 10, - "action": "deny", - "ipBlock": "on", - "ipBlockTime": 600, - "mode": "uri" - }, - "fileExt": { - "state": "off", - "action": "deny", - "code": 403, - "type": "fileExtCheck" - }, - "header": { - "state": "on", - "type": "header", - "code": 403, - "action": "deny" - }, - "defaultUrlBlack": { - "type": "defaultUrlBlack", - "state": "on", - "code": 403, - "action": "deny" - }, - "methodWhite": { - "type": "methodWhite", - "state": "on", - "code": 444, - "action": "deny" - }, - "cdn": { - "state": "off" - }, - "strict": { - "state": "off", - "type": "strict", - "code": 403, - "action": "deny" - }, - "app": { - "state": "off", - "type": "app", - "action": "allow", - "rule": "" - } -} diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/conf/sites.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/conf/sites.json deleted file mode 100644 index e69de29bb..000000000 diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/conf/token b/openresty/1.27.1.2-0-1-focal/1pwaf/data/conf/token deleted file mode 100644 index e69de29bb..000000000 diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/conf/waf.conf b/openresty/1.27.1.2-0-1-focal/1pwaf/data/conf/waf.conf deleted file mode 100644 index 6746d357c..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/conf/waf.conf +++ /dev/null @@ -1,13 +0,0 @@ -lua_shared_dict waf_req_count 10m; -lua_shared_dict waf 200m; -lua_shared_dict waf_block_ip 20m; -lua_shared_dict waf_limit 10m; -lua_shared_dict waf_sql 300m; -lua_shared_dict waf_locks 1m; - -lua_code_cache on; -lua_package_path "/usr/local/openresty/1pwaf/?.lua;/usr/local/openresty/1pwaf/lib/?.lua;;"; -init_by_lua_file /usr/local/openresty/1pwaf/init.lua; -access_by_lua_file /usr/local/openresty/1pwaf/waf.lua; -log_by_lua_file /usr/local/openresty/1pwaf/log_and_traffic.lua; -init_worker_by_lua_file /usr/local/openresty/1pwaf/worker.lua; diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/conf/waf.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/conf/waf.json deleted file mode 100644 index 52f2b52bc..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/conf/waf.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "name": "1Panel WAF", - "version": "2.0" -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/db/global/default.db b/openresty/1.27.1.2-0-1-focal/1pwaf/data/db/global/default.db deleted file mode 100644 index f2150ed0d..000000000 Binary files a/openresty/1.27.1.2-0-1-focal/1pwaf/data/db/global/default.db and /dev/null differ diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/default/cc.html b/openresty/1.27.1.2-0-1-focal/1pwaf/data/default/cc.html deleted file mode 100644 index 641a59caa..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/default/cc.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - -请求拦截 - - - - -
-
请求频率太高 已被拦截
-
- - - - - - diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/default/forbidden.html b/openresty/1.27.1.2-0-1-focal/1pwaf/data/default/forbidden.html deleted file mode 100644 index 6c056e0c6..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/default/forbidden.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - -请求拦截 - - - - -
-
请求携带恶意参数 已被拦截
-
- - - - - - diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/default/geo.html b/openresty/1.27.1.2-0-1-focal/1pwaf/data/default/geo.html deleted file mode 100644 index 7f7ff0b98..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/default/geo.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - -地区拦截 - - - - -
-
你的区域被禁止访问
-
- - - - - - diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/default/global.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/default/global.json deleted file mode 100644 index 20f3e506d..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/default/global.json +++ /dev/null @@ -1,167 +0,0 @@ -{ - "waf": { - "state": "off", - "mode": "protection", - "secret": "" - }, - "ipWhite": { - "state": "on", - "type": "ipWhite", - "action": "allow" - }, - "ipBlack": { - "state": "on", - "code": 403, - "action": "deny", - "type": "ipBlack", - "res": "ip" - }, - "urlWhite": { - "type": "urlWhite", - "state": "on", - "action": "allow" - }, - "urlBlack": { - "type": "urlBlack", - "state": "on", - "code": 403, - "action": "deny" - }, - "uaWhite": { - "type": "uaWhite", - "state": "off", - "action": "allow" - }, - "uaBlack": { - "type": "uaBlack", - "state": "on", - "code": 403, - "action": "deny" - }, - "notFoundCount": { - "state": "on", - "type": "notFoundCount", - "threshold": 30, - "duration": 10, - "action": "deny", - "ipBlock": "on", - "code": 403, - "ipBlockTime": 600 - }, - "methodWhite": { - "type": "methodWhite", - "state": "on", - "code": 444, - "action": "deny" - }, - "bot": { - "state": "on", - "type": "bot", - "uri": "/1pwaf/bot/trap", - "action": "REDIRECT_JS", - "ipBlock": "on", - "ipBlockTime": 600 - }, - "unknownWebsite": { - "state": "on", - "type": "unknownWebsite", - "action": "deny", - "code": 403, - "res": "unknown" - }, - "geoRestrict": { - "state": "off", - "rules": [], - "code": 403, - "action": "deny", - "type": "geoRestrict", - "res": "geo" - }, - "defaultIpBlack": { - "state": "on", - "type": "defaultIpBlack", - "code": 403, - "action": "deny" - }, - "xss": { - "state": "on", - "type": "xss", - "code": 403, - "action": "deny" - }, - "sql": { - "state": "on", - "type": "sql", - "code": 403, - "action": "deny" - }, - "cc": { - "state": "on", - "type": "cc", - "rule": "cc", - "tokenTimeOut": 1800, - "threshold": 100, - "duration": 10, - "action": "deny", - "ipBlock": "on", - "ipBlockTime": 600, - "mode": "uri", - "code": 403 - }, - "urlcc": { - "state": "off", - "type": "urlcc", - "action": "deny", - "ipBlock": "on", - "ipBlockTime": 600, - "code": 403 - }, - "attackCount": { - "state": "on", - "type": "attackCount", - "threshold": 10, - "duration": 60, - "action": "deny", - "ipBlock": "on", - "ipBlockTime": 3000 - }, - "fileExt": { - "state": "off", - "action": "deny", - "code": 403, - "type": "fileExtCheck" - }, - "cookie": { - "type": "cookie", - "state": "on", - "code": 403, - "action": "deny" - }, - "header": { - "state": "on", - "type": "header", - "code": 403, - "action": "deny" - }, - "defaultUaBlack": { - "type": "defaultUaBlack", - "state": "on", - "code": 403, - "action": "deny" - }, - "defaultUrlBlack": { - "type": "defaultUrlBlack", - "state": "on", - "code": 403, - "action": "deny" - }, - "args": { - "type": "args", - "state": "on", - "code": 403, - "action": "deny" - }, - "cdn": { - "state": "off" - } -} diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/default/index.html b/openresty/1.27.1.2-0-1-focal/1pwaf/data/default/index.html deleted file mode 100644 index ef37b2e27..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/default/index.html +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - Welcome - - - -

Welcome to 1Panel

- - diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/default/ip.html b/openresty/1.27.1.2-0-1-focal/1pwaf/data/default/ip.html deleted file mode 100644 index 5d7c3ef77..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/default/ip.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - -黑名单拦截 - - - - -
-
很抱歉,您的 IP 被禁止访问
-
- - - - - - diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/default/monitor.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/default/monitor.json deleted file mode 100644 index 6bd119205..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/default/monitor.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "state": "off", - "exclude": { - "extensions": [ - "png", - "gif", - "jpg", - "css", - "js", - "svg", - "jpeg", - "woff", - "woff2", - "bmp", - "swf", - "icon", - "ttf", - "eot" - ], - "status": [], - "uri": [ - "/favicon.ico" - ], - "ua": [], - "ip": [] - }, - "log": { - "maxDay": 180 - } -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/default/unknown.html b/openresty/1.27.1.2-0-1-focal/1pwaf/data/default/unknown.html deleted file mode 100644 index 6c39f4309..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/default/unknown.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - -网站不存在 - - - - -
-
网站不存在,请检查域名
-
- - - - - - diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/geo/BlackIP.mmdb b/openresty/1.27.1.2-0-1-focal/1pwaf/data/geo/BlackIP.mmdb deleted file mode 100644 index d6ee4e194..000000000 Binary files a/openresty/1.27.1.2-0-1-focal/1pwaf/data/geo/BlackIP.mmdb and /dev/null differ diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/geo/GeoIP.mmdb b/openresty/1.27.1.2-0-1-focal/1pwaf/data/geo/GeoIP.mmdb deleted file mode 100644 index 243100024..000000000 Binary files a/openresty/1.27.1.2-0-1-focal/1pwaf/data/geo/GeoIP.mmdb and /dev/null differ diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/geo/SpiderIP.mmdb b/openresty/1.27.1.2-0-1-focal/1pwaf/data/geo/SpiderIP.mmdb deleted file mode 100644 index 241f102fc..000000000 Binary files a/openresty/1.27.1.2-0-1-focal/1pwaf/data/geo/SpiderIP.mmdb and /dev/null differ diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/html/5s.html b/openresty/1.27.1.2-0-1-focal/1pwaf/data/html/5s.html deleted file mode 100644 index c8a4ff276..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/html/5s.html +++ /dev/null @@ -1,23 +0,0 @@ - - - -5s - - - - -
-
正在验证...
-
验证成功
-
-
- - - diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/html/5s.js b/openresty/1.27.1.2-0-1-focal/1pwaf/data/html/5s.js deleted file mode 100644 index d20c2a8fb..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/html/5s.js +++ /dev/null @@ -1,24 +0,0 @@ -window.onload = function () { - setTimeout(function () { - showSuccess(); - verifySucc(); - }, 5000); - - function showSuccess() { - document.getElementById("loadingText").style.display = "none"; - document.getElementById("loadingSuccess").style.display = "block"; - document.querySelector(".loadingSpinner").style.display = "none"; - } - - function verifySucc() { - let xhr = new XMLHttpRequest(); - xhr.onreadystatechange = function () { - if (xhr.readyState === 4 && xhr.status === 200) { - window.location.reload(); - } - }; - const requestUrl = "%s-%s-%s-%s-%s-"; - xhr.open("GET", requestUrl, true); - xhr.send(); - } -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/html/cc.html b/openresty/1.27.1.2-0-1-focal/1pwaf/data/html/cc.html deleted file mode 100644 index 641a59caa..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/html/cc.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - -请求拦截 - - - - -
-
请求频率太高 已被拦截
-
- - - - - - diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/html/forbidden.html b/openresty/1.27.1.2-0-1-focal/1pwaf/data/html/forbidden.html deleted file mode 100644 index 6c056e0c6..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/html/forbidden.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - -请求拦截 - - - - -
-
请求携带恶意参数 已被拦截
-
- - - - - - diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/html/geo.html b/openresty/1.27.1.2-0-1-focal/1pwaf/data/html/geo.html deleted file mode 100644 index 7f7ff0b98..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/html/geo.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - -地区拦截 - - - - -
-
你的区域被禁止访问
-
- - - - - - diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/html/ip.html b/openresty/1.27.1.2-0-1-focal/1pwaf/data/html/ip.html deleted file mode 100644 index 5d7c3ef77..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/html/ip.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - -黑名单拦截 - - - - -
-
很抱歉,您的 IP 被禁止访问
-
- - - - - - diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/html/redirect.html b/openresty/1.27.1.2-0-1-focal/1pwaf/data/html/redirect.html deleted file mode 100644 index 64c776b47..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/html/redirect.html +++ /dev/null @@ -1,24 +0,0 @@ - - - - 网站防火墙 - - - -
-
网站防火墙
-
-

您的请求不合法,已被拒绝

-
- -
- - diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/html/slide.html b/openresty/1.27.1.2-0-1-focal/1pwaf/data/html/slide.html deleted file mode 100644 index 04d55bda3..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/html/slide.html +++ /dev/null @@ -1,25 +0,0 @@ - - - -滑动认证 - - - -
-
-
-
-
-
-
- - - diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/html/slide.js b/openresty/1.27.1.2-0-1-focal/1pwaf/data/html/slide.js deleted file mode 100644 index a8f92789b..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/html/slide.js +++ /dev/null @@ -1,82 +0,0 @@ -window.onload = function () { - (function () { - const dragContainer = document.getElementById("dragContainer"); - const dragBg = document.getElementById("dragBg"); - const dragText = document.getElementById("dragText"); - const dragHandler = document.getElementById("dragHandler"); - const maxHandleOffset = dragContainer.clientWidth - dragHandler.clientWidth; - let isVertifySucc = false; - - initDrag(); - - function initDrag() { - dragText.textContent = "拖动滑块验证"; - dragHandler.addEventListener("mousedown", onDragStart); - dragHandler.addEventListener("touchstart", onDragStart); - } - - function onDragStart(a) { - a.preventDefault(); - if (a.type === "mousedown" || (a.type === "touchstart" && a.touches.length === 1)) { - document.addEventListener("mousemove", onDragMove); - document.addEventListener("touchmove", onDragMove); - document.addEventListener("mouseup", onDragEnd); - document.addEventListener("touchend", onDragEnd); - } - } - - function onDragMove(a) { - let clientX; - if (a.type === "mousemove") { - clientX = a.clientX; - } else if (a.type === "touchmove" && a.touches.length === 1) { - clientX = a.touches[0].clientX; - } - let containerOffsetX = clientX - dragContainer.getBoundingClientRect().left; - let left = containerOffsetX - dragHandler.clientWidth / 2; - if (left < 0) { - left = 0; - } else if (left > maxHandleOffset) { - left = maxHandleOffset; - } - dragHandler.style.left = left + "px"; - dragBg.style.width = dragHandler.style.left; - } - - function onDragEnd() { - document.removeEventListener("mousemove", onDragMove); - document.removeEventListener("touchmove", onDragMove); - document.removeEventListener("mouseup", onDragEnd); - document.removeEventListener("touchend", onDragEnd); - - if (!isVertifySucc) { - let left = dragHandler.offsetLeft; - if (left >= maxHandleOffset) { - verifySucc(); - } else { - dragHandler.style.left = "0px"; - dragBg.style.width = "0px"; - } - } - } - - function verifySucc() { - isVertifySucc = true; - dragText.textContent = "验证通过"; - dragText.style.color = "white"; - dragHandler.setAttribute("class", "dragHandlerOkBg"); - dragHandler.removeEventListener("mousedown", onDragStart); - dragHandler.removeEventListener("touchstart", onDragStart); - - let xhr = new XMLHttpRequest(); - xhr.onreadystatechange = function () { - if (xhr.readyState === 4 && xhr.status === 200) { - window.location.reload(); - } - }; - const requestUrl = "%s-%s-%s-%s-%s-"; - xhr.open("GET", requestUrl, true); - xhr.send(); - } - })(); -}; diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/html/unknown.html b/openresty/1.27.1.2-0-1-focal/1pwaf/data/html/unknown.html deleted file mode 100644 index 6c39f4309..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/html/unknown.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - -网站不存在 - - - - -
-
网站不存在,请检查域名
-
- - - - - - diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/acl.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/acl.json deleted file mode 100644 index b7fca6ded..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/acl.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "rules": [ - ] -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/app/Halo.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/app/Halo.json deleted file mode 100644 index 713e181e8..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/app/Halo.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name":"Halo", - "state": "on", - "rules": [ - { - "type": "whiteUrl", - "pattern": "contain", - "values": [ - "/apis/api.console.halo.run/v1alpha1/posts", - "/api/v1alpha1/configmaps/system", - "/apis/api.console.halo.run/v1alpha1/singlepage", - "/apis/api.console.halo.run/v1alpha1/attachments/upload", - "/apis/api.console.halo.run/v1alpha1/attachments" - ], - "check": { - "type": "cookie", - "pattern": "eq", - "values": ["SESSION"] - } - } - ] -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/app/MaxKB.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/app/MaxKB.json deleted file mode 100644 index 7ded09583..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/app/MaxKB.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "name":"MaxKB", - "state": "on", - "rules": [ - { - "type": "whiteUrl", - "pattern": "startWith", - "values": [ - "/api/application/chat_message", - "/api/function_lib", - "/function_lib/pylint", - "/api/dataset" - ] - } - ] -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/app/SiYuan.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/app/SiYuan.json deleted file mode 100644 index 2fbdd7540..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/app/SiYuan.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "name":"SiYuan", - "state": "on", - "rules": [ - { - "type": "whiteUrl", - "pattern": "contain", - "method": "POST", - "values": [ - "/api/transactions" - ], - "check": { - "type": "cookie", - "pattern": "eq", - "values": ["siyuan"] - } - }, - { - "type": "whiteUrl", - "pattern": "contain", - "method": "POST", - "values": [ - "/api/notebook/lsNotebooks" - ] - } - ] -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/app/Typecho.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/app/Typecho.json deleted file mode 100644 index 7e83525e9..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/app/Typecho.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name":"Typecho", - "state": "on", - "rules": [ - { - "type": "whiteUrl", - "pattern": "startWith", - "values": [ - "/index.php/action/contents-post-edit", - "/index.php/action/contents-page-edit", - "/index.php/action/users-profile" - ], - "check": { - "type": "cookie", - "pattern": "eq", - "values": ["PHPSESSID"] - } - } - ] -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/app/WordPress.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/app/WordPress.json deleted file mode 100644 index 1b7983094..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/app/WordPress.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name":"WordPress", - "state": "on", - "rules": [ - { - "type": "whiteUrl", - "pattern": "eq", - "method": "POST", - "values": [ - "/wp-admin/admin-ajax.php", - "/wp-admin/post.php", - "/wp-admin/admin.php" - ], - "check": { - "type": "cookie", - "pattern": "startWith", - "values": ["wordpress_logged_in_"] - } - } - ] -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/args.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/args.json deleted file mode 100644 index ca00c3d5f..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/args.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "rules": [ - { - "state": "on", - "name": "000001", - "rule": "sleep\\((\\s*)(\\d*)(\\s*)\\)", - "type": "sqlInject" - }, - { - "state": "on", - "name": "000002", - "rule": "(exists\\(|select\\#|\\(select|select\\()", - "type": "sqlInject" - }, - { - "state": "on", - "name": "000003", - "rule": "(?:define|eval|file_get_contents|include|require|require_once|shell_exec|phpinfo|system|passthru|preg_\\w+|execute|echo|print|print_r|var_dump|(fp)open|alert|showmodaldialog)\\(", - "type": "oneWordTrojan" - }, - { - "state": "on", - "name": "000004", - "rule": "(?:etc\\/\\W*passwd)", - "type": "dirFilter" - }, - { - "state": "on", - "name": "000004", - "rule": "java\\.lang", - "type": "dirFilter" - }, - { - "state": "on", - "name": "000005", - "rule": "(window\\['|globalThis\\[|self\\[|top\\[|this\\[|parent\\[)", - "type": "xss" - }, - { - "state": "on", - "name": "000006", - "rule": "(invokefunction|call_user_func_array|\\\\think\\\\)", - "type": "args" - }, - { - "state": "on", - "name": "000007", - "rule": "\\${jndi:", - "type": "args" - } - ] -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/cdn.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/cdn.json deleted file mode 100644 index 4cea12773..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/cdn.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "rules": [ - { - "rule": "x-forwarded-for" - }, - { - "rule": "x-real-ip" - }, - { - "rule": "x-forwarded" - }, - { - "rule": "forwarded-for" - }, - { - "rule": "forwarded" - }, - { - "rule": "true-client-ip" - }, - { - "rule": "client-ip" - }, - { - "rule": "ali-cdn-real-ip" - }, - { - "rule": "cdn-src-ip" - }, - { - "rule": "cdn-real-ip" - }, - { - "rule": "cf-connecting-ip" - }, - { - "rule": "x-cluster-client-ip" - }, - { - "rule": "wl-proxy-client-ip" - }, - { - "rule": "proxy-client-ip" - } - ], - "type": "headers", - "header": "x-real-ip" -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/cookie.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/cookie.json deleted file mode 100644 index 4b98c0095..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/cookie.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "rules": [ - { - "state":"on", - "name":"scannerFilter1", - "rule":"(CustomCookie|acunetixCookie)", - "type": "scannerFilter" - } - ] -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/defaultUaBlack.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/defaultUaBlack.json deleted file mode 100644 index 49e9bab7a..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/defaultUaBlack.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "rules": [ - { - "state": "on", - "name": "uaBlock1", - "rule": "Fuzz|Nuclei|OpenVAS-VT|HTTrack|Apache-HttpClient|harvest|audit|dirbuster|pangolin|nmap|sqln|hydra|Parser|libwww|BBBike|sqlmap|w3af|owasp|Nikto|fimap|havij|zmeu|BabyKrokodil|netsparker|httperf| SF/", - "type": "scannerFilter" - } - ] -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/defaultUrlBlack.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/defaultUrlBlack.json deleted file mode 100644 index 35b420567..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/defaultUrlBlack.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "rules": [ - { - "state": "on", - "rule": "\\.(htaccess|mysql_history|bash_history|DS_Store|git|env|idea|user\\.ini)", - "name": "000001", - "type": "dirFilter" - }, - { - "state": "on", - "name": "000002", - "rule": "(?:etc\\/\\W*passwd)", - "type": "dirFilter" - }, - { - "state": "on", - "name": "000004", - "rule": "\\.{2,}[\\/\\\\]|%2e%2e[%2f%5c]", - "type": "dirFilter" - }, - { - "state": "on", - "name": "000005", - "rule": "WEB-INF/web.xml", - "type": "appFilter" - }, - { - "state": "on", - "name": "000006", - "rule": "boaform/admin/formLogin", - "type": "appFilter" - }, - { - "state": "on", - "name": "000007", - "rule": "wp-includes/wlwmanifest.xml", - "type": "appFilter" - } - ] -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/fileExt.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/fileExt.json deleted file mode 100644 index c0cc78781..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/fileExt.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "rules": [ - { - "state": "on", - "rule": "php", - "name": "php", - "type": "fileExt" - }, - { - "state": "on", - "rule": "jsp", - "name": "jsp", - "type": "fileExt" - }, - { - "state": "on", - "rule": "asp", - "name": "asp", - "type": "fileExt" - }, - { - "state": "on", - "rule": "exe", - "name": "exe", - "type": "fileExt" - }, - { - "state": "on", - "rule": "sh", - "name": "sh", - "type": "fileExt" - } - ] -} diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/header.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/header.json deleted file mode 100644 index c54f666ed..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/header.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "rules": [ - { - "state": "on", - "name": "appFilter1", - "rule": "TomcatBypass|Command|Base64", - "type": "appFilter" - }, - { - "state": "on", - "name": "appFilter2", - "rule": "j\\S*ndi\\S*:\\S*(?:dap|dns)\\S+", - "type": "appFilter" - }, - { - "state": "on", - "name": "scannerFilter1", - "rule": "(/acunetix-wvs-test-for-some-inexistent-file|netsparker|acunetix_wvs_security_test|AppScan|XSS@HERE)", - "type": "scannerFilter" - } - ] -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/ipBlack.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/ipBlack.json deleted file mode 100644 index b7fca6ded..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/ipBlack.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "rules": [ - ] -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/ipWhite.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/ipWhite.json deleted file mode 100644 index b7fca6ded..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/ipWhite.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "rules": [ - ] -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/methodWhite.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/methodWhite.json deleted file mode 100644 index 978ed5bac..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/methodWhite.json +++ /dev/null @@ -1,124 +0,0 @@ -{ - "rules": [ - { - "state": "on", - "rule": "GET", - "name": "GET", - "type": "httpMethod" - }, - { - "state": "on", - "rule": "POST", - "name": "POST", - "type": "httpMethod" - }, - { - "state": "on", - "rule": "PUT", - "name": "PUT", - "type": "httpMethod" - }, - { - "state": "on", - "rule": "DELETE", - "name": "DELETE", - "type": "httpMethod" - }, - { - "state": "on", - "rule": "PATCH", - "name": "PATCH", - "type": "httpMethod" - }, - { - "state": "on", - "rule": "HEAD", - "name": "HEAD", - "type": "httpMethod" - }, - { - "state": "on", - "rule": "OPTIONS", - "name": "OPTIONS", - "type": "httpMethod" - }, - { - "state": "on", - "rule": "TRACE", - "name": "TRACE", - "type": "httpMethod" - }, - { - "state": "on", - "rule": "CONNECT", - "name": "CONNECT", - "type": "httpMethod" - }, - { - "state": "on", - "rule": "PROPFIND", - "name": "PROPFIND", - "type": "httpMethod" - }, - { - "state": "on", - "rule": "PROPPATCH", - "name": "PROPPATCH", - "type": "httpMethod" - }, - { - "state": "on", - "rule": "MKCOL", - "name": "MKCOL", - "type": "httpMethod" - }, - { - "state": "on", - "rule": "COPY", - "name": "COPY", - "type": "httpMethod" - }, - { - "state": "on", - "rule": "MOVE", - "name": "MOVE", - "type": "httpMethod" - }, - { - "state": "on", - "rule": "LOCK", - "name": "LOCK", - "type": "httpMethod" - }, - { - "state": "on", - "rule": "UNLOCK", - "name": "UNLOCK", - "type": "httpMethod" - }, - { - "state": "on", - "rule": "LINK", - "name": "LINK", - "type": "httpMethod" - }, - { - "state": "on", - "rule": "UNLINK", - "name": "UNLINK", - "type": "httpMethod" - }, - { - "state": "on", - "rule": "WRAPPED", - "name": "WRAPPED", - "type": "httpMethod" - }, - { - "state": "on", - "rule": "SRARCH", - "name": "SRARCH", - "type": "httpMethod" - } - ] -} diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/uaBlack.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/uaBlack.json deleted file mode 100644 index b7fca6ded..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/uaBlack.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "rules": [ - ] -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/uaWhite.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/uaWhite.json deleted file mode 100644 index f70da9920..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/uaWhite.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "rules": [] -} diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/urlBlack.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/urlBlack.json deleted file mode 100644 index 7d00d1f4a..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/urlBlack.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "rules": [] -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/urlWhite.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/urlWhite.json deleted file mode 100644 index 7d00d1f4a..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/urlWhite.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "rules": [] -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/urlcc.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/urlcc.json deleted file mode 100644 index b7fca6ded..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/urlcc.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "rules": [ - ] -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10000.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10000.json deleted file mode 100644 index cfbe971f8..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10000.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id":"10000", - "state": "on", - "name": "Webmin", - "cve": "CVE-2019-15107", - "type": "rce", - "remark": "", - "rule": { - "method":"POST", - "type": "uri", - "uri": "/password_change.cgi", - "pattern": "eq" - } -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10001.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10001.json deleted file mode 100644 index 0a50bdee7..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10001.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "id":"10001", - "state": "on", - "name": "Drupal", - "cve": "CVE-2018-7600", - "type": "rce", - "remark": "", - "rule": { - "method":"POST", - "type": "request_uri", - "uri": "/user/register", - "pattern": "contain", - "args": { - "element_parents": "" - } - } -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10002.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10002.json deleted file mode 100644 index a61feefc6..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10002.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id":"10002", - "state": "on", - "name": "Struts2", - "cve": "CVE-2013-2251", - "type": "rce", - "remark": "", - "rule": { - "method":"GET", - "type": "request_uri", - "uri": "/index\\.action\\?redirect", - "pattern": "contain" - } -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10003.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10003.json deleted file mode 100644 index 240a36338..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10003.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "id":"10003", - "state": "on", - "name": "AJ-Report", - "cve": "CNVD-2024-15077", - "type": "rce", - "remark": "", - "rule": { - "method":"GET", - "type": "request_uri", - "uri": "/dataSetParam/verification;swagger-ui", - "pattern": "contain", - "params": { - "validationRules": "" - } - } -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10004.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10004.json deleted file mode 100644 index 0389fda52..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10004.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id":"10004", - "state": "on", - "name": "Jira", - "cve": "CVE-2019-8451", - "type": "ssrf", - "remark": "", - "rule": { - "method":"GET", - "type": "request_uri", - "uri": "/plugins/servlet/gadgets/makeRequest\\?url", - "pattern": "contain" - } -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10005.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10005.json deleted file mode 100644 index 87f786d1d..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10005.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "id":"10005", - "state": "on", - "name": "SaltStack", - "cve": "CVE-2020-16846", - "type": "rce", - "remark": "", - "rule": { - "method":"GET", - "type": "request_uri", - "uri": "/run", - "pattern": "eq", - "params": { - "ssh_priv": "" - } - } -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10006.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10006.json deleted file mode 100644 index c0212dd39..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10006.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id":"10006", - "state": "on", - "name": "Apache Spark", - "cve": "CVE-2022-33891", - "type": "rce", - "remark": "", - "rule": { - "method":"GET", - "type": "request_uri", - "uri": "/\\?doAs", - "pattern": "contain" - } -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10007.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10007.json deleted file mode 100644 index 24d8513e9..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10007.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "id":"10007", - "state": "on", - "name": "Apache Ofbiz XML-RPC ", - "cve": "CVE-2023-49070", - "type": "rce", - "remark": "", - "rule": { - "method":"POST", - "type": "request_uri", - "uri": "/webtools/control/xmlrpc;/", - "pattern": "contain", - "args": { - "requirePasswordChange": "" - } - } -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10008.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10008.json deleted file mode 100644 index fe91cfd1d..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10008.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id":"10008", - "state": "on", - "name": "Apache OFBiz", - "cve": "CVE-2021-26295", - "type": "rce", - "remark": "", - "rule": { - "method":"POST", - "type": "request_uri", - "uri": "/webtools/control/SOAPServic", - "pattern": "contain" - } -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10009.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10009.json deleted file mode 100644 index d22ba93d3..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10009.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id":"10009", - "state": "on", - "name": "elFinder", - "cve": "CVE-2022-26960", - "type": "afr", - "remark": "", - "rule": { - "method":"GET", - "type": "request_uri", - "uri": "/connector.minimal.php", - "pattern": "contain" - } -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10010.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10010.json deleted file mode 100644 index e1f51dbaf..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10010.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id":"10010", - "state": "on", - "name": "Joomla", - "cve": "CVE-2023-23752", - "type": "ua", - "remark": "", - "rule": { - "method":"GET", - "type": "request_uri", - "uri": "/api/index.php/v1/config/application\\?public=true", - "pattern": "contain" - } -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10011.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10011.json deleted file mode 100644 index 1d1e0d2a7..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10011.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "id":"10011", - "state": "on", - "name": "Nexus Repository Manager", - "cve": "CVE-2018-16621", - "type": "rce", - "remark": "", - "rule": { - "method":"POST", - "type": "request_uri", - "uri": "/service/extdirect", - "pattern": "eq", - "params": { - "roles": "" - } - } -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10012.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10012.json deleted file mode 100644 index d31508845..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10012.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id":"10012", - "state": "on", - "name": "Jetty", - "cve": "CVE-2021-28169", - "type": "id", - "remark": "", - "rule": { - "method":"GET", - "type": "request_uri", - "uri": "/static?/%2557EB-INF/web.xml", - "pattern": "eq" - } -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10013.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10013.json deleted file mode 100644 index 5136550ed..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10013.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id":"10013", - "state": "on", - "name": "Gitlist", - "cve": "CVE-2018-1000533", - "type": "rce", - "remark": "", - "rule": { - "method":"POST", - "type": "request_uri", - "uri": "^/[^/]+/tree/[^/]+/search$", - "pattern": "regex" - } -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10014.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10014.json deleted file mode 100644 index b57eece1e..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10014.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id":"10014", - "state": "on", - "name": "Shiro", - "cve": "CVE-2020-1957", - "type": "aa", - "remark": "", - "rule": { - "method":"GET", - "type": "request_uri", - "uri": "/..;/admin/", - "pattern": "regex" - } -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10015.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10015.json deleted file mode 100644 index bff26fb33..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10015.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "id":"10015", - "state": "on", - "name": "Spring Cloud Gateway", - "cve": "CVE-2022-22947", - "type": "rce", - "remark": "", - "rule": { - "method":"POST", - "type": "request_uri", - "uri": "/actuator/gateway/routes/hacktest", - "pattern": "eq", - "params": { - "name": "AddResponseHeader" - } - } -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10016.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10016.json deleted file mode 100644 index 4bf95a40d..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10016.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id":"10016", - "state": "on", - "name": "Apache Flink", - "cve": "CVE-2020-17519", - "type": "dr", - "remark": "", - "rule": { - "method":"GET", - "type": "request_uri", - "uri": "/jobmanager/logs/", - "pattern": "contain" - } -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10017.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10017.json deleted file mode 100644 index d6e033159..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10017.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "id":"10017", - "state": "on", - "name": "Nette", - "cve": "CVE-2020-15227", - "type": "rce", - "remark": "", - "rule": { - "method":"GET", - "type": "request_uri", - "uri": "/nette.micro", - "pattern": "contain", - "args": { - "callback": "shell_exec", - "cmd": "" - } - } -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10018.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10018.json deleted file mode 100644 index 29624f1a2..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10018.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id":"10018", - "state": "on", - "name": "泛微E-cology", - "cve": "QVD-2023-16177", - "type": "xxe", - "remark": "", - "rule": { - "method":"POST", - "type": "request_uri", - "uri": "/rest/ofs/deleteUserRequestInfoByXml", - "pattern": "eq" - } -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10019.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10019.json deleted file mode 100644 index a4f11b274..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10019.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id":"10019", - "state": "on", - "name": "极通EWEBS", - "cve": "", - "type": "afr", - "remark": "", - "rule": { - "method":"POST", - "type": "request_uri", - "uri": "/casmain.xgi", - "pattern": "eq" - } -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10020.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10020.json deleted file mode 100644 index 02f92eaee..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10020.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "id":"10020", - "state": "on", - "name": "Apache apisix", - "cve": "CVE-2020-13945", - "type": "rce", - "remark": "", - "rule": { - "method":"POST", - "type": "request_uri", - "uri": "/apisix/admin/routes", - "pattern": "eq", - "params": { - "script": "" - } - } -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10021.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10021.json deleted file mode 100644 index b858b1313..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10021.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "id":"10021", - "state": "on", - "name": "Apache apisix", - "cve": "CVE-2020-13945", - "type": "rce", - "remark": "", - "rule": { - "method":"POST", - "type": "request_uri", - "uri": "/apisix/admin/routes", - "pattern": "eq", - "params": { - "script": "" - } - } -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10022.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10022.json deleted file mode 100644 index dbbfc2d87..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10022.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "id":"10022", - "state": "on", - "name": "Metabase", - "cve": "CVE-2021-41277", - "type": "afr", - "remark": "", - "rule": { - "method":"GET", - "type": "uri", - "uri": "/api/geojson", - "pattern": "eq", - "args": { - "url": "" - } - } -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10023.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10023.json deleted file mode 100644 index 4c7a58717..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10023.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id":"10023", - "state": "on", - "name": "Ofbiz", - "cve": "CVE-2020-9496", - "type": "suid", - "remark": "", - "rule": { - "method":"POST", - "type": "uri", - "uri": "/webtools/control/xmlrpc", - "pattern": "eq" - } -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10024.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10024.json deleted file mode 100644 index fd7e71088..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10024.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "id":"10024", - "state": "on", - "name": "Kibana", - "cve": "CVE-2018-17246", - "type": "afr", - "remark": "", - "rule": { - "method":"GET", - "type": "uri", - "uri": "/api/console/api_server", - "pattern": "eq", - "args": { - "sense_version": "", - "apis": "" - } - } -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10025.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10025.json deleted file mode 100644 index 7fe4fccca..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10025.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "id":"10025", - "state": "on", - "name": "Jenkins", - "cve": "CVE-2018-1000861", - "type": "rce", - "remark": "", - "rule": { - "method":"GET", - "type": "request_uri", - "uri": "/securityRealm/user/admin/descriptorByName/org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SecureGroovyScript/checkScript", - "pattern": "eq", - "args": { - "sandbox": "true", - "value": "" - } - } -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10026.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10026.json deleted file mode 100644 index 61f720463..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10026.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id":"10026", - "state": "on", - "name": "WebLogic", - "cve": "CVE-2017-3506", - "type": "rce", - "remark": "", - "rule": { - "method":"POST", - "type": "request_uri", - "uri": "/wls-wsat/CoordinatorPortType", - "pattern": "eq" - } -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10027.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10027.json deleted file mode 100644 index a4a31d90b..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10027.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "id":"10027", - "state": "on", - "name": "Apache druid", - "cve": "CVE-2021-36749", - "type": "afr", - "remark": "", - "rule": { - "method":"POST", - "type": "uri", - "uri": "/druid/indexer/v1/sampler", - "pattern": "eq", - "args": { - "for": "connect" - } - } -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10028.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10028.json deleted file mode 100644 index 369323487..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10028.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id":"10028", - "state": "on", - "name": "Apache HTTPD", - "cve": "", - "type": "rce", - "remark": "", - "rule": { - "method":"GET", - "type": "request_uri", - "uri": "^/uploadfiles/.*\\.php\\.(?:jpg|jpeg)$", - "pattern": "regex" - } -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10029.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10029.json deleted file mode 100644 index 9f3b2f8fa..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10029.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "id":"10029", - "state": "on", - "name": "Rocket.Chat", - "cve": "CVE-2021-22911", - "type": "rce", - "remark": "", - "rule": { - "method":"POST", - "type": "request_uri", - "uri": "/api/v1/method.callAnon/getPasswordPolicy", - "pattern": "eq", - "params": { - "message": "" - } - } -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10030.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10030.json deleted file mode 100644 index 4cb9155db..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10030.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id":"10030", - "state": "on", - "name": "Spring Security", - "cve": "CVE-2022-22978", - "type": "aa", - "remark": "", - "rule": { - "method":"GET", - "type": "request_uri", - "uri": "/admin/%0d", - "pattern": "contain" - } -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10031.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10031.json deleted file mode 100644 index 24516bd15..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10031.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id":"10031", - "state": "on", - "name": "Spring Cloud", - "cve": "CVE-2022-22963", - "type": "rce", - "remark": "", - "rule": { - "method":"POST", - "type": "uri", - "uri": "/functionRouter", - "pattern": "eq" - } -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10032.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10032.json deleted file mode 100644 index bd034e35d..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10032.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id":"10032", - "state": "on", - "name": "mongo-express", - "cve": "CVE-2019-10758", - "type": "rce", - "remark": "", - "rule": { - "method":"POST", - "type": "uri", - "uri": "/checkValid", - "pattern": "eq" - } -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10033.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10033.json deleted file mode 100644 index bb0ea5db1..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10033.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "id":"10033", - "state": "on", - "name": "Nexus Repository Manager3", - "cve": "CVE-2020-10199", - "type": "rce", - "remark": "", - "rule": { - "method":"POST", - "type": "uri", - "uri": "/service/rest/beta/repositories/go/group", - "pattern": "eq", - "params": { - "memberNames": "" - } - } -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10034.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10034.json deleted file mode 100644 index 1f6fac186..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10034.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id":"10034", - "state": "on", - "name": "Ruby On Rails", - "cve": "CVE-2018-3760", - "type": "dr", - "remark": "", - "rule": { - "method":"GET", - "type": "uri", - "uri": "/assets/file:", - "pattern": "contain" - } -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10035.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10035.json deleted file mode 100644 index 2dd650eb2..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10035.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "id":"10035", - "state": "on", - "name": "Cacti", - "cve": "CVE-2022-46169", - "type": "rce", - "remark": "", - "rule": { - "method":"GET", - "type": "uri", - "uri": "/remote_agent.php", - "pattern": "eq", - "args": { - "poller_id": "" - } - } -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10036.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10036.json deleted file mode 100644 index 511e554d0..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10036.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id":"10036", - "state": "on", - "name": "Drupal", - "cve": "CVE-2014-9016", - "type": "dos", - "remark": "", - "rule": { - "method":"POST", - "type": "request_uri", - "uri": "/?q=node&destination=node", - "pattern": "eq" - } -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10037.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10037.json deleted file mode 100644 index 862d10a70..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10037.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "id":"10037", - "state": "on", - "name": "Atlassian Confluence", - "cve": "CVE-2021-26084", - "type": "rce", - "remark": "", - "rule": { - "method":"POST", - "type": "request_uri", - "uri": "/pages/doenterpagevariables.action", - "pattern": "eq", - "params": { - "queryString": "" - } - } -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10038.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10038.json deleted file mode 100644 index 61aca8989..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10038.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "id":"10038", - "state": "on", - "name": "Atlassian Confluence", - "cve": "CVE-2015-7808", - "type": "rce", - "remark": "", - "rule": { - "method":"GET", - "type": "uri", - "uri": "/ajax/api/hook/decodeArguments", - "pattern": "eq", - "args": { - "arguments": "" - } - } -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10039.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10039.json deleted file mode 100644 index 94f204f5f..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10039.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "id":"10039", - "state": "on", - "name": "DedeCMS", - "cve": "CVE-2018-7700", - "type": "rce", - "remark": "", - "rule": { - "method":"GET", - "type": "uri", - "uri": "/tag_test_action.php", - "pattern": "eq", - "args": { - "partcode": "" - } - } -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10040.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10040.json deleted file mode 100644 index def292008..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10040.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id":"10040", - "state": "on", - "name": "Log4j", - "cve": "CVE-2021-44228", - "type": "rce", - "remark": "", - "rule": { - "method":"GET", - "type": "request_uri", - "uri": "jndi:ldap:", - "pattern": "contain" - } -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10041.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10041.json deleted file mode 100644 index 83e4aa692..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10041.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "id":"10041", - "state": "on", - "name": "Confluence", - "cve": "CVE-2019-3396", - "type": "rce", - "remark": "", - "rule": { - "method":"POST", - "type": "request_uri", - "uri": "/rest/tinymce/1/macro/preview", - "pattern": "eq", - "params": { - "_template": "" - } - } -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10042.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10042.json deleted file mode 100644 index 1888047a4..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10042.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "id":"10042", - "state": "on", - "name": "Solr", - "cve": "CVE-2019-0193", - "type": "rce", - "remark": "", - "rule": { - "method":"POST", - "type": "request_uri", - "uri": "^/solr/[\\w-]+/dataimport(?:\\?.*)?$", - "pattern": "regex", - "params": { - "command": "" - } - } -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10043.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10043.json deleted file mode 100644 index 19590f8eb..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10043.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "id":"10043", - "state": "on", - "name": "若依管理系统", - "cve": "CNVD-2021-01931", - "type": "afd", - "remark": "", - "rule": { - "method":"GET", - "type": "uri", - "uri": "/common/download/resource", - "pattern": "eq", - "args": { - "resource": "" - } - } -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10044.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10044.json deleted file mode 100644 index a16ef6ea9..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10044.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "id":"10044", - "state": "on", - "name": "Coremail", - "cve": "", - "type": "il", - "remark": "", - "rule": { - "method":"GET", - "type": "uri", - "uri": "/mailsms/s", - "pattern": "eq", - "args": { - "func": "" - } - } -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10045.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10045.json deleted file mode 100644 index ffec420d9..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10045.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "id":"10045", - "state": "on", - "name": "F5 BIG-IP", - "cve": "CVE-2020-5902", - "type": "rce", - "remark": "", - "rule": { - "method":"GET", - "type": "uri", - "uri": "/tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp", - "pattern": "eq", - "args": { - "fileName": "" - } - } -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10046.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10046.json deleted file mode 100644 index 3ba0c6187..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10046.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "id":"10046", - "state": "on", - "name": "齐治堡垒机", - "cve": "", - "type": "aa", - "remark": "", - "rule": { - "method":"GET", - "type": "uri", - "uri": "/audit/gui_detail_view.php", - "pattern": "eq", - "args": { - "token": "" - } - } -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10047.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10047.json deleted file mode 100644 index c74bb65cf..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10047.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "id":"10047", - "state": "on", - "name": "Craft", - "cve": "CVE-2020-9757", - "type": "rce", - "remark": "", - "rule": { - "method":"GET", - "type": "uri", - "uri": "/actions/seomatic/meta-container/meta-link-container/", - "pattern": "eq", - "args": { - "uri": "" - } - } -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10048.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10048.json deleted file mode 100644 index 78ebd631a..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10048.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "id":"10048", - "state": "on", - "name": "Laravel", - "cve": "CVE-2021-3129", - "type": "rce", - "remark": "", - "rule": { - "method":"POST", - "type": "uri", - "uri": "/_ignition/execute-solution", - "pattern": "eq", - "params": { - "solution": "" - } - } -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10049.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10049.json deleted file mode 100644 index 7dc2374f2..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10049.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "id":"10049", - "state": "on", - "name": "Liferay Portal", - "cve": "CVE-2020-7961", - "type": "rce", - "remark": "", - "rule": { - "method":"POST", - "type": "uri", - "uri": "/api/jsonws/invoke", - "pattern": "eq", - "params": { - "cmd": "" - } - } -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10050.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10050.json deleted file mode 100644 index 7643c57e7..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10050.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "id":"10050", - "state": "on", - "name": "GeoServer", - "cve": "CVE-2023-25157", - "type": "sqlInjection", - "remark": "", - "rule": { - "method":"GET", - "type": "uri", - "uri": "/geoserver/ows", - "pattern": "eq", - "args": { - "service": "" - } - } -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10051.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10051.json deleted file mode 100644 index dc710081a..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10051.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id":"10051", - "state": "on", - "name": "Flink", - "cve": "CVE-2020-17518", - "type": "afw", - "remark": "", - "rule": { - "method":"POST", - "type": "uri", - "uri": "/jars/upload", - "pattern": "eq" - } -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10052.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10052.json deleted file mode 100644 index 5bfcfb827..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10052.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "id":"10052", - "state": "on", - "name": "Nexus Repository Manager", - "cve": "CVE-2019-7238", - "type": "rce", - "remark": "", - "rule": { - "method":"POST", - "type": "request_uri", - "uri": "/service/extdirect", - "pattern": "eq", - "params": { - "action": "" - } - } -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10053.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10053.json deleted file mode 100644 index 602e14043..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10053.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "id":"10053", - "state": "on", - "name": "Apache druid", - "cve": "CVE-2021-25646", - "type": "rce", - "remark": "", - "rule": { - "method":"POST", - "type": "uri", - "uri": "/druid/indexer/v1/sampler", - "pattern": "eq", - "params": { - "function": "" - } - } -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10054.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10054.json deleted file mode 100644 index 7eabeb0dd..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10054.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "id":"10054", - "state": "on", - "name": "Apache Unomi", - "cve": "CVE-2020-13942", - "type": "rce", - "remark": "", - "rule": { - "method":"POST", - "type": "uri", - "uri": "/context.json", - "pattern": "eq", - "params": { - "filters": "" - } - } -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10055.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10055.json deleted file mode 100644 index 5b5b2875b..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10055.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "id":"10055", - "state": "on", - "name": "F5 BIG-IP", - "cve": "CVE-2023-46747", - "type": "rce", - "remark": "", - "rule": { - "method":"POST", - "type": "uri", - "uri": "/mgmt/tm/util/bash", - "pattern": "eq", - "params": { - "command": "" - } - } -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10056.json b/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10056.json deleted file mode 100644 index da774b736..000000000 --- a/openresty/1.27.1.2-0-1-focal/1pwaf/data/rules/vuln/10056.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "id":"10056", - "state": "on", - "name": "MetInfo", - "cve": "", - "type": "afr", - "remark": "", - "rule": { - "method":"GET", - "type": "uri", - "uri": "/include/thumb.php", - "pattern": "eq", - "args": { - "dir": "" - } - } -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/build/Dockerfile b/openresty/1.27.1.2-0-1-focal/build/Dockerfile deleted file mode 100644 index ff95287dd..000000000 --- a/openresty/1.27.1.2-0-1-focal/build/Dockerfile +++ /dev/null @@ -1,228 +0,0 @@ -# Dockerfile - Ubuntu Focal -# https://github.com/openresty/docker-openresty - -ARG RESTY_IMAGE_BASE="ubuntu" -ARG RESTY_IMAGE_TAG="focal" - -ARG PANEL_OPENRESTY_VERSION -FROM 1panel/openresty:${PANEL_OPENRESTY_VERSION} as panel-openresty - -FROM ${RESTY_IMAGE_BASE}:${RESTY_IMAGE_TAG} - -LABEL maintainer="Evan Wies " - -# Docker Build Arguments -ARG RESTY_IMAGE_BASE="ubuntu" -ARG RESTY_IMAGE_TAG="focal" -ARG RESTY_VERSION="1.27.1.2" -ARG RESTY_LUAROCKS_VERSION="3.11.1" - -# https://github.com/openresty/openresty-packaging/blob/master/deb/openresty-openssl3/debian/rules -ARG RESTY_OPENSSL_VERSION="3.4.1" -ARG RESTY_OPENSSL_PATCH_VERSION="3.4.1" -ARG RESTY_OPENSSL_URL_BASE="https://github.com/openssl/openssl/releases/download/openssl-${RESTY_OPENSSL_VERSION}" -# LEGACY: "https://www.openssl.org/source/old/1.1.1" -ARG RESTY_OPENSSL_BUILD_OPTIONS="enable-camellia enable-seed enable-rfc3779 enable-cms enable-md2 enable-rc5 \ - enable-weak-ssl-ciphers enable-ssl3 enable-ssl3-method enable-md2 enable-ktls enable-fips \ - " - -# https://github.com/openresty/openresty-packaging/blob/master/deb/openresty-pcre2/debian/rules -ARG RESTY_PCRE_VERSION="10.44" -ARG RESTY_PCRE_SHA256="86b9cb0aa3bcb7994faa88018292bc704cdbb708e785f7c74352ff6ea7d3175b" -ARG RESTY_PCRE_BUILD_OPTIONS="--enable-jit --enable-pcre2grep-jit --disable-bsr-anycrlf --disable-coverage --disable-ebcdic --disable-fuzz-support \ - --disable-jit-sealloc --disable-never-backslash-C --enable-newline-is-lf --enable-pcre2-8 --enable-pcre2-16 --enable-pcre2-32 \ - --enable-pcre2grep-callout --enable-pcre2grep-callout-fork --disable-pcre2grep-libbz2 --disable-pcre2grep-libz --disable-pcre2test-libedit \ - --enable-percent-zt --disable-rebuild-chartables --enable-shared --disable-static --disable-silent-rules --enable-unicode --disable-valgrind \ - " - -ARG RESTY_J="1" - -# https://github.com/openresty/openresty-packaging/blob/master/deb/openresty/debian/rules -ARG RESTY_CONFIG_OPTIONS="\ - --with-compat \ - --without-http_rds_json_module \ - --without-http_rds_csv_module \ - --without-lua_rds_parser \ - --without-mail_pop3_module \ - --without-mail_imap_module \ - --without-mail_smtp_module \ - --with-http_addition_module \ - --with-http_auth_request_module \ - --with-http_dav_module \ - --with-http_flv_module \ - --with-http_geoip_module=dynamic \ - --with-http_gunzip_module \ - --with-http_gzip_static_module \ - --with-http_image_filter_module=dynamic \ - --with-http_mp4_module \ - --with-http_random_index_module \ - --with-http_realip_module \ - --with-http_secure_link_module \ - --with-http_slice_module \ - --with-http_ssl_module \ - --with-http_stub_status_module \ - --with-http_sub_module \ - --with-http_v2_module \ - --with-http_v3_module \ - --with-http_xslt_module=dynamic \ - --with-ipv6 \ - --with-mail \ - --with-mail_ssl_module \ - --with-md5-asm \ - --with-sha1-asm \ - --with-stream \ - --with-stream_ssl_module \ - --with-stream_ssl_preread_module \ - --with-threads \ - " -ARG RESTY_CONFIG_OPTIONS_MORE="" -ARG RESTY_LUAJIT_OPTIONS="--with-luajit-xcflags='-DLUAJIT_NUMMODE=2 -DLUAJIT_ENABLE_LUA52COMPAT'" -ARG RESTY_PCRE_OPTIONS="--with-pcre-jit" - -ARG RESTY_ADD_PACKAGE_BUILDDEPS="" -ARG RESTY_ADD_PACKAGE_RUNDEPS="" -ARG RESTY_EVAL_PRE_CONFIGURE="" -ARG RESTY_EVAL_POST_DOWNLOAD_PRE_CONFIGURE="" -ARG RESTY_EVAL_POST_MAKE="" - -# These are not intended to be user-specified -ARG _RESTY_CONFIG_DEPS="--with-pcre \ - --with-cc-opt='-DNGX_LUA_ABORT_AT_PANIC -I/usr/local/openresty/pcre2/include -I/usr/local/openresty/openssl3/include' \ - --with-ld-opt='-L/usr/local/openresty/pcre2/lib -L/usr/local/openresty/openssl3/lib -Wl,-rpath,/usr/local/openresty/pcre2/lib:/usr/local/openresty/openssl3/lib' \ - " - -LABEL resty_image_base="${RESTY_IMAGE_BASE}" -LABEL resty_image_tag="${RESTY_IMAGE_TAG}" -LABEL resty_version="${RESTY_VERSION}" -LABEL resty_luarocks_version="${RESTY_LUAROCKS_VERSION}" -LABEL resty_openssl_version="${RESTY_OPENSSL_VERSION}" -LABEL resty_openssl_patch_version="${RESTY_OPENSSL_PATCH_VERSION}" -LABEL resty_openssl_url_base="${RESTY_OPENSSL_URL_BASE}" -LABEL resty_openssl_build_options="${RESTY_OPENSSL_BUILD_OPTIONS}" -LABEL resty_pcre_version="${RESTY_PCRE_VERSION}" -LABEL resty_pcre_build_options="${RESTY_PCRE_BUILD_OPTIONS}" -LABEL resty_pcre_sha256="${RESTY_PCRE_SHA256}" -LABEL resty_config_options="${RESTY_CONFIG_OPTIONS}" -LABEL resty_config_options_more="${RESTY_CONFIG_OPTIONS_MORE}" -LABEL resty_config_deps="${_RESTY_CONFIG_DEPS}" -LABEL resty_add_package_builddeps="${RESTY_ADD_PACKAGE_BUILDDEPS}" -LABEL resty_add_package_rundeps="${RESTY_ADD_PACKAGE_RUNDEPS}" -LABEL resty_eval_pre_configure="${RESTY_EVAL_PRE_CONFIGURE}" -LABEL resty_eval_post_download_pre_configure="${RESTY_EVAL_POST_DOWNLOAD_PRE_CONFIGURE}" -LABEL resty_eval_post_make="${RESTY_EVAL_POST_MAKE}" -LABEL resty_luajit_options="${RESTY_LUAJIT_OPTIONS}" -LABEL resty_pcre_options="${RESTY_PCRE_OPTIONS}" - -COPY tmp /tmp -ARG CONTAINER_PACKAGE_URL -RUN sed -i "s|http://archive.ubuntu.com/ubuntu/|${CONTAINER_PACKAGE_URL}|g" /etc/apt/sources.list \ - && sed -i "s|http://security.ubuntu.com/ubuntu/|${CONTAINER_PACKAGE_URL}|g" /etc/apt/sources.list - -COPY --from=panel-openresty /usr/local/openresty/modules/ngx_brotli /usr/local/openresty/modules/ngx_brotli - -RUN DEBIAN_FRONTEND=noninteractive apt-get update \ - && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ - build-essential \ - ca-certificates \ - curl \ - gettext-base \ - libgd-dev \ - libgeoip-dev \ - libncurses5-dev \ - libperl-dev \ - libreadline-dev \ - libxslt1-dev \ - make \ - perl \ - unzip \ - wget \ - zlib1g-dev \ - git \ - ${RESTY_ADD_PACKAGE_BUILDDEPS} \ - ${RESTY_ADD_PACKAGE_RUNDEPS} \ - && cd /tmp \ - && bash /tmp/pre.sh \ - && if [ -n "${RESTY_EVAL_PRE_CONFIGURE}" ]; then eval $(echo ${RESTY_EVAL_PRE_CONFIGURE}); fi \ -# && curl -fSL "${RESTY_OPENSSL_URL_BASE}/openssl-${RESTY_OPENSSL_VERSION}.tar.gz" -o openssl-${RESTY_OPENSSL_VERSION}.tar.gz \ - && tar xzf openssl-${RESTY_OPENSSL_VERSION}.tar.gz \ - && cd openssl-${RESTY_OPENSSL_VERSION} \ - && echo 'patching OpenSSL 3.x for OpenResty' \ - && patch -p1 < /tmp/openssl-${RESTY_OPENSSL_PATCH_VERSION}-sess_set_get_cb_yield.patch \ - && ./config \ - shared zlib -g \ - --prefix=/usr/local/openresty/openssl3 \ - --libdir=lib \ - -Wl,-rpath,/usr/local/openresty/openssl3/lib \ - ${RESTY_OPENSSL_BUILD_OPTIONS} \ - && make -j${RESTY_J} \ - && make -j${RESTY_J} install_sw \ - && cd /tmp \ -# && curl -fSL "https://github.com/PCRE2Project/pcre2/releases/download/pcre2-${RESTY_PCRE_VERSION}/pcre2-${RESTY_PCRE_VERSION}.tar.gz" -o pcre2-${RESTY_PCRE_VERSION}.tar.gz \ - && echo "${RESTY_PCRE_SHA256} pcre2-${RESTY_PCRE_VERSION}.tar.gz" | shasum -a 256 --check \ - && tar xzf pcre2-${RESTY_PCRE_VERSION}.tar.gz \ - && cd /tmp/pcre2-${RESTY_PCRE_VERSION} \ - && CFLAGS="-g -O3" ./configure \ - --prefix=/usr/local/openresty/pcre2 \ - --libdir=/usr/local/openresty/pcre2/lib \ - ${RESTY_PCRE_BUILD_OPTIONS} \ - && CFLAGS="-g -O3" make -j${RESTY_J} \ - && CFLAGS="-g -O3" make -j${RESTY_J} install \ - && cd /tmp \ -# && curl -fSL https://openresty.org/download/openresty-${RESTY_VERSION}.tar.gz -o openresty-${RESTY_VERSION}.tar.gz \ - && tar xzf openresty-${RESTY_VERSION}.tar.gz \ - && cd /tmp/openresty-${RESTY_VERSION} \ - && if [ -n "${RESTY_EVAL_POST_DOWNLOAD_PRE_CONFIGURE}" ]; then eval $(echo ${RESTY_EVAL_POST_DOWNLOAD_PRE_CONFIGURE}); fi \ - && eval ./configure -j${RESTY_J} ${_RESTY_CONFIG_DEPS} ${RESTY_CONFIG_OPTIONS} ${RESTY_CONFIG_OPTIONS_MORE} ${RESTY_LUAJIT_OPTIONS} ${RESTY_PCRE_OPTIONS} \ - && make -j${RESTY_J} \ - && make -j${RESTY_J} install \ - && cd /tmp \ - && rm -rf \ - openssl-${RESTY_OPENSSL_VERSION}.tar.gz openssl-${RESTY_OPENSSL_VERSION} \ - pcre2-${RESTY_PCRE_VERSION}.tar.gz pcre2-${RESTY_PCRE_VERSION} \ - openresty-${RESTY_VERSION}.tar.gz openresty-${RESTY_VERSION} \ - && tar xzf luarocks-${RESTY_LUAROCKS_VERSION}.tar.gz \ - && cd luarocks-${RESTY_LUAROCKS_VERSION} \ - && ./configure \ - --prefix=/usr/local/openresty/luajit \ - --with-lua=/usr/local/openresty/luajit \ - --with-lua-include=/usr/local/openresty/luajit/include/luajit-2.1 \ - && make build \ - && make install \ - && cd /tmp \ - && if [ -n "${RESTY_EVAL_POST_MAKE}" ]; then eval $(echo ${RESTY_EVAL_POST_MAKE}); fi \ - && rm -rf luarocks-${RESTY_LUAROCKS_VERSION} luarocks-${RESTY_LUAROCKS_VERSION}.tar.gz \ - && if [ -n "${RESTY_ADD_PACKAGE_BUILDDEPS}" ]; then DEBIAN_FRONTEND=noninteractive apt-get remove -y --purge ${RESTY_ADD_PACKAGE_BUILDDEPS} ; fi \ - && DEBIAN_FRONTEND=noninteractive apt-get autoremove -y \ - && mkdir -p /var/run/openresty \ - && ln -sf /dev/stdout /usr/local/openresty/nginx/logs/access.log \ - && ln -sf /dev/stderr /usr/local/openresty/nginx/logs/error.log - -# Add additional binaries into PATH for convenience -ENV PATH=$PATH:/usr/local/openresty/luajit/bin:/usr/local/openresty/nginx/sbin:/usr/local/openresty/bin - -# Add LuaRocks paths -# If OpenResty changes, these may need updating: -# /usr/local/openresty/bin/resty -e 'print(package.path)' -# /usr/local/openresty/bin/resty -e 'print(package.cpath)' -ENV LUA_PATH="/usr/local/openresty/site/lualib/?.ljbc;/usr/local/openresty/site/lualib/?/init.ljbc;/usr/local/openresty/lualib/?.ljbc;/usr/local/openresty/lualib/?/init.ljbc;/usr/local/openresty/site/lualib/?.lua;/usr/local/openresty/site/lualib/?/init.lua;/usr/local/openresty/lualib/?.lua;/usr/local/openresty/lualib/?/init.lua;./?.lua;/usr/local/openresty/luajit/share/luajit-2.1/?.lua;/usr/local/share/lua/5.1/?.lua;/usr/local/share/lua/5.1/?/init.lua;/usr/local/openresty/luajit/share/lua/5.1/?.lua;/usr/local/openresty/luajit/share/lua/5.1/?/init.lua" - -ENV LUA_CPATH="/usr/local/openresty/site/lualib/?.so;/usr/local/openresty/lualib/?.so;./?.so;/usr/local/lib/lua/5.1/?.so;/usr/local/openresty/luajit/lib/lua/5.1/?.so;/usr/local/lib/lua/5.1/loadall.so;/usr/local/openresty/luajit/lib/lua/5.1/?.so" - - -# Copy nginx configuration files -COPY nginx.conf /usr/local/openresty/nginx/conf/nginx.conf -COPY nginx.vh.default.conf /etc/nginx/conf.d/default.conf - -RUN bash /tmp/default.sh - -COPY --from=panel-openresty /usr/local/openresty/1pwaf /usr/local/openresty/1pwaf -COPY --from=panel-openresty /usr/local/openresty/1pwaf/libraries/libmaxminddb.so /usr/local/openresty/1pwaf/libraries/libmaxminddb.so -COPY --from=panel-openresty /usr/local/openresty/1pwaf/libraries/libinjection.so /usr/local/openresty/1pwaf/libraries/libinjection.so -COPY --from=panel-openresty /usr/local/openresty/luajit/lib/lua/5.1/lsqlite3.so /usr/local/openresty/luajit/lib/lua/5.1/lsqlite3.so -COPY --from=panel-openresty /usr/local/openresty/luajit/lib/lua/5.1/lfs.so /usr/local/openresty/luajit/lib/lua/5.1/lfs.so - -CMD ["/usr/local/openresty/bin/openresty", "-g", "daemon off;"] - -# Use SIGQUIT instead of default SIGTERM to cleanly drain requests -# See https://github.com/openresty/docker-openresty/blob/master/README.md#tips--pitfalls -STOPSIGNAL SIGQUIT \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/build/module.json b/openresty/1.27.1.2-0-1-focal/build/module.json deleted file mode 100644 index e663807cc..000000000 --- a/openresty/1.27.1.2-0-1-focal/build/module.json +++ /dev/null @@ -1,37 +0,0 @@ -[ - { - "name":"ngx_brotli", - "script":"", - "packages":[], - "params": "--add-module=/usr/local/openresty/modules/ngx_brotli", - "enable":false - }, - { - "name":"rtmp", - "script":"unzip -o /tmp/nginx-rtmp-module.zip -d /tmp", - "packages":[], - "params": "--add-module=/tmp/nginx-rtmp-module", - "enable":false - }, - { - "name":"web_dav", - "script":"unzip -o /tmp/nginx-dav-ext-module.zip -d /tmp", - "packages":[], - "params": "--with-http_dav_module --add-module=/tmp/nginx-dav-ext-module", - "enable":false - }, - { - "name":"geoip2", - "script":"unzip -o /tmp/ngx_http_geoip2_module.zip -d /tmp && unzip -o /tmp/libmaxminddb.zip -d /tmp && cd /tmp/libmaxminddb && ./configure && make && make install", - "packages":[], - "params": "--add-module=/tmp/ngx_http_geoip2_module", - "enable":false - }, - { - "name":"http_substitutions_filter", - "script":"unzip -o /tmp/ngx_http_substitutions_filter_module.zip -d /tmp", - "packages":[], - "params": "--add-module=/tmp/ngx_http_substitutions_filter_module", - "enable":false - } -] \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/build/nginx.conf b/openresty/1.27.1.2-0-1-focal/build/nginx.conf deleted file mode 100644 index 8ab26fde8..000000000 --- a/openresty/1.27.1.2-0-1-focal/build/nginx.conf +++ /dev/null @@ -1,90 +0,0 @@ -# nginx.conf -- docker-openresty -# -# This file is installed to: -# `/usr/local/openresty/nginx/conf/nginx.conf` -# and is the file loaded by nginx at startup, -# unless the user specifies otherwise. -# -# It tracks the upstream OpenResty's `nginx.conf`, but removes the `server` -# section and adds this directive: -# `include /etc/nginx/conf.d/*.conf;` -# -# The `docker-openresty` file `nginx.vh.default.conf` is copied to -# `/etc/nginx/conf.d/default.conf`. It contains the `server section -# of the upstream `nginx.conf`. -# -# See https://github.com/openresty/docker-openresty/blob/master/README.md#nginx-config-files -# - -#user nobody; -#worker_processes 1; - -# Enables the use of JIT for regular expressions to speed-up their processing. -pcre_jit on; - - - -#error_log logs/error.log; -#error_log logs/error.log notice; -#error_log logs/error.log info; - -#pid logs/nginx.pid; - - -events { - worker_connections 1024; -} - - -http { - include mime.types; - default_type application/octet-stream; - - # Enables or disables the use of underscores in client request header fields. - # When the use of underscores is disabled, request header fields whose names contain underscores are marked as invalid and become subject to the ignore_invalid_headers directive. - # underscores_in_headers off; - - #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' - # '$status $body_bytes_sent "$http_referer" ' - # '"$http_user_agent" "$http_x_forwarded_for"'; - - #access_log logs/access.log main; - - # Log in JSON Format - # log_format nginxlog_json escape=json '{ "timestamp": "$time_iso8601", ' - # '"remote_addr": "$remote_addr", ' - # '"body_bytes_sent": $body_bytes_sent, ' - # '"request_time": $request_time, ' - # '"response_status": $status, ' - # '"request": "$request", ' - # '"request_method": "$request_method", ' - # '"host": "$host",' - # '"upstream_addr": "$upstream_addr",' - # '"http_x_forwarded_for": "$http_x_forwarded_for",' - # '"http_referrer": "$http_referer", ' - # '"http_user_agent": "$http_user_agent", ' - # '"http_version": "$server_protocol", ' - # '"nginx_access": true }'; - # access_log /dev/stdout nginxlog_json; - - # See Move default writable paths to a dedicated directory (#119) - # https://github.com/openresty/docker-openresty/issues/119 - client_body_temp_path /var/run/openresty/nginx-client-body; - proxy_temp_path /var/run/openresty/nginx-proxy; - fastcgi_temp_path /var/run/openresty/nginx-fastcgi; - uwsgi_temp_path /var/run/openresty/nginx-uwsgi; - scgi_temp_path /var/run/openresty/nginx-scgi; - - sendfile on; - #tcp_nopush on; - - #keepalive_timeout 0; - keepalive_timeout 65; - - #gzip on; - - include /etc/nginx/conf.d/*.conf; - - # Don't reveal OpenResty version to clients. - # server_tokens off; -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/build/nginx.vh.default.conf b/openresty/1.27.1.2-0-1-focal/build/nginx.vh.default.conf deleted file mode 100644 index d4aa8d5a1..000000000 --- a/openresty/1.27.1.2-0-1-focal/build/nginx.vh.default.conf +++ /dev/null @@ -1,58 +0,0 @@ -# nginx.vh.default.conf -- docker-openresty -# -# This file is installed to: -# `/etc/nginx/conf.d/default.conf` -# -# It tracks the `server` section of the upstream OpenResty's `nginx.conf`. -# -# This config (and any other configs in `etc/nginx/conf.d/`) is loaded by -# default by the `include` directive in `/usr/local/openresty/nginx/conf/nginx.conf`. -# -# See https://github.com/openresty/docker-openresty/blob/master/README.md#nginx-config-files -# - - -server { - listen 80; - server_name localhost; - - #charset koi8-r; - #access_log /var/log/nginx/host.access.log main; - - location / { - root /usr/local/openresty/nginx/html; - index index.html index.htm; - } - - #error_page 404 /404.html; - - # redirect server error pages to the static page /50x.html - # - error_page 500 502 503 504 /50x.html; - location = /50x.html { - root /usr/local/openresty/nginx/html; - } - - # proxy the PHP scripts to Apache listening on 127.0.0.1:80 - # - #location ~ \.php$ { - # proxy_pass http://127.0.0.1; - #} - - # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 - # - #location ~ \.php$ { - # root /usr/local/openresty/nginx/html; - # fastcgi_pass 127.0.0.1:9000; - # fastcgi_index index.php; - # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; - # include fastcgi_params; - #} - - # deny access to .htaccess files, if Apache's document root - # concurs with nginx's one - # - #location ~ /\.ht { - # deny all; - #} -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/build/tmp/default.sh b/openresty/1.27.1.2-0-1-focal/build/tmp/default.sh deleted file mode 100644 index 2f234db77..000000000 --- a/openresty/1.27.1.2-0-1-focal/build/tmp/default.sh +++ /dev/null @@ -1,4 +0,0 @@ -apt-get install -y --no-install-recommends libsqlite3-dev git python3 automake autoconf libtool\ - && apt-get clean \ - && rm -rf /var/lib/apt/lists/* \ - && mkdir -p /usr/local/openresty/1pwaf/libraries diff --git a/openresty/1.27.1.2-0-1-focal/build/tmp/luarocks-3.11.1.tar.gz b/openresty/1.27.1.2-0-1-focal/build/tmp/luarocks-3.11.1.tar.gz deleted file mode 100644 index b0cc0bad4..000000000 Binary files a/openresty/1.27.1.2-0-1-focal/build/tmp/luarocks-3.11.1.tar.gz and /dev/null differ diff --git a/openresty/1.27.1.2-0-1-focal/build/tmp/nginx-dav-ext-module.zip b/openresty/1.27.1.2-0-1-focal/build/tmp/nginx-dav-ext-module.zip deleted file mode 100644 index 6b6d5e70d..000000000 Binary files a/openresty/1.27.1.2-0-1-focal/build/tmp/nginx-dav-ext-module.zip and /dev/null differ diff --git a/openresty/1.27.1.2-0-1-focal/build/tmp/nginx-rtmp-module.zip b/openresty/1.27.1.2-0-1-focal/build/tmp/nginx-rtmp-module.zip deleted file mode 100644 index 15a10470b..000000000 Binary files a/openresty/1.27.1.2-0-1-focal/build/tmp/nginx-rtmp-module.zip and /dev/null differ diff --git a/openresty/1.27.1.2-0-1-focal/build/tmp/ngx_brotli.zip b/openresty/1.27.1.2-0-1-focal/build/tmp/ngx_brotli.zip deleted file mode 100644 index 3117ff3ca..000000000 Binary files a/openresty/1.27.1.2-0-1-focal/build/tmp/ngx_brotli.zip and /dev/null differ diff --git a/openresty/1.27.1.2-0-1-focal/build/tmp/ngx_http_geoip2_module.zip b/openresty/1.27.1.2-0-1-focal/build/tmp/ngx_http_geoip2_module.zip deleted file mode 100644 index e383d5aa1..000000000 Binary files a/openresty/1.27.1.2-0-1-focal/build/tmp/ngx_http_geoip2_module.zip and /dev/null differ diff --git a/openresty/1.27.1.2-0-1-focal/build/tmp/ngx_http_substitutions_filter_module.zip b/openresty/1.27.1.2-0-1-focal/build/tmp/ngx_http_substitutions_filter_module.zip deleted file mode 100644 index 473293613..000000000 Binary files a/openresty/1.27.1.2-0-1-focal/build/tmp/ngx_http_substitutions_filter_module.zip and /dev/null differ diff --git a/openresty/1.27.1.2-0-1-focal/build/tmp/openresty-1.27.1.2.tar.gz b/openresty/1.27.1.2-0-1-focal/build/tmp/openresty-1.27.1.2.tar.gz deleted file mode 100644 index b72356532..000000000 Binary files a/openresty/1.27.1.2-0-1-focal/build/tmp/openresty-1.27.1.2.tar.gz and /dev/null differ diff --git a/openresty/1.27.1.2-0-1-focal/build/tmp/openssl-3.4.1-sess_set_get_cb_yield.patch b/openresty/1.27.1.2-0-1-focal/build/tmp/openssl-3.4.1-sess_set_get_cb_yield.patch deleted file mode 100644 index 2c64ace30..000000000 --- a/openresty/1.27.1.2-0-1-focal/build/tmp/openssl-3.4.1-sess_set_get_cb_yield.patch +++ /dev/null @@ -1,209 +0,0 @@ -diff --git a/include/openssl/bio.h.in b/include/openssl/bio.h.in -index 440d838..8ff2c5d 100644 ---- a/include/openssl/bio.h.in -+++ b/include/openssl/bio.h.in -@@ -285,6 +285,8 @@ void BIO_clear_flags(BIO *b, int flags); - /* Returned from the accept BIO when an accept would have blocked */ - # define BIO_RR_ACCEPT 0x03 - -+# define BIO_RR_SSL_SESSION_LOOKUP 0x09 -+ - /* These are passed by the BIO callback */ - # define BIO_CB_FREE 0x01 - # define BIO_CB_READ 0x02 -diff --git a/include/openssl/ssl.h.in b/include/openssl/ssl.h.in -index 4bab2ac..b70b4fd 100644 ---- a/include/openssl/ssl.h.in -+++ b/include/openssl/ssl.h.in -@@ -909,6 +909,7 @@ __owur int SSL_extension_supported(unsigned int ext_type); - # define SSL_ASYNC_NO_JOBS 6 - # define SSL_CLIENT_HELLO_CB 7 - # define SSL_RETRY_VERIFY 8 -+# define SSL_SESS_LOOKUP 99 - - /* These will only be used when doing non-blocking IO */ - # define SSL_want_nothing(s) (SSL_want(s) == SSL_NOTHING) -@@ -919,6 +920,7 @@ __owur int SSL_extension_supported(unsigned int ext_type); - # define SSL_want_async(s) (SSL_want(s) == SSL_ASYNC_PAUSED) - # define SSL_want_async_job(s) (SSL_want(s) == SSL_ASYNC_NO_JOBS) - # define SSL_want_client_hello_cb(s) (SSL_want(s) == SSL_CLIENT_HELLO_CB) -+# define SSL_want_sess_lookup(s) (SSL_want(s) == SSL_SESS_LOOKUP) - - # define SSL_MAC_FLAG_READ_MAC_STREAM 1 - # define SSL_MAC_FLAG_WRITE_MAC_STREAM 2 -@@ -1215,6 +1217,8 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) - # define SSL_ERROR_WANT_ASYNC_JOB 10 - # define SSL_ERROR_WANT_CLIENT_HELLO_CB 11 - # define SSL_ERROR_WANT_RETRY_VERIFY 12 -+# define SSL_ERROR_WANT_SESSION_LOOKUP 99 -+# define SSL_ERROR_PENDING_SESSION 99 /* BoringSSL compatibility */ - - # ifndef OPENSSL_NO_DEPRECATED_3_0 - # define SSL_CTRL_SET_TMP_DH 3 -@@ -1740,6 +1744,7 @@ int SSL_SESSION_print(BIO *fp, const SSL_SESSION *ses); - int SSL_SESSION_print_keylog(BIO *bp, const SSL_SESSION *x); - int SSL_SESSION_up_ref(SSL_SESSION *ses); - void SSL_SESSION_free(SSL_SESSION *ses); -+SSL_SESSION *SSL_magic_pending_session_ptr(void); - __owur int i2d_SSL_SESSION(const SSL_SESSION *in, unsigned char **pp); - __owur int SSL_set_session(SSL *to, SSL_SESSION *session); - int SSL_CTX_add_session(SSL_CTX *ctx, SSL_SESSION *session); -diff --git a/ssl/bio_ssl.c b/ssl/bio_ssl.c -index ac65a39..3a4ffba 100644 ---- a/ssl/bio_ssl.c -+++ b/ssl/bio_ssl.c -@@ -140,6 +140,10 @@ static int ssl_read(BIO *b, char *buf, size_t size, size_t *readbytes) - BIO_set_retry_special(b); - retry_reason = BIO_RR_SSL_X509_LOOKUP; - break; -+ case SSL_ERROR_WANT_SESSION_LOOKUP: -+ BIO_set_retry_special(b); -+ retry_reason = BIO_RR_SSL_SESSION_LOOKUP; -+ break; - case SSL_ERROR_WANT_ACCEPT: - BIO_set_retry_special(b); - retry_reason = BIO_RR_ACCEPT; -@@ -208,6 +212,10 @@ static int ssl_write(BIO *b, const char *buf, size_t size, size_t *written) - BIO_set_retry_special(b); - retry_reason = BIO_RR_SSL_X509_LOOKUP; - break; -+ case SSL_ERROR_WANT_SESSION_LOOKUP: -+ BIO_set_retry_special(b); -+ retry_reason = BIO_RR_SSL_SESSION_LOOKUP; -+ break; - case SSL_ERROR_WANT_CONNECT: - BIO_set_retry_special(b); - retry_reason = BIO_RR_CONNECT; -@@ -368,6 +376,10 @@ static long ssl_ctrl(BIO *b, int cmd, long num, void *ptr) - BIO_set_retry_special(b); - BIO_set_retry_reason(b, BIO_RR_SSL_X509_LOOKUP); - break; -+ case SSL_ERROR_WANT_SESSION_LOOKUP: -+ BIO_set_retry_special(b); -+ BIO_set_retry_reason(b, BIO_RR_SSL_SESSION_LOOKUP); -+ break; - default: - break; - } -diff --git a/ssl/ssl_lib.c b/ssl/ssl_lib.c -index 295b719..fa25f77 100644 ---- a/ssl/ssl_lib.c -+++ b/ssl/ssl_lib.c -@@ -4713,6 +4713,8 @@ int ossl_ssl_get_error(const SSL *s, int i, int check_err) - return SSL_ERROR_WANT_ASYNC_JOB; - if (SSL_want_client_hello_cb(s)) - return SSL_ERROR_WANT_CLIENT_HELLO_CB; -+ if (SSL_want_sess_lookup(s)) -+ return SSL_ERROR_WANT_SESSION_LOOKUP; - - if ((sc->shutdown & SSL_RECEIVED_SHUTDOWN) && - (sc->s3.warn_alert == SSL_AD_CLOSE_NOTIFY)) -diff --git a/ssl/ssl_sess.c b/ssl/ssl_sess.c -index 69149de..9c1d48f 100644 ---- a/ssl/ssl_sess.c -+++ b/ssl/ssl_sess.c -@@ -20,6 +20,8 @@ - #include "ssl_local.h" - #include "statem/statem_local.h" - -+static const char g_pending_session_magic = 0; -+ - static void SSL_SESSION_list_remove(SSL_CTX *ctx, SSL_SESSION *s); - static void SSL_SESSION_list_add(SSL_CTX *ctx, SSL_SESSION *s); - static int remove_session_lock(SSL_CTX *ctx, SSL_SESSION *c, int lck); -@@ -525,6 +527,10 @@ SSL_SESSION *lookup_sess_in_cache(SSL_CONNECTION *s, - ret = s->session_ctx->get_session_cb(SSL_CONNECTION_GET_USER_SSL(s), - sess_id, sess_id_len, ©); - -+ if (ret == SSL_magic_pending_session_ptr()) { -+ return ret; /* Retry later */ -+ } -+ - if (ret != NULL) { - if (ret->not_resumable) { - /* If its not resumable then ignore this session */ -@@ -619,6 +625,9 @@ int ssl_get_prev_session(SSL_CONNECTION *s, CLIENTHELLO_MSG *hello) - try_session_cache = 1; - ret = lookup_sess_in_cache(s, hello->session_id, - hello->session_id_len); -+ if (ret == SSL_magic_pending_session_ptr()) { -+ return -2; /* Retry later */ -+ } - } - break; - case SSL_TICKET_NO_DECRYPT: -@@ -1094,6 +1103,11 @@ EVP_PKEY *SSL_SESSION_get0_peer_rpk(SSL_SESSION *s) - return s->peer_rpk; - } - -+SSL_SESSION *SSL_magic_pending_session_ptr(void) -+{ -+ return (SSL_SESSION *) &g_pending_session_magic; -+} -+ - int SSL_SESSION_set1_id_context(SSL_SESSION *s, const unsigned char *sid_ctx, - unsigned int sid_ctx_len) - { -diff --git a/ssl/statem/statem_srvr.c b/ssl/statem/statem_srvr.c -index 9f586b5..e42c1e3 100644 ---- a/ssl/statem/statem_srvr.c -+++ b/ssl/statem/statem_srvr.c -@@ -1695,6 +1695,7 @@ static int tls_early_post_process_client_hello(SSL_CONNECTION *s) - SSL_CTX *sctx = SSL_CONNECTION_GET_CTX(s); - SSL *ssl = SSL_CONNECTION_GET_SSL(s); - SSL *ussl = SSL_CONNECTION_GET_USER_SSL(s); -+ PACKET saved_ciphers; - - /* Finished parsing the ClientHello, now we can start processing it */ - /* Give the ClientHello callback a crack at things */ -@@ -1775,6 +1776,7 @@ static int tls_early_post_process_client_hello(SSL_CONNECTION *s) - } - - s->hit = 0; -+ saved_ciphers = clienthello->ciphersuites; - - if (!ssl_cache_cipherlist(s, &clienthello->ciphersuites, - clienthello->isv2) || -@@ -1874,6 +1876,10 @@ static int tls_early_post_process_client_hello(SSL_CONNECTION *s) - } else if (i == -1) { - /* SSLfatal() already called */ - goto err; -+ } else if (i == -2) { -+ clienthello->ciphersuites = saved_ciphers; -+ s->rwstate = SSL_SESS_LOOKUP; -+ goto retry; - } else { - /* i == 0 */ - if (!ssl_get_new_session(s, 1)) { -@@ -1881,6 +1887,7 @@ static int tls_early_post_process_client_hello(SSL_CONNECTION *s) - goto err; - } - } -+ s->rwstate = SSL_NOTHING; - } - - if (SSL_CONNECTION_IS_TLS13(s)) { -@@ -2134,6 +2141,11 @@ static int tls_early_post_process_client_hello(SSL_CONNECTION *s) - s->clienthello = NULL; - - return 0; -+ -+retry: -+ sk_SSL_CIPHER_free(ciphers); -+ sk_SSL_CIPHER_free(scsvs); -+ return -1; - } - - /* -diff --git a/util/libssl.num b/util/libssl.num -index f1daba1..9b36444 100644 ---- a/util/libssl.num -+++ b/util/libssl.num -@@ -7,6 +7,7 @@ SSL_copy_session_id 6 3_0_0 EXIST::FUNCTION: - SSL_CTX_set_srp_password 7 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0,SRP - SSL_shutdown 8 3_0_0 EXIST::FUNCTION: - SSL_CTX_set_msg_callback 9 3_0_0 EXIST::FUNCTION: -+SSL_magic_pending_session_ptr 10 3_0_0 EXIST::FUNCTION: - SSL_SESSION_get0_ticket 11 3_0_0 EXIST::FUNCTION: - SSL_get1_supported_ciphers 12 3_0_0 EXIST::FUNCTION: - SSL_state_string_long 13 3_0_0 EXIST::FUNCTION: diff --git a/openresty/1.27.1.2-0-1-focal/build/tmp/openssl-3.4.1.tar.gz b/openresty/1.27.1.2-0-1-focal/build/tmp/openssl-3.4.1.tar.gz deleted file mode 100644 index a4ad91636..000000000 Binary files a/openresty/1.27.1.2-0-1-focal/build/tmp/openssl-3.4.1.tar.gz and /dev/null differ diff --git a/openresty/1.27.1.2-0-1-focal/build/tmp/pcre2-10.44.tar.gz b/openresty/1.27.1.2-0-1-focal/build/tmp/pcre2-10.44.tar.gz deleted file mode 100644 index d6b2f8e0d..000000000 Binary files a/openresty/1.27.1.2-0-1-focal/build/tmp/pcre2-10.44.tar.gz and /dev/null differ diff --git a/openresty/1.27.1.2-0-1-focal/build/tmp/pre.sh b/openresty/1.27.1.2-0-1-focal/build/tmp/pre.sh deleted file mode 100644 index e69de29bb..000000000 diff --git a/openresty/1.27.1.2-0-1-focal/conf/default/00.default.conf b/openresty/1.27.1.2-0-1-focal/conf/default/00.default.conf deleted file mode 100644 index 484e03e98..000000000 --- a/openresty/1.27.1.2-0-1-focal/conf/default/00.default.conf +++ /dev/null @@ -1,9 +0,0 @@ -server { - listen 80 default_server; - listen [::]:80 default_server; - - server_name _; - - index 404.html; - root /usr/share/nginx/html; -} diff --git a/openresty/1.27.1.2-0-1-focal/conf/default/default.conf b/openresty/1.27.1.2-0-1-focal/conf/default/default.conf deleted file mode 100644 index da6594f8f..000000000 --- a/openresty/1.27.1.2-0-1-focal/conf/default/default.conf +++ /dev/null @@ -1,18 +0,0 @@ -server { - listen 80 ; - server_name 127.0.0.1; - charset utf-8; - default_type text/html; - - location ~ /.well-known/acme-challenge { - allow all; - root /usr/share/nginx/html; - } - - location /nginx_status { - stub_status on; - access_log off; - } - - root /usr/share/nginx/html; -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/conf/fastcgi-php.conf b/openresty/1.27.1.2-0-1-focal/conf/fastcgi-php.conf deleted file mode 100644 index 0f3d134d0..000000000 --- a/openresty/1.27.1.2-0-1-focal/conf/fastcgi-php.conf +++ /dev/null @@ -1,13 +0,0 @@ -# regex to split $uri to $fastcgi_script_name and $fastcgi_path -fastcgi_split_path_info ^(.+\.php)(/.+)$; - -# Check that the PHP script exists before passing it -try_files $fastcgi_script_name =404; - -# Bypass the fact that try_files resets $fastcgi_path_info -# see: http://trac.nginx.org/nginx/ticket/321 -set $path_info $fastcgi_path_info; -#fastcgi_param PATH_INFO $path_info; -fastcgi_read_timeout 3600; - -fastcgi_index index.php; diff --git a/openresty/1.27.1.2-0-1-focal/conf/fastcgi_params b/openresty/1.27.1.2-0-1-focal/conf/fastcgi_params deleted file mode 100644 index 57dc95a77..000000000 --- a/openresty/1.27.1.2-0-1-focal/conf/fastcgi_params +++ /dev/null @@ -1,32 +0,0 @@ -fastcgi_param QUERY_STRING $query_string; -fastcgi_param REQUEST_METHOD $request_method; -fastcgi_param CONTENT_TYPE $content_type; -fastcgi_param CONTENT_LENGTH $content_length; - -fastcgi_param SCRIPT_NAME $fastcgi_script_name; -fastcgi_param REQUEST_URI $request_uri; -fastcgi_param DOCUMENT_URI $document_uri; -fastcgi_param DOCUMENT_ROOT $document_root; -fastcgi_param SERVER_PROTOCOL $server_protocol; -fastcgi_param REQUEST_SCHEME $scheme; -fastcgi_param HTTPS $https if_not_empty; - -fastcgi_param GATEWAY_INTERFACE CGI/1.1; -fastcgi_param SERVER_SOFTWARE nginx; - -fastcgi_param REMOTE_ADDR $remote_addr; -fastcgi_param REMOTE_PORT $remote_port; -fastcgi_param SERVER_ADDR $server_addr; -fastcgi_param SERVER_PORT $server_port; -fastcgi_param SERVER_NAME $server_name; - -# PHP only, required if PHP was built with --enable-force-cgi-redirect -fastcgi_param REDIRECT_STATUS 200; - -fastcgi_param HTTP_HOST $host; -fastcgi_param HTTP_USER_AGENT $http_user_agent; -fastcgi_param HTTP_REFERER $http_referer; -fastcgi_param HTTP_COOKIE $http_cookie; -fastcgi_param HTTP_X_FORWARDED_FOR $proxy_add_x_forwarded_for; -fastcgi_param PATH_INFO $fastcgi_path_info; -fastcgi_param REQUEST_TIME $msec; \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/conf/mime.types b/openresty/1.27.1.2-0-1-focal/conf/mime.types deleted file mode 100644 index 065d89186..000000000 --- a/openresty/1.27.1.2-0-1-focal/conf/mime.types +++ /dev/null @@ -1,98 +0,0 @@ -types { - text/html html htm shtml; - text/css css; - text/xml xml; - image/gif gif; - image/jpeg jpeg jpg; - application/javascript js; - application/atom+xml atom; - application/rss+xml rss; - - text/mathml mml; - text/plain txt; - text/vnd.sun.j2me.app-descriptor jad; - text/vnd.wap.wml wml; - text/x-component htc; - - image/avif avif; - image/png png; - image/svg+xml svg svgz; - image/tiff tif tiff; - image/vnd.wap.wbmp wbmp; - image/webp webp; - image/x-icon ico; - image/x-jng jng; - image/x-ms-bmp bmp; - - font/woff woff; - font/woff2 woff2; - - application/java-archive jar war ear; - application/json json; - application/mac-binhex40 hqx; - application/msword doc; - application/pdf pdf; - application/postscript ps eps ai; - application/rtf rtf; - application/vnd.apple.mpegurl m3u8; - application/vnd.google-earth.kml+xml kml; - application/vnd.google-earth.kmz kmz; - application/vnd.ms-excel xls; - application/vnd.ms-fontobject eot; - application/vnd.ms-powerpoint ppt; - application/vnd.oasis.opendocument.graphics odg; - application/vnd.oasis.opendocument.presentation odp; - application/vnd.oasis.opendocument.spreadsheet ods; - application/vnd.oasis.opendocument.text odt; - application/vnd.openxmlformats-officedocument.presentationml.presentation - pptx; - application/vnd.openxmlformats-officedocument.spreadsheetml.sheet - xlsx; - application/vnd.openxmlformats-officedocument.wordprocessingml.document - docx; - application/vnd.wap.wmlc wmlc; - application/wasm wasm; - application/x-7z-compressed 7z; - application/x-cocoa cco; - application/x-java-archive-diff jardiff; - application/x-java-jnlp-file jnlp; - application/x-makeself run; - application/x-perl pl pm; - application/x-pilot prc pdb; - application/x-rar-compressed rar; - application/x-redhat-package-manager rpm; - application/x-sea sea; - application/x-shockwave-flash swf; - application/x-stuffit sit; - application/x-tcl tcl tk; - application/x-x509-ca-cert der pem crt; - application/x-xpinstall xpi; - application/xhtml+xml xhtml; - application/xspf+xml xspf; - application/zip zip; - - application/octet-stream bin exe dll; - application/octet-stream deb; - application/octet-stream dmg; - application/octet-stream iso img; - application/octet-stream msi msp msm; - - audio/midi mid midi kar; - audio/mpeg mp3; - audio/ogg ogg; - audio/x-m4a m4a; - audio/x-realaudio ra; - - video/3gpp 3gpp 3gp; - video/mp2t ts; - video/mp4 mp4; - video/mpeg mpeg mpg; - video/quicktime mov; - video/webm webm; - video/x-flv flv; - video/x-m4v m4v; - video/x-mng mng; - video/x-ms-asf asx asf; - video/x-ms-wmv wmv; - video/x-msvideo avi; -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/conf/nginx.conf b/openresty/1.27.1.2-0-1-focal/conf/nginx.conf deleted file mode 100644 index a97217d27..000000000 --- a/openresty/1.27.1.2-0-1-focal/conf/nginx.conf +++ /dev/null @@ -1,50 +0,0 @@ -user root; -worker_processes auto; -error_log /var/log/nginx/error.log notice; -error_log /dev/stdout notice; -pid /var/run/nginx.pid; -worker_rlimit_nofile 51200; - -events { - use epoll; - worker_connections 5120; - multi_accept on; -} - -http { - include mime.types; - default_type application/octet-stream; - log_format main '$remote_addr - $remote_user [$time_local] "$request" ' - '$status $body_bytes_sent "$http_referer" ' - '"$http_user_agent" "$http_x_forwarded_for"'; - access_log /var/log/nginx/access.log main; - access_log /dev/stdout main; - - server_tokens off; - sendfile on; - tcp_nopush on; - tcp_nodelay on; - - server_names_hash_bucket_size 512; - client_header_buffer_size 32k; - client_max_body_size 50m; - keepalive_timeout 60; - keepalive_requests 100; - - gzip on; - gzip_min_length 1k; - gzip_buffers 4 16k; - gzip_http_version 1.1; - gzip_comp_level 2; - gzip_types text/plain application/javascript application/x-javascript text/javascript text/css application/xml; - gzip_vary on; - gzip_proxied expired no-cache no-store private auth; - gzip_disable "MSIE [1-6]\."; - - limit_conn_zone $binary_remote_addr zone=perip:10m; - limit_conn_zone $server_name zone=perserver:10m; - - include /usr/local/openresty/nginx/conf/conf.d/*.conf; - include /usr/local/openresty/nginx/conf/default/*.conf; - include /usr/local/openresty/1pwaf/data/conf/waf.conf; -} \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/conf/ssl/root_ssl.conf b/openresty/1.27.1.2-0-1-focal/conf/ssl/root_ssl.conf deleted file mode 100644 index 0fe8653d8..000000000 --- a/openresty/1.27.1.2-0-1-focal/conf/ssl/root_ssl.conf +++ /dev/null @@ -1,8 +0,0 @@ -ssl_certificate /usr/local/openresty/nginx/conf/ssl/fullchain.pem; -ssl_certificate_key /usr/local/openresty/nginx/conf/ssl/privkey.pem; -ssl_protocols TLSv1.2 TLSv1.3; -ssl_ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:!aNULL:!eNULL:!EXPORT:!DSS:!DES:!RC4:!3DES:!MD5:!PSK:!KRB5:!SRP:!CAMELLIA:!SEED; -ssl_prefer_server_ciphers off; -ssl_session_cache shared:SSL:10m; -ssl_session_timeout 10m; -add_header Strict-Transport-Security "max-age=31536000"; \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/data.yml b/openresty/1.27.1.2-0-1-focal/data.yml deleted file mode 100755 index e9ba51544..000000000 --- a/openresty/1.27.1.2-0-1-focal/data.yml +++ /dev/null @@ -1,46 +0,0 @@ -additionalProperties: - supportVersion: 2.0 - formFields: - - default: 80 - envKey: PANEL_APP_PORT_HTTP - labelEn: HTTP Port - labelZh: HTTP 端口 - required: true - type: number - label: - en: HTTP Port - ja: HTTP ポート - ms: Port HTTP - pt-br: Porta HTTP - ru: HTTP Порт - zh-Hant: HTTP 端口 - zh: HTTP 端口 - - default: 443 - envKey: PANEL_APP_PORT_HTTPS - labelEn: HTTPS Port - labelZh: HTTPS 端口 - required: true - type: number - label: - en: HTTPS Port - ja: HTTPS ポート - ms: Port HTTPS - pt-br: Porta HTTPS - ru: HTTPS Порт - zh-Hant: HTTPS 端口 - zh: HTTPS 端口 - - default: www - envKey: WEBSITE_DIR - labelEn: Website Dir - labelZh: 网站目录(默认网站目录会放置在 1Panel 安装目录下,如需修改请以绝对路径填写) - required: true - type: text - label: - en: Website directory (The website directory will be placed under the 1Panel installation directory) - ja: ウェブサイトディレクトリ(ウェブサイトディレクトリは 1Panel インストールディレクトリに配置されます) - ms: Direktori laman web (Direktori laman web akan diletakkan di bawah direktori pemasangan 1Panel) - pt-br: Diretório do site (O diretório do site será colocado sob o diretório de instalação do 1Panel) - ru: Директория сайта (Директория сайта будет размещена в каталоге установки 1Panel) - zh-Hant: 網站目錄(網站目錄將放置在 1Panel 安裝目錄下) - zh: 网站目录(默认网站目录会放置在 1Panel 安装目录下,如需修改请以绝对路径填写) - diff --git a/openresty/1.27.1.2-0-1-focal/docker-compose.yml b/openresty/1.27.1.2-0-1-focal/docker-compose.yml deleted file mode 100644 index 1939a5d8e..000000000 --- a/openresty/1.27.1.2-0-1-focal/docker-compose.yml +++ /dev/null @@ -1,28 +0,0 @@ -services: - openresty: - build: - context: ./build - args: - - PANEL_OPENRESTY_VERSION=1.27.1.2-0-1-focal - - RESTY_CONFIG_OPTIONS_MORE=${RESTY_CONFIG_OPTIONS_MORE} - - RESTY_ADD_PACKAGE_BUILDDEPS=${RESTY_ADD_PACKAGE_BUILDDEPS} - - CONTAINER_PACKAGE_URL=${CONTAINER_PACKAGE_URL} - image: 1panel/openresty:1.27.1.2-0-1-focal - container_name: ${CONTAINER_NAME} - restart: always - network_mode: host - volumes: - - ./conf/nginx.conf:/usr/local/openresty/nginx/conf/nginx.conf - - ./conf/fastcgi_params:/usr/local/openresty/nginx/conf/fastcgi_params - - ./conf/fastcgi-php.conf:/usr/local/openresty/nginx/conf/fastcgi-php.conf - - ./conf/mime.types:/usr/local/openresty/nginx/conf/mime.types - - ./conf/default:/usr/local/openresty/nginx/conf/default/ - - ./conf/ssl:/usr/local/openresty/nginx/conf/ssl/ - - ./log:/var/log/nginx - - ./root:/usr/share/nginx/html - - /etc/localtime:/etc/localtime - - ./1pwaf/data:/usr/local/openresty/1pwaf/data - - ${WEBSITE_DIR}:/www - - ${WEBSITE_DIR}/conf.d:/usr/local/openresty/nginx/conf/conf.d/ - labels: - createdBy: "Apps" diff --git a/openresty/1.27.1.2-0-1-focal/root/404.html b/openresty/1.27.1.2-0-1-focal/root/404.html deleted file mode 100644 index d75ed7812..000000000 --- a/openresty/1.27.1.2-0-1-focal/root/404.html +++ /dev/null @@ -1,6 +0,0 @@ - -404 Not Found - -

404 Not Found

-
nginx
- \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/root/index.html b/openresty/1.27.1.2-0-1-focal/root/index.html deleted file mode 100644 index 7ad10b812..000000000 --- a/openresty/1.27.1.2-0-1-focal/root/index.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - 恭喜,站点创建成功! - - - -
-

恭喜, 站点创建成功!

-

这是默认index.html,本页面由系统自动生成

-
    -
  • 您可以修改、删除或覆盖本页面
  • -
-
- - \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/root/stop/index.html b/openresty/1.27.1.2-0-1-focal/root/stop/index.html deleted file mode 100644 index 27234c626..000000000 --- a/openresty/1.27.1.2-0-1-focal/root/stop/index.html +++ /dev/null @@ -1,33 +0,0 @@ - - - - - 抱歉,站点已暂停 - - - - -
-

抱歉!该站点已经被管理员停止运行,请联系管理员了解详情!

-
- - \ No newline at end of file diff --git a/openresty/1.27.1.2-0-1-focal/scripts/init.sh b/openresty/1.27.1.2-0-1-focal/scripts/init.sh deleted file mode 100644 index 9c981ce08..000000000 --- a/openresty/1.27.1.2-0-1-focal/scripts/init.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash - -source ./.env - -sed -i -E "s/(listen[[:space:]]+)80([[:space:]]*default_server;)/\1${PANEL_APP_PORT_HTTP}\2/" conf/default/00.default.conf -sed -i -E "s/(listen[[:space:]]+)\[::]:80([[:space:]]*default_server;)/\1\[::]:${PANEL_APP_PORT_HTTP}\2/" conf/default/00.default.conf - -sed -i -E "s/(listen[[:space:]]+)(80)([[:space:]]*;)/\1${PANEL_APP_PORT_HTTP}\3/" conf/default/default.conf \ No newline at end of file diff --git a/openresty/README.md b/openresty/README.md deleted file mode 100644 index a675aeeb2..000000000 --- a/openresty/README.md +++ /dev/null @@ -1,33 +0,0 @@ -# OpenResty - -OpenResty 是一个基于 Nginx 的高性能 Web 应用服务器,它将 Nginx 与 Lua 编程语言集成在一起,提供了强大的功能和灵活性。 - -## 主要功能: - -### 高性能代理服务器 - -OpenResty 基于 Nginx 构建,继承了 Nginx 强大的反向代理和负载均衡功能。它能够处理大量并发请求,快速转发流量到后端服务器,确保网站的高性能和可用性。 - -### 动态内容生成 - -通过集成 Lua 编程语言,OpenResty 允许开发人员在配置文件中编写动态内容生成逻辑。这意味着您可以使用 Lua 脚本来处理请求、生成响应,甚至连接到外部数据源,从而创建高度定制化的 Web 应用程序。 - -### 高级 URL 路由 - -OpenResty 支持灵活的 URL 路由和重写规则。您可以根据请求的 URL 对流量进行定向、分发和过滤,以满足不同的业务需求。这有助于构建 RESTful API 或处理复杂的 URL 映射。 - -### 缓存和性能优化 - -OpenResty 提供了强大的缓存功能,可以缓存静态资源或动态生成的内容,从而显著提高网站的响应速度。它还支持压缩、负载均衡、连接池等性能优化功能,确保最佳的用户体验。 - -### 安全性和访问控制 - -通过 Nginx 的安全模块和 Lua 编程,OpenResty 提供了多层次的安全性控制,包括防止恶意请求、DDoS 攻击和访问控制列表。它还支持 SSL/TLS 加密,保护数据传输的安全性。 - -### 第三方模块和插件 - -OpenResty 社区和生态系统丰富,有许多第三方模块和插件可供选择,包括缓存、反爬虫、访问日志、认证等。这些扩展功能可以根据需求轻松集成到 OpenResty 中。 - -### 轻量级和可扩展 - -OpenResty 采用模块化设计,使得它非常轻量级且易于扩展。您可以根据需要选择性地启用或禁用功能模块,以满足不同的应用场景。 \ No newline at end of file diff --git a/openresty/README_en.md b/openresty/README_en.md deleted file mode 100644 index 87fab4899..000000000 --- a/openresty/README_en.md +++ /dev/null @@ -1,33 +0,0 @@ -# OpenResty - -OpenResty is a high-performance web application server based on Nginx. It integrates Nginx with the Lua programming language, providing powerful features and flexibility. - -## Main Features - -### High-Performance Proxy Server - -OpenResty is built on Nginx, inheriting Nginx's powerful reverse proxy and load balancing capabilities. It can handle a large number of concurrent requests, quickly forwarding traffic to backend servers, ensuring high performance and availability of the website. - -### Dynamic Content Generation - -By integrating the Lua programming language, OpenResty allows developers to write dynamic content generation logic in configuration files. This means you can use Lua scripts to handle requests, generate responses, and even connect to external data sources, creating highly customized web applications. - -### Advanced URL Routing - -OpenResty supports flexible URL routing and rewriting rules. You can direct, distribute, and filter traffic based on the requested URL to meet different business needs. This helps in building RESTful APIs or handling complex URL mappings. - -### Caching and Performance Optimization - -OpenResty provides powerful caching capabilities, which can cache static resources or dynamically generated content, significantly improving the response speed of the website. It also supports compression, load balancing, connection pooling, and other performance optimization features to ensure the best user experience. - -### Security and Access Control - -Through Nginx's security modules and Lua programming, OpenResty provides multi-layered security controls, including protection against malicious requests, DDoS attacks, and access control lists. It also supports SSL/TLS encryption to ensure the security of data transmission. - -### Third-Party Modules and Plugins - -The OpenResty community and ecosystem are rich, with many third-party modules and plugins available, including caching, anti-crawling, access logging, authentication, and more. These extended features can be easily integrated into OpenResty as needed. - -### Lightweight and Extensible - -OpenResty adopts a modular design, making it very lightweight and easy to extend. You can selectively enable or disable functional modules as needed to meet different application scenarios. diff --git a/openresty/data.yml b/openresty/data.yml deleted file mode 100755 index 7b182a2c2..000000000 --- a/openresty/data.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: OpenResty -tags: - - Web 服务器 -title: 基于 NGINX 和 LuaJIT 的 Web 平台 -description: 基于 NGINX 和 LuaJIT 的 Web 平台 -additionalProperties: - key: openresty - name: OpenResty - tags: - - Server - shortDescZh: 基于 NGINX 和 LuaJIT 的 Web 平台 - shortDescEn: High performance web platform based on Nginx and LuaJIT - description: - en: Web Platform Based on NGINX and LuaJIT - ja: NGINX と LuaJIT に基づく Web プラットフォーム - ms: Platform Web Berdasarkan NGINX dan LuaJIT - pt-br: Plataforma Web Baseada em NGINX e LuaJIT - ru: Веб-платформа на основе NGINX и LuaJIT - ko: NGINX 및 LuaJIT 기반 웹 플랫폼 - zh-Hant: 基於 NGINX 和 LuaJIT 的 Web 平台 - zh: 基于 NGINX 和 LuaJIT 的 Web 平台 - type: runtime - crossVersionUpdate: true - limit: 1 - recommend: 1 - website: https://openresty.org - github: https://github.com/openresty/openresty - document: http://openresty.org/cn/getting-started.html - architectures: - - amd64 - - arm64 \ No newline at end of file diff --git a/openresty/logo.png b/openresty/logo.png deleted file mode 100644 index 732f8df42..000000000 Binary files a/openresty/logo.png and /dev/null differ diff --git a/openvpn/README.md b/openvpn/README.md deleted file mode 100644 index 2a66a9c79..000000000 --- a/openvpn/README.md +++ /dev/null @@ -1,10 +0,0 @@ -# 使用说明 - -## 管理界面 - -- 管理界面地址:`https://IP:控制台端口/admin` -- 默认用户:`openvpn` -- 密码:`可以在 Docker 容器日志中找到(首次初始化运行时生成)` - -> 可以通过查找 pass 关键字获取初始密码 -类似:`Auto-generated pass = "WHjoYsAd9Ha9m". Setting in db...` diff --git a/openvpn/README_en.md b/openvpn/README_en.md deleted file mode 100644 index b5b5e35e7..000000000 --- a/openvpn/README_en.md +++ /dev/null @@ -1,8 +0,0 @@ -# Usage Instructions - -## Management Interface -- Management interface URL: `https://IP:ControlPanelPort/admin` -- Default username: `openvpn` -- Password: Can be found in the Docker container logs (generated during the first initialization run). - -> You can search for the keyword `pass` to retrieve the initial password, e.g., `Auto-generated pass = "WHjoYsAd9Ha9m". Setting in db...` \ No newline at end of file diff --git a/openvpn/data.yml b/openvpn/data.yml deleted file mode 100644 index b974bb9ea..000000000 --- a/openvpn/data.yml +++ /dev/null @@ -1,33 +0,0 @@ -name: OpenVPN -tags: - - 实用工具 - - 安全 -title: 开源 VPN 守护进程 -description: 开源 VPN 守护进程 -additionalProperties: - key: openvpn - name: OpenVPN - tags: - - Tool - - Security - shortDescZh: 开源 VPN 守护进程 - shortDescEn: Open source VPN daemon - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://openvpn.net/ - github: https://github.com/OpenVPN/openvpn - document: https://openvpn.net/access-server-manual/introduction/ - description: - en: Open source VPN daemon - zh: 开源 VPN 守护进程 - zh-Hant: 開源 VPN 守護進程 - ja: オープンソースの VPN デーモン - ms: Daemon VPN sumber terbuka - pt-br: Daemon VPN de código aberto - ru: Открытый демон VPN - ko: 오픈 소스 VPN 데몬 - architectures: - - amd64 - - arm64 diff --git a/openvpn/latest/data.yml b/openvpn/latest/data.yml deleted file mode 100644 index 8884220b1..000000000 --- a/openvpn/latest/data.yml +++ /dev/null @@ -1,53 +0,0 @@ -additionalProperties: - formFields: - - default: 943 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Console Port - labelZh: 控制台端口 - label: - en: Console Port - ja: コンソールポート - ms: Port Konsol - pt-br: Porta do Console - ru: Порт консоли - ko: 콘솔 포트 - zh: 控制台端口 - zh-Hant: 控制台埠 - required: true - rule: paramPort - type: number - - default: 443 - edit: true - envKey: PANEL_APP_PORT_HTTPS - labelEn: HTTPS Port - labelZh: HTTPS 端口 - label: - en: HTTPS Port - ja: HTTPSポート - ms: Port HTTPS - pt-br: Porta HTTPS - ru: HTTPS-порт - ko: HTTPS 포트 - zh: HTTPS 端口 - zh-Hant: HTTPS 埠 - required: true - rule: paramPort - type: number - - default: 1194 - edit: true - envKey: PANEL_APP_PORT_UDP - labelEn: UDP Port - labelZh: UDP 端口 - label: - en: UDP Port - ja: UDPポート - ms: Port UDP - pt-br: Porta UDP - ru: UDP-порт - ko: UDP 포트 - zh: UDP 端口 - zh-Hant: UDP 埠 - required: true - rule: paramPort - type: number diff --git a/openvpn/latest/docker-compose.yml b/openvpn/latest/docker-compose.yml deleted file mode 100644 index 81186f666..000000000 --- a/openvpn/latest/docker-compose.yml +++ /dev/null @@ -1,20 +0,0 @@ -services: - openvpn: - image: openvpn/openvpn-as:latest - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTP}:943" - - "${PANEL_APP_PORT_HTTPS}:443" - - "${PANEL_APP_PORT_UDP}:1194/udp" - cap_add: - - NET_ADMIN - volumes: - - "./data:/openvpn" - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/openvpn/logo.png b/openvpn/logo.png deleted file mode 100644 index 385bfd2d2..000000000 Binary files a/openvpn/logo.png and /dev/null differ diff --git a/palworld-server-tool/0.9.9/data.yml b/palworld-server-tool/0.9.9/data.yml deleted file mode 100644 index 676cbe10d..000000000 --- a/palworld-server-tool/0.9.9/data.yml +++ /dev/null @@ -1,242 +0,0 @@ -additionalProperties: - formFields: - - default: '8080' - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh-Hant: 埠 - zh: 端口 - required: true - rule: paramPort - type: number - - default: 'WEB_PASSWORD' - edit: true - envKey: WEB_PASSWORD - labelEn: WEB Admin Password - labelZh: Web 界面的管理员模式密码 - label: - en: WEB Admin Password - ja: WEB 管理者パスワード - ms: Kata Laluan Admin WEB - pt-br: Senha de Administrador WEB - ru: Пароль администратора WEB - ko: 웹 관리자 비밀번호 - zh-hant: WEB 管理員密碼 - zh: Web 界面的管理员模式密码 - required: true - type: text - - default: '60' - edit: true - envKey: TASK_SYNC_INTERVAL - labelEn: Sync interval - labelZh: 请求服务器同步玩家在线数据的间隔 - label: - en: Sync interval - ja: 同期インターバル - ms: Selang masa penyegerakan - pt-br: Interval de sincronização - ru: Интервал синхронизации - ko: 동기화 간격 - zh-hant: 同步間隔 - zh: 请求服务器同步玩家在线数据的间隔 - required: true - type: number - - default: 'false' - edit: true - envKey: TASK_PLAYER_LOGGING - labelEn: Enable players login/logout message - labelZh: 玩家进入/离开服务器是否通知 - label: - en: Enable players login/logout message - ja: プレイヤーのログイン/ログアウトメッセージを有効にする - ms: Mengaktifkan mesej log masuk/keluar pemain - pt-br: Habilitar mensagem de login/logout dos jogadores - ru: Включить сообщение о входе/выходе игроков - ko: 플레이어 로그인/로그아웃 메시지 활성화 - zh-hant: 啟用玩家登入/登出消息 - zh: 玩家进入/离开服务器是否通知 - required: true - type: select - values: - - label: "true" - value: "true" - - label: "false" - value: "false" - - default: '玩家 {username} 加入服务器!\n当前在线人数: {online_num}' - edit: true - envKey: TASK_PLAYER_LOGIN_MESSAGE - labelEn: Login message - labelZh: 玩家进入服务器消息 - label: - en: Login message - ja: ログインメッセージ - ms: Mesej log masuk - pt-br: Mensagem de login - ru: Сообщение о входе - ko: 로그인 메시지 - zh-hant: 登入訊息 - zh: 玩家进入服务器消息 - required: false - type: text - - default: '玩家 {username} 离开服务器!\n当前在线人数: {online_num}' - edit: true - envKey: TASK_PLAYER_LOGOUT_MESSAGE - labelEn: Logout message - labelZh: 玩家离开服务器消息 - label: - en: Logout message - ja: ログアウトメッセージ - ms: Mesej log keluar - pt-br: Mensagem de logout - ru: Сообщение о выходе - ko: 로그아웃 메시지 - zh-hant: 登出訊息 - zh: 玩家离开服务器消息 - required: false - type: text - - default: ':25575' - edit: true - envKey: RCON_ADDRESS - labelEn: RCON Address - labelZh: RCON 地址 - label: - en: RCON Address - ja: RCON アドレス - ms: Alamat RCON - pt-br: Endereço RCON - ru: Адрес RCON - ko: RCON 주소 - zh-hant: RCON 地址 - zh: RCON 地址 - required: true - type: text - - default: 'http://:8212' - edit: true - envKey: REST_ADDRESS - labelEn: REST API Address - labelZh: REST API 地址 - label: - en: REST API Address - ja: REST API アドレス - ms: Alamat API REST - pt-br: Endereço da API REST - ru: Адрес REST API - ko: REST API 주소 - zh-hant: REST API 地址 - zh: REST API 地址 - required: true - type: text - - default: 'ADMIN_PASSWORD' - edit: true - envKey: ADMIN_PASSWORD - labelEn: Admin Password - labelZh: 服务器配置文件中的 Admin Password - label: - en: Admin Password - ja: 管理者パスワード - ms: Kata Laluan Pentadbir - pt-br: Senha de Administrador - ru: Пароль администратора - ko: 관리자 비밀번호 - zh-hant: 管理員密碼 - zh: 服务器配置文件中的 Admin Password - required: true - type: text - - default: 'false' - edit: true - envKey: RCON_USE_BASE64 - labelEn: Enable PalGuard Base64 RCON - labelZh: 是否开启 PalGuard 的 Base64 RCON - label: - en: Enable PalGuard Base64 RCON - ja: PalGuard Base64 RCONを有効にする - ms: Aktifkan PalGuard Base64 RCON - pt-br: Habilitar PalGuard Base64 RCON - ru: Включить PalGuard Base64 RCON - ko: PalGuard Base64 RCON 활성화 - zh-hant: 啟用 PalGuard Base64 RCON - zh: 是否开启 PalGuard 的 Base64 RCON - required: true - type: select - values: - - label: "true" - value: "true" - - label: "false" - value: "false" - - default: '/opt/1panel/apps/palworld/palworld/data/Pal/Saved' - edit: true - envKey: PALWORLD_SAVE_PATH - labelEn: Palworld External Save Path - labelZh: 帕鲁服务器外部存档路径 - label: - en: Palworld External Save Path - ja: Palworld 外部保存パス - ms: Laluan Simpan Luaran Palworld - pt-br: Caminho de salvamento externo do Palworld - ru: Внешний путь сохранения Palworld - ko: Palworld 외부 저장 경로 - zh-hant: Palworld 外部儲存路徑 - zh: 帕鲁服务器外部存档路径 - required: true - type: text - - default: '600' - edit: true - envKey: SAVE_SYNC_INTERVAL - labelEn: Save Sync Interval - labelZh: 存档同步间隔 - label: - en: Save Sync Interval - ja: 同期インターバルを保存 - ms: Simpan Selang Penyegerakan - pt-br: Salvar Interval de Sincronização - ru: Сохранить интервал синхронизации - ko: 저장 동기화 간격 - zh-hant: 儲存同步間隔 - zh: 存档同步间隔 - required: true - type: number - - default: '0' - edit: true - envKey: SAVE_BACKUP_INTERVAL - labelEn: Save Backup Interval - labelZh: 存档备份间隔 - label: - en: Save Backup Interval - ja: バックアップ保存間隔 - ms: Selang Simpan Salinan Sandar - pt-br: Interval de Salvamento de Backup - ru: Интервал сохранения резервной копии - ko: 백업 저장 간격 - zh-hant: 保存備份間隔 - zh: 存档备份间隔 - required: true - type: number - - default: 'false' - edit: true - envKey: MANAGE_KICK_NON_WHITELIST - labelEn: Automatically kick non-whitelisted players - labelZh: 非白名单玩家自动踢出 - label: - en: Automatically kick non-whitelisted players - ja: ホワイトリストにないプレイヤーを自動的に追い出す - ms: Secara automatik tendang pemain yang tidak tersenarai dalam senarai putih - pt-br: Expulsar automaticamente jogadores não incluídos na lista branca - ru: Автоматически выкидывать игроков, не в белом списке - ko: 화이트리스트에 없는 플레이어 자동 킥 - zh-hant: 自動踢出非白名單玩家 - zh: 非白名单玩家自动踢出 - required: true - type: select - values: - - label: "true" - value: "true" - - label: "false" - value: "false" \ No newline at end of file diff --git a/palworld-server-tool/0.9.9/docker-compose.yml b/palworld-server-tool/0.9.9/docker-compose.yml deleted file mode 100644 index 3148bab31..000000000 --- a/palworld-server-tool/0.9.9/docker-compose.yml +++ /dev/null @@ -1,32 +0,0 @@ -services: - pst: - image: jokerwho/palworld-server-tool:0.9.9 - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_HTTP}:8080 - volumes: - - ${PALWORLD_SAVE_PATH}:/app/save - environment: - - WEB__PASSWORD=${WEB_PASSWORD} - - TASK__SYNC_INTERVAL=${TASK_SYNC_INTERVAL} - - TASK__PLAYER_LOGGING=${TASK_PLAYER_LOGGING} - - TASK__PLAYER_LOGIN_MESSAGE=${TASK_PLAYER_LOGIN_MESSAGE} - - TASK__PLAYER_LOGOUT_MESSAGE=${TASK_PLAYER_LOGOUT_MESSAGE} - - RCON__ADDRESS=${RCON_ADDRESS} - - RCON__PASSWORD=${ADMIN_PASSWORD} - - RCON__USE_BASE64=${RCON_USE_BASE64} - - REST__ADDRESS=${REST_ADDRESS} - - REST__PASSWORD=${ADMIN_PASSWORD} - - SAVE__SYNC_INTERVAL=${SAVE_SYNC_INTERVAL} - - SAVE__BACKUP_INTERVAL=${SAVE_BACKUP_INTERVAL} - - MANAGE__KICK_NON_WHITELIST=${MANAGE_KICK_NON_WHITELIST} - - SAVE__DECODE_PATH=/app/sav_cli - - SAVE__PATH=/app/save - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/palworld-server-tool/README.md b/palworld-server-tool/README.md deleted file mode 100644 index 8d5a62abf..000000000 --- a/palworld-server-tool/README.md +++ /dev/null @@ -1,33 +0,0 @@ -# 幻兽帕鲁服务器管理工具 - -**通过可视化界面及 REST 接口管理幻兽帕鲁专用服务器。** - -基于 `Level.sav` 存档文件解析实现的功能及路线图: - -- [x] 完整玩家数据 -- [x] 玩家帕鲁数据 -- [x] 公会数据 - -基于官方提供的 RCON 命令(仅服务器可用的)实现功能: - -- [x] 获取服务器信息 -- [x] 在线玩家列表 -- [x] 踢出/封禁玩家 -- [x] 游戏内广播 -- [x] 平滑关闭服务器并广播消息 - -本工具使用 bbolt 单文件存储,将 RCON 和 Level.sav 文件的数据通过定时任务获取并保存,提供简单的可视化界面和 REST 接口和便于管理与开发。 - -Docker部署需要配置帕鲁服务器外部存档路径,安装时的需要填写对应的帕鲁服务器的外部存档路径。 - -请确保前提 [开启私服 RCON](https://github.com/zaigie/palworld-server-tool?tab=readme-ov-file#%E5%A6%82%E4%BD%95%E5%BC%80%E5%90%AF%E7%A7%81%E6%9C%8D-rcon) - -> 解析 `Level.sav` 存档的任务需要在短时间(<20s)耗费一定的系统内存(1GB~3GB),这部分内存会在执行完解析任务后释放,因此你至少需要确保你的服务器有充足的内存。若不满足可使用如下等方式 - -这里**默认为将 pst 工具和游戏服务器放在同一台物理机上**,在一些情况下你可能不想要它们部署在同一机器上: - -- 需要单独部署在其它服务器 -- 只需要部署在本地个人电脑 -- 游戏服务器性能较弱不满足,采用上述两种方案之一 - -**请参考 [pst-agent 部署教程](https://github.com/zaigie/palworld-server-tool/blob/main/README.agent.md) 或 [从 k8s-pod 同步存档](https://github.com/zaigie/palworld-server-tool?tab=readme-ov-file#%E4%BB%8E-k8s-pod-%E5%90%8C%E6%AD%A5%E5%AD%98%E6%A1%A3)** \ No newline at end of file diff --git a/palworld-server-tool/README_en.md b/palworld-server-tool/README_en.md deleted file mode 100644 index 3c3714a2a..000000000 --- a/palworld-server-tool/README_en.md +++ /dev/null @@ -1,40 +0,0 @@ -# Palworld Server Management Tool - -**Manage dedicated Palworld servers with a visual interface and REST API.** - -Features and Roadmap Based on `Level.sav` Save File Parsing: - -- [x] Complete player data -- [x] Player Pal data -- [x] Guild data - -Features Based on Official RCON Commands (Server-Only): - -- [x] Retrieve server information -- [x] View online player list -- [x] Kick/ban players -- [x] In-game broadcasting -- [x] Smoothly shut down the server with broadcasted messages - -This tool uses **bbolt** single-file storage to periodically fetch and store data from RCON and `Level.sav` files. - -It provides a simple visual interface and REST API, making management and development easier. - -When deploying with Docker, you need to configure the external save path for the Palworld server. During installation, you must provide the corresponding external save path for the Palworld server. - -Ensure that private server RCON is enabled by following the instructions in the [official guide](https://github.com/zaigie/palworld-server-tool?tab=readme-ov-file#%E5%A6%82%E4%BD%95%E5%BC%80%E5%90%AF%E7%A7%81%E6%9C%8D-rcon). - ---- - -Notes on Save File Parsing - -> Parsing the `Level.sav` save file temporarily requires a certain amount of system memory (1GB~3GB) for short periods (<20s). The memory is released after the task is completed. Ensure your server has sufficient memory. If not, consider the following alternatives: - -1. Deploy the tool on a separate server. -2. Use a local personal computer for deployment. -3. Opt for either of the above when the game server's performance is insufficient. - -By default, the **PST tool and the game server are assumed to run on the same physical machine**. For separate deployments, refer to the following resources: - -- [PST-Agent Deployment Guide](https://github.com/zaigie/palworld-server-tool/blob/main/README.agent.md) -- [Sync Save Files from k8s Pod](https://github.com/zaigie/palworld-server-tool?tab=readme-ov-file#%E4%BB%8E-k8s-pod-%E5%90%8C%E6%AD%A5%E5%AD%98%E6%A1%A3) \ No newline at end of file diff --git a/palworld-server-tool/data.yml b/palworld-server-tool/data.yml deleted file mode 100644 index c257fcdac..000000000 --- a/palworld-server-tool/data.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: Palworld Server Tool -tags: - - 休闲游戏 -title: 幻兽帕鲁服务可视化管理工具 -description: 幻兽帕鲁服务可视化管理工具 -additionalProperties: - key: palworld-server-tool - name: Palworld Server Tool - tags: - - Game - shortDescZh: 幻兽帕鲁服务可视化管理工具 - shortDescEn: Palworld service visual management tool - description: - en: Palworld service visual management tool - ja: Palworld サービスのビジュアル管理ツール - ms: Alat pengurusan visual perkhidmatan Palworld - pt-br: Ferramenta de gerenciamento visual de serviço do Palworld - ru: Инструмент визуального управления сервисами Palworld - ko: 팔월드 서비스 시각적 관리 도구 - zh-hant: Palworld 服務視覺管理工具 - zh: 幻兽帕鲁服务可视化管理工具 - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://github.com/zaigie/palworld-server-tool - github: https://github.com/zaigie/palworld-server-tool - document: https://github.com/zaigie/palworld-server-tool - architectures: - - amd64 - - arm64 \ No newline at end of file diff --git a/palworld-server-tool/logo.png b/palworld-server-tool/logo.png deleted file mode 100644 index 966c228fd..000000000 Binary files a/palworld-server-tool/logo.png and /dev/null differ diff --git a/palworld/1.4.0/data.yml b/palworld/1.4.0/data.yml deleted file mode 100644 index eb2e93cf5..000000000 --- a/palworld/1.4.0/data.yml +++ /dev/null @@ -1,332 +0,0 @@ -additionalProperties: - formFields: - - default: 8211 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh-Hant: 埠 - zh: 端口 - required: true - rule: paramPort - type: number - - default: 25575 - edit: true - envKey: PANEL_APP_PORT_RCON - labelEn: RCON Port - labelZh: RCON 端口 - label: - en: RCON Port - ja: RCON ポート - ms: Port RCON - pt-br: Porta RCON - ru: Порт RCON - ko: RCON 포트 - zh-hant: RCON 埠 - zh: RCON 端口 - required: true - rule: paramPort - type: number - - default: 8212 - edit: true - envKey: PANEL_APP_PORT_REST - labelEn: REST API Port - labelZh: REST API 端口 - label: - en: REST API Port - ja: REST API ポート - ms: Port REST API - pt-br: Porta REST API - ru: Порт REST API - ko: REST API 포트 - zh-Hant: REST API 埠 - zh: REST API 端口 - required: true - rule: paramPort - type: number - - default: 27015 - edit: true - envKey: PANEL_APP_PORT_QUERY - labelEn: Query port used to communicate with Steam servers - labelZh: Query 端口 (用于与 Steam 服务器通信的查询端口) - label: - en: Query port used to communicate with Steam servers - ja: Steam サーバーと通信するために使用されるクエリポート - ms: Port kueri yang digunakan untuk berkomunikasi dengan pelayan Steam - pt-br: Porta de consulta usada para se comunicar com servidores Steam - ru: Порт запроса, используемый для связи с серверами Steam - ko: Steam 서버와 통신하는 데 사용되는 쿼리 포트 - zh-Hant: Query 埠 (用於與 Steam 伺服器通信的查詢埠) - zh: Query 端口 (用于与 Steam 服务器通信的查询端口) - required: true - rule: paramPort - type: number - - default: 32 - edit: true - envKey: MAX_PLAYERS - labelEn: Maximum number of participants on the server - labelZh: 玩家数量限制 - label: - en: Maximum number of participants on the server - ja: サーバーの最大参加者数 - ms: Bilangan maksimum peserta di pelayan - pt-br: Número máximo de participantes no servidor - ru: Максимальное количество участников на сервере - ko: 서버의 최대 참가자 수 - zh-hant: 伺服器上的最大參與者數 - zh: 玩家数量限制 - required: true - rule: paramPort - type: number - - default: 'true' - edit: true - envKey: MULTITHREAD_SWITCH - labelEn: Improves performance in multi-threaded CPU environments (true / false) - labelZh: 是否启用 CPU 多线程优化 (true / false) - label: - en: Improves performance in multi-threaded CPU environments (true / false) - ja: マルチスレッドCPU環境でのパフォーマンスを向上させます(true / false) - ms: Meningkatkan prestasi dalam persekitaran CPU berbilang benang (benar / palsu) - pt-br: Melhora o desempenho em ambientes de CPU multithread (verdadeiro / falso) - ru: Улучшает производительность в многозадачных CPU (истина / ложь) - ko: 다중 스레드 CPU 환경에서 성능을 향상시킵니다 (true / false) - zh-hant: 提升多線程CPU環境中的效能(true / false) - zh: 是否启用 CPU 多线程优化 (true / false) - required: true - type: select - values: - - label: "true" - value: "true" - - label: "false" - value: "false" - - default: 'false' - edit: true - envKey: PUBLIC_SWITCH - labelEn: Setup server as a community server (true / false) - labelZh: 是否将服务器设置为社区服务器 (true / false) - label: - en: Setup server as a community server (true / false) - ja: サーバーをコミュニティサーバーとして設定(true / false) - ms: Sediakan pelayan sebagai pelayan komuniti (benar / salah) - pt-br: Configurar o servidor como um servidor comunitário (verdadeiro / falso) - ru: Настроить сервер как сервер сообщества (true / false) - ko: 서버를 커뮤니티 서버로 설정 (true / false) - zh-hant: 將伺服器設定為社區伺服器(true / false) - zh: 是否将服务器设置为社区服务器 (true / false) - required: true - type: select - values: - - label: "true" - value: "true" - - label: "false" - value: "false" - - default: '' - edit: true - envKey: PUBLIC_IP - labelEn: PUBLIC IP (If not specified, it will be detected automatically) - labelZh: 服务器 IP (留空自动检测) - label: - en: PUBLIC IP (If not specified, it will be detected automatically) - ja: 公開IP(指定しない場合は自動的に検出されます) - ms: IP AWAM (Jika tidak dinyatakan, ia akan dikesan secara automatik) - pt-br: IP PÚBLICO (Se não especificado, será detectado automaticamente) - ru: ПУБЛИЧНЫЙ IP (Если не указан, он будет обнаружен автоматически) - ko: 공용 IP (지정하지 않으면 자동으로 감지됩니다) - zh-hant: 公開IP(如果未指定,將自動檢測) - zh: 服务器 IP (留空自动检测) - required: false - type: text - - default: '' - edit: true - envKey: PUBLIC_PORT - labelEn: Community server PORT (If not specified, it will be detected automatically) - labelZh: 服务器端口 (留空自动检测) - label: - en: PUBLIC PORT (If not specified, it will be detected automatically) - ja: 公開ポート(指定しない場合は自動的に検出されます) - ms: PORT AWAM (Jika tidak ditentukan, ia akan dikesan secara automatik) - pt-br: PORTA PÚBLICA (Se não especificado, será detectado automaticamente) - ru: ПУБЛИЧНЫЙ ПОРТ (Если не указан, будет определен автоматически) - ko: 공용 포트 (지정하지 않으면 자동으로 감지됩니다) - zh-hant: 公開埠(如果未指定,將自動檢測) - zh: 服务器端口 (留空自动检测) - required: false - rule: paramPort - type: text - - default: 'true' - edit: true - envKey: UPDATE_SWITCH - labelEn: Whether the server should be update each time start (true / false) - labelZh: 是否每次启动都更新服务器 (true / false) - label: - en: Whether the server should be update each time start (true / false) - ja: サーバーが毎回起動時に更新されるべきかどうか(true / false) - ms: Sama ada pelayan perlu dikemas kini setiap kali dimulakan (benar / salah) - pt-br: Se o servidor deve ser atualizado a cada inicialização (verdadeiro / falso) - ru: Нужно ли обновлять сервер при каждом запуске (истинно / ложно) - ko: 서버가 시작할 때마다 업데이트되어야 하는지 여부 (true / false) - zh-hant: 伺服器是否應每次啟動時更新(true / false) - zh: 是否每次启动都更新服务器 (true / false) - required: true - type: select - values: - - label: "true" - value: "true" - - label: "false" - value: "false" - - default: 'false' - edit: true - envKey: ENABLE_PLAYER_LOGGING - labelEn: Enable players login/logout message (true / false) - labelZh: 玩家进入/离开服务器是否通知 (true / false) - label: - en: Enable players login/logout message (true / false) - ja: プレイヤーのログイン/ログアウトメッセージを有効にする(true / false) - ms: Aktifkan mesej log masuk/keluar pemain (benar / palsu) - pt-br: Ativar mensagem de login/logout dos jogadores (verdadeiro / falso) - ru: Включить сообщение о входе/выходе игроков (истина / ложь) - ko: 플레이어 로그인/로그아웃 메시지 활성화 (true / false) - zh-hant: 啟用玩家登入/登出訊息(true / false) - zh: 玩家进入/离开服务器是否通知 (true / false) - required: true - type: select - values: - - label: "true" - value: "true" - - label: "false" - value: "false" - - default: 'false' - edit: true - envKey: DISABLE_GENERATE_SETTINGS - labelEn: Disable auto-generated configuration files (affects the settings below) - labelZh: 禁用自动生成配置文件(会影响下方配置项生效) - label: - en: Disable auto-generated configuration files (affects the settings below) - ja: 自動生成された設定ファイルを無効にする(以下の設定に影響します) - ms: Matikan fail konfigurasi yang dijana secara automatik (mempengaruhi tetapan di bawah) - pt-br: Desativar arquivos de configuração gerados automaticamente (afeta as configurações abaixo) - ru: Отключить автоматически сгенерированные файлы конфигурации (влияет на настройки ниже) - ko: 자동 생성된 구성 파일 비활성화(아래 설정에 영향을 줍니다) - zh-Hant: 禁用自动生成配置文件(會影響下方配置項生效) - zh: 禁用自动生成配置文件(会影响下方配置项生效) - required: true - type: select - values: - - label: "true" - value: "true" - - label: "false" - value: "false" - - default: 'Default Palworld Server' - edit: true - envKey: SERVER_NAME - labelEn: Server name - labelZh: 服务器名 - label: - en: Server Name - ja: サーバー名 - ms: Nama Pelayan - pt-br: Nome do Servidor - ru: Имя сервера - ko: 서버 이름 - zh-hant: 伺服器名稱 - zh: 服务器名 - required: true - type: text - - default: '' - edit: true - envKey: SERVER_DESCRIPTION - labelEn: Server Description - labelZh: 服务器说明 - label: - en: Server Description - ja: サーバーの説明 - ms: Penerangan Pelayan - pt-br: Descrição do Servidor - ru: Описание сервера - ko: 서버 설명 - zh-hant: 伺服器描述 - zh: 服务器说明 - required: false - type: text - - default: palworld - edit: true - envKey: ADMIN_PASSWORD - labelEn: Admin password - labelZh: 管理员密码 - label: - en: Admin Password - ja: 管理者パスワード - ms: Kata Laluan Admin - pt-br: Senha de Admin - ru: Пароль администратора - ko: 관리자 비밀번호 - zh-hant: 管理員密碼 - zh: 管理员密码 - random: true - required: true - type: text - - default: palworld - edit: true - envKey: SERVER_PASSWORD - labelEn: Server password - labelZh: 服务器密码 - label: - en: Server Password - ja: サーバーパスワード - ms: Kata laluan pelayan - pt-br: Senha do servidor - ru: Пароль сервера - ko: 서버 비밀번호 - zh-hant: 伺服器密碼 - zh: 服务器密码 - required: true - type: text - - default: 'true' - edit: true - envKey: RCON_SWITCH - labelEn: Enable RCON (true / false) - labelZh: 是否启用 RCON (true / false) - label: - en: Enable RCON (true / false) - ja: RCONを有効にする(true / false) - ms: Dayakan RCON (true / false) - pt-br: Habilitar RCON (true / false) - ru: Включить RCON (true / false) - ko: RCON 활성화 (true / false) - zh-hant: RCON 啟用 (true / false) - zh: 是否启用 RCON (true / false) - required: true - type: select - values: - - label: "true" - value: "true" - - label: "false" - value: "false" - - default: 'true' - edit: true - envKey: REST_SWITCH - labelEn: Enable REST API (true / false) - labelZh: 是否启用 REST API (true / false) - label: - en: Enable REST API (true / false) - ja: REST APIを有効にする(true / false) - ms: Dayakan REST API (true / false) - pt-br: Habilitar REST API (true / false) - ru: Включить REST API (true / false) - ko: REST API 활성화 (true / false) - zh-hant: 啟用 REST API(true / false) - zh: 是否启用 REST API (true / false) - required: true - type: select - values: - - label: "true" - value: "true" - - label: "false" - value: "false" diff --git a/palworld/1.4.0/docker-compose.yml b/palworld/1.4.0/docker-compose.yml deleted file mode 100644 index b9db9ba4d..000000000 --- a/palworld/1.4.0/docker-compose.yml +++ /dev/null @@ -1,41 +0,0 @@ -services: - palworld-server: - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_HTTP}:8211/udp - - ${PANEL_APP_PORT_RCON}:25575/tcp - - ${PANEL_APP_PORT_REST}:8212/tcp - - ${PANEL_APP_PORT_QUERY}:${PANEL_APP_PORT_QUERY}/udp - volumes: - - ./data:/palworld/ - environment: - - PUID=1000 - - PGID=1000 - - DISABLE_GENERATE_SETTINGS=${DISABLE_GENERATE_SETTINGS} - - PORT=8211 - - PLAYERS=${MAX_PLAYERS} - - MULTITHREADING=${MULTITHREAD_SWITCH} - - COMMUNITY=${PUBLIC_SWITCH} - - PUBLIC_IP=${PUBLIC_IP} - - PUBLIC_PORT=${PUBLIC_PORT} - - UPDATE_ON_BOOT=${UPDATE_SWITCH} - - ENABLE_PLAYER_LOGGING=${ENABLE_PLAYER_LOGGING} - - SERVER_NAME=${SERVER_NAME} - - SERVER_DESCRIPTION=${SERVER_DESCRIPTION} - - ADMIN_PASSWORD=${ADMIN_PASSWORD} - - SERVER_PASSWORD=${SERVER_PASSWORD} - - RCON_ENABLED=${RCON_SWITCH} - - RCON_PORT=25575 - - REST_API_ENABLED=${REST_SWITCH} - - REST_API_PORT=8212 - - QUERY_PORT=${PANEL_APP_PORT_QUERY} - image: thijsvanloef/palworld-server-docker:v1.4.0 - labels: - createdBy: "Apps" - -networks: - 1panel-network: - external: true diff --git a/palworld/README.md b/palworld/README.md deleted file mode 100644 index c87cab499..000000000 --- a/palworld/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# Palworld - -**《幻兽帕鲁》** 是 **Pocketpair** 开发的一款开放世界生存制作游戏,游戏于 2023 年 11 月 02 日至 11 月 05 日进行了封闭网络测试,于 2024 年 01 月 18 日发行抢先体验版本。 - -游戏中,玩家可以在广阔的世界中收集神奇的生物“帕鲁”,派他们进行战斗、建造、做农活,工业生产等。 - -选择版本时,latest版本镜像来源是KagurazakaNyaa/palworld-docker,数字版本镜像来源是thijsvanloef/palworld-server-docker。 \ No newline at end of file diff --git a/palworld/README_en.md b/palworld/README_en.md deleted file mode 100644 index bf4ff48c1..000000000 --- a/palworld/README_en.md +++ /dev/null @@ -1,5 +0,0 @@ -# Palworld - -**Palworld** is an open-world survival crafting game developed by **Pocketpair**. The game underwent a closed network test from November 2 to November 5, 2023, and launched its Early Access version on January 18, 2024. - -In the game, players can explore a vast world, collecting magical creatures called "Palus". These creatures can be sent to battle, build, farm, and even engage in industrial production. diff --git a/palworld/data.yml b/palworld/data.yml deleted file mode 100644 index a596e107f..000000000 --- a/palworld/data.yml +++ /dev/null @@ -1,32 +0,0 @@ -name: Palworld Server -tags: - - 休闲游戏 -title: 幻兽帕鲁服务端 -description: 幻兽帕鲁服务端 -additionalProperties: - key: palworld - name: Palworld Server - tags: - - Game - shortDescZh: 幻兽帕鲁服务端 - shortDescEn: Palworld Dedicated Server - description: - en: Palworld Dedicated Server - ja: Palworld 専用サーバー - ms: Pelayan Dedikasi Palworld - pt-br: Servidor dedicado Palworld - ru: Выделенный сервер Palworld - ko: Palworld 전용 서버 - zh-hant: Palworld 專用伺服器 - zh: 幻兽帕鲁服务端 - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://hub.docker.com/r/thijsvanloef/palworld-server-docker - github: https://github.com/thijsvanloef/palworld-server-docker - document: https://palworld-server-docker.loef.dev/ - memoryRequired: 4096 - architectures: - - amd64 - - arm64 \ No newline at end of file diff --git a/palworld/latest/data.yml b/palworld/latest/data.yml deleted file mode 100644 index 05764833d..000000000 --- a/palworld/latest/data.yml +++ /dev/null @@ -1,217 +0,0 @@ -additionalProperties: - formFields: - - default: 8211 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh-Hant: 埠 - zh: 端口 - required: true - rule: paramPort - type: number - - default: 25575 - edit: true - envKey: PANEL_APP_PORT_RCON - labelEn: RCON Port - labelZh: RCON 端口 - label: - en: RCON Port - ja: RCON ポート - ms: Port RCON - pt-br: Porta RCON - ru: Порт RCON - ko: RCON 포트 - zh-hant: RCON 埠 - zh: RCON 端口 - required: true - rule: paramPort - type: number - - default: 32 - edit: true - envKey: MAX_PLAYERS - labelEn: Maximum number of participants on the server - labelZh: 玩家数量限制 - label: - en: Maximum number of participants on the server - ja: サーバーの最大参加者数 - ms: Bilangan maksimum peserta di pelayan - pt-br: Número máximo de participantes no servidor - ru: Максимальное количество участников на сервере - ko: 서버의 최대 참가자 수 - zh-hant: 伺服器上的最大參與者數 - zh: 玩家数量限制 - required: true - rule: paramPort - type: number - - default: 'true' - edit: true - envKey: MULTITHREAD_SWITCH - labelEn: Improves performance in multi-threaded CPU environments (true / false) - labelZh: 是否启用 CPU 多线程优化 (true / false) - label: - en: Improves performance in multi-threaded CPU environments (true / false) - ja: マルチスレッドCPU環境でのパフォーマンスを向上させます(true / false) - ms: Meningkatkan prestasi dalam persekitaran CPU berbilang benang (benar / palsu) - pt-br: Melhora o desempenho em ambientes de CPU multithread (verdadeiro / falso) - ru: Улучшает производительность в многозадачных CPU (истина / ложь) - ko: 다중 스레드 CPU 환경에서 성능을 향상시킵니다 (true / false) - zh-hant: 提升多線程CPU環境中的效能(true / false) - zh: 是否启用 CPU 多线程优化 (true / false) - required: true - type: text - - default: 'true' - edit: true - envKey: PUBLIC_SWITCH - labelEn: Setup server as a community server (true / false) - labelZh: 是否将服务器设置为社区服务器 (true / false) - label: - en: Setup server as a community server (true / false) - ja: サーバーをコミュニティサーバーとして設定(true / false) - ms: Sediakan pelayan sebagai pelayan komuniti (benar / salah) - pt-br: Configurar o servidor como um servidor comunitário (verdadeiro / falso) - ru: Настроить сервер как сервер сообщества (true / false) - ko: 서버를 커뮤니티 서버로 설정 (true / false) - zh-hant: 將伺服器設定為社區伺服器(true / false) - zh: 是否将服务器设置为社区服务器 (true / false) - required: true - type: text - - default: '' - edit: true - envKey: PUBLIC_IP - labelEn: PUBLIC IP (If not specified, it will be detected automatically) - labelZh: 服务器 IP (留空自动检测) - label: - en: PUBLIC IP (If not specified, it will be detected automatically) - ja: 公開IP(指定しない場合は自動的に検出されます) - ms: IP AWAM (Jika tidak dinyatakan, ia akan dikesan secara automatik) - pt-br: IP PÚBLICO (Se não especificado, será detectado automaticamente) - ru: ПУБЛИЧНЫЙ IP (Если не указан, он будет обнаружен автоматически) - ko: 공용 IP (지정하지 않으면 자동으로 감지됩니다) - zh-hant: 公開IP(如果未指定,將自動檢測) - zh: 服务器 IP (留空自动检测) - required: false - type: text - - default: '' - edit: true - envKey: PANEL_APP_PORT_PUBLIC - labelEn: PUBLIC PORT (If not specified, it will be detected automatically) - labelZh: 服务器端口 (留空自动检测) - label: - en: PUBLIC PORT (If not specified, it will be detected automatically) - ja: 公開ポート(指定しない場合は自動的に検出されます) - ms: PORT AWAM (Jika tidak ditentukan, ia akan dikesan secara automatik) - pt-br: PORTA PÚBLICA (Se não especificado, será detectado automaticamente) - ru: ПУБЛИЧНЫЙ ПОРТ (Если не указан, будет определен автоматически) - ko: 공용 포트 (지정하지 않으면 자동으로 감지됩니다) - zh-hant: 公開埠(如果未指定,將自動檢測) - zh: 服务器端口 (留空自动检测) - required: false - rule: paramPort - type: text - - default: 'false' - edit: true - envKey: UPDATE_SWITCH - labelEn: Whether the server should be update each time start (true / false) - labelZh: 是否每次启动都更新服务器 (true / false) - label: - en: Whether the server should be update each time start (true / false) - ja: サーバーが毎回起動時に更新されるべきかどうか(true / false) - ms: Sama ada pelayan perlu dikemas kini setiap kali dimulakan (benar / salah) - pt-br: Se o servidor deve ser atualizado a cada inicialização (verdadeiro / falso) - ru: Нужно ли обновлять сервер при каждом запуске (истинно / ложно) - ko: 서버가 시작할 때마다 업데이트되어야 하는지 여부 (true / false) - zh-hant: 伺服器是否應每次啟動時更新(true / false) - zh: 是否每次启动都更新服务器 (true / false) - required: true - type: text - - default: '1Panel Palworld Server' - edit: true - envKey: SERVER_NAME - labelEn: Server Name - labelZh: 服务器名 - label: - en: Server Name - ja: サーバー名 - ms: Nama Pelayan - pt-br: Nome do Servidor - ru: Имя сервера - ko: 서버 이름 - zh-hant: 伺服器名稱 - zh: 服务器名 - required: true - type: text - - default: '1Panel Palworld Server' - edit: true - envKey: SERVER_DESC - labelEn: Server Description - labelZh: 服务器说明 - label: - en: Server Description - ja: サーバーの説明 - ms: Penerangan Pelayan - pt-br: Descrição do Servidor - ru: Описание сервера - ko: 서버 설명 - zh-hant: 伺服器描述 - zh: 服务器说明 - required: true - type: text - - default: palworld - edit: true - envKey: ADMIN_PASSWORD - labelEn: Admin Password - labelZh: 管理员密码 - label: - en: Admin Password - ja: 管理者パスワード - ms: Kata Laluan Admin - pt-br: Senha de Admin - ru: Пароль администратора - ko: 관리자 비밀번호 - zh-hant: 管理員密碼 - zh: 管理员密码 - random: true - required: false - rule: paramComplexity - type: password - - default: '' - edit: true - envKey: SERVER_PASSWORD - labelEn: Server Password - labelZh: 服务器密码 - label: - en: Server Password - ja: サーバーパスワード - ms: Kata laluan pelayan - pt-br: Senha do servidor - ru: Пароль сервера - ko: 서버 비밀번호 - zh-hant: 伺服器密碼 - zh: 服务器密码 - required: false - rule: paramComplexity - type: password - - default: 'false' - edit: true - envKey: RCON_SWITCH - labelEn: Enable RCON (true / false) - labelZh: 是否启用 RCON (true / false) - label: - en: Enable RCON (true / false) - ja: RCONを有効にする(true / false) - ms: Dayakan RCON (true / false) - pt-br: Habilitar RCON (true / false) - ru: Включить RCON (true / false) - ko: RCON 활성화 (true / false) - zh-hant: 啟用 RCON(true / false) - zh: 是否启用 RCON (true / false) - required: true - type: text diff --git a/palworld/latest/data/.gitkeep b/palworld/latest/data/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/palworld/latest/docker-compose.yml b/palworld/latest/docker-compose.yml deleted file mode 100644 index 862f98761..000000000 --- a/palworld/latest/docker-compose.yml +++ /dev/null @@ -1,32 +0,0 @@ -services: - palworld: - image: kagurazakanyaa/palworld:latest - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_HTTP}:${PANEL_APP_PORT_HTTP}/udp - - ${PANEL_APP_PORT_RCON}:${PANEL_APP_PORT_RCON}/tcp - volumes: - - ./data:/opt/palworld/Pal/Saved - - /etc/localtime:/etc/localtime:ro - environment: - - GAME_PORT=${PANEL_APP_PORT_HTTP} - - MAX_PLAYERS=${MAX_PLAYERS} - - ENABLE_MULTITHREAD=${MULTITHREAD_SWITCH} - - IS_PUBLIC=${PUBLIC_SWITCH} - - PUBLIC_IP=${PUBLIC_IP} - - PUBLIC_PORT=${PANEL_APP_PORT_PUBLIC} - - FORCE_UPDATE=${UPDATE_SWITCH} - - SERVER_NAME=${SERVER_NAME} - - SERVER_DESC=${SERVER_DESC} - - ADMIN_PASSWORD=${ADMIN_PASSWORD} - - SERVER_PASSWORD=${SERVER_PASSWORD} - - RCON_ENABLED=${RCON_SWITCH} - - RCON_PORT=${PANEL_APP_PORT_RCON} - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/palworld/latest/scripts/init.sh b/palworld/latest/scripts/init.sh deleted file mode 100644 index 4e811c86a..000000000 --- a/palworld/latest/scripts/init.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -chown -R 1000:1000 data \ No newline at end of file diff --git a/palworld/logo.png b/palworld/logo.png deleted file mode 100644 index 966c228fd..000000000 Binary files a/palworld/logo.png and /dev/null differ diff --git a/pgadmin4/9.4/data.yml b/pgadmin4/9.4/data.yml deleted file mode 100644 index aec160ec9..000000000 --- a/pgadmin4/9.4/data.yml +++ /dev/null @@ -1,51 +0,0 @@ -additionalProperties: - formFields: - - default: 8080 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh-Hant: 埠 - zh: 端口 - required: true - rule: paramPort - type: number - - default: admin@1panel.cn - edit: true - envKey: PGADMIN_DEFAULT_EMAIL - labelEn: Admin Email - labelZh: 管理员邮箱 - label: - en: Admin Email - ja: 管理者のメール - ms: Emel Pentadbir - pt-br: E-mail do Administrador - ru: Адрес электронной почты администратора - ko: 관리자 이메일 - zh-hant: 管理員郵箱 - zh: 管理员邮箱 - required: true - type: text - - default: hgraZPD3v00I5AwuzSpL - edit: true - envKey: PGADMIN_DEFAULT_PASSWORD - labelEn: Admin Password - labelZh: 管理员密码 - label: - en: Admin Password - ja: 管理者パスワード - ms: Kata Laluan Admin - pt-br: Senha de Administrador - ru: Пароль администратора - ko: 관리자 비밀번호 - zh-hant: 管理員密碼 - zh: 管理员密码 - required: true - type: password diff --git a/pgadmin4/9.4/data/.gitkeep b/pgadmin4/9.4/data/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/pgadmin4/9.4/docker-compose.yml b/pgadmin4/9.4/docker-compose.yml deleted file mode 100644 index 35f1ea9fc..000000000 --- a/pgadmin4/9.4/docker-compose.yml +++ /dev/null @@ -1,20 +0,0 @@ -services: - pgadmin4: - image: dpage/pgadmin4:9.4 - container_name: ${CONTAINER_NAME} - restart: always - labels: - createdBy: "Apps" - environment: - PGADMIN_DEFAULT_EMAIL: ${PGADMIN_DEFAULT_EMAIL} - PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_DEFAULT_PASSWORD} - ports: - - ${PANEL_APP_PORT_HTTP}:80 - volumes: - - ./data:/var/lib/pgadmin - networks: - - 1panel-network - -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/pgadmin4/9.4/scripts/init.sh b/pgadmin4/9.4/scripts/init.sh deleted file mode 100644 index 593e79fb9..000000000 --- a/pgadmin4/9.4/scripts/init.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -chown -R 5050:5050 data diff --git a/pgadmin4/README.md b/pgadmin4/README.md deleted file mode 100644 index 1ab3ac7a5..000000000 --- a/pgadmin4/README.md +++ /dev/null @@ -1,44 +0,0 @@ -# PGAdmin 4 - -PGAdmin 4 是一款用于管理和维护PostgreSQL数据库的强大工具。它提供了丰富的功能,帮助数据库管理员和开发人员轻松管理他们的数据库。 - -## 主要功能: - -### 数据库连接管理 - -- **数据库连接**:PGAdmin 4允许您轻松连接到多个PostgreSQL数据库服务器。 -- **服务器组**:您可以将数据库服务器分组以更好地组织和管理它们。 - -### 数据库对象管理 - -- **表格管理**:您可以查看、编辑和删除数据库中的表格,以及执行SQL查询。 -- **视图管理**:管理数据库中的视图,包括创建、修改和删除视图。 -- **索引和约束**:创建和管理索引和约束以提高数据库性能和数据完整性。 -- **函数和存储过程**:管理数据库中的函数和存储过程。 -- **触发器**:创建和管理数据库中的触发器,以在特定事件发生时执行操作。 -- **外部数据导入和导出**:导入和导出数据以进行备份和数据迁移。 - -### 查询工具 - -- **SQL查询编辑器**:执行SQL查询并查看结果,支持SQL语法高亮显示和查询历史记录。 -- **可视化查询构建器**:通过拖放方式构建SQL查询,无需编写SQL代码。 - -### 数据可视化 - -- **表格数据查看**:以表格形式查看数据库中的数据。 -- **图表和图形**:创建图表和图形以更直观地呈现数据。 - -### 数据库备份和恢复 - -- **数据库备份**:创建数据库备份,以防止数据丢失。 -- **数据库恢复**:从备份文件中还原数据库。 - -### 安全性和权限管理 - -- **用户和角色管理**:管理数据库用户和角色,以控制数据库访问权限。 -- **对象权限**:定义和管理数据库对象的访问权限。 -- **SSL支持**:加强数据库连接的安全性。 - -### 扩展性 - -- **插件支持**:通过插件系统扩展PGAdmin 4的功能。 \ No newline at end of file diff --git a/pgadmin4/README_en.md b/pgadmin4/README_en.md deleted file mode 100644 index 3a3c0d01c..000000000 --- a/pgadmin4/README_en.md +++ /dev/null @@ -1,44 +0,0 @@ -# PGAdmin 4 - -PGAdmin 4 is a powerful tool for managing and maintaining PostgreSQL databases. It provides a rich set of features to help database administrators and developers efficiently manage their databases. - -## Main Features: - -### Database Connection Management - -- **Database Connections**: Easily connect to multiple PostgreSQL database servers. -- **Server Groups**: Organize and manage database servers by grouping them. - -### Database Object Management - -- **Table Management**: View, edit, and delete tables in the database, as well as execute SQL queries. -- **View Management**: Create, modify, and delete views in the database. -- **Indexes and Constraints**: Create and manage indexes and constraints to improve database performance and ensure data integrity. -- **Functions and Stored Procedures**: Manage functions and stored procedures within the database. -- **Triggers**: Create and manage triggers to perform actions when specific events occur. -- **External Data Import and Export**: Import and export data for backup and migration purposes. - -### Query Tools - -- **SQL Query Editor**: Execute SQL queries and view results, with support for SQL syntax highlighting and query history. -- **Visual Query Builder**: Build SQL queries using a drag-and-drop interface without writing SQL code. - -### Data Visualization - -- **Table Data Viewer**: View database data in a tabular format. -- **Charts and Graphs**: Create charts and graphs for more intuitive data presentation. - -### Database Backup and Restore - -- **Database Backup**: Create database backups to prevent data loss. -- **Database Restore**: Restore databases from backup files. - -### Security and Permissions Management - -- **User and Role Management**: Manage database users and roles to control access permissions. -- **Object Permissions**: Define and manage access permissions for database objects. -- **SSL Support**: Enhance the security of database connections. - -### Extensibility - -- **Plugin Support**: Extend PGAdmin 4's functionality through its plugin system. \ No newline at end of file diff --git a/pgadmin4/data.yml b/pgadmin4/data.yml deleted file mode 100644 index 849d6a5b0..000000000 --- a/pgadmin4/data.yml +++ /dev/null @@ -1,30 +0,0 @@ -name: PGAdmin4 -tags: - - 开发工具 -title: PostgreSQL 开源管理和开发平台 -description: PostgreSQL 开源管理工具 -additionalProperties: - key: pgadmin4 - name: PGAdmin4 - tags: - - DevTool - shortDescZh: PostgreSQL 开源管理工具 - shortDescEn: PostgreSQL open source management and development platform - description: - en: PostgreSQL open source management and development platform - ja: PostgreSQL オープンソース管理および開発プラットフォーム - ms: Platform pengurusan dan pembangunan sumber terbuka PostgreSQL - pt-br: Plataforma de gerenciamento e desenvolvimento de código aberto do PostgreSQL - ru: Платформа управления и разработки с открытым исходным кодом PostgreSQL - ko: PostgreSQL 오픈 소스 관리 및 개발 플랫폼 - zh-hant: PostgreSQL 開源管理與開發平台 - zh: PostgreSQL 开源管理工具 - type: website - crossVersionUpdate: true - limit: 1 - website: https://www.pgadmin.org - github: https://github.com/pgadmin-org/pgadmin4 - document: https://www.pgadmin.org/docs - architectures: - - amd64 - - arm64 \ No newline at end of file diff --git a/pgadmin4/logo.png b/pgadmin4/logo.png deleted file mode 100644 index b0c5dceed..000000000 Binary files a/pgadmin4/logo.png and /dev/null differ diff --git a/photoprism/250426-ce/data.yml b/photoprism/250426-ce/data.yml deleted file mode 100644 index f5d3af196..000000000 --- a/photoprism/250426-ce/data.yml +++ /dev/null @@ -1,215 +0,0 @@ -additionalProperties: - formFields: - - default: admin - edit: true - envKey: ADMIN_USER - labelEn: Admin user - labelZh: 管理员用户名 - label: - en: Admin user - ja: 管理者ユーザー - ms: Pengguna Admin - pt-br: Usuário Administrador - ru: Администратор - ko: 관리자 사용자 - zh: 管理员用户名 - zh-Hant: 管理員用戶名 - required: true - type: text - - default: photoprism - edit: true - envKey: ADMIN_PASSWORD - labelEn: Admin Password - labelZh: 管理员密码 - label: - en: Admin Password - ja: 管理者パスワード - ms: Kata Laluan Admin - pt-br: Senha do Administrador - ru: Пароль администратора - ko: 관리자 비밀번호 - zh: 管理员密码 - zh-Hant: 管理員密碼 - random: true - required: true - type: password - - default: 2342 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh: 端口 - zh-Hant: 埠 - required: true - rule: paramPort - type: number - - default: http://localhost:2342/ - edit: true - envKey: PHOTOPRISM_EXTERNAL_URL - labelEn: External URL - labelZh: 外部访问地址 - label: - en: External URL - ja: 外部URL - ms: URL Luaran - pt-br: URL Externa - ru: Внешний URL - ko: 외부 URL - zh: 外部访问地址 - zh-Hant: 外部訪問地址 - required: true - type: text - - default: "" - edit: true - envKey: PANEL_DB_HOST - key: mariadb - labelEn: MariaDB Database Service - labelZh: MariaDB 数据库服务 - label: - en: MariaDB Database Service - ja: MariaDB データベース サービス - ms: Perkhidmatan Pangkalan Data MariaDB - pt-br: Serviço de Banco de Dados MariaDB - ru: Сервис базы данных MariaDB - ko: MariaDB 데이터베이스 서비스 - zh: MariaDB 数据库服务 - zh-Hant: MariaDB 數據庫服務 - required: true - type: service - - default: photoprism - envKey: PANEL_DB_NAME - labelEn: Database - labelZh: 数据库名 - label: - en: Database - ja: データベース - ms: Pangkalan Data - pt-br: Banco de Dados - ru: База данных - ko: 데이터베이스 - zh: 数据库名 - zh-Hant: 數據庫名 - random: true - required: true - rule: paramCommon - type: text - - default: photoprism - envKey: PANEL_DB_USER - labelEn: User - labelZh: 数据库用户 - label: - en: User - ja: ユーザー - ms: Pengguna - pt-br: Usuário - ru: Пользователь - ko: 사용자 - zh: 数据库用户 - zh-Hant: 數據庫用戶 - random: true - required: true - rule: paramCommon - type: text - - default: photoprism - envKey: PANEL_DB_USER_PASSWORD - labelEn: Password - labelZh: 数据库用户密码 - label: - en: Password - ja: パスワード - ms: Kata laluan - pt-br: Senha - ru: Пароль - ko: 비밀번호 - zh: 数据库用户密码 - zh-Hant: 數據庫用戶密碼 - random: true - required: true - type: password - - default: 1000 - edit: true - envKey: UID - labelEn: UID - labelZh: UID - label: - en: UID - ja: UID - ms: UID - pt-br: UID - ru: UID - ko: UID - zh: UID - zh-Hant: UID - required: true - type: number - - default: 1000 - edit: true - envKey: GID - labelEn: GID - labelZh: GID - label: - en: GID - ja: GID - ms: GID - pt-br: GID - ru: GID - ko: GID - zh: GID - zh-Hant: GID - required: true - type: number - - default: "" - edit: true - envKey: SITE_DESCRIPTION - labelEn: Site description - labelZh: 网站描述 - label: - en: Site description - ja: サイトの説明 - ms: Penerangan Laman - pt-br: Descrição do Site - ru: Описание сайта - ko: 사이트 설명 - zh: 网站描述 - zh-Hant: 網站描述 - required: false - type: text - - default: "" - edit: true - envKey: SITE_AUTHOR - labelEn: Site author - labelZh: 网站作者 - label: - en: Site author - ja: サイトの作者 - ms: Pengarang Laman - pt-br: Autor do Site - ru: Автор сайта - ko: 사이트 작성자 - zh: 网站作者 - zh-Hant: 網站作者 - required: false - type: text - - default: "AI-Powered Photos App" - edit: true - envKey: SITE_CAPTION - labelEn: Site caption - labelZh: 网站标题 - label: - en: Site caption - ja: サイトのキャプション - ms: Kapsyen Laman - pt-br: Legenda do Site - ru: Заголовок сайта - ko: 사이트 캡션 - zh: 网站标题 - zh-Hant: 網站標題 - required: false - type: text \ No newline at end of file diff --git a/photoprism/250426-ce/docker-compose.yml b/photoprism/250426-ce/docker-compose.yml deleted file mode 100644 index 5347d4f0f..000000000 --- a/photoprism/250426-ce/docker-compose.yml +++ /dev/null @@ -1,76 +0,0 @@ -services: - photoprism: - image: photoprism/photoprism:250426-ce - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_HTTP}:2342 - volumes: - - ./data/Pictures:/photoprism/originals # Original media files (DO NOT REMOVE) - - ./data/storage:/photoprism/storage # *Writable* storage folder for cache, database, and sidecar files (DO NOT REMOVE) - environment: - PHOTOPRISM_ADMIN_USER: ${ADMIN_USER} # admin login username - PHOTOPRISM_ADMIN_PASSWORD: ${ADMIN_PASSWORD} # initial admin password (8-72 characters) - PHOTOPRISM_AUTH_MODE: "password" # authentication mode (public, password) - PHOTOPRISM_SITE_URL: ${PHOTOPRISM_EXTERNAL_URL} # server URL in the format "http(s)://domain.name(:port)/(path)" - PHOTOPRISM_DISABLE_TLS: "false" # disables HTTPS/TLS even if the site URL starts with https:// and a certificate is available - PHOTOPRISM_DEFAULT_TLS: "true" # defaults to a self-signed HTTPS/TLS certificate if no other certificate is available - PHOTOPRISM_ORIGINALS_LIMIT: 5000 # file size limit for originals in MB (increase for high-res video) - PHOTOPRISM_HTTP_COMPRESSION: "gzip" # improves transfer speed and bandwidth utilization (none or gzip) - PHOTOPRISM_LOG_LEVEL: "info" # log level: trace, debug, info, warning, error, fatal, or panic - PHOTOPRISM_READONLY: "false" # do not modify originals directory (reduced functionality) - PHOTOPRISM_EXPERIMENTAL: "false" # enables experimental features - PHOTOPRISM_DISABLE_CHOWN: "false" # disables updating storage permissions via chmod and chown on startup - PHOTOPRISM_DISABLE_WEBDAV: "false" # disables built-in WebDAV server - PHOTOPRISM_DISABLE_SETTINGS: "false" # disables settings UI and API - PHOTOPRISM_DISABLE_TENSORFLOW: "false" # disables all features depending on TensorFlow - PHOTOPRISM_DISABLE_FACES: "false" # disables face detection and recognition (requires TensorFlow) - PHOTOPRISM_DISABLE_CLASSIFICATION: "false" # disables image classification (requires TensorFlow) - PHOTOPRISM_DISABLE_VECTORS: "false" # disables vector graphics support - PHOTOPRISM_DISABLE_RAW: "false" # disables indexing and conversion of RAW images - PHOTOPRISM_RAW_PRESETS: "false" # enables applying user presets when converting RAW images (reduces performance) - PHOTOPRISM_JPEG_QUALITY: 85 # a higher value increases the quality and file size of JPEG images and thumbnails (25-100) - PHOTOPRISM_DETECT_NSFW: "false" # automatically flags photos as private that MAY be offensive (requires TensorFlow) - PHOTOPRISM_UPLOAD_NSFW: "true" # allows uploads that MAY be offensive (no effect without TensorFlow) - # PHOTOPRISM_DATABASE_DRIVER: "sqlite" # SQLite is an embedded database that doesn't require a server - PHOTOPRISM_DATABASE_DRIVER: "mysql" # use MariaDB 10.5+ or MySQL 8+ instead of SQLite for improved performance - PHOTOPRISM_DATABASE_SERVER: ${PANEL_DB_HOST}:3306 # MariaDB or MySQL database server (hostname:port) - PHOTOPRISM_DATABASE_NAME: ${PANEL_DB_NAME} # MariaDB or MySQL database schema name - PHOTOPRISM_DATABASE_USER: ${PANEL_DB_USER} # MariaDB or MySQL database user name - PHOTOPRISM_DATABASE_PASSWORD: ${PANEL_DB_USER_PASSWORD} # MariaDB or MySQL database user password - PHOTOPRISM_SITE_CAPTION: ${SITE_CAPTION} - PHOTOPRISM_SITE_DESCRIPTION: ${SITE_DESCRIPTION} # meta site description - PHOTOPRISM_SITE_AUTHOR: ${SITE_AUTHOR} # meta site author - ## Video Transcoding (https://docs.photoprism.app/getting-started/advanced/transcoding/): - # PHOTOPRISM_FFMPEG_ENCODER: "software" # H.264/AVC encoder (software, intel, nvidia, apple, raspberry, or vaapi) - # PHOTOPRISM_FFMPEG_SIZE: "1920" # video size limit in pixels (720-7680) (default: 3840) - # PHOTOPRISM_FFMPEG_BITRATE: "32" # video bitrate limit in Mbit/s (default: 50) - ## Run/install on first startup (options: update https gpu tensorflow davfs clitools clean): - # PHOTOPRISM_INIT: "https gpu tensorflow" - ## Run as a non-root user after initialization (supported: 0, 33, 50-99, 500-600, and 900-1200): - PHOTOPRISM_UID: ${UID:-1000} - PHOTOPRISM_GID: ${GID:-1000} - # PHOTOPRISM_UMASK: 0000 - ## Start as non-root user before initialization (supported: 0, 33, 50-99, 500-600, and 900-1200): - # user: "1000:1000" - ## Share hardware devices with FFmpeg and TensorFlow (optional): - # devices: - # - "/dev/dri:/dev/dri" # Intel QSV - # - "/dev/nvidia0:/dev/nvidia0" # Nvidia CUDA - # - "/dev/nvidiactl:/dev/nvidiactl" - # - "/dev/nvidia-modeset:/dev/nvidia-modeset" - # - "/dev/nvidia-nvswitchctl:/dev/nvidia-nvswitchctl" - # - "/dev/nvidia-uvm:/dev/nvidia-uvm" - # - "/dev/nvidia-uvm-tools:/dev/nvidia-uvm-tools" - # - "/dev/video11:/dev/video11" # Video4Linux Video Encode Device (h264_v4l2m2m) - working_dir: "/photoprism" # do not change or remove - security_opt: - - seccomp:unconfined - - apparmor:unconfined - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/photoprism/README.md b/photoprism/README.md deleted file mode 100644 index 504ded41c..000000000 --- a/photoprism/README.md +++ /dev/null @@ -1,17 +0,0 @@ -# PhotoPrism - -**PhotoPrism** 是一款适用于去中心化网络的 AI 照片应用。它利用最新技术自动标记和查找图片,不会妨碍您。您可以在家中、私人服务器或云端运行它。 - -## 主要功能: - -- 浏览所有照片和视频,无需担心RAW 转换、重复或视频格式 -- 使用强大的搜索过滤器轻松找到特定图片 -- 识别你的家人和朋友的面孔 -- 根据图片内容和位置自动分类 -- 将鼠标悬停在相册和搜索结果中的实况照片上即可播放实况照片 -- 由于用户界面是一个渐进式 Web 应用程序,它提供了类似原生应用程序的体验,您可以方便地将其安装在所有主要操作系统和移动设备的主屏幕上 -- 包含四张高分辨率世界地图,让您重温最喜爱的旅行回忆 -- 从 Exif、XMP 和其他来源(例如 Google Photos)提取并合并元数据 -- 还可以搜索更多图像属性,如颜色、色度和质量 -- 使用PhotoSync在后台安全备份 iOS 和 Android 手机 -- WebDAV 客户端(例如 Microsoft 的 Windows Explorer 和 Apple 的 Finder)可以直接连接到 PhotoPrism,这样您就可以打开、编辑和删除计算机上的文件,就像它们是本地文件一样 \ No newline at end of file diff --git a/photoprism/README_en.md b/photoprism/README_en.md deleted file mode 100644 index 67920ff46..000000000 --- a/photoprism/README_en.md +++ /dev/null @@ -1,18 +0,0 @@ -# PhotoPrism - -**PhotoPrism** is an AI-powered photo application for the decentralized web. It uses the latest technology to automatically tag and find pictures without getting in your way. You can run it at home, on a private server, or in the cloud. - -## Key Features: - -- Browse all photos and videos without worrying about RAW conversion, duplicates, or video formats. -- Easily find specific photos using powerful search filters. -- Recognize faces of your family and friends. -- Automatically categorize photos based on their content and location. -- Hover over live photos in albums and search results to play them. -- The user interface is a progressive web app, providing a native app-like experience, making it easy to install on all major operating systems and mobile devices' home screens. -- Includes four high-resolution world maps to relive your favorite travel memories. -- Extract and merge metadata from Exif, XMP, and other sources (e.g., Google Photos). -- Search for more image attributes such as color, chroma, and quality. -- Securely back up iOS and Android phones in the background using PhotoSync. -- WebDAV clients (e.g., Microsoft’s Windows Explorer and Apple’s Finder) can directly connect to PhotoPrism, allowing you to open, edit, and delete files on your computer as if they were local files. - diff --git a/photoprism/data.yml b/photoprism/data.yml deleted file mode 100644 index 89a663e86..000000000 --- a/photoprism/data.yml +++ /dev/null @@ -1,32 +0,0 @@ -name: PhotoPrism -tags: - - 多媒体 -title: 去中心化网络的人工智能照片应用程序 -description: 去中心化网络的人工智能照片应用程序 -additionalProperties: - key: photoprism - name: PhotoPrism - tags: - - Media - shortDescZh: 去中心化网络的人工智能照片应用程序 - shortDescEn: AI-Powered Photos App for the Decentralized Web - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://www.photoprism.app - github: https://github.com/photoprism/photoprism - document: https://docs.photoprism.app - description: - en: AI-Powered Photos App for the Decentralized Web - zh: 去中心化网络的人工智能照片应用程序 - zh-Hant: 去中心化網絡的人工智能照片應用程序 - ja: 分散型 Web 用の AI 搭載写真アプリ - ms: Aplikasi Foto Berkuasa AI untuk Web Terdesentralisasi - pt-br: Aplicativo de Fotos com IA para a Web Descentralizada - ru: Приложение для фотографий с ИИ для децентрализованного Интернета - ko: 분산형 웹을 위한 AI 기반 사진 앱 - memoryRequired: 1024 - architectures: - - amd64 - - arm64 diff --git a/photoprism/logo.png b/photoprism/logo.png deleted file mode 100644 index c63f89ca6..000000000 Binary files a/photoprism/logo.png and /dev/null differ diff --git a/php/5/.env b/php/5/.env deleted file mode 100644 index 5192b5124..000000000 --- a/php/5/.env +++ /dev/null @@ -1,6 +0,0 @@ -PHP_VERSION= -CONTAINER_PACKAGE_URL= -PHP_EXTENSIONS= -IMAGE_NAME= -TZ="Asia/Shanghai" -EXTENSION_DIR="/usr/local/lib/php/extensions" diff --git a/php/5/build/Dockerfile b/php/5/build/Dockerfile deleted file mode 100644 index 00db91289..000000000 --- a/php/5/build/Dockerfile +++ /dev/null @@ -1,21 +0,0 @@ -ARG PHP_IMAGE -FROM ${PHP_IMAGE} - -ARG PHP_EXTENSIONS -ARG CONTAINER_PACKAGE_URL - - -COPY data/install-ext /usr/local/bin/ -RUN chmod uga+x /usr/local/bin/install-ext - -ENV PHP_INI_SCAN_DIR=/usr/local/etc/php/conf.d - -RUN install-ext ${PHP_EXTENSIONS} - -RUN pear config-set php_ini /usr/local/etc/php/php.ini - -RUN usermod -u 1000 www-data && groupmod -g 1000 www-data - -ENTRYPOINT ["supervisord", "--nodaemon", "--configuration", "/etc/supervisord.conf"] - -WORKDIR /www \ No newline at end of file diff --git a/php/5/build/data/install-ext b/php/5/build/data/install-ext deleted file mode 100644 index f4a6041ca..000000000 --- a/php/5/build/data/install-ext +++ /dev/null @@ -1,295 +0,0 @@ -#!/bin/bash - -export MC="-j$(nproc)" -ERROR_CODE=0 - -echo -echo "============================================" -echo "PHP version : ${PHP_VERSION}" -echo "Install extensions : $1" -echo "============================================" -echo - -isPhpVersionGreaterOrEqual() { - local PHP_MAJOR_VERSION=$(php -r "echo PHP_MAJOR_VERSION;") - local PHP_MINOR_VERSION=$(php -r "echo PHP_MINOR_VERSION;") - - if [ "$PHP_MAJOR_VERSION" -gt "$1" ] || [ "$PHP_MAJOR_VERSION" -eq "$1" ] && [ "$PHP_MINOR_VERSION" -ge "$2" ]; then - return 1 - else - return 0 - fi -} - -is_extension_installed() { - local extension=$1 - if php -m | grep -q "^$extension$"; then - echo "------ $extension is already installed ------" - return 0 - else - return 1 - fi -} - -install_php_extensions() { - local extension=$1 - install-php-extensions $extension - - if is_extension_installed "$extension"; then - echo "------ install-php-extensions $extension succeeded ------" - return 0 - fi - - echo "------ install-php-extensions $extension failed ------" - ERROR_CODE=1 - return 1 -} - -pecl_install() { - local extension=$1 - printf "\n" | pecl install $extension - docker-php-ext-enable $extension - if is_extension_installed "$extension"; then - echo "------ pecl install $extension succeeded ------" - return 0 - fi - echo "------ pecl install $extension failed ------" - ERROR_CODE=1 - return 1 -} - -docker_php_ext_install() { - local extension=$1 - local check_name=$2 - if [ -z "$check_name" ]; then - check_name=$extension - fi - docker-php-ext-install $extension - if is_extension_installed "$check_name"; then - echo "------ docker-php-ext-install install $extension succeeded ------" - return 0 - fi - echo "------ docker-php-ext-install install $extension failed------" - ERROR_CODE=1 - return 1 -} - -install_extension_default() { - local extension=$1 - printf "\n" | pecl install $extension - if [ $? -eq 0 ]; then - docker-php-ext-enable $extension - echo "------ pecl install $extension succeeded ------" - else - echo "------ pecl install $extension failed use docker-php-ext-install------" - docker-php-ext-install ${MC} $extension - if [ $? -eq 0 ]; then - echo "------ docker-php-ext-install install $extension succeeded ------" - else - echo "------ docker-php-ext-install install $extension failed use install-php-extensions------" - install-php-extensions $extension - if [ $? -eq 0 ]; then - echo "------ install-php-extensions $extension succeeded ------" - else - echo "------ install-php-extensions $extension failed ------" - ERROR_CODE=1 - fi - fi - fi -} - - -install_msg() { - if [ $? -eq 0 ]; then - echo "------ install $1 succeeded ------" - else - echo "------ install $1 failed ------" - ERROR_CODE=1 - fi -} - -install_memcache() { - printf "\n" | pecl install memcache - install_msg memcache - docker-php-ext-enable memcache -} - -install_pdo_pgsql() { - apt-get update && apt-get install -y libpq-dev - install_msg pdo_pgsql - docker-php-ext-install pdo_pgsql -} - -install_pdo_mysql() { - docker-php-ext-install pdo_mysql - install_msg pdo_mysql -} - -install_yaf() { - pecl install yaf - install_msg yaf - docker-php-ext-enable yaf -} - -install_extension() { - local extension=$1 - if [ -z "$extension" ]; then - return - fi - if is_extension_installed "$extension"; then - return - fi - - echo "------ install extension: $extension ------" - - if [ "$extension" = "gd" ]; then - install_php_extensions gd - elif [ "$extension" = "memcache" ]; then - install_memcache - elif [ "$extension" = "yaf" ]; then - install_yaf - elif [ "$extension" = "pdo_pgsql" ]; then - install_pdo_pgsql - elif [ "$extension" = "pdo_mysql" ]; then - install_pdo_mysql - elif [ "$extension" = "yaml" ]; then - apt-get install -y libyaml-dev - pecl_install yaml - elif [ "$extension" = "mongodb" ]; then - apt-get install -y libssl-dev - pecl_install mongodb - elif [ "$extension" = "mcrypt" ]; then - apt-get install -y libmcrypt-dev - pecl_install mcrypt - elif [ "$extension" = "ssh2" ]; then - apt-get install -y libssh2-1-dev libssh2-1 - pecl_install ssh2 - elif [ "$extension" = "rdkafka" ]; then - apt-get install -y librdkafka-dev - pecl_install rdkafka - elif [ "$extension" = "varnish" ]; then - apt-get install -y libvarnishapi-dev - pecl_install varnish - elif [ "$extension" = "bcmath" ]; then - docker_php_ext_install bcmath - elif [ "$extension" = "pcntl" ]; then - docker_php_ext_install pcntl - elif [ "$extension" = "shmop" ]; then - docker_php_ext_install shmop - elif [ "$extension" = "gettext" ]; then - docker_php_ext_install gettext - elif [ "$extension" = "sockets" ]; then - docker_php_ext_install sockets - elif [ "$extension" = "sysvsem" ]; then - docker_php_ext_install sysvsem - elif [ "$extension" = "sysvmsg" ]; then - docker_php_ext_install sysvmsg - elif [ "$extension" = "opcache" ]; then - docker_php_ext_install opcache "Zend OPcache" - elif [ "$extension" = "mysqli" ]; then - install_php_extensions mysqli - elif [ "$extension" = "sysvshm" ]; then - docker_php_ext_install sysvshm - elif [ "$extension" = "calendar" ]; then - docker_php_ext_install calendar - elif [ "$extension" = "sodium" ]; then - apt-get install -y libsodium-dev - docker_php_ext_install sodium - elif [ "$extension" = "zip" ]; then - apt-get update && apt-get install -y libzip-dev - docker_php_ext_install zip - elif [ "$extension" = "memcached" ]; then - install_php_extensions memcached - elif [ "$extension" = "redis" ]; then - install_php_extensions redis - elif [ "$extension" = "xdebug" ]; then - install_php_extensions xdebug - elif [ "$extension" = "imap" ]; then - install_php_extensions imap - elif [ "$extension" = "intl" ]; then - install_php_extensions intl - elif [ "$extension" = "swoole" ]; then - install_php_extensions swoole - elif [ "$extension" = "pgsql" ]; then - install_php_extensions pgsql - elif [ "$extension" = "curl" ]; then - install_php_extensions curl - elif [ "$extension" = "sg11" ]; then - install_php_extensions sourceguardian "SourceGuardian" - elif [ "$extension" = "snmp" ]; then - install_php_extensions snmp - elif [ "$extension" = "mbstring" ]; then - install_php_extensions mbstring - elif [ "$extension" = "pdo_firebird" ]; then - install_php_extensions pdo_firebird - elif [ "$extension" = "pdo_dblib" ]; then - install_php_extensions pdo_dblib - elif [ "$extension" = "pdo_oci" ]; then - install_php_extensions pdo_oci - elif [ "$extension" = "pdo_odbc" ]; then - install_php_extensions pdo_odbc - elif [ "$extension" = "oci8" ]; then - install_php_extensions oci8 - elif [ "$extension" = "odbc" ]; then - install_php_extensions odbc - elif [ "$extension" = "soap" ]; then - install_php_extensions soap - elif [ "$extension" = "xsl" ]; then - install_php_extensions xsl - elif [ "$extension" = "xmlrpc" ]; then - install_php_extensions xmlrpc - elif [ "$extension" = "readline" ]; then - install_php_extensions readline - elif [ "$extension" = "snmp" ]; then - install_php_extensions snmp - elif [ "$extension" = "tidy" ]; then - install_php_extensions tidy - elif [ "$extension" = "gmp" ]; then - install_php_extensions gmp - elif [ "$extension" = "ldap" ]; then - install_php_extensions ldap - elif [ "$extension" = "imagick" ]; then - install_php_extensions imagick - elif [ "$extension" = "amqp" ]; then - install_php_extensions amqp - elif [ "$extension" = "zookeeper" ]; then - install_php_extensions zookeeper - elif [ "$extension" = "ionCube" ]; then - install_php_extensions ioncube_loader "ionCube Loader" - elif [ "$extension" = "pdo_sqlsrv" ]; then - install_php_extensions pdo_sqlsrv - elif [ "$extension" = "sqlsrv" ]; then - install_php_extensions sqlsrv - elif [ "$extension" = "enchant" ]; then - install_php_extensions enchant - elif [ "$extension" = "pspell" ]; then - install_php_extensions pspell - elif [ "$extension" = "bz2" ]; then - install_php_extensions bz2 - elif [ "$extension" = "smbclient" ]; then - install_php_extensions smbclient - elif [ "$extension" = "event" ]; then - install_php_extensions event - elif [ "$extension" = "zmq" ]; then - install_php_extensions zmq - else - install_extension_default $extension - fi -} - -extension=$1 - -if [[ $extension == *,* ]]; then - echo "${extension}" | tr ',' '\n' | while read -r extension; do - install_extension $extension - done -else - install_extension $extension - if [ $ERROR_CODE -ne 0 ]; then - exit $ERROR_CODE - fi -fi - -docker-php-source delete - -exit 0 diff --git a/php/5/conf/php-fpm.conf b/php/5/conf/php-fpm.conf deleted file mode 100644 index 131835891..000000000 --- a/php/5/conf/php-fpm.conf +++ /dev/null @@ -1,423 +0,0 @@ -; Start a new pool named 'www'. -; the variable $pool can be used in any directive and will be replaced by the -; pool name ('www' here) -[www] - -; Per pool prefix -; It only applies on the following directives: -; - 'access.log' -; - 'slowlog' -; - 'listen' (unixsocket) -; - 'chroot' -; - 'chdir' -; - 'php_values' -; - 'php_admin_values' -; When not set, the global prefix (or NONE) applies instead. -; Note: This directive can also be relative to the global prefix. -; Default Value: none -;prefix = /path/to/pools/$pool - -; Unix user/group of processes -; Note: The user is mandatory. If the group is not set, the default user's group -; will be used. -user = www-data -group = www-data - -; The address on which to accept FastCGI requests. -; Valid syntaxes are: -; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on -; a specific port; -; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on -; a specific port; -; 'port' - to listen on a TCP socket to all addresses -; (IPv6 and IPv4-mapped) on a specific port; -; '/path/to/unix/socket' - to listen on a unix socket. -; Note: This value is mandatory. -listen = 127.0.0.1:9000 - -; Set listen(2) backlog. -; Default Value: 511 (-1 on FreeBSD and OpenBSD) -;listen.backlog = 511 - -; Set permissions for unix socket, if one is used. In Linux, read/write -; permissions must be set in order to allow connections from a web server. Many -; BSD-derived systems allow connections regardless of permissions. -; Default Values: user and group are set as the running user -; mode is set to 0660 -;listen.owner = www-data -;listen.group = www-data -;listen.mode = 0660 -; When POSIX Access Control Lists are supported you can set them using -; these options, value is a comma separated list of user/group names. -; When set, listen.owner and listen.group are ignored -;listen.acl_users = -;listen.acl_groups = - -; List of addresses (IPv4/IPv6) of FastCGI clients which are allowed to connect. -; Equivalent to the FCGI_WEB_SERVER_ADDRS environment variable in the original -; PHP FCGI (5.2.2+). Makes sense only with a tcp listening socket. Each address -; must be separated by a comma. If this value is left blank, connections will be -; accepted from any ip address. -; Default Value: any -;listen.allowed_clients = 127.0.0.1 - -; Specify the nice(2) priority to apply to the pool processes (only if set) -; The value can vary from -19 (highest priority) to 20 (lower priority) -; Note: - It will only work if the FPM master process is launched as root -; - The pool processes will inherit the master process priority -; unless it specified otherwise -; Default Value: no set -; process.priority = -19 - -; Set the process dumpable flag (PR_SET_DUMPABLE prctl) even if the process user -; or group is differrent than the master process user. It allows to create process -; core dump and ptrace the process for the pool user. -; Default Value: no -; process.dumpable = yes - -; Choose how the process manager will control the number of child processes. -; Possible Values: -; static - a fixed number (pm.max_children) of child processes; -; dynamic - the number of child processes are set dynamically based on the -; following directives. With this process management, there will be -; always at least 1 children. -; pm.max_children - the maximum number of children that can -; be alive at the same time. -; pm.start_servers - the number of children created on startup. -; pm.min_spare_servers - the minimum number of children in 'idle' -; state (waiting to process). If the number -; of 'idle' processes is less than this -; number then some children will be created. -; pm.max_spare_servers - the maximum number of children in 'idle' -; state (waiting to process). If the number -; of 'idle' processes is greater than this -; number then some children will be killed. -; ondemand - no children are created at startup. Children will be forked when -; new requests will connect. The following parameter are used: -; pm.max_children - the maximum number of children that -; can be alive at the same time. -; pm.process_idle_timeout - The number of seconds after which -; an idle process will be killed. -; Note: This value is mandatory. -pm = dynamic - -; The number of child processes to be created when pm is set to 'static' and the -; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'. -; This value sets the limit on the number of simultaneous requests that will be -; served. Equivalent to the ApacheMaxClients directive with mpm_prefork. -; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP -; CGI. The below defaults are based on a server without much resources. Don't -; forget to tweak pm.* to fit your needs. -; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand' -; Note: This value is mandatory. -pm.max_children = 10 - -; The number of child processes created on startup. -; Note: Used only when pm is set to 'dynamic' -; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2 -pm.start_servers = 2 - -; The desired minimum number of idle server processes. -; Note: Used only when pm is set to 'dynamic' -; Note: Mandatory when pm is set to 'dynamic' -pm.min_spare_servers = 1 - -; The desired maximum number of idle server processes. -; Note: Used only when pm is set to 'dynamic' -; Note: Mandatory when pm is set to 'dynamic' -pm.max_spare_servers = 3 - -; The number of seconds after which an idle process will be killed. -; Note: Used only when pm is set to 'ondemand' -; Default Value: 10s -;pm.process_idle_timeout = 10s; - -; The number of requests each child process should execute before respawning. -; This can be useful to work around memory leaks in 3rd party libraries. For -; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS. -; Default Value: 0 -;pm.max_requests = 500 - -; The URI to view the FPM status page. If this value is not set, no URI will be -; recognized as a status page. It shows the following informations: -; pool - the name of the pool; -; process manager - static, dynamic or ondemand; -; start time - the date and time FPM has started; -; start since - number of seconds since FPM has started; -; accepted conn - the number of request accepted by the pool; -; listen queue - the number of request in the queue of pending -; connections (see backlog in listen(2)); -; max listen queue - the maximum number of requests in the queue -; of pending connections since FPM has started; -; listen queue len - the size of the socket queue of pending connections; -; idle processes - the number of idle processes; -; active processes - the number of active processes; -; total processes - the number of idle + active processes; -; max active processes - the maximum number of active processes since FPM -; has started; -; max children reached - number of times, the process limit has been reached, -; when pm tries to start more children (works only for -; pm 'dynamic' and 'ondemand'); -; Value are updated in real time. -; Example output: -; pool: www -; process manager: static -; start time: 01/Jul/2011:17:53:49 +0200 -; start since: 62636 -; accepted conn: 190460 -; listen queue: 0 -; max listen queue: 1 -; listen queue len: 42 -; idle processes: 4 -; active processes: 11 -; total processes: 15 -; max active processes: 12 -; max children reached: 0 -; -; By default the status page output is formatted as text/plain. Passing either -; 'html', 'xml' or 'json' in the query string will return the corresponding -; output syntax. Example: -; http://www.foo.bar/status -; http://www.foo.bar/status?json -; http://www.foo.bar/status?html -; http://www.foo.bar/status?xml -; -; By default the status page only outputs short status. Passing 'full' in the -; query string will also return status for each pool process. -; Example: -; http://www.foo.bar/status?full -; http://www.foo.bar/status?json&full -; http://www.foo.bar/status?html&full -; http://www.foo.bar/status?xml&full -; The Full status returns for each process: -; pid - the PID of the process; -; state - the state of the process (Idle, Running, ...); -; start time - the date and time the process has started; -; start since - the number of seconds since the process has started; -; requests - the number of requests the process has served; -; request duration - the duration in µs of the requests; -; request method - the request method (GET, POST, ...); -; request URI - the request URI with the query string; -; content length - the content length of the request (only with POST); -; user - the user (PHP_AUTH_USER) (or '-' if not set); -; script - the main script called (or '-' if not set); -; last request cpu - the %cpu the last request consumed -; it's always 0 if the process is not in Idle state -; because CPU calculation is done when the request -; processing has terminated; -; last request memory - the max amount of memory the last request consumed -; it's always 0 if the process is not in Idle state -; because memory calculation is done when the request -; processing has terminated; -; If the process is in Idle state, then informations are related to the -; last request the process has served. Otherwise informations are related to -; the current request being served. -; Example output: -; ************************ -; pid: 31330 -; state: Running -; start time: 01/Jul/2011:17:53:49 +0200 -; start since: 63087 -; requests: 12808 -; request duration: 1250261 -; request method: GET -; request URI: /test_mem.php?N=10000 -; content length: 0 -; user: - -; script: /home/fat/web/docs/php/test_mem.php -; last request cpu: 0.00 -; last request memory: 0 -; -; Note: There is a real-time FPM status monitoring sample web page available -; It's available in: /usr/local/share/php/fpm/status.html -; -; Note: The value must start with a leading slash (/). The value can be -; anything, but it may not be a good idea to use the .php extension or it -; may conflict with a real PHP file. -; Default Value: not set -;pm.status_path = /status - -; The ping URI to call the monitoring page of FPM. If this value is not set, no -; URI will be recognized as a ping page. This could be used to test from outside -; that FPM is alive and responding, or to -; - create a graph of FPM availability (rrd or such); -; - remove a server from a group if it is not responding (load balancing); -; - trigger alerts for the operating team (24/7). -; Note: The value must start with a leading slash (/). The value can be -; anything, but it may not be a good idea to use the .php extension or it -; may conflict with a real PHP file. -; Default Value: not set -;ping.path = /ping - -; This directive may be used to customize the response of a ping request. The -; response is formatted as text/plain with a 200 response code. -; Default Value: pong -;ping.response = pong - -; The access log file -; Default: not set -;access.log = log/$pool.access.log - -; The access log format. -; The following syntax is allowed -; %%: the '%' character -; %C: %CPU used by the request -; it can accept the following format: -; - %{user}C for user CPU only -; - %{system}C for system CPU only -; - %{total}C for user + system CPU (default) -; %d: time taken to serve the request -; it can accept the following format: -; - %{seconds}d (default) -; - %{miliseconds}d -; - %{mili}d -; - %{microseconds}d -; - %{micro}d -; %e: an environment variable (same as $_ENV or $_SERVER) -; it must be associated with embraces to specify the name of the env -; variable. Some exemples: -; - server specifics like: %{REQUEST_METHOD}e or %{SERVER_PROTOCOL}e -; - HTTP headers like: %{HTTP_HOST}e or %{HTTP_USER_AGENT}e -; %f: script filename -; %l: content-length of the request (for POST request only) -; %m: request method -; %M: peak of memory allocated by PHP -; it can accept the following format: -; - %{bytes}M (default) -; - %{kilobytes}M -; - %{kilo}M -; - %{megabytes}M -; - %{mega}M -; %n: pool name -; %o: output header -; it must be associated with embraces to specify the name of the header: -; - %{Content-Type}o -; - %{X-Powered-By}o -; - %{Transfert-Encoding}o -; - .... -; %p: PID of the child that serviced the request -; %P: PID of the parent of the child that serviced the request -; %q: the query string -; %Q: the '?' character if query string exists -; %r: the request URI (without the query string, see %q and %Q) -; %R: remote IP address -; %s: status (response code) -; %t: server time the request was received -; it can accept a strftime(3) format: -; %d/%b/%Y:%H:%M:%S %z (default) -; The strftime(3) format must be encapsuled in a %{}t tag -; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t -; %T: time the log has been written (the request has finished) -; it can accept a strftime(3) format: -; %d/%b/%Y:%H:%M:%S %z (default) -; The strftime(3) format must be encapsuled in a %{}t tag -; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t -; %u: remote user -; -; Default: "%R - %u %t \"%m %r\" %s" -;access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%" - -; The log file for slow requests -; Default Value: not set -; Note: slowlog is mandatory if request_slowlog_timeout is set -slowlog = /var/log/php/fpm.slow.log - -; The timeout for serving a single request after which a PHP backtrace will be -; dumped to the 'slowlog' file. A value of '0s' means 'off'. -; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) -; Default Value: 0 -request_slowlog_timeout = 3 - -; Depth of slow log stack trace. -; Default Value: 20 -;request_slowlog_trace_depth = 20 - -; The timeout for serving a single request after which the worker process will -; be killed. This option should be used when the 'max_execution_time' ini option -; does not stop script execution for some reason. A value of '0' means 'off'. -; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) -; Default Value: 0 -;request_terminate_timeout = 0 - -; Set open file descriptor rlimit. -; Default Value: system defined value -;rlimit_files = 1024 - -; Set max core size rlimit. -; Possible Values: 'unlimited' or an integer greater or equal to 0 -; Default Value: system defined value -;rlimit_core = 0 - -; Chroot to this directory at the start. This value must be defined as an -; absolute path. When this value is not set, chroot is not used. -; Note: you can prefix with '$prefix' to chroot to the pool prefix or one -; of its subdirectories. If the pool prefix is not set, the global prefix -; will be used instead. -; Note: chrooting is a great security feature and should be used whenever -; possible. However, all PHP paths will be relative to the chroot -; (error_log, sessions.save_path, ...). -; Default Value: not set -;chroot = - -; Chdir to this directory at the start. -; Note: relative path can be used. -; Default Value: current directory or / when chroot -;chdir = /var/www - -; Redirect worker stdout and stderr into main error log. If not set, stdout and -; stderr will be redirected to /dev/null according to FastCGI specs. -; Note: on highloaded environement, this can cause some delay in the page -; process time (several ms). -; Default Value: no -catch_workers_output = yes - -; Clear environment in FPM workers -; Prevents arbitrary environment variables from reaching FPM worker processes -; by clearing the environment in workers before env vars specified in this -; pool configuration are added. -; Setting to "no" will make all environment variables available to PHP code -; via getenv(), $_ENV and $_SERVER. -; Default Value: yes -;clear_env = no - -; Limits the extensions of the main script FPM will allow to parse. This can -; prevent configuration mistakes on the web server side. You should only limit -; FPM to .php extensions to prevent malicious users to use other extensions to -; execute php code. -; Note: set an empty value to allow all extensions. -; Default Value: .php -;security.limit_extensions = .php .php3 .php4 .php5 .php7 - -; Pass environment variables like LD_LIBRARY_PATH. All $VARIABLEs are taken from -; the current environment. -; Default Value: clean env -;env[HOSTNAME] = $HOSTNAME -;env[PATH] = /usr/local/bin:/usr/bin:/bin -;env[TMP] = /tmp -;env[TMPDIR] = /tmp -;env[TEMP] = /tmp - -; Additional php.ini defines, specific to this pool of workers. These settings -; overwrite the values previously defined in the php.ini. The directives are the -; same as the PHP SAPI: -; php_value/php_flag - you can set classic ini defines which can -; be overwritten from PHP call 'ini_set'. -; php_admin_value/php_admin_flag - these directives won't be overwritten by -; PHP call 'ini_set' -; For php_*flag, valid values are on, off, 1, 0, true, false, yes or no. - -; Defining 'extension' will load the corresponding shared extension from -; extension_dir. Defining 'disable_functions' or 'disable_classes' will not -; overwrite previously defined php.ini values, but will append the new value -; instead. - -; Note: path INI options can be relative and will be expanded with the prefix -; (pool, global or /usr/local) - -; Default Value: nothing is defined by default except the values in php.ini and -; specified at startup with the -d argument -;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com -;php_flag[display_errors] = off -;php_admin_value[error_log] = /var/log/fpm-php.www.log -;php_admin_flag[log_errors] = on -;php_admin_value[memory_limit] = 32M diff --git a/php/5/conf/php.ini b/php/5/conf/php.ini deleted file mode 100644 index b6b0aee69..000000000 --- a/php/5/conf/php.ini +++ /dev/null @@ -1,1933 +0,0 @@ -[PHP] - -;;;;;;;;;;;;;;;;;;; -; About php.ini ; -;;;;;;;;;;;;;;;;;;; -; PHP's initialization file, generally called php.ini, is responsible for -; configuring many of the aspects of PHP's behavior. - -; PHP attempts to find and load this configuration from a number of locations. -; The following is a summary of its search order: -; 1. SAPI module specific location. -; 2. The PHPRC environment variable. (As of PHP 5.2.0) -; 3. A number of predefined registry keys on Windows (As of PHP 5.2.0) -; 4. Current working directory (except CLI) -; 5. The web server's directory (for SAPI modules), or directory of PHP -; (otherwise in Windows) -; 6. The directory from the --with-config-file-path compile time option, or the -; Windows directory (C:\windows or C:\winnt) -; See the PHP docs for more specific information. -; http://php.net/configuration.file - -; The syntax of the file is extremely simple. Whitespace and lines -; beginning with a semicolon are silently ignored (as you probably guessed). -; Section headers (e.g. [Foo]) are also silently ignored, even though -; they might mean something in the future. - -; Directives following the section heading [PATH=/www/mysite] only -; apply to PHP files in the /www/mysite directory. Directives -; following the section heading [HOST=www.example.com] only apply to -; PHP files served from www.example.com. Directives set in these -; special sections cannot be overridden by user-defined INI files or -; at runtime. Currently, [PATH=] and [HOST=] sections only work under -; CGI/FastCGI. -; http://php.net/ini.sections - -; Directives are specified using the following syntax: -; directive = value -; Directive names are *case sensitive* - foo=bar is different from FOO=bar. -; Directives are variables used to configure PHP or PHP extensions. -; There is no name validation. If PHP can't find an expected -; directive because it is not set or is mistyped, a default value will be used. - -; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one -; of the INI constants (On, Off, True, False, Yes, No and None) or an expression -; (e.g. E_ALL & ~E_NOTICE), a quoted string ("bar"), or a reference to a -; previously set variable or directive (e.g. ${foo}) - -; Expressions in the INI file are limited to bitwise operators and parentheses: -; | bitwise OR -; ^ bitwise XOR -; & bitwise AND -; ~ bitwise NOT -; ! boolean NOT - -; Boolean flags can be turned on using the values 1, On, True or Yes. -; They can be turned off using the values 0, Off, False or No. - -; An empty string can be denoted by simply not writing anything after the equal -; sign, or by using the None keyword: - -; foo = ; sets foo to an empty string -; foo = None ; sets foo to an empty string -; foo = "None" ; sets foo to the string 'None' - -; If you use constants in your value, and these constants belong to a -; dynamically loaded extension (either a PHP extension or a Zend extension), -; you may only use these constants *after* the line that loads the extension. - -;;;;;;;;;;;;;;;;;;; -; About this file ; -;;;;;;;;;;;;;;;;;;; -; PHP comes packaged with two INI files. One that is recommended to be used -; in production environments and one that is recommended to be used in -; development environments. - -; php.ini-production contains settings which hold security, performance and -; best practices at its core. But please be aware, these settings may break -; compatibility with older or less security conscience applications. We -; recommending using the production ini in production and testing environments. - -; php.ini-development is very similar to its production variant, except it is -; much more verbose when it comes to errors. We recommend using the -; development version only in development environments, as errors shown to -; application users can inadvertently leak otherwise secure information. - -; This is php.ini-production INI file. - -;;;;;;;;;;;;;;;;;;; -; Quick Reference ; -;;;;;;;;;;;;;;;;;;; -; The following are all the settings which are different in either the production -; or development versions of the INIs with respect to PHP's default behavior. -; Please see the actual settings later in the document for more details as to why -; we recommend these changes in PHP's behavior. - -; display_errors -; Default Value: On -; Development Value: On -; Production Value: Off - -; display_startup_errors -; Default Value: Off -; Development Value: On -; Production Value: Off - -; error_reporting -; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT - -; html_errors -; Default Value: On -; Development Value: On -; Production value: On - -; log_errors -; Default Value: Off -; Development Value: On -; Production Value: On - -; max_input_time -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) - -; output_buffering -; Default Value: Off -; Development Value: 4096 -; Production Value: 4096 - -; register_argc_argv -; Default Value: On -; Development Value: Off -; Production Value: Off - -; request_order -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" - -; session.gc_divisor -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 - -; session.sid_bits_per_character -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 - -; short_open_tag -; Default Value: On -; Development Value: Off -; Production Value: Off - -; track_errors -; Default Value: Off -; Development Value: On -; Production Value: Off - -; variables_order -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS" - -;;;;;;;;;;;;;;;;;;;; -; php.ini Options ; -;;;;;;;;;;;;;;;;;;;; -; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini" -;user_ini.filename = ".user.ini" - -; To disable this feature set this option to empty value -;user_ini.filename = - -; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes) -;user_ini.cache_ttl = 300 - -;;;;;;;;;;;;;;;;;;;; -; Language Options ; -;;;;;;;;;;;;;;;;;;;; - -; Enable the PHP scripting language engine under Apache. -; http://php.net/engine -engine = On - -; This directive determines whether or not PHP will recognize code between -; tags as PHP source which should be processed as such. It is -; generally recommended that should be used and that this feature -; should be disabled, as enabling it may result in issues when generating XML -; documents, however this remains supported for backward compatibility reasons. -; Note that this directive does not control the would work. -; http://php.net/syntax-highlighting -;highlight.string = #DD0000 -;highlight.comment = #FF9900 -;highlight.keyword = #007700 -;highlight.default = #0000BB -;highlight.html = #000000 - -; If enabled, the request will be allowed to complete even if the user aborts -; the request. Consider enabling it if executing long requests, which may end up -; being interrupted by the user or a browser timing out. PHP's default behavior -; is to disable this feature. -; http://php.net/ignore-user-abort -;ignore_user_abort = On - -; Determines the size of the realpath cache to be used by PHP. This value should -; be increased on systems where PHP opens many files to reflect the quantity of -; the file operations performed. -; http://php.net/realpath-cache-size -;realpath_cache_size = 4096k - -; Duration of time, in seconds for which to cache realpath information for a given -; file or directory. For systems with rarely changing files, consider increasing this -; value. -; http://php.net/realpath-cache-ttl -;realpath_cache_ttl = 120 - -; Enables or disables the circular reference collector. -; http://php.net/zend.enable-gc -zend.enable_gc = On - -; If enabled, scripts may be written in encodings that are incompatible with -; the scanner. CP936, Big5, CP949 and Shift_JIS are the examples of such -; encodings. To use this feature, mbstring extension must be enabled. -; Default: Off -;zend.multibyte = Off - -; Allows to set the default encoding for the scripts. This value will be used -; unless "declare(encoding=...)" directive appears at the top of the script. -; Only affects if zend.multibyte is set. -; Default: "" -;zend.script_encoding = - -;;;;;;;;;;;;;;;;; -; Miscellaneous ; -;;;;;;;;;;;;;;;;; - -; Decides whether PHP may expose the fact that it is installed on the server -; (e.g. by adding its signature to the Web server header). It is no security -; threat in any way, but it makes it possible to determine whether you use PHP -; on your server or not. -; http://php.net/expose-php -expose_php = Off - -;;;;;;;;;;;;;;;;;;; -; Resource Limits ; -;;;;;;;;;;;;;;;;;;; - -; Maximum execution time of each script, in seconds -; http://php.net/max-execution-time -; Note: This directive is hardcoded to 0 for the CLI SAPI -max_execution_time = 30 - -; Maximum amount of time each script may spend parsing request data. It's a good -; idea to limit this time on productions servers in order to eliminate unexpectedly -; long running scripts. -; Note: This directive is hardcoded to -1 for the CLI SAPI -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) -; http://php.net/max-input-time -max_input_time = 60 - -; Maximum input variable nesting level -; http://php.net/max-input-nesting-level -;max_input_nesting_level = 64 - -; How many GET/POST/COOKIE input variables may be accepted -; max_input_vars = 1000 - -; Maximum amount of memory a script may consume (128MB) -; http://php.net/memory-limit -memory_limit = 256M - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; Error handling and logging ; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -; This directive informs PHP of which errors, warnings and notices you would like -; it to take action for. The recommended way of setting values for this -; directive is through the use of the error level constants and bitwise -; operators. The error level constants are below here for convenience as well as -; some common settings and their meanings. -; By default, PHP is set to take action on all errors, notices and warnings EXCEPT -; those related to E_NOTICE and E_STRICT, which together cover best practices and -; recommended coding standards in PHP. For performance reasons, this is the -; recommend error reporting setting. Your production server shouldn't be wasting -; resources complaining about best practices and coding standards. That's what -; development servers and development settings are for. -; Note: The php.ini-development file has this setting as E_ALL. This -; means it pretty much reports everything which is exactly what you want during -; development and early testing. -; -; Error Level Constants: -; E_ALL - All errors and warnings (includes E_STRICT as of PHP 5.4.0) -; E_ERROR - fatal run-time errors -; E_RECOVERABLE_ERROR - almost fatal run-time errors -; E_WARNING - run-time warnings (non-fatal errors) -; E_PARSE - compile-time parse errors -; E_NOTICE - run-time notices (these are warnings which often result -; from a bug in your code, but it's possible that it was -; intentional (e.g., using an uninitialized variable and -; relying on the fact it is automatically initialized to an -; empty string) -; E_STRICT - run-time notices, enable to have PHP suggest changes -; to your code which will ensure the best interoperability -; and forward compatibility of your code -; E_CORE_ERROR - fatal errors that occur during PHP's initial startup -; E_CORE_WARNING - warnings (non-fatal errors) that occur during PHP's -; initial startup -; E_COMPILE_ERROR - fatal compile-time errors -; E_COMPILE_WARNING - compile-time warnings (non-fatal errors) -; E_USER_ERROR - user-generated error message -; E_USER_WARNING - user-generated warning message -; E_USER_NOTICE - user-generated notice message -; E_DEPRECATED - warn about code that will not work in future versions -; of PHP -; E_USER_DEPRECATED - user-generated deprecation warnings -; -; Common Values: -; E_ALL (Show all errors, warnings and notices including coding standards.) -; E_ALL & ~E_NOTICE (Show all errors, except for notices) -; E_ALL & ~E_NOTICE & ~E_STRICT (Show all errors, except for notices and coding standards warnings.) -; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors) -; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT -; http://php.net/error-reporting -error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT - -; This directive controls whether or not and where PHP will output errors, -; notices and warnings too. Error output is very useful during development, but -; it could be very dangerous in production environments. Depending on the code -; which is triggering the error, sensitive information could potentially leak -; out of your application such as database usernames and passwords or worse. -; For production environments, we recommend logging errors rather than -; sending them to STDOUT. -; Possible Values: -; Off = Do not display any errors -; stderr = Display errors to STDERR (affects only CGI/CLI binaries!) -; On or stdout = Display errors to STDOUT -; Default Value: On -; Development Value: On -; Production Value: Off -; http://php.net/display-errors -display_errors = Off - -; The display of errors which occur during PHP's startup sequence are handled -; separately from display_errors. PHP's default behavior is to suppress those -; errors from clients. Turning the display of startup errors on can be useful in -; debugging configuration problems. We strongly recommend you -; set this to 'off' for production servers. -; Default Value: Off -; Development Value: On -; Production Value: Off -; http://php.net/display-startup-errors -display_startup_errors = Off - -; Besides displaying errors, PHP can also log errors to locations such as a -; server-specific log, STDERR, or a location specified by the error_log -; directive found below. While errors should not be displayed on productions -; servers they should still be monitored and logging is a great way to do that. -; Default Value: Off -; Development Value: On -; Production Value: On -; http://php.net/log-errors -log_errors = On - -; Set maximum length of log_errors. In error_log information about the source is -; added. The default is 1024 and 0 allows to not apply any maximum length at all. -; http://php.net/log-errors-max-len -log_errors_max_len = 1024 - -; Do not log repeated messages. Repeated errors must occur in same file on same -; line unless ignore_repeated_source is set true. -; http://php.net/ignore-repeated-errors -ignore_repeated_errors = Off - -; Ignore source of message when ignoring repeated messages. When this setting -; is On you will not log errors with repeated messages from different files or -; source lines. -; http://php.net/ignore-repeated-source -ignore_repeated_source = Off - -; If this parameter is set to Off, then memory leaks will not be shown (on -; stdout or in the log). This has only effect in a debug compile, and if -; error reporting includes E_WARNING in the allowed list -; http://php.net/report-memleaks -report_memleaks = On - -; This setting is on by default. -;report_zend_debug = 0 - -; Store the last error/warning message in $php_errormsg (boolean). Setting this value -; to On can assist in debugging and is appropriate for development servers. It should -; however be disabled on production servers. -; Default Value: Off -; Development Value: On -; Production Value: Off -; http://php.net/track-errors -track_errors = Off - -; Turn off normal error reporting and emit XML-RPC error XML -; http://php.net/xmlrpc-errors -;xmlrpc_errors = 0 - -; An XML-RPC faultCode -;xmlrpc_error_number = 0 - -; When PHP displays or logs an error, it has the capability of formatting the -; error message as HTML for easier reading. This directive controls whether -; the error message is formatted as HTML or not. -; Note: This directive is hardcoded to Off for the CLI SAPI -; Default Value: On -; Development Value: On -; Production value: On -; http://php.net/html-errors -html_errors = On - -; If html_errors is set to On *and* docref_root is not empty, then PHP -; produces clickable error messages that direct to a page describing the error -; or function causing the error in detail. -; You can download a copy of the PHP manual from http://php.net/docs -; and change docref_root to the base URL of your local copy including the -; leading '/'. You must also specify the file extension being used including -; the dot. PHP's default behavior is to leave these settings empty, in which -; case no links to documentation are generated. -; Note: Never use this feature for production boxes. -; http://php.net/docref-root -; Examples -;docref_root = "/phpmanual/" - -; http://php.net/docref-ext -;docref_ext = .html - -; String to output before an error message. PHP's default behavior is to leave -; this setting blank. -; http://php.net/error-prepend-string -; Example: -;error_prepend_string = "" - -; String to output after an error message. PHP's default behavior is to leave -; this setting blank. -; http://php.net/error-append-string -; Example: -;error_append_string = "" - -; Log errors to specified file. PHP's default behavior is to leave this value -; empty. -; http://php.net/error-log -; Example: -;error_log = php_errors.log -; Log errors to syslog (Event Log on Windows). -error_log = /var/log/php/php.error.log - -;windows.show_crt_warning -; Default value: 0 -; Development value: 0 -; Production value: 0 - -;;;;;;;;;;;;;;;;; -; Data Handling ; -;;;;;;;;;;;;;;;;; - -; The separator used in PHP generated URLs to separate arguments. -; PHP's default setting is "&". -; http://php.net/arg-separator.output -; Example: -;arg_separator.output = "&" - -; List of separator(s) used by PHP to parse input URLs into variables. -; PHP's default setting is "&". -; NOTE: Every character in this directive is considered as separator! -; http://php.net/arg-separator.input -; Example: -;arg_separator.input = ";&" - -; This directive determines which super global arrays are registered when PHP -; starts up. G,P,C,E & S are abbreviations for the following respective super -; globals: GET, POST, COOKIE, ENV and SERVER. There is a performance penalty -; paid for the registration of these arrays and because ENV is not as commonly -; used as the others, ENV is not recommended on productions servers. You -; can still get access to the environment variables through getenv() should you -; need to. -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS"; -; http://php.net/variables-order -variables_order = "GPCS" - -; This directive determines which super global data (G,P & C) should be -; registered into the super global array REQUEST. If so, it also determines -; the order in which that data is registered. The values for this directive -; are specified in the same manner as the variables_order directive, -; EXCEPT one. Leaving this value empty will cause PHP to use the value set -; in the variables_order directive. It does not mean it will leave the super -; globals array REQUEST empty. -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" -; http://php.net/request-order -request_order = "GP" - -; This directive determines whether PHP registers $argv & $argc each time it -; runs. $argv contains an array of all the arguments passed to PHP when a script -; is invoked. $argc contains an integer representing the number of arguments -; that were passed when the script was invoked. These arrays are extremely -; useful when running scripts from the command line. When this directive is -; enabled, registering these variables consumes CPU cycles and memory each time -; a script is executed. For performance reasons, this feature should be disabled -; on production servers. -; Note: This directive is hardcoded to On for the CLI SAPI -; Default Value: On -; Development Value: Off -; Production Value: Off -; http://php.net/register-argc-argv -register_argc_argv = Off - -; When enabled, the ENV, REQUEST and SERVER variables are created when they're -; first used (Just In Time) instead of when the script starts. If these -; variables are not used within a script, having this directive on will result -; in a performance gain. The PHP directive register_argc_argv must be disabled -; for this directive to have any affect. -; http://php.net/auto-globals-jit -auto_globals_jit = On - -; Whether PHP will read the POST data. -; This option is enabled by default. -; Most likely, you won't want to disable this option globally. It causes $_POST -; and $_FILES to always be empty; the only way you will be able to read the -; POST data will be through the php://input stream wrapper. This can be useful -; to proxy requests or to process the POST data in a memory efficient fashion. -; http://php.net/enable-post-data-reading -;enable_post_data_reading = Off - -; Maximum size of POST data that PHP will accept. -; Its value may be 0 to disable the limit. It is ignored if POST data reading -; is disabled through enable_post_data_reading. -; http://php.net/post-max-size -post_max_size = 100M - -; Automatically add files before PHP document. -; http://php.net/auto-prepend-file -auto_prepend_file = - -; Automatically add files after PHP document. -; http://php.net/auto-append-file -auto_append_file = - -; By default, PHP will output a media type using the Content-Type header. To -; disable this, simply set it to be empty. -; -; PHP's built-in default media type is set to text/html. -; http://php.net/default-mimetype -default_mimetype = "text/html" - -; PHP's default character set is set to UTF-8. -; http://php.net/default-charset -default_charset = "UTF-8" - -; PHP internal character encoding is set to empty. -; If empty, default_charset is used. -; http://php.net/internal-encoding -;internal_encoding = - -; PHP input character encoding is set to empty. -; If empty, default_charset is used. -; http://php.net/input-encoding -;input_encoding = - -; PHP output character encoding is set to empty. -; If empty, default_charset is used. -; See also output_buffer. -; http://php.net/output-encoding -;output_encoding = - -;;;;;;;;;;;;;;;;;;;;;;;;; -; Paths and Directories ; -;;;;;;;;;;;;;;;;;;;;;;;;; - -; UNIX: "/path1:/path2" -;include_path = ".:/php/includes" -; -; Windows: "\path1;\path2" -;include_path = ".;c:\php\includes" -; -; PHP's default setting for include_path is ".;/path/to/php/pear" -; http://php.net/include-path - -; The root of the PHP pages, used only if nonempty. -; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root -; if you are running php as a CGI under any web server (other than IIS) -; see documentation for security issues. The alternate is to use the -; cgi.force_redirect configuration below -; http://php.net/doc-root -doc_root = - -; The directory under which PHP opens the script using /~username used only -; if nonempty. -; http://php.net/user-dir -user_dir = - -; Directory in which the loadable extensions (modules) reside. -; http://php.net/extension-dir -; extension_dir = "./" -; On windows: -; extension_dir = "ext" - -; Directory where the temporary files should be placed. -; Defaults to the system default (see sys_get_temp_dir) -; sys_temp_dir = "/tmp" - -; Whether or not to enable the dl() function. The dl() function does NOT work -; properly in multithreaded servers, such as IIS or Zeus, and is automatically -; disabled on them. -; http://php.net/enable-dl -enable_dl = Off - -; cgi.force_redirect is necessary to provide security running PHP as a CGI under -; most web servers. Left undefined, PHP turns this on by default. You can -; turn it off here AT YOUR OWN RISK -; **You CAN safely turn this off for IIS, in fact, you MUST.** -; http://php.net/cgi.force-redirect -;cgi.force_redirect = 1 - -; if cgi.nph is enabled it will force cgi to always sent Status: 200 with -; every request. PHP's default behavior is to disable this feature. -;cgi.nph = 1 - -; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape -; (iPlanet) web servers, you MAY need to set an environment variable name that PHP -; will look for to know it is OK to continue execution. Setting this variable MAY -; cause security issues, KNOW WHAT YOU ARE DOING FIRST. -; http://php.net/cgi.redirect-status-env -;cgi.redirect_status_env = - -; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's -; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok -; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting -; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting -; of zero causes PHP to behave as before. Default is 1. You should fix your scripts -; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. -; http://php.net/cgi.fix-pathinfo -;cgi.fix_pathinfo=1 - -; if cgi.discard_path is enabled, the PHP CGI binary can safely be placed outside -; of the web tree and people will not be able to circumvent .htaccess security. -; http://php.net/cgi.dicard-path -;cgi.discard_path=1 - -; FastCGI under IIS (on WINNT based OS) supports the ability to impersonate -; security tokens of the calling client. This allows IIS to define the -; security context that the request runs under. mod_fastcgi under Apache -; does not currently support this feature (03/17/2002) -; Set to 1 if running under IIS. Default is zero. -; http://php.net/fastcgi.impersonate -;fastcgi.impersonate = 1 - -; Disable logging through FastCGI connection. PHP's default behavior is to enable -; this feature. -;fastcgi.logging = 0 - -; cgi.rfc2616_headers configuration option tells PHP what type of headers to -; use when sending HTTP response code. If set to 0, PHP sends Status: header that -; is supported by Apache. When this option is set to 1, PHP will send -; RFC2616 compliant header. -; Default is zero. -; http://php.net/cgi.rfc2616-headers -;cgi.rfc2616_headers = 0 - -; cgi.check_shebang_line controls whether CGI PHP checks for line starting with #! -; (shebang) at the top of the running script. This line might be needed if the -; script support running both as stand-alone script and via PHP CGI<. PHP in CGI -; mode skips this line and ignores its content if this directive is turned on. -; http://php.net/cgi.check-shebang-line -;cgi.check_shebang_line=1 - -;;;;;;;;;;;;;;;; -; File Uploads ; -;;;;;;;;;;;;;;;; - -; Whether to allow HTTP file uploads. -; http://php.net/file-uploads -file_uploads = On - -; Temporary directory for HTTP uploaded files (will use system default if not -; specified). -; http://php.net/upload-tmp-dir -;upload_tmp_dir = - -; Maximum allowed size for uploaded files. -; http://php.net/upload-max-filesize -upload_max_filesize = 50M - -; Maximum number of files that can be uploaded via a single request -max_file_uploads = 20 - -;;;;;;;;;;;;;;;;;; -; Fopen wrappers ; -;;;;;;;;;;;;;;;;;; - -; Whether to allow the treatment of URLs (like http:// or ftp://) as files. -; http://php.net/allow-url-fopen -allow_url_fopen = On - -; Whether to allow include/require to open URLs (like http:// or ftp://) as files. -; http://php.net/allow-url-include -allow_url_include = Off - -; Define the anonymous ftp password (your email address). PHP's default setting -; for this is empty. -; http://php.net/from -;from="john@doe.com" - -; Define the User-Agent string. PHP's default setting for this is empty. -; http://php.net/user-agent -;user_agent="PHP" - -; Default timeout for socket based streams (seconds) -; http://php.net/default-socket-timeout -default_socket_timeout = 60 - -; If your scripts have to deal with files from Macintosh systems, -; or you are running on a Mac and need to deal with files from -; unix or win32 systems, setting this flag will cause PHP to -; automatically detect the EOL character in those files so that -; fgets() and file() will work regardless of the source of the file. -; http://php.net/auto-detect-line-endings -;auto_detect_line_endings = Off - -;;;;;;;;;;;;;;;;;;;;;; -; Dynamic Extensions ; -;;;;;;;;;;;;;;;;;;;;;; - -; If you wish to have an extension loaded automatically, use the following -; syntax: -; -; extension=modulename.extension -; -; For example, on Windows: -; -; extension=mysqli.dll -; -; ... or under UNIX: -; -; extension=mysqli.so -; -; ... or with a path: -; -; extension=/path/to/extension/mysqli.so -; -; If you only provide the name of the extension, PHP will look for it in its -; default extension directory. -; -; Windows Extensions -; Note that ODBC support is built in, so no dll is needed for it. -; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5+) -; extension folders as well as the separate PECL DLL download (PHP 5+). -; Be sure to appropriately set the extension_dir directive. -; -;extension=php_bz2.dll -;extension=php_curl.dll -;extension=php_fileinfo.dll -;extension=php_ftp.dll -;extension=php_gd2.dll -;extension=php_gettext.dll -;extension=php_gmp.dll -;extension=php_intl.dll -;extension=php_imap.dll -;extension=php_interbase.dll -;extension=php_ldap.dll -;extension=php_mbstring.dll -;extension=php_exif.dll ; Must be after mbstring as it depends on it -;extension=php_mysqli.dll -;extension=php_oci8_12c.dll ; Use with Oracle Database 12c Instant Client -;extension=php_openssl.dll -;extension=php_pdo_firebird.dll -;extension=php_pdo_mysql.dll -;extension=php_pdo_oci.dll -;extension=php_pdo_odbc.dll -;extension=php_pdo_pgsql.dll -;extension=php_pdo_sqlite.dll -;extension=php_pgsql.dll -;extension=php_shmop.dll - -; The MIBS data available in the PHP distribution must be installed. -; See http://www.php.net/manual/en/snmp.installation.php -;extension=php_snmp.dll - -;extension=php_soap.dll -;extension=php_sockets.dll -;extension=php_sqlite3.dll -;extension=php_tidy.dll -;extension=php_xmlrpc.dll -;extension=php_xsl.dll - -;;;;;;;;;;;;;;;;;;; -; Module Settings ; -;;;;;;;;;;;;;;;;;;; - -[CLI Server] -; Whether the CLI web server uses ANSI color coding in its terminal output. -cli_server.color = On - -[Date] -; Defines the default timezone used by the date functions -; http://php.net/date.timezone -date.timezone = Asia/Shanghai - -; http://php.net/date.default-latitude -;date.default_latitude = 31.7667 - -; http://php.net/date.default-longitude -;date.default_longitude = 35.2333 - -; http://php.net/date.sunrise-zenith -;date.sunrise_zenith = 90.583333 - -; http://php.net/date.sunset-zenith -;date.sunset_zenith = 90.583333 - -[filter] -; http://php.net/filter.default -;filter.default = unsafe_raw - -; http://php.net/filter.default-flags -;filter.default_flags = - -[iconv] -; Use of this INI entry is deprecated, use global input_encoding instead. -; If empty, default_charset or input_encoding or iconv.input_encoding is used. -; The precedence is: default_charset < intput_encoding < iconv.input_encoding -;iconv.input_encoding = - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;iconv.internal_encoding = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; If empty, default_charset or output_encoding or iconv.output_encoding is used. -; The precedence is: default_charset < output_encoding < iconv.output_encoding -; To use an output encoding conversion, iconv's output handler must be set -; otherwise output encoding conversion cannot be performed. -;iconv.output_encoding = - -[intl] -;intl.default_locale = -; This directive allows you to produce PHP errors when some error -; happens within intl functions. The value is the level of the error produced. -; Default is 0, which does not produce any errors. -;intl.error_level = E_WARNING -;intl.use_exceptions = 0 - -[sqlite3] -;sqlite3.extension_dir = - -[Pcre] -;PCRE library backtracking limit. -; http://php.net/pcre.backtrack-limit -;pcre.backtrack_limit=100000 - -;PCRE library recursion limit. -;Please note that if you set this value to a high number you may consume all -;the available process stack and eventually crash PHP (due to reaching the -;stack size limit imposed by the Operating System). -; http://php.net/pcre.recursion-limit -;pcre.recursion_limit=100000 - -;Enables or disables JIT compilation of patterns. This requires the PCRE -;library to be compiled with JIT support. -;pcre.jit=1 - -[Pdo] -; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off" -; http://php.net/pdo-odbc.connection-pooling -;pdo_odbc.connection_pooling=strict - -;pdo_odbc.db2_instance_name - -[Pdo_mysql] -; If mysqlnd is used: Number of cache slots for the internal result set cache -; http://php.net/pdo_mysql.cache_size -pdo_mysql.cache_size = 2000 - -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -; http://php.net/pdo_mysql.default-socket -pdo_mysql.default_socket= - -[Phar] -; http://php.net/phar.readonly -;phar.readonly = On - -; http://php.net/phar.require-hash -;phar.require_hash = On - -;phar.cache_list = - -[mail function] -; For Win32 only. -; http://php.net/smtp -SMTP = localhost -; http://php.net/smtp-port -smtp_port = 25 - -; For Win32 only. -; http://php.net/sendmail-from -;sendmail_from = me@example.com - -; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). -; http://php.net/sendmail-path -;sendmail_path = - -; Force the addition of the specified parameters to be passed as extra parameters -; to the sendmail binary. These parameters will always replace the value of -; the 5th parameter to mail(). -;mail.force_extra_parameters = - -; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename -mail.add_x_header = On - -; The path to a log file that will log all mail() calls. Log entries include -; the full path of the script, line number, To address and headers. -;mail.log = -; Log mail to syslog (Event Log on Windows). -;mail.log = syslog - -[ODBC] -; http://php.net/odbc.default-db -;odbc.default_db = Not yet implemented - -; http://php.net/odbc.default-user -;odbc.default_user = Not yet implemented - -; http://php.net/odbc.default-pw -;odbc.default_pw = Not yet implemented - -; Controls the ODBC cursor model. -; Default: SQL_CURSOR_STATIC (default). -;odbc.default_cursortype - -; Allow or prevent persistent links. -; http://php.net/odbc.allow-persistent -odbc.allow_persistent = On - -; Check that a connection is still valid before reuse. -; http://php.net/odbc.check-persistent -odbc.check_persistent = On - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/odbc.max-persistent -odbc.max_persistent = -1 - -; Maximum number of links (persistent + non-persistent). -1 means no limit. -; http://php.net/odbc.max-links -odbc.max_links = -1 - -; Handling of LONG fields. Returns number of bytes to variables. 0 means -; passthru. -; http://php.net/odbc.defaultlrl -odbc.defaultlrl = 4096 - -; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char. -; See the documentation on odbc_binmode and odbc_longreadlen for an explanation -; of odbc.defaultlrl and odbc.defaultbinmode -; http://php.net/odbc.defaultbinmode -odbc.defaultbinmode = 1 - -;birdstep.max_links = -1 - -[Interbase] -; Allow or prevent persistent links. -ibase.allow_persistent = 1 - -; Maximum number of persistent links. -1 means no limit. -ibase.max_persistent = -1 - -; Maximum number of links (persistent + non-persistent). -1 means no limit. -ibase.max_links = -1 - -; Default database name for ibase_connect(). -;ibase.default_db = - -; Default username for ibase_connect(). -;ibase.default_user = - -; Default password for ibase_connect(). -;ibase.default_password = - -; Default charset for ibase_connect(). -;ibase.default_charset = - -; Default timestamp format. -ibase.timestampformat = "%Y-%m-%d %H:%M:%S" - -; Default date format. -ibase.dateformat = "%Y-%m-%d" - -; Default time format. -ibase.timeformat = "%H:%M:%S" - -[MySQLi] - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/mysqli.max-persistent -mysqli.max_persistent = -1 - -; Allow accessing, from PHP's perspective, local files with LOAD DATA statements -; http://php.net/mysqli.allow_local_infile -;mysqli.allow_local_infile = On - -; Allow or prevent persistent links. -; http://php.net/mysqli.allow-persistent -mysqli.allow_persistent = On - -; Maximum number of links. -1 means no limit. -; http://php.net/mysqli.max-links -mysqli.max_links = -1 - -; If mysqlnd is used: Number of cache slots for the internal result set cache -; http://php.net/mysqli.cache_size -mysqli.cache_size = 2000 - -; Default port number for mysqli_connect(). If unset, mysqli_connect() will use -; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the -; compile-time value defined MYSQL_PORT (in that order). Win32 will only look -; at MYSQL_PORT. -; http://php.net/mysqli.default-port -mysqli.default_port = 3306 - -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -; http://php.net/mysqli.default-socket -mysqli.default_socket = - -; Default host for mysql_connect() (doesn't apply in safe mode). -; http://php.net/mysqli.default-host -mysqli.default_host = - -; Default user for mysql_connect() (doesn't apply in safe mode). -; http://php.net/mysqli.default-user -mysqli.default_user = - -; Default password for mysqli_connect() (doesn't apply in safe mode). -; Note that this is generally a *bad* idea to store passwords in this file. -; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw") -; and reveal this password! And of course, any users with read access to this -; file will be able to reveal the password as well. -; http://php.net/mysqli.default-pw -mysqli.default_pw = - -; Allow or prevent reconnect -mysqli.reconnect = Off - -[mysqlnd] -; Enable / Disable collection of general statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -; http://php.net/mysqlnd.collect_statistics -mysqlnd.collect_statistics = On - -; Enable / Disable collection of memory usage statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -; http://php.net/mysqlnd.collect_memory_statistics -mysqlnd.collect_memory_statistics = Off - -; Records communication from all extensions using mysqlnd to the specified log -; file. -; http://php.net/mysqlnd.debug -;mysqlnd.debug = - -; Defines which queries will be logged. -; http://php.net/mysqlnd.log_mask -;mysqlnd.log_mask = 0 - -; Default size of the mysqlnd memory pool, which is used by result sets. -; http://php.net/mysqlnd.mempool_default_size -;mysqlnd.mempool_default_size = 16000 - -; Size of a pre-allocated buffer used when sending commands to MySQL in bytes. -; http://php.net/mysqlnd.net_cmd_buffer_size -;mysqlnd.net_cmd_buffer_size = 2048 - -; Size of a pre-allocated buffer used for reading data sent by the server in -; bytes. -; http://php.net/mysqlnd.net_read_buffer_size -;mysqlnd.net_read_buffer_size = 32768 - -; Timeout for network requests in seconds. -; http://php.net/mysqlnd.net_read_timeout -;mysqlnd.net_read_timeout = 31536000 - -; SHA-256 Authentication Plugin related. File with the MySQL server public RSA -; key. -; http://php.net/mysqlnd.sha256_server_public_key -;mysqlnd.sha256_server_public_key = - -[OCI8] - -; Connection: Enables privileged connections using external -; credentials (OCI_SYSOPER, OCI_SYSDBA) -; http://php.net/oci8.privileged-connect -;oci8.privileged_connect = Off - -; Connection: The maximum number of persistent OCI8 connections per -; process. Using -1 means no limit. -; http://php.net/oci8.max-persistent -;oci8.max_persistent = -1 - -; Connection: The maximum number of seconds a process is allowed to -; maintain an idle persistent connection. Using -1 means idle -; persistent connections will be maintained forever. -; http://php.net/oci8.persistent-timeout -;oci8.persistent_timeout = -1 - -; Connection: The number of seconds that must pass before issuing a -; ping during oci_pconnect() to check the connection validity. When -; set to 0, each oci_pconnect() will cause a ping. Using -1 disables -; pings completely. -; http://php.net/oci8.ping-interval -;oci8.ping_interval = 60 - -; Connection: Set this to a user chosen connection class to be used -; for all pooled server requests with Oracle 11g Database Resident -; Connection Pooling (DRCP). To use DRCP, this value should be set to -; the same string for all web servers running the same application, -; the database pool must be configured, and the connection string must -; specify to use a pooled server. -;oci8.connection_class = - -; High Availability: Using On lets PHP receive Fast Application -; Notification (FAN) events generated when a database node fails. The -; database must also be configured to post FAN events. -;oci8.events = Off - -; Tuning: This option enables statement caching, and specifies how -; many statements to cache. Using 0 disables statement caching. -; http://php.net/oci8.statement-cache-size -;oci8.statement_cache_size = 20 - -; Tuning: Enables statement prefetching and sets the default number of -; rows that will be fetched automatically after statement execution. -; http://php.net/oci8.default-prefetch -;oci8.default_prefetch = 100 - -; Compatibility. Using On means oci_close() will not close -; oci_connect() and oci_new_connect() connections. -; http://php.net/oci8.old-oci-close-semantics -;oci8.old_oci_close_semantics = Off - -[PostgreSQL] -; Allow or prevent persistent links. -; http://php.net/pgsql.allow-persistent -pgsql.allow_persistent = On - -; Detect broken persistent links always with pg_pconnect(). -; Auto reset feature requires a little overheads. -; http://php.net/pgsql.auto-reset-persistent -pgsql.auto_reset_persistent = Off - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/pgsql.max-persistent -pgsql.max_persistent = -1 - -; Maximum number of links (persistent+non persistent). -1 means no limit. -; http://php.net/pgsql.max-links -pgsql.max_links = -1 - -; Ignore PostgreSQL backends Notice message or not. -; Notice message logging require a little overheads. -; http://php.net/pgsql.ignore-notice -pgsql.ignore_notice = 0 - -; Log PostgreSQL backends Notice message or not. -; Unless pgsql.ignore_notice=0, module cannot log notice message. -; http://php.net/pgsql.log-notice -pgsql.log_notice = 0 - -[bcmath] -; Number of decimal digits for all bcmath functions. -; http://php.net/bcmath.scale -bcmath.scale = 0 - -[browscap] -; http://php.net/browscap -;browscap = extra/browscap.ini - -[Session] -; Handler used to store/retrieve data. -; http://php.net/session.save-handler -session.save_handler = files - -; Argument passed to save_handler. In the case of files, this is the path -; where data files are stored. Note: Windows users have to change this -; variable in order to use PHP's session functions. -; -; The path can be defined as: -; -; session.save_path = "N;/path" -; -; where N is an integer. Instead of storing all the session files in -; /path, what this will do is use subdirectories N-levels deep, and -; store the session data in those directories. This is useful if -; your OS has problems with many files in one directory, and is -; a more efficient layout for servers that handle many sessions. -; -; NOTE 1: PHP will not create this directory structure automatically. -; You can use the script in the ext/session dir for that purpose. -; NOTE 2: See the section on garbage collection below if you choose to -; use subdirectories for session storage -; -; The file storage module creates files using mode 600 by default. -; You can change that by using -; -; session.save_path = "N;MODE;/path" -; -; where MODE is the octal representation of the mode. Note that this -; does not overwrite the process's umask. -; http://php.net/session.save-path -;session.save_path = "/tmp" - -; Whether to use strict session mode. -; Strict session mode does not accept uninitialized session ID and regenerate -; session ID if browser sends uninitialized session ID. Strict mode protects -; applications from session fixation via session adoption vulnerability. It is -; disabled by default for maximum compatibility, but enabling it is encouraged. -; https://wiki.php.net/rfc/strict_sessions -session.use_strict_mode = 0 - -; Whether to use cookies. -; http://php.net/session.use-cookies -session.use_cookies = 1 - -; http://php.net/session.cookie-secure -;session.cookie_secure = - -; This option forces PHP to fetch and use a cookie for storing and maintaining -; the session id. We encourage this operation as it's very helpful in combating -; session hijacking when not specifying and managing your own session id. It is -; not the be-all and end-all of session hijacking defense, but it's a good start. -; http://php.net/session.use-only-cookies -session.use_only_cookies = 1 - -; Name of the session (used as cookie name). -; http://php.net/session.name -session.name = PHPSESSID - -; Initialize session on request startup. -; http://php.net/session.auto-start -session.auto_start = 0 - -; Lifetime in seconds of cookie or, if 0, until browser is restarted. -; http://php.net/session.cookie-lifetime -session.cookie_lifetime = 0 - -; The path for which the cookie is valid. -; http://php.net/session.cookie-path -session.cookie_path = / - -; The domain for which the cookie is valid. -; http://php.net/session.cookie-domain -session.cookie_domain = - -; Whether or not to add the httpOnly flag to the cookie, which makes it inaccessible to browser scripting languages such as JavaScript. -; http://php.net/session.cookie-httponly -session.cookie_httponly = - -; Handler used to serialize data. php is the standard serializer of PHP. -; http://php.net/session.serialize-handler -session.serialize_handler = php - -; Defines the probability that the 'garbage collection' process is started -; on every session initialization. The probability is calculated by using -; gc_probability/gc_divisor. Where session.gc_probability is the numerator -; and gc_divisor is the denominator in the equation. Setting this value to 1 -; when the session.gc_divisor value is 100 will give you approximately a 1% chance -; the gc will run on any give request. -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; http://php.net/session.gc-probability -session.gc_probability = 1 - -; Defines the probability that the 'garbage collection' process is started on every -; session initialization. The probability is calculated by using the following equation: -; gc_probability/gc_divisor. Where session.gc_probability is the numerator and -; session.gc_divisor is the denominator in the equation. Setting this value to 1 -; when the session.gc_divisor value is 100 will give you approximately a 1% chance -; the gc will run on any give request. Increasing this value to 1000 will give you -; a 0.1% chance the gc will run on any give request. For high volume production servers, -; this is a more efficient approach. -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 -; http://php.net/session.gc-divisor -session.gc_divisor = 1000 - -; After this number of seconds, stored data will be seen as 'garbage' and -; cleaned up by the garbage collection process. -; http://php.net/session.gc-maxlifetime -session.gc_maxlifetime = 1440 - -; NOTE: If you are using the subdirectory option for storing session files -; (see session.save_path above), then garbage collection does *not* -; happen automatically. You will need to do your own garbage -; collection through a shell script, cron entry, or some other method. -; For example, the following script would is the equivalent of -; setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes): -; find /path/to/sessions -cmin +24 -type f | xargs rm - -; Check HTTP Referer to invalidate externally stored URLs containing ids. -; HTTP_REFERER has to contain this substring for the session to be -; considered as valid. -; http://php.net/session.referer-check -session.referer_check = - -; Set to {nocache,private,public,} to determine HTTP caching aspects -; or leave this empty to avoid sending anti-caching headers. -; http://php.net/session.cache-limiter -session.cache_limiter = nocache - -; Document expires after n minutes. -; http://php.net/session.cache-expire -session.cache_expire = 180 - -; trans sid support is disabled by default. -; Use of trans sid may risk your users' security. -; Use this option with caution. -; - User may send URL contains active session ID -; to other person via. email/irc/etc. -; - URL that contains active session ID may be stored -; in publicly accessible computer. -; - User may access your site with the same session ID -; always using URL stored in browser's history or bookmarks. -; http://php.net/session.use-trans-sid -session.use_trans_sid = 0 - -; Set session ID character length. This value could be between 22 to 256. -; Shorter length than default is supported only for compatibility reason. -; Users should use 32 or more chars. -; http://php.net/session.sid-length -; Default Value: 32 -; Development Value: 26 -; Production Value: 26 -session.sid_length = 26 - -; The URL rewriter will look for URLs in a defined set of HTML tags. -;
is special; if you include them here, the rewriter will -; add a hidden field with the info which is otherwise appended -; to URLs. tag's action attribute URL will not be modified -; unless it is specified. -; Note that all valid entries require a "=", even if no value follows. -; Default Value: "a=href,area=href,frame=src,form=" -; Development Value: "a=href,area=href,frame=src,form=" -; Production Value: "a=href,area=href,frame=src,form=" -; http://php.net/url-rewriter.tags -session.trans_sid_tags = "a=href,area=href,frame=src,form=" - -; URL rewriter does not rewrite absolute URLs by default. -; To enable rewrites for absolute pathes, target hosts must be specified -; at RUNTIME. i.e. use ini_set() -; tags is special. PHP will check action attribute's URL regardless -; of session.trans_sid_tags setting. -; If no host is defined, HTTP_HOST will be used for allowed host. -; Example value: php.net,www.php.net,wiki.php.net -; Use "," for multiple hosts. No spaces are allowed. -; Default Value: "" -; Development Value: "" -; Production Value: "" -;session.trans_sid_hosts="" - -; Define how many bits are stored in each character when converting -; the binary hash data to something readable. -; Possible values: -; 4 (4 bits: 0-9, a-f) -; 5 (5 bits: 0-9, a-v) -; 6 (6 bits: 0-9, a-z, A-Z, "-", ",") -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 -; http://php.net/session.hash-bits-per-character -session.sid_bits_per_character = 5 - -; Enable upload progress tracking in $_SESSION -; Default Value: On -; Development Value: On -; Production Value: On -; http://php.net/session.upload-progress.enabled -;session.upload_progress.enabled = On - -; Cleanup the progress information as soon as all POST data has been read -; (i.e. upload completed). -; Default Value: On -; Development Value: On -; Production Value: On -; http://php.net/session.upload-progress.cleanup -;session.upload_progress.cleanup = On - -; A prefix used for the upload progress key in $_SESSION -; Default Value: "upload_progress_" -; Development Value: "upload_progress_" -; Production Value: "upload_progress_" -; http://php.net/session.upload-progress.prefix -;session.upload_progress.prefix = "upload_progress_" - -; The index name (concatenated with the prefix) in $_SESSION -; containing the upload progress information -; Default Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Development Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Production Value: "PHP_SESSION_UPLOAD_PROGRESS" -; http://php.net/session.upload-progress.name -;session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS" - -; How frequently the upload progress should be updated. -; Given either in percentages (per-file), or in bytes -; Default Value: "1%" -; Development Value: "1%" -; Production Value: "1%" -; http://php.net/session.upload-progress.freq -;session.upload_progress.freq = "1%" - -; The minimum delay between updates, in seconds -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; http://php.net/session.upload-progress.min-freq -;session.upload_progress.min_freq = "1" - -; Only write session data when session data is changed. Enabled by default. -; http://php.net/session.lazy-write -;session.lazy_write = On - -[Assertion] -; Switch whether to compile assertions at all (to have no overhead at run-time) -; -1: Do not compile at all -; 0: Jump over assertion at run-time -; 1: Execute assertions -; Changing from or to a negative value is only possible in php.ini! (For turning assertions on and off at run-time, see assert.active, when zend.assertions = 1) -; Default Value: 1 -; Development Value: 1 -; Production Value: -1 -; http://php.net/zend.assertions -zend.assertions = -1 - -; Assert(expr); active by default. -; http://php.net/assert.active -;assert.active = On - -; Throw an AssertationException on failed assertions -; http://php.net/assert.exception -;assert.exception = On - -; Issue a PHP warning for each failed assertion. (Overridden by assert.exception if active) -; http://php.net/assert.warning -;assert.warning = On - -; Don't bail out by default. -; http://php.net/assert.bail -;assert.bail = Off - -; User-function to be called if an assertion fails. -; http://php.net/assert.callback -;assert.callback = 0 - -; Eval the expression with current error_reporting(). Set to true if you want -; error_reporting(0) around the eval(). -; http://php.net/assert.quiet-eval -;assert.quiet_eval = 0 - -[COM] -; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs -; http://php.net/com.typelib-file -;com.typelib_file = - -; allow Distributed-COM calls -; http://php.net/com.allow-dcom -;com.allow_dcom = true - -; autoregister constants of a components typlib on com_load() -; http://php.net/com.autoregister-typelib -;com.autoregister_typelib = true - -; register constants casesensitive -; http://php.net/com.autoregister-casesensitive -;com.autoregister_casesensitive = false - -; show warnings on duplicate constant registrations -; http://php.net/com.autoregister-verbose -;com.autoregister_verbose = true - -; The default character set code-page to use when passing strings to and from COM objects. -; Default: system ANSI code page -;com.code_page= - -[mbstring] -; language for internal character representation. -; This affects mb_send_mail() and mbstring.detect_order. -; http://php.net/mbstring.language -;mbstring.language = Japanese - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; internal/script encoding. -; Some encoding cannot work as internal encoding. (e.g. SJIS, BIG5, ISO-2022-*) -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;mbstring.internal_encoding = - -; Use of this INI entry is deprecated, use global input_encoding instead. -; http input encoding. -; mbstring.encoding_traslation = On is needed to use this setting. -; If empty, default_charset or input_encoding or mbstring.input is used. -; The precedence is: default_charset < intput_encoding < mbsting.http_input -; http://php.net/mbstring.http-input -;mbstring.http_input = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; http output encoding. -; mb_output_handler must be registered as output buffer to function. -; If empty, default_charset or output_encoding or mbstring.http_output is used. -; The precedence is: default_charset < output_encoding < mbstring.http_output -; To use an output encoding conversion, mbstring's output handler must be set -; otherwise output encoding conversion cannot be performed. -; http://php.net/mbstring.http-output -;mbstring.http_output = - -; enable automatic encoding translation according to -; mbstring.internal_encoding setting. Input chars are -; converted to internal encoding by setting this to On. -; Note: Do _not_ use automatic encoding translation for -; portable libs/applications. -; http://php.net/mbstring.encoding-translation -;mbstring.encoding_translation = Off - -; automatic encoding detection order. -; "auto" detect order is changed according to mbstring.language -; http://php.net/mbstring.detect-order -;mbstring.detect_order = auto - -; substitute_character used when character cannot be converted -; one from another -; http://php.net/mbstring.substitute-character -;mbstring.substitute_character = none - -; overload(replace) single byte functions by mbstring functions. -; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(), -; etc. Possible values are 0,1,2,4 or combination of them. -; For example, 7 for overload everything. -; 0: No overload -; 1: Overload mail() function -; 2: Overload str*() functions -; 4: Overload ereg*() functions -; http://php.net/mbstring.func-overload -;mbstring.func_overload = 0 - -; enable strict encoding detection. -; Default: Off -;mbstring.strict_detection = On - -; This directive specifies the regex pattern of content types for which mb_output_handler() -; is activated. -; Default: mbstring.http_output_conv_mimetype=^(text/|application/xhtml\+xml) -;mbstring.http_output_conv_mimetype= - -[gd] -; Tell the jpeg decode to ignore warnings and try to create -; a gd image. The warning will then be displayed as notices -; disabled by default -; http://php.net/gd.jpeg-ignore-warning -;gd.jpeg_ignore_warning = 1 - -[exif] -; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS. -; With mbstring support this will automatically be converted into the encoding -; given by corresponding encode setting. When empty mbstring.internal_encoding -; is used. For the decode settings you can distinguish between motorola and -; intel byte order. A decode setting cannot be empty. -; http://php.net/exif.encode-unicode -;exif.encode_unicode = ISO-8859-15 - -; http://php.net/exif.decode-unicode-motorola -;exif.decode_unicode_motorola = UCS-2BE - -; http://php.net/exif.decode-unicode-intel -;exif.decode_unicode_intel = UCS-2LE - -; http://php.net/exif.encode-jis -;exif.encode_jis = - -; http://php.net/exif.decode-jis-motorola -;exif.decode_jis_motorola = JIS - -; http://php.net/exif.decode-jis-intel -;exif.decode_jis_intel = JIS - -[Tidy] -; The path to a default tidy configuration file to use when using tidy -; http://php.net/tidy.default-config -;tidy.default_config = /usr/local/lib/php/default.tcfg - -; Should tidy clean and repair output automatically? -; WARNING: Do not use this option if you are generating non-html content -; such as dynamic images -; http://php.net/tidy.clean-output -tidy.clean_output = Off - -[soap] -; Enables or disables WSDL caching feature. -; http://php.net/soap.wsdl-cache-enabled -soap.wsdl_cache_enabled=1 - -; Sets the directory name where SOAP extension will put cache files. -; http://php.net/soap.wsdl-cache-dir -soap.wsdl_cache_dir="/tmp" - -; (time to live) Sets the number of second while cached file will be used -; instead of original one. -; http://php.net/soap.wsdl-cache-ttl -soap.wsdl_cache_ttl=86400 - -; Sets the size of the cache limit. (Max. number of WSDL files to cache) -soap.wsdl_cache_limit = 5 - -[sysvshm] -; A default size of the shared memory segment -;sysvshm.init_mem = 10000 - -[ldap] -; Sets the maximum number of open links or -1 for unlimited. -ldap.max_links = -1 - -[dba] -;dba.default_handler= - -[opcache] -; Determines if Zend OPCache is enabled -;opcache.enable=1 - -; Determines if Zend OPCache is enabled for the CLI version of PHP -;opcache.enable_cli=1 - -; The OPcache shared memory storage size. -;opcache.memory_consumption=128 - -; The amount of memory for interned strings in Mbytes. -;opcache.interned_strings_buffer=8 - -; The maximum number of keys (scripts) in the OPcache hash table. -; Only numbers between 200 and 1000000 are allowed. -;opcache.max_accelerated_files=10000 - -; The maximum percentage of "wasted" memory until a restart is scheduled. -;opcache.max_wasted_percentage=5 - -; When this directive is enabled, the OPcache appends the current working -; directory to the script key, thus eliminating possible collisions between -; files with the same name (basename). Disabling the directive improves -; performance, but may break existing applications. -;opcache.use_cwd=1 - -; When disabled, you must reset the OPcache manually or restart the -; webserver for changes to the filesystem to take effect. -;opcache.validate_timestamps=1 - -; How often (in seconds) to check file timestamps for changes to the shared -; memory storage allocation. ("1" means validate once per second, but only -; once per request. "0" means always validate) -;opcache.revalidate_freq=2 - -; Enables or disables file search in include_path optimization -;opcache.revalidate_path=0 - -; If disabled, all PHPDoc comments are dropped from the code to reduce the -; size of the optimized code. -;opcache.save_comments=1 - -; If enabled, a fast shutdown sequence is used for the accelerated code -; Depending on the used Memory Manager this may cause some incompatibilities. -;opcache.fast_shutdown=0 - -; Allow file existence override (file_exists, etc.) performance feature. -;opcache.enable_file_override=0 - -; A bitmask, where each bit enables or disables the appropriate OPcache -; passes -;opcache.optimization_level=0xffffffff - -;opcache.inherited_hack=1 -;opcache.dups_fix=0 - -; The location of the OPcache blacklist file (wildcards allowed). -; Each OPcache blacklist file is a text file that holds the names of files -; that should not be accelerated. The file format is to add each filename -; to a new line. The filename may be a full path or just a file prefix -; (i.e., /var/www/x blacklists all the files and directories in /var/www -; that start with 'x'). Line starting with a ; are ignored (comments). -;opcache.blacklist_filename= - -; Allows exclusion of large files from being cached. By default all files -; are cached. -;opcache.max_file_size=0 - -; Check the cache checksum each N requests. -; The default value of "0" means that the checks are disabled. -;opcache.consistency_checks=0 - -; How long to wait (in seconds) for a scheduled restart to begin if the cache -; is not being accessed. -;opcache.force_restart_timeout=180 - -; OPcache error_log file name. Empty string assumes "stderr". -;opcache.error_log= - -; All OPcache errors go to the Web server log. -; By default, only fatal errors (level 0) or errors (level 1) are logged. -; You can also enable warnings (level 2), info messages (level 3) or -; debug messages (level 4). -;opcache.log_verbosity_level=1 - -; Preferred Shared Memory back-end. Leave empty and let the system decide. -;opcache.preferred_memory_model= - -; Protect the shared memory from unexpected writing during script execution. -; Useful for internal debugging only. -;opcache.protect_memory=0 - -; Allows calling OPcache API functions only from PHP scripts which path is -; started from specified string. The default "" means no restriction -;opcache.restrict_api= - -; Mapping base of shared memory segments (for Windows only). All the PHP -; processes have to map shared memory into the same address space. This -; directive allows to manually fix the "Unable to reattach to base address" -; errors. -;opcache.mmap_base= - -; Enables and sets the second level cache directory. -; It should improve performance when SHM memory is full, at server restart or -; SHM reset. The default "" disables file based caching. -;opcache.file_cache= - -; Enables or disables opcode caching in shared memory. -;opcache.file_cache_only=0 - -; Enables or disables checksum validation when script loaded from file cache. -;opcache.file_cache_consistency_checks=1 - -; Implies opcache.file_cache_only=1 for a certain process that failed to -; reattach to the shared memory (for Windows only). Explicitly enabled file -; cache is required. -;opcache.file_cache_fallback=1 - -; Enables or disables copying of PHP code (text segment) into HUGE PAGES. -; This should improve performance, but requires appropriate OS configuration. -;opcache.huge_code_pages=1 - -; Validate cached file permissions. -;opcache.validate_permission=0 - -; Prevent name collisions in chroot'ed environment. -;opcache.validate_root=0 - -[curl] -; A default value for the CURLOPT_CAINFO option. This is required to be an -; absolute path. -;curl.cainfo = - -[openssl] -; The location of a Certificate Authority (CA) file on the local filesystem -; to use when verifying the identity of SSL/TLS peers. Most users should -; not specify a value for this directive as PHP will attempt to use the -; OS-managed cert stores in its absence. If specified, this value may still -; be overridden on a per-stream basis via the "cafile" SSL stream context -; option. -;openssl.cafile= - -; If openssl.cafile is not specified or if the CA file is not found, the -; directory pointed to by openssl.capath is searched for a suitable -; certificate. This value must be a correctly hashed certificate directory. -; Most users should not specify a value for this directive as PHP will -; attempt to use the OS-managed cert stores in its absence. If specified, -; this value may still be overridden on a per-stream basis via the "capath" -; SSL stream context option. -;openssl.capath= - -; Local Variables: -; tab-width: 4 -; End: - -[XDebug] -xdebug.remote_enable = 1 -xdebug.remote_handler = "dbgp" -; Set to host.docker.internal on Mac and Windows, otherwise, set to host real ip -xdebug.remote_host = host.docker.internal -;xdebug.remote_port = 9000 -xdebug.remote_log = /var/log/php/xdebug.log - -SERVER_ENV=develop - -yaf.use_spl_autoload=1 - -[xhprof] -;xhprof.output_dir = /var/log/php/xhprof.log \ No newline at end of file diff --git a/php/5/data.yml b/php/5/data.yml deleted file mode 100755 index 8a8d66866..000000000 --- a/php/5/data.yml +++ /dev/null @@ -1,96 +0,0 @@ -additionalProperties: - formFields: - - type: select - multiple: true - labelZh: 默认扩展 - labelEn: Extensions - allowCreate: true - default: - values: - - label: opcache - value: opcache - - label: memcached - value: memcached - - label: memcache - value: memcache - - label: redis - value: redis - - label: mcrypt - value: mcrypt - - label: xdebug - value: xdebug - - label: imap - value: imap - - label: exif - value: exif - - label: intl - value: intl - - label: swoole - value: swoole - - label: yaf - value: yaf - - label: pgsql - value: pgsql - - label: pdo_pgsql - value: pdo_pgsql - - label: snmp - value: snmp - - label: ldap - value: ldap - - label: pspell - value: pspell - - label: bz2 - value: bz2 - - label: sysvshm - value: sysvshm - - label: calendar - value: calendar - - label: gmp - value: gmp - - label: sysvmsg - value: sysvmsg - - label: igbinary - value: igbinary - - label: mysqli - value: mysqli - - label: pdo_mysql - value: pdo_mysql - - label: mbstring - value: mbstring - - label: gd - value: gd - - label: ioncube_loader - value: ioncube_loader - - label: curl - value: curl - - label: sg11 - value: sg11 - - label: imagick - value: imagick - envKey: PHP_EXTENSIONS - - default: 5.6.40 - envKey: PHP_VERSION - labelEn: PHP Version - labelZh: PHP 版本 - required: true - type: select - values: - - label: "5.6.40" - value: "5.6.40" - - default: https://mirrors.tuna.tsinghua.edu.cn - envKey: CONTAINER_PACKAGE_URL - labelEn: Package Source - labelZh: 扩展源 - required: true - type: select - values: - - label: "https://mirrors.tuna.tsinghua.edu.cn" - value: "https://mirrors.tuna.tsinghua.edu.cn" - - default: 9000 - envKey: PANEL_APP_PORT_HTTP - labelEn: PHP-FPM Port - labelZh: PHP-FPM 端口 - required: true - rule: paramPort - type: number - \ No newline at end of file diff --git a/php/5/docker-compose.yml b/php/5/docker-compose.yml deleted file mode 100644 index c78da286a..000000000 --- a/php/5/docker-compose.yml +++ /dev/null @@ -1,35 +0,0 @@ -services: - php: - build: - context: ./build - args: - PHP_IMAGE: 1panel/php:${PHP_VERSION}-fpm - CONTAINER_PACKAGE_URL: ${CONTAINER_PACKAGE_URL} - PHP_EXTENSIONS: ${PHP_EXTENSIONS} - TZ: ${TZ} - image: ${IMAGE_NAME} - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - volumes: - - ${PANEL_WEBSITE_DIR}:/www/ - - ./conf:/usr/local/etc/php - - ./conf/conf.d:/usr/local/etc/php/conf.d - - ./conf/php-fpm.conf:/usr/local/etc/php-fpm.d/www.conf - - ./log:/var/log/php - - ./extensions:${EXTENSION_DIR} - - ./supervisor/supervisord.conf:/etc/supervisord.conf - - ./supervisor/supervisor.d/php-fpm.ini:/etc/supervisor.d/php-fpm.ini - - ./supervisor/supervisor.d:/etc/supervisor.d - - ./supervisor/log:/var/log/supervisor - - ./composer:/tmp/composer - ports: - - 127.0.0.1:${PANEL_APP_PORT_HTTP}:9000 - labels: - createdBy: "Apps" - cap_add: - - SYS_PTRACE -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/php/5/supervisor/supervisor.d/php-fpm.ini b/php/5/supervisor/supervisor.d/php-fpm.ini deleted file mode 100644 index 06609e64f..000000000 --- a/php/5/supervisor/supervisor.d/php-fpm.ini +++ /dev/null @@ -1,11 +0,0 @@ -[program:php-fpm] -command=php-fpm -process_name=%(program_name)s_%(process_num)02d -user=root -numprocs=1 -autostart=true -autorestart=false -startsecs=0 -redirect_stderr=true -stdout_logfile=/dev/stdout -stdout_logfile_maxbytes=0 \ No newline at end of file diff --git a/php/5/supervisor/supervisord.conf b/php/5/supervisor/supervisord.conf deleted file mode 100644 index eb1d14351..000000000 --- a/php/5/supervisor/supervisord.conf +++ /dev/null @@ -1,155 +0,0 @@ -; Sample supervisor config file. -; -; For more information on the config file, please see: -; http://supervisord.org/configuration.html -; -; Notes: -; - Shell expansion ("~" or "$HOME") is not supported. Environment -; variables can be expanded using this syntax: "%(ENV_HOME)s". -; - Quotes around values are not supported, except in the case of -; the environment= options as shown below. -; - Comments must have a leading space: "a=b ;comment" not "a=b;comment". -; - Command will be truncated if it looks like a config file comment, e.g. -; "command=bash -c 'foo ; bar'" will truncate to "command=bash -c 'foo ". -[unix_http_server] -; the path to the socket file -file = /run/supervisor.sock - -; chmod=0700 ; socket file mode (default 0700) -; chown=nobody:nogroup ; socket file uid:gid owner -; username=user ; default is no username (open server) -; password=123 ; default is no password (open server) -; inet (TCP) server disabled by default -[inet_http_server] -; ip_address:port specifier, *:port for all iface -port = 127.0.0.1:9002 - -; username=user ; default is no username (open server) -; password=123 ; default is no password (open server) -[supervisord] -; main log file; default $CWD/supervisord.log -logfile = /var/log/supervisord.log -; max main logfile bytes b4 rotation; default 50MB -logfile_maxbytes = 50MB -; # of main logfile backups; 0 means none, default 11 -logfile_backups = 10 -; log level; default info; others: debug,warn,trace -loglevel = info -; supervisord pidfile; default supervisord.pid -pidfile = /run/supervisord.pid -; start in foreground if true; default false -nodaemon = true -; min. avail startup file descriptors; default 1024 -minfds = 1024 -; min. avail process descriptors;default 200 -minprocs = 200 -; umask=022 ; process file creation umask; default 022 -; user=supervisord ; setuid to this UNIX account at startup; recommended if root -; identifier=supervisor ; supervisord identifier, default is 'supervisor' -; directory=/tmp ; default is not to cd during start -; nocleanup=true ; don't clean up tempfiles at start; default false -; 'AUTO' child log dir, default $TEMP -childlogdir = /var/log/supervisor - -; environment=KEY="value" ; key value pairs to add to environment -; strip_ansi=false ; strip ansi escape codes in logs; def. false -; The rpcinterface:supervisor section must remain in the config file for -; RPC (supervisorctl/web interface) to work. Additional interfaces may be -; added by defining them in separate [rpcinterface:x] sections. -[rpcinterface:supervisor] -supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface - -; The supervisorctl section configures how supervisorctl will connect to -; supervisord. configure it match the settings in either the unix_http_server -; or inet_http_server section. -[supervisorctl] -; use a unix:// URL for a unix socket -serverurl = unix:///run/supervisor.sock - -; serverurl=http://127.0.0.1:9001 ; use an http:// url to specify an inet socket -; username=chris ; should be same as in [*_http_server] if set -; password=123 ; should be same as in [*_http_server] if set -; prompt=mysupervisor ; cmd line prompt (default "supervisor") -; history_file=~/.sc_history ; use readline history if available -; The sample program section below shows all possible program subsection values. -; Create one or more 'real' program: sections to be able to control them under -; supervisor. -; [program:theprogramname] -; command=/bin/cat ; the program (relative uses PATH, can take args) -; process_name=%(program_name)s ; process_name expr (default %(program_name)s) -; numprocs=1 ; number of processes copies to start (def 1) -; directory=/tmp ; directory to cwd to before exec (def no cwd) -; umask=022 ; umask for process (default None) -; priority=999 ; the relative start priority (default 999) -; autostart=true ; start at supervisord start (default: true) -; startsecs=1 ; # of secs prog must stay up to be running (def. 1) -; startretries=3 ; max # of serial start failures when starting (default 3) -; autorestart=unexpected ; when to restart if exited after running (def: unexpected) -; exitcodes=0 ; 'expected' exit codes used with autorestart (default 0) -; stopsignal=QUIT ; signal used to kill process (default TERM) -; stopwaitsecs=10 ; max num secs to wait b4 SIGKILL (default 10) -; stopasgroup=false ; send stop signal to the UNIX process group (default false) -; killasgroup=false ; SIGKILL the UNIX process group (def false) -; user=chrism ; setuid to this UNIX account to run the program -; redirect_stderr=true ; redirect proc stderr to stdout (default false) -; stdout_logfile=/a/path ; stdout log path, NONE for none; default AUTO -; stdout_logfile_maxbytes=1MB ; max # logfile bytes b4 rotation (default 50MB) -; stdout_logfile_backups=10 ; # of stdout logfile backups (0 means none, default 10) -; stdout_capture_maxbytes=1MB ; number of bytes in 'capturemode' (default 0) -; stdout_events_enabled=false ; emit events on stdout writes (default false) -; stdout_syslog=false ; send stdout to syslog with process name (default false) -; stderr_logfile=/a/path ; stderr log path, NONE for none; default AUTO -; stderr_logfile_maxbytes=1MB ; max # logfile bytes b4 rotation (default 50MB) -; stderr_logfile_backups=10 ; # of stderr logfile backups (0 means none, default 10) -; stderr_capture_maxbytes=1MB ; number of bytes in 'capturemode' (default 0) -; stderr_events_enabled=false ; emit events on stderr writes (default false) -; stderr_syslog=false ; send stderr to syslog with process name (default false) -; environment=A="1",B="2" ; process environment additions (def no adds) -; serverurl=AUTO ; override serverurl computation (childutils) -; The sample eventlistener section below shows all possible eventlistener -; subsection values. Create one or more 'real' eventlistener: sections to be -; able to handle event notifications sent by supervisord. -; [eventlistener:theeventlistenername] -; command=/bin/eventlistener ; the program (relative uses PATH, can take args) -; process_name=%(program_name)s ; process_name expr (default %(program_name)s) -; numprocs=1 ; number of processes copies to start (def 1) -; events=EVENT ; event notif. types to subscribe to (req'd) -; buffer_size=10 ; event buffer queue size (default 10) -; directory=/tmp ; directory to cwd to before exec (def no cwd) -; umask=022 ; umask for process (default None) -; priority=-1 ; the relative start priority (default -1) -; autostart=true ; start at supervisord start (default: true) -; startsecs=1 ; # of secs prog must stay up to be running (def. 1) -; startretries=3 ; max # of serial start failures when starting (default 3) -; autorestart=unexpected ; autorestart if exited after running (def: unexpected) -; exitcodes=0 ; 'expected' exit codes used with autorestart (default 0) -; stopsignal=QUIT ; signal used to kill process (default TERM) -; stopwaitsecs=10 ; max num secs to wait b4 SIGKILL (default 10) -; stopasgroup=false ; send stop signal to the UNIX process group (default false) -; killasgroup=false ; SIGKILL the UNIX process group (def false) -; user=chrism ; setuid to this UNIX account to run the program -; redirect_stderr=false ; redirect_stderr=true is not allowed for eventlisteners -; stdout_logfile=/a/path ; stdout log path, NONE for none; default AUTO -; stdout_logfile_maxbytes=1MB ; max # logfile bytes b4 rotation (default 50MB) -; stdout_logfile_backups=10 ; # of stdout logfile backups (0 means none, default 10) -; stdout_events_enabled=false ; emit events on stdout writes (default false) -; stdout_syslog=false ; send stdout to syslog with process name (default false) -; stderr_logfile=/a/path ; stderr log path, NONE for none; default AUTO -; stderr_logfile_maxbytes=1MB ; max # logfile bytes b4 rotation (default 50MB) -; stderr_logfile_backups=10 ; # of stderr logfile backups (0 means none, default 10) -; stderr_events_enabled=false ; emit events on stderr writes (default false) -; stderr_syslog=false ; send stderr to syslog with process name (default false) -; environment=A="1",B="2" ; process environment additions -; serverurl=AUTO ; override serverurl computation (childutils) -; The sample group section below shows all possible group values. Create one -; or more 'real' group: sections to create "heterogeneous" process groups. -; [group:thegroupname] -; programs=progname1,progname2 ; each refers to 'x' in [program:x] definitions -; priority=999 ; the relative start priority (default 999) -; The [include] section can just contain the "files" setting. This -; setting can list multiple files (separated by whitespace or -; newlines). It can also contain wildcards. The filenames are -; interpreted as relative to this file. Included files *cannot* -; include files themselves. -[include] -files = /etc/supervisor.d/*.ini \ No newline at end of file diff --git a/php/7/.env b/php/7/.env deleted file mode 100644 index 5192b5124..000000000 --- a/php/7/.env +++ /dev/null @@ -1,6 +0,0 @@ -PHP_VERSION= -CONTAINER_PACKAGE_URL= -PHP_EXTENSIONS= -IMAGE_NAME= -TZ="Asia/Shanghai" -EXTENSION_DIR="/usr/local/lib/php/extensions" diff --git a/php/7/build/Dockerfile b/php/7/build/Dockerfile deleted file mode 100644 index 8e38aab31..000000000 --- a/php/7/build/Dockerfile +++ /dev/null @@ -1,30 +0,0 @@ -ARG PHP_IMAGE -FROM ${PHP_IMAGE} - -ARG PHP_EXTENSIONS -ARG CONTAINER_PACKAGE_URL - -RUN if [ "${CONTAINER_PACKAGE_URL}" != "https://deb.debian.org" ]; then \ - sed -i \ - -e "s|http://snapshot.debian.org/archive/debian|${CONTAINER_PACKAGE_URL}|g" \ - -e "s|http://deb.debian.org/debian|${CONTAINER_PACKAGE_URL}/debian|g" \ - -e "s|http://snapshot.debian.org/archive/debian-security|${CONTAINER_PACKAGE_URL}|g" \ - -e "s|http://deb.debian.org/debian-security|${CONTAINER_PACKAGE_URL}/debian-security|g" \ - /etc/apt/sources.list && \ - apt-get update; \ - fi - -COPY ./data /tmp/data - -COPY data/install-ext /usr/local/bin/ -RUN chmod uga+x /usr/local/bin/install-ext - -ENV PHP_INI_SCAN_DIR=/usr/local/etc/php/conf.d - -RUN pear config-set php_ini /usr/local/etc/php/php.ini - -RUN usermod -u 1000 www-data && groupmod -g 1000 www-data - -ENTRYPOINT ["supervisord", "--nodaemon", "--configuration", "/etc/supervisord.conf"] - -WORKDIR /www \ No newline at end of file diff --git a/php/7/build/data/imagick-3.8.0.tar.gz b/php/7/build/data/imagick-3.8.0.tar.gz deleted file mode 100644 index a87f5e4af..000000000 Binary files a/php/7/build/data/imagick-3.8.0.tar.gz and /dev/null differ diff --git a/php/7/build/data/install-ext b/php/7/build/data/install-ext deleted file mode 100644 index bcf0886c7..000000000 --- a/php/7/build/data/install-ext +++ /dev/null @@ -1,310 +0,0 @@ -#!/bin/bash - -export MC="-j$(nproc)" -ERROR_CODE=0 - -echo -echo "============================================" -echo "PHP version : ${PHP_VERSION}" -echo "Install extensions : $1" -echo "============================================" -echo - -installExtensionFromTgz() -{ - tgzName=$1 - result="" - extensionName="${tgzName%%-*}" - shift 1 - result=$@ - mkdir /tmp/data/${tgzName} - tar -zxvf /tmp/data/${tgzName}.tar.gz -C /tmp/data/${tgzName} --strip-components=1 - ( cd /tmp/data/${tgzName} && phpize && ./configure ${result} && make ${MC} && make install ) - - docker-php-ext-enable ${extensionName} -} -is_extension_installed() { - local extension=$1 - if php -m | grep -q "^$extension$"; then - echo "------ $extension is already installed ------" - return 0 - else - return 1 - fi -} - -install_php_extensions() { - local extension=$1 - install-php-extensions $extension - local check_name=$2 - if [ -z "$check_name" ]; then - check_name=$extension - fi - if is_extension_installed "$check_name"; then - echo "------ install-php-extensions $extension succeeded ------" - return - fi - - echo "------ install-php-extensions $extension failed ------" - ERROR_CODE=1 - return 1 -} - -pecl_install() { - local extension=$1 - printf "\n" | pecl install $extension - docker-php-ext-enable $extension - if is_extension_installed "$extension"; then - echo "------ pecl install $extension succeeded ------" - return 0 - fi - echo "------ pecl install $extension failed ------" - ERROR_CODE=1 - return 1 -} - -docker_php_ext_install() { - local extension=$1 - local check_name=$2 - if [ -z "$check_name" ]; then - check_name=$extension - fi - docker-php-ext-install $extension - if is_extension_installed "$check_name"; then - echo "------ docker-php-ext-install install $extension succeeded ------" - return 0 - fi - echo "------ docker-php-ext-install install $extension failed------" - ERROR_CODE=1 - return 1 -} - -install_extension_default() { - local extension=$1 - printf "\n" | pecl install $extension - if [ $? -eq 0 ]; then - docker-php-ext-enable $extension - echo "------ pecl install $extension succeeded ------" - else - echo "------ pecl install $extension failed use docker-php-ext-install------" - docker-php-ext-install ${MC} $extension - if [ $? -eq 0 ]; then - echo "------ docker-php-ext-install install $extension succeeded ------" - else - echo "------ docker-php-ext-install install $extension failed use install-php-extensions------" - install-php-extensions $extension - if [ $? -eq 0 ]; then - echo "------ install-php-extensions $extension succeeded ------" - else - echo "------ install-php-extensions $extension failed ------" - ERROR_CODE=1 - fi - fi - fi -} - - -install_msg() { - if [ $? -eq 0 ]; then - echo "------ install $1 succeeded ------" - else - echo "------ install $1 failed ------" - ERROR_CODE=1 - fi -} - -install_memcache() { - printf "\n" | pecl install memcache - install_msg memcache - docker-php-ext-enable memcache -} - -install_pdo_pgsql() { - apt-get update && apt-get install -y libpq-dev - install_msg pdo_pgsql - docker-php-ext-install pdo_pgsql -} - -install_pdo_mysql() { - docker-php-ext-install pdo_mysql - install_msg pdo_mysql -} - -install_yaf() { - pecl install yaf - install_msg yaf - docker-php-ext-enable yaf -} - -install_imagick() { - apt-get update && apt-get install -y libmagickwand-dev - installExtensionFromTgz imagick-3.8.0 - install_msg imagick -} - -install_extension() { - local extension=$1 - if [ -z "$extension" ]; then - return - fi - if is_extension_installed "$extension"; then - return - fi - - echo "------ install extension: $extension ------" - - if [ "$extension" = "gd" ]; then - install_php_extensions gd - elif [ "$extension" = "memcache" ]; then - install_memcache - elif [ "$extension" = "yaf" ]; then - install_yaf - elif [ "$extension" = "pdo_pgsql" ]; then - install_pdo_pgsql - elif [ "$extension" = "pdo_mysql" ]; then - install_pdo_mysql - elif [ "$extension" = "yaml" ]; then - apt-get install -y libyaml-dev - pecl_install yaml - elif [ "$extension" = "mongodb" ]; then - apt-get install -y libssl-dev - pecl_install mongodb - elif [ "$extension" = "mcrypt" ]; then - apt-get install -y libmcrypt-dev - pecl_install mcrypt - elif [ "$extension" = "ssh2" ]; then - apt-get install -y libssh2-1-dev libssh2-1 - pecl_install ssh2 - elif [ "$extension" = "rdkafka" ]; then - apt-get install -y librdkafka-dev - pecl_install rdkafka - elif [ "$extension" = "varnish" ]; then - apt-get install -y libvarnishapi-dev - pecl_install varnish - elif [ "$extension" = "bcmath" ]; then - docker_php_ext_install bcmath - elif [ "$extension" = "pcntl" ]; then - docker_php_ext_install pcntl - elif [ "$extension" = "shmop" ]; then - docker_php_ext_install shmop - elif [ "$extension" = "gettext" ]; then - docker_php_ext_install gettext - elif [ "$extension" = "sockets" ]; then - docker_php_ext_install sockets - elif [ "$extension" = "sysvsem" ]; then - docker_php_ext_install sysvsem - elif [ "$extension" = "sysvmsg" ]; then - docker_php_ext_install sysvmsg - elif [ "$extension" = "opcache" ]; then - docker_php_ext_install opcache "Zend OPcache" - elif [ "$extension" = "mysqli" ]; then - install_php_extensions mysqli - elif [ "$extension" = "sysvshm" ]; then - docker_php_ext_install sysvshm - elif [ "$extension" = "calendar" ]; then - docker_php_ext_install calendar - elif [ "$extension" = "sodium" ]; then - apt-get install -y libsodium-dev - docker_php_ext_install sodium - elif [ "$extension" = "zip" ]; then - apt-get update && apt-get install -y libzip-dev - docker_php_ext_install zip - elif [ "$extension" = "memcached" ]; then - install_php_extensions memcached - elif [ "$extension" = "igbinary" ]; then - pecl_install igbinary - elif [ "$extension" = "apcu" ]; then - pecl_install apcu - elif [ "$extension" = "redis" ]; then - install_php_extensions redis - elif [ "$extension" = "xdebug" ]; then - install_php_extensions xdebug - elif [ "$extension" = "imap" ]; then - install_php_extensions imap - elif [ "$extension" = "intl" ]; then - install_php_extensions intl - elif [ "$extension" = "swoole" ]; then - install_php_extensions swoole - elif [ "$extension" = "pgsql" ]; then - install_php_extensions pgsql - elif [ "$extension" = "curl" ]; then - install_php_extensions curl - elif [ "$extension" = "sg16" ]; then - install_php_extensions sourceguardian "SourceGuardian" - elif [ "$extension" = "snmp" ]; then - install_php_extensions snmp - elif [ "$extension" = "mbstring" ]; then - install_php_extensions mbstring - elif [ "$extension" = "pdo_firebird" ]; then - install_php_extensions pdo_firebird - elif [ "$extension" = "pdo_dblib" ]; then - install_php_extensions pdo_dblib - elif [ "$extension" = "pdo_oci" ]; then - install_php_extensions pdo_oci - elif [ "$extension" = "pdo_odbc" ]; then - install_php_extensions pdo_odbc - elif [ "$extension" = "oci8" ]; then - install_php_extensions oci8 - elif [ "$extension" = "odbc" ]; then - install_php_extensions odbc - elif [ "$extension" = "soap" ]; then - install_php_extensions soap - elif [ "$extension" = "xsl" ]; then - install_php_extensions xsl - elif [ "$extension" = "xmlrpc" ]; then - install_php_extensions xmlrpc - elif [ "$extension" = "readline" ]; then - install_php_extensions readline - elif [ "$extension" = "snmp" ]; then - install_php_extensions snmp - elif [ "$extension" = "tidy" ]; then - install_php_extensions tidy - elif [ "$extension" = "gmp" ]; then - install_php_extensions gmp - elif [ "$extension" = "ldap" ]; then - install_php_extensions ldap - elif [ "$extension" = "imagick" ]; then - install_imagick - elif [ "$extension" = "amqp" ]; then - install_php_extensions amqp - elif [ "$extension" = "zookeeper" ]; then - install_php_extensions zookeeper - elif [ "$extension" = "ionCube" ]; then - install_php_extensions ioncube_loader "ionCube Loader" - elif [ "$extension" = "pdo_sqlsrv" ]; then - install_php_extensions pdo_sqlsrv - elif [ "$extension" = "sqlsrv" ]; then - install_php_extensions sqlsrv - elif [ "$extension" = "enchant" ]; then - install_php_extensions enchant - elif [ "$extension" = "pspell" ]; then - install_php_extensions pspell - elif [ "$extension" = "bz2" ]; then - install_php_extensions bz2 - elif [ "$extension" = "smbclient" ]; then - install_php_extensions smbclient - elif [ "$extension" = "event" ]; then - install_php_extensions event - elif [ "$extension" = "zmq" ]; then - install_php_extensions zmq - else - install_extension_default $extension - fi -} - -extension=$1 - -if [[ $extension == *,* ]]; then - echo "${extension}" | tr ',' '\n' | while read -r extension; do - install_extension $extension - done -else - install_extension $extension - if [ $ERROR_CODE -ne 0 ]; then - exit $ERROR_CODE - fi -fi - -docker-php-source delete - -exit 0 diff --git a/php/7/conf/php-fpm.conf b/php/7/conf/php-fpm.conf deleted file mode 100644 index 131835891..000000000 --- a/php/7/conf/php-fpm.conf +++ /dev/null @@ -1,423 +0,0 @@ -; Start a new pool named 'www'. -; the variable $pool can be used in any directive and will be replaced by the -; pool name ('www' here) -[www] - -; Per pool prefix -; It only applies on the following directives: -; - 'access.log' -; - 'slowlog' -; - 'listen' (unixsocket) -; - 'chroot' -; - 'chdir' -; - 'php_values' -; - 'php_admin_values' -; When not set, the global prefix (or NONE) applies instead. -; Note: This directive can also be relative to the global prefix. -; Default Value: none -;prefix = /path/to/pools/$pool - -; Unix user/group of processes -; Note: The user is mandatory. If the group is not set, the default user's group -; will be used. -user = www-data -group = www-data - -; The address on which to accept FastCGI requests. -; Valid syntaxes are: -; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on -; a specific port; -; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on -; a specific port; -; 'port' - to listen on a TCP socket to all addresses -; (IPv6 and IPv4-mapped) on a specific port; -; '/path/to/unix/socket' - to listen on a unix socket. -; Note: This value is mandatory. -listen = 127.0.0.1:9000 - -; Set listen(2) backlog. -; Default Value: 511 (-1 on FreeBSD and OpenBSD) -;listen.backlog = 511 - -; Set permissions for unix socket, if one is used. In Linux, read/write -; permissions must be set in order to allow connections from a web server. Many -; BSD-derived systems allow connections regardless of permissions. -; Default Values: user and group are set as the running user -; mode is set to 0660 -;listen.owner = www-data -;listen.group = www-data -;listen.mode = 0660 -; When POSIX Access Control Lists are supported you can set them using -; these options, value is a comma separated list of user/group names. -; When set, listen.owner and listen.group are ignored -;listen.acl_users = -;listen.acl_groups = - -; List of addresses (IPv4/IPv6) of FastCGI clients which are allowed to connect. -; Equivalent to the FCGI_WEB_SERVER_ADDRS environment variable in the original -; PHP FCGI (5.2.2+). Makes sense only with a tcp listening socket. Each address -; must be separated by a comma. If this value is left blank, connections will be -; accepted from any ip address. -; Default Value: any -;listen.allowed_clients = 127.0.0.1 - -; Specify the nice(2) priority to apply to the pool processes (only if set) -; The value can vary from -19 (highest priority) to 20 (lower priority) -; Note: - It will only work if the FPM master process is launched as root -; - The pool processes will inherit the master process priority -; unless it specified otherwise -; Default Value: no set -; process.priority = -19 - -; Set the process dumpable flag (PR_SET_DUMPABLE prctl) even if the process user -; or group is differrent than the master process user. It allows to create process -; core dump and ptrace the process for the pool user. -; Default Value: no -; process.dumpable = yes - -; Choose how the process manager will control the number of child processes. -; Possible Values: -; static - a fixed number (pm.max_children) of child processes; -; dynamic - the number of child processes are set dynamically based on the -; following directives. With this process management, there will be -; always at least 1 children. -; pm.max_children - the maximum number of children that can -; be alive at the same time. -; pm.start_servers - the number of children created on startup. -; pm.min_spare_servers - the minimum number of children in 'idle' -; state (waiting to process). If the number -; of 'idle' processes is less than this -; number then some children will be created. -; pm.max_spare_servers - the maximum number of children in 'idle' -; state (waiting to process). If the number -; of 'idle' processes is greater than this -; number then some children will be killed. -; ondemand - no children are created at startup. Children will be forked when -; new requests will connect. The following parameter are used: -; pm.max_children - the maximum number of children that -; can be alive at the same time. -; pm.process_idle_timeout - The number of seconds after which -; an idle process will be killed. -; Note: This value is mandatory. -pm = dynamic - -; The number of child processes to be created when pm is set to 'static' and the -; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'. -; This value sets the limit on the number of simultaneous requests that will be -; served. Equivalent to the ApacheMaxClients directive with mpm_prefork. -; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP -; CGI. The below defaults are based on a server without much resources. Don't -; forget to tweak pm.* to fit your needs. -; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand' -; Note: This value is mandatory. -pm.max_children = 10 - -; The number of child processes created on startup. -; Note: Used only when pm is set to 'dynamic' -; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2 -pm.start_servers = 2 - -; The desired minimum number of idle server processes. -; Note: Used only when pm is set to 'dynamic' -; Note: Mandatory when pm is set to 'dynamic' -pm.min_spare_servers = 1 - -; The desired maximum number of idle server processes. -; Note: Used only when pm is set to 'dynamic' -; Note: Mandatory when pm is set to 'dynamic' -pm.max_spare_servers = 3 - -; The number of seconds after which an idle process will be killed. -; Note: Used only when pm is set to 'ondemand' -; Default Value: 10s -;pm.process_idle_timeout = 10s; - -; The number of requests each child process should execute before respawning. -; This can be useful to work around memory leaks in 3rd party libraries. For -; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS. -; Default Value: 0 -;pm.max_requests = 500 - -; The URI to view the FPM status page. If this value is not set, no URI will be -; recognized as a status page. It shows the following informations: -; pool - the name of the pool; -; process manager - static, dynamic or ondemand; -; start time - the date and time FPM has started; -; start since - number of seconds since FPM has started; -; accepted conn - the number of request accepted by the pool; -; listen queue - the number of request in the queue of pending -; connections (see backlog in listen(2)); -; max listen queue - the maximum number of requests in the queue -; of pending connections since FPM has started; -; listen queue len - the size of the socket queue of pending connections; -; idle processes - the number of idle processes; -; active processes - the number of active processes; -; total processes - the number of idle + active processes; -; max active processes - the maximum number of active processes since FPM -; has started; -; max children reached - number of times, the process limit has been reached, -; when pm tries to start more children (works only for -; pm 'dynamic' and 'ondemand'); -; Value are updated in real time. -; Example output: -; pool: www -; process manager: static -; start time: 01/Jul/2011:17:53:49 +0200 -; start since: 62636 -; accepted conn: 190460 -; listen queue: 0 -; max listen queue: 1 -; listen queue len: 42 -; idle processes: 4 -; active processes: 11 -; total processes: 15 -; max active processes: 12 -; max children reached: 0 -; -; By default the status page output is formatted as text/plain. Passing either -; 'html', 'xml' or 'json' in the query string will return the corresponding -; output syntax. Example: -; http://www.foo.bar/status -; http://www.foo.bar/status?json -; http://www.foo.bar/status?html -; http://www.foo.bar/status?xml -; -; By default the status page only outputs short status. Passing 'full' in the -; query string will also return status for each pool process. -; Example: -; http://www.foo.bar/status?full -; http://www.foo.bar/status?json&full -; http://www.foo.bar/status?html&full -; http://www.foo.bar/status?xml&full -; The Full status returns for each process: -; pid - the PID of the process; -; state - the state of the process (Idle, Running, ...); -; start time - the date and time the process has started; -; start since - the number of seconds since the process has started; -; requests - the number of requests the process has served; -; request duration - the duration in µs of the requests; -; request method - the request method (GET, POST, ...); -; request URI - the request URI with the query string; -; content length - the content length of the request (only with POST); -; user - the user (PHP_AUTH_USER) (or '-' if not set); -; script - the main script called (or '-' if not set); -; last request cpu - the %cpu the last request consumed -; it's always 0 if the process is not in Idle state -; because CPU calculation is done when the request -; processing has terminated; -; last request memory - the max amount of memory the last request consumed -; it's always 0 if the process is not in Idle state -; because memory calculation is done when the request -; processing has terminated; -; If the process is in Idle state, then informations are related to the -; last request the process has served. Otherwise informations are related to -; the current request being served. -; Example output: -; ************************ -; pid: 31330 -; state: Running -; start time: 01/Jul/2011:17:53:49 +0200 -; start since: 63087 -; requests: 12808 -; request duration: 1250261 -; request method: GET -; request URI: /test_mem.php?N=10000 -; content length: 0 -; user: - -; script: /home/fat/web/docs/php/test_mem.php -; last request cpu: 0.00 -; last request memory: 0 -; -; Note: There is a real-time FPM status monitoring sample web page available -; It's available in: /usr/local/share/php/fpm/status.html -; -; Note: The value must start with a leading slash (/). The value can be -; anything, but it may not be a good idea to use the .php extension or it -; may conflict with a real PHP file. -; Default Value: not set -;pm.status_path = /status - -; The ping URI to call the monitoring page of FPM. If this value is not set, no -; URI will be recognized as a ping page. This could be used to test from outside -; that FPM is alive and responding, or to -; - create a graph of FPM availability (rrd or such); -; - remove a server from a group if it is not responding (load balancing); -; - trigger alerts for the operating team (24/7). -; Note: The value must start with a leading slash (/). The value can be -; anything, but it may not be a good idea to use the .php extension or it -; may conflict with a real PHP file. -; Default Value: not set -;ping.path = /ping - -; This directive may be used to customize the response of a ping request. The -; response is formatted as text/plain with a 200 response code. -; Default Value: pong -;ping.response = pong - -; The access log file -; Default: not set -;access.log = log/$pool.access.log - -; The access log format. -; The following syntax is allowed -; %%: the '%' character -; %C: %CPU used by the request -; it can accept the following format: -; - %{user}C for user CPU only -; - %{system}C for system CPU only -; - %{total}C for user + system CPU (default) -; %d: time taken to serve the request -; it can accept the following format: -; - %{seconds}d (default) -; - %{miliseconds}d -; - %{mili}d -; - %{microseconds}d -; - %{micro}d -; %e: an environment variable (same as $_ENV or $_SERVER) -; it must be associated with embraces to specify the name of the env -; variable. Some exemples: -; - server specifics like: %{REQUEST_METHOD}e or %{SERVER_PROTOCOL}e -; - HTTP headers like: %{HTTP_HOST}e or %{HTTP_USER_AGENT}e -; %f: script filename -; %l: content-length of the request (for POST request only) -; %m: request method -; %M: peak of memory allocated by PHP -; it can accept the following format: -; - %{bytes}M (default) -; - %{kilobytes}M -; - %{kilo}M -; - %{megabytes}M -; - %{mega}M -; %n: pool name -; %o: output header -; it must be associated with embraces to specify the name of the header: -; - %{Content-Type}o -; - %{X-Powered-By}o -; - %{Transfert-Encoding}o -; - .... -; %p: PID of the child that serviced the request -; %P: PID of the parent of the child that serviced the request -; %q: the query string -; %Q: the '?' character if query string exists -; %r: the request URI (without the query string, see %q and %Q) -; %R: remote IP address -; %s: status (response code) -; %t: server time the request was received -; it can accept a strftime(3) format: -; %d/%b/%Y:%H:%M:%S %z (default) -; The strftime(3) format must be encapsuled in a %{}t tag -; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t -; %T: time the log has been written (the request has finished) -; it can accept a strftime(3) format: -; %d/%b/%Y:%H:%M:%S %z (default) -; The strftime(3) format must be encapsuled in a %{}t tag -; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t -; %u: remote user -; -; Default: "%R - %u %t \"%m %r\" %s" -;access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%" - -; The log file for slow requests -; Default Value: not set -; Note: slowlog is mandatory if request_slowlog_timeout is set -slowlog = /var/log/php/fpm.slow.log - -; The timeout for serving a single request after which a PHP backtrace will be -; dumped to the 'slowlog' file. A value of '0s' means 'off'. -; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) -; Default Value: 0 -request_slowlog_timeout = 3 - -; Depth of slow log stack trace. -; Default Value: 20 -;request_slowlog_trace_depth = 20 - -; The timeout for serving a single request after which the worker process will -; be killed. This option should be used when the 'max_execution_time' ini option -; does not stop script execution for some reason. A value of '0' means 'off'. -; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) -; Default Value: 0 -;request_terminate_timeout = 0 - -; Set open file descriptor rlimit. -; Default Value: system defined value -;rlimit_files = 1024 - -; Set max core size rlimit. -; Possible Values: 'unlimited' or an integer greater or equal to 0 -; Default Value: system defined value -;rlimit_core = 0 - -; Chroot to this directory at the start. This value must be defined as an -; absolute path. When this value is not set, chroot is not used. -; Note: you can prefix with '$prefix' to chroot to the pool prefix or one -; of its subdirectories. If the pool prefix is not set, the global prefix -; will be used instead. -; Note: chrooting is a great security feature and should be used whenever -; possible. However, all PHP paths will be relative to the chroot -; (error_log, sessions.save_path, ...). -; Default Value: not set -;chroot = - -; Chdir to this directory at the start. -; Note: relative path can be used. -; Default Value: current directory or / when chroot -;chdir = /var/www - -; Redirect worker stdout and stderr into main error log. If not set, stdout and -; stderr will be redirected to /dev/null according to FastCGI specs. -; Note: on highloaded environement, this can cause some delay in the page -; process time (several ms). -; Default Value: no -catch_workers_output = yes - -; Clear environment in FPM workers -; Prevents arbitrary environment variables from reaching FPM worker processes -; by clearing the environment in workers before env vars specified in this -; pool configuration are added. -; Setting to "no" will make all environment variables available to PHP code -; via getenv(), $_ENV and $_SERVER. -; Default Value: yes -;clear_env = no - -; Limits the extensions of the main script FPM will allow to parse. This can -; prevent configuration mistakes on the web server side. You should only limit -; FPM to .php extensions to prevent malicious users to use other extensions to -; execute php code. -; Note: set an empty value to allow all extensions. -; Default Value: .php -;security.limit_extensions = .php .php3 .php4 .php5 .php7 - -; Pass environment variables like LD_LIBRARY_PATH. All $VARIABLEs are taken from -; the current environment. -; Default Value: clean env -;env[HOSTNAME] = $HOSTNAME -;env[PATH] = /usr/local/bin:/usr/bin:/bin -;env[TMP] = /tmp -;env[TMPDIR] = /tmp -;env[TEMP] = /tmp - -; Additional php.ini defines, specific to this pool of workers. These settings -; overwrite the values previously defined in the php.ini. The directives are the -; same as the PHP SAPI: -; php_value/php_flag - you can set classic ini defines which can -; be overwritten from PHP call 'ini_set'. -; php_admin_value/php_admin_flag - these directives won't be overwritten by -; PHP call 'ini_set' -; For php_*flag, valid values are on, off, 1, 0, true, false, yes or no. - -; Defining 'extension' will load the corresponding shared extension from -; extension_dir. Defining 'disable_functions' or 'disable_classes' will not -; overwrite previously defined php.ini values, but will append the new value -; instead. - -; Note: path INI options can be relative and will be expanded with the prefix -; (pool, global or /usr/local) - -; Default Value: nothing is defined by default except the values in php.ini and -; specified at startup with the -d argument -;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com -;php_flag[display_errors] = off -;php_admin_value[error_log] = /var/log/fpm-php.www.log -;php_admin_flag[log_errors] = on -;php_admin_value[memory_limit] = 32M diff --git a/php/7/conf/php.ini b/php/7/conf/php.ini deleted file mode 100644 index 20e48837c..000000000 --- a/php/7/conf/php.ini +++ /dev/null @@ -1,1961 +0,0 @@ -[PHP] - -;;;;;;;;;;;;;;;;;;; -; About php.ini ; -;;;;;;;;;;;;;;;;;;; -; PHP's initialization file, generally called php.ini, is responsible for -; configuring many of the aspects of PHP's behavior. - -; PHP attempts to find and load this configuration from a number of locations. -; The following is a summary of its search order: -; 1. SAPI module specific location. -; 2. The PHPRC environment variable. -; 3. A number of predefined registry keys on Windows -; 4. Current working directory (except CLI) -; 5. The web server's directory (for SAPI modules), or directory of PHP -; (otherwise in Windows) -; 6. The directory from the --with-config-file-path compile time option, or the -; Windows directory (usually C:\windows) -; See the PHP docs for more specific information. -; https://php.net/configuration.file - -; The syntax of the file is extremely simple. Whitespace and lines -; beginning with a semicolon are silently ignored (as you probably guessed). -; Section headers (e.g. [Foo]) are also silently ignored, even though -; they might mean something in the future. - -; Directives following the section heading [PATH=/www/mysite] only -; apply to PHP files in the /www/mysite directory. Directives -; following the section heading [HOST=www.example.com] only apply to -; PHP files served from www.example.com. Directives set in these -; special sections cannot be overridden by user-defined INI files or -; at runtime. Currently, [PATH=] and [HOST=] sections only work under -; CGI/FastCGI. -; https://php.net/ini.sections - -; Directives are specified using the following syntax: -; directive = value -; Directive names are *case sensitive* - foo=bar is different from FOO=bar. -; Directives are variables used to configure PHP or PHP extensions. -; There is no name validation. If PHP can't find an expected -; directive because it is not set or is mistyped, a default value will be used. - -; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one -; of the INI constants (On, Off, True, False, Yes, No and None) or an expression -; (e.g. E_ALL & ~E_NOTICE), a quoted string ("bar"), or a reference to a -; previously set variable or directive (e.g. ${foo}) - -; Expressions in the INI file are limited to bitwise operators and parentheses: -; | bitwise OR -; ^ bitwise XOR -; & bitwise AND -; ~ bitwise NOT -; ! boolean NOT - -; Boolean flags can be turned on using the values 1, On, True or Yes. -; They can be turned off using the values 0, Off, False or No. - -; An empty string can be denoted by simply not writing anything after the equal -; sign, or by using the None keyword: - -; foo = ; sets foo to an empty string -; foo = None ; sets foo to an empty string -; foo = "None" ; sets foo to the string 'None' - -; If you use constants in your value, and these constants belong to a -; dynamically loaded extension (either a PHP extension or a Zend extension), -; you may only use these constants *after* the line that loads the extension. - -;;;;;;;;;;;;;;;;;;; -; About this file ; -;;;;;;;;;;;;;;;;;;; -; PHP comes packaged with two INI files. One that is recommended to be used -; in production environments and one that is recommended to be used in -; development environments. - -; php.ini-production contains settings which hold security, performance and -; best practices at its core. But please be aware, these settings may break -; compatibility with older or less security-conscious applications. We -; recommending using the production ini in production and testing environments. - -; php.ini-development is very similar to its production variant, except it is -; much more verbose when it comes to errors. We recommend using the -; development version only in development environments, as errors shown to -; application users can inadvertently leak otherwise secure information. - -; This is the php.ini-production INI file. - -;;;;;;;;;;;;;;;;;;; -; Quick Reference ; -;;;;;;;;;;;;;;;;;;; - -; The following are all the settings which are different in either the production -; or development versions of the INIs with respect to PHP's default behavior. -; Please see the actual settings later in the document for more details as to why -; we recommend these changes in PHP's behavior. - -; display_errors -; Default Value: On -; Development Value: On -; Production Value: Off - -; display_startup_errors -; Default Value: On -; Development Value: On -; Production Value: Off - -; error_reporting -; Default Value: E_ALL -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT - -; log_errors -; Default Value: Off -; Development Value: On -; Production Value: On - -; max_input_time -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) - -; output_buffering -; Default Value: Off -; Development Value: 4096 -; Production Value: 4096 - -; register_argc_argv -; Default Value: On -; Development Value: Off -; Production Value: Off - -; request_order -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" - -; session.gc_divisor -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 - -; session.sid_bits_per_character -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 - -; session.sid_length -; Default Value: 32 -; Development Value: 26 -; Production Value: 26 - -; short_open_tag -; Default Value: On -; Development Value: Off -; Production Value: Off - -; variables_order -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS" - -; zend.assertions -; Default Value: 1 -; Development Value: 1 -; Production Value: -1 - -; zend.exception_ignore_args -; Default Value: Off -; Development Value: Off -; Production Value: On - -; zend.exception_string_param_max_len -; Default Value: 15 -; Development Value: 15 -; Production Value: 0 - -;;;;;;;;;;;;;;;;;;;; -; php.ini Options ; -;;;;;;;;;;;;;;;;;;;; -; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini" -;user_ini.filename = ".user.ini" - -; To disable this feature set this option to an empty value -;user_ini.filename = - -; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes) -;user_ini.cache_ttl = 300 - -;;;;;;;;;;;;;;;;;;;; -; Language Options ; -;;;;;;;;;;;;;;;;;;;; - -; Enable the PHP scripting language engine under Apache. -; https://php.net/engine -engine = On - -; This directive determines whether or not PHP will recognize code between -; tags as PHP source which should be processed as such. It is -; generally recommended that should be used and that this feature -; should be disabled, as enabling it may result in issues when generating XML -; documents, however this remains supported for backward compatibility reasons. -; Note that this directive does not control the would work. -; https://php.net/syntax-highlighting -;highlight.string = #DD0000 -;highlight.comment = #FF9900 -;highlight.keyword = #007700 -;highlight.default = #0000BB -;highlight.html = #000000 - -; If enabled, the request will be allowed to complete even if the user aborts -; the request. Consider enabling it if executing long requests, which may end up -; being interrupted by the user or a browser timing out. PHP's default behavior -; is to disable this feature. -; https://php.net/ignore-user-abort -;ignore_user_abort = On - -; Determines the size of the realpath cache to be used by PHP. This value should -; be increased on systems where PHP opens many files to reflect the quantity of -; the file operations performed. -; Note: if open_basedir is set, the cache is disabled -; https://php.net/realpath-cache-size -;realpath_cache_size = 4096k - -; Duration of time, in seconds for which to cache realpath information for a given -; file or directory. For systems with rarely changing files, consider increasing this -; value. -; https://php.net/realpath-cache-ttl -;realpath_cache_ttl = 120 - -; Enables or disables the circular reference collector. -; https://php.net/zend.enable-gc -zend.enable_gc = On - -; If enabled, scripts may be written in encodings that are incompatible with -; the scanner. CP936, Big5, CP949 and Shift_JIS are the examples of such -; encodings. To use this feature, mbstring extension must be enabled. -;zend.multibyte = Off - -; Allows to set the default encoding for the scripts. This value will be used -; unless "declare(encoding=...)" directive appears at the top of the script. -; Only affects if zend.multibyte is set. -;zend.script_encoding = - -; Allows to include or exclude arguments from stack traces generated for exceptions. -; In production, it is recommended to turn this setting on to prohibit the output -; of sensitive information in stack traces -; Default Value: Off -; Development Value: Off -; Production Value: On -zend.exception_ignore_args = On - -; Allows setting the maximum string length in an argument of a stringified stack trace -; to a value between 0 and 1000000. -; This has no effect when zend.exception_ignore_args is enabled. -; Default Value: 15 -; Development Value: 15 -; Production Value: 0 -; In production, it is recommended to set this to 0 to reduce the output -; of sensitive information in stack traces. -zend.exception_string_param_max_len = 0 - -;;;;;;;;;;;;;;;;; -; Miscellaneous ; -;;;;;;;;;;;;;;;;; - -; Decides whether PHP may expose the fact that it is installed on the server -; (e.g. by adding its signature to the Web server header). It is no security -; threat in any way, but it makes it possible to determine whether you use PHP -; on your server or not. -; https://php.net/expose-php -expose_php = On - -;;;;;;;;;;;;;;;;;;; -; Resource Limits ; -;;;;;;;;;;;;;;;;;;; - -; Maximum execution time of each script, in seconds -; https://php.net/max-execution-time -; Note: This directive is hardcoded to 0 for the CLI SAPI -max_execution_time = 30 - -; Maximum amount of time each script may spend parsing request data. It's a good -; idea to limit this time on productions servers in order to eliminate unexpectedly -; long running scripts. -; Note: This directive is hardcoded to -1 for the CLI SAPI -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) -; https://php.net/max-input-time -max_input_time = 60 - -; Maximum input variable nesting level -; https://php.net/max-input-nesting-level -;max_input_nesting_level = 64 - -; How many GET/POST/COOKIE input variables may be accepted -;max_input_vars = 1000 - -; How many multipart body parts (combined input variable and file uploads) may -; be accepted. -; Default Value: -1 (Sum of max_input_vars and max_file_uploads) -;max_multipart_body_parts = 1500 - -; Maximum amount of memory a script may consume -; https://php.net/memory-limit -memory_limit = 128M - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; Error handling and logging ; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -; This directive informs PHP of which errors, warnings and notices you would like -; it to take action for. The recommended way of setting values for this -; directive is through the use of the error level constants and bitwise -; operators. The error level constants are below here for convenience as well as -; some common settings and their meanings. -; By default, PHP is set to take action on all errors, notices and warnings EXCEPT -; those related to E_NOTICE and E_STRICT, which together cover best practices and -; recommended coding standards in PHP. For performance reasons, this is the -; recommend error reporting setting. Your production server shouldn't be wasting -; resources complaining about best practices and coding standards. That's what -; development servers and development settings are for. -; Note: The php.ini-development file has this setting as E_ALL. This -; means it pretty much reports everything which is exactly what you want during -; development and early testing. -; -; Error Level Constants: -; E_ALL - All errors and warnings -; E_ERROR - fatal run-time errors -; E_RECOVERABLE_ERROR - almost fatal run-time errors -; E_WARNING - run-time warnings (non-fatal errors) -; E_PARSE - compile-time parse errors -; E_NOTICE - run-time notices (these are warnings which often result -; from a bug in your code, but it's possible that it was -; intentional (e.g., using an uninitialized variable and -; relying on the fact it is automatically initialized to an -; empty string) -; E_STRICT - run-time notices, enable to have PHP suggest changes -; to your code which will ensure the best interoperability -; and forward compatibility of your code -; E_CORE_ERROR - fatal errors that occur during PHP's initial startup -; E_CORE_WARNING - warnings (non-fatal errors) that occur during PHP's -; initial startup -; E_COMPILE_ERROR - fatal compile-time errors -; E_COMPILE_WARNING - compile-time warnings (non-fatal errors) -; E_USER_ERROR - user-generated error message -; E_USER_WARNING - user-generated warning message -; E_USER_NOTICE - user-generated notice message -; E_DEPRECATED - warn about code that will not work in future versions -; of PHP -; E_USER_DEPRECATED - user-generated deprecation warnings -; -; Common Values: -; E_ALL (Show all errors, warnings and notices including coding standards.) -; E_ALL & ~E_NOTICE (Show all errors, except for notices) -; E_ALL & ~E_NOTICE & ~E_STRICT (Show all errors, except for notices and coding standards warnings.) -; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors) -; Default Value: E_ALL -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT -; https://php.net/error-reporting -error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT - -; This directive controls whether or not and where PHP will output errors, -; notices and warnings too. Error output is very useful during development, but -; it could be very dangerous in production environments. Depending on the code -; which is triggering the error, sensitive information could potentially leak -; out of your application such as database usernames and passwords or worse. -; For production environments, we recommend logging errors rather than -; sending them to STDOUT. -; Possible Values: -; Off = Do not display any errors -; stderr = Display errors to STDERR (affects only CGI/CLI binaries!) -; On or stdout = Display errors to STDOUT -; Default Value: On -; Development Value: On -; Production Value: Off -; https://php.net/display-errors -display_errors = Off - -; The display of errors which occur during PHP's startup sequence are handled -; separately from display_errors. We strongly recommend you set this to 'off' -; for production servers to avoid leaking configuration details. -; Default Value: On -; Development Value: On -; Production Value: Off -; https://php.net/display-startup-errors -display_startup_errors = Off - -; Besides displaying errors, PHP can also log errors to locations such as a -; server-specific log, STDERR, or a location specified by the error_log -; directive found below. While errors should not be displayed on productions -; servers they should still be monitored and logging is a great way to do that. -; Default Value: Off -; Development Value: On -; Production Value: On -; https://php.net/log-errors -log_errors = On - -; Do not log repeated messages. Repeated errors must occur in same file on same -; line unless ignore_repeated_source is set true. -; https://php.net/ignore-repeated-errors -ignore_repeated_errors = Off - -; Ignore source of message when ignoring repeated messages. When this setting -; is On you will not log errors with repeated messages from different files or -; source lines. -; https://php.net/ignore-repeated-source -ignore_repeated_source = Off - -; If this parameter is set to Off, then memory leaks will not be shown (on -; stdout or in the log). This is only effective in a debug compile, and if -; error reporting includes E_WARNING in the allowed list -; https://php.net/report-memleaks -report_memleaks = On - -; This setting is off by default. -;report_zend_debug = 0 - -; Turn off normal error reporting and emit XML-RPC error XML -; https://php.net/xmlrpc-errors -;xmlrpc_errors = 0 - -; An XML-RPC faultCode -;xmlrpc_error_number = 0 - -; When PHP displays or logs an error, it has the capability of formatting the -; error message as HTML for easier reading. This directive controls whether -; the error message is formatted as HTML or not. -; Note: This directive is hardcoded to Off for the CLI SAPI -; https://php.net/html-errors -;html_errors = On - -; If html_errors is set to On *and* docref_root is not empty, then PHP -; produces clickable error messages that direct to a page describing the error -; or function causing the error in detail. -; You can download a copy of the PHP manual from https://php.net/docs -; and change docref_root to the base URL of your local copy including the -; leading '/'. You must also specify the file extension being used including -; the dot. PHP's default behavior is to leave these settings empty, in which -; case no links to documentation are generated. -; Note: Never use this feature for production boxes. -; https://php.net/docref-root -; Examples -;docref_root = "/phpmanual/" - -; https://php.net/docref-ext -;docref_ext = .html - -; String to output before an error message. PHP's default behavior is to leave -; this setting blank. -; https://php.net/error-prepend-string -; Example: -;error_prepend_string = "" - -; String to output after an error message. PHP's default behavior is to leave -; this setting blank. -; https://php.net/error-append-string -; Example: -;error_append_string = "" - -; Log errors to specified file. PHP's default behavior is to leave this value -; empty. -; https://php.net/error-log -; Example: -;error_log = php_errors.log -; Log errors to syslog (Event Log on Windows). -;error_log = syslog - -; The syslog ident is a string which is prepended to every message logged -; to syslog. Only used when error_log is set to syslog. -;syslog.ident = php - -; The syslog facility is used to specify what type of program is logging -; the message. Only used when error_log is set to syslog. -;syslog.facility = user - -; Set this to disable filtering control characters (the default). -; Some loggers only accept NVT-ASCII, others accept anything that's not -; control characters. If your logger accepts everything, then no filtering -; is needed at all. -; Allowed values are: -; ascii (all printable ASCII characters and NL) -; no-ctrl (all characters except control characters) -; all (all characters) -; raw (like "all", but messages are not split at newlines) -; https://php.net/syslog.filter -;syslog.filter = ascii - -;windows.show_crt_warning -; Default value: 0 -; Development value: 0 -; Production value: 0 - -;;;;;;;;;;;;;;;;; -; Data Handling ; -;;;;;;;;;;;;;;;;; - -; The separator used in PHP generated URLs to separate arguments. -; PHP's default setting is "&". -; https://php.net/arg-separator.output -; Example: -;arg_separator.output = "&" - -; List of separator(s) used by PHP to parse input URLs into variables. -; PHP's default setting is "&". -; NOTE: Every character in this directive is considered as separator! -; https://php.net/arg-separator.input -; Example: -;arg_separator.input = ";&" - -; This directive determines which super global arrays are registered when PHP -; starts up. G,P,C,E & S are abbreviations for the following respective super -; globals: GET, POST, COOKIE, ENV and SERVER. There is a performance penalty -; paid for the registration of these arrays and because ENV is not as commonly -; used as the others, ENV is not recommended on productions servers. You -; can still get access to the environment variables through getenv() should you -; need to. -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS"; -; https://php.net/variables-order -variables_order = "GPCS" - -; This directive determines which super global data (G,P & C) should be -; registered into the super global array REQUEST. If so, it also determines -; the order in which that data is registered. The values for this directive -; are specified in the same manner as the variables_order directive, -; EXCEPT one. Leaving this value empty will cause PHP to use the value set -; in the variables_order directive. It does not mean it will leave the super -; globals array REQUEST empty. -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" -; https://php.net/request-order -request_order = "GP" - -; This directive determines whether PHP registers $argv & $argc each time it -; runs. $argv contains an array of all the arguments passed to PHP when a script -; is invoked. $argc contains an integer representing the number of arguments -; that were passed when the script was invoked. These arrays are extremely -; useful when running scripts from the command line. When this directive is -; enabled, registering these variables consumes CPU cycles and memory each time -; a script is executed. For performance reasons, this feature should be disabled -; on production servers. -; Note: This directive is hardcoded to On for the CLI SAPI -; Default Value: On -; Development Value: Off -; Production Value: Off -; https://php.net/register-argc-argv -register_argc_argv = Off - -; When enabled, the ENV, REQUEST and SERVER variables are created when they're -; first used (Just In Time) instead of when the script starts. If these -; variables are not used within a script, having this directive on will result -; in a performance gain. The PHP directive register_argc_argv must be disabled -; for this directive to have any effect. -; https://php.net/auto-globals-jit -auto_globals_jit = On - -; Whether PHP will read the POST data. -; This option is enabled by default. -; Most likely, you won't want to disable this option globally. It causes $_POST -; and $_FILES to always be empty; the only way you will be able to read the -; POST data will be through the php://input stream wrapper. This can be useful -; to proxy requests or to process the POST data in a memory efficient fashion. -; https://php.net/enable-post-data-reading -;enable_post_data_reading = Off - -; Maximum size of POST data that PHP will accept. -; Its value may be 0 to disable the limit. It is ignored if POST data reading -; is disabled through enable_post_data_reading. -; https://php.net/post-max-size -post_max_size = 8M - -; Automatically add files before PHP document. -; https://php.net/auto-prepend-file -auto_prepend_file = - -; Automatically add files after PHP document. -; https://php.net/auto-append-file -auto_append_file = - -; By default, PHP will output a media type using the Content-Type header. To -; disable this, simply set it to be empty. -; -; PHP's built-in default media type is set to text/html. -; https://php.net/default-mimetype -default_mimetype = "text/html" - -; PHP's default character set is set to UTF-8. -; https://php.net/default-charset -default_charset = "UTF-8" - -; PHP internal character encoding is set to empty. -; If empty, default_charset is used. -; https://php.net/internal-encoding -;internal_encoding = - -; PHP input character encoding is set to empty. -; If empty, default_charset is used. -; https://php.net/input-encoding -;input_encoding = - -; PHP output character encoding is set to empty. -; If empty, default_charset is used. -; See also output_buffer. -; https://php.net/output-encoding -;output_encoding = - -;;;;;;;;;;;;;;;;;;;;;;;;; -; Paths and Directories ; -;;;;;;;;;;;;;;;;;;;;;;;;; - -; UNIX: "/path1:/path2" -;include_path = ".:/php/includes" -; -; Windows: "\path1;\path2" -;include_path = ".;c:\php\includes" -; -; PHP's default setting for include_path is ".;/path/to/php/pear" -; https://php.net/include-path - -; The root of the PHP pages, used only if nonempty. -; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root -; if you are running php as a CGI under any web server (other than IIS) -; see documentation for security issues. The alternate is to use the -; cgi.force_redirect configuration below -; https://php.net/doc-root -doc_root = - -; The directory under which PHP opens the script using /~username used only -; if nonempty. -; https://php.net/user-dir -user_dir = - -; Directory in which the loadable extensions (modules) reside. -; https://php.net/extension-dir -;extension_dir = "./" -; On windows: -;extension_dir = "ext" - -; Directory where the temporary files should be placed. -; Defaults to the system default (see sys_get_temp_dir) -;sys_temp_dir = "/tmp" - -; Whether or not to enable the dl() function. The dl() function does NOT work -; properly in multithreaded servers, such as IIS or Zeus, and is automatically -; disabled on them. -; https://php.net/enable-dl -enable_dl = Off - -; cgi.force_redirect is necessary to provide security running PHP as a CGI under -; most web servers. Left undefined, PHP turns this on by default. You can -; turn it off here AT YOUR OWN RISK -; **You CAN safely turn this off for IIS, in fact, you MUST.** -; https://php.net/cgi.force-redirect -;cgi.force_redirect = 1 - -; if cgi.nph is enabled it will force cgi to always sent Status: 200 with -; every request. PHP's default behavior is to disable this feature. -;cgi.nph = 1 - -; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape -; (iPlanet) web servers, you MAY need to set an environment variable name that PHP -; will look for to know it is OK to continue execution. Setting this variable MAY -; cause security issues, KNOW WHAT YOU ARE DOING FIRST. -; https://php.net/cgi.redirect-status-env -;cgi.redirect_status_env = - -; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's -; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok -; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting -; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting -; of zero causes PHP to behave as before. Default is 1. You should fix your scripts -; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. -; https://php.net/cgi.fix-pathinfo -;cgi.fix_pathinfo=1 - -; if cgi.discard_path is enabled, the PHP CGI binary can safely be placed outside -; of the web tree and people will not be able to circumvent .htaccess security. -;cgi.discard_path=1 - -; FastCGI under IIS supports the ability to impersonate -; security tokens of the calling client. This allows IIS to define the -; security context that the request runs under. mod_fastcgi under Apache -; does not currently support this feature (03/17/2002) -; Set to 1 if running under IIS. Default is zero. -; https://php.net/fastcgi.impersonate -;fastcgi.impersonate = 1 - -; Disable logging through FastCGI connection. PHP's default behavior is to enable -; this feature. -;fastcgi.logging = 0 - -; cgi.rfc2616_headers configuration option tells PHP what type of headers to -; use when sending HTTP response code. If set to 0, PHP sends Status: header that -; is supported by Apache. When this option is set to 1, PHP will send -; RFC2616 compliant header. -; Default is zero. -; https://php.net/cgi.rfc2616-headers -;cgi.rfc2616_headers = 0 - -; cgi.check_shebang_line controls whether CGI PHP checks for line starting with #! -; (shebang) at the top of the running script. This line might be needed if the -; script support running both as stand-alone script and via PHP CGI<. PHP in CGI -; mode skips this line and ignores its content if this directive is turned on. -; https://php.net/cgi.check-shebang-line -;cgi.check_shebang_line=1 - -;;;;;;;;;;;;;;;; -; File Uploads ; -;;;;;;;;;;;;;;;; - -; Whether to allow HTTP file uploads. -; https://php.net/file-uploads -file_uploads = On - -; Temporary directory for HTTP uploaded files (will use system default if not -; specified). -; https://php.net/upload-tmp-dir -;upload_tmp_dir = - -; Maximum allowed size for uploaded files. -; https://php.net/upload-max-filesize -upload_max_filesize = 2M - -; Maximum number of files that can be uploaded via a single request -max_file_uploads = 20 - -;;;;;;;;;;;;;;;;;; -; Fopen wrappers ; -;;;;;;;;;;;;;;;;;; - -; Whether to allow the treatment of URLs (like http:// or ftp://) as files. -; https://php.net/allow-url-fopen -allow_url_fopen = On - -; Whether to allow include/require to open URLs (like https:// or ftp://) as files. -; https://php.net/allow-url-include -allow_url_include = Off - -; Define the anonymous ftp password (your email address). PHP's default setting -; for this is empty. -; https://php.net/from -;from="john@doe.com" - -; Define the User-Agent string. PHP's default setting for this is empty. -; https://php.net/user-agent -;user_agent="PHP" - -; Default timeout for socket based streams (seconds) -; https://php.net/default-socket-timeout -default_socket_timeout = 60 - -; If your scripts have to deal with files from Macintosh systems, -; or you are running on a Mac and need to deal with files from -; unix or win32 systems, setting this flag will cause PHP to -; automatically detect the EOL character in those files so that -; fgets() and file() will work regardless of the source of the file. -; https://php.net/auto-detect-line-endings -;auto_detect_line_endings = Off - -;;;;;;;;;;;;;;;;;;;;;; -; Dynamic Extensions ; -;;;;;;;;;;;;;;;;;;;;;; - -; If you wish to have an extension loaded automatically, use the following -; syntax: -; -; extension=modulename -; -; For example: -; -; extension=mysqli -; -; When the extension library to load is not located in the default extension -; directory, You may specify an absolute path to the library file: -; -; extension=/path/to/extension/mysqli.so -; -; Note : The syntax used in previous PHP versions ('extension=.so' and -; 'extension='php_.dll') is supported for legacy reasons and may be -; deprecated in a future PHP major version. So, when it is possible, please -; move to the new ('extension=) syntax. -; -; Notes for Windows environments : -; -; - Many DLL files are located in the ext/ -; extension folders as well as the separate PECL DLL download. -; Be sure to appropriately set the extension_dir directive. -; -;extension=bz2 - -; The ldap extension must be before curl if OpenSSL 1.0.2 and OpenLDAP is used -; otherwise it results in segfault when unloading after using SASL. -; See https://github.com/php/php-src/issues/8620 for more info. -;extension=ldap - -;extension=curl -;extension=ffi -;extension=ftp -;extension=fileinfo -;extension=gd -;extension=gettext -;extension=gmp -;extension=intl -;extension=imap -;extension=mbstring -;extension=exif ; Must be after mbstring as it depends on it -;extension=mysqli -;extension=oci8_12c ; Use with Oracle Database 12c Instant Client -;extension=oci8_19 ; Use with Oracle Database 19 Instant Client -;extension=odbc -;extension=openssl -;extension=pdo_firebird -;extension=pdo_mysql -;extension=pdo_oci -;extension=pdo_odbc -;extension=pdo_pgsql -;extension=pdo_sqlite -;extension=pgsql -;extension=shmop - -; The MIBS data available in the PHP distribution must be installed. -; See https://www.php.net/manual/en/snmp.installation.php -;extension=snmp - -;extension=soap -;extension=sockets -;extension=sodium -;extension=sqlite3 -;extension=tidy -;extension=xsl -;extension=zip - -;zend_extension=opcache - -;;;;;;;;;;;;;;;;;;; -; Module Settings ; -;;;;;;;;;;;;;;;;;;; - -[CLI Server] -; Whether the CLI web server uses ANSI color coding in its terminal output. -cli_server.color = On - -[Date] -; Defines the default timezone used by the date functions -; https://php.net/date.timezone -;date.timezone = - -; https://php.net/date.default-latitude -;date.default_latitude = 31.7667 - -; https://php.net/date.default-longitude -;date.default_longitude = 35.2333 - -; https://php.net/date.sunrise-zenith -;date.sunrise_zenith = 90.833333 - -; https://php.net/date.sunset-zenith -;date.sunset_zenith = 90.833333 - -[filter] -; https://php.net/filter.default -;filter.default = unsafe_raw - -; https://php.net/filter.default-flags -;filter.default_flags = - -[iconv] -; Use of this INI entry is deprecated, use global input_encoding instead. -; If empty, default_charset or input_encoding or iconv.input_encoding is used. -; The precedence is: default_charset < input_encoding < iconv.input_encoding -;iconv.input_encoding = - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;iconv.internal_encoding = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; If empty, default_charset or output_encoding or iconv.output_encoding is used. -; The precedence is: default_charset < output_encoding < iconv.output_encoding -; To use an output encoding conversion, iconv's output handler must be set -; otherwise output encoding conversion cannot be performed. -;iconv.output_encoding = - -[imap] -; rsh/ssh logins are disabled by default. Use this INI entry if you want to -; enable them. Note that the IMAP library does not filter mailbox names before -; passing them to rsh/ssh command, thus passing untrusted data to this function -; with rsh/ssh enabled is insecure. -;imap.enable_insecure_rsh=0 - -[intl] -;intl.default_locale = -; This directive allows you to produce PHP errors when some error -; happens within intl functions. The value is the level of the error produced. -; Default is 0, which does not produce any errors. -;intl.error_level = E_WARNING -;intl.use_exceptions = 0 - -[sqlite3] -; Directory pointing to SQLite3 extensions -; https://php.net/sqlite3.extension-dir -;sqlite3.extension_dir = - -; SQLite defensive mode flag (only available from SQLite 3.26+) -; When the defensive flag is enabled, language features that allow ordinary -; SQL to deliberately corrupt the database file are disabled. This forbids -; writing directly to the schema, shadow tables (eg. FTS data tables), or -; the sqlite_dbpage virtual table. -; https://www.sqlite.org/c3ref/c_dbconfig_defensive.html -; (for older SQLite versions, this flag has no use) -;sqlite3.defensive = 1 - -[Pcre] -; PCRE library backtracking limit. -; https://php.net/pcre.backtrack-limit -;pcre.backtrack_limit=100000 - -; PCRE library recursion limit. -; Please note that if you set this value to a high number you may consume all -; the available process stack and eventually crash PHP (due to reaching the -; stack size limit imposed by the Operating System). -; https://php.net/pcre.recursion-limit -;pcre.recursion_limit=100000 - -; Enables or disables JIT compilation of patterns. This requires the PCRE -; library to be compiled with JIT support. -;pcre.jit=1 - -[Pdo] -; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off" -; https://php.net/pdo-odbc.connection-pooling -;pdo_odbc.connection_pooling=strict - -[Pdo_mysql] -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -pdo_mysql.default_socket= - -[Phar] -; https://php.net/phar.readonly -;phar.readonly = On - -; https://php.net/phar.require-hash -;phar.require_hash = On - -;phar.cache_list = - -[mail function] -; For Win32 only. -; https://php.net/smtp -SMTP = localhost -; https://php.net/smtp-port -smtp_port = 25 - -; For Win32 only. -; https://php.net/sendmail-from -;sendmail_from = me@example.com - -; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). -; https://php.net/sendmail-path -;sendmail_path = - -; Force the addition of the specified parameters to be passed as extra parameters -; to the sendmail binary. These parameters will always replace the value of -; the 5th parameter to mail(). -;mail.force_extra_parameters = - -; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename -mail.add_x_header = Off - -; Use mixed LF and CRLF line separators to keep compatibility with some -; RFC 2822 non conformant MTA. -mail.mixed_lf_and_crlf = Off - -; The path to a log file that will log all mail() calls. Log entries include -; the full path of the script, line number, To address and headers. -;mail.log = -; Log mail to syslog (Event Log on Windows). -;mail.log = syslog - -[ODBC] -; https://php.net/odbc.default-db -;odbc.default_db = Not yet implemented - -; https://php.net/odbc.default-user -;odbc.default_user = Not yet implemented - -; https://php.net/odbc.default-pw -;odbc.default_pw = Not yet implemented - -; Controls the ODBC cursor model. -; Default: SQL_CURSOR_STATIC (default). -;odbc.default_cursortype - -; Allow or prevent persistent links. -; https://php.net/odbc.allow-persistent -odbc.allow_persistent = On - -; Check that a connection is still valid before reuse. -; https://php.net/odbc.check-persistent -odbc.check_persistent = On - -; Maximum number of persistent links. -1 means no limit. -; https://php.net/odbc.max-persistent -odbc.max_persistent = -1 - -; Maximum number of links (persistent + non-persistent). -1 means no limit. -; https://php.net/odbc.max-links -odbc.max_links = -1 - -; Handling of LONG fields. Returns number of bytes to variables. 0 means -; passthru. -; https://php.net/odbc.defaultlrl -odbc.defaultlrl = 4096 - -; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char. -; See the documentation on odbc_binmode and odbc_longreadlen for an explanation -; of odbc.defaultlrl and odbc.defaultbinmode -; https://php.net/odbc.defaultbinmode -odbc.defaultbinmode = 1 - -[MySQLi] - -; Maximum number of persistent links. -1 means no limit. -; https://php.net/mysqli.max-persistent -mysqli.max_persistent = -1 - -; Allow accessing, from PHP's perspective, local files with LOAD DATA statements -; https://php.net/mysqli.allow_local_infile -;mysqli.allow_local_infile = On - -; It allows the user to specify a folder where files that can be sent via LOAD DATA -; LOCAL can exist. It is ignored if mysqli.allow_local_infile is enabled. -;mysqli.local_infile_directory = - -; Allow or prevent persistent links. -; https://php.net/mysqli.allow-persistent -mysqli.allow_persistent = On - -; Maximum number of links. -1 means no limit. -; https://php.net/mysqli.max-links -mysqli.max_links = -1 - -; Default port number for mysqli_connect(). If unset, mysqli_connect() will use -; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the -; compile-time value defined MYSQL_PORT (in that order). Win32 will only look -; at MYSQL_PORT. -; https://php.net/mysqli.default-port -mysqli.default_port = 3306 - -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -; https://php.net/mysqli.default-socket -mysqli.default_socket = - -; Default host for mysqli_connect() (doesn't apply in safe mode). -; https://php.net/mysqli.default-host -mysqli.default_host = - -; Default user for mysqli_connect() (doesn't apply in safe mode). -; https://php.net/mysqli.default-user -mysqli.default_user = - -; Default password for mysqli_connect() (doesn't apply in safe mode). -; Note that this is generally a *bad* idea to store passwords in this file. -; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw") -; and reveal this password! And of course, any users with read access to this -; file will be able to reveal the password as well. -; https://php.net/mysqli.default-pw -mysqli.default_pw = - -; If this option is enabled, closing a persistent connection will rollback -; any pending transactions of this connection, before it is put back -; into the persistent connection pool. -;mysqli.rollback_on_cached_plink = Off - -[mysqlnd] -; Enable / Disable collection of general statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -mysqlnd.collect_statistics = On - -; Enable / Disable collection of memory usage statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -mysqlnd.collect_memory_statistics = Off - -; Records communication from all extensions using mysqlnd to the specified log -; file. -; https://php.net/mysqlnd.debug -;mysqlnd.debug = - -; Defines which queries will be logged. -;mysqlnd.log_mask = 0 - -; Default size of the mysqlnd memory pool, which is used by result sets. -;mysqlnd.mempool_default_size = 16000 - -; Size of a pre-allocated buffer used when sending commands to MySQL in bytes. -;mysqlnd.net_cmd_buffer_size = 2048 - -; Size of a pre-allocated buffer used for reading data sent by the server in -; bytes. -;mysqlnd.net_read_buffer_size = 32768 - -; Timeout for network requests in seconds. -;mysqlnd.net_read_timeout = 31536000 - -; SHA-256 Authentication Plugin related. File with the MySQL server public RSA -; key. -;mysqlnd.sha256_server_public_key = - -[OCI8] - -; Connection: Enables privileged connections using external -; credentials (OCI_SYSOPER, OCI_SYSDBA) -; https://php.net/oci8.privileged-connect -;oci8.privileged_connect = Off - -; Connection: The maximum number of persistent OCI8 connections per -; process. Using -1 means no limit. -; https://php.net/oci8.max-persistent -;oci8.max_persistent = -1 - -; Connection: The maximum number of seconds a process is allowed to -; maintain an idle persistent connection. Using -1 means idle -; persistent connections will be maintained forever. -; https://php.net/oci8.persistent-timeout -;oci8.persistent_timeout = -1 - -; Connection: The number of seconds that must pass before issuing a -; ping during oci_pconnect() to check the connection validity. When -; set to 0, each oci_pconnect() will cause a ping. Using -1 disables -; pings completely. -; https://php.net/oci8.ping-interval -;oci8.ping_interval = 60 - -; Connection: Set this to a user chosen connection class to be used -; for all pooled server requests with Oracle Database Resident -; Connection Pooling (DRCP). To use DRCP, this value should be set to -; the same string for all web servers running the same application, -; the database pool must be configured, and the connection string must -; specify to use a pooled server. -;oci8.connection_class = - -; High Availability: Using On lets PHP receive Fast Application -; Notification (FAN) events generated when a database node fails. The -; database must also be configured to post FAN events. -;oci8.events = Off - -; Tuning: This option enables statement caching, and specifies how -; many statements to cache. Using 0 disables statement caching. -; https://php.net/oci8.statement-cache-size -;oci8.statement_cache_size = 20 - -; Tuning: Enables row prefetching and sets the default number of -; rows that will be fetched automatically after statement execution. -; https://php.net/oci8.default-prefetch -;oci8.default_prefetch = 100 - -; Tuning: Sets the amount of LOB data that is internally returned from -; Oracle Database when an Oracle LOB locator is initially retrieved as -; part of a query. Setting this can improve performance by reducing -; round-trips. -; https://php.net/oci8.prefetch-lob-size -; oci8.prefetch_lob_size = 0 - -; Compatibility. Using On means oci_close() will not close -; oci_connect() and oci_new_connect() connections. -; https://php.net/oci8.old-oci-close-semantics -;oci8.old_oci_close_semantics = Off - -[PostgreSQL] -; Allow or prevent persistent links. -; https://php.net/pgsql.allow-persistent -pgsql.allow_persistent = On - -; Detect broken persistent links always with pg_pconnect(). -; Auto reset feature requires a little overheads. -; https://php.net/pgsql.auto-reset-persistent -pgsql.auto_reset_persistent = Off - -; Maximum number of persistent links. -1 means no limit. -; https://php.net/pgsql.max-persistent -pgsql.max_persistent = -1 - -; Maximum number of links (persistent+non persistent). -1 means no limit. -; https://php.net/pgsql.max-links -pgsql.max_links = -1 - -; Ignore PostgreSQL backends Notice message or not. -; Notice message logging require a little overheads. -; https://php.net/pgsql.ignore-notice -pgsql.ignore_notice = 0 - -; Log PostgreSQL backends Notice message or not. -; Unless pgsql.ignore_notice=0, module cannot log notice message. -; https://php.net/pgsql.log-notice -pgsql.log_notice = 0 - -[bcmath] -; Number of decimal digits for all bcmath functions. -; https://php.net/bcmath.scale -bcmath.scale = 0 - -[browscap] -; https://php.net/browscap -;browscap = extra/browscap.ini - -[Session] -; Handler used to store/retrieve data. -; https://php.net/session.save-handler -session.save_handler = files - -; Argument passed to save_handler. In the case of files, this is the path -; where data files are stored. Note: Windows users have to change this -; variable in order to use PHP's session functions. -; -; The path can be defined as: -; -; session.save_path = "N;/path" -; -; where N is an integer. Instead of storing all the session files in -; /path, what this will do is use subdirectories N-levels deep, and -; store the session data in those directories. This is useful if -; your OS has problems with many files in one directory, and is -; a more efficient layout for servers that handle many sessions. -; -; NOTE 1: PHP will not create this directory structure automatically. -; You can use the script in the ext/session dir for that purpose. -; NOTE 2: See the section on garbage collection below if you choose to -; use subdirectories for session storage -; -; The file storage module creates files using mode 600 by default. -; You can change that by using -; -; session.save_path = "N;MODE;/path" -; -; where MODE is the octal representation of the mode. Note that this -; does not overwrite the process's umask. -; https://php.net/session.save-path -;session.save_path = "/tmp" - -; Whether to use strict session mode. -; Strict session mode does not accept an uninitialized session ID, and -; regenerates the session ID if the browser sends an uninitialized session ID. -; Strict mode protects applications from session fixation via a session adoption -; vulnerability. It is disabled by default for maximum compatibility, but -; enabling it is encouraged. -; https://wiki.php.net/rfc/strict_sessions -session.use_strict_mode = 0 - -; Whether to use cookies. -; https://php.net/session.use-cookies -session.use_cookies = 1 - -; https://php.net/session.cookie-secure -;session.cookie_secure = - -; This option forces PHP to fetch and use a cookie for storing and maintaining -; the session id. We encourage this operation as it's very helpful in combating -; session hijacking when not specifying and managing your own session id. It is -; not the be-all and end-all of session hijacking defense, but it's a good start. -; https://php.net/session.use-only-cookies -session.use_only_cookies = 1 - -; Name of the session (used as cookie name). -; https://php.net/session.name -session.name = PHPSESSID - -; Initialize session on request startup. -; https://php.net/session.auto-start -session.auto_start = 0 - -; Lifetime in seconds of cookie or, if 0, until browser is restarted. -; https://php.net/session.cookie-lifetime -session.cookie_lifetime = 0 - -; The path for which the cookie is valid. -; https://php.net/session.cookie-path -session.cookie_path = / - -; The domain for which the cookie is valid. -; https://php.net/session.cookie-domain -session.cookie_domain = - -; Whether or not to add the httpOnly flag to the cookie, which makes it -; inaccessible to browser scripting languages such as JavaScript. -; https://php.net/session.cookie-httponly -session.cookie_httponly = - -; Add SameSite attribute to cookie to help mitigate Cross-Site Request Forgery (CSRF/XSRF) -; Current valid values are "Strict", "Lax" or "None". When using "None", -; make sure to include the quotes, as `none` is interpreted like `false` in ini files. -; https://tools.ietf.org/html/draft-west-first-party-cookies-07 -session.cookie_samesite = - -; Handler used to serialize data. php is the standard serializer of PHP. -; https://php.net/session.serialize-handler -session.serialize_handler = php - -; Defines the probability that the 'garbage collection' process is started on every -; session initialization. The probability is calculated by using gc_probability/gc_divisor, -; e.g. 1/100 means there is a 1% chance that the GC process starts on each request. -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; https://php.net/session.gc-probability -session.gc_probability = 1 - -; Defines the probability that the 'garbage collection' process is started on every -; session initialization. The probability is calculated by using gc_probability/gc_divisor, -; e.g. 1/100 means there is a 1% chance that the GC process starts on each request. -; For high volume production servers, using a value of 1000 is a more efficient approach. -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 -; https://php.net/session.gc-divisor -session.gc_divisor = 1000 - -; After this number of seconds, stored data will be seen as 'garbage' and -; cleaned up by the garbage collection process. -; https://php.net/session.gc-maxlifetime -session.gc_maxlifetime = 1440 - -; NOTE: If you are using the subdirectory option for storing session files -; (see session.save_path above), then garbage collection does *not* -; happen automatically. You will need to do your own garbage -; collection through a shell script, cron entry, or some other method. -; For example, the following script is the equivalent of setting -; session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes): -; find /path/to/sessions -cmin +24 -type f | xargs rm - -; Check HTTP Referer to invalidate externally stored URLs containing ids. -; HTTP_REFERER has to contain this substring for the session to be -; considered as valid. -; https://php.net/session.referer-check -session.referer_check = - -; Set to {nocache,private,public,} to determine HTTP caching aspects -; or leave this empty to avoid sending anti-caching headers. -; https://php.net/session.cache-limiter -session.cache_limiter = nocache - -; Document expires after n minutes. -; https://php.net/session.cache-expire -session.cache_expire = 180 - -; trans sid support is disabled by default. -; Use of trans sid may risk your users' security. -; Use this option with caution. -; - User may send URL contains active session ID -; to other person via. email/irc/etc. -; - URL that contains active session ID may be stored -; in publicly accessible computer. -; - User may access your site with the same session ID -; always using URL stored in browser's history or bookmarks. -; https://php.net/session.use-trans-sid -session.use_trans_sid = 0 - -; Set session ID character length. This value could be between 22 to 256. -; Shorter length than default is supported only for compatibility reason. -; Users should use 32 or more chars. -; https://php.net/session.sid-length -; Default Value: 32 -; Development Value: 26 -; Production Value: 26 -session.sid_length = 26 - -; The URL rewriter will look for URLs in a defined set of HTML tags. -; is special; if you include them here, the rewriter will -; add a hidden field with the info which is otherwise appended -; to URLs. tag's action attribute URL will not be modified -; unless it is specified. -; Note that all valid entries require a "=", even if no value follows. -; Default Value: "a=href,area=href,frame=src,form=" -; Development Value: "a=href,area=href,frame=src,form=" -; Production Value: "a=href,area=href,frame=src,form=" -; https://php.net/url-rewriter.tags -session.trans_sid_tags = "a=href,area=href,frame=src,form=" - -; URL rewriter does not rewrite absolute URLs by default. -; To enable rewrites for absolute paths, target hosts must be specified -; at RUNTIME. i.e. use ini_set() -; tags is special. PHP will check action attribute's URL regardless -; of session.trans_sid_tags setting. -; If no host is defined, HTTP_HOST will be used for allowed host. -; Example value: php.net,www.php.net,wiki.php.net -; Use "," for multiple hosts. No spaces are allowed. -; Default Value: "" -; Development Value: "" -; Production Value: "" -;session.trans_sid_hosts="" - -; Define how many bits are stored in each character when converting -; the binary hash data to something readable. -; Possible values: -; 4 (4 bits: 0-9, a-f) -; 5 (5 bits: 0-9, a-v) -; 6 (6 bits: 0-9, a-z, A-Z, "-", ",") -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 -; https://php.net/session.hash-bits-per-character -session.sid_bits_per_character = 5 - -; Enable upload progress tracking in $_SESSION -; Default Value: On -; Development Value: On -; Production Value: On -; https://php.net/session.upload-progress.enabled -;session.upload_progress.enabled = On - -; Cleanup the progress information as soon as all POST data has been read -; (i.e. upload completed). -; Default Value: On -; Development Value: On -; Production Value: On -; https://php.net/session.upload-progress.cleanup -;session.upload_progress.cleanup = On - -; A prefix used for the upload progress key in $_SESSION -; Default Value: "upload_progress_" -; Development Value: "upload_progress_" -; Production Value: "upload_progress_" -; https://php.net/session.upload-progress.prefix -;session.upload_progress.prefix = "upload_progress_" - -; The index name (concatenated with the prefix) in $_SESSION -; containing the upload progress information -; Default Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Development Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Production Value: "PHP_SESSION_UPLOAD_PROGRESS" -; https://php.net/session.upload-progress.name -;session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS" - -; How frequently the upload progress should be updated. -; Given either in percentages (per-file), or in bytes -; Default Value: "1%" -; Development Value: "1%" -; Production Value: "1%" -; https://php.net/session.upload-progress.freq -;session.upload_progress.freq = "1%" - -; The minimum delay between updates, in seconds -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; https://php.net/session.upload-progress.min-freq -;session.upload_progress.min_freq = "1" - -; Only write session data when session data is changed. Enabled by default. -; https://php.net/session.lazy-write -;session.lazy_write = On - -[Assertion] -; Switch whether to compile assertions at all (to have no overhead at run-time) -; -1: Do not compile at all -; 0: Jump over assertion at run-time -; 1: Execute assertions -; Changing from or to a negative value is only possible in php.ini! -; (For turning assertions on and off at run-time, toggle zend.assertions between the values 1 and 0) -; Default Value: 1 -; Development Value: 1 -; Production Value: -1 -; https://php.net/zend.assertions -zend.assertions = -1 - -[COM] -; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs -; https://php.net/com.typelib-file -;com.typelib_file = - -; allow Distributed-COM calls -; https://php.net/com.allow-dcom -;com.allow_dcom = true - -; autoregister constants of a component's typelib on com_load() -; https://php.net/com.autoregister-typelib -;com.autoregister_typelib = true - -; register constants casesensitive -; https://php.net/com.autoregister-casesensitive -;com.autoregister_casesensitive = false - -; show warnings on duplicate constant registrations -; https://php.net/com.autoregister-verbose -;com.autoregister_verbose = true - -; The default character set code-page to use when passing strings to and from COM objects. -; Default: system ANSI code page -;com.code_page= - -; The version of the .NET framework to use. The value of the setting are the first three parts -; of the framework's version number, separated by dots, and prefixed with "v", e.g. "v4.0.30319". -;com.dotnet_version= - -[mbstring] -; language for internal character representation. -; This affects mb_send_mail() and mbstring.detect_order. -; https://php.net/mbstring.language -;mbstring.language = Japanese - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; internal/script encoding. -; Some encoding cannot work as internal encoding. (e.g. SJIS, BIG5, ISO-2022-*) -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;mbstring.internal_encoding = - -; Use of this INI entry is deprecated, use global input_encoding instead. -; http input encoding. -; mbstring.encoding_translation = On is needed to use this setting. -; If empty, default_charset or input_encoding or mbstring.input is used. -; The precedence is: default_charset < input_encoding < mbstring.http_input -; https://php.net/mbstring.http-input -;mbstring.http_input = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; http output encoding. -; mb_output_handler must be registered as output buffer to function. -; If empty, default_charset or output_encoding or mbstring.http_output is used. -; The precedence is: default_charset < output_encoding < mbstring.http_output -; To use an output encoding conversion, mbstring's output handler must be set -; otherwise output encoding conversion cannot be performed. -; https://php.net/mbstring.http-output -;mbstring.http_output = - -; enable automatic encoding translation according to -; mbstring.internal_encoding setting. Input chars are -; converted to internal encoding by setting this to On. -; Note: Do _not_ use automatic encoding translation for -; portable libs/applications. -; https://php.net/mbstring.encoding-translation -;mbstring.encoding_translation = Off - -; automatic encoding detection order. -; "auto" detect order is changed according to mbstring.language -; https://php.net/mbstring.detect-order -;mbstring.detect_order = auto - -; substitute_character used when character cannot be converted -; one from another -; https://php.net/mbstring.substitute-character -;mbstring.substitute_character = none - -; Enable strict encoding detection. -;mbstring.strict_detection = Off - -; This directive specifies the regex pattern of content types for which mb_output_handler() -; is activated. -; Default: mbstring.http_output_conv_mimetypes=^(text/|application/xhtml\+xml) -;mbstring.http_output_conv_mimetypes= - -; This directive specifies maximum stack depth for mbstring regular expressions. It is similar -; to the pcre.recursion_limit for PCRE. -;mbstring.regex_stack_limit=100000 - -; This directive specifies maximum retry count for mbstring regular expressions. It is similar -; to the pcre.backtrack_limit for PCRE. -;mbstring.regex_retry_limit=1000000 - -[gd] -; Tell the jpeg decode to ignore warnings and try to create -; a gd image. The warning will then be displayed as notices -; disabled by default -; https://php.net/gd.jpeg-ignore-warning -;gd.jpeg_ignore_warning = 1 - -[exif] -; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS. -; With mbstring support this will automatically be converted into the encoding -; given by corresponding encode setting. When empty mbstring.internal_encoding -; is used. For the decode settings you can distinguish between motorola and -; intel byte order. A decode setting cannot be empty. -; https://php.net/exif.encode-unicode -;exif.encode_unicode = ISO-8859-15 - -; https://php.net/exif.decode-unicode-motorola -;exif.decode_unicode_motorola = UCS-2BE - -; https://php.net/exif.decode-unicode-intel -;exif.decode_unicode_intel = UCS-2LE - -; https://php.net/exif.encode-jis -;exif.encode_jis = - -; https://php.net/exif.decode-jis-motorola -;exif.decode_jis_motorola = JIS - -; https://php.net/exif.decode-jis-intel -;exif.decode_jis_intel = JIS - -[Tidy] -; The path to a default tidy configuration file to use when using tidy -; https://php.net/tidy.default-config -;tidy.default_config = /usr/local/lib/php/default.tcfg - -; Should tidy clean and repair output automatically? -; WARNING: Do not use this option if you are generating non-html content -; such as dynamic images -; https://php.net/tidy.clean-output -tidy.clean_output = Off - -[soap] -; Enables or disables WSDL caching feature. -; https://php.net/soap.wsdl-cache-enabled -soap.wsdl_cache_enabled=1 - -; Sets the directory name where SOAP extension will put cache files. -; https://php.net/soap.wsdl-cache-dir -soap.wsdl_cache_dir="/tmp" - -; (time to live) Sets the number of second while cached file will be used -; instead of original one. -; https://php.net/soap.wsdl-cache-ttl -soap.wsdl_cache_ttl=86400 - -; Sets the size of the cache limit. (Max. number of WSDL files to cache) -soap.wsdl_cache_limit = 5 - -[sysvshm] -; A default size of the shared memory segment -;sysvshm.init_mem = 10000 - -[ldap] -; Sets the maximum number of open links or -1 for unlimited. -ldap.max_links = -1 - -[dba] -;dba.default_handler= - -[opcache] -; Determines if Zend OPCache is enabled -;opcache.enable=1 - -; Determines if Zend OPCache is enabled for the CLI version of PHP -;opcache.enable_cli=0 - -; The OPcache shared memory storage size. -;opcache.memory_consumption=128 - -; The amount of memory for interned strings in Mbytes. -;opcache.interned_strings_buffer=8 - -; The maximum number of keys (scripts) in the OPcache hash table. -; Only numbers between 200 and 1000000 are allowed. -;opcache.max_accelerated_files=10000 - -; The maximum percentage of "wasted" memory until a restart is scheduled. -;opcache.max_wasted_percentage=5 - -; When this directive is enabled, the OPcache appends the current working -; directory to the script key, thus eliminating possible collisions between -; files with the same name (basename). Disabling the directive improves -; performance, but may break existing applications. -;opcache.use_cwd=1 - -; When disabled, you must reset the OPcache manually or restart the -; webserver for changes to the filesystem to take effect. -;opcache.validate_timestamps=1 - -; How often (in seconds) to check file timestamps for changes to the shared -; memory storage allocation. ("1" means validate once per second, but only -; once per request. "0" means always validate) -;opcache.revalidate_freq=2 - -; Enables or disables file search in include_path optimization -;opcache.revalidate_path=0 - -; If disabled, all PHPDoc comments are dropped from the code to reduce the -; size of the optimized code. -;opcache.save_comments=1 - -; If enabled, compilation warnings (including notices and deprecations) will -; be recorded and replayed each time a file is included. Otherwise, compilation -; warnings will only be emitted when the file is first cached. -;opcache.record_warnings=0 - -; Allow file existence override (file_exists, etc.) performance feature. -;opcache.enable_file_override=0 - -; A bitmask, where each bit enables or disables the appropriate OPcache -; passes -;opcache.optimization_level=0x7FFFBFFF - -;opcache.dups_fix=0 - -; The location of the OPcache blacklist file (wildcards allowed). -; Each OPcache blacklist file is a text file that holds the names of files -; that should not be accelerated. The file format is to add each filename -; to a new line. The filename may be a full path or just a file prefix -; (i.e., /var/www/x blacklists all the files and directories in /var/www -; that start with 'x'). Line starting with a ; are ignored (comments). -;opcache.blacklist_filename= - -; Allows exclusion of large files from being cached. By default all files -; are cached. -;opcache.max_file_size=0 - -; How long to wait (in seconds) for a scheduled restart to begin if the cache -; is not being accessed. -;opcache.force_restart_timeout=180 - -; OPcache error_log file name. Empty string assumes "stderr". -;opcache.error_log= - -; All OPcache errors go to the Web server log. -; By default, only fatal errors (level 0) or errors (level 1) are logged. -; You can also enable warnings (level 2), info messages (level 3) or -; debug messages (level 4). -;opcache.log_verbosity_level=1 - -; Preferred Shared Memory back-end. Leave empty and let the system decide. -;opcache.preferred_memory_model= - -; Protect the shared memory from unexpected writing during script execution. -; Useful for internal debugging only. -;opcache.protect_memory=0 - -; Allows calling OPcache API functions only from PHP scripts which path is -; started from specified string. The default "" means no restriction -;opcache.restrict_api= - -; Mapping base of shared memory segments (for Windows only). All the PHP -; processes have to map shared memory into the same address space. This -; directive allows to manually fix the "Unable to reattach to base address" -; errors. -;opcache.mmap_base= - -; Facilitates multiple OPcache instances per user (for Windows only). All PHP -; processes with the same cache ID and user share an OPcache instance. -;opcache.cache_id= - -; Enables and sets the second level cache directory. -; It should improve performance when SHM memory is full, at server restart or -; SHM reset. The default "" disables file based caching. -;opcache.file_cache= - -; Enables or disables opcode caching in shared memory. -;opcache.file_cache_only=0 - -; Enables or disables checksum validation when script loaded from file cache. -;opcache.file_cache_consistency_checks=1 - -; Implies opcache.file_cache_only=1 for a certain process that failed to -; reattach to the shared memory (for Windows only). Explicitly enabled file -; cache is required. -;opcache.file_cache_fallback=1 - -; Enables or disables copying of PHP code (text segment) into HUGE PAGES. -; Under certain circumstances (if only a single global PHP process is -; started from which all others fork), this can increase performance -; by a tiny amount because TLB misses are reduced. On the other hand, this -; delays PHP startup, increases memory usage and degrades performance -; under memory pressure - use with care. -; Requires appropriate OS configuration. -;opcache.huge_code_pages=0 - -; Validate cached file permissions. -;opcache.validate_permission=0 - -; Prevent name collisions in chroot'ed environment. -;opcache.validate_root=0 - -; If specified, it produces opcode dumps for debugging different stages of -; optimizations. -;opcache.opt_debug_level=0 - -; Specifies a PHP script that is going to be compiled and executed at server -; start-up. -; https://php.net/opcache.preload -;opcache.preload= - -; Preloading code as root is not allowed for security reasons. This directive -; facilitates to let the preloading to be run as another user. -; https://php.net/opcache.preload_user -;opcache.preload_user= - -; Prevents caching files that are less than this number of seconds old. It -; protects from caching of incompletely updated files. In case all file updates -; on your site are atomic, you may increase performance by setting it to "0". -;opcache.file_update_protection=2 - -; Absolute path used to store shared lockfiles (for *nix only). -;opcache.lockfile_path=/tmp - -[curl] -; A default value for the CURLOPT_CAINFO option. This is required to be an -; absolute path. -;curl.cainfo = - -[openssl] -; The location of a Certificate Authority (CA) file on the local filesystem -; to use when verifying the identity of SSL/TLS peers. Most users should -; not specify a value for this directive as PHP will attempt to use the -; OS-managed cert stores in its absence. If specified, this value may still -; be overridden on a per-stream basis via the "cafile" SSL stream context -; option. -;openssl.cafile= - -; If openssl.cafile is not specified or if the CA file is not found, the -; directory pointed to by openssl.capath is searched for a suitable -; certificate. This value must be a correctly hashed certificate directory. -; Most users should not specify a value for this directive as PHP will -; attempt to use the OS-managed cert stores in its absence. If specified, -; this value may still be overridden on a per-stream basis via the "capath" -; SSL stream context option. -;openssl.capath= - -[ffi] -; FFI API restriction. Possible values: -; "preload" - enabled in CLI scripts and preloaded files (default) -; "false" - always disabled -; "true" - always enabled -;ffi.enable=preload - -; List of headers files to preload, wildcard patterns allowed. -;ffi.preload= diff --git a/php/7/data.yml b/php/7/data.yml deleted file mode 100755 index 0b47a574e..000000000 --- a/php/7/data.yml +++ /dev/null @@ -1,104 +0,0 @@ -additionalProperties: - formFields: - - type: select - multiple: true - labelZh: 默认扩展 - labelEn: Extensions - allowCreate: true - default: - values: - - label: opcache - value: opcache - - label: memcached - value: memcached - - label: memcache - value: memcache - - label: redis - value: redis - - label: mcrypt - value: mcrypt - - label: xdebug - value: xdebug - - label: imap - value: imap - - label: exif - value: exif - - label: intl - value: intl - - label: swoole - value: swoole - - label: yaf - value: yaf - - label: pgsql - value: pgsql - - label: pdo_pgsql - value: pdo_pgsql - - label: snmp - value: snmp - - label: ldap - value: ldap - - label: pspell - value: pspell - - label: bz2 - value: bz2 - - label: sysvshm - value: sysvshm - - label: calendar - value: calendar - - label: gmp - value: gmp - - label: sysvmsg - value: sysvmsg - - label: igbinary - value: igbinary - - label: mysqli - value: mysqli - - label: pdo_mysql - value: pdo_mysql - - label: mbstring - value: mbstring - - label: gd - value: gd - - label: ionCube - value: ionCube - - label: curl - value: curl - - label: sg16 - value: sg16 - - label: imagick - value: imagick - envKey: PHP_EXTENSIONS - - default: 7.4.33 - envKey: PHP_VERSION - labelEn: PHP Version - labelZh: PHP 版本 - required: true - type: select - values: - - label: "7.4.33" - value: "7.4.33" - - label: "7.3.33" - value: "7.3.33" - - label: "7.2.34" - value: "7.2.34" - - label: "7.1.33" - value: "7.1.33" - - label: "7.0.33" - value: "7.0.33" - - default: https://mirrors.tuna.tsinghua.edu.cn - envKey: CONTAINER_PACKAGE_URL - labelEn: Package Source - labelZh: 扩展源 - required: true - type: select - values: - - label: "https://mirrors.tuna.tsinghua.edu.cn" - value: "https://mirrors.tuna.tsinghua.edu.cn" - - default: 9000 - envKey: PANEL_APP_PORT_HTTP - labelEn: PHP-FPM Port - labelZh: PHP-FPM 端口 - required: true - rule: paramPort - type: number - \ No newline at end of file diff --git a/php/7/docker-compose.yml b/php/7/docker-compose.yml deleted file mode 100644 index c78da286a..000000000 --- a/php/7/docker-compose.yml +++ /dev/null @@ -1,35 +0,0 @@ -services: - php: - build: - context: ./build - args: - PHP_IMAGE: 1panel/php:${PHP_VERSION}-fpm - CONTAINER_PACKAGE_URL: ${CONTAINER_PACKAGE_URL} - PHP_EXTENSIONS: ${PHP_EXTENSIONS} - TZ: ${TZ} - image: ${IMAGE_NAME} - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - volumes: - - ${PANEL_WEBSITE_DIR}:/www/ - - ./conf:/usr/local/etc/php - - ./conf/conf.d:/usr/local/etc/php/conf.d - - ./conf/php-fpm.conf:/usr/local/etc/php-fpm.d/www.conf - - ./log:/var/log/php - - ./extensions:${EXTENSION_DIR} - - ./supervisor/supervisord.conf:/etc/supervisord.conf - - ./supervisor/supervisor.d/php-fpm.ini:/etc/supervisor.d/php-fpm.ini - - ./supervisor/supervisor.d:/etc/supervisor.d - - ./supervisor/log:/var/log/supervisor - - ./composer:/tmp/composer - ports: - - 127.0.0.1:${PANEL_APP_PORT_HTTP}:9000 - labels: - createdBy: "Apps" - cap_add: - - SYS_PTRACE -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/php/7/supervisor/supervisor.d/php-fpm.ini b/php/7/supervisor/supervisor.d/php-fpm.ini deleted file mode 100644 index 06609e64f..000000000 --- a/php/7/supervisor/supervisor.d/php-fpm.ini +++ /dev/null @@ -1,11 +0,0 @@ -[program:php-fpm] -command=php-fpm -process_name=%(program_name)s_%(process_num)02d -user=root -numprocs=1 -autostart=true -autorestart=false -startsecs=0 -redirect_stderr=true -stdout_logfile=/dev/stdout -stdout_logfile_maxbytes=0 \ No newline at end of file diff --git a/php/7/supervisor/supervisord.conf b/php/7/supervisor/supervisord.conf deleted file mode 100644 index eb1d14351..000000000 --- a/php/7/supervisor/supervisord.conf +++ /dev/null @@ -1,155 +0,0 @@ -; Sample supervisor config file. -; -; For more information on the config file, please see: -; http://supervisord.org/configuration.html -; -; Notes: -; - Shell expansion ("~" or "$HOME") is not supported. Environment -; variables can be expanded using this syntax: "%(ENV_HOME)s". -; - Quotes around values are not supported, except in the case of -; the environment= options as shown below. -; - Comments must have a leading space: "a=b ;comment" not "a=b;comment". -; - Command will be truncated if it looks like a config file comment, e.g. -; "command=bash -c 'foo ; bar'" will truncate to "command=bash -c 'foo ". -[unix_http_server] -; the path to the socket file -file = /run/supervisor.sock - -; chmod=0700 ; socket file mode (default 0700) -; chown=nobody:nogroup ; socket file uid:gid owner -; username=user ; default is no username (open server) -; password=123 ; default is no password (open server) -; inet (TCP) server disabled by default -[inet_http_server] -; ip_address:port specifier, *:port for all iface -port = 127.0.0.1:9002 - -; username=user ; default is no username (open server) -; password=123 ; default is no password (open server) -[supervisord] -; main log file; default $CWD/supervisord.log -logfile = /var/log/supervisord.log -; max main logfile bytes b4 rotation; default 50MB -logfile_maxbytes = 50MB -; # of main logfile backups; 0 means none, default 11 -logfile_backups = 10 -; log level; default info; others: debug,warn,trace -loglevel = info -; supervisord pidfile; default supervisord.pid -pidfile = /run/supervisord.pid -; start in foreground if true; default false -nodaemon = true -; min. avail startup file descriptors; default 1024 -minfds = 1024 -; min. avail process descriptors;default 200 -minprocs = 200 -; umask=022 ; process file creation umask; default 022 -; user=supervisord ; setuid to this UNIX account at startup; recommended if root -; identifier=supervisor ; supervisord identifier, default is 'supervisor' -; directory=/tmp ; default is not to cd during start -; nocleanup=true ; don't clean up tempfiles at start; default false -; 'AUTO' child log dir, default $TEMP -childlogdir = /var/log/supervisor - -; environment=KEY="value" ; key value pairs to add to environment -; strip_ansi=false ; strip ansi escape codes in logs; def. false -; The rpcinterface:supervisor section must remain in the config file for -; RPC (supervisorctl/web interface) to work. Additional interfaces may be -; added by defining them in separate [rpcinterface:x] sections. -[rpcinterface:supervisor] -supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface - -; The supervisorctl section configures how supervisorctl will connect to -; supervisord. configure it match the settings in either the unix_http_server -; or inet_http_server section. -[supervisorctl] -; use a unix:// URL for a unix socket -serverurl = unix:///run/supervisor.sock - -; serverurl=http://127.0.0.1:9001 ; use an http:// url to specify an inet socket -; username=chris ; should be same as in [*_http_server] if set -; password=123 ; should be same as in [*_http_server] if set -; prompt=mysupervisor ; cmd line prompt (default "supervisor") -; history_file=~/.sc_history ; use readline history if available -; The sample program section below shows all possible program subsection values. -; Create one or more 'real' program: sections to be able to control them under -; supervisor. -; [program:theprogramname] -; command=/bin/cat ; the program (relative uses PATH, can take args) -; process_name=%(program_name)s ; process_name expr (default %(program_name)s) -; numprocs=1 ; number of processes copies to start (def 1) -; directory=/tmp ; directory to cwd to before exec (def no cwd) -; umask=022 ; umask for process (default None) -; priority=999 ; the relative start priority (default 999) -; autostart=true ; start at supervisord start (default: true) -; startsecs=1 ; # of secs prog must stay up to be running (def. 1) -; startretries=3 ; max # of serial start failures when starting (default 3) -; autorestart=unexpected ; when to restart if exited after running (def: unexpected) -; exitcodes=0 ; 'expected' exit codes used with autorestart (default 0) -; stopsignal=QUIT ; signal used to kill process (default TERM) -; stopwaitsecs=10 ; max num secs to wait b4 SIGKILL (default 10) -; stopasgroup=false ; send stop signal to the UNIX process group (default false) -; killasgroup=false ; SIGKILL the UNIX process group (def false) -; user=chrism ; setuid to this UNIX account to run the program -; redirect_stderr=true ; redirect proc stderr to stdout (default false) -; stdout_logfile=/a/path ; stdout log path, NONE for none; default AUTO -; stdout_logfile_maxbytes=1MB ; max # logfile bytes b4 rotation (default 50MB) -; stdout_logfile_backups=10 ; # of stdout logfile backups (0 means none, default 10) -; stdout_capture_maxbytes=1MB ; number of bytes in 'capturemode' (default 0) -; stdout_events_enabled=false ; emit events on stdout writes (default false) -; stdout_syslog=false ; send stdout to syslog with process name (default false) -; stderr_logfile=/a/path ; stderr log path, NONE for none; default AUTO -; stderr_logfile_maxbytes=1MB ; max # logfile bytes b4 rotation (default 50MB) -; stderr_logfile_backups=10 ; # of stderr logfile backups (0 means none, default 10) -; stderr_capture_maxbytes=1MB ; number of bytes in 'capturemode' (default 0) -; stderr_events_enabled=false ; emit events on stderr writes (default false) -; stderr_syslog=false ; send stderr to syslog with process name (default false) -; environment=A="1",B="2" ; process environment additions (def no adds) -; serverurl=AUTO ; override serverurl computation (childutils) -; The sample eventlistener section below shows all possible eventlistener -; subsection values. Create one or more 'real' eventlistener: sections to be -; able to handle event notifications sent by supervisord. -; [eventlistener:theeventlistenername] -; command=/bin/eventlistener ; the program (relative uses PATH, can take args) -; process_name=%(program_name)s ; process_name expr (default %(program_name)s) -; numprocs=1 ; number of processes copies to start (def 1) -; events=EVENT ; event notif. types to subscribe to (req'd) -; buffer_size=10 ; event buffer queue size (default 10) -; directory=/tmp ; directory to cwd to before exec (def no cwd) -; umask=022 ; umask for process (default None) -; priority=-1 ; the relative start priority (default -1) -; autostart=true ; start at supervisord start (default: true) -; startsecs=1 ; # of secs prog must stay up to be running (def. 1) -; startretries=3 ; max # of serial start failures when starting (default 3) -; autorestart=unexpected ; autorestart if exited after running (def: unexpected) -; exitcodes=0 ; 'expected' exit codes used with autorestart (default 0) -; stopsignal=QUIT ; signal used to kill process (default TERM) -; stopwaitsecs=10 ; max num secs to wait b4 SIGKILL (default 10) -; stopasgroup=false ; send stop signal to the UNIX process group (default false) -; killasgroup=false ; SIGKILL the UNIX process group (def false) -; user=chrism ; setuid to this UNIX account to run the program -; redirect_stderr=false ; redirect_stderr=true is not allowed for eventlisteners -; stdout_logfile=/a/path ; stdout log path, NONE for none; default AUTO -; stdout_logfile_maxbytes=1MB ; max # logfile bytes b4 rotation (default 50MB) -; stdout_logfile_backups=10 ; # of stdout logfile backups (0 means none, default 10) -; stdout_events_enabled=false ; emit events on stdout writes (default false) -; stdout_syslog=false ; send stdout to syslog with process name (default false) -; stderr_logfile=/a/path ; stderr log path, NONE for none; default AUTO -; stderr_logfile_maxbytes=1MB ; max # logfile bytes b4 rotation (default 50MB) -; stderr_logfile_backups=10 ; # of stderr logfile backups (0 means none, default 10) -; stderr_events_enabled=false ; emit events on stderr writes (default false) -; stderr_syslog=false ; send stderr to syslog with process name (default false) -; environment=A="1",B="2" ; process environment additions -; serverurl=AUTO ; override serverurl computation (childutils) -; The sample group section below shows all possible group values. Create one -; or more 'real' group: sections to create "heterogeneous" process groups. -; [group:thegroupname] -; programs=progname1,progname2 ; each refers to 'x' in [program:x] definitions -; priority=999 ; the relative start priority (default 999) -; The [include] section can just contain the "files" setting. This -; setting can list multiple files (separated by whitespace or -; newlines). It can also contain wildcards. The filenames are -; interpreted as relative to this file. Included files *cannot* -; include files themselves. -[include] -files = /etc/supervisor.d/*.ini \ No newline at end of file diff --git a/php/8/.env b/php/8/.env deleted file mode 100644 index 5192b5124..000000000 --- a/php/8/.env +++ /dev/null @@ -1,6 +0,0 @@ -PHP_VERSION= -CONTAINER_PACKAGE_URL= -PHP_EXTENSIONS= -IMAGE_NAME= -TZ="Asia/Shanghai" -EXTENSION_DIR="/usr/local/lib/php/extensions" diff --git a/php/8/build/Dockerfile b/php/8/build/Dockerfile deleted file mode 100644 index aa9a39ce1..000000000 --- a/php/8/build/Dockerfile +++ /dev/null @@ -1,29 +0,0 @@ -ARG PHP_IMAGE -FROM ${PHP_IMAGE} - -ARG PHP_EXTENSIONS -ARG CONTAINER_PACKAGE_URL - - -RUN if [ -f /etc/apt/sources.list.d/debian.sources ]; then \ - sed -i "s|URIs: http://deb.debian.org/debian|URIs: ${CONTAINER_PACKAGE_URL}/debian|g" /etc/apt/sources.list.d/debian.sources; \ - elif [ -f /etc/apt/sources.list ]; then \ - sed -i "s|http://deb.debian.org/debian|${CONTAINER_PACKAGE_URL}/debian|g" /etc/apt/sources.list; \ - fi && \ - apt-get update - - -COPY ./data /tmp/data - -COPY data/install-ext /usr/local/bin/ -RUN chmod uga+x /usr/local/bin/install-ext - -ENV PHP_INI_SCAN_DIR=/usr/local/etc/php/conf.d - -RUN pear config-set php_ini /usr/local/etc/php/php.ini - -RUN usermod -u 1000 www-data && groupmod -g 1000 www-data - -ENTRYPOINT ["supervisord", "--nodaemon", "--configuration", "/etc/supervisord.conf"] - -WORKDIR /www \ No newline at end of file diff --git a/php/8/build/data/imagick-3.8.0.tar.gz b/php/8/build/data/imagick-3.8.0.tar.gz deleted file mode 100644 index a87f5e4af..000000000 Binary files a/php/8/build/data/imagick-3.8.0.tar.gz and /dev/null differ diff --git a/php/8/build/data/install-ext b/php/8/build/data/install-ext deleted file mode 100644 index 61112d1fe..000000000 --- a/php/8/build/data/install-ext +++ /dev/null @@ -1,310 +0,0 @@ -#!/bin/bash - -export MC="-j$(nproc)" -ERROR_CODE=0 - -echo -echo "============================================" -echo "PHP version : ${PHP_VERSION}" -echo "Install extensions : $1" -echo "============================================" -echo - -installExtensionFromTgz() -{ - tgzName=$1 - result="" - extensionName="${tgzName%%-*}" - shift 1 - result=$@ - mkdir /tmp/data/${tgzName} - tar -zxvf /tmp/data/${tgzName}.tar.gz -C /tmp/data/${tgzName} --strip-components=1 - ( cd /tmp/data/${tgzName} && phpize && ./configure ${result} && make ${MC} && make install ) - - docker-php-ext-enable ${extensionName} -} - -is_extension_installed() { - local extension=$1 - if php -m | grep -q "^$extension$"; then - echo "------ $extension is already installed ------" - return 0 - else - return 1 - fi -} - -install_php_extensions() { - local extension=$1 - install-php-extensions $extension - local check_name=$2 - if [ -z "$check_name" ]; then - check_name=$extension - fi - if is_extension_installed "$check_name"; then - echo "------ install-php-extensions $extension succeeded ------" - return - fi - - echo "------ install-php-extensions $extension failed ------" - ERROR_CODE=1 - return 1 -} - -pecl_install() { - local extension=$1 - printf "\n" | pecl install $extension - docker-php-ext-enable $extension - if is_extension_installed "$extension"; then - echo "------ pecl install $extension succeeded ------" - return 0 - fi - echo "------ pecl install $extension failed ------" - ERROR_CODE=1 - return 1 -} - -docker_php_ext_install() { - local extension=$1 - local check_name=$2 - if [ -z "$check_name" ]; then - check_name=$extension - fi - docker-php-ext-install $extension - if is_extension_installed "$check_name"; then - echo "------ docker-php-ext-install install $extension succeeded ------" - return 0 - fi - echo "------ docker-php-ext-install install $extension failed------" - ERROR_CODE=1 - return 1 -} - -install_extension_default() { - local extension=$1 - printf "\n" | pecl install $extension - if [ $? -eq 0 ]; then - docker-php-ext-enable $extension - echo "------ pecl install $extension succeeded ------" - else - echo "------ pecl install $extension failed use docker-php-ext-install------" - docker-php-ext-install ${MC} $extension - if [ $? -eq 0 ]; then - echo "------ docker-php-ext-install install $extension succeeded ------" - else - echo "------ docker-php-ext-install install $extension failed use install-php-extensions------" - install-php-extensions $extension - if [ $? -eq 0 ]; then - echo "------ install-php-extensions $extension succeeded ------" - else - echo "------ install-php-extensions $extension failed ------" - ERROR_CODE=1 - fi - fi - fi -} - - -install_msg() { - if [ $? -eq 0 ]; then - echo "------ install $1 succeeded ------" - else - echo "------ install $1 failed ------" - ERROR_CODE=1 - fi -} - -install_memcache() { - printf "\n" | pecl install memcache - install_msg memcache - docker-php-ext-enable memcache -} - -install_pdo_pgsql() { - apt-get update && apt-get install -y libpq-dev - install_msg pdo_pgsql - docker-php-ext-install pdo_pgsql -} - -install_pdo_mysql() { - docker-php-ext-install pdo_mysql - install_msg pdo_mysql -} - -install_yaf() { - pecl install yaf - install_msg yaf - docker-php-ext-enable yaf -} - -install_imagick() { - apt-get update && apt-get install -y libmagickwand-dev - installExtensionFromTgz imagick-3.8.0 - install_msg imagick -} - -install_extension() { - local extension=$1 - if [ -z "$extension" ]; then - return - fi - if is_extension_installed "$extension"; then - return - fi - - echo "------ install extension: $extension ------" - - if [ "$extension" = "gd" ]; then - install_php_extensions gd - elif [ "$extension" = "memcache" ]; then - install_memcache - elif [ "$extension" = "yaf" ]; then - install_yaf - elif [ "$extension" = "pdo_pgsql" ]; then - install_pdo_pgsql - elif [ "$extension" = "pdo_mysql" ]; then - install_pdo_mysql - elif [ "$extension" = "yaml" ]; then - apt-get install -y libyaml-dev - pecl_install yaml - elif [ "$extension" = "mongodb" ]; then - apt-get install -y libssl-dev - pecl_install mongodb - elif [ "$extension" = "mcrypt" ]; then - apt-get install -y libmcrypt-dev - pecl_install mcrypt - elif [ "$extension" = "ssh2" ]; then - apt-get install -y libssh2-1-dev libssh2-1 - pecl_install ssh2 - elif [ "$extension" = "rdkafka" ]; then - apt-get install -y librdkafka-dev - pecl_install rdkafka - elif [ "$extension" = "varnish" ]; then - apt-get install -y libvarnishapi-dev - pecl_install varnish - elif [ "$extension" = "bcmath" ]; then - docker_php_ext_install bcmath - elif [ "$extension" = "pcntl" ]; then - docker_php_ext_install pcntl - elif [ "$extension" = "shmop" ]; then - docker_php_ext_install shmop - elif [ "$extension" = "gettext" ]; then - docker_php_ext_install gettext - elif [ "$extension" = "sockets" ]; then - docker_php_ext_install sockets - elif [ "$extension" = "sysvsem" ]; then - docker_php_ext_install sysvsem - elif [ "$extension" = "sysvmsg" ]; then - docker_php_ext_install sysvmsg - elif [ "$extension" = "opcache" ]; then - docker_php_ext_install opcache "Zend OPcache" - elif [ "$extension" = "mysqli" ]; then - docker_php_ext_install mysqli - elif [ "$extension" = "sysvshm" ]; then - docker_php_ext_install sysvshm - elif [ "$extension" = "calendar" ]; then - docker_php_ext_install calendar - elif [ "$extension" = "sodium" ]; then - apt-get install -y libsodium-dev - docker_php_ext_install sodium - elif [ "$extension" = "zip" ]; then - install_php_extensions zip - elif [ "$extension" = "memcached" ]; then - install_php_extensions memcached - elif [ "$extension" = "igbinary" ]; then - pecl_install igbinary - elif [ "$extension" = "apcu" ]; then - pecl_install apcu - elif [ "$extension" = "redis" ]; then - pecl_install redis - elif [ "$extension" = "xdebug" ]; then - install_php_extensions xdebug - elif [ "$extension" = "imap" ]; then - install_php_extensions imap - elif [ "$extension" = "intl" ]; then - install_php_extensions intl - elif [ "$extension" = "swoole" ]; then - install_php_extensions swoole - elif [ "$extension" = "pgsql" ]; then - install_php_extensions pgsql - elif [ "$extension" = "curl" ]; then - install_php_extensions curl - elif [ "$extension" = "sg16" ]; then - install_php_extensions sourceguardian "SourceGuardian" - elif [ "$extension" = "snmp" ]; then - install_php_extensions snmp - elif [ "$extension" = "mbstring" ]; then - install_php_extensions mbstring - elif [ "$extension" = "pdo_firebird" ]; then - install_php_extensions pdo_firebird - elif [ "$extension" = "pdo_dblib" ]; then - install_php_extensions pdo_dblib - elif [ "$extension" = "pdo_oci" ]; then - install_php_extensions pdo_oci - elif [ "$extension" = "pdo_odbc" ]; then - install_php_extensions pdo_odbc - elif [ "$extension" = "oci8" ]; then - install_php_extensions oci8 - elif [ "$extension" = "odbc" ]; then - install_php_extensions odbc - elif [ "$extension" = "soap" ]; then - install_php_extensions soap - elif [ "$extension" = "xsl" ]; then - install_php_extensions xsl - elif [ "$extension" = "xmlrpc" ]; then - install_php_extensions xmlrpc - elif [ "$extension" = "readline" ]; then - install_php_extensions readline - elif [ "$extension" = "snmp" ]; then - install_php_extensions snmp - elif [ "$extension" = "tidy" ]; then - install_php_extensions tidy - elif [ "$extension" = "gmp" ]; then - install_php_extensions gmp - elif [ "$extension" = "ldap" ]; then - install_php_extensions ldap - elif [ "$extension" = "imagick" ]; then - install_imagick - elif [ "$extension" = "amqp" ]; then - install_php_extensions amqp - elif [ "$extension" = "zookeeper" ]; then - install_php_extensions zookeeper - elif [ "$extension" = "ionCube" ]; then - install_php_extensions ioncube_loader "ionCube Loader" - elif [ "$extension" = "pdo_sqlsrv" ]; then - install_php_extensions pdo_sqlsrv - elif [ "$extension" = "sqlsrv" ]; then - install_php_extensions sqlsrv - elif [ "$extension" = "enchant" ]; then - install_php_extensions enchant - elif [ "$extension" = "pspell" ]; then - install_php_extensions pspell - elif [ "$extension" = "bz2" ]; then - install_php_extensions bz2 - elif [ "$extension" = "zmq" ]; then - install_php_extensions zmq - elif [ "$extension" = "smbclient" ]; then - install_php_extensions smbclient - elif [ "$extension" = "event" ]; then - install_php_extensions event - else - install_extension_default $extension - fi -} - -extension=$1 - -if [[ $extension == *,* ]]; then - echo "${extension}" | tr ',' '\n' | while read -r extension; do - install_extension $extension - done -else - install_extension $extension - if [ $ERROR_CODE -ne 0 ]; then - exit $ERROR_CODE - fi -fi - -docker-php-source delete - -exit 0 diff --git a/php/8/conf/php-fpm.conf b/php/8/conf/php-fpm.conf deleted file mode 100644 index 131835891..000000000 --- a/php/8/conf/php-fpm.conf +++ /dev/null @@ -1,423 +0,0 @@ -; Start a new pool named 'www'. -; the variable $pool can be used in any directive and will be replaced by the -; pool name ('www' here) -[www] - -; Per pool prefix -; It only applies on the following directives: -; - 'access.log' -; - 'slowlog' -; - 'listen' (unixsocket) -; - 'chroot' -; - 'chdir' -; - 'php_values' -; - 'php_admin_values' -; When not set, the global prefix (or NONE) applies instead. -; Note: This directive can also be relative to the global prefix. -; Default Value: none -;prefix = /path/to/pools/$pool - -; Unix user/group of processes -; Note: The user is mandatory. If the group is not set, the default user's group -; will be used. -user = www-data -group = www-data - -; The address on which to accept FastCGI requests. -; Valid syntaxes are: -; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on -; a specific port; -; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on -; a specific port; -; 'port' - to listen on a TCP socket to all addresses -; (IPv6 and IPv4-mapped) on a specific port; -; '/path/to/unix/socket' - to listen on a unix socket. -; Note: This value is mandatory. -listen = 127.0.0.1:9000 - -; Set listen(2) backlog. -; Default Value: 511 (-1 on FreeBSD and OpenBSD) -;listen.backlog = 511 - -; Set permissions for unix socket, if one is used. In Linux, read/write -; permissions must be set in order to allow connections from a web server. Many -; BSD-derived systems allow connections regardless of permissions. -; Default Values: user and group are set as the running user -; mode is set to 0660 -;listen.owner = www-data -;listen.group = www-data -;listen.mode = 0660 -; When POSIX Access Control Lists are supported you can set them using -; these options, value is a comma separated list of user/group names. -; When set, listen.owner and listen.group are ignored -;listen.acl_users = -;listen.acl_groups = - -; List of addresses (IPv4/IPv6) of FastCGI clients which are allowed to connect. -; Equivalent to the FCGI_WEB_SERVER_ADDRS environment variable in the original -; PHP FCGI (5.2.2+). Makes sense only with a tcp listening socket. Each address -; must be separated by a comma. If this value is left blank, connections will be -; accepted from any ip address. -; Default Value: any -;listen.allowed_clients = 127.0.0.1 - -; Specify the nice(2) priority to apply to the pool processes (only if set) -; The value can vary from -19 (highest priority) to 20 (lower priority) -; Note: - It will only work if the FPM master process is launched as root -; - The pool processes will inherit the master process priority -; unless it specified otherwise -; Default Value: no set -; process.priority = -19 - -; Set the process dumpable flag (PR_SET_DUMPABLE prctl) even if the process user -; or group is differrent than the master process user. It allows to create process -; core dump and ptrace the process for the pool user. -; Default Value: no -; process.dumpable = yes - -; Choose how the process manager will control the number of child processes. -; Possible Values: -; static - a fixed number (pm.max_children) of child processes; -; dynamic - the number of child processes are set dynamically based on the -; following directives. With this process management, there will be -; always at least 1 children. -; pm.max_children - the maximum number of children that can -; be alive at the same time. -; pm.start_servers - the number of children created on startup. -; pm.min_spare_servers - the minimum number of children in 'idle' -; state (waiting to process). If the number -; of 'idle' processes is less than this -; number then some children will be created. -; pm.max_spare_servers - the maximum number of children in 'idle' -; state (waiting to process). If the number -; of 'idle' processes is greater than this -; number then some children will be killed. -; ondemand - no children are created at startup. Children will be forked when -; new requests will connect. The following parameter are used: -; pm.max_children - the maximum number of children that -; can be alive at the same time. -; pm.process_idle_timeout - The number of seconds after which -; an idle process will be killed. -; Note: This value is mandatory. -pm = dynamic - -; The number of child processes to be created when pm is set to 'static' and the -; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'. -; This value sets the limit on the number of simultaneous requests that will be -; served. Equivalent to the ApacheMaxClients directive with mpm_prefork. -; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP -; CGI. The below defaults are based on a server without much resources. Don't -; forget to tweak pm.* to fit your needs. -; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand' -; Note: This value is mandatory. -pm.max_children = 10 - -; The number of child processes created on startup. -; Note: Used only when pm is set to 'dynamic' -; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2 -pm.start_servers = 2 - -; The desired minimum number of idle server processes. -; Note: Used only when pm is set to 'dynamic' -; Note: Mandatory when pm is set to 'dynamic' -pm.min_spare_servers = 1 - -; The desired maximum number of idle server processes. -; Note: Used only when pm is set to 'dynamic' -; Note: Mandatory when pm is set to 'dynamic' -pm.max_spare_servers = 3 - -; The number of seconds after which an idle process will be killed. -; Note: Used only when pm is set to 'ondemand' -; Default Value: 10s -;pm.process_idle_timeout = 10s; - -; The number of requests each child process should execute before respawning. -; This can be useful to work around memory leaks in 3rd party libraries. For -; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS. -; Default Value: 0 -;pm.max_requests = 500 - -; The URI to view the FPM status page. If this value is not set, no URI will be -; recognized as a status page. It shows the following informations: -; pool - the name of the pool; -; process manager - static, dynamic or ondemand; -; start time - the date and time FPM has started; -; start since - number of seconds since FPM has started; -; accepted conn - the number of request accepted by the pool; -; listen queue - the number of request in the queue of pending -; connections (see backlog in listen(2)); -; max listen queue - the maximum number of requests in the queue -; of pending connections since FPM has started; -; listen queue len - the size of the socket queue of pending connections; -; idle processes - the number of idle processes; -; active processes - the number of active processes; -; total processes - the number of idle + active processes; -; max active processes - the maximum number of active processes since FPM -; has started; -; max children reached - number of times, the process limit has been reached, -; when pm tries to start more children (works only for -; pm 'dynamic' and 'ondemand'); -; Value are updated in real time. -; Example output: -; pool: www -; process manager: static -; start time: 01/Jul/2011:17:53:49 +0200 -; start since: 62636 -; accepted conn: 190460 -; listen queue: 0 -; max listen queue: 1 -; listen queue len: 42 -; idle processes: 4 -; active processes: 11 -; total processes: 15 -; max active processes: 12 -; max children reached: 0 -; -; By default the status page output is formatted as text/plain. Passing either -; 'html', 'xml' or 'json' in the query string will return the corresponding -; output syntax. Example: -; http://www.foo.bar/status -; http://www.foo.bar/status?json -; http://www.foo.bar/status?html -; http://www.foo.bar/status?xml -; -; By default the status page only outputs short status. Passing 'full' in the -; query string will also return status for each pool process. -; Example: -; http://www.foo.bar/status?full -; http://www.foo.bar/status?json&full -; http://www.foo.bar/status?html&full -; http://www.foo.bar/status?xml&full -; The Full status returns for each process: -; pid - the PID of the process; -; state - the state of the process (Idle, Running, ...); -; start time - the date and time the process has started; -; start since - the number of seconds since the process has started; -; requests - the number of requests the process has served; -; request duration - the duration in µs of the requests; -; request method - the request method (GET, POST, ...); -; request URI - the request URI with the query string; -; content length - the content length of the request (only with POST); -; user - the user (PHP_AUTH_USER) (or '-' if not set); -; script - the main script called (or '-' if not set); -; last request cpu - the %cpu the last request consumed -; it's always 0 if the process is not in Idle state -; because CPU calculation is done when the request -; processing has terminated; -; last request memory - the max amount of memory the last request consumed -; it's always 0 if the process is not in Idle state -; because memory calculation is done when the request -; processing has terminated; -; If the process is in Idle state, then informations are related to the -; last request the process has served. Otherwise informations are related to -; the current request being served. -; Example output: -; ************************ -; pid: 31330 -; state: Running -; start time: 01/Jul/2011:17:53:49 +0200 -; start since: 63087 -; requests: 12808 -; request duration: 1250261 -; request method: GET -; request URI: /test_mem.php?N=10000 -; content length: 0 -; user: - -; script: /home/fat/web/docs/php/test_mem.php -; last request cpu: 0.00 -; last request memory: 0 -; -; Note: There is a real-time FPM status monitoring sample web page available -; It's available in: /usr/local/share/php/fpm/status.html -; -; Note: The value must start with a leading slash (/). The value can be -; anything, but it may not be a good idea to use the .php extension or it -; may conflict with a real PHP file. -; Default Value: not set -;pm.status_path = /status - -; The ping URI to call the monitoring page of FPM. If this value is not set, no -; URI will be recognized as a ping page. This could be used to test from outside -; that FPM is alive and responding, or to -; - create a graph of FPM availability (rrd or such); -; - remove a server from a group if it is not responding (load balancing); -; - trigger alerts for the operating team (24/7). -; Note: The value must start with a leading slash (/). The value can be -; anything, but it may not be a good idea to use the .php extension or it -; may conflict with a real PHP file. -; Default Value: not set -;ping.path = /ping - -; This directive may be used to customize the response of a ping request. The -; response is formatted as text/plain with a 200 response code. -; Default Value: pong -;ping.response = pong - -; The access log file -; Default: not set -;access.log = log/$pool.access.log - -; The access log format. -; The following syntax is allowed -; %%: the '%' character -; %C: %CPU used by the request -; it can accept the following format: -; - %{user}C for user CPU only -; - %{system}C for system CPU only -; - %{total}C for user + system CPU (default) -; %d: time taken to serve the request -; it can accept the following format: -; - %{seconds}d (default) -; - %{miliseconds}d -; - %{mili}d -; - %{microseconds}d -; - %{micro}d -; %e: an environment variable (same as $_ENV or $_SERVER) -; it must be associated with embraces to specify the name of the env -; variable. Some exemples: -; - server specifics like: %{REQUEST_METHOD}e or %{SERVER_PROTOCOL}e -; - HTTP headers like: %{HTTP_HOST}e or %{HTTP_USER_AGENT}e -; %f: script filename -; %l: content-length of the request (for POST request only) -; %m: request method -; %M: peak of memory allocated by PHP -; it can accept the following format: -; - %{bytes}M (default) -; - %{kilobytes}M -; - %{kilo}M -; - %{megabytes}M -; - %{mega}M -; %n: pool name -; %o: output header -; it must be associated with embraces to specify the name of the header: -; - %{Content-Type}o -; - %{X-Powered-By}o -; - %{Transfert-Encoding}o -; - .... -; %p: PID of the child that serviced the request -; %P: PID of the parent of the child that serviced the request -; %q: the query string -; %Q: the '?' character if query string exists -; %r: the request URI (without the query string, see %q and %Q) -; %R: remote IP address -; %s: status (response code) -; %t: server time the request was received -; it can accept a strftime(3) format: -; %d/%b/%Y:%H:%M:%S %z (default) -; The strftime(3) format must be encapsuled in a %{}t tag -; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t -; %T: time the log has been written (the request has finished) -; it can accept a strftime(3) format: -; %d/%b/%Y:%H:%M:%S %z (default) -; The strftime(3) format must be encapsuled in a %{}t tag -; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t -; %u: remote user -; -; Default: "%R - %u %t \"%m %r\" %s" -;access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%" - -; The log file for slow requests -; Default Value: not set -; Note: slowlog is mandatory if request_slowlog_timeout is set -slowlog = /var/log/php/fpm.slow.log - -; The timeout for serving a single request after which a PHP backtrace will be -; dumped to the 'slowlog' file. A value of '0s' means 'off'. -; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) -; Default Value: 0 -request_slowlog_timeout = 3 - -; Depth of slow log stack trace. -; Default Value: 20 -;request_slowlog_trace_depth = 20 - -; The timeout for serving a single request after which the worker process will -; be killed. This option should be used when the 'max_execution_time' ini option -; does not stop script execution for some reason. A value of '0' means 'off'. -; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) -; Default Value: 0 -;request_terminate_timeout = 0 - -; Set open file descriptor rlimit. -; Default Value: system defined value -;rlimit_files = 1024 - -; Set max core size rlimit. -; Possible Values: 'unlimited' or an integer greater or equal to 0 -; Default Value: system defined value -;rlimit_core = 0 - -; Chroot to this directory at the start. This value must be defined as an -; absolute path. When this value is not set, chroot is not used. -; Note: you can prefix with '$prefix' to chroot to the pool prefix or one -; of its subdirectories. If the pool prefix is not set, the global prefix -; will be used instead. -; Note: chrooting is a great security feature and should be used whenever -; possible. However, all PHP paths will be relative to the chroot -; (error_log, sessions.save_path, ...). -; Default Value: not set -;chroot = - -; Chdir to this directory at the start. -; Note: relative path can be used. -; Default Value: current directory or / when chroot -;chdir = /var/www - -; Redirect worker stdout and stderr into main error log. If not set, stdout and -; stderr will be redirected to /dev/null according to FastCGI specs. -; Note: on highloaded environement, this can cause some delay in the page -; process time (several ms). -; Default Value: no -catch_workers_output = yes - -; Clear environment in FPM workers -; Prevents arbitrary environment variables from reaching FPM worker processes -; by clearing the environment in workers before env vars specified in this -; pool configuration are added. -; Setting to "no" will make all environment variables available to PHP code -; via getenv(), $_ENV and $_SERVER. -; Default Value: yes -;clear_env = no - -; Limits the extensions of the main script FPM will allow to parse. This can -; prevent configuration mistakes on the web server side. You should only limit -; FPM to .php extensions to prevent malicious users to use other extensions to -; execute php code. -; Note: set an empty value to allow all extensions. -; Default Value: .php -;security.limit_extensions = .php .php3 .php4 .php5 .php7 - -; Pass environment variables like LD_LIBRARY_PATH. All $VARIABLEs are taken from -; the current environment. -; Default Value: clean env -;env[HOSTNAME] = $HOSTNAME -;env[PATH] = /usr/local/bin:/usr/bin:/bin -;env[TMP] = /tmp -;env[TMPDIR] = /tmp -;env[TEMP] = /tmp - -; Additional php.ini defines, specific to this pool of workers. These settings -; overwrite the values previously defined in the php.ini. The directives are the -; same as the PHP SAPI: -; php_value/php_flag - you can set classic ini defines which can -; be overwritten from PHP call 'ini_set'. -; php_admin_value/php_admin_flag - these directives won't be overwritten by -; PHP call 'ini_set' -; For php_*flag, valid values are on, off, 1, 0, true, false, yes or no. - -; Defining 'extension' will load the corresponding shared extension from -; extension_dir. Defining 'disable_functions' or 'disable_classes' will not -; overwrite previously defined php.ini values, but will append the new value -; instead. - -; Note: path INI options can be relative and will be expanded with the prefix -; (pool, global or /usr/local) - -; Default Value: nothing is defined by default except the values in php.ini and -; specified at startup with the -d argument -;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com -;php_flag[display_errors] = off -;php_admin_value[error_log] = /var/log/fpm-php.www.log -;php_admin_flag[log_errors] = on -;php_admin_value[memory_limit] = 32M diff --git a/php/8/conf/php.ini b/php/8/conf/php.ini deleted file mode 100644 index 20e48837c..000000000 --- a/php/8/conf/php.ini +++ /dev/null @@ -1,1961 +0,0 @@ -[PHP] - -;;;;;;;;;;;;;;;;;;; -; About php.ini ; -;;;;;;;;;;;;;;;;;;; -; PHP's initialization file, generally called php.ini, is responsible for -; configuring many of the aspects of PHP's behavior. - -; PHP attempts to find and load this configuration from a number of locations. -; The following is a summary of its search order: -; 1. SAPI module specific location. -; 2. The PHPRC environment variable. -; 3. A number of predefined registry keys on Windows -; 4. Current working directory (except CLI) -; 5. The web server's directory (for SAPI modules), or directory of PHP -; (otherwise in Windows) -; 6. The directory from the --with-config-file-path compile time option, or the -; Windows directory (usually C:\windows) -; See the PHP docs for more specific information. -; https://php.net/configuration.file - -; The syntax of the file is extremely simple. Whitespace and lines -; beginning with a semicolon are silently ignored (as you probably guessed). -; Section headers (e.g. [Foo]) are also silently ignored, even though -; they might mean something in the future. - -; Directives following the section heading [PATH=/www/mysite] only -; apply to PHP files in the /www/mysite directory. Directives -; following the section heading [HOST=www.example.com] only apply to -; PHP files served from www.example.com. Directives set in these -; special sections cannot be overridden by user-defined INI files or -; at runtime. Currently, [PATH=] and [HOST=] sections only work under -; CGI/FastCGI. -; https://php.net/ini.sections - -; Directives are specified using the following syntax: -; directive = value -; Directive names are *case sensitive* - foo=bar is different from FOO=bar. -; Directives are variables used to configure PHP or PHP extensions. -; There is no name validation. If PHP can't find an expected -; directive because it is not set or is mistyped, a default value will be used. - -; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one -; of the INI constants (On, Off, True, False, Yes, No and None) or an expression -; (e.g. E_ALL & ~E_NOTICE), a quoted string ("bar"), or a reference to a -; previously set variable or directive (e.g. ${foo}) - -; Expressions in the INI file are limited to bitwise operators and parentheses: -; | bitwise OR -; ^ bitwise XOR -; & bitwise AND -; ~ bitwise NOT -; ! boolean NOT - -; Boolean flags can be turned on using the values 1, On, True or Yes. -; They can be turned off using the values 0, Off, False or No. - -; An empty string can be denoted by simply not writing anything after the equal -; sign, or by using the None keyword: - -; foo = ; sets foo to an empty string -; foo = None ; sets foo to an empty string -; foo = "None" ; sets foo to the string 'None' - -; If you use constants in your value, and these constants belong to a -; dynamically loaded extension (either a PHP extension or a Zend extension), -; you may only use these constants *after* the line that loads the extension. - -;;;;;;;;;;;;;;;;;;; -; About this file ; -;;;;;;;;;;;;;;;;;;; -; PHP comes packaged with two INI files. One that is recommended to be used -; in production environments and one that is recommended to be used in -; development environments. - -; php.ini-production contains settings which hold security, performance and -; best practices at its core. But please be aware, these settings may break -; compatibility with older or less security-conscious applications. We -; recommending using the production ini in production and testing environments. - -; php.ini-development is very similar to its production variant, except it is -; much more verbose when it comes to errors. We recommend using the -; development version only in development environments, as errors shown to -; application users can inadvertently leak otherwise secure information. - -; This is the php.ini-production INI file. - -;;;;;;;;;;;;;;;;;;; -; Quick Reference ; -;;;;;;;;;;;;;;;;;;; - -; The following are all the settings which are different in either the production -; or development versions of the INIs with respect to PHP's default behavior. -; Please see the actual settings later in the document for more details as to why -; we recommend these changes in PHP's behavior. - -; display_errors -; Default Value: On -; Development Value: On -; Production Value: Off - -; display_startup_errors -; Default Value: On -; Development Value: On -; Production Value: Off - -; error_reporting -; Default Value: E_ALL -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT - -; log_errors -; Default Value: Off -; Development Value: On -; Production Value: On - -; max_input_time -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) - -; output_buffering -; Default Value: Off -; Development Value: 4096 -; Production Value: 4096 - -; register_argc_argv -; Default Value: On -; Development Value: Off -; Production Value: Off - -; request_order -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" - -; session.gc_divisor -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 - -; session.sid_bits_per_character -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 - -; session.sid_length -; Default Value: 32 -; Development Value: 26 -; Production Value: 26 - -; short_open_tag -; Default Value: On -; Development Value: Off -; Production Value: Off - -; variables_order -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS" - -; zend.assertions -; Default Value: 1 -; Development Value: 1 -; Production Value: -1 - -; zend.exception_ignore_args -; Default Value: Off -; Development Value: Off -; Production Value: On - -; zend.exception_string_param_max_len -; Default Value: 15 -; Development Value: 15 -; Production Value: 0 - -;;;;;;;;;;;;;;;;;;;; -; php.ini Options ; -;;;;;;;;;;;;;;;;;;;; -; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini" -;user_ini.filename = ".user.ini" - -; To disable this feature set this option to an empty value -;user_ini.filename = - -; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes) -;user_ini.cache_ttl = 300 - -;;;;;;;;;;;;;;;;;;;; -; Language Options ; -;;;;;;;;;;;;;;;;;;;; - -; Enable the PHP scripting language engine under Apache. -; https://php.net/engine -engine = On - -; This directive determines whether or not PHP will recognize code between -; tags as PHP source which should be processed as such. It is -; generally recommended that should be used and that this feature -; should be disabled, as enabling it may result in issues when generating XML -; documents, however this remains supported for backward compatibility reasons. -; Note that this directive does not control the would work. -; https://php.net/syntax-highlighting -;highlight.string = #DD0000 -;highlight.comment = #FF9900 -;highlight.keyword = #007700 -;highlight.default = #0000BB -;highlight.html = #000000 - -; If enabled, the request will be allowed to complete even if the user aborts -; the request. Consider enabling it if executing long requests, which may end up -; being interrupted by the user or a browser timing out. PHP's default behavior -; is to disable this feature. -; https://php.net/ignore-user-abort -;ignore_user_abort = On - -; Determines the size of the realpath cache to be used by PHP. This value should -; be increased on systems where PHP opens many files to reflect the quantity of -; the file operations performed. -; Note: if open_basedir is set, the cache is disabled -; https://php.net/realpath-cache-size -;realpath_cache_size = 4096k - -; Duration of time, in seconds for which to cache realpath information for a given -; file or directory. For systems with rarely changing files, consider increasing this -; value. -; https://php.net/realpath-cache-ttl -;realpath_cache_ttl = 120 - -; Enables or disables the circular reference collector. -; https://php.net/zend.enable-gc -zend.enable_gc = On - -; If enabled, scripts may be written in encodings that are incompatible with -; the scanner. CP936, Big5, CP949 and Shift_JIS are the examples of such -; encodings. To use this feature, mbstring extension must be enabled. -;zend.multibyte = Off - -; Allows to set the default encoding for the scripts. This value will be used -; unless "declare(encoding=...)" directive appears at the top of the script. -; Only affects if zend.multibyte is set. -;zend.script_encoding = - -; Allows to include or exclude arguments from stack traces generated for exceptions. -; In production, it is recommended to turn this setting on to prohibit the output -; of sensitive information in stack traces -; Default Value: Off -; Development Value: Off -; Production Value: On -zend.exception_ignore_args = On - -; Allows setting the maximum string length in an argument of a stringified stack trace -; to a value between 0 and 1000000. -; This has no effect when zend.exception_ignore_args is enabled. -; Default Value: 15 -; Development Value: 15 -; Production Value: 0 -; In production, it is recommended to set this to 0 to reduce the output -; of sensitive information in stack traces. -zend.exception_string_param_max_len = 0 - -;;;;;;;;;;;;;;;;; -; Miscellaneous ; -;;;;;;;;;;;;;;;;; - -; Decides whether PHP may expose the fact that it is installed on the server -; (e.g. by adding its signature to the Web server header). It is no security -; threat in any way, but it makes it possible to determine whether you use PHP -; on your server or not. -; https://php.net/expose-php -expose_php = On - -;;;;;;;;;;;;;;;;;;; -; Resource Limits ; -;;;;;;;;;;;;;;;;;;; - -; Maximum execution time of each script, in seconds -; https://php.net/max-execution-time -; Note: This directive is hardcoded to 0 for the CLI SAPI -max_execution_time = 30 - -; Maximum amount of time each script may spend parsing request data. It's a good -; idea to limit this time on productions servers in order to eliminate unexpectedly -; long running scripts. -; Note: This directive is hardcoded to -1 for the CLI SAPI -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) -; https://php.net/max-input-time -max_input_time = 60 - -; Maximum input variable nesting level -; https://php.net/max-input-nesting-level -;max_input_nesting_level = 64 - -; How many GET/POST/COOKIE input variables may be accepted -;max_input_vars = 1000 - -; How many multipart body parts (combined input variable and file uploads) may -; be accepted. -; Default Value: -1 (Sum of max_input_vars and max_file_uploads) -;max_multipart_body_parts = 1500 - -; Maximum amount of memory a script may consume -; https://php.net/memory-limit -memory_limit = 128M - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; Error handling and logging ; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -; This directive informs PHP of which errors, warnings and notices you would like -; it to take action for. The recommended way of setting values for this -; directive is through the use of the error level constants and bitwise -; operators. The error level constants are below here for convenience as well as -; some common settings and their meanings. -; By default, PHP is set to take action on all errors, notices and warnings EXCEPT -; those related to E_NOTICE and E_STRICT, which together cover best practices and -; recommended coding standards in PHP. For performance reasons, this is the -; recommend error reporting setting. Your production server shouldn't be wasting -; resources complaining about best practices and coding standards. That's what -; development servers and development settings are for. -; Note: The php.ini-development file has this setting as E_ALL. This -; means it pretty much reports everything which is exactly what you want during -; development and early testing. -; -; Error Level Constants: -; E_ALL - All errors and warnings -; E_ERROR - fatal run-time errors -; E_RECOVERABLE_ERROR - almost fatal run-time errors -; E_WARNING - run-time warnings (non-fatal errors) -; E_PARSE - compile-time parse errors -; E_NOTICE - run-time notices (these are warnings which often result -; from a bug in your code, but it's possible that it was -; intentional (e.g., using an uninitialized variable and -; relying on the fact it is automatically initialized to an -; empty string) -; E_STRICT - run-time notices, enable to have PHP suggest changes -; to your code which will ensure the best interoperability -; and forward compatibility of your code -; E_CORE_ERROR - fatal errors that occur during PHP's initial startup -; E_CORE_WARNING - warnings (non-fatal errors) that occur during PHP's -; initial startup -; E_COMPILE_ERROR - fatal compile-time errors -; E_COMPILE_WARNING - compile-time warnings (non-fatal errors) -; E_USER_ERROR - user-generated error message -; E_USER_WARNING - user-generated warning message -; E_USER_NOTICE - user-generated notice message -; E_DEPRECATED - warn about code that will not work in future versions -; of PHP -; E_USER_DEPRECATED - user-generated deprecation warnings -; -; Common Values: -; E_ALL (Show all errors, warnings and notices including coding standards.) -; E_ALL & ~E_NOTICE (Show all errors, except for notices) -; E_ALL & ~E_NOTICE & ~E_STRICT (Show all errors, except for notices and coding standards warnings.) -; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors) -; Default Value: E_ALL -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT -; https://php.net/error-reporting -error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT - -; This directive controls whether or not and where PHP will output errors, -; notices and warnings too. Error output is very useful during development, but -; it could be very dangerous in production environments. Depending on the code -; which is triggering the error, sensitive information could potentially leak -; out of your application such as database usernames and passwords or worse. -; For production environments, we recommend logging errors rather than -; sending them to STDOUT. -; Possible Values: -; Off = Do not display any errors -; stderr = Display errors to STDERR (affects only CGI/CLI binaries!) -; On or stdout = Display errors to STDOUT -; Default Value: On -; Development Value: On -; Production Value: Off -; https://php.net/display-errors -display_errors = Off - -; The display of errors which occur during PHP's startup sequence are handled -; separately from display_errors. We strongly recommend you set this to 'off' -; for production servers to avoid leaking configuration details. -; Default Value: On -; Development Value: On -; Production Value: Off -; https://php.net/display-startup-errors -display_startup_errors = Off - -; Besides displaying errors, PHP can also log errors to locations such as a -; server-specific log, STDERR, or a location specified by the error_log -; directive found below. While errors should not be displayed on productions -; servers they should still be monitored and logging is a great way to do that. -; Default Value: Off -; Development Value: On -; Production Value: On -; https://php.net/log-errors -log_errors = On - -; Do not log repeated messages. Repeated errors must occur in same file on same -; line unless ignore_repeated_source is set true. -; https://php.net/ignore-repeated-errors -ignore_repeated_errors = Off - -; Ignore source of message when ignoring repeated messages. When this setting -; is On you will not log errors with repeated messages from different files or -; source lines. -; https://php.net/ignore-repeated-source -ignore_repeated_source = Off - -; If this parameter is set to Off, then memory leaks will not be shown (on -; stdout or in the log). This is only effective in a debug compile, and if -; error reporting includes E_WARNING in the allowed list -; https://php.net/report-memleaks -report_memleaks = On - -; This setting is off by default. -;report_zend_debug = 0 - -; Turn off normal error reporting and emit XML-RPC error XML -; https://php.net/xmlrpc-errors -;xmlrpc_errors = 0 - -; An XML-RPC faultCode -;xmlrpc_error_number = 0 - -; When PHP displays or logs an error, it has the capability of formatting the -; error message as HTML for easier reading. This directive controls whether -; the error message is formatted as HTML or not. -; Note: This directive is hardcoded to Off for the CLI SAPI -; https://php.net/html-errors -;html_errors = On - -; If html_errors is set to On *and* docref_root is not empty, then PHP -; produces clickable error messages that direct to a page describing the error -; or function causing the error in detail. -; You can download a copy of the PHP manual from https://php.net/docs -; and change docref_root to the base URL of your local copy including the -; leading '/'. You must also specify the file extension being used including -; the dot. PHP's default behavior is to leave these settings empty, in which -; case no links to documentation are generated. -; Note: Never use this feature for production boxes. -; https://php.net/docref-root -; Examples -;docref_root = "/phpmanual/" - -; https://php.net/docref-ext -;docref_ext = .html - -; String to output before an error message. PHP's default behavior is to leave -; this setting blank. -; https://php.net/error-prepend-string -; Example: -;error_prepend_string = "" - -; String to output after an error message. PHP's default behavior is to leave -; this setting blank. -; https://php.net/error-append-string -; Example: -;error_append_string = "" - -; Log errors to specified file. PHP's default behavior is to leave this value -; empty. -; https://php.net/error-log -; Example: -;error_log = php_errors.log -; Log errors to syslog (Event Log on Windows). -;error_log = syslog - -; The syslog ident is a string which is prepended to every message logged -; to syslog. Only used when error_log is set to syslog. -;syslog.ident = php - -; The syslog facility is used to specify what type of program is logging -; the message. Only used when error_log is set to syslog. -;syslog.facility = user - -; Set this to disable filtering control characters (the default). -; Some loggers only accept NVT-ASCII, others accept anything that's not -; control characters. If your logger accepts everything, then no filtering -; is needed at all. -; Allowed values are: -; ascii (all printable ASCII characters and NL) -; no-ctrl (all characters except control characters) -; all (all characters) -; raw (like "all", but messages are not split at newlines) -; https://php.net/syslog.filter -;syslog.filter = ascii - -;windows.show_crt_warning -; Default value: 0 -; Development value: 0 -; Production value: 0 - -;;;;;;;;;;;;;;;;; -; Data Handling ; -;;;;;;;;;;;;;;;;; - -; The separator used in PHP generated URLs to separate arguments. -; PHP's default setting is "&". -; https://php.net/arg-separator.output -; Example: -;arg_separator.output = "&" - -; List of separator(s) used by PHP to parse input URLs into variables. -; PHP's default setting is "&". -; NOTE: Every character in this directive is considered as separator! -; https://php.net/arg-separator.input -; Example: -;arg_separator.input = ";&" - -; This directive determines which super global arrays are registered when PHP -; starts up. G,P,C,E & S are abbreviations for the following respective super -; globals: GET, POST, COOKIE, ENV and SERVER. There is a performance penalty -; paid for the registration of these arrays and because ENV is not as commonly -; used as the others, ENV is not recommended on productions servers. You -; can still get access to the environment variables through getenv() should you -; need to. -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS"; -; https://php.net/variables-order -variables_order = "GPCS" - -; This directive determines which super global data (G,P & C) should be -; registered into the super global array REQUEST. If so, it also determines -; the order in which that data is registered. The values for this directive -; are specified in the same manner as the variables_order directive, -; EXCEPT one. Leaving this value empty will cause PHP to use the value set -; in the variables_order directive. It does not mean it will leave the super -; globals array REQUEST empty. -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" -; https://php.net/request-order -request_order = "GP" - -; This directive determines whether PHP registers $argv & $argc each time it -; runs. $argv contains an array of all the arguments passed to PHP when a script -; is invoked. $argc contains an integer representing the number of arguments -; that were passed when the script was invoked. These arrays are extremely -; useful when running scripts from the command line. When this directive is -; enabled, registering these variables consumes CPU cycles and memory each time -; a script is executed. For performance reasons, this feature should be disabled -; on production servers. -; Note: This directive is hardcoded to On for the CLI SAPI -; Default Value: On -; Development Value: Off -; Production Value: Off -; https://php.net/register-argc-argv -register_argc_argv = Off - -; When enabled, the ENV, REQUEST and SERVER variables are created when they're -; first used (Just In Time) instead of when the script starts. If these -; variables are not used within a script, having this directive on will result -; in a performance gain. The PHP directive register_argc_argv must be disabled -; for this directive to have any effect. -; https://php.net/auto-globals-jit -auto_globals_jit = On - -; Whether PHP will read the POST data. -; This option is enabled by default. -; Most likely, you won't want to disable this option globally. It causes $_POST -; and $_FILES to always be empty; the only way you will be able to read the -; POST data will be through the php://input stream wrapper. This can be useful -; to proxy requests or to process the POST data in a memory efficient fashion. -; https://php.net/enable-post-data-reading -;enable_post_data_reading = Off - -; Maximum size of POST data that PHP will accept. -; Its value may be 0 to disable the limit. It is ignored if POST data reading -; is disabled through enable_post_data_reading. -; https://php.net/post-max-size -post_max_size = 8M - -; Automatically add files before PHP document. -; https://php.net/auto-prepend-file -auto_prepend_file = - -; Automatically add files after PHP document. -; https://php.net/auto-append-file -auto_append_file = - -; By default, PHP will output a media type using the Content-Type header. To -; disable this, simply set it to be empty. -; -; PHP's built-in default media type is set to text/html. -; https://php.net/default-mimetype -default_mimetype = "text/html" - -; PHP's default character set is set to UTF-8. -; https://php.net/default-charset -default_charset = "UTF-8" - -; PHP internal character encoding is set to empty. -; If empty, default_charset is used. -; https://php.net/internal-encoding -;internal_encoding = - -; PHP input character encoding is set to empty. -; If empty, default_charset is used. -; https://php.net/input-encoding -;input_encoding = - -; PHP output character encoding is set to empty. -; If empty, default_charset is used. -; See also output_buffer. -; https://php.net/output-encoding -;output_encoding = - -;;;;;;;;;;;;;;;;;;;;;;;;; -; Paths and Directories ; -;;;;;;;;;;;;;;;;;;;;;;;;; - -; UNIX: "/path1:/path2" -;include_path = ".:/php/includes" -; -; Windows: "\path1;\path2" -;include_path = ".;c:\php\includes" -; -; PHP's default setting for include_path is ".;/path/to/php/pear" -; https://php.net/include-path - -; The root of the PHP pages, used only if nonempty. -; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root -; if you are running php as a CGI under any web server (other than IIS) -; see documentation for security issues. The alternate is to use the -; cgi.force_redirect configuration below -; https://php.net/doc-root -doc_root = - -; The directory under which PHP opens the script using /~username used only -; if nonempty. -; https://php.net/user-dir -user_dir = - -; Directory in which the loadable extensions (modules) reside. -; https://php.net/extension-dir -;extension_dir = "./" -; On windows: -;extension_dir = "ext" - -; Directory where the temporary files should be placed. -; Defaults to the system default (see sys_get_temp_dir) -;sys_temp_dir = "/tmp" - -; Whether or not to enable the dl() function. The dl() function does NOT work -; properly in multithreaded servers, such as IIS or Zeus, and is automatically -; disabled on them. -; https://php.net/enable-dl -enable_dl = Off - -; cgi.force_redirect is necessary to provide security running PHP as a CGI under -; most web servers. Left undefined, PHP turns this on by default. You can -; turn it off here AT YOUR OWN RISK -; **You CAN safely turn this off for IIS, in fact, you MUST.** -; https://php.net/cgi.force-redirect -;cgi.force_redirect = 1 - -; if cgi.nph is enabled it will force cgi to always sent Status: 200 with -; every request. PHP's default behavior is to disable this feature. -;cgi.nph = 1 - -; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape -; (iPlanet) web servers, you MAY need to set an environment variable name that PHP -; will look for to know it is OK to continue execution. Setting this variable MAY -; cause security issues, KNOW WHAT YOU ARE DOING FIRST. -; https://php.net/cgi.redirect-status-env -;cgi.redirect_status_env = - -; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's -; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok -; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting -; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting -; of zero causes PHP to behave as before. Default is 1. You should fix your scripts -; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. -; https://php.net/cgi.fix-pathinfo -;cgi.fix_pathinfo=1 - -; if cgi.discard_path is enabled, the PHP CGI binary can safely be placed outside -; of the web tree and people will not be able to circumvent .htaccess security. -;cgi.discard_path=1 - -; FastCGI under IIS supports the ability to impersonate -; security tokens of the calling client. This allows IIS to define the -; security context that the request runs under. mod_fastcgi under Apache -; does not currently support this feature (03/17/2002) -; Set to 1 if running under IIS. Default is zero. -; https://php.net/fastcgi.impersonate -;fastcgi.impersonate = 1 - -; Disable logging through FastCGI connection. PHP's default behavior is to enable -; this feature. -;fastcgi.logging = 0 - -; cgi.rfc2616_headers configuration option tells PHP what type of headers to -; use when sending HTTP response code. If set to 0, PHP sends Status: header that -; is supported by Apache. When this option is set to 1, PHP will send -; RFC2616 compliant header. -; Default is zero. -; https://php.net/cgi.rfc2616-headers -;cgi.rfc2616_headers = 0 - -; cgi.check_shebang_line controls whether CGI PHP checks for line starting with #! -; (shebang) at the top of the running script. This line might be needed if the -; script support running both as stand-alone script and via PHP CGI<. PHP in CGI -; mode skips this line and ignores its content if this directive is turned on. -; https://php.net/cgi.check-shebang-line -;cgi.check_shebang_line=1 - -;;;;;;;;;;;;;;;; -; File Uploads ; -;;;;;;;;;;;;;;;; - -; Whether to allow HTTP file uploads. -; https://php.net/file-uploads -file_uploads = On - -; Temporary directory for HTTP uploaded files (will use system default if not -; specified). -; https://php.net/upload-tmp-dir -;upload_tmp_dir = - -; Maximum allowed size for uploaded files. -; https://php.net/upload-max-filesize -upload_max_filesize = 2M - -; Maximum number of files that can be uploaded via a single request -max_file_uploads = 20 - -;;;;;;;;;;;;;;;;;; -; Fopen wrappers ; -;;;;;;;;;;;;;;;;;; - -; Whether to allow the treatment of URLs (like http:// or ftp://) as files. -; https://php.net/allow-url-fopen -allow_url_fopen = On - -; Whether to allow include/require to open URLs (like https:// or ftp://) as files. -; https://php.net/allow-url-include -allow_url_include = Off - -; Define the anonymous ftp password (your email address). PHP's default setting -; for this is empty. -; https://php.net/from -;from="john@doe.com" - -; Define the User-Agent string. PHP's default setting for this is empty. -; https://php.net/user-agent -;user_agent="PHP" - -; Default timeout for socket based streams (seconds) -; https://php.net/default-socket-timeout -default_socket_timeout = 60 - -; If your scripts have to deal with files from Macintosh systems, -; or you are running on a Mac and need to deal with files from -; unix or win32 systems, setting this flag will cause PHP to -; automatically detect the EOL character in those files so that -; fgets() and file() will work regardless of the source of the file. -; https://php.net/auto-detect-line-endings -;auto_detect_line_endings = Off - -;;;;;;;;;;;;;;;;;;;;;; -; Dynamic Extensions ; -;;;;;;;;;;;;;;;;;;;;;; - -; If you wish to have an extension loaded automatically, use the following -; syntax: -; -; extension=modulename -; -; For example: -; -; extension=mysqli -; -; When the extension library to load is not located in the default extension -; directory, You may specify an absolute path to the library file: -; -; extension=/path/to/extension/mysqli.so -; -; Note : The syntax used in previous PHP versions ('extension=.so' and -; 'extension='php_.dll') is supported for legacy reasons and may be -; deprecated in a future PHP major version. So, when it is possible, please -; move to the new ('extension=) syntax. -; -; Notes for Windows environments : -; -; - Many DLL files are located in the ext/ -; extension folders as well as the separate PECL DLL download. -; Be sure to appropriately set the extension_dir directive. -; -;extension=bz2 - -; The ldap extension must be before curl if OpenSSL 1.0.2 and OpenLDAP is used -; otherwise it results in segfault when unloading after using SASL. -; See https://github.com/php/php-src/issues/8620 for more info. -;extension=ldap - -;extension=curl -;extension=ffi -;extension=ftp -;extension=fileinfo -;extension=gd -;extension=gettext -;extension=gmp -;extension=intl -;extension=imap -;extension=mbstring -;extension=exif ; Must be after mbstring as it depends on it -;extension=mysqli -;extension=oci8_12c ; Use with Oracle Database 12c Instant Client -;extension=oci8_19 ; Use with Oracle Database 19 Instant Client -;extension=odbc -;extension=openssl -;extension=pdo_firebird -;extension=pdo_mysql -;extension=pdo_oci -;extension=pdo_odbc -;extension=pdo_pgsql -;extension=pdo_sqlite -;extension=pgsql -;extension=shmop - -; The MIBS data available in the PHP distribution must be installed. -; See https://www.php.net/manual/en/snmp.installation.php -;extension=snmp - -;extension=soap -;extension=sockets -;extension=sodium -;extension=sqlite3 -;extension=tidy -;extension=xsl -;extension=zip - -;zend_extension=opcache - -;;;;;;;;;;;;;;;;;;; -; Module Settings ; -;;;;;;;;;;;;;;;;;;; - -[CLI Server] -; Whether the CLI web server uses ANSI color coding in its terminal output. -cli_server.color = On - -[Date] -; Defines the default timezone used by the date functions -; https://php.net/date.timezone -;date.timezone = - -; https://php.net/date.default-latitude -;date.default_latitude = 31.7667 - -; https://php.net/date.default-longitude -;date.default_longitude = 35.2333 - -; https://php.net/date.sunrise-zenith -;date.sunrise_zenith = 90.833333 - -; https://php.net/date.sunset-zenith -;date.sunset_zenith = 90.833333 - -[filter] -; https://php.net/filter.default -;filter.default = unsafe_raw - -; https://php.net/filter.default-flags -;filter.default_flags = - -[iconv] -; Use of this INI entry is deprecated, use global input_encoding instead. -; If empty, default_charset or input_encoding or iconv.input_encoding is used. -; The precedence is: default_charset < input_encoding < iconv.input_encoding -;iconv.input_encoding = - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;iconv.internal_encoding = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; If empty, default_charset or output_encoding or iconv.output_encoding is used. -; The precedence is: default_charset < output_encoding < iconv.output_encoding -; To use an output encoding conversion, iconv's output handler must be set -; otherwise output encoding conversion cannot be performed. -;iconv.output_encoding = - -[imap] -; rsh/ssh logins are disabled by default. Use this INI entry if you want to -; enable them. Note that the IMAP library does not filter mailbox names before -; passing them to rsh/ssh command, thus passing untrusted data to this function -; with rsh/ssh enabled is insecure. -;imap.enable_insecure_rsh=0 - -[intl] -;intl.default_locale = -; This directive allows you to produce PHP errors when some error -; happens within intl functions. The value is the level of the error produced. -; Default is 0, which does not produce any errors. -;intl.error_level = E_WARNING -;intl.use_exceptions = 0 - -[sqlite3] -; Directory pointing to SQLite3 extensions -; https://php.net/sqlite3.extension-dir -;sqlite3.extension_dir = - -; SQLite defensive mode flag (only available from SQLite 3.26+) -; When the defensive flag is enabled, language features that allow ordinary -; SQL to deliberately corrupt the database file are disabled. This forbids -; writing directly to the schema, shadow tables (eg. FTS data tables), or -; the sqlite_dbpage virtual table. -; https://www.sqlite.org/c3ref/c_dbconfig_defensive.html -; (for older SQLite versions, this flag has no use) -;sqlite3.defensive = 1 - -[Pcre] -; PCRE library backtracking limit. -; https://php.net/pcre.backtrack-limit -;pcre.backtrack_limit=100000 - -; PCRE library recursion limit. -; Please note that if you set this value to a high number you may consume all -; the available process stack and eventually crash PHP (due to reaching the -; stack size limit imposed by the Operating System). -; https://php.net/pcre.recursion-limit -;pcre.recursion_limit=100000 - -; Enables or disables JIT compilation of patterns. This requires the PCRE -; library to be compiled with JIT support. -;pcre.jit=1 - -[Pdo] -; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off" -; https://php.net/pdo-odbc.connection-pooling -;pdo_odbc.connection_pooling=strict - -[Pdo_mysql] -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -pdo_mysql.default_socket= - -[Phar] -; https://php.net/phar.readonly -;phar.readonly = On - -; https://php.net/phar.require-hash -;phar.require_hash = On - -;phar.cache_list = - -[mail function] -; For Win32 only. -; https://php.net/smtp -SMTP = localhost -; https://php.net/smtp-port -smtp_port = 25 - -; For Win32 only. -; https://php.net/sendmail-from -;sendmail_from = me@example.com - -; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). -; https://php.net/sendmail-path -;sendmail_path = - -; Force the addition of the specified parameters to be passed as extra parameters -; to the sendmail binary. These parameters will always replace the value of -; the 5th parameter to mail(). -;mail.force_extra_parameters = - -; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename -mail.add_x_header = Off - -; Use mixed LF and CRLF line separators to keep compatibility with some -; RFC 2822 non conformant MTA. -mail.mixed_lf_and_crlf = Off - -; The path to a log file that will log all mail() calls. Log entries include -; the full path of the script, line number, To address and headers. -;mail.log = -; Log mail to syslog (Event Log on Windows). -;mail.log = syslog - -[ODBC] -; https://php.net/odbc.default-db -;odbc.default_db = Not yet implemented - -; https://php.net/odbc.default-user -;odbc.default_user = Not yet implemented - -; https://php.net/odbc.default-pw -;odbc.default_pw = Not yet implemented - -; Controls the ODBC cursor model. -; Default: SQL_CURSOR_STATIC (default). -;odbc.default_cursortype - -; Allow or prevent persistent links. -; https://php.net/odbc.allow-persistent -odbc.allow_persistent = On - -; Check that a connection is still valid before reuse. -; https://php.net/odbc.check-persistent -odbc.check_persistent = On - -; Maximum number of persistent links. -1 means no limit. -; https://php.net/odbc.max-persistent -odbc.max_persistent = -1 - -; Maximum number of links (persistent + non-persistent). -1 means no limit. -; https://php.net/odbc.max-links -odbc.max_links = -1 - -; Handling of LONG fields. Returns number of bytes to variables. 0 means -; passthru. -; https://php.net/odbc.defaultlrl -odbc.defaultlrl = 4096 - -; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char. -; See the documentation on odbc_binmode and odbc_longreadlen for an explanation -; of odbc.defaultlrl and odbc.defaultbinmode -; https://php.net/odbc.defaultbinmode -odbc.defaultbinmode = 1 - -[MySQLi] - -; Maximum number of persistent links. -1 means no limit. -; https://php.net/mysqli.max-persistent -mysqli.max_persistent = -1 - -; Allow accessing, from PHP's perspective, local files with LOAD DATA statements -; https://php.net/mysqli.allow_local_infile -;mysqli.allow_local_infile = On - -; It allows the user to specify a folder where files that can be sent via LOAD DATA -; LOCAL can exist. It is ignored if mysqli.allow_local_infile is enabled. -;mysqli.local_infile_directory = - -; Allow or prevent persistent links. -; https://php.net/mysqli.allow-persistent -mysqli.allow_persistent = On - -; Maximum number of links. -1 means no limit. -; https://php.net/mysqli.max-links -mysqli.max_links = -1 - -; Default port number for mysqli_connect(). If unset, mysqli_connect() will use -; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the -; compile-time value defined MYSQL_PORT (in that order). Win32 will only look -; at MYSQL_PORT. -; https://php.net/mysqli.default-port -mysqli.default_port = 3306 - -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -; https://php.net/mysqli.default-socket -mysqli.default_socket = - -; Default host for mysqli_connect() (doesn't apply in safe mode). -; https://php.net/mysqli.default-host -mysqli.default_host = - -; Default user for mysqli_connect() (doesn't apply in safe mode). -; https://php.net/mysqli.default-user -mysqli.default_user = - -; Default password for mysqli_connect() (doesn't apply in safe mode). -; Note that this is generally a *bad* idea to store passwords in this file. -; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw") -; and reveal this password! And of course, any users with read access to this -; file will be able to reveal the password as well. -; https://php.net/mysqli.default-pw -mysqli.default_pw = - -; If this option is enabled, closing a persistent connection will rollback -; any pending transactions of this connection, before it is put back -; into the persistent connection pool. -;mysqli.rollback_on_cached_plink = Off - -[mysqlnd] -; Enable / Disable collection of general statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -mysqlnd.collect_statistics = On - -; Enable / Disable collection of memory usage statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -mysqlnd.collect_memory_statistics = Off - -; Records communication from all extensions using mysqlnd to the specified log -; file. -; https://php.net/mysqlnd.debug -;mysqlnd.debug = - -; Defines which queries will be logged. -;mysqlnd.log_mask = 0 - -; Default size of the mysqlnd memory pool, which is used by result sets. -;mysqlnd.mempool_default_size = 16000 - -; Size of a pre-allocated buffer used when sending commands to MySQL in bytes. -;mysqlnd.net_cmd_buffer_size = 2048 - -; Size of a pre-allocated buffer used for reading data sent by the server in -; bytes. -;mysqlnd.net_read_buffer_size = 32768 - -; Timeout for network requests in seconds. -;mysqlnd.net_read_timeout = 31536000 - -; SHA-256 Authentication Plugin related. File with the MySQL server public RSA -; key. -;mysqlnd.sha256_server_public_key = - -[OCI8] - -; Connection: Enables privileged connections using external -; credentials (OCI_SYSOPER, OCI_SYSDBA) -; https://php.net/oci8.privileged-connect -;oci8.privileged_connect = Off - -; Connection: The maximum number of persistent OCI8 connections per -; process. Using -1 means no limit. -; https://php.net/oci8.max-persistent -;oci8.max_persistent = -1 - -; Connection: The maximum number of seconds a process is allowed to -; maintain an idle persistent connection. Using -1 means idle -; persistent connections will be maintained forever. -; https://php.net/oci8.persistent-timeout -;oci8.persistent_timeout = -1 - -; Connection: The number of seconds that must pass before issuing a -; ping during oci_pconnect() to check the connection validity. When -; set to 0, each oci_pconnect() will cause a ping. Using -1 disables -; pings completely. -; https://php.net/oci8.ping-interval -;oci8.ping_interval = 60 - -; Connection: Set this to a user chosen connection class to be used -; for all pooled server requests with Oracle Database Resident -; Connection Pooling (DRCP). To use DRCP, this value should be set to -; the same string for all web servers running the same application, -; the database pool must be configured, and the connection string must -; specify to use a pooled server. -;oci8.connection_class = - -; High Availability: Using On lets PHP receive Fast Application -; Notification (FAN) events generated when a database node fails. The -; database must also be configured to post FAN events. -;oci8.events = Off - -; Tuning: This option enables statement caching, and specifies how -; many statements to cache. Using 0 disables statement caching. -; https://php.net/oci8.statement-cache-size -;oci8.statement_cache_size = 20 - -; Tuning: Enables row prefetching and sets the default number of -; rows that will be fetched automatically after statement execution. -; https://php.net/oci8.default-prefetch -;oci8.default_prefetch = 100 - -; Tuning: Sets the amount of LOB data that is internally returned from -; Oracle Database when an Oracle LOB locator is initially retrieved as -; part of a query. Setting this can improve performance by reducing -; round-trips. -; https://php.net/oci8.prefetch-lob-size -; oci8.prefetch_lob_size = 0 - -; Compatibility. Using On means oci_close() will not close -; oci_connect() and oci_new_connect() connections. -; https://php.net/oci8.old-oci-close-semantics -;oci8.old_oci_close_semantics = Off - -[PostgreSQL] -; Allow or prevent persistent links. -; https://php.net/pgsql.allow-persistent -pgsql.allow_persistent = On - -; Detect broken persistent links always with pg_pconnect(). -; Auto reset feature requires a little overheads. -; https://php.net/pgsql.auto-reset-persistent -pgsql.auto_reset_persistent = Off - -; Maximum number of persistent links. -1 means no limit. -; https://php.net/pgsql.max-persistent -pgsql.max_persistent = -1 - -; Maximum number of links (persistent+non persistent). -1 means no limit. -; https://php.net/pgsql.max-links -pgsql.max_links = -1 - -; Ignore PostgreSQL backends Notice message or not. -; Notice message logging require a little overheads. -; https://php.net/pgsql.ignore-notice -pgsql.ignore_notice = 0 - -; Log PostgreSQL backends Notice message or not. -; Unless pgsql.ignore_notice=0, module cannot log notice message. -; https://php.net/pgsql.log-notice -pgsql.log_notice = 0 - -[bcmath] -; Number of decimal digits for all bcmath functions. -; https://php.net/bcmath.scale -bcmath.scale = 0 - -[browscap] -; https://php.net/browscap -;browscap = extra/browscap.ini - -[Session] -; Handler used to store/retrieve data. -; https://php.net/session.save-handler -session.save_handler = files - -; Argument passed to save_handler. In the case of files, this is the path -; where data files are stored. Note: Windows users have to change this -; variable in order to use PHP's session functions. -; -; The path can be defined as: -; -; session.save_path = "N;/path" -; -; where N is an integer. Instead of storing all the session files in -; /path, what this will do is use subdirectories N-levels deep, and -; store the session data in those directories. This is useful if -; your OS has problems with many files in one directory, and is -; a more efficient layout for servers that handle many sessions. -; -; NOTE 1: PHP will not create this directory structure automatically. -; You can use the script in the ext/session dir for that purpose. -; NOTE 2: See the section on garbage collection below if you choose to -; use subdirectories for session storage -; -; The file storage module creates files using mode 600 by default. -; You can change that by using -; -; session.save_path = "N;MODE;/path" -; -; where MODE is the octal representation of the mode. Note that this -; does not overwrite the process's umask. -; https://php.net/session.save-path -;session.save_path = "/tmp" - -; Whether to use strict session mode. -; Strict session mode does not accept an uninitialized session ID, and -; regenerates the session ID if the browser sends an uninitialized session ID. -; Strict mode protects applications from session fixation via a session adoption -; vulnerability. It is disabled by default for maximum compatibility, but -; enabling it is encouraged. -; https://wiki.php.net/rfc/strict_sessions -session.use_strict_mode = 0 - -; Whether to use cookies. -; https://php.net/session.use-cookies -session.use_cookies = 1 - -; https://php.net/session.cookie-secure -;session.cookie_secure = - -; This option forces PHP to fetch and use a cookie for storing and maintaining -; the session id. We encourage this operation as it's very helpful in combating -; session hijacking when not specifying and managing your own session id. It is -; not the be-all and end-all of session hijacking defense, but it's a good start. -; https://php.net/session.use-only-cookies -session.use_only_cookies = 1 - -; Name of the session (used as cookie name). -; https://php.net/session.name -session.name = PHPSESSID - -; Initialize session on request startup. -; https://php.net/session.auto-start -session.auto_start = 0 - -; Lifetime in seconds of cookie or, if 0, until browser is restarted. -; https://php.net/session.cookie-lifetime -session.cookie_lifetime = 0 - -; The path for which the cookie is valid. -; https://php.net/session.cookie-path -session.cookie_path = / - -; The domain for which the cookie is valid. -; https://php.net/session.cookie-domain -session.cookie_domain = - -; Whether or not to add the httpOnly flag to the cookie, which makes it -; inaccessible to browser scripting languages such as JavaScript. -; https://php.net/session.cookie-httponly -session.cookie_httponly = - -; Add SameSite attribute to cookie to help mitigate Cross-Site Request Forgery (CSRF/XSRF) -; Current valid values are "Strict", "Lax" or "None". When using "None", -; make sure to include the quotes, as `none` is interpreted like `false` in ini files. -; https://tools.ietf.org/html/draft-west-first-party-cookies-07 -session.cookie_samesite = - -; Handler used to serialize data. php is the standard serializer of PHP. -; https://php.net/session.serialize-handler -session.serialize_handler = php - -; Defines the probability that the 'garbage collection' process is started on every -; session initialization. The probability is calculated by using gc_probability/gc_divisor, -; e.g. 1/100 means there is a 1% chance that the GC process starts on each request. -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; https://php.net/session.gc-probability -session.gc_probability = 1 - -; Defines the probability that the 'garbage collection' process is started on every -; session initialization. The probability is calculated by using gc_probability/gc_divisor, -; e.g. 1/100 means there is a 1% chance that the GC process starts on each request. -; For high volume production servers, using a value of 1000 is a more efficient approach. -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 -; https://php.net/session.gc-divisor -session.gc_divisor = 1000 - -; After this number of seconds, stored data will be seen as 'garbage' and -; cleaned up by the garbage collection process. -; https://php.net/session.gc-maxlifetime -session.gc_maxlifetime = 1440 - -; NOTE: If you are using the subdirectory option for storing session files -; (see session.save_path above), then garbage collection does *not* -; happen automatically. You will need to do your own garbage -; collection through a shell script, cron entry, or some other method. -; For example, the following script is the equivalent of setting -; session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes): -; find /path/to/sessions -cmin +24 -type f | xargs rm - -; Check HTTP Referer to invalidate externally stored URLs containing ids. -; HTTP_REFERER has to contain this substring for the session to be -; considered as valid. -; https://php.net/session.referer-check -session.referer_check = - -; Set to {nocache,private,public,} to determine HTTP caching aspects -; or leave this empty to avoid sending anti-caching headers. -; https://php.net/session.cache-limiter -session.cache_limiter = nocache - -; Document expires after n minutes. -; https://php.net/session.cache-expire -session.cache_expire = 180 - -; trans sid support is disabled by default. -; Use of trans sid may risk your users' security. -; Use this option with caution. -; - User may send URL contains active session ID -; to other person via. email/irc/etc. -; - URL that contains active session ID may be stored -; in publicly accessible computer. -; - User may access your site with the same session ID -; always using URL stored in browser's history or bookmarks. -; https://php.net/session.use-trans-sid -session.use_trans_sid = 0 - -; Set session ID character length. This value could be between 22 to 256. -; Shorter length than default is supported only for compatibility reason. -; Users should use 32 or more chars. -; https://php.net/session.sid-length -; Default Value: 32 -; Development Value: 26 -; Production Value: 26 -session.sid_length = 26 - -; The URL rewriter will look for URLs in a defined set of HTML tags. -; is special; if you include them here, the rewriter will -; add a hidden field with the info which is otherwise appended -; to URLs. tag's action attribute URL will not be modified -; unless it is specified. -; Note that all valid entries require a "=", even if no value follows. -; Default Value: "a=href,area=href,frame=src,form=" -; Development Value: "a=href,area=href,frame=src,form=" -; Production Value: "a=href,area=href,frame=src,form=" -; https://php.net/url-rewriter.tags -session.trans_sid_tags = "a=href,area=href,frame=src,form=" - -; URL rewriter does not rewrite absolute URLs by default. -; To enable rewrites for absolute paths, target hosts must be specified -; at RUNTIME. i.e. use ini_set() -; tags is special. PHP will check action attribute's URL regardless -; of session.trans_sid_tags setting. -; If no host is defined, HTTP_HOST will be used for allowed host. -; Example value: php.net,www.php.net,wiki.php.net -; Use "," for multiple hosts. No spaces are allowed. -; Default Value: "" -; Development Value: "" -; Production Value: "" -;session.trans_sid_hosts="" - -; Define how many bits are stored in each character when converting -; the binary hash data to something readable. -; Possible values: -; 4 (4 bits: 0-9, a-f) -; 5 (5 bits: 0-9, a-v) -; 6 (6 bits: 0-9, a-z, A-Z, "-", ",") -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 -; https://php.net/session.hash-bits-per-character -session.sid_bits_per_character = 5 - -; Enable upload progress tracking in $_SESSION -; Default Value: On -; Development Value: On -; Production Value: On -; https://php.net/session.upload-progress.enabled -;session.upload_progress.enabled = On - -; Cleanup the progress information as soon as all POST data has been read -; (i.e. upload completed). -; Default Value: On -; Development Value: On -; Production Value: On -; https://php.net/session.upload-progress.cleanup -;session.upload_progress.cleanup = On - -; A prefix used for the upload progress key in $_SESSION -; Default Value: "upload_progress_" -; Development Value: "upload_progress_" -; Production Value: "upload_progress_" -; https://php.net/session.upload-progress.prefix -;session.upload_progress.prefix = "upload_progress_" - -; The index name (concatenated with the prefix) in $_SESSION -; containing the upload progress information -; Default Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Development Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Production Value: "PHP_SESSION_UPLOAD_PROGRESS" -; https://php.net/session.upload-progress.name -;session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS" - -; How frequently the upload progress should be updated. -; Given either in percentages (per-file), or in bytes -; Default Value: "1%" -; Development Value: "1%" -; Production Value: "1%" -; https://php.net/session.upload-progress.freq -;session.upload_progress.freq = "1%" - -; The minimum delay between updates, in seconds -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; https://php.net/session.upload-progress.min-freq -;session.upload_progress.min_freq = "1" - -; Only write session data when session data is changed. Enabled by default. -; https://php.net/session.lazy-write -;session.lazy_write = On - -[Assertion] -; Switch whether to compile assertions at all (to have no overhead at run-time) -; -1: Do not compile at all -; 0: Jump over assertion at run-time -; 1: Execute assertions -; Changing from or to a negative value is only possible in php.ini! -; (For turning assertions on and off at run-time, toggle zend.assertions between the values 1 and 0) -; Default Value: 1 -; Development Value: 1 -; Production Value: -1 -; https://php.net/zend.assertions -zend.assertions = -1 - -[COM] -; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs -; https://php.net/com.typelib-file -;com.typelib_file = - -; allow Distributed-COM calls -; https://php.net/com.allow-dcom -;com.allow_dcom = true - -; autoregister constants of a component's typelib on com_load() -; https://php.net/com.autoregister-typelib -;com.autoregister_typelib = true - -; register constants casesensitive -; https://php.net/com.autoregister-casesensitive -;com.autoregister_casesensitive = false - -; show warnings on duplicate constant registrations -; https://php.net/com.autoregister-verbose -;com.autoregister_verbose = true - -; The default character set code-page to use when passing strings to and from COM objects. -; Default: system ANSI code page -;com.code_page= - -; The version of the .NET framework to use. The value of the setting are the first three parts -; of the framework's version number, separated by dots, and prefixed with "v", e.g. "v4.0.30319". -;com.dotnet_version= - -[mbstring] -; language for internal character representation. -; This affects mb_send_mail() and mbstring.detect_order. -; https://php.net/mbstring.language -;mbstring.language = Japanese - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; internal/script encoding. -; Some encoding cannot work as internal encoding. (e.g. SJIS, BIG5, ISO-2022-*) -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;mbstring.internal_encoding = - -; Use of this INI entry is deprecated, use global input_encoding instead. -; http input encoding. -; mbstring.encoding_translation = On is needed to use this setting. -; If empty, default_charset or input_encoding or mbstring.input is used. -; The precedence is: default_charset < input_encoding < mbstring.http_input -; https://php.net/mbstring.http-input -;mbstring.http_input = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; http output encoding. -; mb_output_handler must be registered as output buffer to function. -; If empty, default_charset or output_encoding or mbstring.http_output is used. -; The precedence is: default_charset < output_encoding < mbstring.http_output -; To use an output encoding conversion, mbstring's output handler must be set -; otherwise output encoding conversion cannot be performed. -; https://php.net/mbstring.http-output -;mbstring.http_output = - -; enable automatic encoding translation according to -; mbstring.internal_encoding setting. Input chars are -; converted to internal encoding by setting this to On. -; Note: Do _not_ use automatic encoding translation for -; portable libs/applications. -; https://php.net/mbstring.encoding-translation -;mbstring.encoding_translation = Off - -; automatic encoding detection order. -; "auto" detect order is changed according to mbstring.language -; https://php.net/mbstring.detect-order -;mbstring.detect_order = auto - -; substitute_character used when character cannot be converted -; one from another -; https://php.net/mbstring.substitute-character -;mbstring.substitute_character = none - -; Enable strict encoding detection. -;mbstring.strict_detection = Off - -; This directive specifies the regex pattern of content types for which mb_output_handler() -; is activated. -; Default: mbstring.http_output_conv_mimetypes=^(text/|application/xhtml\+xml) -;mbstring.http_output_conv_mimetypes= - -; This directive specifies maximum stack depth for mbstring regular expressions. It is similar -; to the pcre.recursion_limit for PCRE. -;mbstring.regex_stack_limit=100000 - -; This directive specifies maximum retry count for mbstring regular expressions. It is similar -; to the pcre.backtrack_limit for PCRE. -;mbstring.regex_retry_limit=1000000 - -[gd] -; Tell the jpeg decode to ignore warnings and try to create -; a gd image. The warning will then be displayed as notices -; disabled by default -; https://php.net/gd.jpeg-ignore-warning -;gd.jpeg_ignore_warning = 1 - -[exif] -; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS. -; With mbstring support this will automatically be converted into the encoding -; given by corresponding encode setting. When empty mbstring.internal_encoding -; is used. For the decode settings you can distinguish between motorola and -; intel byte order. A decode setting cannot be empty. -; https://php.net/exif.encode-unicode -;exif.encode_unicode = ISO-8859-15 - -; https://php.net/exif.decode-unicode-motorola -;exif.decode_unicode_motorola = UCS-2BE - -; https://php.net/exif.decode-unicode-intel -;exif.decode_unicode_intel = UCS-2LE - -; https://php.net/exif.encode-jis -;exif.encode_jis = - -; https://php.net/exif.decode-jis-motorola -;exif.decode_jis_motorola = JIS - -; https://php.net/exif.decode-jis-intel -;exif.decode_jis_intel = JIS - -[Tidy] -; The path to a default tidy configuration file to use when using tidy -; https://php.net/tidy.default-config -;tidy.default_config = /usr/local/lib/php/default.tcfg - -; Should tidy clean and repair output automatically? -; WARNING: Do not use this option if you are generating non-html content -; such as dynamic images -; https://php.net/tidy.clean-output -tidy.clean_output = Off - -[soap] -; Enables or disables WSDL caching feature. -; https://php.net/soap.wsdl-cache-enabled -soap.wsdl_cache_enabled=1 - -; Sets the directory name where SOAP extension will put cache files. -; https://php.net/soap.wsdl-cache-dir -soap.wsdl_cache_dir="/tmp" - -; (time to live) Sets the number of second while cached file will be used -; instead of original one. -; https://php.net/soap.wsdl-cache-ttl -soap.wsdl_cache_ttl=86400 - -; Sets the size of the cache limit. (Max. number of WSDL files to cache) -soap.wsdl_cache_limit = 5 - -[sysvshm] -; A default size of the shared memory segment -;sysvshm.init_mem = 10000 - -[ldap] -; Sets the maximum number of open links or -1 for unlimited. -ldap.max_links = -1 - -[dba] -;dba.default_handler= - -[opcache] -; Determines if Zend OPCache is enabled -;opcache.enable=1 - -; Determines if Zend OPCache is enabled for the CLI version of PHP -;opcache.enable_cli=0 - -; The OPcache shared memory storage size. -;opcache.memory_consumption=128 - -; The amount of memory for interned strings in Mbytes. -;opcache.interned_strings_buffer=8 - -; The maximum number of keys (scripts) in the OPcache hash table. -; Only numbers between 200 and 1000000 are allowed. -;opcache.max_accelerated_files=10000 - -; The maximum percentage of "wasted" memory until a restart is scheduled. -;opcache.max_wasted_percentage=5 - -; When this directive is enabled, the OPcache appends the current working -; directory to the script key, thus eliminating possible collisions between -; files with the same name (basename). Disabling the directive improves -; performance, but may break existing applications. -;opcache.use_cwd=1 - -; When disabled, you must reset the OPcache manually or restart the -; webserver for changes to the filesystem to take effect. -;opcache.validate_timestamps=1 - -; How often (in seconds) to check file timestamps for changes to the shared -; memory storage allocation. ("1" means validate once per second, but only -; once per request. "0" means always validate) -;opcache.revalidate_freq=2 - -; Enables or disables file search in include_path optimization -;opcache.revalidate_path=0 - -; If disabled, all PHPDoc comments are dropped from the code to reduce the -; size of the optimized code. -;opcache.save_comments=1 - -; If enabled, compilation warnings (including notices and deprecations) will -; be recorded and replayed each time a file is included. Otherwise, compilation -; warnings will only be emitted when the file is first cached. -;opcache.record_warnings=0 - -; Allow file existence override (file_exists, etc.) performance feature. -;opcache.enable_file_override=0 - -; A bitmask, where each bit enables or disables the appropriate OPcache -; passes -;opcache.optimization_level=0x7FFFBFFF - -;opcache.dups_fix=0 - -; The location of the OPcache blacklist file (wildcards allowed). -; Each OPcache blacklist file is a text file that holds the names of files -; that should not be accelerated. The file format is to add each filename -; to a new line. The filename may be a full path or just a file prefix -; (i.e., /var/www/x blacklists all the files and directories in /var/www -; that start with 'x'). Line starting with a ; are ignored (comments). -;opcache.blacklist_filename= - -; Allows exclusion of large files from being cached. By default all files -; are cached. -;opcache.max_file_size=0 - -; How long to wait (in seconds) for a scheduled restart to begin if the cache -; is not being accessed. -;opcache.force_restart_timeout=180 - -; OPcache error_log file name. Empty string assumes "stderr". -;opcache.error_log= - -; All OPcache errors go to the Web server log. -; By default, only fatal errors (level 0) or errors (level 1) are logged. -; You can also enable warnings (level 2), info messages (level 3) or -; debug messages (level 4). -;opcache.log_verbosity_level=1 - -; Preferred Shared Memory back-end. Leave empty and let the system decide. -;opcache.preferred_memory_model= - -; Protect the shared memory from unexpected writing during script execution. -; Useful for internal debugging only. -;opcache.protect_memory=0 - -; Allows calling OPcache API functions only from PHP scripts which path is -; started from specified string. The default "" means no restriction -;opcache.restrict_api= - -; Mapping base of shared memory segments (for Windows only). All the PHP -; processes have to map shared memory into the same address space. This -; directive allows to manually fix the "Unable to reattach to base address" -; errors. -;opcache.mmap_base= - -; Facilitates multiple OPcache instances per user (for Windows only). All PHP -; processes with the same cache ID and user share an OPcache instance. -;opcache.cache_id= - -; Enables and sets the second level cache directory. -; It should improve performance when SHM memory is full, at server restart or -; SHM reset. The default "" disables file based caching. -;opcache.file_cache= - -; Enables or disables opcode caching in shared memory. -;opcache.file_cache_only=0 - -; Enables or disables checksum validation when script loaded from file cache. -;opcache.file_cache_consistency_checks=1 - -; Implies opcache.file_cache_only=1 for a certain process that failed to -; reattach to the shared memory (for Windows only). Explicitly enabled file -; cache is required. -;opcache.file_cache_fallback=1 - -; Enables or disables copying of PHP code (text segment) into HUGE PAGES. -; Under certain circumstances (if only a single global PHP process is -; started from which all others fork), this can increase performance -; by a tiny amount because TLB misses are reduced. On the other hand, this -; delays PHP startup, increases memory usage and degrades performance -; under memory pressure - use with care. -; Requires appropriate OS configuration. -;opcache.huge_code_pages=0 - -; Validate cached file permissions. -;opcache.validate_permission=0 - -; Prevent name collisions in chroot'ed environment. -;opcache.validate_root=0 - -; If specified, it produces opcode dumps for debugging different stages of -; optimizations. -;opcache.opt_debug_level=0 - -; Specifies a PHP script that is going to be compiled and executed at server -; start-up. -; https://php.net/opcache.preload -;opcache.preload= - -; Preloading code as root is not allowed for security reasons. This directive -; facilitates to let the preloading to be run as another user. -; https://php.net/opcache.preload_user -;opcache.preload_user= - -; Prevents caching files that are less than this number of seconds old. It -; protects from caching of incompletely updated files. In case all file updates -; on your site are atomic, you may increase performance by setting it to "0". -;opcache.file_update_protection=2 - -; Absolute path used to store shared lockfiles (for *nix only). -;opcache.lockfile_path=/tmp - -[curl] -; A default value for the CURLOPT_CAINFO option. This is required to be an -; absolute path. -;curl.cainfo = - -[openssl] -; The location of a Certificate Authority (CA) file on the local filesystem -; to use when verifying the identity of SSL/TLS peers. Most users should -; not specify a value for this directive as PHP will attempt to use the -; OS-managed cert stores in its absence. If specified, this value may still -; be overridden on a per-stream basis via the "cafile" SSL stream context -; option. -;openssl.cafile= - -; If openssl.cafile is not specified or if the CA file is not found, the -; directory pointed to by openssl.capath is searched for a suitable -; certificate. This value must be a correctly hashed certificate directory. -; Most users should not specify a value for this directive as PHP will -; attempt to use the OS-managed cert stores in its absence. If specified, -; this value may still be overridden on a per-stream basis via the "capath" -; SSL stream context option. -;openssl.capath= - -[ffi] -; FFI API restriction. Possible values: -; "preload" - enabled in CLI scripts and preloaded files (default) -; "false" - always disabled -; "true" - always enabled -;ffi.enable=preload - -; List of headers files to preload, wildcard patterns allowed. -;ffi.preload= diff --git a/php/8/data.yml b/php/8/data.yml deleted file mode 100755 index 353ac83b9..000000000 --- a/php/8/data.yml +++ /dev/null @@ -1,104 +0,0 @@ -additionalProperties: - formFields: - - type: select - multiple: true - labelZh: 默认扩展 - labelEn: Extensions - allowCreate: true - default: - values: - - label: opcache - value: opcache - - label: memcached - value: memcached - - label: memcache - value: memcache - - label: redis - value: redis - - label: mcrypt - value: mcrypt - - label: xdebug - value: xdebug - - label: imap - value: imap - - label: exif - value: exif - - label: intl - value: intl - - label: swoole - value: swoole - - label: yaf - value: yaf - - label: pgsql - value: pgsql - - label: pdo_pgsql - value: pdo_pgsql - - label: snmp - value: snmp - - label: ldap - value: ldap - - label: pspell - value: pspell - - label: bz2 - value: bz2 - - label: sysvshm - value: sysvshm - - label: calendar - value: calendar - - label: gmp - value: gmp - - label: sysvmsg - value: sysvmsg - - label: igbinary - value: igbinary - - label: mysqli - value: mysqli - - label: pdo_mysql - value: pdo_mysql - - label: mbstring - value: mbstring - - label: gd - value: gd - - label: ionCube - value: ionCube - - label: curl - value: curl - - label: sg16 - value: sg16 - - label: imagick - value: imagick - envKey: PHP_EXTENSIONS - - default: 8.4.6 - envKey: PHP_VERSION - labelEn: PHP Version - labelZh: PHP 版本 - required: true - type: select - values: - - label: "8.4.6" - value: "8.4.6" - - label: "8.3.20" - value: "8.3.20" - - label: "8.2.28" - value: "8.2.28" - - label: "8.1.31" - value: "8.1.31" - - label: "8.0.30" - value: "8.0.30" - - default: https://mirrors.tuna.tsinghua.edu.cn - envKey: CONTAINER_PACKAGE_URL - labelEn: Package Source - labelZh: 扩展源 - required: true - type: select - values: - - label: "https://mirrors.tuna.tsinghua.edu.cn" - value: "https://mirrors.tuna.tsinghua.edu.cn" - - default: 9000 - envKey: PANEL_APP_PORT_HTTP - labelEn: PHP-FPM Port - labelZh: PHP-FPM 端口 - required: true - rule: paramPort - type: number - \ No newline at end of file diff --git a/php/8/docker-compose.yml b/php/8/docker-compose.yml deleted file mode 100644 index c78da286a..000000000 --- a/php/8/docker-compose.yml +++ /dev/null @@ -1,35 +0,0 @@ -services: - php: - build: - context: ./build - args: - PHP_IMAGE: 1panel/php:${PHP_VERSION}-fpm - CONTAINER_PACKAGE_URL: ${CONTAINER_PACKAGE_URL} - PHP_EXTENSIONS: ${PHP_EXTENSIONS} - TZ: ${TZ} - image: ${IMAGE_NAME} - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - volumes: - - ${PANEL_WEBSITE_DIR}:/www/ - - ./conf:/usr/local/etc/php - - ./conf/conf.d:/usr/local/etc/php/conf.d - - ./conf/php-fpm.conf:/usr/local/etc/php-fpm.d/www.conf - - ./log:/var/log/php - - ./extensions:${EXTENSION_DIR} - - ./supervisor/supervisord.conf:/etc/supervisord.conf - - ./supervisor/supervisor.d/php-fpm.ini:/etc/supervisor.d/php-fpm.ini - - ./supervisor/supervisor.d:/etc/supervisor.d - - ./supervisor/log:/var/log/supervisor - - ./composer:/tmp/composer - ports: - - 127.0.0.1:${PANEL_APP_PORT_HTTP}:9000 - labels: - createdBy: "Apps" - cap_add: - - SYS_PTRACE -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/php/8/supervisor/supervisor.d/php-fpm.ini b/php/8/supervisor/supervisor.d/php-fpm.ini deleted file mode 100644 index 06609e64f..000000000 --- a/php/8/supervisor/supervisor.d/php-fpm.ini +++ /dev/null @@ -1,11 +0,0 @@ -[program:php-fpm] -command=php-fpm -process_name=%(program_name)s_%(process_num)02d -user=root -numprocs=1 -autostart=true -autorestart=false -startsecs=0 -redirect_stderr=true -stdout_logfile=/dev/stdout -stdout_logfile_maxbytes=0 \ No newline at end of file diff --git a/php/8/supervisor/supervisord.conf b/php/8/supervisor/supervisord.conf deleted file mode 100644 index eb1d14351..000000000 --- a/php/8/supervisor/supervisord.conf +++ /dev/null @@ -1,155 +0,0 @@ -; Sample supervisor config file. -; -; For more information on the config file, please see: -; http://supervisord.org/configuration.html -; -; Notes: -; - Shell expansion ("~" or "$HOME") is not supported. Environment -; variables can be expanded using this syntax: "%(ENV_HOME)s". -; - Quotes around values are not supported, except in the case of -; the environment= options as shown below. -; - Comments must have a leading space: "a=b ;comment" not "a=b;comment". -; - Command will be truncated if it looks like a config file comment, e.g. -; "command=bash -c 'foo ; bar'" will truncate to "command=bash -c 'foo ". -[unix_http_server] -; the path to the socket file -file = /run/supervisor.sock - -; chmod=0700 ; socket file mode (default 0700) -; chown=nobody:nogroup ; socket file uid:gid owner -; username=user ; default is no username (open server) -; password=123 ; default is no password (open server) -; inet (TCP) server disabled by default -[inet_http_server] -; ip_address:port specifier, *:port for all iface -port = 127.0.0.1:9002 - -; username=user ; default is no username (open server) -; password=123 ; default is no password (open server) -[supervisord] -; main log file; default $CWD/supervisord.log -logfile = /var/log/supervisord.log -; max main logfile bytes b4 rotation; default 50MB -logfile_maxbytes = 50MB -; # of main logfile backups; 0 means none, default 11 -logfile_backups = 10 -; log level; default info; others: debug,warn,trace -loglevel = info -; supervisord pidfile; default supervisord.pid -pidfile = /run/supervisord.pid -; start in foreground if true; default false -nodaemon = true -; min. avail startup file descriptors; default 1024 -minfds = 1024 -; min. avail process descriptors;default 200 -minprocs = 200 -; umask=022 ; process file creation umask; default 022 -; user=supervisord ; setuid to this UNIX account at startup; recommended if root -; identifier=supervisor ; supervisord identifier, default is 'supervisor' -; directory=/tmp ; default is not to cd during start -; nocleanup=true ; don't clean up tempfiles at start; default false -; 'AUTO' child log dir, default $TEMP -childlogdir = /var/log/supervisor - -; environment=KEY="value" ; key value pairs to add to environment -; strip_ansi=false ; strip ansi escape codes in logs; def. false -; The rpcinterface:supervisor section must remain in the config file for -; RPC (supervisorctl/web interface) to work. Additional interfaces may be -; added by defining them in separate [rpcinterface:x] sections. -[rpcinterface:supervisor] -supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface - -; The supervisorctl section configures how supervisorctl will connect to -; supervisord. configure it match the settings in either the unix_http_server -; or inet_http_server section. -[supervisorctl] -; use a unix:// URL for a unix socket -serverurl = unix:///run/supervisor.sock - -; serverurl=http://127.0.0.1:9001 ; use an http:// url to specify an inet socket -; username=chris ; should be same as in [*_http_server] if set -; password=123 ; should be same as in [*_http_server] if set -; prompt=mysupervisor ; cmd line prompt (default "supervisor") -; history_file=~/.sc_history ; use readline history if available -; The sample program section below shows all possible program subsection values. -; Create one or more 'real' program: sections to be able to control them under -; supervisor. -; [program:theprogramname] -; command=/bin/cat ; the program (relative uses PATH, can take args) -; process_name=%(program_name)s ; process_name expr (default %(program_name)s) -; numprocs=1 ; number of processes copies to start (def 1) -; directory=/tmp ; directory to cwd to before exec (def no cwd) -; umask=022 ; umask for process (default None) -; priority=999 ; the relative start priority (default 999) -; autostart=true ; start at supervisord start (default: true) -; startsecs=1 ; # of secs prog must stay up to be running (def. 1) -; startretries=3 ; max # of serial start failures when starting (default 3) -; autorestart=unexpected ; when to restart if exited after running (def: unexpected) -; exitcodes=0 ; 'expected' exit codes used with autorestart (default 0) -; stopsignal=QUIT ; signal used to kill process (default TERM) -; stopwaitsecs=10 ; max num secs to wait b4 SIGKILL (default 10) -; stopasgroup=false ; send stop signal to the UNIX process group (default false) -; killasgroup=false ; SIGKILL the UNIX process group (def false) -; user=chrism ; setuid to this UNIX account to run the program -; redirect_stderr=true ; redirect proc stderr to stdout (default false) -; stdout_logfile=/a/path ; stdout log path, NONE for none; default AUTO -; stdout_logfile_maxbytes=1MB ; max # logfile bytes b4 rotation (default 50MB) -; stdout_logfile_backups=10 ; # of stdout logfile backups (0 means none, default 10) -; stdout_capture_maxbytes=1MB ; number of bytes in 'capturemode' (default 0) -; stdout_events_enabled=false ; emit events on stdout writes (default false) -; stdout_syslog=false ; send stdout to syslog with process name (default false) -; stderr_logfile=/a/path ; stderr log path, NONE for none; default AUTO -; stderr_logfile_maxbytes=1MB ; max # logfile bytes b4 rotation (default 50MB) -; stderr_logfile_backups=10 ; # of stderr logfile backups (0 means none, default 10) -; stderr_capture_maxbytes=1MB ; number of bytes in 'capturemode' (default 0) -; stderr_events_enabled=false ; emit events on stderr writes (default false) -; stderr_syslog=false ; send stderr to syslog with process name (default false) -; environment=A="1",B="2" ; process environment additions (def no adds) -; serverurl=AUTO ; override serverurl computation (childutils) -; The sample eventlistener section below shows all possible eventlistener -; subsection values. Create one or more 'real' eventlistener: sections to be -; able to handle event notifications sent by supervisord. -; [eventlistener:theeventlistenername] -; command=/bin/eventlistener ; the program (relative uses PATH, can take args) -; process_name=%(program_name)s ; process_name expr (default %(program_name)s) -; numprocs=1 ; number of processes copies to start (def 1) -; events=EVENT ; event notif. types to subscribe to (req'd) -; buffer_size=10 ; event buffer queue size (default 10) -; directory=/tmp ; directory to cwd to before exec (def no cwd) -; umask=022 ; umask for process (default None) -; priority=-1 ; the relative start priority (default -1) -; autostart=true ; start at supervisord start (default: true) -; startsecs=1 ; # of secs prog must stay up to be running (def. 1) -; startretries=3 ; max # of serial start failures when starting (default 3) -; autorestart=unexpected ; autorestart if exited after running (def: unexpected) -; exitcodes=0 ; 'expected' exit codes used with autorestart (default 0) -; stopsignal=QUIT ; signal used to kill process (default TERM) -; stopwaitsecs=10 ; max num secs to wait b4 SIGKILL (default 10) -; stopasgroup=false ; send stop signal to the UNIX process group (default false) -; killasgroup=false ; SIGKILL the UNIX process group (def false) -; user=chrism ; setuid to this UNIX account to run the program -; redirect_stderr=false ; redirect_stderr=true is not allowed for eventlisteners -; stdout_logfile=/a/path ; stdout log path, NONE for none; default AUTO -; stdout_logfile_maxbytes=1MB ; max # logfile bytes b4 rotation (default 50MB) -; stdout_logfile_backups=10 ; # of stdout logfile backups (0 means none, default 10) -; stdout_events_enabled=false ; emit events on stdout writes (default false) -; stdout_syslog=false ; send stdout to syslog with process name (default false) -; stderr_logfile=/a/path ; stderr log path, NONE for none; default AUTO -; stderr_logfile_maxbytes=1MB ; max # logfile bytes b4 rotation (default 50MB) -; stderr_logfile_backups=10 ; # of stderr logfile backups (0 means none, default 10) -; stderr_events_enabled=false ; emit events on stderr writes (default false) -; stderr_syslog=false ; send stderr to syslog with process name (default false) -; environment=A="1",B="2" ; process environment additions -; serverurl=AUTO ; override serverurl computation (childutils) -; The sample group section below shows all possible group values. Create one -; or more 'real' group: sections to create "heterogeneous" process groups. -; [group:thegroupname] -; programs=progname1,progname2 ; each refers to 'x' in [program:x] definitions -; priority=999 ; the relative start priority (default 999) -; The [include] section can just contain the "files" setting. This -; setting can list multiple files (separated by whitespace or -; newlines). It can also contain wildcards. The filenames are -; interpreted as relative to this file. Included files *cannot* -; include files themselves. -[include] -files = /etc/supervisor.d/*.ini \ No newline at end of file diff --git a/php/README.md b/php/README.md deleted file mode 100644 index 486a5e494..000000000 --- a/php/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# PHP - -PHP 是一种流行的服务器端脚本语言,它用于开发动态网页和Web应用程序。 diff --git a/php/data.yml b/php/data.yml deleted file mode 100644 index 6226ed536..000000000 --- a/php/data.yml +++ /dev/null @@ -1,26 +0,0 @@ -name: PHP -tags: - - 运行环境 -title: PHP 运行环境 -description: PHP 运行环境 -additionalProperties: - key: php - name: PHP - tags: - - Runtime - shortDescZh: PHP 运行环境 - shortDescEn: PHP Runtime - type: php - crossVersionUpdate: false - limit: 0 - recommend: 100 - website: https://www.php.net/ - github: https://github.com/php/php-src - document: https://www.php.net/docs.php - version: 2.0 - architectures: - - amd64 - - arm64 - - arm/v7 - - s390x - - ppc64le \ No newline at end of file diff --git a/php/logo.png b/php/logo.png deleted file mode 100644 index cfa7782d2..000000000 Binary files a/php/logo.png and /dev/null differ diff --git a/php5/5.4.45/build/.env b/php5/5.4.45/build/.env deleted file mode 100644 index de27ea184..000000000 --- a/php5/5.4.45/build/.env +++ /dev/null @@ -1,13 +0,0 @@ -CONTAINER_PACKAGE_URL=mirrors.ustc.edu.cn - -PHP_VERSION=5.4.45 -PHP_PHP_CONF_FILE=./php/php.ini -PHP_FPM_CONF_FILE=./php/php-fpm.conf -PHP_LOG_DIR=./logs/php -PHP_EXTENSIONS= - -SOURCE_DIR=./www - -TZ=Asia/Shanghai -DATA_DIR=./data -IMAGE_NAME=1panel-php:5.4.45 \ No newline at end of file diff --git a/php5/5.4.45/build/config.json b/php5/5.4.45/build/config.json deleted file mode 100644 index 3fa4429d8..000000000 --- a/php5/5.4.45/build/config.json +++ /dev/null @@ -1,126 +0,0 @@ -{ - "formFields": [ - { - "type": "select", - "multiple": true, - "labelZh": "扩展", - "labelEn": "Extensions", - "default": ["mysqli","pdo_mysql"], - "values": [ - { - "label": "opcache", - "value": "opcache" - }, - { - "label": "memcached", - "value": "memcached" - }, - { - "label": "memcache", - "value": "memcache" - }, - { - "label": "redis", - "value": "redis" - }, - { - "label": "mcrypt", - "value": "mcrypt" - }, - { - "label": "xdebug", - "value": "xdebug" - }, - { - "label": "imap", - "value": "imap" - }, - { - "label": "exif", - "value": "exif" - }, - { - "label": "intl", - "value": "intl" - }, - { - "label": "swoole", - "value": "swoole" - }, - { - "label": "yaf", - "value": "yaf" - }, - { - "label": "pgsql", - "value": "pgsql" - }, - { - "label": "pdo_pgsql", - "value": "pdo_pgsql" - }, - { - "label": "snmp", - "value": "snmp" - }, { - "label": "ldap", - "value": "ldap" - }, - { - "label": "pspell", - "value": "pspell" - }, - { - "label": "bz2", - "value": "bz2" - }, - { - "label": "sysvshm", - "value": "sysvshm" - }, - { - "label": "calendar", - "value": "calendar" - }, - { - "label": "gmp", - "value": "gmp" - }, - { - "label": "sysvmsg", - "value": "sysvmsg" - }, - { - "label": "igbinary", - "value": "igbinary" - }, - { - "label": "mysqli", - "value": "mysqli" - }, - { - "label": "pdo_mysql", - "value": "pdo_mysql" - }, - { - "label": "mbstring", - "value": "mbstring" - }, - { - "label": "gd", - "value": "gd" - }, - { - "label": "curl", - "value": "curl" - }, - { - "label": "sg15", - "value": "sourceguardian" - } - ], - "envKey": "PHP_EXTENSIONS", - "edit": true - } - ] -} \ No newline at end of file diff --git a/php5/5.4.45/build/docker-compose.yml b/php5/5.4.45/build/docker-compose.yml deleted file mode 100644 index aa86864df..000000000 --- a/php5/5.4.45/build/docker-compose.yml +++ /dev/null @@ -1,19 +0,0 @@ -services: - 1panel-php: - build: - context: ./php - args: - PHP_IMAGE: php:${PHP_VERSION}-fpm - CONTAINER_PACKAGE_URL: ${CONTAINER_PACKAGE_URL} - PHP_EXTENSIONS: ${PHP_EXTENSIONS} - TZ: ${TZ} - image: ${IMAGE_NAME} - volumes: - - ${SOURCE_DIR}:/www/ - - ${PHP_PHP_CONF_FILE}:/usr/local/etc/php/php.ini - - ${PHP_FPM_CONF_FILE}:/usr/local/etc/php-fpm.d/www.conf - - ${PHP_LOG_DIR}:/var/log/php - - ${DATA_DIR}/composer:/tmp/composer - restart: always - cap_add: - - SYS_PTRACE diff --git a/php5/5.4.45/build/php/Dockerfile b/php5/5.4.45/build/php/Dockerfile deleted file mode 100644 index 3b8618d18..000000000 --- a/php5/5.4.45/build/php/Dockerfile +++ /dev/null @@ -1,25 +0,0 @@ -ARG PHP_IMAGE -FROM ${PHP_IMAGE} - -ARG TZ -ARG PHP_EXTENSIONS -ARG CONTAINER_PACKAGE_URL - -COPY ./extensions /tmp/extensions -WORKDIR /tmp/extensions -RUN chmod +x install.sh \ - && sh install.sh \ - && rm -rf /tmp/extensions - - -# Install composer and change it's cache home -RUN curl -o /usr/bin/composer https://mirrors.aliyun.com/composer/composer.phar \ - && chmod +x /usr/bin/composer -ENV COMPOSER_HOME=/tmp/composer - - -# php image's www-data user uid & gid are 82, change them to 1000 (primary user) -RUN usermod -u 1000 www-data && groupmod -g 1000 www-data - - -WORKDIR /www \ No newline at end of file diff --git a/php5/5.4.45/build/php/extensions/install-php-extensions b/php5/5.4.45/build/php/extensions/install-php-extensions deleted file mode 100644 index 59a1ea8b2..000000000 --- a/php5/5.4.45/build/php/extensions/install-php-extensions +++ /dev/null @@ -1,4741 +0,0 @@ -#!/bin/sh - -# This script wraps docker-php-ext-install, properly configuring the system. -# -# Copyright (c) Michele Locati, 2018-2023 -# -# Source: https://github.com/mlocati/docker-php-extension-installer -# -# License: MIT - see https://github.com/mlocati/docker-php-extension-installer/blob/master/LICENSE - -# Let's set a sane environment -set -o errexit -set -o nounset - -if test "${IPE_DEBUG:-}" = "1"; then - set -x -fi - -if ! which docker-php-ext-configure >/dev/null || ! which docker-php-ext-enable >/dev/null || ! which docker-php-ext-install >/dev/null || ! which docker-php-source >/dev/null; then - printf 'The script %s is meant to be used with official Docker PHP Images - https://hub.docker.com/_/php\n' "$0" >&2 - exit 1 -fi - -IPE_VERSION=2.2.14 - -StandWithUkraine() { - if test -t 1 && ! grep -Eq '^VERSION=.*jessie' /etc/os-release; then - printf '\e[37;44m#StandWith\e[30;43mUkraine\e[0m\n' - else - printf '#StandWithUkraine\n' - fi -} - -if test "$IPE_VERSION" = master && test "${CI:-}" != true; then - cat <&2 - exit 1 - fi - DISTRO="$(cat /etc/os-release | grep -E ^ID= | cut -d = -f 2)" - DISTRO_VERSION_NUMBER="$(cat /etc/os-release | grep -E ^VERSION_ID= | cut -d = -f 2 | cut -d '"' -f 2 | cut -d . -f 1,2)" - DISTRO_VERSION="$(printf '%s@%s' $DISTRO $DISTRO_VERSION_NUMBER)" - DISTRO_MAJMIN_VERSION="$(echo "$DISTRO_VERSION_NUMBER" | awk -F. '{print $1*100+$2}')" -} - -# Set: -# - PHP_MAJMIN_VERSION: Major-Minor version, format MMmm (example 800 for PHP 8.0.1) -# - PHP_MAJDOTMIN_VERSION: Major-Minor version, format M.m (example 8.0 for PHP 8.0.1) -# - PHP_MAJMINPAT_VERSION: Major-Minor-Patch version, format MMmmpp (example 80001 for PHP 8.0.1) variables containing integers value -# - PHP_MAJDOTMINDOTPAT_VERSION: Major-Minor-Patch version, format M.m.p (example 8.0.1 for PHP 8.0.1) -# - PHP_THREADSAFE: 1 if PHP is thread-safe (TS), 0 if not thread-safe (NTS) -# - PHP_DEBUGBUILD: 1 if PHP is debug build (configured with "--enable-debug"), 0 otherwise -# - PHP_BITS: 32 if PHP is compiled for 32-bit, 64 if 64-bit -# - PHP_EXTDIR: the absolute path where the PHP extensions reside -setPHPVersionVariables() { - PHP_MAJDOTMINDOTPAT_VERSION="$(php-config --version)" - PHP_MAJMIN_VERSION=$(printf '%s' "$PHP_MAJDOTMINDOTPAT_VERSION" | awk -F. '{print $1*100+$2}') - PHP_MAJDOTMIN_VERSION=$(printf '%s' "$PHP_MAJDOTMINDOTPAT_VERSION" | cut -d. -f1-2) - PHP_MAJMINPAT_VERSION=$(printf '%s' "$PHP_MAJDOTMINDOTPAT_VERSION" | awk -F. '{print $1*10000+$2*100+$3}') - PHP_THREADSAFE=$(php -n -r 'echo ZEND_THREAD_SAFE ? 1 : 0;') - PHP_DEBUGBUILD=$(php -n -r 'echo ZEND_DEBUG_BUILD ? 1 : 0;') - PHP_BITS=$(php -n -r 'echo PHP_INT_SIZE * 8;') - PHP_EXTDIR="$(php -d display_errors=stderr -r 'echo realpath(ini_get("extension_dir"));')" -} - -# Fix apt-get being very slow on Debian Jessie -# See https://bugs.launchpad.net/ubuntu/+source/apt/+bug/1332440 -fixMaxOpenFiles() { - fixMaxOpenFiles_cur=$(ulimit -n 2>/dev/null || echo 0) - if test "$fixMaxOpenFiles_cur" -gt 10000; then - ulimit -n 10000 - fi -} - -# Get the directory containing the compiled PHP extensions -# -# Output: -# The absolute path of the extensions dir -getPHPExtensionsDir() { - php -i | grep -E '^extension_dir' | head -n1 | tr -s '[:space:]*=>[:space:]*' '|' | cut -d'|' -f2 -} - -# Normalize the name of a PHP extension -# -# Arguments: -# $1: the name of the module to be normalized -# -# Output: -# The normalized module name -normalizePHPModuleName() { - normalizePHPModuleName_name="$1" - case "$normalizePHPModuleName_name" in - *A* | *B* | *C* | *D* | *E* | *F* | *G* | *H* | *I* | *J* | *K* | *L* | *M* | *N* | *O* | *P* | *Q* | *R* | *S* | *T* | *U* | *V* | *W* | *X* | *Y* | *Z*) - normalizePHPModuleName_name="$(LC_CTYPE=C printf '%s' "$normalizePHPModuleName_name" | tr '[:upper:]' '[:lower:]')" - ;; - esac - case "$normalizePHPModuleName_name" in - datadog_trace) - normalizePHPModuleName_name=ddtrace - ;; - ioncube | ioncube\ loader) - normalizePHPModuleName_name='ioncube_loader' - ;; - pecl_http) - normalizePHPModuleName_name='http' - ;; - zend\ opcache) - normalizePHPModuleName_name='opcache' - ;; - libsodium) - if test $PHP_MAJMIN_VERSION -ge 700; then - normalizePHPModuleName_name='sodium' - fi - ;; - sodium) - if test $PHP_MAJMIN_VERSION -lt 700; then - normalizePHPModuleName_name='libsodium' - fi - ;; - *\ *) - printf '### WARNING Unrecognized module name: %s ###\n' "$1" >&2 - ;; - esac - printf '%s' "$normalizePHPModuleName_name" -} - -# Get the PECL name of PHP extension -# -# Arguments: -# $1: the name of the extension -# -# Output: -# The PECL name of the extension -getPeclModuleName() { - normalizePHPModuleName_name="$1" - case "$normalizePHPModuleName_name" in - ddtrace) - normalizePHPModuleName_name=datadog_trace - ;; - http) - normalizePHPModuleName_name=pecl_http - ;; - sodium) - normalizePHPModuleName_name=libsodium - ;; - esac - printf '%s' "$normalizePHPModuleName_name" -} - -# Parse a package.xml (or package2.xml) file and extract the module name and version -# -# Arguments: -# $1: the patho to the XML file -# -# Set these variables: -# - EXTRACTPACKAGEVERSIONFROMXML_NAME -# - EXTRACTPACKAGEVERSIONFROMXML_VERSION -# -# Output: -# Nothing -# -# Return: -# 0 (true): if the string is in the list -# 1 (false): if the string is not in the list -extractPackageVersionFromXML() { - if ! test -f "$1"; then - printf 'Unable to find the file\n%s\n' >&2 - return 1 - fi - extractPackageVersionFromXML_code="$( - cat <<'EOT' -$doc = new DOMDocument(); -if (!$doc->load($argv[1])) { - fwrite(STDERR, "Failed to load XML file\n"); - exit(1); -} -set_error_handler( - static function($errno, $errstr) { - fwrite(STDERR, trim((string) $errstr) . "\n"); - exit(1); - }, - -1 -); -$xpath = new DOMXpath($doc); -$xpath->registerNamespace('v20', 'http://pear.php.net/dtd/package-2.0'); -$xpath->registerNamespace('v21', 'http://pear.php.net/dtd/package-2.1'); -if ($xpath->query('/v20:package/v20:dependencies')->length === 1) { - $ns = 'v20:'; -} elseif ($xpath->query('/v21:package/v21:dependencies')->length === 1) { - $ns = 'v21:'; -} elseif ($xpath->query('/package')->length === 1) { - $ns = ''; -} else { - fwrite(STDERR, "Unsupported namespace of the XML of package version details\n"); -} -$nodes = $xpath->query("/{$ns}package/{$ns}name"); -$name = trim((string) $nodes[0]->nodeValue); -if ($ns === '') { - $nodes = $xpath->query("/{$ns}package/{$ns}version"); -} else { - $nodes = $xpath->query("/{$ns}package/{$ns}version/{$ns}release"); -} -$version = trim((string) $nodes[0]->nodeValue); -echo "EXTRACTPACKAGEVERSIONFROMXML_NAME='{$name}'\n"; -echo "EXTRACTPACKAGEVERSIONFROMXML_VERSION='{$version}'\n"; -exit(0); -EOT - )" - extractPackageVersionFromXML_vars="$(php -n -d display_errors=stderr -r "$extractPackageVersionFromXML_code" "$1")" - if test -z "$extractPackageVersionFromXML_vars"; then - return 1 - fi - eval "$extractPackageVersionFromXML_vars" - return 0 -} - -# Parse a module name (and optionally version) as received via command arguments, extracting the version and normalizing it -# Examples: -# xdebug-2.9.8 -# xdebug-^2 -# xdebug-^2.9 -# -# Arguments: -# $1: the name of the module to be normalized -# -# Set these variables: -# - PROCESSED_PHP_MODULE_ARGUMENT -# -# Optionally set these variables: -# - PHP_WANTEDMODULEVERSION_<...> (where <...> is the normalized module name) -# - PHP_MODULESOURCECODEPATH_<...> (where <...> is the normalized module name) -# -# Output: -# Nothing -processPHPModuleArgument() { - processPHPModuleArgument_arg="$1" - # Convert GitHub short form to long url, - # for example: from - # php-memcached-dev/php-memcached@8f106564e6bb005ca6100b12ccc89000daafa9d8 - # to - # https://codeload.github.com/php-memcached-dev/php-memcached/tar.gz/8f106564e6bb005ca6100b12ccc89000daafa9d8 - processPHPModuleArgument_arg="$(printf '%s' "$processPHPModuleArgument_arg" | sed -E 's/^([a-zA-Z0-9_.\-]+\/[a-zA-Z0-9_.\-]+)@(.+$)/https:\/\/codeload.github.com\/\1\/tar.gz\/\2/')" - # Let's check if $processPHPModuleArgument_arg is an URL - if printf '%s' "$processPHPModuleArgument_arg" | grep -Eq '^https?://[^ ]+/[^ ]+$'; then - printf 'Downloading source from %s\n' "$processPHPModuleArgument_arg" - processPHPModuleArgument_arg="$(getPackageSource "$processPHPModuleArgument_arg")" - fi - # Let's check if $processPHPModuleArgument_arg the absolute path of an existing directory - if test "$processPHPModuleArgument_arg" != "${processPHPModuleArgument_arg#/}" && test -d "$processPHPModuleArgument_arg"; then - if test -f "$processPHPModuleArgument_arg/package2.xml"; then - printf 'Checking package2.xml of directory %s... ' "$processPHPModuleArgument_arg" - if ! extractPackageVersionFromXML "$processPHPModuleArgument_arg/package2.xml"; then - return 1 - fi - elif test -f "$processPHPModuleArgument_arg/package.xml"; then - printf 'Checking package.xml of directory %s... ' "$processPHPModuleArgument_arg" - if ! extractPackageVersionFromXML "$processPHPModuleArgument_arg/package.xml"; then - return 1 - fi - else - printf 'Unable to find the package.xml file in the directory\n%s\n' "$processPHPModuleArgument_arg" - return 1 - fi - printf 'good (name: %s, version: %s)\n' "$EXTRACTPACKAGEVERSIONFROMXML_NAME" "$EXTRACTPACKAGEVERSIONFROMXML_VERSION" - PROCESSED_PHP_MODULE_ARGUMENT="$(normalizePHPModuleName "$EXTRACTPACKAGEVERSIONFROMXML_NAME")" - processPHPModuleArgument_version="$EXTRACTPACKAGEVERSIONFROMXML_VERSION" - if printf '%s' "$PROCESSED_PHP_MODULE_ARGUMENT" | grep -Eq '^[a-zA-Z0-9_]+$'; then - eval PHP_MODULESOURCECODEPATH_$PROCESSED_PHP_MODULE_ARGUMENT="$processPHPModuleArgument_arg" - else - printf 'Unable to parse the following module name:\n%s\n' "$PROCESSED_PHP_MODULE_ARGUMENT" >&2 - exit 1 - fi - else - PROCESSED_PHP_MODULE_ARGUMENT="${processPHPModuleArgument_arg%%-*}" - if test -n "$PROCESSED_PHP_MODULE_ARGUMENT" && test "$PROCESSED_PHP_MODULE_ARGUMENT" != "$processPHPModuleArgument_arg"; then - processPHPModuleArgument_version="${processPHPModuleArgument_arg#*-}" - else - processPHPModuleArgument_version='' - fi - PROCESSED_PHP_MODULE_ARGUMENT="$(normalizePHPModuleName "$PROCESSED_PHP_MODULE_ARGUMENT")" - fi - if test -n "$processPHPModuleArgument_version"; then - if printf '%s' "$PROCESSED_PHP_MODULE_ARGUMENT" | grep -Eq '^[a-zA-Z0-9_]+$'; then - eval PHP_WANTEDMODULEVERSION_$PROCESSED_PHP_MODULE_ARGUMENT="$processPHPModuleArgument_version" - elif printf '%s' "$PROCESSED_PHP_MODULE_ARGUMENT" | grep -Eq '^@[a-zA-Z0-9_]+$'; then - eval PHP_WANTEDMODULEVERSION__${PROCESSED_PHP_MODULE_ARGUMENT#@}="$processPHPModuleArgument_version" - else - printf 'Unable to parse the following module name:\n%s\n' "$PROCESSED_PHP_MODULE_ARGUMENT" >&2 - fi - fi -} - -# Get the wanted PHP module version, as specified in the command line arguments. -# -# Arguments: -# $1: the name of the module to be normalized -# -# Output: -# The wanted version (if any) -getWantedPHPModuleVersion() { - if printf '%s' "$1" | grep -Eq '^[a-zA-Z0-9_]+$'; then - eval printf '%s' "\${PHP_WANTEDMODULEVERSION_$1:-}" - elif printf '%s' "$1" | grep -Eq '^@[a-zA-Z0-9_]+$'; then - eval printf '%s' "\${PHP_WANTEDMODULEVERSION__${1#@}:-}" - fi -} - -# Get source code path of a PHP module version, as specified in the command line arguments. -# -# Arguments: -# $1: the name of the module to be normalized -# -# Output: -# The wanted version (if any) -getModuleSourceCodePath() { - if printf '%s' "$1" | grep -Eq '^[a-zA-Z0-9_]+$'; then - eval printf '%s' "\${PHP_MODULESOURCECODEPATH_$1:-}" - fi -} - -# Get the actual PHP module version, resolving it if it starts with '^' -# -# Arguments: -# $1: the name of the module -# $2: the wanted version (optional, if omitted we'll use getWantedPHPModuleVersion) -# -# Output: -# The version to be used -resolvePHPModuleVersion() { - resolvePHPModuleVersion_module="$1" - if test $# -lt 2; then - resolvePHPModuleVersion_raw="$(getWantedPHPModuleVersion "$installRemoteModule_module")" - else - resolvePHPModuleVersion_raw="$2" - fi - resolvePHPModuleVersion_afterCaret="${resolvePHPModuleVersion_raw#^}" - if test "$resolvePHPModuleVersion_raw" = "$resolvePHPModuleVersion_afterCaret"; then - printf '%s' "$resolvePHPModuleVersion_raw" - return - fi - case "$resolvePHPModuleVersion_afterCaret" in - ?*@snapshot | ?*@devel | ?*@alpha | ?*@beta | ?*@stable) - resolvePHPModuleVersion_wantedStability="${resolvePHPModuleVersion_afterCaret##*@}" - resolvePHPModuleVersion_wantedVersion="${resolvePHPModuleVersion_afterCaret%@*}" - ;; - *) - resolvePHPModuleVersion_wantedStability='' - resolvePHPModuleVersion_wantedVersion="$resolvePHPModuleVersion_afterCaret" - ;; - esac - resolvePHPModuleVersion_peclModule="$(getPeclModuleName "$resolvePHPModuleVersion_module")" - resolvePHPModuleVersion_xml="$(curl -sSLf "http://pecl.php.net/rest/r/$resolvePHPModuleVersion_peclModule/allreleases.xml")" - # remove line endings, collapse spaces - resolvePHPModuleVersion_versions="$(printf '%s' "$resolvePHPModuleVersion_xml" | tr -s ' \t\r\n' ' ')" - # one line per release (eg 1.2.3stable) - resolvePHPModuleVersion_versions="$(printf '%s' "$resolvePHPModuleVersion_versions" | sed -r 's#$resolvePHPModuleVersion_wantedStability")" - fi - # remove everything's up to '' (included) - resolvePHPModuleVersion_versions="$(printf '%s' "$resolvePHPModuleVersion_versions" | sed 's#^.*##')" - # keep just the versions - resolvePHPModuleVersion_versions="$(printf '%s' "$resolvePHPModuleVersion_versions" | cut -d'<' -f1)" - resetIFS - for resolvePHPModuleVersion_version in $resolvePHPModuleVersion_versions; do - resolvePHPModuleVersion_suffix="${resolvePHPModuleVersion_version#$resolvePHPModuleVersion_wantedVersion}" - if test "$resolvePHPModuleVersion_version" != "${resolvePHPModuleVersion_version#$resolvePHPModuleVersion_wantedVersion.}"; then - # Example: looking for 1.0, found 1.0.1 - printf '%s' "$resolvePHPModuleVersion_version" - return - fi - done - for resolvePHPModuleVersion_version in $resolvePHPModuleVersion_versions; do - resolvePHPModuleVersion_suffix="${resolvePHPModuleVersion_version#$resolvePHPModuleVersion_wantedVersion}" - if test "$resolvePHPModuleVersion_version" = "$resolvePHPModuleVersion_suffix"; then - continue - fi - if test -z "$resolvePHPModuleVersion_suffix"; then - # Example: looking for 1.0, found exactly it - printf '%s' "$resolvePHPModuleVersion_version" - return - fi - case "$resolvePHPModuleVersion_suffix" in - [0-9]) - # Example: looking for 1.1, but this is 1.10 - ;; - *) - # Example: looking for 1.1, this is 1.1rc1 - printf '%s' "$resolvePHPModuleVersion_version" - return - ;; - esac - done - printf 'Unable to find a version of "%s" compatible with "%s"\nAvailable versions are:\n%s\n' "$resolvePHPModuleVersion_module" "$resolvePHPModuleVersion_raw" "$resolvePHPModuleVersion_versions" >&2 - exit 1 -} - -# Get the actual version of a PECL pmodule, resolving 'latest', 'stable', 'beta', 'alpha', 'devel'. -# -# Arguments: -# $1: the module name as known on the PECL archive -# $2: the version to be resolved -# Output: -# $2 itself if $1 is not 'latest', 'stable', 'beta', 'alpha', or 'devel', the actual version otherwise -resolvePeclStabilityVersion() { - case "$2" in - latest | stable | beta | alpha | devel) ;; - *) - printf '%s' "$2" - return - ;; - esac - resolvePeclStabilityVersion_peclModule="$(getPeclModuleName "$1")" - peclStabilityFlagToVersion_url="http://pecl.php.net/rest/r/$resolvePeclStabilityVersion_peclModule/$2.txt" - if ! peclStabilityFlagToVersion_result="$(curl -sSLf "$peclStabilityFlagToVersion_url")"; then - peclStabilityFlagToVersion_result='' - fi - if test -z "$peclStabilityFlagToVersion_result"; then - printf 'Failed to resolve the PECL package version "%s" of %s from %s\n' "$2" "$1" "$peclStabilityFlagToVersion_url" >&2 - exit 1 - fi - printf '%s' "$peclStabilityFlagToVersion_result" -} - -# Set these variables: -# - PHP_PREINSTALLED_MODULES the normalized list of PHP modules installed before running this script -setPHPPreinstalledModules() { - PHP_PREINSTALLED_MODULES='' - IFS=' -' - for getPHPInstalledModules_module in $(php -m); do - getPHPInstalledModules_moduleNormalized='' - case "$getPHPInstalledModules_module" in - \[PHP\ Modules\]) ;; - \[Zend\ Modules\]) - break - ;; - *) - getPHPInstalledModules_moduleNormalized="$(normalizePHPModuleName "$getPHPInstalledModules_module")" - if ! stringInList "$getPHPInstalledModules_moduleNormalized" "$PHP_PREINSTALLED_MODULES"; then - PHP_PREINSTALLED_MODULES="$PHP_PREINSTALLED_MODULES $getPHPInstalledModules_moduleNormalized" - fi - ;; - esac - done - if command -v composer >/dev/null; then - PHP_PREINSTALLED_MODULES="$PHP_PREINSTALLED_MODULES @composer" - fi - resetIFS - PHP_PREINSTALLED_MODULES="${PHP_PREINSTALLED_MODULES# }" -} - -# Get the handles of the modules to be installed -# -# Arguments: -# $@: all module handles -# -# Set: -# PHP_MODULES_TO_INSTALL -# -# Output: -# Nothing -processCommandArguments() { - processCommandArguments_endArgs=0 - PHP_MODULES_TO_INSTALL='' - # Support deprecated flag IPE_FIX_CACERTS - case "${IPE_FIX_CACERTS:-}" in - 1 | y* | Y*) - PHP_MODULES_TO_INSTALL="$PHP_MODULES_TO_INSTALL @fix_letsencrypt" - ;; - esac - while :; do - if test $# -lt 1; then - break - fi - processCommandArguments_skip=0 - if test $processCommandArguments_endArgs -eq 0; then - case "$1" in - --cleanup) - printf '### WARNING the %s option is deprecated (we always cleanup everything) ###\n' "$1" >&2 - processCommandArguments_skip=1 - ;; - --) - processCommandArguments_skip=1 - processCommandArguments_endArgs=1 - ;; - -*) - printf 'Unrecognized option: %s\n' "$1" >&2 - exit 1 - ;; - esac - fi - if test $processCommandArguments_skip -eq 0; then - processPHPModuleArgument "$1" - processCommandArguments_name="$PROCESSED_PHP_MODULE_ARGUMENT" - if stringInList "$processCommandArguments_name" "$PHP_MODULES_TO_INSTALL"; then - printf '### WARNING Duplicated module name specified: %s ###\n' "$processCommandArguments_name" >&2 - elif stringInList "$processCommandArguments_name" "$PHP_PREINSTALLED_MODULES"; then - printf '### WARNING Module already installed: %s ###\n' "$processCommandArguments_name" >&2 - else - PHP_MODULES_TO_INSTALL="$PHP_MODULES_TO_INSTALL $processCommandArguments_name" - fi - fi - shift - done - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL# }" -} - -# Add a module that's required by another module -# -# Arguments: -# $1: module that requires another module -# $2: the required module -# -# Update: -# PHP_MODULES_TO_INSTALL -# -# Output: -# Nothing -checkRequiredModule() { - if ! stringInList "$1" "$PHP_MODULES_TO_INSTALL"; then - return - fi - if stringInList "$2" "$PHP_PREINSTALLED_MODULES"; then - return - fi - PHP_MODULES_TO_INSTALL="$(removeStringFromList "$1" "$PHP_MODULES_TO_INSTALL")" - if ! stringInList "$2" "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$PHP_MODULES_TO_INSTALL $2" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL# }" - fi - PHP_MODULES_TO_INSTALL="$PHP_MODULES_TO_INSTALL $1" -} - -# Sort the modules to be installed, in order to fix dependencies -# -# Update: -# PHP_MODULES_TO_INSTALL -# -# Output: -# Nothing -sortModulesToInstall() { - # apcu_bc requires apcu - checkRequiredModule 'apcu_bc' 'apcu' - # http requires propro (for PHP < 8) and raphf - if test $PHP_MAJMIN_VERSION -le 704; then - checkRequiredModule 'http' 'propro' - fi - checkRequiredModule 'http' 'raphf' - # event requires sockets (for PHP <= 5.6) - if test $PHP_MAJMIN_VERSION -le 506; then - checkRequiredModule event sockets - fi - # relay requires msgpack - checkRequiredModule relay msgpack - # relay requires igbinary - checkRequiredModule relay igbinary - # pq requires raphf - checkRequiredModule pq raphf - # Some module installation may use sockets if available: move it before other modules - if stringInList 'sockets' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'sockets' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="sockets $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # Some module installation may use igbinary if available: move it before other modules - if stringInList 'igbinary' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'igbinary' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="igbinary $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # Some module installation may use msgpack if available: move it before other modules - if stringInList 'msgpack' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'msgpack' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="msgpack $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # Some module installation may use socket if available: move it before other modules - if stringInList 'socket' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'socket' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="socket $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # Some module installation may use apcu if available: move it before other modules - if stringInList 'apcu' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'apcu' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="apcu $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # Some module installation may use raphf if available: move it before other modules - if stringInList 'raphf' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'raphf' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="raphf $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # In any case, first of all, we need to install composer - if stringInList '@composer' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList '@composer' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="@composer $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi -} - -# Expand the IPE_ASPELL_LANGUAGES environment variable into apk/apt package names -expandASpellDictionaries() { - expandASpellDictionaries_languages="${IPE_ASPELL_LANGUAGES:-en}" - expandASpellDictionaries_result='' - resetIFS - for expandASpellDictionaries_language in $expandASpellDictionaries_languages; do - expandASpellDictionaries_result="$expandASpellDictionaries_result aspell-$expandASpellDictionaries_language" - done - printf '%s' "${expandASpellDictionaries_result# }" -} - -# Get the required APT/APK packages for a specific PHP version and for the list of module handles -# -# Arguments: -# $@: the PHP module handles -# -# Set: -# PACKAGES_PERSISTENT_NEW the list of packages required at runtume that must be installed -# PACKAGES_PERSISTENT_PRE the list of packages required at runtume that are already installed -# PACKAGES_VOLATILE the list of packages required at compile time that must be installed -# PACKAGES_PREVIOUS the list of packages (with their version) that are installed right now (calculated only on Debian and only if PACKAGES_PERSISTENT_NEW or PACKAGES_VOLATILE are not empty) -buildRequiredPackageLists() { - buildRequiredPackageLists_persistent='' - buildRequiredPackageLists_volatile='' - case "$DISTRO" in - alpine) - apk update - ;; - debian) - invokeAptGetUpdate - ;; - esac - case "$DISTRO_VERSION" in - alpine@*) - if test $# -gt 1 || test "${1:-}" != '@composer'; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $PHPIZE_DEPS" - fi - if test -z "$(apk info 2>/dev/null | grep -E ^libssl)"; then - buildRequiredPackageLists_libssl="$(apk search | grep -E '^libssl[0-9]' | head -1 | cut -d- -f1)" - elif test -z "$(apk info 2>/dev/null | grep -E '^libressl.*-libtls')" && test -z "$(apk info 2>/dev/null | grep -E '^libressl.*-libssl')" && test -z "$(apk info 2>/dev/null | grep -E '^libretls-')"; then - buildRequiredPackageLists_libssl=$(apk search -q libressl*-libtls) - else - buildRequiredPackageLists_libssl='' - fi - if test $DISTRO_MAJMIN_VERSION -le 313; then - buildRequiredPackageLists_libssldev='libressl-dev' - else - buildRequiredPackageLists_libssldev='libretls-dev' - fi - buildRequiredPackageLists_icuPersistent='' - if test $DISTRO_MAJMIN_VERSION -ge 316; then - case "${IPE_ICU_EN_ONLY:-}" in - 1 | y* | Y*) ;; - *) - buildRequiredPackageLists_icuPersistent='icu-data-full' - ;; - esac - fi - ;; - debian@9) - buildRequiredPackageLists_libssldev='libssl1.0-dev' - ;; - debian@*) - buildRequiredPackageLists_libssldev='^libssl([0-9]+(\.[0-9]+)*)?-dev$' - ;; - esac - if test $USE_PICKLE -gt 1; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile git" - fi - while :; do - if test $# -lt 1; then - break - fi - case "$1@$DISTRO" in - @composer@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent unzip" - ;; - amqp@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent rabbitmq-c" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile rabbitmq-c-dev" - ;; - amqp@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^librabbitmq[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile librabbitmq-dev libssh-dev" - ;; - bz2@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libbz2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile bzip2-dev" - ;; - bz2@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libbz2-dev" - ;; - cassandra@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent cassandra-cpp-driver gmp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cassandra-cpp-driver-dev gmp-dev" - ;; - cmark@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake" - ;; - cmark@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake" - ;; - ddtrace@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libgcc" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile curl-dev" - ;; - ddtrace@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libcurl4-openssl-dev" - ;; - dba@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent db" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile db-dev" - ;; - dba@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile ^libdb5\.3-dev$" - if test $PHP_MAJMIN_VERSION -le 505; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile patch" - fi - ;; - decimal@debian) - if test $DISTRO_MAJMIN_VERSION -lt 1200; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libmpdec[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmpdec-dev" - fi - ;; - ecma_intl@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent icu-libs $buildRequiredPackageLists_icuPersistent" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev libidn-dev" - ;; - ecma_intl@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libicu[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libicu-dev" - ;; - enchant@alpine) - if test $DISTRO_MAJMIN_VERSION -ge 312; then - if test $PHP_MAJMIN_VERSION -ge 800; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent enchant2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile enchant2-dev" - else - # The system provides libenchant2, supported since PHP 8.0: we need to build libenchant1 on our own - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent glib aspell-libs libhunspell" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile glib-dev aspell-dev hunspell-dev" - fi - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent enchant" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile enchant-dev" - fi - ;; - enchant@debian) - if test $DISTRO_VERSION_NUMBER -ge 11; then - if test $PHP_MAJMIN_VERSION -ge 800; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libenchant-2-2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libenchant-2-dev" - else - # The system provides libenchant2, supported since PHP 8.0: we need to build libenchant1 on our own - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent aspell-en libhunspell-1.7-0" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libglib2.0-dev libaspell-dev libhunspell-dev" - fi - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libenchant1c2a" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libenchant-dev" - fi - ;; - event@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libevent $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libevent-dev $buildRequiredPackageLists_libssldev" - ;; - event@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libevent[0-9\.\-]*$ ^libevent-openssl[0-9\.\-]*$ ^libevent-extra[0-9\.\-]*$ ^libevent-pthreads[0-9\.\-]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libevent-dev $buildRequiredPackageLists_libssldev" - ;; - ffi@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libffi" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libffi-dev" - ;; - ffi@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libffi-dev" - ;; - ftp@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev" - ;; - ftp@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev" - ;; - gd@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent freetype libjpeg-turbo libpng libxpm" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetype-dev libjpeg-turbo-dev libpng-dev libxpm-dev" - if test $PHP_MAJMIN_VERSION -le 506; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libvpx" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libvpx-dev" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libwebp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libwebp-dev" - if test $PHP_MAJMIN_VERSION -ge 801; then - if test $DISTRO_MAJMIN_VERSION -ge 315; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libavif aom-libs libdav1d" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libavif-dev aom-dev dav1d-dev" - elif isLibaomInstalled && isLibdav1dInstalled && isLibyuvInstalled && isLibavifInstalled; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - else - case "${IPE_GD_WITHOUTAVIF:-}" in - 1 | y* | Y*) ;; - *) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake nasm meson" - ;; - esac - fi - fi - fi - ;; - gd@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libfreetype6 libjpeg62-turbo ^libpng[0-9]+-[0-9]+$ libxpm4" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libfreetype6-dev libjpeg62-turbo-dev libpng-dev libxpm-dev" - if test $PHP_MAJMIN_VERSION -le 506; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libvpx[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libvpx-dev" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libwebp[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libwebp-dev" - if test $PHP_MAJMIN_VERSION -ge 801; then - if test $DISTRO_VERSION_NUMBER -ge 12; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libavif[0-9]+$ ^libaom[0-9]+$ ^libdav1d[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libavif-dev libaom-dev libdav1d-dev" - elif ! isLibaomInstalled || ! isLibdav1dInstalled || ! isLibyuvInstalled || ! isLibavifInstalled; then - case "${IPE_GD_WITHOUTAVIF:-}" in - 1 | y* | Y*) ;; - *) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake nasm meson" - ;; - esac - fi - fi - fi - ;; - gearman@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++ libuuid" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile boost-dev gperf libmemcached-dev libevent-dev util-linux-dev" - ;; - gearman@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libgearman[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgearman-dev" - ;; - geoip@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent geoip" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile geoip-dev" - ;; - geoip@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libgeoip1[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgeoip-dev" - ;; - geos@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent geos-dev" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile geos" - ;; - geos@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libgeos-c1(v[0-9]*)?$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgeos-dev" - ;; - gettext@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libintl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile gettext-dev" - ;; - gmagick@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent graphicsmagick libgomp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile graphicsmagick-dev libtool" - ;; - gmagick@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libgraphicsmagick(-q16-)?[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgraphicsmagick1-dev" - ;; - gmp@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gmp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile gmp-dev" - ;; - gmp@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgmp-dev" - ;; - gnupg@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gpgme" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile gpgme-dev" - ;; - gnupg@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libgpgme[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile ^libgpgme[0-9]*-dev$" - ;; - grpc@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev linux-headers" - ;; - grpc@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev" - ;; - http@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libevent" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev curl-dev libevent-dev" - if test $PHP_MAJMIN_VERSION -le 506; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libidn" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libidn-dev" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent icu-libs $buildRequiredPackageLists_icuPersistent libidn" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev libidn-dev" - fi - ;; - http@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libcurl3-gnutls ^libevent[0-9\.\-]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev libgnutls28-dev libcurl4-gnutls-dev libevent-dev" - if test $PHP_MAJMIN_VERSION -le 506; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile ^libidn1[0-9+]-dev$" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libicu[0-9]+$ ^libidn2-[0-9+]$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libicu-dev ^libidn2-[0-9+]-dev$" - fi - ;; - imagick@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent imagemagick libgomp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile imagemagick-dev" - if [ $DISTRO_MAJMIN_VERSION -ge 319 ]; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ghostscript libheif libjxl libraw librsvg" - fi - ;; - imagick@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libmagickwand-6.q16-[0-9]+$ ^libmagickcore-6.q16-[0-9]+-extra$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmagickwand-dev" - ;; - imap@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent c-client $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile krb5-dev imap-dev $buildRequiredPackageLists_libssldev" - ;; - imap@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libc-client2007e" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libkrb5-dev" - case "$DISTRO_VERSION" in - debian@9) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev comerr-dev krb5-multidev libc-client2007e libgssrpc4 libkadm5clnt-mit11 libkadm5srv-mit11 libkdb5-8 libpam0g-dev libssl-doc mlock" - ;; - *) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libc-client-dev" - ;; - esac - ;; - interbase@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev ncurses-dev" - ;; - interbase@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libfbclient2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile firebird-dev libib-util" - ;; - intl@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent icu-libs $buildRequiredPackageLists_icuPersistent" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev" - ;; - intl@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libicu[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libicu-dev" - ;; - ion@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake git" - ;; - ion@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake git" - ;; - ldap@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libldap" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile openldap-dev" - ;; - ldap@debian) - if test $DISTRO_VERSION_NUMBER -ge 9; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libldap-common" - fi - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libldap2-dev" - ;; - luasandbox@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lua5.1-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile lua5.1-dev" - ;; - luasandbox@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblua5.1-0" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liblua5.1-0-dev" - ;; - lz4@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lz4-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile lz4-dev" - ;; - lz4@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblz4-1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liblz4-dev" - ;; - maxminddb@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmaxminddb" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmaxminddb-dev" - ;; - maxminddb@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libmaxminddb[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmaxminddb-dev" - ;; - memprof@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent judy" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile judy-dev bsd-compat-headers" - ;; - memprof@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libjudydebian1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libjudy-dev" - ;; - mcrypt@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmcrypt" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmcrypt-dev" - ;; - mcrypt@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmcrypt4" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmcrypt-dev" - ;; - memcache@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev" - ;; - memcache@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev" - ;; - memcached@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmemcached-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmemcached-dev zlib-dev" - ;; - memcached@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmemcachedutil2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmemcached-dev zlib1g-dev" - if test $DISTRO_MAJMIN_VERSION -ge 12; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev" - fi - ;; - mongo@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsasl $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev cyrus-sasl-dev" - ;; - mongo@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev libsasl2-dev" - ;; - mongodb@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent icu-libs $buildRequiredPackageLists_icuPersistent libsasl $buildRequiredPackageLists_libssl snappy" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev cyrus-sasl-dev snappy-dev $buildRequiredPackageLists_libssldev zlib-dev" - if test $PHP_MAJMIN_VERSION -ge 704; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent zstd-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zstd-dev" - fi - ;; - mongodb@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libsnappy[0-9]+(v[0-9]+)?$ ^libicu[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libicu-dev libsasl2-dev libsnappy-dev $buildRequiredPackageLists_libssldev zlib1g-dev" - if test $PHP_MAJMIN_VERSION -ge 704; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libzstd[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libzstd-dev" - fi - ;; - mosquitto@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent mosquitto-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile mosquitto-dev" - ;; - mosquitto@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmosquitto1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmosquitto-dev" - ;; - mssql@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent freetds" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - mssql@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsybdb5" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - oauth@alpine) - if test $PHP_MAJMIN_VERSION -ge 700; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile pcre-dev" - fi - ;; - oauth@debian) - if test $PHP_MAJMIN_VERSION -ge 700; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libpcre3-dev" - fi - ;; - oci8@alpine | pdo_oci@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libaio libc6-compat libnsl" - if test $DISTRO_MAJMIN_VERSION -le 307; then - # The unzip tool of Alpine 3.7 can't extract symlinks from ZIP archives: let's use bsdtar instead - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libarchive-tools" - fi - ;; - oci8@debian | pdo_oci@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libaio[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unzip" - ;; - odbc@alpine | pdo_odbc@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent unixodbc" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unixodbc-dev" - ;; - odbc@debian | pdo_odbc@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libodbc1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unixodbc-dev" - ;; - openswoole@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent postgresql-libs libstdc++ $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile curl-dev postgresql-dev linux-headers $buildRequiredPackageLists_libssldev" - ;; - openswoole@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libcurl3-gnutls libpq5" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev libcurl4-gnutls-dev libpq-dev" - ;; - parle@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - ;; - pdo_dblib@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent freetds" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - pdo_dblib@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsybdb5" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - pdo_firebird@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev ncurses-dev" - ;; - pdo_firebird@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libfbclient2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile firebird-dev libib-util" - ;; - pgsql@alpine | pdo_pgsql@alpine | pq@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent postgresql-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile postgresql-dev" - ;; - pgsql@debian | pdo_pgsql@debian | pq@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libpq5" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libpq-dev" - ;; - php_trie@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - ;; - pkcs11@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent softhsm" - ;; - pkcs11@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsofthsm2" - ;; - pspell@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent aspell-libs $(expandASpellDictionaries)" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile aspell-dev" - ;; - pspell@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libaspell15 $(expandASpellDictionaries)" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libpspell-dev" - ;; - rdkafka@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent librdkafka" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile librdkafka-dev" - ;; - rdkafka@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^librdkafka\+*[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile librdkafka-dev" - ;; - recode@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent recode" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile recode-dev" - ;; - recode@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent librecode0" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile librecode-dev" - ;; - redis@alpine) - if test $PHP_MAJMIN_VERSION -ge 700; then - case "$DISTRO_VERSION" in - alpine@3.7) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent zstd" - ;; - *) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent zstd-libs" - ;; - esac - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zstd-dev" - if test $PHP_MAJMIN_VERSION -ge 702; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lz4-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile lz4-dev" - fi - fi - ;; - redis@debian) - if test $PHP_MAJMIN_VERSION -ge 700; then - case "$DISTRO_VERSION" in - debian@8) - ## There's no APT package for libzstd - ;; - debian@9) - ## libzstd is too old (available: 1.1.2, required: 1.3.0+) - ;; - *) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libzstd[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libzstd-dev" - ;; - esac - fi - if test $PHP_MAJMIN_VERSION -ge 702; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblz4-1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liblz4-dev" - fi - ;; - relay@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lz4-libs zstd-libs" - if test $DISTRO_MAJMIN_VERSION -ge 317; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent $buildRequiredPackageLists_libssl" - fi - ;; - saxon@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_volatile unzip" - ;; - seasclick@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - ;; - simdjson@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - ;; - smbclient@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsmbclient" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile samba-dev" - ;; - smbclient@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsmbclient" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsmbclient-dev" - ;; - snappy@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent snappy" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile snappy-dev" - ;; - snappy@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libsnappy1(v[0-9]+)?$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsnappy-dev" - ;; - snmp@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent net-snmp-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile net-snmp-dev" - ;; - snmp@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent snmp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsnmp-dev" - ;; - snuffleupagus@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent pcre" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile pcre-dev" - ;; - snuffleupagus@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libpcre3-dev" - ;; - soap@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - soap@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - sockets@alpine) - if test $PHP_MAJMIN_VERSION -ge 802; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile linux-headers" - fi - ;; - sodium@alpine | libsodium@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsodium" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsodium-dev" - ;; - sodium@debian | libsodium@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libsodium[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsodium-dev" - ;; - solr@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile curl-dev libxml2-dev" - ;; - solr@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libcurl3-gnutls" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libcurl4-gnutls-dev libxml2-dev" - ;; - sourceguardian@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent eudev-libs" - ;; - spx@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev" - ;; - spx@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev" - ;; - sqlsrv@alpine | pdo_sqlsrv@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++ unixodbc" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unixodbc-dev" - ;; - sqlsrv@debian | pdo_sqlsrv@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent unixodbc" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unixodbc-dev" - if ! isMicrosoftSqlServerODBCInstalled; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile gnupg apt-transport-https" - fi - ;; - ssh2@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libssh2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libssh2-dev" - ;; - ssh2@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libssh2-1-dev" - ;; - stomp@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev" - ;; - stomp@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev" - ;; - swoole@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent postgresql-libs libstdc++ $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile curl-dev postgresql-dev linux-headers $buildRequiredPackageLists_libssldev" - if test $PHP_MAJMIN_VERSION -ge 702; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent c-ares" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile c-ares-dev" - fi - ;; - swoole@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libcurl3-gnutls libpq5" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev libcurl4-gnutls-dev libpq-dev" - if test $PHP_MAJMIN_VERSION -ge 702; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libc-ares2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libc-ares-dev" - fi - if test $PHP_MAJMIN_VERSION -ge 800; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev" - fi - ;; - sybase_ct@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent freetds" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - sybase_ct@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libct4" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - tdlib@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++ $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile git cmake gperf zlib-dev $buildRequiredPackageLists_libssldev linux-headers readline-dev" - ;; - tdlib@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile git cmake gperf zlib1g-dev $buildRequiredPackageLists_libssldev" - ;; - tensor@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent openblas" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile lapack-dev openblas-dev" - if test $DISTRO_MAJMIN_VERSION -le 317; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lapack" - if test $DISTRO_MAJMIN_VERSION -le 316; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libexecinfo" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libexecinfo-dev" - if test $DISTRO_MAJMIN_VERSION -le 310; then - if ! stringInList --force-overwrite "$IPE_APK_FLAGS"; then - IPE_APK_FLAGS="$IPE_APK_FLAGS --force-overwrite" - fi - fi - fi - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblapack" - fi - ;; - tensor@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblapacke" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liblapack-dev libopenblas-dev liblapacke-dev" - if test $DISTRO_VERSION_NUMBER -le 9; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-6 libopenblas-base" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-6-dev" - elif test $DISTRO_VERSION_NUMBER -le 10; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-8 libopenblas-base" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-8-dev" - elif test $DISTRO_VERSION_NUMBER -le 11; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-10 libopenblas-base" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-10-dev" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-12 libopenblas0" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-12-dev" - fi - ;; - tidy@alpine) - if test $DISTRO_MAJMIN_VERSION -ge 315; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent tidyhtml" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent tidyhtml-libs" - fi - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile tidyhtml-dev" - ;; - tidy@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libtidy-?[0-9][0-9.\-]*(deb[0-9])?$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libtidy-dev" - ;; - uuid@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libuuid" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile util-linux-dev" - ;; - uuid@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile uuid-dev" - ;; - uv@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libuv" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libuv-dev" - ;; - uv@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libuv1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libuv1-dev" - ;; - vips@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent vips" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile vips-dev" - ;; - vips@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libvips" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libvips-dev" - ;; - wddx@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - wddx@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - wikidiff2@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile git" - ;; - wikidiff2@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libthai0" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile git libthai-dev" - ;; - xdebug@alpine) - if test $PHP_MAJMIN_VERSION -ge 800; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile linux-headers" - fi - ;; - xlswriter@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev" - ;; - xlswriter@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev" - ;; - xmldiff@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - xmldiff@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - xmlrpc@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - xmlrpc@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - xsl@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libxslt" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxslt-dev libgcrypt-dev" - ;; - xsl@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libxslt1\.1$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxslt-dev" - ;; - yaml@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent yaml" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile yaml-dev" - ;; - yaml@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libyaml-0-2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libyaml-dev" - ;; - yar@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile curl-dev" - ;; - yar@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libcurl3-gnutls" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libcurl4-gnutls-dev" - ;; - zip@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libzip" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake gnutls-dev libzip-dev $buildRequiredPackageLists_libssldev zlib-dev" - ;; - zip@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libzip[0-9]$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake gnutls-dev $buildRequiredPackageLists_libssldev libzip-dev libbz2-dev zlib1g-dev" - case "$DISTRO_VERSION" in - debian@8) - # Debian Jessie doesn't seem to provide libmbedtls - ;; - *) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libmbedtls[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmbedtls-dev" - ;; - esac - ;; - zmq@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent zeromq-dev" - ;; - zmq@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libzmq3-dev" - ;; - zookeeper@alpine) - if ! test -f /usr/local/include/zookeeper/zookeeper.h; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile maven automake libtool openjdk8" - fi - ;; - zookeeper@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libzookeeper-mt2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libzookeeper-mt-dev" - ;; - esac - shift - done - PACKAGES_PERSISTENT_NEW='' - PACKAGES_PERSISTENT_PRE='' - PACKAGES_VOLATILE='' - PACKAGES_PREVIOUS='' - if test -z "$buildRequiredPackageLists_persistent$buildRequiredPackageLists_volatile"; then - return - fi - if test -n "$buildRequiredPackageLists_persistent"; then - PACKAGES_PERSISTENT_NEW="$(expandPackagesToBeInstalled $buildRequiredPackageLists_persistent)" - if test -s "$IPE_ERRFLAG_FILE"; then - exit 1 - fi - resetIFS - for buildRequiredPackageLists_package in $buildRequiredPackageLists_persistent; do - buildRequiredPackageLists_package="$(expandInstalledSystemPackageName "$buildRequiredPackageLists_package")" - if test -n "$buildRequiredPackageLists_package"; then - PACKAGES_PERSISTENT_PRE="$PACKAGES_PERSISTENT_PRE $buildRequiredPackageLists_package" - fi - done - PACKAGES_PERSISTENT_PRE="${PACKAGES_PERSISTENT_PRE# }" - fi - if test -n "$buildRequiredPackageLists_volatile"; then - buildRequiredPackageLists_packages="$(expandPackagesToBeInstalled $buildRequiredPackageLists_volatile)" - if test -s "$IPE_ERRFLAG_FILE"; then - exit 1 - fi - resetIFS - for buildRequiredPackageLists_package in $buildRequiredPackageLists_packages; do - if ! stringInList "$buildRequiredPackageLists_package" "$PACKAGES_PERSISTENT_NEW"; then - if test "$buildRequiredPackageLists_package" != icu-data-en || ! stringInList icu-data-full "$PACKAGES_PERSISTENT_NEW"; then - PACKAGES_VOLATILE="$PACKAGES_VOLATILE $buildRequiredPackageLists_package" - fi - fi - done - PACKAGES_VOLATILE="${PACKAGES_VOLATILE# }" - fi - if test -n "$PACKAGES_PERSISTENT_NEW$PACKAGES_VOLATILE"; then - case "$DISTRO" in - debian) - PACKAGES_PREVIOUS="$(dpkg --get-selections | grep -E '\sinstall$' | awk '{ print $1 }')" - ;; - esac - fi -} - -# Get the full list of APT/APK packages that will be installed, given the required packages -# -# Arguments: -# $1: the list of required APT/APK packages -# -# Output: -# Space-separated list of every APT/APK packages that will be installed -expandPackagesToBeInstalled() { - expandPackagesToBeInstalled_result='' - case "$DISTRO" in - alpine) - expandPackagesToBeInstalled_log="$(apk add --simulate $@ 2>&1 || printf '\nERROR: apk failed\n')" - if test -n "$(printf '%s' "$expandPackagesToBeInstalled_log" | grep -E '^ERROR:')"; then - printf 'FAILED TO LIST THE WHOLE PACKAGE LIST FOR\n' >&2 - printf '%s ' "$@" >&2 - printf '\n\nCOMMAND OUTPUT:\n%s\n' "$expandPackagesToBeInstalled_log" >&2 - echo 'y' >"$IPE_ERRFLAG_FILE" - exit 1 - fi - IFS=' -' - for expandPackagesToBeInstalled_line in $expandPackagesToBeInstalled_log; do - if test -n "$(printf '%s' "$expandPackagesToBeInstalled_line" | grep -E '^\([0-9]*/[0-9]*) Installing ')"; then - expandPackagesToBeInstalled_result="$expandPackagesToBeInstalled_result $(printf '%s' "$expandPackagesToBeInstalled_line" | cut -d ' ' -f 3)" - fi - done - resetIFS - ;; - debian) - expandPackagesToBeInstalled_log="$(DEBIAN_FRONTEND=noninteractive apt-get install -sy --no-install-recommends $IPE_APTGET_INSTALLOPTIONS $@ 2>&1 || printf '\nE: apt-get failed\n')" - if test -n "$(printf '%s' "$expandPackagesToBeInstalled_log" | grep -E '^E:')"; then - printf 'FAILED TO LIST THE WHOLE PACKAGE LIST FOR\n' >&2 - printf '%s ' "$@" >&2 - printf '\n\nCOMMAND OUTPUT:\n%s\n' "$expandPackagesToBeInstalled_log" >&2 - echo 'y' >"$IPE_ERRFLAG_FILE" - exit 1 - fi - expandPackagesToBeInstalled_inNewPackages=0 - IFS=' -' - for expandPackagesToBeInstalled_line in $expandPackagesToBeInstalled_log; do - if test $expandPackagesToBeInstalled_inNewPackages -eq 0; then - if test "$expandPackagesToBeInstalled_line" = 'The following NEW packages will be installed:'; then - expandPackagesToBeInstalled_inNewPackages=1 - fi - elif test "$expandPackagesToBeInstalled_line" = "${expandPackagesToBeInstalled_line# }"; then - break - else - resetIFS - for expandPackagesToBeInstalled_newPackage in $expandPackagesToBeInstalled_line; do - expandPackagesToBeInstalled_result="$expandPackagesToBeInstalled_result $expandPackagesToBeInstalled_newPackage" - done - IFS=' -' - fi - done - resetIFS - ;; - esac - printf '%s' "${expandPackagesToBeInstalled_result# }" -} - -# Check if a system package is installed; if so we prints its name. -# -# Arguments: -# $1: the name of the package to be checked (regular expressions accepted: they must start with a ^) -expandInstalledSystemPackageName() { - if test "$1" = "${1#^}"; then - expandInstalledSystemPackageName_grepflags='-Fx' - else - expandInstalledSystemPackageName_grepflags='-E' - fi - case "$DISTRO" in - alpine) - apk info | grep $expandInstalledSystemPackageName_grepflags -- "$1" || test $? -eq 1 - ;; - debian) - dpkg --get-selections | grep -E '\sinstall$' | awk '{ print $1 }' | cut -d: -f1 | grep $expandInstalledSystemPackageName_grepflags -- "$1" || test $? -eq 1 - ;; - esac -} - -# Retrieve the number of available cores (alternative to nproc if not available) -# -# Output: -# The number of processor cores available -getProcessorCount() { - if test -n "${IPE_PROCESSOR_COUNT:-}"; then - echo $IPE_PROCESSOR_COUNT - return - fi - if command -v nproc >/dev/null 2>&1; then - nproc - else - getProcessorCount_tmp=$(cat /proc/cpuinfo | grep -E '^processor\s*:\s*\d+$' | wc -l) - if test $getProcessorCount_tmp -ge 1; then - echo $getProcessorCount_tmp - else - echo 1 - fi - fi -} - -# Set these variables: -# - TARGET_TRIPLET the build target tripled (eg 'x86_64-linux-gnu', 'x86_64-alpine-linux-musl') -setTargetTriplet() { - TARGET_TRIPLET="$(gcc -print-multiarch 2>/dev/null || true)" - if test -z "$TARGET_TRIPLET"; then - TARGET_TRIPLET="$(gcc -dumpmachine)" - fi -} - -# Retrieve the number of processors to be used when compiling an extension -# -# Arguments: -# $1: the handle of the PHP extension to be compiled -# Output: -# The number of processors to be used -getCompilationProcessorCount() { - case "$1" in - '') - # The above extensions don't support parallel compilation - echo 1 - ;; - *) - # All the other extensions support parallel compilation - getProcessorCount - ;; - esac -} - -# Get the full path of a PHP extension given its name. -# -# Arguments: -# $1: the name of the PHP extension -# -# Output: -# The absolute path of the PHP extension file (or nothing if the file can't be found) -getModuleFullPath() { - case "$1" in - apcu_bc) - getModuleFullPath_path="$PHP_EXTDIR/apc.so" - ;; - seasclick) - getModuleFullPath_path="$PHP_EXTDIR/SeasClick.so" - ;; - *) - getModuleFullPath_path="$PHP_EXTDIR/$1.so" - ;; - esac - if ! test -f "$getModuleFullPath_path"; then - printf 'Unable to find the file of the PHP extension "%s"\n' "$1" >&2 - exit 1 - fi - printf '%s' "$getModuleFullPath_path" -} - -# Post-process a PHP module just compiled and installed in the PHP extension directory -# -# Arguments: -# $1: the name of the PHP extension -# -# Return: -# 0 (true): if suceeded -# non-zero (false): in case of errors -postProcessModule() { - postProcessModule_file="$(getModuleFullPath "$1")" - if test $PHP_DEBUGBUILD -ne 1; then - printf 'Removing symbols from %s... ' "$postProcessModule_file" - postProcessModule_preSize="$(stat -c %s "$postProcessModule_file")" - strip --strip-all "$postProcessModule_file" - postProcessModule_postSize="$(stat -c %s "$postProcessModule_file")" - printf 'done (%s bytes saved).\n' "$((postProcessModule_preSize - postProcessModule_postSize))" - fi - return $? -} - -# Get the type of the php.ini entry to be used for a PHP extension -# -# Arguments: -# $1: the name of the PHP extension -# -# Output: -# zend_extension or extension -getModuleIniEntryType() { - case "$1" in - ioncube_loader | sourceguardian) - # On PHP 5.5, docker-php-ext-enable fails to detect that ionCube Loader and sourceguardian are Zend extensions - if test $PHP_MAJMIN_VERSION -le 505; then - printf 'zend_extension' - return 0 - fi - ;; - esac - getModuleIniEntryType_file="$(getModuleFullPath "$1")" - if readelf --wide --syms "$getModuleIniEntryType_file" | grep -Eq ' zend_extension_entry$'; then - printf 'zend_extension' - else - printf 'extension' - fi -} - -# Create the contents of a PHP ini file that enables an extension -# -# Arguments: -# $1: the name of the PHP extension -# $2: additional php.ini configuration (optional) -# -# Output: -# The contents of the ini file -buildPhpExtensionIniContent() { - buildPhpExtensionIniContent_type="$(getModuleIniEntryType "$1")" - buildPhpExtensionIniContent_soFile="$(getModuleFullPath "$1")" - buildPhpExtensionIniContent_result="$(printf '%s=%s' "$buildPhpExtensionIniContent_type" "${buildPhpExtensionIniContent_soFile##$PHP_EXTDIR/}")" - if test -n "${2:-}"; then - buildPhpExtensionIniContent_result="$(printf '%s\n%s' "$buildPhpExtensionIniContent_result" "$2")" - fi - printf '%s' "$buildPhpExtensionIniContent_result" -} - -# Check that a PHP module actually works (better to run this check before enabling the extension) -# -# Arguments: -# $1: the name of the PHP extension -# $2: base name (without path and extension) of additional php.ini configuration (optional) -# $3: additional php.ini configuration (optional) -# -# Return: -# 0 (true): if the string is in the list -# 1 (false): if the string is not in the list -checkModuleWorking() { - if test -n "${2:-}"; then - checkModuleWorking_iniFile="$PHP_INI_DIR/conf.d/$2--temp.ini" - else - checkModuleWorking_iniFile="$PHP_INI_DIR/conf.d/docker-php-ext-$1--temp.ini" - fi - checkModuleWorking_iniContent="$(buildPhpExtensionIniContent "$1" "${3:-}")" - printf 'Check if the %s module can be loaded... ' "$1" - checkModuleWorking_errBefore="$(php -r 'return;' 2>&1 || true)" - printf '%s' "$checkModuleWorking_iniContent" >"$checkModuleWorking_iniFile" - checkModuleWorking_errAfter="$(php -r 'return;' 2>&1 || true)" - rm "$checkModuleWorking_iniFile" - if test "$checkModuleWorking_errAfter" != "$checkModuleWorking_errBefore"; then - printf 'Error loading the "%s" extension:\n%s\n' "$1" "$checkModuleWorking_errAfter" >&2 - return 1 - fi - printf 'ok.\n' - return 0 -} - -# Enable a PHP extension -# -# Arguments: -# $1: the name of the PHP extension to be enabled -# $2: base name (without path and extension) of additional php.ini configuration (optional) -# $3: additional php.ini configuration (optional) -enablePhpExtension() { - if test -n "${2:-}"; then - enablePhpExtension_iniFile="$PHP_INI_DIR/conf.d/$2.ini" - else - enablePhpExtension_iniFile="$PHP_INI_DIR/conf.d/docker-php-ext-$1.ini" - fi - enablePhpExtension_iniContent="$(buildPhpExtensionIniContent "$1" "${3:-}")" - case "${IPE_DONT_ENABLE:-}" in - 1 | y* | Y*) - enablePhpExtension_enableCommand="/usr/local/bin/docker-php-ext-enable-$1" - printf '%s' "$enablePhpExtension_iniContent" >"$enablePhpExtension_iniFile-disabled" - printf '\n' >>"$enablePhpExtension_iniFile-disabled" - cat <"$enablePhpExtension_enableCommand" -#!/bin/sh - -if test -f '$enablePhpExtension_iniFile-disabled'; then - echo 'Enabling extension $1' - mv '$enablePhpExtension_iniFile-disabled' '$enablePhpExtension_iniFile' -else - echo 'The extension $1 has already been enabled' -fi -EOT - chmod +x "$enablePhpExtension_enableCommand" - printf '## Extension %s not enabled.\nYou can enable it by running the following command:\n%s\n\n' "$1" "$(basename "$enablePhpExtension_enableCommand")" - ;; - *) - printf '%s' "$enablePhpExtension_iniContent" >"$enablePhpExtension_iniFile" - printf '\n' >>"$enablePhpExtension_iniFile" - ;; - esac -} - -# Mark the pre-installed APT/APK packages as used -# that way they won't be uninstalled by accident -markPreinstalledPackagesAsUsed() { - printf '### MARKING PRE-INSTALLED PACKAGES AS IN-USE ###\n' - case "$DISTRO" in - alpine) - printf '# Packages: %s\n' "$PACKAGES_PERSISTENT_PRE" - apk add $PACKAGES_PERSISTENT_PRE - ;; - debian) - DEBIAN_FRONTEND=noninteractive apt-mark manual $PACKAGES_PERSISTENT_PRE - ;; - esac -} - -# Install the required APT/APK packages -# -# Arguments: -# $@: the list of APT/APK packages to be installed -installRequiredPackages() { - printf '### INSTALLING REQUIRED PACKAGES ###\n' - printf '# Packages to be kept after installation: %s\n' "$PACKAGES_PERSISTENT_NEW" - printf '# Packages to be used only for installation: %s\n' "$PACKAGES_VOLATILE" - case "$DISTRO" in - alpine) - apk add $IPE_APK_FLAGS $PACKAGES_PERSISTENT_NEW $PACKAGES_VOLATILE - # https://gitlab.alpinelinux.org/alpine/aports/-/issues/12763#note_172090 - # https://github.com/mlocati/docker-php-extension-installer/issues/385 - # https://github.com/mlocati/docker-php-extension-installer/issues/537#issuecomment-1078748882 - for installRequiredPackages_item in wget; do - if test -n "$(expandInstalledSystemPackageName "$installRequiredPackages_item")"; then - apk add --upgrade "$installRequiredPackages_item" - fi - done - ;; - debian) - DEBIAN_FRONTEND=noninteractive apt-get install -qqy --no-install-recommends $IPE_APTGET_INSTALLOPTIONS $PACKAGES_PERSISTENT_NEW $PACKAGES_VOLATILE - ;; - esac -} - -# Get the version of an installed APT/APK package -# -# Arguments: -# $1: the name of the installed package -# -# Output: -# The numeric part of the package version, with from 1 to 3 numbers -# -# Example: -# 1 -# 1.2 -# 1.2.3 -getInstalledPackageVersion() { - case "$DISTRO" in - alpine) - apk info "$1" | head -n1 | cut -c $((${#1} + 2))- | grep -o -E '^[0-9]+(\.[0-9]+){0,2}' - ;; - debian) - dpkg-query --showformat='${Version}' --show "$1" 2>/dev/null | grep -o -E '^[0-9]+(\.[0-9]+){0,2}' - ;; - esac -} - -# Compare two versions -# -# Arguments: -# $1: the first version -# $2: the second version -# -# Output -# -1 if $1 is less than $2 -# 0 if $1 is the same as $2 -# 1 if $1 is greater than $2 -compareVersions() { - compareVersions_v1="$1.0.0" - compareVersions_v2="$2.0.0" - compareVersions_vMin="$(printf '%s\n%s' "$compareVersions_v1" "$compareVersions_v2" | sort -t '.' -n -k1,1 -k2,2 -k3,3 | head -n 1)" - if test "$compareVersions_vMin" != "$compareVersions_v1"; then - echo '1' - elif test "$compareVersions_vMin" = "$compareVersions_v2"; then - echo '0' - else - echo '-1' - fi -} - -# Install Oracle Instant Client & SDK -# -# Set: -# ORACLE_INSTANTCLIENT_LIBPATH -installOracleInstantClient() { - case "${IPE_INSTANTCLIENT_BASIC:-}" in - 1 | y* | Y*) - installOracleInstantClient_handle=basic - ;; - *) - installOracleInstantClient_handle=basiclite - ;; - esac - case $PHP_BITS in - 32) - installOracleInstantClient_client=client - installOracleInstantClient_version='19.9' - installOracleInstantClient_ic=https://download.oracle.com/otn_software/linux/instantclient/199000/instantclient-$installOracleInstantClient_handle-linux-$installOracleInstantClient_version.0.0.0dbru.zip - installOracleInstantClient_sdk=https://download.oracle.com/otn_software/linux/instantclient/199000/instantclient-sdk-linux-$installOracleInstantClient_version.0.0.0dbru.zip - ;; - *) - case $(uname -m) in - aarch64*) - installOracleInstantClient_client=client64 - installOracleInstantClient_version='19.10' - installOracleInstantClient_ic=https://download.oracle.com/otn_software/linux/instantclient/191000/instantclient-$installOracleInstantClient_handle-linux.arm64-$installOracleInstantClient_version.0.0.0dbru.zip - installOracleInstantClient_sdk=https://download.oracle.com/otn_software/linux/instantclient/191000/instantclient-sdk-linux.arm64-$installOracleInstantClient_version.0.0.0dbru.zip - ;; - *) - installOracleInstantClient_client=client64 - installOracleInstantClient_version='21.1' - installOracleInstantClient_ic=https://download.oracle.com/otn_software/linux/instantclient/211000/instantclient-$installOracleInstantClient_handle-linux.x64-$installOracleInstantClient_version.0.0.0.zip - installOracleInstantClient_sdk=https://download.oracle.com/otn_software/linux/instantclient/211000/instantclient-sdk-linux.x64-$installOracleInstantClient_version.0.0.0.zip - ;; - esac - ;; - esac - ORACLE_INSTANTCLIENT_LIBPATH=/usr/lib/oracle/$installOracleInstantClient_version/$installOracleInstantClient_client/lib - if ! test -e "$ORACLE_INSTANTCLIENT_LIBPATH"; then - printf 'Downloading Oracle Instant Client v%s (%s)... ' "$installOracleInstantClient_version" "$installOracleInstantClient_handle" - installOracleInstantClient_src="$(getPackageSource $installOracleInstantClient_ic)" - mkdir -p "/usr/lib/oracle/$installOracleInstantClient_version/$installOracleInstantClient_client" - mv "$installOracleInstantClient_src" "$ORACLE_INSTANTCLIENT_LIBPATH" - echo 'done.' - fi - if ! test -e "$ORACLE_INSTANTCLIENT_LIBPATH/sdk" && ! test -L "$ORACLE_INSTANTCLIENT_LIBPATH/sdk"; then - printf 'Downloading Oracle Instant SDK v%s... ' "$installOracleInstantClient_version" - installOracleInstantClient_src="$(getPackageSource $installOracleInstantClient_sdk)" - ln -sf "$installOracleInstantClient_src/sdk" "$ORACLE_INSTANTCLIENT_LIBPATH/sdk" - UNNEEDED_PACKAGE_LINKS="$UNNEEDED_PACKAGE_LINKS $ORACLE_INSTANTCLIENT_LIBPATH/sdk" - echo 'done.' - fi - case "$DISTRO" in - alpine) - if ! test -e /usr/lib/libresolv.so.2 && test -e /lib/libc.so.6; then - ln -s /lib/libc.so.6 /usr/lib/libresolv.so.2 - fi - installOracleInstantClient_ldconf=/etc/ld-musl-${TARGET_TRIPLET%-alpine-linux-musl}.path - if test -e "$installOracleInstantClient_ldconf"; then - if ! cat "$installOracleInstantClient_ldconf" | grep -q "$ORACLE_INSTANTCLIENT_LIBPATH"; then - cat "$ORACLE_INSTANTCLIENT_LIBPATH" | awk -v suffix=":$ORACLE_INSTANTCLIENT_LIBPATH" '{print NR==1 ? $0suffix : $0}' >"$ORACLE_INSTANTCLIENT_LIBPATH" - fi - else - case $PHP_BITS in - 32) - echo "/lib:/usr/local/lib:/usr/lib:$ORACLE_INSTANTCLIENT_LIBPATH" >"$installOracleInstantClient_ldconf" - ;; - *) - echo "/lib64:/lib:/usr/local/lib:/usr/lib:$ORACLE_INSTANTCLIENT_LIBPATH" >"$installOracleInstantClient_ldconf" - ;; - esac - fi - ;; - debian) - if ! test -e /etc/ld.so.conf.d/oracle-instantclient.conf; then - echo "$ORACLE_INSTANTCLIENT_LIBPATH" >/etc/ld.so.conf.d/oracle-instantclient.conf - ldconfig - fi - ;; - esac -} - -# Check if the Microsoft SQL Server ODBC Driver is installed -# -# Return: -# 0 (true): if the string is in the list -# 1 (false): if the string is not in the list -isMicrosoftSqlServerODBCInstalled() { - test -d /opt/microsoft/msodbcsql*/ -} - -# Install the Microsoft SQL Server ODBC Driver -# see https://learn.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server -installMicrosoftSqlServerODBC() { - printf 'Installing the Microsoft SQL Server ODBC Driver\n' - case "$DISTRO" in - alpine) - rm -rf /tmp/src/msodbcsql.apk - if test $PHP_MAJMIN_VERSION -le 703; then - curl -sSLf -o /tmp/src/msodbcsql.apk https://download.microsoft.com/download/e/4/e/e4e67866-dffd-428c-aac7-8d28ddafb39b/msodbcsql17_17.10.6.1-1_amd64.apk - else - case $(uname -m) in - aarch64 | arm64 | armv8) - installMicrosoftSqlServerODBC_arch=arm64 - ;; - *) - installMicrosoftSqlServerODBC_arch=amd64 - ;; - esac - curl -sSLf -o /tmp/src/msodbcsql.apk https://download.microsoft.com/download/3/5/5/355d7943-a338-41a7-858d-53b259ea33f5/msodbcsql18_18.3.3.1-1_$installMicrosoftSqlServerODBC_arch.apk - fi - printf '\n' | apk add --allow-untrusted /tmp/src/msodbcsql.apk - rm -rf /tmp/src/msodbcsql.apk - ;; - debian) - printf -- '- installing the Microsoft APT key\n' - if test $DISTRO_VERSION_NUMBER -eq 11; then - curl -sSLf -o /etc/apt/trusted.gpg.d/microsoft.asc https://packages.microsoft.com/keys/microsoft.asc - elif test $DISTRO_VERSION_NUMBER -ge 12; then - curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor --yes --output /usr/share/keyrings/microsoft-prod.gpg - else - # apt-key is deprecated - curl -sSLf https://packages.microsoft.com/keys/microsoft.asc | apt-key add - - fi - if ! test -f /etc/apt/sources.list.d/mssql-release.list; then - printf -- '- adding the Microsoft APT source list\n' - curl -sSLf https://packages.microsoft.com/config/debian/$DISTRO_VERSION_NUMBER/prod.list >/etc/apt/sources.list.d/mssql-release.list - invokeAptGetUpdate - fi - printf -- '- installing the APT package\n' - if test $PHP_MAJMIN_VERSION -le 703; then - DEBIAN_FRONTEND=noninteractive ACCEPT_EULA=Y apt-get install -qqy --no-install-recommends $IPE_APTGET_INSTALLOPTIONS msodbcsql17 - elif test $DISTRO_VERSION_NUMBER -ge 9 && test $DISTRO_VERSION_NUMBER -le 12; then - # On Debian 9 to 12 we have both msodbcsql17 and msodbcsql18: let's install just one - DEBIAN_FRONTEND=noninteractive ACCEPT_EULA=Y apt-get install -qqy --no-install-recommends $IPE_APTGET_INSTALLOPTIONS msodbcsql18 - else - DEBIAN_FRONTEND=noninteractive ACCEPT_EULA=Y apt-get install -qqy --no-install-recommends $IPE_APTGET_INSTALLOPTIONS '^msodbcsql[0-9]+$' - fi - ;; - esac -} - -# Check if libaom is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibaomInstalled() { - if ! test -f /usr/local/lib/libaom.so && ! test -f /usr/lib/libaom.so && ! test -f /usr/lib/x86_64*/libaom.so; then - return 1 - fi - if ! test -f /usr/local/include/aom/aom_codec.h && ! test -f /usr/include/aom/aom_codec.h; then - return 1 - fi - return 0 -} - -# Install libaom -installLibaom() { - printf 'Installing libaom\n' - installLibaom_version=3.8.1 - case "$DISTRO_VERSION" in - debian@10) - case $(uname -m) in - aarch* | arm*) - #see https://bugs.chromium.org/p/aomedia/issues/detail?id=3543 - installLibaom_version=3.5.0 - ;; - esac - ;; - esac - installLibaom_dir="$(getPackageSource https://aomedia.googlesource.com/aom/+archive/v$installLibaom_version.tar.gz)" - mkdir -- "$installLibaom_dir/my.build" - cd -- "$installLibaom_dir/my.build" - cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=1 -DENABLE_DOCS=0 -DENABLE_EXAMPLES=0 -DENABLE_TESTDATA=0 -DENABLE_TESTS=0 -DENABLE_TOOLS=0 -DCMAKE_INSTALL_LIBDIR:PATH=lib .. - ninja -j $(getProcessorCount) install - cd - >/dev/null - ldconfig || true -} - -# Check if libdav1d is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibdav1dInstalled() { - if ! test -f /usr/local/lib/libdav1d.so && ! test -f /usr/lib/libdav1d.so && ! test -f /usr/lib/x86_64*/libdav1d.so; then - return 1 - fi - if ! test -f /usr/local/include/dav1d/dav1d.h && ! test -f /usr/include/dav1d/dav1d.h; then - return 1 - fi - return 0 -} - -# Install libdav1d -installLibdav1d() { - printf 'Installing libdav1d\n' - installLibdav1d_dir="$(getPackageSource https://github.com/videolan/dav1d/archive/refs/tags/1.3.0.tar.gz)" - mkdir -- "$installLibdav1d_dir/build" - cd -- "$installLibdav1d_dir/build" - meson --buildtype release -Dprefix=/usr .. - ninja -j $(getProcessorCount) install - cd - >/dev/null - if test -f /usr/lib/$TARGET_TRIPLET/libdav1d.so && ! test -f /usr/lib/libdav1d.so; then - ln -s /usr/lib/$TARGET_TRIPLET/libdav1d.so /usr/lib/ - fi - ldconfig || true -} - -# Check if libyuv is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibyuvInstalled() { - if ! test -f /usr/local/lib/libyuv.so && ! test -f /usr/lib/libyuv.so && ! test -f /usr/lib/x86_64*/libyuv.so && ! test -f /usr/lib/x86_64*/libyuv.so.*; then - return 1 - fi - if ! test -f /usr/local/include/libyuv.h && ! test -f /usr/include/libyuv.h; then - return 1 - fi - return 0 -} - -# Install libyuv -installLibyuv() { - printf 'Installing libyuv\n' - installLibyuv_dir="$(getPackageSource https://chromium.googlesource.com/libyuv/libyuv/+archive/d359a9f922af840b043535d43cf9d38b220d102e.tar.gz)" - mkdir -- "$installLibyuv_dir/build" - cd -- "$installLibyuv_dir/build" - cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr -B. .. - make -j$(getProcessorCount) install - cd - >/dev/null -} - -# Check if libavif is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibavifInstalled() { - if ! test -f /usr/local/lib/libavif.so && ! test -f /usr/lib/libavif.so && ! test -f /usr/lib/x86_64*/libavif.so; then - return 1 - fi - if ! test -f /usr/local/include/avif/avif.h && ! test -f /usr/include/avif/avif.h; then - return 1 - fi - return 0 -} - -# Install libavif -installLibavif() { - printf 'Installing libavif\n' - installLibavif_dir="$(getPackageSource https://codeload.github.com/AOMediaCodec/libavif/tar.gz/refs/tags/v1.0.3)" - mkdir -- "$installLibavif_dir/build" - cd -- "$installLibavif_dir/build" - cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON -DAVIF_CODEC_AOM=ON -DCMAKE_INSTALL_LIBDIR:PATH=lib - make -j$(getProcessorCount) install - cd - >/dev/null -} - -# Install libmpdec -installLibMPDec() { - installLibMPDec_src="$(getPackageSource https://www.bytereef.org/software/mpdecimal/releases/mpdecimal-2.5.1.tar.gz)" - cd -- "$installLibMPDec_src" - ./configure --disable-cxx - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -# Check if libdatrie is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibDatrieInstalled() { - if ! test -f /usr/local/lib/libdatrie.so && ! test -f /usr/lib/libdatrie.so && ! test -f /usr/lib/x86_64*/libdatrie.so; then - return 1 - fi - if ! test -f /usr/local/include/datrie/trie.h && ! test -f /usr/include/datrie/trie.h; then - return 1 - fi - return 0 -} - -# Install libdatrie -installLibDatrie() { - printf 'Installing libdatrie\n' - installLibDatrie_src="$(getPackageSource https://github.com/tlwg/libdatrie/releases/download/v0.2.13/libdatrie-0.2.13.tar.xz)" - cd -- "$installLibDatrie_src" - ./configure - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -# Check if libdatrie is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibThaiInstalled() { - return 1 - if ! test -f /usr/local/lib/libthai.so && ! test -f /usr/lib/libthai.so && ! test -f /usr/lib/x86_64*/libthai.so; then - return 1 - fi - if ! test -f /usr/local/include/thai/thailib.h && ! test -f /usr/include/thai/thailib.h; then - return 1 - fi - return 0 -} - -# Install libdatrie -installLibThai() { - printf 'Installing libthai\n' - installLibThai_src="$(getPackageSource https://github.com/tlwg/libthai/releases/download/v0.1.29/libthai-0.1.29.tar.xz)" - cd -- "$installLibThai_src" - ./configure - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -# Install Composer -installComposer() { - installComposer_version="$(getWantedPHPModuleVersion @composer)" - installComposer_version="${installComposer_version#^}" - if test -z "$installComposer_version"; then - installComposer_fullname=composer - installComposer_flags='' - else - installComposer_fullname="$(printf 'composer v%s' "$installComposer_version")" - if printf '%s' "$installComposer_version" | grep -Eq '^[0-9]+$'; then - installComposer_flags="--$installComposer_version" - else - installComposer_flags="--version=$installComposer_version" - fi - fi - printf '### INSTALLING %s ###\n' "$installComposer_fullname" - actuallyInstallComposer /usr/local/bin composer "$installComposer_flags" -} - -# Actually install composer -# -# Arguments: -# $1: the directory where composer should be installed (required) -# $2: the composer filename (optional, default: composer) -# $3. additional flags for the composer installed (optional) -actuallyInstallComposer() { - actuallyInstallComposer_installer="$(mktemp -p /tmp/src)" - curl -sSLf -o "$actuallyInstallComposer_installer" https://getcomposer.org/installer - actuallyInstallComposer_expectedSignature="$(curl -sSLf https://composer.github.io/installer.sig)" - actuallyInstallComposer_actualSignature="$(php -n -r "echo hash_file('sha384', '$actuallyInstallComposer_installer');")" - if test "$actuallyInstallComposer_expectedSignature" != "$actuallyInstallComposer_actualSignature"; then - printf 'Verification of composer installer failed!\nExpected signature: %s\nActual signature: %s\n' "$actuallyInstallComposer_expectedSignature" "$actuallyInstallComposer_actualSignature" >&2 - exit 1 - fi - actuallyInstallComposer_flags="--install-dir=$1" - if test -n "${2:-}"; then - actuallyInstallComposer_flags="$actuallyInstallComposer_flags --filename=$2" - else - actuallyInstallComposer_flags="$actuallyInstallComposer_flags --filename=composer" - fi - if test -n "${3:-}"; then - actuallyInstallComposer_flags="$actuallyInstallComposer_flags $3" - fi - php "$actuallyInstallComposer_installer" $actuallyInstallComposer_flags - rm -- "$actuallyInstallComposer_installer" -} - -# Install ionCube Loader -installIonCubeLoader() { - # See https://www.ioncube.com/loaders.php - case $PHP_BITS in - 32) - case $(uname -m) in - aarch* | arm*) - installIonCubeLoader_url="https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_armv7l.tar.gz" - ;; - *) - installIonCubeLoader_url="https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86.tar.gz" - ;; - esac - ;; - *) - case $(uname -m) in - aarch64 | arm64 | armv8) - installIonCubeLoader_url="https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_aarch64.tar.gz" - ;; - *) - installIonCubeLoader_url="https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz" - ;; - esac - ;; - esac - printf 'Downloading ionCube Loader... ' - installIonCubeLoader_dir="$(getPackageSource $installIonCubeLoader_url)" - echo 'done.' - installIonCubeLoader_so=$(php -r "printf('ioncube_loader_lin_%s.%s%s.so', PHP_MAJOR_VERSION, PHP_MINOR_VERSION, ZEND_THREAD_SAFE ? '_ts' : '');") - cp "$installIonCubeLoader_dir/$installIonCubeLoader_so" "$(getPHPExtensionsDir)/ioncube_loader.so" -} - -# Install SourceGuardian Loader -installSourceGuardian() { - # See https://www.sourceguardian.com/loaders.html - case $PHP_BITS in - 32) - installSourceGuardian_url=https://www.sourceguardian.com/loaders/download/loaders.linux-i386.tar.gz - ;; - *) - case $(uname -m) in - aarch64 | arm64 | armv8) - installSourceGuardian_url=https://www.sourceguardian.com/loaders/download/loaders.linux-aarch64.tar.gz - ;; - *) - installSourceGuardian_url=https://www.sourceguardian.com/loaders/download/loaders.linux-x86_64.tar.gz - ;; - esac - ;; - esac - printf 'Downloading SourceGuardian... ' - installSourceGuardian_dir="$(getPackageSource $installSourceGuardian_url)" - printf 'done (version: %s)\n' "$(cat "$installSourceGuardian_dir/version")" - for installSourceGuardian_phpv in $PHP_MAJDOTMINDOTPAT_VERSION $PHP_MAJDOTMIN_VERSION; do - installSourceGuardian_file="$installSourceGuardian_dir/ixed.$PHP_MAJDOTMIN_VERSION" - if test $PHP_THREADSAFE -eq 1; then - installSourceGuardian_file="${installSourceGuardian_file}ts" - fi - installSourceGuardian_file="${installSourceGuardian_file}.lin" - if test -f "$installSourceGuardian_file"; then - mv "$installSourceGuardian_file" "$(getPHPExtensionsDir)/sourceguardian.so" - return - fi - done - printf 'Unable to find a SourceGuardian compatible with PHP %s or PHP %s.\nAvailable SourceGuardian versions:\n' "$PHP_MAJDOTMINDOTPAT_VERSION" "$PHP_MAJDOTMIN_VERSION" >&2 - ls -1 "$installSourceGuardian_dir" | grep -E '^ixed\..*\.lin$' | sed -E 's/^[^0-9]+([0-9]+(\.[0-9]+)*).*$/\1/' | sort | uniq >&2 - exit 1 -} - -# Install Cargo (if not yet installed) -installCargo() { - if command -v cargo >/dev/null; then - return - fi - printf '# Installing cargo\n' - case "$DISTRO" in - alpine) - # see https://github.com/hyperledger/indy-vdr/issues/69#issuecomment-998104850 - export RUSTFLAGS='-C target-feature=-crt-static' - ;; - esac - curl https://sh.rustup.rs -sSf | sh -s -- -y -q - . "$HOME/.cargo/env" - if test -z "${IPE_UNINSTALL_CARGO:-}"; then - IPE_UNINSTALL_CARGO=y - fi -} - -installNewRelic() { - printf '# Installing newrelic\n' - installNewRelic_search='\bnewrelic-php[0-9.]*-[0-9]+(\.[0-9]+)*-linux' - case "$DISTRO" in - alpine) - installNewRelic_search="$installNewRelic_search-musl" - ;; - esac - installNewRelic_file="$(curl -sSLf -o- https://download.newrelic.com/php_agent/release/ | sed -E 's/<[^>]*>//g' | grep -Eo "$installNewRelic_search.tar.gz" | sort | head -1)" - installNewRelic_url="https://download.newrelic.com/php_agent/release/$installNewRelic_file" - installNewRelic_src="$(getPackageSource "$installNewRelic_url")" - cd -- "$installNewRelic_src" - NR_INSTALL_USE_CP_NOT_LN=1 NR_INSTALL_SILENT=1 ./newrelic-install install - case "${IPE_NEWRELIC_DAEMON:-}" in - 1 | y* | Y*) - NR_INSTALL_USE_CP_NOT_LN=1 NR_INSTALL_SILENT=1 ./newrelic-install install_daemon - ;; - esac - cd - >/dev/null - cat <&2 - fi - if test -n "$(getModuleSourceCodePath "$1")"; then - printf '### WARNING the module "%s" is bundled with PHP, you can NOT specify a source code path for it\n' "$1" >&2 - fi - case "$1" in - dba) - if test -e /usr/lib/$TARGET_TRIPLET/libdb-5.3.so && ! test -e /usr/lib/libdb-5.3.so; then - ln -s /usr/lib/$TARGET_TRIPLET/libdb-5.3.so /usr/lib/ - fi - if test $PHP_MAJMIN_VERSION -le 505; then - docker-php-source extract - patch /usr/src/php/ext/dba/config.m4 </dev/null - fi - ;; - ftp) - docker-php-ext-configure ftp --with-openssl-dir=/usr - ;; - gd) - if test $PHP_MAJMIN_VERSION -le 506; then - docker-php-ext-configure gd --with-gd --with-jpeg-dir --with-png-dir --with-zlib-dir --with-xpm-dir --with-freetype-dir --enable-gd-native-ttf --with-vpx-dir - elif test $PHP_MAJMIN_VERSION -le 701; then - docker-php-ext-configure gd --with-gd --with-jpeg-dir --with-png-dir --with-zlib-dir --with-xpm-dir --with-freetype-dir --enable-gd-native-ttf --with-webp-dir - elif test $PHP_MAJMIN_VERSION -le 703; then - docker-php-ext-configure gd --with-gd --with-jpeg-dir --with-png-dir --with-zlib-dir --with-xpm-dir --with-freetype-dir --with-webp-dir - elif test $PHP_MAJMIN_VERSION -le 800; then - docker-php-ext-configure gd --enable-gd --with-webp --with-jpeg --with-xpm --with-freetype - else - installBundledModule_tmp=0 - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -ge 315; then - installBundledModule_tmp=1 - fi - ;; - debian) - if test $DISTRO_VERSION_NUMBER -ge 12; then - installBundledModule_tmp=1 - fi - ;; - esac - if test $installBundledModule_tmp -eq 0; then - case "${IPE_GD_WITHOUTAVIF:-}" in - 1 | y* | Y*) ;; - *) - if ! isLibaomInstalled; then - installLibaom - fi - if ! isLibdav1dInstalled; then - installLibdav1d - fi - if ! isLibyuvInstalled; then - installLibyuv - fi - if ! isLibavifInstalled; then - installLibavif - fi - ;; - esac - if isLibaomInstalled && isLibdav1dInstalled && isLibyuvInstalled && isLibavifInstalled; then - installBundledModule_tmp=1 - fi - fi - if test $installBundledModule_tmp -eq 1; then - docker-php-ext-configure gd --enable-gd --with-webp --with-jpeg --with-xpm --with-freetype --with-avif - else - docker-php-ext-configure gd --enable-gd --with-webp --with-jpeg --with-xpm --with-freetype - fi - fi - ;; - gmp) - if test $PHP_MAJMIN_VERSION -le 506; then - if ! test -f /usr/include/gmp.h; then - ln -s /usr/include/$TARGET_TRIPLET/gmp.h /usr/include/gmp.h - UNNEEDED_PACKAGE_LINKS="$UNNEEDED_PACKAGE_LINKS /usr/include/gmp.h" - fi - fi - ;; - imap) - case "$DISTRO_VERSION" in - debian@9) - installBundledModule_tmp="$(pwd)" - cd /tmp - apt-get download $IPE_APTGET_INSTALLOPTIONS libc-client2007e-dev - dpkg -i --ignore-depends=libssl-dev libc-client2007e-dev* - rm libc-client2007e-dev* - cd "$installBundledModule_tmp" - ;; - esac - PHP_OPENSSL=yes docker-php-ext-configure imap --with-kerberos --with-imap-ssl - ;; - interbase | pdo_firebird) - case "$DISTRO" in - alpine) - if ! test -d /tmp/src/firebird; then - mv "$(getPackageSource https://github.com/FirebirdSQL/firebird/releases/download/R2_5_9/Firebird-2.5.9.27139-0.tar.bz2)" /tmp/src/firebird - cd /tmp/src/firebird - # Patch rwlock.h (this has been fixed in later release of firebird 3.x) - sed -i '194s/.*/#if 0/' src/common/classes/rwlock.h - ./configure --with-system-icu - # -j option can't be used: make targets must be compiled sequentially - make -s btyacc_binary gpre_boot libfbstatic libfbclient - cp gen/firebird/lib/libfbclient.so /usr/lib/ - ln -s /usr/lib/libfbclient.so /usr/lib/libfbclient.so.2 - cd - >/dev/null - fi - CFLAGS='-I/tmp/src/firebird/src/jrd -I/tmp/src/firebird/src/include -I/tmp/src/firebird/src/include/gen' docker-php-ext-configure $1 - ;; - esac - ;; - ldap) - case "$DISTRO" in - debian) - docker-php-ext-configure ldap --with-libdir=lib/$TARGET_TRIPLET - ;; - esac - ;; - mssql | pdo_dblib) - if ! test -f /usr/lib/libsybdb.so; then - ln -s /usr/lib/$TARGET_TRIPLET/libsybdb.so /usr/lib/libsybdb.so - UNNEEDED_PACKAGE_LINKS="$UNNEEDED_PACKAGE_LINKS /usr/lib/libsybdb.so" - fi - ;; - odbc) - docker-php-source extract - cd /usr/src/php/ext/odbc - phpize - sed -ri 's@^ *test +"\$PHP_.*" *= *"no" *&& *PHP_.*=yes *$@#&@g' configure - ./configure --with-unixODBC=shared,/usr - cd - >/dev/null - ;; - oci8 | pdo_oci) - installOracleInstantClient - if test "$1" = oci8; then - docker-php-ext-configure "$1" "--with-oci8=instantclient,$ORACLE_INSTANTCLIENT_LIBPATH" - elif test "$1" = pdo_oci; then - docker-php-ext-configure "$1" "--with-pdo-oci=instantclient,$ORACLE_INSTANTCLIENT_LIBPATH" - fi - ;; - pdo_odbc) - docker-php-ext-configure pdo_odbc --with-pdo-odbc=unixODBC,/usr - ;; - snmp) - case "$DISTRO" in - alpine) - mkdir -p -m 0755 /var/lib/net-snmp/mib_indexes - ;; - esac - ;; - sockets) - case "$PHP_MAJDOTMINDOTPAT_VERSION" in - 8.0.15 | 8.1.2) - sed -i '70 i #ifndef _GNU_SOURCE' /usr/src/php/ext/sockets/config.m4 - sed -i '71 i #define _GNU_SOURCE' /usr/src/php/ext/sockets/config.m4 - sed -i '72 i #endif' /usr/src/php/ext/sockets/config.m4 - ;; - esac - ;; - sybase_ct) - docker-php-ext-configure sybase_ct --with-sybase-ct=/usr - ;; - tidy) - case "$DISTRO" in - alpine) - if ! test -f /usr/include/buffio.h; then - ln -s /usr/include/tidybuffio.h /usr/include/buffio.h - UNNEEDED_PACKAGE_LINKS="$UNNEEDED_PACKAGE_LINKS /usr/include/buffio.h" - fi - ;; - esac - ;; - zip) - if test $PHP_MAJMIN_VERSION -le 505; then - docker-php-ext-configure zip - elif test $PHP_MAJMIN_VERSION -le 703; then - docker-php-ext-configure zip --with-libzip - else - docker-php-ext-configure zip --with-zip - fi - ;; - esac - installBundledModule_errBefore="$(php -r 'return;' 2>&1 || true)" - docker-php-ext-install -j$(getProcessorCount) "$1" - case "$1" in - imap) - case "$DISTRO_VERSION" in - debian@9) - dpkg -r libc-client2007e-dev - ;; - esac - ;; - esac - case "${IPE_SKIP_CHECK:-}" in - 1 | y* | Y*) ;; - *) - php -r 'return;' >/dev/null 2>/dev/null || true - installBundledModule_errAfter="$(php -r 'return;' 2>&1 || true)" - if test "$installBundledModule_errAfter" != "$installBundledModule_errBefore"; then - printf 'PHP has problems after installing the "%s" extension:\n%s\n' "$1" "$installBundledModule_errAfter" >&2 - rm "$PHP_INI_DIR/conf.d/docker-php-ext-$1.ini" || true - return 1 - fi - ;; - esac -} - -# Fetch a tar.gz file, extract it and returns the path of the extracted folder. -# -# Arguments: -# $1: the URL of the file to be downloaded -# -# Output: -# The path of the extracted directory -getPackageSource() { - mkdir -p /tmp/src - getPackageSource_tempFile=$(mktemp -p /tmp/src) - curl -sSLf -o "$getPackageSource_tempFile" "$1" - getPackageSource_tempDir=$(mktemp -p /tmp/src -d) - cd "$getPackageSource_tempDir" - tar -xzf "$getPackageSource_tempFile" 2>/dev/null || tar -xf "$getPackageSource_tempFile" 2>/dev/null || ( - if command -v bsdtar >/dev/null; then - bsdtar -xf "$getPackageSource_tempFile" - else - unzip -q "$getPackageSource_tempFile" - fi - ) - cd - >/dev/null - unlink "$getPackageSource_tempFile" - getPackageSource_outDir='' - for getPackageSource_i in $(ls "$getPackageSource_tempDir"); do - if test -n "$getPackageSource_outDir" || test -f "$getPackageSource_tempDir/$getPackageSource_i"; then - getPackageSource_outDir='' - break - fi - getPackageSource_outDir="$getPackageSource_tempDir/$getPackageSource_i" - done - if test -n "$getPackageSource_outDir"; then - printf '%s' "$getPackageSource_outDir" - else - printf '%s' "$getPackageSource_tempDir" - fi -} - -# Install a PECL/remote PHP module given its handle -# -# Arguments: -# $1: the handle of the PHP module -installRemoteModule() { - installRemoteModule_module="$1" - printf '### INSTALLING REMOTE MODULE %s ###\n' "$installRemoteModule_module" - installRemoteModule_version="$(resolvePHPModuleVersion "$installRemoteModule_module")" - installRemoteModule_path="$(getModuleSourceCodePath "$installRemoteModule_module")" - rm -rf "$CONFIGURE_FILE" - installRemoteModule_manuallyInstalled=0 - installRemoteModule_cppflags='' - installRemoteModule_ini_basename='' - installRemoteModule_ini_extra='' - case "$installRemoteModule_module" in - amqp) - if test -z "$installRemoteModule_version"; then - if test "$DISTRO_VERSION" = debian@8; then - # in Debian Jessie we have librabbitmq version 0.5.2 - installRemoteModule_version=1.9.3 - elif test $PHP_MAJMIN_VERSION -le 505; then - installRemoteModule_version=1.9.4 - elif test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=1.11.0 - fi - fi - ;; - apcu) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=4.0.11 - fi - fi - ;; - apcu_bc) - # apcu_bc must be loaded after apcu - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - ;; - ast) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=1.0.16 - fi - fi - ;; - bitset) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.0.4 - fi - fi - ;; - blackfire) - case $(uname -m) in - i386 | i686 | x86) - installRemoteModule_tmp1=i386 - ;; - aarch64 | arm64 | armv8) - installRemoteModule_tmp1=arm64 - ;; - *) - installRemoteModule_tmp1=amd64 - ;; - esac - case $DISTRO in - alpine) - installRemoteModule_distro=alpine - ;; - *) - installRemoteModule_distro=linux - ;; - esac - installRemoteModule_tmp2=$(php -r 'echo PHP_MAJOR_VERSION . PHP_MINOR_VERSION;') - installRemoteModule_tmp="$(mktemp -p /tmp/src -d)" - cd "$installRemoteModule_tmp" - curl -sSLf --user-agent Docker https://blackfire.io/api/v1/releases/probe/php/$installRemoteModule_distro/$installRemoteModule_tmp1/$installRemoteModule_tmp2 | tar xz - mv blackfire-*.so $(getPHPExtensionsDir)/blackfire.so - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - installRemoteModule_ini_extra="$(printf '%sblackfire.agent_socket=tcp://blackfire:8307\n' "$installRemoteModule_ini_extra")" - ;; - cassandra) - installRemoteModule_src="$(getPackageSource https://github.com/nano-interactive/ext-cassandra/tarball/1cf12c5ce49ed43a2c449bee4b7b23ce02a37bf0)" - cd "$installRemoteModule_src/ext" - phpize - ./configure - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - ;; - cmark) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=1.1.0 - fi - fi - if ! test -e /usr/local/lib/libcmark.so && ! test -e /usr/local/lib64/libcmark.so && ! test -e /usr/lib/libcmark.so && ! test -e /usr/lib64/libcmark.so && ! test -e /lib/libcmark.so; then - if test $(compareVersions "$(cmake --version | head -n1 | sed -E 's/^.* //')" '3.7') -lt 0; then - installRemoteModule_tmp=0.29.0 - else - installRemoteModule_tmp=0.31.0 - fi - cd "$(getPackageSource https://github.com/commonmark/cmark/archive/$installRemoteModule_tmp.tar.gz)" - make -s -j$(getProcessorCount) cmake_build - make -s -j$(getProcessorCount) install - cd - >/dev/null - case "$DISTRO" in - alpine) - if test -e /usr/local/lib64/libcmark.so.$installRemoteModule_tmp && ! test -e /usr/local/lib/libcmark.so.$installRemoteModule_tmp; then - ln -s /usr/local/lib64/libcmark.so.$installRemoteModule_tmp /usr/local/lib/ - fi - ;; - *) - ldconfig || true - ;; - esac - fi - ;; - csv) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=0.3.1 - fi - fi - ;; - ddtrace) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=0.75.0 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 0.75.0) -ge 0; then - installCargo - fi - ;; - decimal) - case "$DISTRO" in - alpine) - if ! test -f /usr/local/lib/libmpdec.so; then - installLibMPDec - fi - ;; - debian) - if test $DISTRO_MAJMIN_VERSION -ge 1200; then - if test -z "$(ldconfig -p | grep -E '\slibmpdec.so\s')"; then - installLibMPDec - fi - fi - ;; - esac - ;; - ds) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 703; then - installRemoteModule_version=1.3.0 - elif test $PHP_MAJMIN_VERSION -lt 704; then - installRemoteModule_version=1.4.0 - fi - fi - ;; - ecma_intl) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=alpha - fi - ;; - event) - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 2.4.0) -ge 0; then - # Enable internal debugging in Event - addConfigureOption enable-event-debug no - # Enable sockets support in Event - if php --ri sockets >/dev/null 2>/dev/null; then - addConfigureOption enable-event-sockets yes - else - addConfigureOption enable-event-sockets no - fi - # libevent installation prefix - addConfigureOption with-event-libevent-dir /usr - # Include libevent's pthreads library and enable thread safety support in Event - addConfigureOption with-event-pthreads yes - # Include libevent protocol-specific functionality support including HTTP, DNS, and RPC - addConfigureOption with-event-extra yes - # Include libevent OpenSSL support - addConfigureOption with-event-openssl yes - # PHP Namespace for all Event classes - if test -n "${IPE_EVENT_NAMESPACE:-}"; then - addConfigureOption with-event-ns "$IPE_EVENT_NAMESPACE" - else - addConfigureOption with-event-ns no - fi - # openssl installation prefix - addConfigureOption with-openssl-dir yes - elif test $(compareVersions "$installRemoteModule_version" 1.7.6) -ge 0; then - # Enable internal debugging in Event - addConfigureOption enable-event-debug no - # Enable sockets support in Event - if php --ri sockets >/dev/null 2>/dev/null; then - addConfigureOption enable-event-sockets yes - else - addConfigureOption enable-event-sockets no - fi - # libevent installation prefix - addConfigureOption with-event-libevent-dir /usr - # Include libevent's pthreads library and enable thread safety support in Event - addConfigureOption with-event-pthreads yes - # Include libevent protocol-specific functionality support including HTTP, DNS, and RPC - addConfigureOption with-event-extra yes - # Include libevent OpenSSL support - addConfigureOption with-event-openssl yes - # openssl installation prefix - addConfigureOption with-openssl-dir no - elif test $(compareVersions "$installRemoteModule_version" 1.3.0) -ge 0; then - # Enable internal debugging in event - addConfigureOption enable-event-debug no - # libevent installation prefix - addConfigureOption with-event-libevent-dir /usr - # Include libevent's pthreads library and enable thread safety support in event - addConfigureOption with-event-pthreads yes - # Include libevent protocol-specific functionality support including HTTP, DNS, and RPC - addConfigureOption with-event-extra yes - # Include libevent OpenSSL support - addConfigureOption with-event-openssl yes - # openssl installation prefix - addConfigureOption with-openssl-dir no - fi - # event must be loaded after sockets - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - ;; - gearman) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.1.2 - fi - fi - case "$DISTRO" in - alpine) - if ! test -e /usr/local/include/libgearman/gearman.h || ! test -e /usr/local/lib/libgearman.so; then - installRemoteModule_src="$(getPackageSource https://github.com/gearman/gearmand/releases/download/1.1.21/gearmand-1.1.21.tar.gz)" - cd -- "$installRemoteModule_src" - ./configure - make -j$(getProcessorCount) install-binPROGRAMS - make -j$(getProcessorCount) install-nobase_includeHEADERS - cd - >/dev/null - fi - ;; - esac - ;; - geoip) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=beta - fi - ;; - geos) - if test -z "$installRemoteModule_path"; then - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=0def35611f773c951432f1f06a155471a5cb7611 - fi - installRemoteModule_src="$(getPackageSource https://git.osgeo.org/gitea/geos/php-geos/archive/$installRemoteModule_version.tar.gz)" - cd "$installRemoteModule_src" - ./autogen.sh - ./configure - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - fi - ;; - geospatial) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.2.1 - else - installRemoteModule_version=beta - fi - fi - ;; - gmagick) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.1.7RC3 - else - installRemoteModule_version=beta - fi - fi - ;; - grpc) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.33.1 - else - case "$DISTRO_VERSION" in - debian@8) - installRemoteModule_version=1.46.3 - ;; - alpine@3.7 | alpine@3.8 | debian@9) # With newer version: "This package requires GCC 7 or higher" - installRemoteModule_version=1.52.1 - ;; - esac - fi - fi - if test -z "$installRemoteModule_version" || test "$installRemoteModule_version" = 1.35.0; then - case "$DISTRO_VERSION" in - alpine@3.13) - installRemoteModule_cppflags='-Wno-maybe-uninitialized' - ;; - esac - fi - ;; - http) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.6.0 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=3.2.4 - fi - fi - if test $PHP_MAJMIN_VERSION -ge 700; then - if ! test -e /usr/local/lib/libidnkit.so; then - installRemoteModule_src="$(getPackageSource https://jprs.co.jp/idn/idnkit-2.3.tar.bz2)" - cd -- "$installRemoteModule_src" - ./configure - make -j$(getProcessorCount) install - cd - >/dev/null - fi - fi - # http must be loaded after raphf and propro - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - ;; - igbinary) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.0.8 - fi - fi - ;; - imap) - # Include Kerberos Support - addConfigureOption with-kerberos yes - # Include SSL Support - addConfigureOption with-imap-ssl yes - ;; - inotify) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.1.6 - fi - fi - ;; - ion) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=alpha - fi - if ! test -f /usr/local/lib/libionc.so || ! test -f /usr/local/include/ionc/ion.h; then - echo 'Installing ion-c... ' - installRemoteModule_src="$(mktemp -p /tmp/src -d)" - git clone -q -c advice.detachedHead=false --depth 1 --branch v1.1.2 https://github.com/amzn/ion-c.git "$installRemoteModule_src/ion" - ( - cd "$installRemoteModule_src/ion" - git submodule init -q - git submodule update -q - mkdir -p build - cd build - cmake -DCMAKE_BUILD_TYPE=Release .. -Wno-dev - make clean - make -j$(getProcessorCount) install - ) - rm -rf "$installRemoteModule_src" - fi - addConfigureOption with-ion "shared,/usr/local" - ;; - ioncube_loader) - installIonCubeLoader - installRemoteModule_manuallyInstalled=1 - ;; - jsmin) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=2.0.1 - fi - fi - ;; - jsonpath) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 800; then - installRemoteModule_version=1.0.1 - fi - fi - ;; - luasandbox) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 702; then - installRemoteModule_version=3.0.3 - fi - fi - ;; - lz4) - if test -z "$installRemoteModule_path"; then - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=0.4.3 - fi - installRemoteModule_src="$(getPackageSource https://github.com/kjdev/php-ext-lz4/archive/refs/tags/$installRemoteModule_version.tar.gz)" - cd "$installRemoteModule_src" - phpize - ./configure --with-lz4-includedir=/usr - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - fi - ;; - lzf) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 702; then - installRemoteModule_version=1.6.8 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" '1.5.0') -ge 0; then - # Sacrifice speed in favour of compression ratio? - case "${IPE_LZF_BETTERCOMPRESSION:-}" in - 1 | y* | Y*) - addConfigureOption 'enable-lzf-better-compression' 'yes' - ;; - *) - addConfigureOption 'enable-lzf-better-compression' 'no' - ;; - esac - fi - ;; - mailparse) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.1.6 - elif test $PHP_MAJMIN_VERSION -le 702; then - installRemoteModule_version=3.1.3 - fi - fi - ;; - memcache) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.2.7 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=4.0.5.2 - fi - fi - ;; - memcached) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.2.0 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - # Set the path to libmemcached install prefix - addConfigureOption 'with-libmemcached-dir' 'no' - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" '3.0.0') -ge 0; then - # Set the path to ZLIB install prefix - addConfigureOption 'with-zlib-dir' 'no' - # Use system FastLZ library - addConfigureOption 'with-system-fastlz' 'no' - # Enable memcached igbinary serializer support - if php --ri igbinary >/dev/null 2>/dev/null; then - addConfigureOption 'enable-memcached-igbinary' 'yes' - else - addConfigureOption 'enable-memcached-igbinary' 'no' - fi - # Enable memcached msgpack serializer support - if php --ri msgpack >/dev/null 2>/dev/null; then - addConfigureOption 'enable-memcached-msgpack' 'yes' - else - addConfigureOption 'enable-memcached-msgpack' 'no' - fi - # Enable memcached json serializer support - addConfigureOption 'enable-memcached-json' 'yes' - # Enable memcached protocol support - addConfigureOption 'enable-memcached-protocol' 'no' # https://github.com/php-memcached-dev/php-memcached/issues/418#issuecomment-449587972 - # Enable memcached sasl support - addConfigureOption 'enable-memcached-sasl' 'yes' - # Enable memcached session handler support - addConfigureOption 'enable-memcached-session' 'yes' - fi - # memcached must be loaded after msgpack - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - ;; - memprof) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.0.0 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=2.1.0 - fi - fi - ;; - mongo) - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" '1.5.0') -ge 0; then - # Build with Cyrus SASL (MongoDB Enterprise Authentication) support? - addConfigureOption '-with-mongo-sasl' 'yes' - fi - ;; - mongodb) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 505; then - installRemoteModule_version=1.5.5 - elif test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.7.5 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=1.9.2 - elif test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=1.11.1 - elif test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=1.16.2 - fi - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 1.17.0) -ge 0; then - # Enable developer flags? (yes/no) - addConfigureOption enable-mongodb-developer-flags no - # Enable code coverage? (yes/no) - addConfigureOption enable-mongodb-coverage no - # Use system libraries for libbson, libmongoc, and libmongocrypt? (yes/no) - addConfigureOption with-mongodb-system-libs no - # Enable client-side encryption? (auto/yes/no) - addConfigureOption with-mongodb-client-side-encryption yes - # Enable Snappy for compression? (auto/yes/no) - addConfigureOption with-mongodb-snappy yes - # Enable zlib for compression? (auto/system/bundled/no) - addConfigureOption with-mongodb-zlib yes - # Enable zstd for compression? (auto/yes/no) - addConfigureOption with-mongodb-zstd yes - # Enable SASL for Kerberos authentication? (auto/cyrus/no) - addConfigureOption with-mongodb-sasl yes - # Enable crypto and TLS? (auto/openssl/libressl/darwin/no) - addConfigureOption with-mongodb-ssl yes - # Use system crypto profile (OpenSSL only)? (yes/no) - addConfigureOption enable-mongodb-crypto-system-profile yes - # Use bundled or system utf8proc for SCRAM-SHA-256 SASLprep? (bundled/system) - addConfigureOption with-mongodb-utf8proc bundled - fi - ;; - mosquitto) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=beta - fi - ;; - msgpack) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.5.7 - fi - fi - ;; - newrelic) - installNewRelic - installRemoteModule_manuallyInstalled=2 - ;; - oauth) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.2.3 - fi - fi - ;; - oci8 | pdo_oci) - installOracleInstantClient - if test "$installRemoteModule_module" = oci8; then - addConfigureOption with-oci8 "instantclient,$ORACLE_INSTANTCLIENT_LIBPATH" - elif test "$installRemoteModule_module" = pdo_oci; then - addConfigureOption with-pdo-oci "instantclient,$ORACLE_INSTANTCLIENT_LIBPATH" - fi - ;; - opencensus) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=alpha - fi - ;; - openswoole) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 704; then - installRemoteModule_version=4.10.0 - elif test $PHP_MAJMIN_VERSION -lt 801; then - installRemoteModule_version=22.0.0 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if php --ri sockets >/dev/null 2>/dev/null; then - installRemoteModule_sockets=yes - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - else - installRemoteModule_sockets=no - fi - installRemoteModule_openssl=yes - if test -n "$installRemoteModule_version" && test $(compareVersions "$installRemoteModule_version" 22.1.2) -ge 0; then - # enable coroutine sockets? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 protocol? - addConfigureOption enable-http2 yes - # enable coroutine mysqlnd? - addConfigureOption enable-mysqlnd yes - # enable coroutine curl? - addConfigureOption enable-hook-curl yes - # enable coroutine postgres? - addConfigureOption with-postgres yes - elif test $(compareVersions "$installRemoteModule_version" 22.1.1) -ge 0; then - # enable c-ares support? - addConfigureOption enable-cares yes - # enable coroutine sockets? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 protocol? - addConfigureOption enable-http2 yes - # enable coroutine mysqlnd? - addConfigureOption enable-mysqlnd yes - # enable coroutine curl? - addConfigureOption enable-hook-curl yes - # enable coroutine postgres? - addConfigureOption with-postgres yes - elif test $(compareVersions "$installRemoteModule_version" 22.1.0) -ge 0; then - # enable coroutine sockets? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 protocol? - addConfigureOption enable-http2 yes - # enable coroutine mysqlnd? - addConfigureOption enable-mysqlnd yes - # enable coroutine curl? - addConfigureOption enable-hook-curl yes - # enable coroutine postgres? - addConfigureOption with-postgres yes - elif test $(compareVersions "$installRemoteModule_version" 22.0.0) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable hook curl support? - addConfigureOption enable-hook-curl yes - # enable postgres support? - addConfigureOption with-postgres yes - elif test $(compareVersions "$installRemoteModule_version" 4.8.0) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable json support? - addConfigureOption enable-swoole-json yes - # enable curl support? - addConfigureOption enable-swoole-curl yes - # enable postgres support? - addConfigureOption with-postgres yes - else - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable json support? - addConfigureOption enable-swoole-json yes - # enable curl support? - addConfigureOption enable-swoole-curl yes - fi - ;; - parallel) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=0.8.3 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=1.1.4 - fi - fi - ;; - parle) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 704; then - installRemoteModule_version=0.8.3 - else - installRemoteModule_version=beta - fi - fi - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 0.8.4) -ge 0; then - # Enable internal UTF-32 support in parle - addConfigureOption enable-parle-utf32 yes - fi - ;; - pcov) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=0.9.0 - fi - fi - ;; - php_trie) - if ! test -f /usr/local/include/hat-trie/include/tsl/htrie_map.h; then - installRemoteModule_src="$(getPackageSource https://codeload.github.com/Tessil/hat-trie/tar.gz/v0.6.0)" - mkdir -p /usr/local/include/hat-trie - mv "$installRemoteModule_src/include" /usr/local/include/hat-trie - fi - ;; - pq) - # pq must be loaded after raphf - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - ;; - propro) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.0.2 - fi - fi - ;; - protobuf) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=3.12.4 - elif test $PHP_MAJMIN_VERSION -lt 800; then - installRemoteModule_version=3.24.4 - elif test $PHP_MAJMIN_VERSION -lt 801; then - installRemoteModule_version=3.25.3 - fi - fi - ;; - pthreads) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.0.10 - fi - fi - ;; - raphf) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.1.2 - fi - fi - ;; - rdkafka) - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version"; then - installRemoteModule_version1='' - if test $PHP_MAJMIN_VERSION -le 505; then - installRemoteModule_version1=3.0.5 - elif test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version1=4.1.2 - fi - installRemoteModule_version2='' - case "$DISTRO" in - alpine) - installRemoteModule_tmp='librdkafka' - ;; - debian) - installRemoteModule_tmp='librdkafka*' - ;; - *) - installRemoteModule_tmp='' - ;; - esac - if test -n "$installRemoteModule_tmp"; then - installRemoteModule_tmp="$(getInstalledPackageVersion "$installRemoteModule_tmp")" - if test -n "$installRemoteModule_tmp" && test $(compareVersions "$installRemoteModule_tmp" '0.11.0') -lt 0; then - installRemoteModule_version2=3.1.3 - fi - fi - if test -z "$installRemoteModule_version1" || test -z "$installRemoteModule_version2"; then - installRemoteModule_version="$installRemoteModule_version1$installRemoteModule_version2" - elif test $(compareVersions "$installRemoteModule_version1" "$installRemoteModule_version2") -le 0; then - installRemoteModule_version="$installRemoteModule_version1" - else - installRemoteModule_version="$installRemoteModule_version2" - fi - fi - ;; - redis) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=4.3.0 - elif test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=5.3.7 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - # Enable igbinary serializer support? - if php --ri igbinary >/dev/null 2>/dev/null; then - addConfigureOption enable-redis-igbinary yes - else - addConfigureOption enable-redis-igbinary no - fi - # Enable lzf compression support? - addConfigureOption enable-redis-lzf yes - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 5.0.0) -ge 0; then - if ! test -e /usr/include/zstd.h || ! test -e /usr/lib/libzstd.so -o -e "/usr/lib/$TARGET_TRIPLET/libzstd.so"; then - installRemoteModule_zstdVersion=1.4.4 - installRemoteModule_zstdVersionMajor=$(echo $installRemoteModule_zstdVersion | cut -d. -f1) - rm -rf /tmp/src/zstd - mv "$(getPackageSource https://github.com/facebook/zstd/releases/download/v$installRemoteModule_zstdVersion/zstd-$installRemoteModule_zstdVersion.tar.gz)" /tmp/src/zstd - cd /tmp/src/zstd - make V=0 -j$(getProcessorCount) lib - cp -f lib/libzstd.so "/usr/lib/$TARGET_TRIPLET/libzstd.so.$installRemoteModule_zstdVersion" - ln -sf "/usr/lib/$TARGET_TRIPLET/libzstd.so.$installRemoteModule_zstdVersion" "/usr/lib/$TARGET_TRIPLET/libzstd.so.$installRemoteModule_zstdVersionMajor" - ln -sf "/usr/lib/$TARGET_TRIPLET/libzstd.so.$installRemoteModule_zstdVersion" "/usr/lib/$TARGET_TRIPLET/libzstd.so" - ln -sf /tmp/src/zstd/lib/zstd.h /usr/include/zstd.h - UNNEEDED_PACKAGE_LINKS="$UNNEEDED_PACKAGE_LINKS /usr/include/zstd.h" - cd - >/dev/null - fi - # Enable zstd compression support? - addConfigureOption enable-redis-zstd yes - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 6.0.0) -ge 0; then - # Enable msgpack serializer support? - if php --ri msgpack >/dev/null 2>/dev/null; then - addConfigureOption enable-redis-msgpack yes - else - addConfigureOption enable-redis-msgpack no - fi - # Enable lz4 compression? - addConfigureOption enable-redis-lz4 yes - # Use system liblz4? - addConfigureOption with-liblz4 yes - fi - fi - ;; - relay) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version="$(curl -sSLf https://builds.r2.relay.so/meta/latest)" - installRemoteModule_version="${installRemoteModule_version#v}" - fi - case $(uname -m) in - aarch64 | arm64 | armv8) - installRemoteModule_hardware=aarch64 - ;; - *) - installRemoteModule_hardware=x86-64 - ;; - esac - installRemoteModule_distro="$DISTRO" - installRemoteModule_flags='' - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -lt 317; then - installRemoteModule_distro=alpine3.9 - else - installRemoteModule_distro=alpine3.17 - fi - ;; - debian) - case "$(dpkg -l 'libssl*' | grep -E '^ii ' | cut -d' ' -f3)" in - libssl3*) - installRemoteModule_flags=+libssl3 - ;; - esac - ;; - esac - # See https://relay.so/builds - installRemoteModule_url="https://builds.r2.relay.so/v${installRemoteModule_version}/relay-v${installRemoteModule_version}-php${PHP_MAJDOTMIN_VERSION}-${installRemoteModule_distro}-${installRemoteModule_hardware}${installRemoteModule_flags}.tar.gz" - printf 'Downloading relay v%s (%s) from %s... ' "$installRemoteModule_version" "$installRemoteModule_hardware" "$installRemoteModule_url" - installRemoteModule_src="$(getPackageSource $installRemoteModule_url)" - echo 'done.' - cp -- "$installRemoteModule_src/relay-pkg.so" "$PHP_EXTDIR/relay.so" - sed -i "s/00000000-0000-0000-0000-000000000000/$(cat /proc/sys/kernel/random/uuid)/" "$PHP_EXTDIR/relay.so" - installRemoteModule_ini_extra="$(grep -vE '^[ \t]*extension[ \t]*=' $installRemoteModule_src/relay.ini)" - installRemoteModule_manuallyInstalled=1 - ;; - saxon) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -ge 800; then - installRemoteModule_version='12.4.2' - else - installRemoteModule_version='12.3' - fi - fi - installRemoteModule_majorVersion="${installRemoteModule_version%%.*}" - if test "$installRemoteModule_majorVersion" -ge 12; then - case $(uname -m) in - aarch64 | arm64 | armv8) - installRemoteModule_url=https://downloads.saxonica.com/SaxonC/EE/${installRemoteModule_majorVersion}/libsaxon-EEC-linux-aarch64-v${installRemoteModule_version}.zip - ;; - *) - installRemoteModule_url=https://downloads.saxonica.com/SaxonC/EE/${installRemoteModule_majorVersion}/libsaxon-EEC-linux-x86_64-v${installRemoteModule_version}.zip - ;; - esac - else - installRemoteModule_url=https://downloads.saxonica.com/SaxonC/EE/${installRemoteModule_majorVersion}/libsaxon-EEC-setup64-v${installRemoteModule_version}.zip - fi - installRemoteModule_dir="$(getPackageSource $installRemoteModule_url)" - if ! test -f /usr/lib/libsaxon-*.so; then - if test "$installRemoteModule_majorVersion" -ge 12; then - cp $installRemoteModule_dir/libs/nix/*.so /usr/lib/ - else - cp $installRemoteModule_dir/*.so /usr/lib/ - fi - ldconfig || true - fi - cd "$installRemoteModule_dir/Saxon.C.API" - phpize - ./configure --enable-saxon - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - ;; - seasclick) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.1.0 - fi - fi - ;; - snappy) - if test -z "$installRemoteModule_path"; then - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=0.2.1 - fi - installRemoteModule_src="$(getPackageSource https://github.com/kjdev/php-ext-snappy/archive/refs/tags/$installRemoteModule_version.tar.gz)" - cd "$installRemoteModule_src" - phpize - ./configure --with-snappy-includedir=/usr - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - fi - ;; - snuffleupagus) - if test -z "$installRemoteModule_path"; then - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=0.9.0 - else - installRemoteModule_version=0.10.0 - fi - fi - installRemoteModule_src="$(getPackageSource https://codeload.github.com/jvoisin/snuffleupagus/tar.gz/v$installRemoteModule_version)" - cd "$installRemoteModule_src/src" - phpize - ./configure --enable-snuffleupagus - make -j$(getProcessorCount) install - cd - >/dev/null - cp -a "$installRemoteModule_src/config/default.rules" "$PHP_INI_DIR/conf.d/snuffleupagus.rules" - if test $(compareVersions "$installRemoteModule_version" 0.8.0) -ge 0; then - printf '\n# Disable "PHP version is not officially maintained anymore" message\nsp.global.show_old_php_warning.disable();\n' >>"$PHP_INI_DIR/conf.d/snuffleupagus.rules" - fi - else - if test -f "$installRemoteModule_path/config/default.rules"; then - cp -a "$installRemoteModule_path/config/default.rules" "$PHP_INI_DIR/conf.d/snuffleupagus.rules" - fi - fi - installRemoteModule_ini_extra="$(printf '%ssp.configuration_file=%s\n' "$installRemoteModule_ini_extra" "$PHP_INI_DIR/conf.d/snuffleupagus.rules")" - installRemoteModule_manuallyInstalled=1 - ;; - sodium | libsodium) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=1.0.7 - fi - fi - ;; - solr) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=2.4.0 - elif test $PHP_MAJMIN_VERSION -lt 704; then - installRemoteModule_version=2.6.0 - fi - fi - ;; - sourceguardian) - installSourceGuardian - installRemoteModule_manuallyInstalled=1 - ;; - spx) - if test -z "$installRemoteModule_path"; then - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=v0.4.15 - fi - if test "${installRemoteModule_version%.*}" = "$installRemoteModule_version"; then - installRemoteModule_displayVersion="$installRemoteModule_version" - else - installRemoteModule_displayVersion="git--master-$installRemoteModule_version" - fi - installRemoteModule_src="$(getPackageSource https://codeload.github.com/NoiseByNorthwest/php-spx/tar.gz/$installRemoteModule_version)" - cd -- "$installRemoteModule_src" - phpize - ./configure - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - fi - ;; - sqlsrv | pdo_sqlsrv) - isMicrosoftSqlServerODBCInstalled || installMicrosoftSqlServerODBC - if test -z "$installRemoteModule_version"; then - # https://docs.microsoft.com/it-it/sql/connect/php/system-requirements-for-the-php-sql-driver?view=sql-server-2017 - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=3.0.1 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=5.3.0 - elif test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=5.6.1 - elif test $PHP_MAJMIN_VERSION -le 702; then - installRemoteModule_version=5.8.1 - elif test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=5.9.0 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=5.10.1 - elif test $PHP_MAJMIN_VERSION -le 800; then - installRemoteModule_version=5.11.1 - fi - fi - ;; - ssh2) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.13 - fi - fi - ;; - stomp) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.0.9 - fi - fi - if test "$DISTRO" = debian; then - addConfigureOption with-openssl-dir yes - else - addConfigureOption with-openssl-dir /usr - fi - ;; - swoole) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 502; then - installRemoteModule_version=1.6.10 - elif test $PHP_MAJMIN_VERSION -le 504; then - installRemoteModule_version=2.0.4 - elif test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.0.11 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=4.3.6 - elif test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=4.5.10 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=4.8.11 - elif test $PHP_BITS -eq 32; then - # See https://github.com/swoole/swoole-src/issues/5198#issuecomment-1820162178 - installRemoteModule_version="$(resolvePHPModuleVersion "$installRemoteModule_module" '^5.0')" - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if php --ri sockets >/dev/null 2>/dev/null; then - installRemoteModule_sockets=yes - else - installRemoteModule_sockets=no - fi - installRemoteModule_openssl=yes - case "$DISTRO_VERSION" in - alpine@3.7 | alpine@3.8) - if test -n "$installRemoteModule_version" && test $(compareVersions "$installRemoteModule_version" 4.6.0) -lt 0; then - # see https://github.com/swoole/swoole-src/issues/3934 - installRemoteModule_openssl=no - fi - ;; - esac - if test $PHP_MAJMIN_VERSION -eq 803; then - # see https://github.com/swoole/docker-swoole/issues/45 - installRemoteModule_curl=no - else - installRemoteModule_curl=yes - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 5.0.1) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - # enable cares support? - addConfigureOption enable-cares yes - # enable brotli support? - addConfigureOption enable-brotli yes - elif test $(compareVersions "$installRemoteModule_version" 5.0.0) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - # enable cares support? - addConfigureOption enable-cares yes - elif test $(compareVersions "$installRemoteModule_version" 4.8.11) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable json support? - addConfigureOption enable-swoole-json yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - # enable cares support? - addConfigureOption enable-cares yes - elif test $(compareVersions "$installRemoteModule_version" 4.6.1) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable json support? - addConfigureOption enable-swoole-json yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - elif test $(compareVersions "$installRemoteModule_version" 4.4.0) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - elif test $(compareVersions "$installRemoteModule_version" 4.2.11) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable postgresql coroutine client support? - addConfigureOption enable-coroutine-postgresql yes - elif test $(compareVersions "$installRemoteModule_version" 4.2.7) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable postgresql coroutine client support? - addConfigureOption enable-coroutine-postgresql yes - # enable kernel debug/trace log? (it will degrade performance) - addConfigureOption enable-debug-log no - elif test $(compareVersions "$installRemoteModule_version" 4.2.6) -ge 0; then - # enable debug/trace log support? - addConfigureOption enable-debug-log no - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable postgresql coroutine client support? - addConfigureOption enable-coroutine-postgresql yes - elif test $(compareVersions "$installRemoteModule_version" 4.2.0) -ge 0; then - # enable debug/trace log support? - addConfigureOption enable-debug-log no - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable async-redis support? - addConfigureOption enable-async-redis yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable postgresql coroutine client support? - addConfigureOption enable-coroutine-postgresql yes - elif test $(compareVersions "$installRemoteModule_version" 2.1.2) -ge 0; then - # enable debug/trace log support? - addConfigureOption enable-swoole-debug no - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable async-redis support? - addConfigureOption enable-async-redis yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable postgresql coroutine client support? - addConfigureOption enable-coroutine-postgresql yes - elif test $(compareVersions "$installRemoteModule_version" 1.10.4) -ge 0 && test $(compareVersions "$installRemoteModule_version" 1.10.5) -le 0; then - # enable debug/trace log support? - addConfigureOption enable-swoole-debug no - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable async-redis support? - addConfigureOption enable-async-redis yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - fi - ;; - tdlib) - if ! test -f /usr/lib/libphpcpp.so || ! test -f /usr/include/phpcpp.h; then - if test $PHP_MAJMIN_VERSION -le 701; then - cd "$(getPackageSource https://codeload.github.com/CopernicaMarketingSoftware/PHP-CPP/tar.gz/v2.1.4)" - elif test $PHP_MAJMIN_VERSION -le 703; then - cd "$(getPackageSource https://codeload.github.com/CopernicaMarketingSoftware/PHP-CPP/tar.gz/v2.2.0)" - else - cd "$(getPackageSource https://codeload.github.com/CopernicaMarketingSoftware/PHP-CPP/tar.gz/444d1f90cf6b7f3cb5178fa0d0b5ab441b0389d0)" - fi - make -j$(getProcessorCount) - make install - cd - >/dev/null - fi - if test -z "$installRemoteModule_path"; then - installRemoteModule_tmp="$(mktemp -p /tmp/src -d)" - git clone --depth=1 --recurse-submodules https://github.com/yaroslavche/phptdlib.git "$installRemoteModule_tmp" - mkdir "$installRemoteModule_tmp/build" - cd "$installRemoteModule_tmp/build" - cmake -D USE_SHARED_PHPCPP:BOOL=ON .. - make - make install - cd - >/dev/null - rm "$PHP_INI_DIR/conf.d/tdlib.ini" - installRemoteModule_manuallyInstalled=1 - fi - ;; - tensor) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=2.2.3 - fi - fi - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -ge 315 && test $DISTRO_MAJMIN_VERSION -le 317; then - if test -e /usr/lib/liblapacke.so.3 && ! test -e /usr/lib/liblapacke.so; then - ln -s /usr/lib/liblapacke.so.3 /usr/lib/liblapacke.so - fi - fi - ;; - esac - ;; - tideways) - case "$DISTRO" in - alpine) - case $(uname -m) in - aarch64 | arm64 | armv8) - installRemoteModule_architecture=alpine-arm64 - ;; - *) - installRemoteModule_architecture=alpine-x86_64 - ;; - esac - ;; - debian) - case $(uname -m) in - aarch64 | arm64 | armv8) - installRemoteModule_architecture=arm64 - ;; - *) - installRemoteModule_architecture=x86_64 - ;; - esac - ;; - esac - installRemoteModule_url="$(curl -sSLf -o - https://tideways.com/profiler/downloads | grep -Eo "\"[^\"]+/tideways-php-([0-9]+\.[0-9]+\.[0-9]+)-$installRemoteModule_architecture.tar.gz\"" | cut -d'"' -f2)" - if test -z "$installRemoteModule_url"; then - echo 'Failed to find the tideways tarball to be downloaded' - exit 1 - fi - printf 'Downloading tideways from %s\n' "$installRemoteModule_url" - installRemoteModule_src="$(getPackageSource $installRemoteModule_url)" - if test -d "$installRemoteModule_src/dist"; then - installRemoteModule_src="$installRemoteModule_src/dist" - fi - installRemoteModule_src="$installRemoteModule_src/tideways-php" - case "$DISTRO" in - alpine) - installRemoteModule_src="$installRemoteModule_src-alpine" - ;; - esac - installRemoteModule_src="$installRemoteModule_src-$PHP_MAJDOTMIN_VERSION" - if test $PHP_THREADSAFE -eq 1; then - installRemoteModule_src="$installRemoteModule_src-zts" - fi - installRemoteModule_src="$installRemoteModule_src.so" - if ! test -f "$installRemoteModule_src"; then - echo 'tideways does not support the current environment' >&2 - exit 1 - fi - mv "$installRemoteModule_src" $(getPHPExtensionsDir)/tideways.so - installRemoteModule_manuallyInstalled=1 - ;; - uopz) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.0.7 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=5.0.2 - elif test $PHP_MAJMIN_VERSION -le 740; then - installRemoteModule_version=6.1.2 - fi - fi - ;; - uploadprogress) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=1.1.4 - fi - fi - ;; - uuid) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.0.5 - fi - fi - ;; - uv) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 800; then - installRemoteModule_version=0.2.4 - else - installRemoteModule_version=beta - fi - fi - ;; - vld) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=0.14.0 - else - installRemoteModule_version=beta - fi - fi - ;; - wikidiff2) - case "$DISTRO" in - alpine) - if ! isLibDatrieInstalled; then - installLibDatrie - fi - if ! isLibThaiInstalled; then - installLibThai - fi - ;; - esac - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 702; then - installRemoteModule_version=1.13.0 - else - installRemoteModule_version="$(git -c versionsort.suffix=- ls-remote --tags --refs --quiet --exit-code --sort=version:refname https://github.com/wikimedia/mediawiki-php-wikidiff2.git 'refs/tags/*.*.*' | tail -1 | cut -d/ -f3)" - fi - fi - installRemoteModule_src="$(getPackageSource "https://codeload.github.com/wikimedia/mediawiki-php-wikidiff2/tar.gz/refs/tags/$installRemoteModule_version")" - cd -- "$installRemoteModule_src" - phpize - ./configure - make -j$(getProcessorCount) - make install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - ;; - xdebug) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 500; then - installRemoteModule_version=2.0.5 - elif test $PHP_MAJMIN_VERSION -le 503; then - installRemoteModule_version=2.2.7 - elif test $PHP_MAJMIN_VERSION -le 504; then - installRemoteModule_version=2.4.1 - elif test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.5.5 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=2.6.1 - elif test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=2.9.8 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=3.1.6 - fi - fi - ;; - xdiff) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.5.2 - fi - fi - if ! test -f /usr/local/lib/libxdiff.* && ! test -f /usr/lib/libxdiff.* && ! test -f /usr/lib/x86_64*/libxdiff.*; then - installRemoteModule_src="$(getPackageSource https://raw.githubusercontent.com/mlocati/docker-php-extension-installer/assets/resources/libxdiff-0.23.tar.gz)" - cd -- "$installRemoteModule_src" - ./configure --disable-shared --disable-dependency-tracking --with-pic - make -j$(getProcessorCount) - make install - cd - >/dev/null - fi - ;; - xhprof) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.9.4 - fi - fi - ;; - xlswriter) - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 1.2.7) -ge 0; then - # enable reader supports? - addConfigureOption enable-reader yes - fi - ;; - xmlrpc) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=beta - fi - ;; - yac) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.9.2 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 2.2.0) -ge 0; then - # Enable igbinary serializer support - if php --ri igbinary >/dev/null 2>/dev/null; then - addConfigureOption enable-igbinary yes - else - addConfigureOption enable-igbinary no - fi - # Enable json serializer support - if php --ri json >/dev/null 2>/dev/null; then - addConfigureOption enable-json yes - else - addConfigureOption enable-json no - fi - # Enable msgpack serializer support - if php --ri msgpack >/dev/null 2>/dev/null; then - addConfigureOption enable-msgpack yes - else - addConfigureOption enable-msgpack no - fi - fi - ;; - yaml) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.3.1 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=2.0.4 - fi - fi - ;; - yar) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.2.5 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 1.2.4) -ge 0; then - # Enable Msgpack Supports - if php --ri msgpack >/dev/null 2>/dev/null; then - addConfigureOption enable-msgpack yes - else - addConfigureOption enable-msgpack no - fi - fi - ;; - zmq) - if test -z "$installRemoteModule_version"; then - installRemoteModule_src="$(getPackageSource https://github.com/zeromq/php-zmq/tarball/master)" - cd "$installRemoteModule_src" - phpize - ./configure - make -j$(getProcessorCount) - make install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - fi - ;; - zookeeper) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.5.0 - else - installRemoteModule_version=alpha - fi - fi - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - case "$DISTRO" in - alpine) - if ! test -f /usr/local/include/zookeeper/zookeeper.h; then - if test $(compareVersions "$installRemoteModule_version" 1.0.0) -lt 0; then - installRemoteModule_src="$(getPackageSource http://archive.apache.org/dist/zookeeper/zookeeper-3.5.9/apache-zookeeper-3.5.9.tar.gz)" - else - installRemoteModule_tmp="$(curl -sSLf https://downloads.apache.org/zookeeper/stable | sed -E 's/["<>]/\n/g' | grep -E '^(apache-)?zookeeper-[0-9]+\.[0-9]+\.[0-9]+\.(tar\.gz|tgz)$' | head -n1)" - if test -z "$installRemoteModule_tmp"; then - echo 'Failed to detect the zookeeper library URL' >&2 - exit 1 - fi - installRemoteModule_src="$(getPackageSource https://downloads.apache.org/zookeeper/stable/$installRemoteModule_tmp)" - fi - cd -- "$installRemoteModule_src" - if test -d ~/.m2; then - installRemoteModule_delm2=n - else - installRemoteModule_delm2=y - fi - mvn -pl zookeeper-jute compile - cd - >/dev/null - cd -- "$installRemoteModule_src/zookeeper-client/zookeeper-client-c" - autoreconf -if - ./configure --without-cppunit - make -j$(getProcessorCount) CFLAGS='-Wno-stringop-truncation -Wno-format-overflow' - make install - cd - >/dev/null - if test $installRemoteModule_delm2 = y; then - rm -rf ~/.m2 - fi - fi - ;; - esac - ;; - zstd) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.11.0 - fi - fi - ;; - esac - if test $installRemoteModule_manuallyInstalled -eq 0; then - if test -n "$installRemoteModule_path"; then - printf ' (installing version %s from %s)\n' "$installRemoteModule_version" "$installRemoteModule_path" - elif test -n "$installRemoteModule_version"; then - printf ' (installing version %s)\n' "$installRemoteModule_version" - fi - installPeclPackage "$installRemoteModule_module" "$installRemoteModule_version" "$installRemoteModule_cppflags" "$installRemoteModule_path" - fi - postProcessModule "$installRemoteModule_module" - if test $installRemoteModule_manuallyInstalled -lt 2; then - case "${IPE_SKIP_CHECK:-}" in - 1 | y* | Y*) ;; - *) - checkModuleWorking "$installRemoteModule_module" "$installRemoteModule_ini_basename" "$installRemoteModule_ini_extra" - ;; - esac - enablePhpExtension "$installRemoteModule_module" "$installRemoteModule_ini_basename" "$installRemoteModule_ini_extra" - fi -} - -# Check if a module/helper may be installed using the pecl archive -# -# Arguments: -# $1: the name of the module -# -# Return: -# 0: true -# 1: false -moduleMayUsePecl() { - case "$1" in - @composer | @fix_letsencrypt) - return 1 - ;; - blackfire | geos | ioncube_loader | snuffleupagus | sourceguardian | spx | tdlib | tideways) - return 1 - ;; - esac - if test -n "$(getModuleSourceCodePath "$1")"; then - return 1 - fi - if stringInList "$1" "$BUNDLED_MODULES"; then - return 1 - fi - return 0 -} - -# Configure the PECL package installer -# -# Updates: -# PHP_MODULES_TO_INSTALL -# Sets: -# USE_PICKLE 0: no, 1: yes (already downloaded), 2: yes (build it from source) -configureInstaller() { - USE_PICKLE=0 - if ! which pecl >/dev/null; then - for PHP_MODULE_TO_INSTALL in $PHP_MODULES_TO_INSTALL; do - if ! moduleMayUsePecl "$PHP_MODULE_TO_INSTALL"; then - continue - fi - if false && anyStringInList '' "$PHP_MODULES_TO_INSTALL"; then - USE_PICKLE=2 - else - curl -sSLf https://github.com/FriendsOfPHP/pickle/releases/latest/download/pickle.phar -o /tmp/pickle - chmod +x /tmp/pickle - USE_PICKLE=1 - fi - break - done - fi - if test $USE_PICKLE -eq 0; then - if test -z "$(pear config-get http_proxy)"; then - if test -n "${http_proxy:-}"; then - pear config-set http_proxy "$http_proxy" || true - elif test -n "${HTTP_PROXY:-}"; then - pear config-set http_proxy "$HTTP_PROXY" || true - fi - fi - pecl channel-update pecl.php.net || true - fi -} - -buildPickle() { - printf '### BUILDING PICKLE ###\n' - buildPickle_tempDir="$(mktemp -p /tmp/src -d)" - cd -- "$buildPickle_tempDir" - printf 'Downloading... ' - git clone --quiet --depth 1 https://github.com/FriendsOfPHP/pickle.git . - git tag 0.7.0 - printf 'done.\n' - printf 'Installing composer... ' - actuallyInstallComposer . composer '--1 --quiet' - printf 'done.\n' - printf 'Installing composer dependencies... ' - ./composer install --no-dev --no-progress --no-suggest --optimize-autoloader --ignore-platform-reqs --quiet --no-cache - printf 'done.\n' - printf 'Building... ' - php -d phar.readonly=0 box.phar build - mv pickle.phar /tmp/pickle - printf 'done.\n' - cd - >/dev/null -} - -# Add a configure option for the pecl/pickle install command -# -# Arguments: -# $1: the option name -# $2: the option value -addConfigureOption() { - if test $USE_PICKLE -eq 0; then - printf -- '%s\n' "$2" >>"$CONFIGURE_FILE" - else - printf -- '--%s=%s\n' "$1" "$2" >>"$CONFIGURE_FILE" - fi -} - -# Actually installs a PECL package -# -# Arguments: -# $1: the package to be installed -# $2: the package version to be installed (optional) -# $3: the value of the CPPFLAGS variable (optional) -# $4: the path of the local package to be installed (optional, downloaded from PECL if omitted/empty) -installPeclPackage() { - if ! test -f "$CONFIGURE_FILE"; then - printf '\n' >"$CONFIGURE_FILE" - fi - installPeclPackage_name="$(getPeclModuleName "$1")" - if test -z "${2:-}"; then - installPeclPackage_fullname="$installPeclPackage_name" - else - installPeclPackage_fullname="$installPeclPackage_name-$2" - fi - installPeclPackage_path="${4:-}" - if test -z "$installPeclPackage_path"; then - installPeclPackage_path="$installPeclPackage_fullname" - fi - if test $USE_PICKLE -eq 0; then - if test -n "${4:-}"; then - if test -f "$installPeclPackage_path/package2.xml"; then - installPeclPackage_path="$installPeclPackage_path/package2.xml" - else - installPeclPackage_path="$installPeclPackage_path/package.xml" - fi - fi - cat "$CONFIGURE_FILE" | MAKE="make -j$(getCompilationProcessorCount $1)" CPPFLAGS="${3:-}" pecl install "$installPeclPackage_path" - else - MAKEFLAGS="-j$(getCompilationProcessorCount $1)" CPPFLAGS="${3:-}" /tmp/pickle install --tmp-dir=/tmp/pickle.tmp --no-interaction --version-override='' --with-configure-options "$CONFIGURE_FILE" -- "$installPeclPackage_path" - fi -} - -# Check if a string is in a list of space-separated string -# -# Arguments: -# $1: the string to be checked -# $2: the string list -# -# Return: -# 0 (true): if the string is in the list -# 1 (false): if the string is not in the list -stringInList() { - for stringInList_listItem in $2; do - if test "$1" = "$stringInList_listItem"; then - return 0 - fi - done - return 1 -} - -# Check if at least one item in a list is in another list -# -# Arguments: -# $1: the space-separated list of items to be searched -# $2: the space-separated list of reference items -# -# Return: -# 0 (true): at least one of the items in $1 is in $2 -# 1 (false): otherwise -anyStringInList() { - for anyStringInList_item in $1; do - if stringInList "$anyStringInList_item" "$2"; then - return 0 - fi - done - return 1 -} - -# Remove a word from a space-separated list -# -# Arguments: -# $1: the word to be removed -# $2: the string list -# -# Output: -# The list without the word -removeStringFromList() { - removeStringFromList_result='' - for removeStringFromList_listItem in $2; do - if test "$1" != "$removeStringFromList_listItem"; then - if test -z "$removeStringFromList_result"; then - removeStringFromList_result="$removeStringFromList_listItem" - else - removeStringFromList_result="$removeStringFromList_result $removeStringFromList_listItem" - fi - fi - done - printf '%s' "$removeStringFromList_result" -} - -# Invoke apt-get update -# -# Set: -# IPE_APTGET_INSTALLOPTIONS -invokeAptGetUpdate() { - if test -n "${IPE_APTGETUPDATE_ALREADY:-}"; then - DEBIAN_FRONTEND=noninteractive apt-get update -q - return - fi - IPE_APTGET_INSTALLOPTIONS='' - invokeAptGetUpdate_fixdistro='' - if grep -q 'VERSION="8 (jessie)"' /etc/os-release; then - invokeAptGetUpdate_fixdistro=jessie - elif grep -q 'VERSION="9 (stretch)"' /etc/os-release; then - invokeAptGetUpdate_fixdistro=stretch - else - IPE_APTGETUPDATE_ALREADY=y - DEBIAN_FRONTEND=noninteractive apt-get update -q - return - fi - # See https://www.debian.org/distrib/archive.en.html for a list of mirrors - if test -z "${IPE_DEB_ARCHIVE:-}"; then - IPE_DEB_ARCHIVE=http://archive.kernel.org/debian-archive - fi - if test -z "${IPE_DEB_ARCHIVE_SECURITY:-}"; then - IPE_DEB_ARCHIVE_SECURITY=http://archive.kernel.org/debian-archive/debian-security - fi - sed -ri "s;^(\s*deb\s+http://(httpredir|deb).debian.org/debian\s+$invokeAptGetUpdate_fixdistro-updates\b.*);#\1;" /etc/apt/sources.list - sed -ri "s;^(\s*deb\s+)http://(httpredir|deb).debian.org;\1$IPE_DEB_ARCHIVE;" /etc/apt/sources.list - sed -ri "s;^(\s*deb\s+)http://security.debian.org/debian-security;\1$IPE_DEB_ARCHIVE_SECURITY;" /etc/apt/sources.list - sed -ri "s;^(\s*deb\s+)http://security.debian.org;\1$IPE_DEB_ARCHIVE_SECURITY;" /etc/apt/sources.list - invokeAptGetUpdate_tmp="$(mktemp)" - DEBIAN_FRONTEND=noninteractive apt-get update -q 2>"$invokeAptGetUpdate_tmp" - if test -s "$invokeAptGetUpdate_tmp"; then - cat "$invokeAptGetUpdate_tmp" >&2 - if grep -qE ' KEYEXPIRED [0-9]' "$invokeAptGetUpdate_tmp"; then - IPE_APTGET_INSTALLOPTIONS='-o APT::Get::AllowUnauthenticated=true' - echo '############' >&2 - echo '# WARNING! #' >&2 - echo '############' >&2 - echo 'apt packages will be installed without checking authenticity!' >&2 - fi - fi - rm "$invokeAptGetUpdate_tmp" - IPE_APTGETUPDATE_ALREADY=y -} - -# Fix the Let's Encrypt CA certificates on old distros -fixLetsEncrypt() { - printf '### FIXING LETS ENCRYPT CA CERTIFICATES ###\n' - case "$DISTRO_VERSION" in - alpine@3.7 | alpine@3.8) - printf -- '- old Alpine Linux detected: we should fix the certificates\n' - ;; - debian@8 | debian@9) - printf -- '- old Debian detected: we should fix the certificates\n' - if ! grep -q 'mozilla/ISRG_Root_X1.crt' /etc/ca-certificates.conf && grep -q 'mozilla/DST_Root_CA_X3.crt' /etc/ca-certificates.conf; then - printf -- '- old ca-certificates package detected\n' - fixCACerts_mustUpdate=1 - if test -d /var/lib/apt/lists; then - for fixCACerts_item in $(ls -1 /var/lib/apt/lists); do - case "$fixCACerts_item" in - partial | lock) ;; - *) - fixCACerts_mustUpdate=0 - break - ;; - esac - done - fi - if test $fixCACerts_mustUpdate -eq 1; then - printf -- '- refreshing the APT package list\n' - invokeAptGetUpdate - fi - printf -- '- installing newer ca-certificates package\n' - DEBIAN_FRONTEND=noninteractive apt-get install -qqy --no-install-recommends ${IPE_APTGET_INSTALLOPTIONS:-} ca-certificates - fi - ;; - *) - printf -- '- patch not required in this distro version\n' - return - ;; - esac - if grep -Eq '^mozilla/ISRG_Root_X1\.crt$' /etc/ca-certificates.conf && grep -Eq '^mozilla/DST_Root_CA_X3\.crt$' /etc/ca-certificates.conf; then - printf -- '- disabling the DST_Root_CA_X3 certificate\n' - sed -i '/^mozilla\/DST_Root_CA_X3/s/^/!/' /etc/ca-certificates.conf - printf -- '- refreshing the certificates\n' - update-ca-certificates -f - else - printf -- '- DST_Root_CA_X3 certificate not found or already disabled\n' - fi -} - -# Cleanup everything at the end of the execution -cleanup() { - if test "${IPE_UNINSTALL_CARGO:-}" = y; then - . "$HOME/.cargo/env" - rustup self uninstall -y - fi - if test -n "$UNNEEDED_PACKAGE_LINKS"; then - printf '### REMOVING UNNEEDED PACKAGE LINKS ###\n' - for cleanup_link in $UNNEEDED_PACKAGE_LINKS; do - if test -L "$cleanup_link"; then - rm -f "$cleanup_link" - fi - done - fi - case "$DISTRO" in - alpine) - if stringInList icu-libs "${PACKAGES_PERSISTENT_NEW:-}" && stringInList icu-data-en "${PACKAGES_PERSISTENT_NEW:-}"; then - apk del icu-data-en >/dev/null 2>&1 || true - fi - if test -n "$PACKAGES_VOLATILE"; then - printf '### REMOVING UNNEEDED PACKAGES ###\n' - apk del --purge $PACKAGES_VOLATILE - fi - ;; - debian) - if test -n "$PACKAGES_VOLATILE"; then - printf '### REMOVING UNNEEDED PACKAGES ###\n' - DEBIAN_FRONTEND=noninteractive apt-get remove --purge -y $PACKAGES_VOLATILE - fi - if test -n "$PACKAGES_PREVIOUS"; then - printf '### RESTORING PREVIOUSLY INSTALLED PACKAGES ###\n' - DEBIAN_FRONTEND=noninteractive apt-get install -qqy --no-install-recommends --no-upgrade $IPE_APTGET_INSTALLOPTIONS $PACKAGES_PREVIOUS - fi - ;; - esac - docker-php-source delete - rm -rf /tmp/src - rm -rf /tmp/pickle - rm -rf /tmp/pickle.tmp - rm -rf "$CONFIGURE_FILE" - case "${IPE_KEEP_SYSPKG_CACHE:-}" in - 1 | y* | Y*) ;; - *) - case "$DISTRO" in - alpine) - rm -rf /var/cache/apk/* - ;; - debian) - rm -rf /var/lib/apt/lists/* - ;; - esac - rm -rf /tmp/pear - ;; - esac -} - -resetIFS -mkdir -p /tmp/src -mkdir -p /tmp/pickle.tmp -IPE_ERRFLAG_FILE="$(mktemp -p /tmp/src)" -CONFIGURE_FILE=/tmp/configure-options -IPE_APK_FLAGS='' -setDistro -case "$DISTRO_VERSION" in - debian@8) - fixMaxOpenFiles || true - ;; -esac -setPHPVersionVariables -setPHPPreinstalledModules -case "$PHP_MAJMIN_VERSION" in - 505 | 506 | 700 | 701 | 702 | 703 | 704 | 800 | 801 | 802 | 803) ;; - *) - printf "### ERROR: Unsupported PHP version: %s.%s ###\n" $((PHP_MAJMIN_VERSION / 100)) $((PHP_MAJMIN_VERSION % 100)) - ;; -esac -UNNEEDED_PACKAGE_LINKS='' -processCommandArguments "$@" - -if test -z "$PHP_MODULES_TO_INSTALL"; then - exit 0 -fi - -if stringInList @fix_letsencrypt "$PHP_MODULES_TO_INSTALL"; then - # This must be the very first thing we do - fixLetsEncrypt -fi - -sortModulesToInstall - -docker-php-source extract -BUNDLED_MODULES="$(find /usr/src/php/ext -mindepth 2 -maxdepth 2 -type f -name 'config.m4' | xargs -n1 dirname | xargs -n1 basename | xargs)" -configureInstaller - -buildRequiredPackageLists $PHP_MODULES_TO_INSTALL -if test -n "$PACKAGES_PERSISTENT_PRE"; then - markPreinstalledPackagesAsUsed -fi -if test -n "$PACKAGES_PERSISTENT_NEW$PACKAGES_VOLATILE"; then - installRequiredPackages -fi -if test "$PHP_MODULES_TO_INSTALL" != '@composer'; then - setTargetTriplet -fi -if test $USE_PICKLE -gt 1; then - buildPickle -fi - -for PHP_MODULE_TO_INSTALL in $PHP_MODULES_TO_INSTALL; do - case "$PHP_MODULE_TO_INSTALL" in - @fix_letsencrypt) - # Already done: it must be the first thing we do - ;; - @composer) - installComposer - ;; - *) - if stringInList "$PHP_MODULE_TO_INSTALL" "$BUNDLED_MODULES"; then - installBundledModule "$PHP_MODULE_TO_INSTALL" - else - installRemoteModule "$PHP_MODULE_TO_INSTALL" - fi - ;; - esac -done -cleanup diff --git a/php5/5.4.45/build/php/extensions/install.sh b/php5/5.4.45/build/php/extensions/install.sh deleted file mode 100644 index 9cb9b27bd..000000000 --- a/php5/5.4.45/build/php/extensions/install.sh +++ /dev/null @@ -1,289 +0,0 @@ -#!/bin/bash - -echo -echo "============================================" -echo "Install extensions from : install.sh" -echo "PHP version : ${PHP_VERSION}" -echo "Install extensions : ${PHP_EXTENSIONS}" -echo "Multicore compilation : ${MC}" -echo "Container package url : ${CONTAINER_PACKAGE_URL}" -echo "Work directory : ${PWD}" -echo "============================================" -echo - - -echo "---------- Install zip extension ----------" -apt-get install -y zlib1g-dev unzip -docker-php-ext-install zip - -installExtensionFromTgz() -{ - tgzName=$1 - extensionName="${tgzName%%-*}" - - mkdir ${extensionName} - tar -xf ${tgzName}.tgz -C ${extensionName} --strip-components=1 - ( cd ${extensionName} && phpize && ./configure && make ${MC} && make install ) - - docker-php-ext-enable ${extensionName} $2 -} - -export EXTENSIONS=",${PHP_EXTENSIONS}," - -if [ -z "${EXTENSIONS##*,gd,*}" ]; then - echo "---------- Install gd ----------" - apt-get install -y libfreetype6-dev libjpeg62-turbo-dev libpng-dev \ - && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \ - && docker-php-ext-install gd -fi - -if [ -z "${EXTENSIONS##*,pdo_mysql,*}" ]; then - echo "---------- Install pdo_mysql ----------" - docker-php-ext-install pdo_mysql -fi - -if [ -z "${EXTENSIONS##*,intl,*}" ]; then - echo "---------- Install intl ----------" - apt-get install -y libicu-dev - docker-php-ext-install intl -fi - -if [ -z "${EXTENSIONS##*,bz2,*}" ]; then - echo "---------- Install bz2 ----------" - apt-get install -y libbz2-dev - docker-php-ext-install bz2 -fi - -if [ -z "${EXTENSIONS##*,pcntl,*}" ]; then - echo "---------- Install pcntl ----------" - docker-php-ext-install pcntl -fi - -if [ -z "${EXTENSIONS##*,mysqli,*}" ]; then - echo "---------- Install mysqli ----------" - docker-php-ext-install mysqli -fi - -if [ -z "${EXTENSIONS##*,mbstring,*}" ]; then - echo "---------- Install mbstring ----------" - docker-php-ext-install mbstring -fi - -if [ -z "${EXTENSIONS##*,exif,*}" ]; then - echo "---------- Install exif ----------" - docker-php-ext-install exif -fi - -if [ -z "${EXTENSIONS##*,bcmath,*}" ]; then - echo "---------- Install bcmath ----------" - docker-php-ext-install bcmath -fi - -if [ -z "${EXTENSIONS##*,calendar,*}" ]; then - echo "---------- Install calendar ----------" - docker-php-ext-install calendar -fi - -if [ -z "${EXTENSIONS##*,sockets,*}" ]; then - echo "---------- Install sockets ----------" - docker-php-ext-install sockets -fi - -if [ -z "${EXTENSIONS##*,gettext,*}" ]; then - echo "---------- Install gettext ----------" - docker-php-ext-install gettext -fi - -if [ -z "${EXTENSIONS##*,shmop,*}" ]; then - echo "---------- Install shmop ----------" - docker-php-ext-install shmop -fi - -if [ -z "${EXTENSIONS##*,sysvmsg,*}" ]; then - echo "---------- Install sysvmsg ----------" - docker-php-ext-install sysvmsg -fi - -if [ -z "${EXTENSIONS##*,sysvsem,*}" ]; then - echo "---------- Install sysvsem ----------" - docker-php-ext-install sysvsem -fi - -if [ -z "${EXTENSIONS##*,sysvshm,*}" ]; then - echo "---------- Install sysvshm ----------" - docker-php-ext-install sysvshm -fi - -if [ -z "${EXTENSIONS##*,pdo_firebird,*}" ]; then - echo "---------- Install pdo_firebird ----------" - docker-php-ext-install pdo_firebird -fi - -if [ -z "${EXTENSIONS##*,pdo_dblib,*}" ]; then - echo "---------- Install pdo_dblib ----------" - docker-php-ext-install pdo_dblib -fi - -if [ -z "${EXTENSIONS##*,pdo_oci,*}" ]; then - echo "---------- Install pdo_oci ----------" - docker-php-ext-install pdo_oci -fi - -if [ -z "${EXTENSIONS##*,pdo_odbc,*}" ]; then - echo "---------- Install pdo_odbc ----------" - docker-php-ext-install pdo_odbc -fi - -if [ -z "${EXTENSIONS##*,pdo_pgsql,*}" ]; then - echo "---------- Install pdo_pgsql ----------" - docker-php-ext-install pdo_pgsql -fi - -if [ -z "${EXTENSIONS##*,pgsql,*}" ]; then - echo "---------- Install pgsql ----------" - docker-php-ext-install pgsql -fi - -if [ -z "${EXTENSIONS##*,oci8,*}" ]; then - echo "---------- Install oci8 ----------" - docker-php-ext-install oci8 -fi - -if [ -z "${EXTENSIONS##*,odbc,*}" ]; then - echo "---------- Install odbc ----------" - docker-php-ext-install odbc -fi - -if [ -z "${EXTENSIONS##*,dba,*}" ]; then - echo "---------- Install dba ----------" - docker-php-ext-install dba -fi - -if [ -z "${EXTENSIONS##*,interbase,*}" ]; then - echo "---------- Install interbase ----------" - docker-php-ext-install interbase -fi - -if [ -z "${EXTENSIONS##*,soap,*}" ]; then - echo "---------- Install soap ----------" - apt-get install -y libxml2-dev - docker-php-ext-install soap -fi - - -if [ -z "${EXTENSIONS##*,xsl,*}" ]; then - echo "---------- Install xsl ----------" - apt-get install -y libxml2-dev - apt-get install -y libxslt-dev - docker-php-ext-install xsl -fi - -if [ -z "${EXTENSIONS##*,xmlrpc,*}" ]; then - echo "---------- Install xmlrpc ----------" - apt-get install -y libxml2-dev - apt-get install -y libxslt-dev - docker-php-ext-install xmlrpc -fi - -if [ -z "${EXTENSIONS##*,wddx,*}" ]; then - echo "---------- Install wddx ----------" - apt-get install -y libxml2-dev - apt-get install -y libxslt-dev - docker-php-ext-install wddx -fi - -if [ -z "${EXTENSIONS##*,curl,*}" ]; then - echo "---------- Install curl ----------" - apt-get install -y curl - apt-get install -y libcurl3 - apt-get install -y libcurl4-openssl-dev - docker-php-ext-install curl -fi - -if [ -z "${EXTENSIONS##*,readline,*}" ]; then - echo "---------- Install readline ----------" - apt-get install -y libreadline-dev - docker-php-ext-install readline -fi - -if [ -z "${EXTENSIONS##*,snmp,*}" ]; then - echo "---------- Install snmp ----------" - apt-get install -y libsnmp-dev - apt-get install -y snmp - docker-php-ext-install snmp -fi - -if [ -z "${EXTENSIONS##*,pspell,*}" ]; then - echo "---------- Install pspell ----------" - apt-get install -y libpspell-dev - apt-get install -y aspell-en - docker-php-ext-install pspell -fi - -if [ -z "${EXTENSIONS##*,recode,*}" ]; then - echo "---------- Install recode ----------" - apt-get install -y librecode0 - apt-get install -y librecode-dev - docker-php-ext-install recode -fi - -if [ -z "${EXTENSIONS##*,tidy,*}" ]; then - echo "---------- Install tidy ----------" - apt-get install -y libtidy-dev - docker-php-ext-install tidy -fi - -if [ -z "${EXTENSIONS##*,gmp,*}" ]; then - echo "---------- Install gmp ----------" - apt-get install -y libgmp-dev - ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h - docker-php-ext-install gmp -fi - -if [ -z "${EXTENSIONS##*,imap,*}" ]; then - echo "---------- Install imap ----------" - apt-get install -y libc-client-dev - docker-php-ext-configure imap --with-kerberos --with-imap-ssl - docker-php-ext-install imap -fi - -if [ -z "${EXTENSIONS##*,ldap,*}" ]; then - echo "---------- Install ldap ----------" - apt-get install -y libldb-dev - apt-get install -y libldap2-dev - docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu - docker-php-ext-install ldap -fi - -if [ -z "${EXTENSIONS##*,imagick,*}" ]; then - echo "---------- Install imagick ----------" - apt-get install -y libmagickwand-dev - pecl install imagick-3.4.3 - docker-php-ext-enable imagick -fi - -if [ -z "${EXTENSIONS##*,memcached,*}" ]; then - echo "---------- Install memcached ----------" - apt-get install -y libmemcached-dev - pecl install memcached-2.2.0 - docker-php-ext-enable memcached -fi - -if [ -z "${EXTENSIONS##*,sqlsrv,*}" ]; then - echo "---------- Install sqlsrv ----------" - apt-get install -y unixodbc-dev - pecl install sqlsrv - docker-php-ext-enable sqlsrv -fi - -if [ -z "${EXTENSIONS##*,pdo_sqlsrv,*}" ]; then - echo "---------- Install pdo_sqlsrv ----------" - apt-get install -y unixodbc-dev - pecl install pdo_sqlsrv - docker-php-ext-enable pdo_sqlsrv -fi - -if [ -z "${EXTENSIONS##*,redis,*}" ]; then - echo "---------- Install redis ----------" - installExtensionFromTgz redis-4.1.1 -fi \ No newline at end of file diff --git a/php5/5.4.45/build/php/extensions/redis-4.1.1.tgz b/php5/5.4.45/build/php/extensions/redis-4.1.1.tgz deleted file mode 100644 index 95d3f7436..000000000 Binary files a/php5/5.4.45/build/php/extensions/redis-4.1.1.tgz and /dev/null differ diff --git a/php5/5.4.45/build/php/extensions/xdebug-2.4.1.tgz b/php5/5.4.45/build/php/extensions/xdebug-2.4.1.tgz deleted file mode 100644 index 59afc8f96..000000000 Binary files a/php5/5.4.45/build/php/extensions/xdebug-2.4.1.tgz and /dev/null differ diff --git a/php5/5.4.45/build/php/extensions/zendopcache-7.0.5.tgz b/php5/5.4.45/build/php/extensions/zendopcache-7.0.5.tgz deleted file mode 100644 index aee8761c0..000000000 Binary files a/php5/5.4.45/build/php/extensions/zendopcache-7.0.5.tgz and /dev/null differ diff --git a/php5/5.4.45/build/php/php-fpm.conf b/php5/5.4.45/build/php/php-fpm.conf deleted file mode 100644 index 131835891..000000000 --- a/php5/5.4.45/build/php/php-fpm.conf +++ /dev/null @@ -1,423 +0,0 @@ -; Start a new pool named 'www'. -; the variable $pool can be used in any directive and will be replaced by the -; pool name ('www' here) -[www] - -; Per pool prefix -; It only applies on the following directives: -; - 'access.log' -; - 'slowlog' -; - 'listen' (unixsocket) -; - 'chroot' -; - 'chdir' -; - 'php_values' -; - 'php_admin_values' -; When not set, the global prefix (or NONE) applies instead. -; Note: This directive can also be relative to the global prefix. -; Default Value: none -;prefix = /path/to/pools/$pool - -; Unix user/group of processes -; Note: The user is mandatory. If the group is not set, the default user's group -; will be used. -user = www-data -group = www-data - -; The address on which to accept FastCGI requests. -; Valid syntaxes are: -; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on -; a specific port; -; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on -; a specific port; -; 'port' - to listen on a TCP socket to all addresses -; (IPv6 and IPv4-mapped) on a specific port; -; '/path/to/unix/socket' - to listen on a unix socket. -; Note: This value is mandatory. -listen = 127.0.0.1:9000 - -; Set listen(2) backlog. -; Default Value: 511 (-1 on FreeBSD and OpenBSD) -;listen.backlog = 511 - -; Set permissions for unix socket, if one is used. In Linux, read/write -; permissions must be set in order to allow connections from a web server. Many -; BSD-derived systems allow connections regardless of permissions. -; Default Values: user and group are set as the running user -; mode is set to 0660 -;listen.owner = www-data -;listen.group = www-data -;listen.mode = 0660 -; When POSIX Access Control Lists are supported you can set them using -; these options, value is a comma separated list of user/group names. -; When set, listen.owner and listen.group are ignored -;listen.acl_users = -;listen.acl_groups = - -; List of addresses (IPv4/IPv6) of FastCGI clients which are allowed to connect. -; Equivalent to the FCGI_WEB_SERVER_ADDRS environment variable in the original -; PHP FCGI (5.2.2+). Makes sense only with a tcp listening socket. Each address -; must be separated by a comma. If this value is left blank, connections will be -; accepted from any ip address. -; Default Value: any -;listen.allowed_clients = 127.0.0.1 - -; Specify the nice(2) priority to apply to the pool processes (only if set) -; The value can vary from -19 (highest priority) to 20 (lower priority) -; Note: - It will only work if the FPM master process is launched as root -; - The pool processes will inherit the master process priority -; unless it specified otherwise -; Default Value: no set -; process.priority = -19 - -; Set the process dumpable flag (PR_SET_DUMPABLE prctl) even if the process user -; or group is differrent than the master process user. It allows to create process -; core dump and ptrace the process for the pool user. -; Default Value: no -; process.dumpable = yes - -; Choose how the process manager will control the number of child processes. -; Possible Values: -; static - a fixed number (pm.max_children) of child processes; -; dynamic - the number of child processes are set dynamically based on the -; following directives. With this process management, there will be -; always at least 1 children. -; pm.max_children - the maximum number of children that can -; be alive at the same time. -; pm.start_servers - the number of children created on startup. -; pm.min_spare_servers - the minimum number of children in 'idle' -; state (waiting to process). If the number -; of 'idle' processes is less than this -; number then some children will be created. -; pm.max_spare_servers - the maximum number of children in 'idle' -; state (waiting to process). If the number -; of 'idle' processes is greater than this -; number then some children will be killed. -; ondemand - no children are created at startup. Children will be forked when -; new requests will connect. The following parameter are used: -; pm.max_children - the maximum number of children that -; can be alive at the same time. -; pm.process_idle_timeout - The number of seconds after which -; an idle process will be killed. -; Note: This value is mandatory. -pm = dynamic - -; The number of child processes to be created when pm is set to 'static' and the -; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'. -; This value sets the limit on the number of simultaneous requests that will be -; served. Equivalent to the ApacheMaxClients directive with mpm_prefork. -; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP -; CGI. The below defaults are based on a server without much resources. Don't -; forget to tweak pm.* to fit your needs. -; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand' -; Note: This value is mandatory. -pm.max_children = 10 - -; The number of child processes created on startup. -; Note: Used only when pm is set to 'dynamic' -; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2 -pm.start_servers = 2 - -; The desired minimum number of idle server processes. -; Note: Used only when pm is set to 'dynamic' -; Note: Mandatory when pm is set to 'dynamic' -pm.min_spare_servers = 1 - -; The desired maximum number of idle server processes. -; Note: Used only when pm is set to 'dynamic' -; Note: Mandatory when pm is set to 'dynamic' -pm.max_spare_servers = 3 - -; The number of seconds after which an idle process will be killed. -; Note: Used only when pm is set to 'ondemand' -; Default Value: 10s -;pm.process_idle_timeout = 10s; - -; The number of requests each child process should execute before respawning. -; This can be useful to work around memory leaks in 3rd party libraries. For -; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS. -; Default Value: 0 -;pm.max_requests = 500 - -; The URI to view the FPM status page. If this value is not set, no URI will be -; recognized as a status page. It shows the following informations: -; pool - the name of the pool; -; process manager - static, dynamic or ondemand; -; start time - the date and time FPM has started; -; start since - number of seconds since FPM has started; -; accepted conn - the number of request accepted by the pool; -; listen queue - the number of request in the queue of pending -; connections (see backlog in listen(2)); -; max listen queue - the maximum number of requests in the queue -; of pending connections since FPM has started; -; listen queue len - the size of the socket queue of pending connections; -; idle processes - the number of idle processes; -; active processes - the number of active processes; -; total processes - the number of idle + active processes; -; max active processes - the maximum number of active processes since FPM -; has started; -; max children reached - number of times, the process limit has been reached, -; when pm tries to start more children (works only for -; pm 'dynamic' and 'ondemand'); -; Value are updated in real time. -; Example output: -; pool: www -; process manager: static -; start time: 01/Jul/2011:17:53:49 +0200 -; start since: 62636 -; accepted conn: 190460 -; listen queue: 0 -; max listen queue: 1 -; listen queue len: 42 -; idle processes: 4 -; active processes: 11 -; total processes: 15 -; max active processes: 12 -; max children reached: 0 -; -; By default the status page output is formatted as text/plain. Passing either -; 'html', 'xml' or 'json' in the query string will return the corresponding -; output syntax. Example: -; http://www.foo.bar/status -; http://www.foo.bar/status?json -; http://www.foo.bar/status?html -; http://www.foo.bar/status?xml -; -; By default the status page only outputs short status. Passing 'full' in the -; query string will also return status for each pool process. -; Example: -; http://www.foo.bar/status?full -; http://www.foo.bar/status?json&full -; http://www.foo.bar/status?html&full -; http://www.foo.bar/status?xml&full -; The Full status returns for each process: -; pid - the PID of the process; -; state - the state of the process (Idle, Running, ...); -; start time - the date and time the process has started; -; start since - the number of seconds since the process has started; -; requests - the number of requests the process has served; -; request duration - the duration in µs of the requests; -; request method - the request method (GET, POST, ...); -; request URI - the request URI with the query string; -; content length - the content length of the request (only with POST); -; user - the user (PHP_AUTH_USER) (or '-' if not set); -; script - the main script called (or '-' if not set); -; last request cpu - the %cpu the last request consumed -; it's always 0 if the process is not in Idle state -; because CPU calculation is done when the request -; processing has terminated; -; last request memory - the max amount of memory the last request consumed -; it's always 0 if the process is not in Idle state -; because memory calculation is done when the request -; processing has terminated; -; If the process is in Idle state, then informations are related to the -; last request the process has served. Otherwise informations are related to -; the current request being served. -; Example output: -; ************************ -; pid: 31330 -; state: Running -; start time: 01/Jul/2011:17:53:49 +0200 -; start since: 63087 -; requests: 12808 -; request duration: 1250261 -; request method: GET -; request URI: /test_mem.php?N=10000 -; content length: 0 -; user: - -; script: /home/fat/web/docs/php/test_mem.php -; last request cpu: 0.00 -; last request memory: 0 -; -; Note: There is a real-time FPM status monitoring sample web page available -; It's available in: /usr/local/share/php/fpm/status.html -; -; Note: The value must start with a leading slash (/). The value can be -; anything, but it may not be a good idea to use the .php extension or it -; may conflict with a real PHP file. -; Default Value: not set -;pm.status_path = /status - -; The ping URI to call the monitoring page of FPM. If this value is not set, no -; URI will be recognized as a ping page. This could be used to test from outside -; that FPM is alive and responding, or to -; - create a graph of FPM availability (rrd or such); -; - remove a server from a group if it is not responding (load balancing); -; - trigger alerts for the operating team (24/7). -; Note: The value must start with a leading slash (/). The value can be -; anything, but it may not be a good idea to use the .php extension or it -; may conflict with a real PHP file. -; Default Value: not set -;ping.path = /ping - -; This directive may be used to customize the response of a ping request. The -; response is formatted as text/plain with a 200 response code. -; Default Value: pong -;ping.response = pong - -; The access log file -; Default: not set -;access.log = log/$pool.access.log - -; The access log format. -; The following syntax is allowed -; %%: the '%' character -; %C: %CPU used by the request -; it can accept the following format: -; - %{user}C for user CPU only -; - %{system}C for system CPU only -; - %{total}C for user + system CPU (default) -; %d: time taken to serve the request -; it can accept the following format: -; - %{seconds}d (default) -; - %{miliseconds}d -; - %{mili}d -; - %{microseconds}d -; - %{micro}d -; %e: an environment variable (same as $_ENV or $_SERVER) -; it must be associated with embraces to specify the name of the env -; variable. Some exemples: -; - server specifics like: %{REQUEST_METHOD}e or %{SERVER_PROTOCOL}e -; - HTTP headers like: %{HTTP_HOST}e or %{HTTP_USER_AGENT}e -; %f: script filename -; %l: content-length of the request (for POST request only) -; %m: request method -; %M: peak of memory allocated by PHP -; it can accept the following format: -; - %{bytes}M (default) -; - %{kilobytes}M -; - %{kilo}M -; - %{megabytes}M -; - %{mega}M -; %n: pool name -; %o: output header -; it must be associated with embraces to specify the name of the header: -; - %{Content-Type}o -; - %{X-Powered-By}o -; - %{Transfert-Encoding}o -; - .... -; %p: PID of the child that serviced the request -; %P: PID of the parent of the child that serviced the request -; %q: the query string -; %Q: the '?' character if query string exists -; %r: the request URI (without the query string, see %q and %Q) -; %R: remote IP address -; %s: status (response code) -; %t: server time the request was received -; it can accept a strftime(3) format: -; %d/%b/%Y:%H:%M:%S %z (default) -; The strftime(3) format must be encapsuled in a %{}t tag -; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t -; %T: time the log has been written (the request has finished) -; it can accept a strftime(3) format: -; %d/%b/%Y:%H:%M:%S %z (default) -; The strftime(3) format must be encapsuled in a %{}t tag -; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t -; %u: remote user -; -; Default: "%R - %u %t \"%m %r\" %s" -;access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%" - -; The log file for slow requests -; Default Value: not set -; Note: slowlog is mandatory if request_slowlog_timeout is set -slowlog = /var/log/php/fpm.slow.log - -; The timeout for serving a single request after which a PHP backtrace will be -; dumped to the 'slowlog' file. A value of '0s' means 'off'. -; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) -; Default Value: 0 -request_slowlog_timeout = 3 - -; Depth of slow log stack trace. -; Default Value: 20 -;request_slowlog_trace_depth = 20 - -; The timeout for serving a single request after which the worker process will -; be killed. This option should be used when the 'max_execution_time' ini option -; does not stop script execution for some reason. A value of '0' means 'off'. -; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) -; Default Value: 0 -;request_terminate_timeout = 0 - -; Set open file descriptor rlimit. -; Default Value: system defined value -;rlimit_files = 1024 - -; Set max core size rlimit. -; Possible Values: 'unlimited' or an integer greater or equal to 0 -; Default Value: system defined value -;rlimit_core = 0 - -; Chroot to this directory at the start. This value must be defined as an -; absolute path. When this value is not set, chroot is not used. -; Note: you can prefix with '$prefix' to chroot to the pool prefix or one -; of its subdirectories. If the pool prefix is not set, the global prefix -; will be used instead. -; Note: chrooting is a great security feature and should be used whenever -; possible. However, all PHP paths will be relative to the chroot -; (error_log, sessions.save_path, ...). -; Default Value: not set -;chroot = - -; Chdir to this directory at the start. -; Note: relative path can be used. -; Default Value: current directory or / when chroot -;chdir = /var/www - -; Redirect worker stdout and stderr into main error log. If not set, stdout and -; stderr will be redirected to /dev/null according to FastCGI specs. -; Note: on highloaded environement, this can cause some delay in the page -; process time (several ms). -; Default Value: no -catch_workers_output = yes - -; Clear environment in FPM workers -; Prevents arbitrary environment variables from reaching FPM worker processes -; by clearing the environment in workers before env vars specified in this -; pool configuration are added. -; Setting to "no" will make all environment variables available to PHP code -; via getenv(), $_ENV and $_SERVER. -; Default Value: yes -;clear_env = no - -; Limits the extensions of the main script FPM will allow to parse. This can -; prevent configuration mistakes on the web server side. You should only limit -; FPM to .php extensions to prevent malicious users to use other extensions to -; execute php code. -; Note: set an empty value to allow all extensions. -; Default Value: .php -;security.limit_extensions = .php .php3 .php4 .php5 .php7 - -; Pass environment variables like LD_LIBRARY_PATH. All $VARIABLEs are taken from -; the current environment. -; Default Value: clean env -;env[HOSTNAME] = $HOSTNAME -;env[PATH] = /usr/local/bin:/usr/bin:/bin -;env[TMP] = /tmp -;env[TMPDIR] = /tmp -;env[TEMP] = /tmp - -; Additional php.ini defines, specific to this pool of workers. These settings -; overwrite the values previously defined in the php.ini. The directives are the -; same as the PHP SAPI: -; php_value/php_flag - you can set classic ini defines which can -; be overwritten from PHP call 'ini_set'. -; php_admin_value/php_admin_flag - these directives won't be overwritten by -; PHP call 'ini_set' -; For php_*flag, valid values are on, off, 1, 0, true, false, yes or no. - -; Defining 'extension' will load the corresponding shared extension from -; extension_dir. Defining 'disable_functions' or 'disable_classes' will not -; overwrite previously defined php.ini values, but will append the new value -; instead. - -; Note: path INI options can be relative and will be expanded with the prefix -; (pool, global or /usr/local) - -; Default Value: nothing is defined by default except the values in php.ini and -; specified at startup with the -d argument -;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com -;php_flag[display_errors] = off -;php_admin_value[error_log] = /var/log/fpm-php.www.log -;php_admin_flag[log_errors] = on -;php_admin_value[memory_limit] = 32M diff --git a/php5/5.4.45/build/php/php.ini b/php5/5.4.45/build/php/php.ini deleted file mode 100644 index b04e16401..000000000 --- a/php5/5.4.45/build/php/php.ini +++ /dev/null @@ -1,1933 +0,0 @@ -[PHP] - -;;;;;;;;;;;;;;;;;;; -; About php.ini ; -;;;;;;;;;;;;;;;;;;; -; PHP's initialization file, generally called php.ini, is responsible for -; configuring many of the aspects of PHP's behavior. - -; PHP attempts to find and load this configuration from a number of locations. -; The following is a summary of its search order: -; 1. SAPI module specific location. -; 2. The PHPRC environment variable. (As of PHP 5.2.0) -; 3. A number of predefined registry keys on Windows (As of PHP 5.2.0) -; 4. Current working directory (except CLI) -; 5. The web server's directory (for SAPI modules), or directory of PHP -; (otherwise in Windows) -; 6. The directory from the --with-config-file-path compile time option, or the -; Windows directory (C:\windows or C:\winnt) -; See the PHP docs for more specific information. -; http://php.net/configuration.file - -; The syntax of the file is extremely simple. Whitespace and lines -; beginning with a semicolon are silently ignored (as you probably guessed). -; Section headers (e.g. [Foo]) are also silently ignored, even though -; they might mean something in the future. - -; Directives following the section heading [PATH=/www/mysite] only -; apply to PHP files in the /www/mysite directory. Directives -; following the section heading [HOST=www.example.com] only apply to -; PHP files served from www.example.com. Directives set in these -; special sections cannot be overridden by user-defined INI files or -; at runtime. Currently, [PATH=] and [HOST=] sections only work under -; CGI/FastCGI. -; http://php.net/ini.sections - -; Directives are specified using the following syntax: -; directive = value -; Directive names are *case sensitive* - foo=bar is different from FOO=bar. -; Directives are variables used to configure PHP or PHP extensions. -; There is no name validation. If PHP can't find an expected -; directive because it is not set or is mistyped, a default value will be used. - -; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one -; of the INI constants (On, Off, True, False, Yes, No and None) or an expression -; (e.g. E_ALL & ~E_NOTICE), a quoted string ("bar"), or a reference to a -; previously set variable or directive (e.g. ${foo}) - -; Expressions in the INI file are limited to bitwise operators and parentheses: -; | bitwise OR -; ^ bitwise XOR -; & bitwise AND -; ~ bitwise NOT -; ! boolean NOT - -; Boolean flags can be turned on using the values 1, On, True or Yes. -; They can be turned off using the values 0, Off, False or No. - -; An empty string can be denoted by simply not writing anything after the equal -; sign, or by using the None keyword: - -; foo = ; sets foo to an empty string -; foo = None ; sets foo to an empty string -; foo = "None" ; sets foo to the string 'None' - -; If you use constants in your value, and these constants belong to a -; dynamically loaded extension (either a PHP extension or a Zend extension), -; you may only use these constants *after* the line that loads the extension. - -;;;;;;;;;;;;;;;;;;; -; About this file ; -;;;;;;;;;;;;;;;;;;; -; PHP comes packaged with two INI files. One that is recommended to be used -; in production environments and one that is recommended to be used in -; development environments. - -; php.ini-production contains settings which hold security, performance and -; best practices at its core. But please be aware, these settings may break -; compatibility with older or less security conscience applications. We -; recommending using the production ini in production and testing environments. - -; php.ini-development is very similar to its production variant, except it is -; much more verbose when it comes to errors. We recommend using the -; development version only in development environments, as errors shown to -; application users can inadvertently leak otherwise secure information. - -; This is php.ini-production INI file. - -;;;;;;;;;;;;;;;;;;; -; Quick Reference ; -;;;;;;;;;;;;;;;;;;; -; The following are all the settings which are different in either the production -; or development versions of the INIs with respect to PHP's default behavior. -; Please see the actual settings later in the document for more details as to why -; we recommend these changes in PHP's behavior. - -; display_errors -; Default Value: On -; Development Value: On -; Production Value: Off - -; display_startup_errors -; Default Value: Off -; Development Value: On -; Production Value: Off - -; error_reporting -; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT - -; html_errors -; Default Value: On -; Development Value: On -; Production value: On - -; log_errors -; Default Value: Off -; Development Value: On -; Production Value: On - -; max_input_time -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) - -; output_buffering -; Default Value: Off -; Development Value: 4096 -; Production Value: 4096 - -; register_argc_argv -; Default Value: On -; Development Value: Off -; Production Value: Off - -; request_order -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" - -; session.gc_divisor -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 - -; session.sid_bits_per_character -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 - -; short_open_tag -; Default Value: On -; Development Value: Off -; Production Value: Off - -; track_errors -; Default Value: Off -; Development Value: On -; Production Value: Off - -; variables_order -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS" - -;;;;;;;;;;;;;;;;;;;; -; php.ini Options ; -;;;;;;;;;;;;;;;;;;;; -; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini" -;user_ini.filename = ".user.ini" - -; To disable this feature set this option to empty value -;user_ini.filename = - -; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes) -;user_ini.cache_ttl = 300 - -;;;;;;;;;;;;;;;;;;;; -; Language Options ; -;;;;;;;;;;;;;;;;;;;; - -; Enable the PHP scripting language engine under Apache. -; http://php.net/engine -engine = On - -; This directive determines whether or not PHP will recognize code between -; tags as PHP source which should be processed as such. It is -; generally recommended that should be used and that this feature -; should be disabled, as enabling it may result in issues when generating XML -; documents, however this remains supported for backward compatibility reasons. -; Note that this directive does not control the would work. -; http://php.net/syntax-highlighting -;highlight.string = #DD0000 -;highlight.comment = #FF9900 -;highlight.keyword = #007700 -;highlight.default = #0000BB -;highlight.html = #000000 - -; If enabled, the request will be allowed to complete even if the user aborts -; the request. Consider enabling it if executing long requests, which may end up -; being interrupted by the user or a browser timing out. PHP's default behavior -; is to disable this feature. -; http://php.net/ignore-user-abort -;ignore_user_abort = On - -; Determines the size of the realpath cache to be used by PHP. This value should -; be increased on systems where PHP opens many files to reflect the quantity of -; the file operations performed. -; http://php.net/realpath-cache-size -;realpath_cache_size = 4096k - -; Duration of time, in seconds for which to cache realpath information for a given -; file or directory. For systems with rarely changing files, consider increasing this -; value. -; http://php.net/realpath-cache-ttl -;realpath_cache_ttl = 120 - -; Enables or disables the circular reference collector. -; http://php.net/zend.enable-gc -zend.enable_gc = On - -; If enabled, scripts may be written in encodings that are incompatible with -; the scanner. CP936, Big5, CP949 and Shift_JIS are the examples of such -; encodings. To use this feature, mbstring extension must be enabled. -; Default: Off -;zend.multibyte = Off - -; Allows to set the default encoding for the scripts. This value will be used -; unless "declare(encoding=...)" directive appears at the top of the script. -; Only affects if zend.multibyte is set. -; Default: "" -;zend.script_encoding = - -;;;;;;;;;;;;;;;;; -; Miscellaneous ; -;;;;;;;;;;;;;;;;; - -; Decides whether PHP may expose the fact that it is installed on the server -; (e.g. by adding its signature to the Web server header). It is no security -; threat in any way, but it makes it possible to determine whether you use PHP -; on your server or not. -; http://php.net/expose-php -expose_php = Off - -;;;;;;;;;;;;;;;;;;; -; Resource Limits ; -;;;;;;;;;;;;;;;;;;; - -; Maximum execution time of each script, in seconds -; http://php.net/max-execution-time -; Note: This directive is hardcoded to 0 for the CLI SAPI -max_execution_time = 30 - -; Maximum amount of time each script may spend parsing request data. It's a good -; idea to limit this time on productions servers in order to eliminate unexpectedly -; long running scripts. -; Note: This directive is hardcoded to -1 for the CLI SAPI -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) -; http://php.net/max-input-time -max_input_time = 60 - -; Maximum input variable nesting level -; http://php.net/max-input-nesting-level -;max_input_nesting_level = 64 - -; How many GET/POST/COOKIE input variables may be accepted -; max_input_vars = 1000 - -; Maximum amount of memory a script may consume (128MB) -; http://php.net/memory-limit -memory_limit = 256M - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; Error handling and logging ; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -; This directive informs PHP of which errors, warnings and notices you would like -; it to take action for. The recommended way of setting values for this -; directive is through the use of the error level constants and bitwise -; operators. The error level constants are below here for convenience as well as -; some common settings and their meanings. -; By default, PHP is set to take action on all errors, notices and warnings EXCEPT -; those related to E_NOTICE and E_STRICT, which together cover best practices and -; recommended coding standards in PHP. For performance reasons, this is the -; recommend error reporting setting. Your production server shouldn't be wasting -; resources complaining about best practices and coding standards. That's what -; development servers and development settings are for. -; Note: The php.ini-development file has this setting as E_ALL. This -; means it pretty much reports everything which is exactly what you want during -; development and early testing. -; -; Error Level Constants: -; E_ALL - All errors and warnings (includes E_STRICT as of PHP 5.4.0) -; E_ERROR - fatal run-time errors -; E_RECOVERABLE_ERROR - almost fatal run-time errors -; E_WARNING - run-time warnings (non-fatal errors) -; E_PARSE - compile-time parse errors -; E_NOTICE - run-time notices (these are warnings which often result -; from a bug in your code, but it's possible that it was -; intentional (e.g., using an uninitialized variable and -; relying on the fact it is automatically initialized to an -; empty string) -; E_STRICT - run-time notices, enable to have PHP suggest changes -; to your code which will ensure the best interoperability -; and forward compatibility of your code -; E_CORE_ERROR - fatal errors that occur during PHP's initial startup -; E_CORE_WARNING - warnings (non-fatal errors) that occur during PHP's -; initial startup -; E_COMPILE_ERROR - fatal compile-time errors -; E_COMPILE_WARNING - compile-time warnings (non-fatal errors) -; E_USER_ERROR - user-generated error message -; E_USER_WARNING - user-generated warning message -; E_USER_NOTICE - user-generated notice message -; E_DEPRECATED - warn about code that will not work in future versions -; of PHP -; E_USER_DEPRECATED - user-generated deprecation warnings -; -; Common Values: -; E_ALL (Show all errors, warnings and notices including coding standards.) -; E_ALL & ~E_NOTICE (Show all errors, except for notices) -; E_ALL & ~E_NOTICE & ~E_STRICT (Show all errors, except for notices and coding standards warnings.) -; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors) -; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT -; http://php.net/error-reporting -error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT - -; This directive controls whether or not and where PHP will output errors, -; notices and warnings too. Error output is very useful during development, but -; it could be very dangerous in production environments. Depending on the code -; which is triggering the error, sensitive information could potentially leak -; out of your application such as database usernames and passwords or worse. -; For production environments, we recommend logging errors rather than -; sending them to STDOUT. -; Possible Values: -; Off = Do not display any errors -; stderr = Display errors to STDERR (affects only CGI/CLI binaries!) -; On or stdout = Display errors to STDOUT -; Default Value: On -; Development Value: On -; Production Value: Off -; http://php.net/display-errors -display_errors = Off - -; The display of errors which occur during PHP's startup sequence are handled -; separately from display_errors. PHP's default behavior is to suppress those -; errors from clients. Turning the display of startup errors on can be useful in -; debugging configuration problems. We strongly recommend you -; set this to 'off' for production servers. -; Default Value: Off -; Development Value: On -; Production Value: Off -; http://php.net/display-startup-errors -display_startup_errors = Off - -; Besides displaying errors, PHP can also log errors to locations such as a -; server-specific log, STDERR, or a location specified by the error_log -; directive found below. While errors should not be displayed on productions -; servers they should still be monitored and logging is a great way to do that. -; Default Value: Off -; Development Value: On -; Production Value: On -; http://php.net/log-errors -log_errors = On - -; Set maximum length of log_errors. In error_log information about the source is -; added. The default is 1024 and 0 allows to not apply any maximum length at all. -; http://php.net/log-errors-max-len -log_errors_max_len = 1024 - -; Do not log repeated messages. Repeated errors must occur in same file on same -; line unless ignore_repeated_source is set true. -; http://php.net/ignore-repeated-errors -ignore_repeated_errors = Off - -; Ignore source of message when ignoring repeated messages. When this setting -; is On you will not log errors with repeated messages from different files or -; source lines. -; http://php.net/ignore-repeated-source -ignore_repeated_source = Off - -; If this parameter is set to Off, then memory leaks will not be shown (on -; stdout or in the log). This has only effect in a debug compile, and if -; error reporting includes E_WARNING in the allowed list -; http://php.net/report-memleaks -report_memleaks = On - -; This setting is on by default. -;report_zend_debug = 0 - -; Store the last error/warning message in $php_errormsg (boolean). Setting this value -; to On can assist in debugging and is appropriate for development servers. It should -; however be disabled on production servers. -; Default Value: Off -; Development Value: On -; Production Value: Off -; http://php.net/track-errors -track_errors = Off - -; Turn off normal error reporting and emit XML-RPC error XML -; http://php.net/xmlrpc-errors -;xmlrpc_errors = 0 - -; An XML-RPC faultCode -;xmlrpc_error_number = 0 - -; When PHP displays or logs an error, it has the capability of formatting the -; error message as HTML for easier reading. This directive controls whether -; the error message is formatted as HTML or not. -; Note: This directive is hardcoded to Off for the CLI SAPI -; Default Value: On -; Development Value: On -; Production value: On -; http://php.net/html-errors -html_errors = On - -; If html_errors is set to On *and* docref_root is not empty, then PHP -; produces clickable error messages that direct to a page describing the error -; or function causing the error in detail. -; You can download a copy of the PHP manual from http://php.net/docs -; and change docref_root to the base URL of your local copy including the -; leading '/'. You must also specify the file extension being used including -; the dot. PHP's default behavior is to leave these settings empty, in which -; case no links to documentation are generated. -; Note: Never use this feature for production boxes. -; http://php.net/docref-root -; Examples -;docref_root = "/phpmanual/" - -; http://php.net/docref-ext -;docref_ext = .html - -; String to output before an error message. PHP's default behavior is to leave -; this setting blank. -; http://php.net/error-prepend-string -; Example: -;error_prepend_string = "" - -; String to output after an error message. PHP's default behavior is to leave -; this setting blank. -; http://php.net/error-append-string -; Example: -;error_append_string = "" - -; Log errors to specified file. PHP's default behavior is to leave this value -; empty. -; http://php.net/error-log -; Example: -;error_log = php_errors.log -; Log errors to syslog (Event Log on Windows). -error_log = /var/log/php/php.error.log - -;windows.show_crt_warning -; Default value: 0 -; Development value: 0 -; Production value: 0 - -;;;;;;;;;;;;;;;;; -; Data Handling ; -;;;;;;;;;;;;;;;;; - -; The separator used in PHP generated URLs to separate arguments. -; PHP's default setting is "&". -; http://php.net/arg-separator.output -; Example: -;arg_separator.output = "&" - -; List of separator(s) used by PHP to parse input URLs into variables. -; PHP's default setting is "&". -; NOTE: Every character in this directive is considered as separator! -; http://php.net/arg-separator.input -; Example: -;arg_separator.input = ";&" - -; This directive determines which super global arrays are registered when PHP -; starts up. G,P,C,E & S are abbreviations for the following respective super -; globals: GET, POST, COOKIE, ENV and SERVER. There is a performance penalty -; paid for the registration of these arrays and because ENV is not as commonly -; used as the others, ENV is not recommended on productions servers. You -; can still get access to the environment variables through getenv() should you -; need to. -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS"; -; http://php.net/variables-order -variables_order = "GPCS" - -; This directive determines which super global data (G,P & C) should be -; registered into the super global array REQUEST. If so, it also determines -; the order in which that data is registered. The values for this directive -; are specified in the same manner as the variables_order directive, -; EXCEPT one. Leaving this value empty will cause PHP to use the value set -; in the variables_order directive. It does not mean it will leave the super -; globals array REQUEST empty. -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" -; http://php.net/request-order -request_order = "GP" - -; This directive determines whether PHP registers $argv & $argc each time it -; runs. $argv contains an array of all the arguments passed to PHP when a script -; is invoked. $argc contains an integer representing the number of arguments -; that were passed when the script was invoked. These arrays are extremely -; useful when running scripts from the command line. When this directive is -; enabled, registering these variables consumes CPU cycles and memory each time -; a script is executed. For performance reasons, this feature should be disabled -; on production servers. -; Note: This directive is hardcoded to On for the CLI SAPI -; Default Value: On -; Development Value: Off -; Production Value: Off -; http://php.net/register-argc-argv -register_argc_argv = Off - -; When enabled, the ENV, REQUEST and SERVER variables are created when they're -; first used (Just In Time) instead of when the script starts. If these -; variables are not used within a script, having this directive on will result -; in a performance gain. The PHP directive register_argc_argv must be disabled -; for this directive to have any affect. -; http://php.net/auto-globals-jit -auto_globals_jit = On - -; Whether PHP will read the POST data. -; This option is enabled by default. -; Most likely, you won't want to disable this option globally. It causes $_POST -; and $_FILES to always be empty; the only way you will be able to read the -; POST data will be through the php://input stream wrapper. This can be useful -; to proxy requests or to process the POST data in a memory efficient fashion. -; http://php.net/enable-post-data-reading -;enable_post_data_reading = Off - -; Maximum size of POST data that PHP will accept. -; Its value may be 0 to disable the limit. It is ignored if POST data reading -; is disabled through enable_post_data_reading. -; http://php.net/post-max-size -post_max_size = 100M - -; Automatically add files before PHP document. -; http://php.net/auto-prepend-file -auto_prepend_file = - -; Automatically add files after PHP document. -; http://php.net/auto-append-file -auto_append_file = - -; By default, PHP will output a media type using the Content-Type header. To -; disable this, simply set it to be empty. -; -; PHP's built-in default media type is set to text/html. -; http://php.net/default-mimetype -default_mimetype = "text/html" - -; PHP's default character set is set to UTF-8. -; http://php.net/default-charset -default_charset = "UTF-8" - -; PHP internal character encoding is set to empty. -; If empty, default_charset is used. -; http://php.net/internal-encoding -;internal_encoding = - -; PHP input character encoding is set to empty. -; If empty, default_charset is used. -; http://php.net/input-encoding -;input_encoding = - -; PHP output character encoding is set to empty. -; If empty, default_charset is used. -; See also output_buffer. -; http://php.net/output-encoding -;output_encoding = - -;;;;;;;;;;;;;;;;;;;;;;;;; -; Paths and Directories ; -;;;;;;;;;;;;;;;;;;;;;;;;; - -; UNIX: "/path1:/path2" -;include_path = ".:/php/includes" -; -; Windows: "\path1;\path2" -;include_path = ".;c:\php\includes" -; -; PHP's default setting for include_path is ".;/path/to/php/pear" -; http://php.net/include-path - -; The root of the PHP pages, used only if nonempty. -; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root -; if you are running php as a CGI under any web server (other than IIS) -; see documentation for security issues. The alternate is to use the -; cgi.force_redirect configuration below -; http://php.net/doc-root -doc_root = - -; The directory under which PHP opens the script using /~username used only -; if nonempty. -; http://php.net/user-dir -user_dir = - -; Directory in which the loadable extensions (modules) reside. -; http://php.net/extension-dir -; extension_dir = "./" -; On windows: -; extension_dir = "ext" - -; Directory where the temporary files should be placed. -; Defaults to the system default (see sys_get_temp_dir) -; sys_temp_dir = "/tmp" - -; Whether or not to enable the dl() function. The dl() function does NOT work -; properly in multithreaded servers, such as IIS or Zeus, and is automatically -; disabled on them. -; http://php.net/enable-dl -enable_dl = Off - -; cgi.force_redirect is necessary to provide security running PHP as a CGI under -; most web servers. Left undefined, PHP turns this on by default. You can -; turn it off here AT YOUR OWN RISK -; **You CAN safely turn this off for IIS, in fact, you MUST.** -; http://php.net/cgi.force-redirect -;cgi.force_redirect = 1 - -; if cgi.nph is enabled it will force cgi to always sent Status: 200 with -; every request. PHP's default behavior is to disable this feature. -;cgi.nph = 1 - -; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape -; (iPlanet) web servers, you MAY need to set an environment variable name that PHP -; will look for to know it is OK to continue execution. Setting this variable MAY -; cause security issues, KNOW WHAT YOU ARE DOING FIRST. -; http://php.net/cgi.redirect-status-env -;cgi.redirect_status_env = - -; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's -; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok -; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting -; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting -; of zero causes PHP to behave as before. Default is 1. You should fix your scripts -; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. -; http://php.net/cgi.fix-pathinfo -;cgi.fix_pathinfo=1 - -; if cgi.discard_path is enabled, the PHP CGI binary can safely be placed outside -; of the web tree and people will not be able to circumvent .htaccess security. -; http://php.net/cgi.dicard-path -;cgi.discard_path=1 - -; FastCGI under IIS (on WINNT based OS) supports the ability to impersonate -; security tokens of the calling client. This allows IIS to define the -; security context that the request runs under. mod_fastcgi under Apache -; does not currently support this feature (03/17/2002) -; Set to 1 if running under IIS. Default is zero. -; http://php.net/fastcgi.impersonate -;fastcgi.impersonate = 1 - -; Disable logging through FastCGI connection. PHP's default behavior is to enable -; this feature. -;fastcgi.logging = 0 - -; cgi.rfc2616_headers configuration option tells PHP what type of headers to -; use when sending HTTP response code. If set to 0, PHP sends Status: header that -; is supported by Apache. When this option is set to 1, PHP will send -; RFC2616 compliant header. -; Default is zero. -; http://php.net/cgi.rfc2616-headers -;cgi.rfc2616_headers = 0 - -; cgi.check_shebang_line controls whether CGI PHP checks for line starting with #! -; (shebang) at the top of the running script. This line might be needed if the -; script support running both as stand-alone script and via PHP CGI<. PHP in CGI -; mode skips this line and ignores its content if this directive is turned on. -; http://php.net/cgi.check-shebang-line -;cgi.check_shebang_line=1 - -;;;;;;;;;;;;;;;; -; File Uploads ; -;;;;;;;;;;;;;;;; - -; Whether to allow HTTP file uploads. -; http://php.net/file-uploads -file_uploads = On - -; Temporary directory for HTTP uploaded files (will use system default if not -; specified). -; http://php.net/upload-tmp-dir -;upload_tmp_dir = - -; Maximum allowed size for uploaded files. -; http://php.net/upload-max-filesize -upload_max_filesize = 50M - -; Maximum number of files that can be uploaded via a single request -max_file_uploads = 20 - -;;;;;;;;;;;;;;;;;; -; Fopen wrappers ; -;;;;;;;;;;;;;;;;;; - -; Whether to allow the treatment of URLs (like http:// or ftp://) as files. -; http://php.net/allow-url-fopen -allow_url_fopen = On - -; Whether to allow include/require to open URLs (like http:// or ftp://) as files. -; http://php.net/allow-url-include -allow_url_include = Off - -; Define the anonymous ftp password (your email address). PHP's default setting -; for this is empty. -; http://php.net/from -;from="john@doe.com" - -; Define the User-Agent string. PHP's default setting for this is empty. -; http://php.net/user-agent -;user_agent="PHP" - -; Default timeout for socket based streams (seconds) -; http://php.net/default-socket-timeout -default_socket_timeout = 60 - -; If your scripts have to deal with files from Macintosh systems, -; or you are running on a Mac and need to deal with files from -; unix or win32 systems, setting this flag will cause PHP to -; automatically detect the EOL character in those files so that -; fgets() and file() will work regardless of the source of the file. -; http://php.net/auto-detect-line-endings -;auto_detect_line_endings = Off - -;;;;;;;;;;;;;;;;;;;;;; -; Dynamic Extensions ; -;;;;;;;;;;;;;;;;;;;;;; - -; If you wish to have an extension loaded automatically, use the following -; syntax: -; -; extension=modulename.extension -; -; For example, on Windows: -; -; extension=mysqli.dll -; -; ... or under UNIX: -; -; extension=mysqli.so -; -; ... or with a path: -; -; extension=/path/to/extension/mysqli.so -; -; If you only provide the name of the extension, PHP will look for it in its -; default extension directory. -; -; Windows Extensions -; Note that ODBC support is built in, so no dll is needed for it. -; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5+) -; extension folders as well as the separate PECL DLL download (PHP 5+). -; Be sure to appropriately set the extension_dir directive. -; -;extension=php_bz2.dll -;extension=php_curl.dll -;extension=php_fileinfo.dll -;extension=php_ftp.dll -;extension=php_gd2.dll -;extension=php_gettext.dll -;extension=php_gmp.dll -;extension=php_intl.dll -;extension=php_imap.dll -;extension=php_interbase.dll -;extension=php_ldap.dll -;extension=php_mbstring.dll -;extension=php_exif.dll ; Must be after mbstring as it depends on it -;extension=php_mysqli.dll -;extension=php_oci8_12c.dll ; Use with Oracle Database 12c Instant Client -;extension=php_openssl.dll -;extension=php_pdo_firebird.dll -;extension=php_pdo_mysql.dll -;extension=php_pdo_oci.dll -;extension=php_pdo_odbc.dll -;extension=php_pdo_pgsql.dll -;extension=php_pdo_sqlite.dll -;extension=php_pgsql.dll -;extension=php_shmop.dll - -; The MIBS data available in the PHP distribution must be installed. -; See http://www.php.net/manual/en/snmp.installation.php -;extension=php_snmp.dll - -;extension=php_soap.dll -;extension=php_sockets.dll -;extension=php_sqlite3.dll -;extension=php_tidy.dll -;extension=php_xmlrpc.dll -;extension=php_xsl.dll - -;;;;;;;;;;;;;;;;;;; -; Module Settings ; -;;;;;;;;;;;;;;;;;;; - -[CLI Server] -; Whether the CLI web server uses ANSI color coding in its terminal output. -cli_server.color = On - -[Date] -; Defines the default timezone used by the date functions -; http://php.net/date.timezone -date.timezone = Asia/Shanghai - -; http://php.net/date.default-latitude -;date.default_latitude = 31.7667 - -; http://php.net/date.default-longitude -;date.default_longitude = 35.2333 - -; http://php.net/date.sunrise-zenith -;date.sunrise_zenith = 90.583333 - -; http://php.net/date.sunset-zenith -;date.sunset_zenith = 90.583333 - -[filter] -; http://php.net/filter.default -;filter.default = unsafe_raw - -; http://php.net/filter.default-flags -;filter.default_flags = - -[iconv] -; Use of this INI entry is deprecated, use global input_encoding instead. -; If empty, default_charset or input_encoding or iconv.input_encoding is used. -; The precedence is: default_charset < intput_encoding < iconv.input_encoding -;iconv.input_encoding = - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;iconv.internal_encoding = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; If empty, default_charset or output_encoding or iconv.output_encoding is used. -; The precedence is: default_charset < output_encoding < iconv.output_encoding -; To use an output encoding conversion, iconv's output handler must be set -; otherwise output encoding conversion cannot be performed. -;iconv.output_encoding = - -[intl] -;intl.default_locale = -; This directive allows you to produce PHP errors when some error -; happens within intl functions. The value is the level of the error produced. -; Default is 0, which does not produce any errors. -;intl.error_level = E_WARNING -;intl.use_exceptions = 0 - -[sqlite3] -;sqlite3.extension_dir = - -[Pcre] -;PCRE library backtracking limit. -; http://php.net/pcre.backtrack-limit -;pcre.backtrack_limit=100000 - -;PCRE library recursion limit. -;Please note that if you set this value to a high number you may consume all -;the available process stack and eventually crash PHP (due to reaching the -;stack size limit imposed by the Operating System). -; http://php.net/pcre.recursion-limit -;pcre.recursion_limit=100000 - -;Enables or disables JIT compilation of patterns. This requires the PCRE -;library to be compiled with JIT support. -;pcre.jit=1 - -[Pdo] -; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off" -; http://php.net/pdo-odbc.connection-pooling -;pdo_odbc.connection_pooling=strict - -;pdo_odbc.db2_instance_name - -[Pdo_mysql] -; If mysqlnd is used: Number of cache slots for the internal result set cache -; http://php.net/pdo_mysql.cache_size -pdo_mysql.cache_size = 2000 - -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -; http://php.net/pdo_mysql.default-socket -pdo_mysql.default_socket= - -[Phar] -; http://php.net/phar.readonly -;phar.readonly = On - -; http://php.net/phar.require-hash -;phar.require_hash = On - -;phar.cache_list = - -[mail function] -; For Win32 only. -; http://php.net/smtp -SMTP = localhost -; http://php.net/smtp-port -smtp_port = 25 - -; For Win32 only. -; http://php.net/sendmail-from -;sendmail_from = me@example.com - -; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). -; http://php.net/sendmail-path -;sendmail_path = - -; Force the addition of the specified parameters to be passed as extra parameters -; to the sendmail binary. These parameters will always replace the value of -; the 5th parameter to mail(). -;mail.force_extra_parameters = - -; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename -mail.add_x_header = On - -; The path to a log file that will log all mail() calls. Log entries include -; the full path of the script, line number, To address and headers. -;mail.log = -; Log mail to syslog (Event Log on Windows). -;mail.log = syslog - -[ODBC] -; http://php.net/odbc.default-db -;odbc.default_db = Not yet implemented - -; http://php.net/odbc.default-user -;odbc.default_user = Not yet implemented - -; http://php.net/odbc.default-pw -;odbc.default_pw = Not yet implemented - -; Controls the ODBC cursor model. -; Default: SQL_CURSOR_STATIC (default). -;odbc.default_cursortype - -; Allow or prevent persistent links. -; http://php.net/odbc.allow-persistent -odbc.allow_persistent = On - -; Check that a connection is still valid before reuse. -; http://php.net/odbc.check-persistent -odbc.check_persistent = On - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/odbc.max-persistent -odbc.max_persistent = -1 - -; Maximum number of links (persistent + non-persistent). -1 means no limit. -; http://php.net/odbc.max-links -odbc.max_links = -1 - -; Handling of LONG fields. Returns number of bytes to variables. 0 means -; passthru. -; http://php.net/odbc.defaultlrl -odbc.defaultlrl = 4096 - -; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char. -; See the documentation on odbc_binmode and odbc_longreadlen for an explanation -; of odbc.defaultlrl and odbc.defaultbinmode -; http://php.net/odbc.defaultbinmode -odbc.defaultbinmode = 1 - -;birdstep.max_links = -1 - -[Interbase] -; Allow or prevent persistent links. -ibase.allow_persistent = 1 - -; Maximum number of persistent links. -1 means no limit. -ibase.max_persistent = -1 - -; Maximum number of links (persistent + non-persistent). -1 means no limit. -ibase.max_links = -1 - -; Default database name for ibase_connect(). -;ibase.default_db = - -; Default username for ibase_connect(). -;ibase.default_user = - -; Default password for ibase_connect(). -;ibase.default_password = - -; Default charset for ibase_connect(). -;ibase.default_charset = - -; Default timestamp format. -ibase.timestampformat = "%Y-%m-%d %H:%M:%S" - -; Default date format. -ibase.dateformat = "%Y-%m-%d" - -; Default time format. -ibase.timeformat = "%H:%M:%S" - -[MySQLi] - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/mysqli.max-persistent -mysqli.max_persistent = -1 - -; Allow accessing, from PHP's perspective, local files with LOAD DATA statements -; http://php.net/mysqli.allow_local_infile -;mysqli.allow_local_infile = On - -; Allow or prevent persistent links. -; http://php.net/mysqli.allow-persistent -mysqli.allow_persistent = On - -; Maximum number of links. -1 means no limit. -; http://php.net/mysqli.max-links -mysqli.max_links = -1 - -; If mysqlnd is used: Number of cache slots for the internal result set cache -; http://php.net/mysqli.cache_size -mysqli.cache_size = 2000 - -; Default port number for mysqli_connect(). If unset, mysqli_connect() will use -; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the -; compile-time value defined MYSQL_PORT (in that order). Win32 will only look -; at MYSQL_PORT. -; http://php.net/mysqli.default-port -mysqli.default_port = 3306 - -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -; http://php.net/mysqli.default-socket -mysqli.default_socket = - -; Default host for mysql_connect() (doesn't apply in safe mode). -; http://php.net/mysqli.default-host -mysqli.default_host = - -; Default user for mysql_connect() (doesn't apply in safe mode). -; http://php.net/mysqli.default-user -mysqli.default_user = - -; Default password for mysqli_connect() (doesn't apply in safe mode). -; Note that this is generally a *bad* idea to store passwords in this file. -; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw") -; and reveal this password! And of course, any users with read access to this -; file will be able to reveal the password as well. -; http://php.net/mysqli.default-pw -mysqli.default_pw = - -; Allow or prevent reconnect -mysqli.reconnect = Off - -[mysqlnd] -; Enable / Disable collection of general statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -; http://php.net/mysqlnd.collect_statistics -mysqlnd.collect_statistics = On - -; Enable / Disable collection of memory usage statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -; http://php.net/mysqlnd.collect_memory_statistics -mysqlnd.collect_memory_statistics = Off - -; Records communication from all extensions using mysqlnd to the specified log -; file. -; http://php.net/mysqlnd.debug -;mysqlnd.debug = - -; Defines which queries will be logged. -; http://php.net/mysqlnd.log_mask -;mysqlnd.log_mask = 0 - -; Default size of the mysqlnd memory pool, which is used by result sets. -; http://php.net/mysqlnd.mempool_default_size -;mysqlnd.mempool_default_size = 16000 - -; Size of a pre-allocated buffer used when sending commands to MySQL in bytes. -; http://php.net/mysqlnd.net_cmd_buffer_size -;mysqlnd.net_cmd_buffer_size = 2048 - -; Size of a pre-allocated buffer used for reading data sent by the server in -; bytes. -; http://php.net/mysqlnd.net_read_buffer_size -;mysqlnd.net_read_buffer_size = 32768 - -; Timeout for network requests in seconds. -; http://php.net/mysqlnd.net_read_timeout -;mysqlnd.net_read_timeout = 31536000 - -; SHA-256 Authentication Plugin related. File with the MySQL server public RSA -; key. -; http://php.net/mysqlnd.sha256_server_public_key -;mysqlnd.sha256_server_public_key = - -[OCI8] - -; Connection: Enables privileged connections using external -; credentials (OCI_SYSOPER, OCI_SYSDBA) -; http://php.net/oci8.privileged-connect -;oci8.privileged_connect = Off - -; Connection: The maximum number of persistent OCI8 connections per -; process. Using -1 means no limit. -; http://php.net/oci8.max-persistent -;oci8.max_persistent = -1 - -; Connection: The maximum number of seconds a process is allowed to -; maintain an idle persistent connection. Using -1 means idle -; persistent connections will be maintained forever. -; http://php.net/oci8.persistent-timeout -;oci8.persistent_timeout = -1 - -; Connection: The number of seconds that must pass before issuing a -; ping during oci_pconnect() to check the connection validity. When -; set to 0, each oci_pconnect() will cause a ping. Using -1 disables -; pings completely. -; http://php.net/oci8.ping-interval -;oci8.ping_interval = 60 - -; Connection: Set this to a user chosen connection class to be used -; for all pooled server requests with Oracle 11g Database Resident -; Connection Pooling (DRCP). To use DRCP, this value should be set to -; the same string for all web servers running the same application, -; the database pool must be configured, and the connection string must -; specify to use a pooled server. -;oci8.connection_class = - -; High Availability: Using On lets PHP receive Fast Application -; Notification (FAN) events generated when a database node fails. The -; database must also be configured to post FAN events. -;oci8.events = Off - -; Tuning: This option enables statement caching, and specifies how -; many statements to cache. Using 0 disables statement caching. -; http://php.net/oci8.statement-cache-size -;oci8.statement_cache_size = 20 - -; Tuning: Enables statement prefetching and sets the default number of -; rows that will be fetched automatically after statement execution. -; http://php.net/oci8.default-prefetch -;oci8.default_prefetch = 100 - -; Compatibility. Using On means oci_close() will not close -; oci_connect() and oci_new_connect() connections. -; http://php.net/oci8.old-oci-close-semantics -;oci8.old_oci_close_semantics = Off - -[PostgreSQL] -; Allow or prevent persistent links. -; http://php.net/pgsql.allow-persistent -pgsql.allow_persistent = On - -; Detect broken persistent links always with pg_pconnect(). -; Auto reset feature requires a little overheads. -; http://php.net/pgsql.auto-reset-persistent -pgsql.auto_reset_persistent = Off - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/pgsql.max-persistent -pgsql.max_persistent = -1 - -; Maximum number of links (persistent+non persistent). -1 means no limit. -; http://php.net/pgsql.max-links -pgsql.max_links = -1 - -; Ignore PostgreSQL backends Notice message or not. -; Notice message logging require a little overheads. -; http://php.net/pgsql.ignore-notice -pgsql.ignore_notice = 0 - -; Log PostgreSQL backends Notice message or not. -; Unless pgsql.ignore_notice=0, module cannot log notice message. -; http://php.net/pgsql.log-notice -pgsql.log_notice = 0 - -[bcmath] -; Number of decimal digits for all bcmath functions. -; http://php.net/bcmath.scale -bcmath.scale = 0 - -[browscap] -; http://php.net/browscap -;browscap = extra/browscap.ini - -[Session] -; Handler used to store/retrieve data. -; http://php.net/session.save-handler -session.save_handler = files - -; Argument passed to save_handler. In the case of files, this is the path -; where data files are stored. Note: Windows users have to change this -; variable in order to use PHP's session functions. -; -; The path can be defined as: -; -; session.save_path = "N;/path" -; -; where N is an integer. Instead of storing all the session files in -; /path, what this will do is use subdirectories N-levels deep, and -; store the session data in those directories. This is useful if -; your OS has problems with many files in one directory, and is -; a more efficient layout for servers that handle many sessions. -; -; NOTE 1: PHP will not create this directory structure automatically. -; You can use the script in the ext/session dir for that purpose. -; NOTE 2: See the section on garbage collection below if you choose to -; use subdirectories for session storage -; -; The file storage module creates files using mode 600 by default. -; You can change that by using -; -; session.save_path = "N;MODE;/path" -; -; where MODE is the octal representation of the mode. Note that this -; does not overwrite the process's umask. -; http://php.net/session.save-path -;session.save_path = "/tmp" - -; Whether to use strict session mode. -; Strict session mode does not accept uninitialized session ID and regenerate -; session ID if browser sends uninitialized session ID. Strict mode protects -; applications from session fixation via session adoption vulnerability. It is -; disabled by default for maximum compatibility, but enabling it is encouraged. -; https://wiki.php.net/rfc/strict_sessions -session.use_strict_mode = 0 - -; Whether to use cookies. -; http://php.net/session.use-cookies -session.use_cookies = 1 - -; http://php.net/session.cookie-secure -;session.cookie_secure = - -; This option forces PHP to fetch and use a cookie for storing and maintaining -; the session id. We encourage this operation as it's very helpful in combating -; session hijacking when not specifying and managing your own session id. It is -; not the be-all and end-all of session hijacking defense, but it's a good start. -; http://php.net/session.use-only-cookies -session.use_only_cookies = 1 - -; Name of the session (used as cookie name). -; http://php.net/session.name -session.name = PHPSESSID - -; Initialize session on request startup. -; http://php.net/session.auto-start -session.auto_start = 0 - -; Lifetime in seconds of cookie or, if 0, until browser is restarted. -; http://php.net/session.cookie-lifetime -session.cookie_lifetime = 0 - -; The path for which the cookie is valid. -; http://php.net/session.cookie-path -session.cookie_path = / - -; The domain for which the cookie is valid. -; http://php.net/session.cookie-domain -session.cookie_domain = - -; Whether or not to add the httpOnly flag to the cookie, which makes it inaccessible to browser scripting languages such as JavaScript. -; http://php.net/session.cookie-httponly -session.cookie_httponly = - -; Handler used to serialize data. php is the standard serializer of PHP. -; http://php.net/session.serialize-handler -session.serialize_handler = php - -; Defines the probability that the 'garbage collection' process is started -; on every session initialization. The probability is calculated by using -; gc_probability/gc_divisor. Where session.gc_probability is the numerator -; and gc_divisor is the denominator in the equation. Setting this value to 1 -; when the session.gc_divisor value is 100 will give you approximately a 1% chance -; the gc will run on any give request. -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; http://php.net/session.gc-probability -session.gc_probability = 1 - -; Defines the probability that the 'garbage collection' process is started on every -; session initialization. The probability is calculated by using the following equation: -; gc_probability/gc_divisor. Where session.gc_probability is the numerator and -; session.gc_divisor is the denominator in the equation. Setting this value to 1 -; when the session.gc_divisor value is 100 will give you approximately a 1% chance -; the gc will run on any give request. Increasing this value to 1000 will give you -; a 0.1% chance the gc will run on any give request. For high volume production servers, -; this is a more efficient approach. -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 -; http://php.net/session.gc-divisor -session.gc_divisor = 1000 - -; After this number of seconds, stored data will be seen as 'garbage' and -; cleaned up by the garbage collection process. -; http://php.net/session.gc-maxlifetime -session.gc_maxlifetime = 1440 - -; NOTE: If you are using the subdirectory option for storing session files -; (see session.save_path above), then garbage collection does *not* -; happen automatically. You will need to do your own garbage -; collection through a shell script, cron entry, or some other method. -; For example, the following script would is the equivalent of -; setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes): -; find /path/to/sessions -cmin +24 -type f | xargs rm - -; Check HTTP Referer to invalidate externally stored URLs containing ids. -; HTTP_REFERER has to contain this substring for the session to be -; considered as valid. -; http://php.net/session.referer-check -session.referer_check = - -; Set to {nocache,private,public,} to determine HTTP caching aspects -; or leave this empty to avoid sending anti-caching headers. -; http://php.net/session.cache-limiter -session.cache_limiter = nocache - -; Document expires after n minutes. -; http://php.net/session.cache-expire -session.cache_expire = 180 - -; trans sid support is disabled by default. -; Use of trans sid may risk your users' security. -; Use this option with caution. -; - User may send URL contains active session ID -; to other person via. email/irc/etc. -; - URL that contains active session ID may be stored -; in publicly accessible computer. -; - User may access your site with the same session ID -; always using URL stored in browser's history or bookmarks. -; http://php.net/session.use-trans-sid -session.use_trans_sid = 0 - -; Set session ID character length. This value could be between 22 to 256. -; Shorter length than default is supported only for compatibility reason. -; Users should use 32 or more chars. -; http://php.net/session.sid-length -; Default Value: 32 -; Development Value: 26 -; Production Value: 26 -session.sid_length = 26 - -; The URL rewriter will look for URLs in a defined set of HTML tags. -; is special; if you include them here, the rewriter will -; add a hidden field with the info which is otherwise appended -; to URLs. tag's action attribute URL will not be modified -; unless it is specified. -; Note that all valid entries require a "=", even if no value follows. -; Default Value: "a=href,area=href,frame=src,form=" -; Development Value: "a=href,area=href,frame=src,form=" -; Production Value: "a=href,area=href,frame=src,form=" -; http://php.net/url-rewriter.tags -session.trans_sid_tags = "a=href,area=href,frame=src,form=" - -; URL rewriter does not rewrite absolute URLs by default. -; To enable rewrites for absolute pathes, target hosts must be specified -; at RUNTIME. i.e. use ini_set() -; tags is special. PHP will check action attribute's URL regardless -; of session.trans_sid_tags setting. -; If no host is defined, HTTP_HOST will be used for allowed host. -; Example value: php.net,www.php.net,wiki.php.net -; Use "," for multiple hosts. No spaces are allowed. -; Default Value: "" -; Development Value: "" -; Production Value: "" -;session.trans_sid_hosts="" - -; Define how many bits are stored in each character when converting -; the binary hash data to something readable. -; Possible values: -; 4 (4 bits: 0-9, a-f) -; 5 (5 bits: 0-9, a-v) -; 6 (6 bits: 0-9, a-z, A-Z, "-", ",") -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 -; http://php.net/session.hash-bits-per-character -session.sid_bits_per_character = 5 - -; Enable upload progress tracking in $_SESSION -; Default Value: On -; Development Value: On -; Production Value: On -; http://php.net/session.upload-progress.enabled -;session.upload_progress.enabled = On - -; Cleanup the progress information as soon as all POST data has been read -; (i.e. upload completed). -; Default Value: On -; Development Value: On -; Production Value: On -; http://php.net/session.upload-progress.cleanup -;session.upload_progress.cleanup = On - -; A prefix used for the upload progress key in $_SESSION -; Default Value: "upload_progress_" -; Development Value: "upload_progress_" -; Production Value: "upload_progress_" -; http://php.net/session.upload-progress.prefix -;session.upload_progress.prefix = "upload_progress_" - -; The index name (concatenated with the prefix) in $_SESSION -; containing the upload progress information -; Default Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Development Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Production Value: "PHP_SESSION_UPLOAD_PROGRESS" -; http://php.net/session.upload-progress.name -;session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS" - -; How frequently the upload progress should be updated. -; Given either in percentages (per-file), or in bytes -; Default Value: "1%" -; Development Value: "1%" -; Production Value: "1%" -; http://php.net/session.upload-progress.freq -;session.upload_progress.freq = "1%" - -; The minimum delay between updates, in seconds -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; http://php.net/session.upload-progress.min-freq -;session.upload_progress.min_freq = "1" - -; Only write session data when session data is changed. Enabled by default. -; http://php.net/session.lazy-write -;session.lazy_write = On - -[Assertion] -; Switch whether to compile assertions at all (to have no overhead at run-time) -; -1: Do not compile at all -; 0: Jump over assertion at run-time -; 1: Execute assertions -; Changing from or to a negative value is only possible in php.ini! (For turning assertions on and off at run-time, see assert.active, when zend.assertions = 1) -; Default Value: 1 -; Development Value: 1 -; Production Value: -1 -; http://php.net/zend.assertions -zend.assertions = -1 - -; Assert(expr); active by default. -; http://php.net/assert.active -;assert.active = On - -; Throw an AssertationException on failed assertions -; http://php.net/assert.exception -;assert.exception = On - -; Issue a PHP warning for each failed assertion. (Overridden by assert.exception if active) -; http://php.net/assert.warning -;assert.warning = On - -; Don't bail out by default. -; http://php.net/assert.bail -;assert.bail = Off - -; User-function to be called if an assertion fails. -; http://php.net/assert.callback -;assert.callback = 0 - -; Eval the expression with current error_reporting(). Set to true if you want -; error_reporting(0) around the eval(). -; http://php.net/assert.quiet-eval -;assert.quiet_eval = 0 - -[COM] -; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs -; http://php.net/com.typelib-file -;com.typelib_file = - -; allow Distributed-COM calls -; http://php.net/com.allow-dcom -;com.allow_dcom = true - -; autoregister constants of a components typlib on com_load() -; http://php.net/com.autoregister-typelib -;com.autoregister_typelib = true - -; register constants casesensitive -; http://php.net/com.autoregister-casesensitive -;com.autoregister_casesensitive = false - -; show warnings on duplicate constant registrations -; http://php.net/com.autoregister-verbose -;com.autoregister_verbose = true - -; The default character set code-page to use when passing strings to and from COM objects. -; Default: system ANSI code page -;com.code_page= - -[mbstring] -; language for internal character representation. -; This affects mb_send_mail() and mbstring.detect_order. -; http://php.net/mbstring.language -;mbstring.language = Japanese - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; internal/script encoding. -; Some encoding cannot work as internal encoding. (e.g. SJIS, BIG5, ISO-2022-*) -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;mbstring.internal_encoding = - -; Use of this INI entry is deprecated, use global input_encoding instead. -; http input encoding. -; mbstring.encoding_traslation = On is needed to use this setting. -; If empty, default_charset or input_encoding or mbstring.input is used. -; The precedence is: default_charset < intput_encoding < mbsting.http_input -; http://php.net/mbstring.http-input -;mbstring.http_input = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; http output encoding. -; mb_output_handler must be registered as output buffer to function. -; If empty, default_charset or output_encoding or mbstring.http_output is used. -; The precedence is: default_charset < output_encoding < mbstring.http_output -; To use an output encoding conversion, mbstring's output handler must be set -; otherwise output encoding conversion cannot be performed. -; http://php.net/mbstring.http-output -;mbstring.http_output = - -; enable automatic encoding translation according to -; mbstring.internal_encoding setting. Input chars are -; converted to internal encoding by setting this to On. -; Note: Do _not_ use automatic encoding translation for -; portable libs/applications. -; http://php.net/mbstring.encoding-translation -;mbstring.encoding_translation = Off - -; automatic encoding detection order. -; "auto" detect order is changed according to mbstring.language -; http://php.net/mbstring.detect-order -;mbstring.detect_order = auto - -; substitute_character used when character cannot be converted -; one from another -; http://php.net/mbstring.substitute-character -;mbstring.substitute_character = none - -; overload(replace) single byte functions by mbstring functions. -; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(), -; etc. Possible values are 0,1,2,4 or combination of them. -; For example, 7 for overload everything. -; 0: No overload -; 1: Overload mail() function -; 2: Overload str*() functions -; 4: Overload ereg*() functions -; http://php.net/mbstring.func-overload -;mbstring.func_overload = 0 - -; enable strict encoding detection. -; Default: Off -;mbstring.strict_detection = On - -; This directive specifies the regex pattern of content types for which mb_output_handler() -; is activated. -; Default: mbstring.http_output_conv_mimetype=^(text/|application/xhtml\+xml) -;mbstring.http_output_conv_mimetype= - -[gd] -; Tell the jpeg decode to ignore warnings and try to create -; a gd image. The warning will then be displayed as notices -; disabled by default -; http://php.net/gd.jpeg-ignore-warning -;gd.jpeg_ignore_warning = 1 - -[exif] -; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS. -; With mbstring support this will automatically be converted into the encoding -; given by corresponding encode setting. When empty mbstring.internal_encoding -; is used. For the decode settings you can distinguish between motorola and -; intel byte order. A decode setting cannot be empty. -; http://php.net/exif.encode-unicode -;exif.encode_unicode = ISO-8859-15 - -; http://php.net/exif.decode-unicode-motorola -;exif.decode_unicode_motorola = UCS-2BE - -; http://php.net/exif.decode-unicode-intel -;exif.decode_unicode_intel = UCS-2LE - -; http://php.net/exif.encode-jis -;exif.encode_jis = - -; http://php.net/exif.decode-jis-motorola -;exif.decode_jis_motorola = JIS - -; http://php.net/exif.decode-jis-intel -;exif.decode_jis_intel = JIS - -[Tidy] -; The path to a default tidy configuration file to use when using tidy -; http://php.net/tidy.default-config -;tidy.default_config = /usr/local/lib/php/default.tcfg - -; Should tidy clean and repair output automatically? -; WARNING: Do not use this option if you are generating non-html content -; such as dynamic images -; http://php.net/tidy.clean-output -tidy.clean_output = Off - -[soap] -; Enables or disables WSDL caching feature. -; http://php.net/soap.wsdl-cache-enabled -soap.wsdl_cache_enabled=1 - -; Sets the directory name where SOAP extension will put cache files. -; http://php.net/soap.wsdl-cache-dir -soap.wsdl_cache_dir="/tmp" - -; (time to live) Sets the number of second while cached file will be used -; instead of original one. -; http://php.net/soap.wsdl-cache-ttl -soap.wsdl_cache_ttl=86400 - -; Sets the size of the cache limit. (Max. number of WSDL files to cache) -soap.wsdl_cache_limit = 5 - -[sysvshm] -; A default size of the shared memory segment -;sysvshm.init_mem = 10000 - -[ldap] -; Sets the maximum number of open links or -1 for unlimited. -ldap.max_links = -1 - -[dba] -;dba.default_handler= - -[opcache] -; Determines if Zend OPCache is enabled -;opcache.enable=1 - -; Determines if Zend OPCache is enabled for the CLI version of PHP -;opcache.enable_cli=1 - -; The OPcache shared memory storage size. -;opcache.memory_consumption=128 - -; The amount of memory for interned strings in Mbytes. -;opcache.interned_strings_buffer=8 - -; The maximum number of keys (scripts) in the OPcache hash table. -; Only numbers between 200 and 1000000 are allowed. -;opcache.max_accelerated_files=10000 - -; The maximum percentage of "wasted" memory until a restart is scheduled. -;opcache.max_wasted_percentage=5 - -; When this directive is enabled, the OPcache appends the current working -; directory to the script key, thus eliminating possible collisions between -; files with the same name (basename). Disabling the directive improves -; performance, but may break existing applications. -;opcache.use_cwd=1 - -; When disabled, you must reset the OPcache manually or restart the -; webserver for changes to the filesystem to take effect. -;opcache.validate_timestamps=1 - -; How often (in seconds) to check file timestamps for changes to the shared -; memory storage allocation. ("1" means validate once per second, but only -; once per request. "0" means always validate) -;opcache.revalidate_freq=2 - -; Enables or disables file search in include_path optimization -;opcache.revalidate_path=0 - -; If disabled, all PHPDoc comments are dropped from the code to reduce the -; size of the optimized code. -;opcache.save_comments=1 - -; If enabled, a fast shutdown sequence is used for the accelerated code -; Depending on the used Memory Manager this may cause some incompatibilities. -;opcache.fast_shutdown=0 - -; Allow file existence override (file_exists, etc.) performance feature. -;opcache.enable_file_override=0 - -; A bitmask, where each bit enables or disables the appropriate OPcache -; passes -;opcache.optimization_level=0xffffffff - -;opcache.inherited_hack=1 -;opcache.dups_fix=0 - -; The location of the OPcache blacklist file (wildcards allowed). -; Each OPcache blacklist file is a text file that holds the names of files -; that should not be accelerated. The file format is to add each filename -; to a new line. The filename may be a full path or just a file prefix -; (i.e., /var/www/x blacklists all the files and directories in /var/www -; that start with 'x'). Line starting with a ; are ignored (comments). -;opcache.blacklist_filename= - -; Allows exclusion of large files from being cached. By default all files -; are cached. -;opcache.max_file_size=0 - -; Check the cache checksum each N requests. -; The default value of "0" means that the checks are disabled. -;opcache.consistency_checks=0 - -; How long to wait (in seconds) for a scheduled restart to begin if the cache -; is not being accessed. -;opcache.force_restart_timeout=180 - -; OPcache error_log file name. Empty string assumes "stderr". -;opcache.error_log= - -; All OPcache errors go to the Web server log. -; By default, only fatal errors (level 0) or errors (level 1) are logged. -; You can also enable warnings (level 2), info messages (level 3) or -; debug messages (level 4). -;opcache.log_verbosity_level=1 - -; Preferred Shared Memory back-end. Leave empty and let the system decide. -;opcache.preferred_memory_model= - -; Protect the shared memory from unexpected writing during script execution. -; Useful for internal debugging only. -;opcache.protect_memory=0 - -; Allows calling OPcache API functions only from PHP scripts which path is -; started from specified string. The default "" means no restriction -;opcache.restrict_api= - -; Mapping base of shared memory segments (for Windows only). All the PHP -; processes have to map shared memory into the same address space. This -; directive allows to manually fix the "Unable to reattach to base address" -; errors. -;opcache.mmap_base= - -; Enables and sets the second level cache directory. -; It should improve performance when SHM memory is full, at server restart or -; SHM reset. The default "" disables file based caching. -;opcache.file_cache= - -; Enables or disables opcode caching in shared memory. -;opcache.file_cache_only=0 - -; Enables or disables checksum validation when script loaded from file cache. -;opcache.file_cache_consistency_checks=1 - -; Implies opcache.file_cache_only=1 for a certain process that failed to -; reattach to the shared memory (for Windows only). Explicitly enabled file -; cache is required. -;opcache.file_cache_fallback=1 - -; Enables or disables copying of PHP code (text segment) into HUGE PAGES. -; This should improve performance, but requires appropriate OS configuration. -;opcache.huge_code_pages=1 - -; Validate cached file permissions. -;opcache.validate_permission=0 - -; Prevent name collisions in chroot'ed environment. -;opcache.validate_root=0 - -[curl] -; A default value for the CURLOPT_CAINFO option. This is required to be an -; absolute path. -;curl.cainfo = - -[openssl] -; The location of a Certificate Authority (CA) file on the local filesystem -; to use when verifying the identity of SSL/TLS peers. Most users should -; not specify a value for this directive as PHP will attempt to use the -; OS-managed cert stores in its absence. If specified, this value may still -; be overridden on a per-stream basis via the "cafile" SSL stream context -; option. -;openssl.cafile= - -; If openssl.cafile is not specified or if the CA file is not found, the -; directory pointed to by openssl.capath is searched for a suitable -; certificate. This value must be a correctly hashed certificate directory. -; Most users should not specify a value for this directive as PHP will -; attempt to use the OS-managed cert stores in its absence. If specified, -; this value may still be overridden on a per-stream basis via the "capath" -; SSL stream context option. -;openssl.capath= - -; Local Variables: -; tab-width: 4 -; End: - -[XDebug] -xdebug.remote_enable = 1 -xdebug.remote_handler = "dbgp" -; Set to host.docker.internal on Mac and Windows, otherwise, set to host real ip -xdebug.remote_host = host.docker.internal -;xdebug.remote_port = 9000 -xdebug.remote_log = /var/log/php/xdebug2.log - -SERVER_ENV=develop - -yaf.use_spl_autoload=1 - -[xhprof] -;xhprof.output_dir = /var/log/php/xhprof.log \ No newline at end of file diff --git a/php5/5.4.45/conf/php-fpm.conf b/php5/5.4.45/conf/php-fpm.conf deleted file mode 100644 index 131835891..000000000 --- a/php5/5.4.45/conf/php-fpm.conf +++ /dev/null @@ -1,423 +0,0 @@ -; Start a new pool named 'www'. -; the variable $pool can be used in any directive and will be replaced by the -; pool name ('www' here) -[www] - -; Per pool prefix -; It only applies on the following directives: -; - 'access.log' -; - 'slowlog' -; - 'listen' (unixsocket) -; - 'chroot' -; - 'chdir' -; - 'php_values' -; - 'php_admin_values' -; When not set, the global prefix (or NONE) applies instead. -; Note: This directive can also be relative to the global prefix. -; Default Value: none -;prefix = /path/to/pools/$pool - -; Unix user/group of processes -; Note: The user is mandatory. If the group is not set, the default user's group -; will be used. -user = www-data -group = www-data - -; The address on which to accept FastCGI requests. -; Valid syntaxes are: -; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on -; a specific port; -; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on -; a specific port; -; 'port' - to listen on a TCP socket to all addresses -; (IPv6 and IPv4-mapped) on a specific port; -; '/path/to/unix/socket' - to listen on a unix socket. -; Note: This value is mandatory. -listen = 127.0.0.1:9000 - -; Set listen(2) backlog. -; Default Value: 511 (-1 on FreeBSD and OpenBSD) -;listen.backlog = 511 - -; Set permissions for unix socket, if one is used. In Linux, read/write -; permissions must be set in order to allow connections from a web server. Many -; BSD-derived systems allow connections regardless of permissions. -; Default Values: user and group are set as the running user -; mode is set to 0660 -;listen.owner = www-data -;listen.group = www-data -;listen.mode = 0660 -; When POSIX Access Control Lists are supported you can set them using -; these options, value is a comma separated list of user/group names. -; When set, listen.owner and listen.group are ignored -;listen.acl_users = -;listen.acl_groups = - -; List of addresses (IPv4/IPv6) of FastCGI clients which are allowed to connect. -; Equivalent to the FCGI_WEB_SERVER_ADDRS environment variable in the original -; PHP FCGI (5.2.2+). Makes sense only with a tcp listening socket. Each address -; must be separated by a comma. If this value is left blank, connections will be -; accepted from any ip address. -; Default Value: any -;listen.allowed_clients = 127.0.0.1 - -; Specify the nice(2) priority to apply to the pool processes (only if set) -; The value can vary from -19 (highest priority) to 20 (lower priority) -; Note: - It will only work if the FPM master process is launched as root -; - The pool processes will inherit the master process priority -; unless it specified otherwise -; Default Value: no set -; process.priority = -19 - -; Set the process dumpable flag (PR_SET_DUMPABLE prctl) even if the process user -; or group is differrent than the master process user. It allows to create process -; core dump and ptrace the process for the pool user. -; Default Value: no -; process.dumpable = yes - -; Choose how the process manager will control the number of child processes. -; Possible Values: -; static - a fixed number (pm.max_children) of child processes; -; dynamic - the number of child processes are set dynamically based on the -; following directives. With this process management, there will be -; always at least 1 children. -; pm.max_children - the maximum number of children that can -; be alive at the same time. -; pm.start_servers - the number of children created on startup. -; pm.min_spare_servers - the minimum number of children in 'idle' -; state (waiting to process). If the number -; of 'idle' processes is less than this -; number then some children will be created. -; pm.max_spare_servers - the maximum number of children in 'idle' -; state (waiting to process). If the number -; of 'idle' processes is greater than this -; number then some children will be killed. -; ondemand - no children are created at startup. Children will be forked when -; new requests will connect. The following parameter are used: -; pm.max_children - the maximum number of children that -; can be alive at the same time. -; pm.process_idle_timeout - The number of seconds after which -; an idle process will be killed. -; Note: This value is mandatory. -pm = dynamic - -; The number of child processes to be created when pm is set to 'static' and the -; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'. -; This value sets the limit on the number of simultaneous requests that will be -; served. Equivalent to the ApacheMaxClients directive with mpm_prefork. -; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP -; CGI. The below defaults are based on a server without much resources. Don't -; forget to tweak pm.* to fit your needs. -; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand' -; Note: This value is mandatory. -pm.max_children = 10 - -; The number of child processes created on startup. -; Note: Used only when pm is set to 'dynamic' -; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2 -pm.start_servers = 2 - -; The desired minimum number of idle server processes. -; Note: Used only when pm is set to 'dynamic' -; Note: Mandatory when pm is set to 'dynamic' -pm.min_spare_servers = 1 - -; The desired maximum number of idle server processes. -; Note: Used only when pm is set to 'dynamic' -; Note: Mandatory when pm is set to 'dynamic' -pm.max_spare_servers = 3 - -; The number of seconds after which an idle process will be killed. -; Note: Used only when pm is set to 'ondemand' -; Default Value: 10s -;pm.process_idle_timeout = 10s; - -; The number of requests each child process should execute before respawning. -; This can be useful to work around memory leaks in 3rd party libraries. For -; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS. -; Default Value: 0 -;pm.max_requests = 500 - -; The URI to view the FPM status page. If this value is not set, no URI will be -; recognized as a status page. It shows the following informations: -; pool - the name of the pool; -; process manager - static, dynamic or ondemand; -; start time - the date and time FPM has started; -; start since - number of seconds since FPM has started; -; accepted conn - the number of request accepted by the pool; -; listen queue - the number of request in the queue of pending -; connections (see backlog in listen(2)); -; max listen queue - the maximum number of requests in the queue -; of pending connections since FPM has started; -; listen queue len - the size of the socket queue of pending connections; -; idle processes - the number of idle processes; -; active processes - the number of active processes; -; total processes - the number of idle + active processes; -; max active processes - the maximum number of active processes since FPM -; has started; -; max children reached - number of times, the process limit has been reached, -; when pm tries to start more children (works only for -; pm 'dynamic' and 'ondemand'); -; Value are updated in real time. -; Example output: -; pool: www -; process manager: static -; start time: 01/Jul/2011:17:53:49 +0200 -; start since: 62636 -; accepted conn: 190460 -; listen queue: 0 -; max listen queue: 1 -; listen queue len: 42 -; idle processes: 4 -; active processes: 11 -; total processes: 15 -; max active processes: 12 -; max children reached: 0 -; -; By default the status page output is formatted as text/plain. Passing either -; 'html', 'xml' or 'json' in the query string will return the corresponding -; output syntax. Example: -; http://www.foo.bar/status -; http://www.foo.bar/status?json -; http://www.foo.bar/status?html -; http://www.foo.bar/status?xml -; -; By default the status page only outputs short status. Passing 'full' in the -; query string will also return status for each pool process. -; Example: -; http://www.foo.bar/status?full -; http://www.foo.bar/status?json&full -; http://www.foo.bar/status?html&full -; http://www.foo.bar/status?xml&full -; The Full status returns for each process: -; pid - the PID of the process; -; state - the state of the process (Idle, Running, ...); -; start time - the date and time the process has started; -; start since - the number of seconds since the process has started; -; requests - the number of requests the process has served; -; request duration - the duration in µs of the requests; -; request method - the request method (GET, POST, ...); -; request URI - the request URI with the query string; -; content length - the content length of the request (only with POST); -; user - the user (PHP_AUTH_USER) (or '-' if not set); -; script - the main script called (or '-' if not set); -; last request cpu - the %cpu the last request consumed -; it's always 0 if the process is not in Idle state -; because CPU calculation is done when the request -; processing has terminated; -; last request memory - the max amount of memory the last request consumed -; it's always 0 if the process is not in Idle state -; because memory calculation is done when the request -; processing has terminated; -; If the process is in Idle state, then informations are related to the -; last request the process has served. Otherwise informations are related to -; the current request being served. -; Example output: -; ************************ -; pid: 31330 -; state: Running -; start time: 01/Jul/2011:17:53:49 +0200 -; start since: 63087 -; requests: 12808 -; request duration: 1250261 -; request method: GET -; request URI: /test_mem.php?N=10000 -; content length: 0 -; user: - -; script: /home/fat/web/docs/php/test_mem.php -; last request cpu: 0.00 -; last request memory: 0 -; -; Note: There is a real-time FPM status monitoring sample web page available -; It's available in: /usr/local/share/php/fpm/status.html -; -; Note: The value must start with a leading slash (/). The value can be -; anything, but it may not be a good idea to use the .php extension or it -; may conflict with a real PHP file. -; Default Value: not set -;pm.status_path = /status - -; The ping URI to call the monitoring page of FPM. If this value is not set, no -; URI will be recognized as a ping page. This could be used to test from outside -; that FPM is alive and responding, or to -; - create a graph of FPM availability (rrd or such); -; - remove a server from a group if it is not responding (load balancing); -; - trigger alerts for the operating team (24/7). -; Note: The value must start with a leading slash (/). The value can be -; anything, but it may not be a good idea to use the .php extension or it -; may conflict with a real PHP file. -; Default Value: not set -;ping.path = /ping - -; This directive may be used to customize the response of a ping request. The -; response is formatted as text/plain with a 200 response code. -; Default Value: pong -;ping.response = pong - -; The access log file -; Default: not set -;access.log = log/$pool.access.log - -; The access log format. -; The following syntax is allowed -; %%: the '%' character -; %C: %CPU used by the request -; it can accept the following format: -; - %{user}C for user CPU only -; - %{system}C for system CPU only -; - %{total}C for user + system CPU (default) -; %d: time taken to serve the request -; it can accept the following format: -; - %{seconds}d (default) -; - %{miliseconds}d -; - %{mili}d -; - %{microseconds}d -; - %{micro}d -; %e: an environment variable (same as $_ENV or $_SERVER) -; it must be associated with embraces to specify the name of the env -; variable. Some exemples: -; - server specifics like: %{REQUEST_METHOD}e or %{SERVER_PROTOCOL}e -; - HTTP headers like: %{HTTP_HOST}e or %{HTTP_USER_AGENT}e -; %f: script filename -; %l: content-length of the request (for POST request only) -; %m: request method -; %M: peak of memory allocated by PHP -; it can accept the following format: -; - %{bytes}M (default) -; - %{kilobytes}M -; - %{kilo}M -; - %{megabytes}M -; - %{mega}M -; %n: pool name -; %o: output header -; it must be associated with embraces to specify the name of the header: -; - %{Content-Type}o -; - %{X-Powered-By}o -; - %{Transfert-Encoding}o -; - .... -; %p: PID of the child that serviced the request -; %P: PID of the parent of the child that serviced the request -; %q: the query string -; %Q: the '?' character if query string exists -; %r: the request URI (without the query string, see %q and %Q) -; %R: remote IP address -; %s: status (response code) -; %t: server time the request was received -; it can accept a strftime(3) format: -; %d/%b/%Y:%H:%M:%S %z (default) -; The strftime(3) format must be encapsuled in a %{}t tag -; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t -; %T: time the log has been written (the request has finished) -; it can accept a strftime(3) format: -; %d/%b/%Y:%H:%M:%S %z (default) -; The strftime(3) format must be encapsuled in a %{}t tag -; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t -; %u: remote user -; -; Default: "%R - %u %t \"%m %r\" %s" -;access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%" - -; The log file for slow requests -; Default Value: not set -; Note: slowlog is mandatory if request_slowlog_timeout is set -slowlog = /var/log/php/fpm.slow.log - -; The timeout for serving a single request after which a PHP backtrace will be -; dumped to the 'slowlog' file. A value of '0s' means 'off'. -; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) -; Default Value: 0 -request_slowlog_timeout = 3 - -; Depth of slow log stack trace. -; Default Value: 20 -;request_slowlog_trace_depth = 20 - -; The timeout for serving a single request after which the worker process will -; be killed. This option should be used when the 'max_execution_time' ini option -; does not stop script execution for some reason. A value of '0' means 'off'. -; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) -; Default Value: 0 -;request_terminate_timeout = 0 - -; Set open file descriptor rlimit. -; Default Value: system defined value -;rlimit_files = 1024 - -; Set max core size rlimit. -; Possible Values: 'unlimited' or an integer greater or equal to 0 -; Default Value: system defined value -;rlimit_core = 0 - -; Chroot to this directory at the start. This value must be defined as an -; absolute path. When this value is not set, chroot is not used. -; Note: you can prefix with '$prefix' to chroot to the pool prefix or one -; of its subdirectories. If the pool prefix is not set, the global prefix -; will be used instead. -; Note: chrooting is a great security feature and should be used whenever -; possible. However, all PHP paths will be relative to the chroot -; (error_log, sessions.save_path, ...). -; Default Value: not set -;chroot = - -; Chdir to this directory at the start. -; Note: relative path can be used. -; Default Value: current directory or / when chroot -;chdir = /var/www - -; Redirect worker stdout and stderr into main error log. If not set, stdout and -; stderr will be redirected to /dev/null according to FastCGI specs. -; Note: on highloaded environement, this can cause some delay in the page -; process time (several ms). -; Default Value: no -catch_workers_output = yes - -; Clear environment in FPM workers -; Prevents arbitrary environment variables from reaching FPM worker processes -; by clearing the environment in workers before env vars specified in this -; pool configuration are added. -; Setting to "no" will make all environment variables available to PHP code -; via getenv(), $_ENV and $_SERVER. -; Default Value: yes -;clear_env = no - -; Limits the extensions of the main script FPM will allow to parse. This can -; prevent configuration mistakes on the web server side. You should only limit -; FPM to .php extensions to prevent malicious users to use other extensions to -; execute php code. -; Note: set an empty value to allow all extensions. -; Default Value: .php -;security.limit_extensions = .php .php3 .php4 .php5 .php7 - -; Pass environment variables like LD_LIBRARY_PATH. All $VARIABLEs are taken from -; the current environment. -; Default Value: clean env -;env[HOSTNAME] = $HOSTNAME -;env[PATH] = /usr/local/bin:/usr/bin:/bin -;env[TMP] = /tmp -;env[TMPDIR] = /tmp -;env[TEMP] = /tmp - -; Additional php.ini defines, specific to this pool of workers. These settings -; overwrite the values previously defined in the php.ini. The directives are the -; same as the PHP SAPI: -; php_value/php_flag - you can set classic ini defines which can -; be overwritten from PHP call 'ini_set'. -; php_admin_value/php_admin_flag - these directives won't be overwritten by -; PHP call 'ini_set' -; For php_*flag, valid values are on, off, 1, 0, true, false, yes or no. - -; Defining 'extension' will load the corresponding shared extension from -; extension_dir. Defining 'disable_functions' or 'disable_classes' will not -; overwrite previously defined php.ini values, but will append the new value -; instead. - -; Note: path INI options can be relative and will be expanded with the prefix -; (pool, global or /usr/local) - -; Default Value: nothing is defined by default except the values in php.ini and -; specified at startup with the -d argument -;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com -;php_flag[display_errors] = off -;php_admin_value[error_log] = /var/log/fpm-php.www.log -;php_admin_flag[log_errors] = on -;php_admin_value[memory_limit] = 32M diff --git a/php5/5.4.45/conf/php.ini b/php5/5.4.45/conf/php.ini deleted file mode 100644 index b6b0aee69..000000000 --- a/php5/5.4.45/conf/php.ini +++ /dev/null @@ -1,1933 +0,0 @@ -[PHP] - -;;;;;;;;;;;;;;;;;;; -; About php.ini ; -;;;;;;;;;;;;;;;;;;; -; PHP's initialization file, generally called php.ini, is responsible for -; configuring many of the aspects of PHP's behavior. - -; PHP attempts to find and load this configuration from a number of locations. -; The following is a summary of its search order: -; 1. SAPI module specific location. -; 2. The PHPRC environment variable. (As of PHP 5.2.0) -; 3. A number of predefined registry keys on Windows (As of PHP 5.2.0) -; 4. Current working directory (except CLI) -; 5. The web server's directory (for SAPI modules), or directory of PHP -; (otherwise in Windows) -; 6. The directory from the --with-config-file-path compile time option, or the -; Windows directory (C:\windows or C:\winnt) -; See the PHP docs for more specific information. -; http://php.net/configuration.file - -; The syntax of the file is extremely simple. Whitespace and lines -; beginning with a semicolon are silently ignored (as you probably guessed). -; Section headers (e.g. [Foo]) are also silently ignored, even though -; they might mean something in the future. - -; Directives following the section heading [PATH=/www/mysite] only -; apply to PHP files in the /www/mysite directory. Directives -; following the section heading [HOST=www.example.com] only apply to -; PHP files served from www.example.com. Directives set in these -; special sections cannot be overridden by user-defined INI files or -; at runtime. Currently, [PATH=] and [HOST=] sections only work under -; CGI/FastCGI. -; http://php.net/ini.sections - -; Directives are specified using the following syntax: -; directive = value -; Directive names are *case sensitive* - foo=bar is different from FOO=bar. -; Directives are variables used to configure PHP or PHP extensions. -; There is no name validation. If PHP can't find an expected -; directive because it is not set or is mistyped, a default value will be used. - -; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one -; of the INI constants (On, Off, True, False, Yes, No and None) or an expression -; (e.g. E_ALL & ~E_NOTICE), a quoted string ("bar"), or a reference to a -; previously set variable or directive (e.g. ${foo}) - -; Expressions in the INI file are limited to bitwise operators and parentheses: -; | bitwise OR -; ^ bitwise XOR -; & bitwise AND -; ~ bitwise NOT -; ! boolean NOT - -; Boolean flags can be turned on using the values 1, On, True or Yes. -; They can be turned off using the values 0, Off, False or No. - -; An empty string can be denoted by simply not writing anything after the equal -; sign, or by using the None keyword: - -; foo = ; sets foo to an empty string -; foo = None ; sets foo to an empty string -; foo = "None" ; sets foo to the string 'None' - -; If you use constants in your value, and these constants belong to a -; dynamically loaded extension (either a PHP extension or a Zend extension), -; you may only use these constants *after* the line that loads the extension. - -;;;;;;;;;;;;;;;;;;; -; About this file ; -;;;;;;;;;;;;;;;;;;; -; PHP comes packaged with two INI files. One that is recommended to be used -; in production environments and one that is recommended to be used in -; development environments. - -; php.ini-production contains settings which hold security, performance and -; best practices at its core. But please be aware, these settings may break -; compatibility with older or less security conscience applications. We -; recommending using the production ini in production and testing environments. - -; php.ini-development is very similar to its production variant, except it is -; much more verbose when it comes to errors. We recommend using the -; development version only in development environments, as errors shown to -; application users can inadvertently leak otherwise secure information. - -; This is php.ini-production INI file. - -;;;;;;;;;;;;;;;;;;; -; Quick Reference ; -;;;;;;;;;;;;;;;;;;; -; The following are all the settings which are different in either the production -; or development versions of the INIs with respect to PHP's default behavior. -; Please see the actual settings later in the document for more details as to why -; we recommend these changes in PHP's behavior. - -; display_errors -; Default Value: On -; Development Value: On -; Production Value: Off - -; display_startup_errors -; Default Value: Off -; Development Value: On -; Production Value: Off - -; error_reporting -; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT - -; html_errors -; Default Value: On -; Development Value: On -; Production value: On - -; log_errors -; Default Value: Off -; Development Value: On -; Production Value: On - -; max_input_time -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) - -; output_buffering -; Default Value: Off -; Development Value: 4096 -; Production Value: 4096 - -; register_argc_argv -; Default Value: On -; Development Value: Off -; Production Value: Off - -; request_order -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" - -; session.gc_divisor -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 - -; session.sid_bits_per_character -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 - -; short_open_tag -; Default Value: On -; Development Value: Off -; Production Value: Off - -; track_errors -; Default Value: Off -; Development Value: On -; Production Value: Off - -; variables_order -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS" - -;;;;;;;;;;;;;;;;;;;; -; php.ini Options ; -;;;;;;;;;;;;;;;;;;;; -; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini" -;user_ini.filename = ".user.ini" - -; To disable this feature set this option to empty value -;user_ini.filename = - -; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes) -;user_ini.cache_ttl = 300 - -;;;;;;;;;;;;;;;;;;;; -; Language Options ; -;;;;;;;;;;;;;;;;;;;; - -; Enable the PHP scripting language engine under Apache. -; http://php.net/engine -engine = On - -; This directive determines whether or not PHP will recognize code between -; tags as PHP source which should be processed as such. It is -; generally recommended that should be used and that this feature -; should be disabled, as enabling it may result in issues when generating XML -; documents, however this remains supported for backward compatibility reasons. -; Note that this directive does not control the would work. -; http://php.net/syntax-highlighting -;highlight.string = #DD0000 -;highlight.comment = #FF9900 -;highlight.keyword = #007700 -;highlight.default = #0000BB -;highlight.html = #000000 - -; If enabled, the request will be allowed to complete even if the user aborts -; the request. Consider enabling it if executing long requests, which may end up -; being interrupted by the user or a browser timing out. PHP's default behavior -; is to disable this feature. -; http://php.net/ignore-user-abort -;ignore_user_abort = On - -; Determines the size of the realpath cache to be used by PHP. This value should -; be increased on systems where PHP opens many files to reflect the quantity of -; the file operations performed. -; http://php.net/realpath-cache-size -;realpath_cache_size = 4096k - -; Duration of time, in seconds for which to cache realpath information for a given -; file or directory. For systems with rarely changing files, consider increasing this -; value. -; http://php.net/realpath-cache-ttl -;realpath_cache_ttl = 120 - -; Enables or disables the circular reference collector. -; http://php.net/zend.enable-gc -zend.enable_gc = On - -; If enabled, scripts may be written in encodings that are incompatible with -; the scanner. CP936, Big5, CP949 and Shift_JIS are the examples of such -; encodings. To use this feature, mbstring extension must be enabled. -; Default: Off -;zend.multibyte = Off - -; Allows to set the default encoding for the scripts. This value will be used -; unless "declare(encoding=...)" directive appears at the top of the script. -; Only affects if zend.multibyte is set. -; Default: "" -;zend.script_encoding = - -;;;;;;;;;;;;;;;;; -; Miscellaneous ; -;;;;;;;;;;;;;;;;; - -; Decides whether PHP may expose the fact that it is installed on the server -; (e.g. by adding its signature to the Web server header). It is no security -; threat in any way, but it makes it possible to determine whether you use PHP -; on your server or not. -; http://php.net/expose-php -expose_php = Off - -;;;;;;;;;;;;;;;;;;; -; Resource Limits ; -;;;;;;;;;;;;;;;;;;; - -; Maximum execution time of each script, in seconds -; http://php.net/max-execution-time -; Note: This directive is hardcoded to 0 for the CLI SAPI -max_execution_time = 30 - -; Maximum amount of time each script may spend parsing request data. It's a good -; idea to limit this time on productions servers in order to eliminate unexpectedly -; long running scripts. -; Note: This directive is hardcoded to -1 for the CLI SAPI -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) -; http://php.net/max-input-time -max_input_time = 60 - -; Maximum input variable nesting level -; http://php.net/max-input-nesting-level -;max_input_nesting_level = 64 - -; How many GET/POST/COOKIE input variables may be accepted -; max_input_vars = 1000 - -; Maximum amount of memory a script may consume (128MB) -; http://php.net/memory-limit -memory_limit = 256M - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; Error handling and logging ; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -; This directive informs PHP of which errors, warnings and notices you would like -; it to take action for. The recommended way of setting values for this -; directive is through the use of the error level constants and bitwise -; operators. The error level constants are below here for convenience as well as -; some common settings and their meanings. -; By default, PHP is set to take action on all errors, notices and warnings EXCEPT -; those related to E_NOTICE and E_STRICT, which together cover best practices and -; recommended coding standards in PHP. For performance reasons, this is the -; recommend error reporting setting. Your production server shouldn't be wasting -; resources complaining about best practices and coding standards. That's what -; development servers and development settings are for. -; Note: The php.ini-development file has this setting as E_ALL. This -; means it pretty much reports everything which is exactly what you want during -; development and early testing. -; -; Error Level Constants: -; E_ALL - All errors and warnings (includes E_STRICT as of PHP 5.4.0) -; E_ERROR - fatal run-time errors -; E_RECOVERABLE_ERROR - almost fatal run-time errors -; E_WARNING - run-time warnings (non-fatal errors) -; E_PARSE - compile-time parse errors -; E_NOTICE - run-time notices (these are warnings which often result -; from a bug in your code, but it's possible that it was -; intentional (e.g., using an uninitialized variable and -; relying on the fact it is automatically initialized to an -; empty string) -; E_STRICT - run-time notices, enable to have PHP suggest changes -; to your code which will ensure the best interoperability -; and forward compatibility of your code -; E_CORE_ERROR - fatal errors that occur during PHP's initial startup -; E_CORE_WARNING - warnings (non-fatal errors) that occur during PHP's -; initial startup -; E_COMPILE_ERROR - fatal compile-time errors -; E_COMPILE_WARNING - compile-time warnings (non-fatal errors) -; E_USER_ERROR - user-generated error message -; E_USER_WARNING - user-generated warning message -; E_USER_NOTICE - user-generated notice message -; E_DEPRECATED - warn about code that will not work in future versions -; of PHP -; E_USER_DEPRECATED - user-generated deprecation warnings -; -; Common Values: -; E_ALL (Show all errors, warnings and notices including coding standards.) -; E_ALL & ~E_NOTICE (Show all errors, except for notices) -; E_ALL & ~E_NOTICE & ~E_STRICT (Show all errors, except for notices and coding standards warnings.) -; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors) -; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT -; http://php.net/error-reporting -error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT - -; This directive controls whether or not and where PHP will output errors, -; notices and warnings too. Error output is very useful during development, but -; it could be very dangerous in production environments. Depending on the code -; which is triggering the error, sensitive information could potentially leak -; out of your application such as database usernames and passwords or worse. -; For production environments, we recommend logging errors rather than -; sending them to STDOUT. -; Possible Values: -; Off = Do not display any errors -; stderr = Display errors to STDERR (affects only CGI/CLI binaries!) -; On or stdout = Display errors to STDOUT -; Default Value: On -; Development Value: On -; Production Value: Off -; http://php.net/display-errors -display_errors = Off - -; The display of errors which occur during PHP's startup sequence are handled -; separately from display_errors. PHP's default behavior is to suppress those -; errors from clients. Turning the display of startup errors on can be useful in -; debugging configuration problems. We strongly recommend you -; set this to 'off' for production servers. -; Default Value: Off -; Development Value: On -; Production Value: Off -; http://php.net/display-startup-errors -display_startup_errors = Off - -; Besides displaying errors, PHP can also log errors to locations such as a -; server-specific log, STDERR, or a location specified by the error_log -; directive found below. While errors should not be displayed on productions -; servers they should still be monitored and logging is a great way to do that. -; Default Value: Off -; Development Value: On -; Production Value: On -; http://php.net/log-errors -log_errors = On - -; Set maximum length of log_errors. In error_log information about the source is -; added. The default is 1024 and 0 allows to not apply any maximum length at all. -; http://php.net/log-errors-max-len -log_errors_max_len = 1024 - -; Do not log repeated messages. Repeated errors must occur in same file on same -; line unless ignore_repeated_source is set true. -; http://php.net/ignore-repeated-errors -ignore_repeated_errors = Off - -; Ignore source of message when ignoring repeated messages. When this setting -; is On you will not log errors with repeated messages from different files or -; source lines. -; http://php.net/ignore-repeated-source -ignore_repeated_source = Off - -; If this parameter is set to Off, then memory leaks will not be shown (on -; stdout or in the log). This has only effect in a debug compile, and if -; error reporting includes E_WARNING in the allowed list -; http://php.net/report-memleaks -report_memleaks = On - -; This setting is on by default. -;report_zend_debug = 0 - -; Store the last error/warning message in $php_errormsg (boolean). Setting this value -; to On can assist in debugging and is appropriate for development servers. It should -; however be disabled on production servers. -; Default Value: Off -; Development Value: On -; Production Value: Off -; http://php.net/track-errors -track_errors = Off - -; Turn off normal error reporting and emit XML-RPC error XML -; http://php.net/xmlrpc-errors -;xmlrpc_errors = 0 - -; An XML-RPC faultCode -;xmlrpc_error_number = 0 - -; When PHP displays or logs an error, it has the capability of formatting the -; error message as HTML for easier reading. This directive controls whether -; the error message is formatted as HTML or not. -; Note: This directive is hardcoded to Off for the CLI SAPI -; Default Value: On -; Development Value: On -; Production value: On -; http://php.net/html-errors -html_errors = On - -; If html_errors is set to On *and* docref_root is not empty, then PHP -; produces clickable error messages that direct to a page describing the error -; or function causing the error in detail. -; You can download a copy of the PHP manual from http://php.net/docs -; and change docref_root to the base URL of your local copy including the -; leading '/'. You must also specify the file extension being used including -; the dot. PHP's default behavior is to leave these settings empty, in which -; case no links to documentation are generated. -; Note: Never use this feature for production boxes. -; http://php.net/docref-root -; Examples -;docref_root = "/phpmanual/" - -; http://php.net/docref-ext -;docref_ext = .html - -; String to output before an error message. PHP's default behavior is to leave -; this setting blank. -; http://php.net/error-prepend-string -; Example: -;error_prepend_string = "" - -; String to output after an error message. PHP's default behavior is to leave -; this setting blank. -; http://php.net/error-append-string -; Example: -;error_append_string = "" - -; Log errors to specified file. PHP's default behavior is to leave this value -; empty. -; http://php.net/error-log -; Example: -;error_log = php_errors.log -; Log errors to syslog (Event Log on Windows). -error_log = /var/log/php/php.error.log - -;windows.show_crt_warning -; Default value: 0 -; Development value: 0 -; Production value: 0 - -;;;;;;;;;;;;;;;;; -; Data Handling ; -;;;;;;;;;;;;;;;;; - -; The separator used in PHP generated URLs to separate arguments. -; PHP's default setting is "&". -; http://php.net/arg-separator.output -; Example: -;arg_separator.output = "&" - -; List of separator(s) used by PHP to parse input URLs into variables. -; PHP's default setting is "&". -; NOTE: Every character in this directive is considered as separator! -; http://php.net/arg-separator.input -; Example: -;arg_separator.input = ";&" - -; This directive determines which super global arrays are registered when PHP -; starts up. G,P,C,E & S are abbreviations for the following respective super -; globals: GET, POST, COOKIE, ENV and SERVER. There is a performance penalty -; paid for the registration of these arrays and because ENV is not as commonly -; used as the others, ENV is not recommended on productions servers. You -; can still get access to the environment variables through getenv() should you -; need to. -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS"; -; http://php.net/variables-order -variables_order = "GPCS" - -; This directive determines which super global data (G,P & C) should be -; registered into the super global array REQUEST. If so, it also determines -; the order in which that data is registered. The values for this directive -; are specified in the same manner as the variables_order directive, -; EXCEPT one. Leaving this value empty will cause PHP to use the value set -; in the variables_order directive. It does not mean it will leave the super -; globals array REQUEST empty. -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" -; http://php.net/request-order -request_order = "GP" - -; This directive determines whether PHP registers $argv & $argc each time it -; runs. $argv contains an array of all the arguments passed to PHP when a script -; is invoked. $argc contains an integer representing the number of arguments -; that were passed when the script was invoked. These arrays are extremely -; useful when running scripts from the command line. When this directive is -; enabled, registering these variables consumes CPU cycles and memory each time -; a script is executed. For performance reasons, this feature should be disabled -; on production servers. -; Note: This directive is hardcoded to On for the CLI SAPI -; Default Value: On -; Development Value: Off -; Production Value: Off -; http://php.net/register-argc-argv -register_argc_argv = Off - -; When enabled, the ENV, REQUEST and SERVER variables are created when they're -; first used (Just In Time) instead of when the script starts. If these -; variables are not used within a script, having this directive on will result -; in a performance gain. The PHP directive register_argc_argv must be disabled -; for this directive to have any affect. -; http://php.net/auto-globals-jit -auto_globals_jit = On - -; Whether PHP will read the POST data. -; This option is enabled by default. -; Most likely, you won't want to disable this option globally. It causes $_POST -; and $_FILES to always be empty; the only way you will be able to read the -; POST data will be through the php://input stream wrapper. This can be useful -; to proxy requests or to process the POST data in a memory efficient fashion. -; http://php.net/enable-post-data-reading -;enable_post_data_reading = Off - -; Maximum size of POST data that PHP will accept. -; Its value may be 0 to disable the limit. It is ignored if POST data reading -; is disabled through enable_post_data_reading. -; http://php.net/post-max-size -post_max_size = 100M - -; Automatically add files before PHP document. -; http://php.net/auto-prepend-file -auto_prepend_file = - -; Automatically add files after PHP document. -; http://php.net/auto-append-file -auto_append_file = - -; By default, PHP will output a media type using the Content-Type header. To -; disable this, simply set it to be empty. -; -; PHP's built-in default media type is set to text/html. -; http://php.net/default-mimetype -default_mimetype = "text/html" - -; PHP's default character set is set to UTF-8. -; http://php.net/default-charset -default_charset = "UTF-8" - -; PHP internal character encoding is set to empty. -; If empty, default_charset is used. -; http://php.net/internal-encoding -;internal_encoding = - -; PHP input character encoding is set to empty. -; If empty, default_charset is used. -; http://php.net/input-encoding -;input_encoding = - -; PHP output character encoding is set to empty. -; If empty, default_charset is used. -; See also output_buffer. -; http://php.net/output-encoding -;output_encoding = - -;;;;;;;;;;;;;;;;;;;;;;;;; -; Paths and Directories ; -;;;;;;;;;;;;;;;;;;;;;;;;; - -; UNIX: "/path1:/path2" -;include_path = ".:/php/includes" -; -; Windows: "\path1;\path2" -;include_path = ".;c:\php\includes" -; -; PHP's default setting for include_path is ".;/path/to/php/pear" -; http://php.net/include-path - -; The root of the PHP pages, used only if nonempty. -; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root -; if you are running php as a CGI under any web server (other than IIS) -; see documentation for security issues. The alternate is to use the -; cgi.force_redirect configuration below -; http://php.net/doc-root -doc_root = - -; The directory under which PHP opens the script using /~username used only -; if nonempty. -; http://php.net/user-dir -user_dir = - -; Directory in which the loadable extensions (modules) reside. -; http://php.net/extension-dir -; extension_dir = "./" -; On windows: -; extension_dir = "ext" - -; Directory where the temporary files should be placed. -; Defaults to the system default (see sys_get_temp_dir) -; sys_temp_dir = "/tmp" - -; Whether or not to enable the dl() function. The dl() function does NOT work -; properly in multithreaded servers, such as IIS or Zeus, and is automatically -; disabled on them. -; http://php.net/enable-dl -enable_dl = Off - -; cgi.force_redirect is necessary to provide security running PHP as a CGI under -; most web servers. Left undefined, PHP turns this on by default. You can -; turn it off here AT YOUR OWN RISK -; **You CAN safely turn this off for IIS, in fact, you MUST.** -; http://php.net/cgi.force-redirect -;cgi.force_redirect = 1 - -; if cgi.nph is enabled it will force cgi to always sent Status: 200 with -; every request. PHP's default behavior is to disable this feature. -;cgi.nph = 1 - -; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape -; (iPlanet) web servers, you MAY need to set an environment variable name that PHP -; will look for to know it is OK to continue execution. Setting this variable MAY -; cause security issues, KNOW WHAT YOU ARE DOING FIRST. -; http://php.net/cgi.redirect-status-env -;cgi.redirect_status_env = - -; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's -; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok -; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting -; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting -; of zero causes PHP to behave as before. Default is 1. You should fix your scripts -; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. -; http://php.net/cgi.fix-pathinfo -;cgi.fix_pathinfo=1 - -; if cgi.discard_path is enabled, the PHP CGI binary can safely be placed outside -; of the web tree and people will not be able to circumvent .htaccess security. -; http://php.net/cgi.dicard-path -;cgi.discard_path=1 - -; FastCGI under IIS (on WINNT based OS) supports the ability to impersonate -; security tokens of the calling client. This allows IIS to define the -; security context that the request runs under. mod_fastcgi under Apache -; does not currently support this feature (03/17/2002) -; Set to 1 if running under IIS. Default is zero. -; http://php.net/fastcgi.impersonate -;fastcgi.impersonate = 1 - -; Disable logging through FastCGI connection. PHP's default behavior is to enable -; this feature. -;fastcgi.logging = 0 - -; cgi.rfc2616_headers configuration option tells PHP what type of headers to -; use when sending HTTP response code. If set to 0, PHP sends Status: header that -; is supported by Apache. When this option is set to 1, PHP will send -; RFC2616 compliant header. -; Default is zero. -; http://php.net/cgi.rfc2616-headers -;cgi.rfc2616_headers = 0 - -; cgi.check_shebang_line controls whether CGI PHP checks for line starting with #! -; (shebang) at the top of the running script. This line might be needed if the -; script support running both as stand-alone script and via PHP CGI<. PHP in CGI -; mode skips this line and ignores its content if this directive is turned on. -; http://php.net/cgi.check-shebang-line -;cgi.check_shebang_line=1 - -;;;;;;;;;;;;;;;; -; File Uploads ; -;;;;;;;;;;;;;;;; - -; Whether to allow HTTP file uploads. -; http://php.net/file-uploads -file_uploads = On - -; Temporary directory for HTTP uploaded files (will use system default if not -; specified). -; http://php.net/upload-tmp-dir -;upload_tmp_dir = - -; Maximum allowed size for uploaded files. -; http://php.net/upload-max-filesize -upload_max_filesize = 50M - -; Maximum number of files that can be uploaded via a single request -max_file_uploads = 20 - -;;;;;;;;;;;;;;;;;; -; Fopen wrappers ; -;;;;;;;;;;;;;;;;;; - -; Whether to allow the treatment of URLs (like http:// or ftp://) as files. -; http://php.net/allow-url-fopen -allow_url_fopen = On - -; Whether to allow include/require to open URLs (like http:// or ftp://) as files. -; http://php.net/allow-url-include -allow_url_include = Off - -; Define the anonymous ftp password (your email address). PHP's default setting -; for this is empty. -; http://php.net/from -;from="john@doe.com" - -; Define the User-Agent string. PHP's default setting for this is empty. -; http://php.net/user-agent -;user_agent="PHP" - -; Default timeout for socket based streams (seconds) -; http://php.net/default-socket-timeout -default_socket_timeout = 60 - -; If your scripts have to deal with files from Macintosh systems, -; or you are running on a Mac and need to deal with files from -; unix or win32 systems, setting this flag will cause PHP to -; automatically detect the EOL character in those files so that -; fgets() and file() will work regardless of the source of the file. -; http://php.net/auto-detect-line-endings -;auto_detect_line_endings = Off - -;;;;;;;;;;;;;;;;;;;;;; -; Dynamic Extensions ; -;;;;;;;;;;;;;;;;;;;;;; - -; If you wish to have an extension loaded automatically, use the following -; syntax: -; -; extension=modulename.extension -; -; For example, on Windows: -; -; extension=mysqli.dll -; -; ... or under UNIX: -; -; extension=mysqli.so -; -; ... or with a path: -; -; extension=/path/to/extension/mysqli.so -; -; If you only provide the name of the extension, PHP will look for it in its -; default extension directory. -; -; Windows Extensions -; Note that ODBC support is built in, so no dll is needed for it. -; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5+) -; extension folders as well as the separate PECL DLL download (PHP 5+). -; Be sure to appropriately set the extension_dir directive. -; -;extension=php_bz2.dll -;extension=php_curl.dll -;extension=php_fileinfo.dll -;extension=php_ftp.dll -;extension=php_gd2.dll -;extension=php_gettext.dll -;extension=php_gmp.dll -;extension=php_intl.dll -;extension=php_imap.dll -;extension=php_interbase.dll -;extension=php_ldap.dll -;extension=php_mbstring.dll -;extension=php_exif.dll ; Must be after mbstring as it depends on it -;extension=php_mysqli.dll -;extension=php_oci8_12c.dll ; Use with Oracle Database 12c Instant Client -;extension=php_openssl.dll -;extension=php_pdo_firebird.dll -;extension=php_pdo_mysql.dll -;extension=php_pdo_oci.dll -;extension=php_pdo_odbc.dll -;extension=php_pdo_pgsql.dll -;extension=php_pdo_sqlite.dll -;extension=php_pgsql.dll -;extension=php_shmop.dll - -; The MIBS data available in the PHP distribution must be installed. -; See http://www.php.net/manual/en/snmp.installation.php -;extension=php_snmp.dll - -;extension=php_soap.dll -;extension=php_sockets.dll -;extension=php_sqlite3.dll -;extension=php_tidy.dll -;extension=php_xmlrpc.dll -;extension=php_xsl.dll - -;;;;;;;;;;;;;;;;;;; -; Module Settings ; -;;;;;;;;;;;;;;;;;;; - -[CLI Server] -; Whether the CLI web server uses ANSI color coding in its terminal output. -cli_server.color = On - -[Date] -; Defines the default timezone used by the date functions -; http://php.net/date.timezone -date.timezone = Asia/Shanghai - -; http://php.net/date.default-latitude -;date.default_latitude = 31.7667 - -; http://php.net/date.default-longitude -;date.default_longitude = 35.2333 - -; http://php.net/date.sunrise-zenith -;date.sunrise_zenith = 90.583333 - -; http://php.net/date.sunset-zenith -;date.sunset_zenith = 90.583333 - -[filter] -; http://php.net/filter.default -;filter.default = unsafe_raw - -; http://php.net/filter.default-flags -;filter.default_flags = - -[iconv] -; Use of this INI entry is deprecated, use global input_encoding instead. -; If empty, default_charset or input_encoding or iconv.input_encoding is used. -; The precedence is: default_charset < intput_encoding < iconv.input_encoding -;iconv.input_encoding = - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;iconv.internal_encoding = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; If empty, default_charset or output_encoding or iconv.output_encoding is used. -; The precedence is: default_charset < output_encoding < iconv.output_encoding -; To use an output encoding conversion, iconv's output handler must be set -; otherwise output encoding conversion cannot be performed. -;iconv.output_encoding = - -[intl] -;intl.default_locale = -; This directive allows you to produce PHP errors when some error -; happens within intl functions. The value is the level of the error produced. -; Default is 0, which does not produce any errors. -;intl.error_level = E_WARNING -;intl.use_exceptions = 0 - -[sqlite3] -;sqlite3.extension_dir = - -[Pcre] -;PCRE library backtracking limit. -; http://php.net/pcre.backtrack-limit -;pcre.backtrack_limit=100000 - -;PCRE library recursion limit. -;Please note that if you set this value to a high number you may consume all -;the available process stack and eventually crash PHP (due to reaching the -;stack size limit imposed by the Operating System). -; http://php.net/pcre.recursion-limit -;pcre.recursion_limit=100000 - -;Enables or disables JIT compilation of patterns. This requires the PCRE -;library to be compiled with JIT support. -;pcre.jit=1 - -[Pdo] -; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off" -; http://php.net/pdo-odbc.connection-pooling -;pdo_odbc.connection_pooling=strict - -;pdo_odbc.db2_instance_name - -[Pdo_mysql] -; If mysqlnd is used: Number of cache slots for the internal result set cache -; http://php.net/pdo_mysql.cache_size -pdo_mysql.cache_size = 2000 - -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -; http://php.net/pdo_mysql.default-socket -pdo_mysql.default_socket= - -[Phar] -; http://php.net/phar.readonly -;phar.readonly = On - -; http://php.net/phar.require-hash -;phar.require_hash = On - -;phar.cache_list = - -[mail function] -; For Win32 only. -; http://php.net/smtp -SMTP = localhost -; http://php.net/smtp-port -smtp_port = 25 - -; For Win32 only. -; http://php.net/sendmail-from -;sendmail_from = me@example.com - -; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). -; http://php.net/sendmail-path -;sendmail_path = - -; Force the addition of the specified parameters to be passed as extra parameters -; to the sendmail binary. These parameters will always replace the value of -; the 5th parameter to mail(). -;mail.force_extra_parameters = - -; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename -mail.add_x_header = On - -; The path to a log file that will log all mail() calls. Log entries include -; the full path of the script, line number, To address and headers. -;mail.log = -; Log mail to syslog (Event Log on Windows). -;mail.log = syslog - -[ODBC] -; http://php.net/odbc.default-db -;odbc.default_db = Not yet implemented - -; http://php.net/odbc.default-user -;odbc.default_user = Not yet implemented - -; http://php.net/odbc.default-pw -;odbc.default_pw = Not yet implemented - -; Controls the ODBC cursor model. -; Default: SQL_CURSOR_STATIC (default). -;odbc.default_cursortype - -; Allow or prevent persistent links. -; http://php.net/odbc.allow-persistent -odbc.allow_persistent = On - -; Check that a connection is still valid before reuse. -; http://php.net/odbc.check-persistent -odbc.check_persistent = On - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/odbc.max-persistent -odbc.max_persistent = -1 - -; Maximum number of links (persistent + non-persistent). -1 means no limit. -; http://php.net/odbc.max-links -odbc.max_links = -1 - -; Handling of LONG fields. Returns number of bytes to variables. 0 means -; passthru. -; http://php.net/odbc.defaultlrl -odbc.defaultlrl = 4096 - -; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char. -; See the documentation on odbc_binmode and odbc_longreadlen for an explanation -; of odbc.defaultlrl and odbc.defaultbinmode -; http://php.net/odbc.defaultbinmode -odbc.defaultbinmode = 1 - -;birdstep.max_links = -1 - -[Interbase] -; Allow or prevent persistent links. -ibase.allow_persistent = 1 - -; Maximum number of persistent links. -1 means no limit. -ibase.max_persistent = -1 - -; Maximum number of links (persistent + non-persistent). -1 means no limit. -ibase.max_links = -1 - -; Default database name for ibase_connect(). -;ibase.default_db = - -; Default username for ibase_connect(). -;ibase.default_user = - -; Default password for ibase_connect(). -;ibase.default_password = - -; Default charset for ibase_connect(). -;ibase.default_charset = - -; Default timestamp format. -ibase.timestampformat = "%Y-%m-%d %H:%M:%S" - -; Default date format. -ibase.dateformat = "%Y-%m-%d" - -; Default time format. -ibase.timeformat = "%H:%M:%S" - -[MySQLi] - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/mysqli.max-persistent -mysqli.max_persistent = -1 - -; Allow accessing, from PHP's perspective, local files with LOAD DATA statements -; http://php.net/mysqli.allow_local_infile -;mysqli.allow_local_infile = On - -; Allow or prevent persistent links. -; http://php.net/mysqli.allow-persistent -mysqli.allow_persistent = On - -; Maximum number of links. -1 means no limit. -; http://php.net/mysqli.max-links -mysqli.max_links = -1 - -; If mysqlnd is used: Number of cache slots for the internal result set cache -; http://php.net/mysqli.cache_size -mysqli.cache_size = 2000 - -; Default port number for mysqli_connect(). If unset, mysqli_connect() will use -; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the -; compile-time value defined MYSQL_PORT (in that order). Win32 will only look -; at MYSQL_PORT. -; http://php.net/mysqli.default-port -mysqli.default_port = 3306 - -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -; http://php.net/mysqli.default-socket -mysqli.default_socket = - -; Default host for mysql_connect() (doesn't apply in safe mode). -; http://php.net/mysqli.default-host -mysqli.default_host = - -; Default user for mysql_connect() (doesn't apply in safe mode). -; http://php.net/mysqli.default-user -mysqli.default_user = - -; Default password for mysqli_connect() (doesn't apply in safe mode). -; Note that this is generally a *bad* idea to store passwords in this file. -; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw") -; and reveal this password! And of course, any users with read access to this -; file will be able to reveal the password as well. -; http://php.net/mysqli.default-pw -mysqli.default_pw = - -; Allow or prevent reconnect -mysqli.reconnect = Off - -[mysqlnd] -; Enable / Disable collection of general statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -; http://php.net/mysqlnd.collect_statistics -mysqlnd.collect_statistics = On - -; Enable / Disable collection of memory usage statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -; http://php.net/mysqlnd.collect_memory_statistics -mysqlnd.collect_memory_statistics = Off - -; Records communication from all extensions using mysqlnd to the specified log -; file. -; http://php.net/mysqlnd.debug -;mysqlnd.debug = - -; Defines which queries will be logged. -; http://php.net/mysqlnd.log_mask -;mysqlnd.log_mask = 0 - -; Default size of the mysqlnd memory pool, which is used by result sets. -; http://php.net/mysqlnd.mempool_default_size -;mysqlnd.mempool_default_size = 16000 - -; Size of a pre-allocated buffer used when sending commands to MySQL in bytes. -; http://php.net/mysqlnd.net_cmd_buffer_size -;mysqlnd.net_cmd_buffer_size = 2048 - -; Size of a pre-allocated buffer used for reading data sent by the server in -; bytes. -; http://php.net/mysqlnd.net_read_buffer_size -;mysqlnd.net_read_buffer_size = 32768 - -; Timeout for network requests in seconds. -; http://php.net/mysqlnd.net_read_timeout -;mysqlnd.net_read_timeout = 31536000 - -; SHA-256 Authentication Plugin related. File with the MySQL server public RSA -; key. -; http://php.net/mysqlnd.sha256_server_public_key -;mysqlnd.sha256_server_public_key = - -[OCI8] - -; Connection: Enables privileged connections using external -; credentials (OCI_SYSOPER, OCI_SYSDBA) -; http://php.net/oci8.privileged-connect -;oci8.privileged_connect = Off - -; Connection: The maximum number of persistent OCI8 connections per -; process. Using -1 means no limit. -; http://php.net/oci8.max-persistent -;oci8.max_persistent = -1 - -; Connection: The maximum number of seconds a process is allowed to -; maintain an idle persistent connection. Using -1 means idle -; persistent connections will be maintained forever. -; http://php.net/oci8.persistent-timeout -;oci8.persistent_timeout = -1 - -; Connection: The number of seconds that must pass before issuing a -; ping during oci_pconnect() to check the connection validity. When -; set to 0, each oci_pconnect() will cause a ping. Using -1 disables -; pings completely. -; http://php.net/oci8.ping-interval -;oci8.ping_interval = 60 - -; Connection: Set this to a user chosen connection class to be used -; for all pooled server requests with Oracle 11g Database Resident -; Connection Pooling (DRCP). To use DRCP, this value should be set to -; the same string for all web servers running the same application, -; the database pool must be configured, and the connection string must -; specify to use a pooled server. -;oci8.connection_class = - -; High Availability: Using On lets PHP receive Fast Application -; Notification (FAN) events generated when a database node fails. The -; database must also be configured to post FAN events. -;oci8.events = Off - -; Tuning: This option enables statement caching, and specifies how -; many statements to cache. Using 0 disables statement caching. -; http://php.net/oci8.statement-cache-size -;oci8.statement_cache_size = 20 - -; Tuning: Enables statement prefetching and sets the default number of -; rows that will be fetched automatically after statement execution. -; http://php.net/oci8.default-prefetch -;oci8.default_prefetch = 100 - -; Compatibility. Using On means oci_close() will not close -; oci_connect() and oci_new_connect() connections. -; http://php.net/oci8.old-oci-close-semantics -;oci8.old_oci_close_semantics = Off - -[PostgreSQL] -; Allow or prevent persistent links. -; http://php.net/pgsql.allow-persistent -pgsql.allow_persistent = On - -; Detect broken persistent links always with pg_pconnect(). -; Auto reset feature requires a little overheads. -; http://php.net/pgsql.auto-reset-persistent -pgsql.auto_reset_persistent = Off - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/pgsql.max-persistent -pgsql.max_persistent = -1 - -; Maximum number of links (persistent+non persistent). -1 means no limit. -; http://php.net/pgsql.max-links -pgsql.max_links = -1 - -; Ignore PostgreSQL backends Notice message or not. -; Notice message logging require a little overheads. -; http://php.net/pgsql.ignore-notice -pgsql.ignore_notice = 0 - -; Log PostgreSQL backends Notice message or not. -; Unless pgsql.ignore_notice=0, module cannot log notice message. -; http://php.net/pgsql.log-notice -pgsql.log_notice = 0 - -[bcmath] -; Number of decimal digits for all bcmath functions. -; http://php.net/bcmath.scale -bcmath.scale = 0 - -[browscap] -; http://php.net/browscap -;browscap = extra/browscap.ini - -[Session] -; Handler used to store/retrieve data. -; http://php.net/session.save-handler -session.save_handler = files - -; Argument passed to save_handler. In the case of files, this is the path -; where data files are stored. Note: Windows users have to change this -; variable in order to use PHP's session functions. -; -; The path can be defined as: -; -; session.save_path = "N;/path" -; -; where N is an integer. Instead of storing all the session files in -; /path, what this will do is use subdirectories N-levels deep, and -; store the session data in those directories. This is useful if -; your OS has problems with many files in one directory, and is -; a more efficient layout for servers that handle many sessions. -; -; NOTE 1: PHP will not create this directory structure automatically. -; You can use the script in the ext/session dir for that purpose. -; NOTE 2: See the section on garbage collection below if you choose to -; use subdirectories for session storage -; -; The file storage module creates files using mode 600 by default. -; You can change that by using -; -; session.save_path = "N;MODE;/path" -; -; where MODE is the octal representation of the mode. Note that this -; does not overwrite the process's umask. -; http://php.net/session.save-path -;session.save_path = "/tmp" - -; Whether to use strict session mode. -; Strict session mode does not accept uninitialized session ID and regenerate -; session ID if browser sends uninitialized session ID. Strict mode protects -; applications from session fixation via session adoption vulnerability. It is -; disabled by default for maximum compatibility, but enabling it is encouraged. -; https://wiki.php.net/rfc/strict_sessions -session.use_strict_mode = 0 - -; Whether to use cookies. -; http://php.net/session.use-cookies -session.use_cookies = 1 - -; http://php.net/session.cookie-secure -;session.cookie_secure = - -; This option forces PHP to fetch and use a cookie for storing and maintaining -; the session id. We encourage this operation as it's very helpful in combating -; session hijacking when not specifying and managing your own session id. It is -; not the be-all and end-all of session hijacking defense, but it's a good start. -; http://php.net/session.use-only-cookies -session.use_only_cookies = 1 - -; Name of the session (used as cookie name). -; http://php.net/session.name -session.name = PHPSESSID - -; Initialize session on request startup. -; http://php.net/session.auto-start -session.auto_start = 0 - -; Lifetime in seconds of cookie or, if 0, until browser is restarted. -; http://php.net/session.cookie-lifetime -session.cookie_lifetime = 0 - -; The path for which the cookie is valid. -; http://php.net/session.cookie-path -session.cookie_path = / - -; The domain for which the cookie is valid. -; http://php.net/session.cookie-domain -session.cookie_domain = - -; Whether or not to add the httpOnly flag to the cookie, which makes it inaccessible to browser scripting languages such as JavaScript. -; http://php.net/session.cookie-httponly -session.cookie_httponly = - -; Handler used to serialize data. php is the standard serializer of PHP. -; http://php.net/session.serialize-handler -session.serialize_handler = php - -; Defines the probability that the 'garbage collection' process is started -; on every session initialization. The probability is calculated by using -; gc_probability/gc_divisor. Where session.gc_probability is the numerator -; and gc_divisor is the denominator in the equation. Setting this value to 1 -; when the session.gc_divisor value is 100 will give you approximately a 1% chance -; the gc will run on any give request. -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; http://php.net/session.gc-probability -session.gc_probability = 1 - -; Defines the probability that the 'garbage collection' process is started on every -; session initialization. The probability is calculated by using the following equation: -; gc_probability/gc_divisor. Where session.gc_probability is the numerator and -; session.gc_divisor is the denominator in the equation. Setting this value to 1 -; when the session.gc_divisor value is 100 will give you approximately a 1% chance -; the gc will run on any give request. Increasing this value to 1000 will give you -; a 0.1% chance the gc will run on any give request. For high volume production servers, -; this is a more efficient approach. -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 -; http://php.net/session.gc-divisor -session.gc_divisor = 1000 - -; After this number of seconds, stored data will be seen as 'garbage' and -; cleaned up by the garbage collection process. -; http://php.net/session.gc-maxlifetime -session.gc_maxlifetime = 1440 - -; NOTE: If you are using the subdirectory option for storing session files -; (see session.save_path above), then garbage collection does *not* -; happen automatically. You will need to do your own garbage -; collection through a shell script, cron entry, or some other method. -; For example, the following script would is the equivalent of -; setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes): -; find /path/to/sessions -cmin +24 -type f | xargs rm - -; Check HTTP Referer to invalidate externally stored URLs containing ids. -; HTTP_REFERER has to contain this substring for the session to be -; considered as valid. -; http://php.net/session.referer-check -session.referer_check = - -; Set to {nocache,private,public,} to determine HTTP caching aspects -; or leave this empty to avoid sending anti-caching headers. -; http://php.net/session.cache-limiter -session.cache_limiter = nocache - -; Document expires after n minutes. -; http://php.net/session.cache-expire -session.cache_expire = 180 - -; trans sid support is disabled by default. -; Use of trans sid may risk your users' security. -; Use this option with caution. -; - User may send URL contains active session ID -; to other person via. email/irc/etc. -; - URL that contains active session ID may be stored -; in publicly accessible computer. -; - User may access your site with the same session ID -; always using URL stored in browser's history or bookmarks. -; http://php.net/session.use-trans-sid -session.use_trans_sid = 0 - -; Set session ID character length. This value could be between 22 to 256. -; Shorter length than default is supported only for compatibility reason. -; Users should use 32 or more chars. -; http://php.net/session.sid-length -; Default Value: 32 -; Development Value: 26 -; Production Value: 26 -session.sid_length = 26 - -; The URL rewriter will look for URLs in a defined set of HTML tags. -; is special; if you include them here, the rewriter will -; add a hidden field with the info which is otherwise appended -; to URLs. tag's action attribute URL will not be modified -; unless it is specified. -; Note that all valid entries require a "=", even if no value follows. -; Default Value: "a=href,area=href,frame=src,form=" -; Development Value: "a=href,area=href,frame=src,form=" -; Production Value: "a=href,area=href,frame=src,form=" -; http://php.net/url-rewriter.tags -session.trans_sid_tags = "a=href,area=href,frame=src,form=" - -; URL rewriter does not rewrite absolute URLs by default. -; To enable rewrites for absolute pathes, target hosts must be specified -; at RUNTIME. i.e. use ini_set() -; tags is special. PHP will check action attribute's URL regardless -; of session.trans_sid_tags setting. -; If no host is defined, HTTP_HOST will be used for allowed host. -; Example value: php.net,www.php.net,wiki.php.net -; Use "," for multiple hosts. No spaces are allowed. -; Default Value: "" -; Development Value: "" -; Production Value: "" -;session.trans_sid_hosts="" - -; Define how many bits are stored in each character when converting -; the binary hash data to something readable. -; Possible values: -; 4 (4 bits: 0-9, a-f) -; 5 (5 bits: 0-9, a-v) -; 6 (6 bits: 0-9, a-z, A-Z, "-", ",") -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 -; http://php.net/session.hash-bits-per-character -session.sid_bits_per_character = 5 - -; Enable upload progress tracking in $_SESSION -; Default Value: On -; Development Value: On -; Production Value: On -; http://php.net/session.upload-progress.enabled -;session.upload_progress.enabled = On - -; Cleanup the progress information as soon as all POST data has been read -; (i.e. upload completed). -; Default Value: On -; Development Value: On -; Production Value: On -; http://php.net/session.upload-progress.cleanup -;session.upload_progress.cleanup = On - -; A prefix used for the upload progress key in $_SESSION -; Default Value: "upload_progress_" -; Development Value: "upload_progress_" -; Production Value: "upload_progress_" -; http://php.net/session.upload-progress.prefix -;session.upload_progress.prefix = "upload_progress_" - -; The index name (concatenated with the prefix) in $_SESSION -; containing the upload progress information -; Default Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Development Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Production Value: "PHP_SESSION_UPLOAD_PROGRESS" -; http://php.net/session.upload-progress.name -;session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS" - -; How frequently the upload progress should be updated. -; Given either in percentages (per-file), or in bytes -; Default Value: "1%" -; Development Value: "1%" -; Production Value: "1%" -; http://php.net/session.upload-progress.freq -;session.upload_progress.freq = "1%" - -; The minimum delay between updates, in seconds -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; http://php.net/session.upload-progress.min-freq -;session.upload_progress.min_freq = "1" - -; Only write session data when session data is changed. Enabled by default. -; http://php.net/session.lazy-write -;session.lazy_write = On - -[Assertion] -; Switch whether to compile assertions at all (to have no overhead at run-time) -; -1: Do not compile at all -; 0: Jump over assertion at run-time -; 1: Execute assertions -; Changing from or to a negative value is only possible in php.ini! (For turning assertions on and off at run-time, see assert.active, when zend.assertions = 1) -; Default Value: 1 -; Development Value: 1 -; Production Value: -1 -; http://php.net/zend.assertions -zend.assertions = -1 - -; Assert(expr); active by default. -; http://php.net/assert.active -;assert.active = On - -; Throw an AssertationException on failed assertions -; http://php.net/assert.exception -;assert.exception = On - -; Issue a PHP warning for each failed assertion. (Overridden by assert.exception if active) -; http://php.net/assert.warning -;assert.warning = On - -; Don't bail out by default. -; http://php.net/assert.bail -;assert.bail = Off - -; User-function to be called if an assertion fails. -; http://php.net/assert.callback -;assert.callback = 0 - -; Eval the expression with current error_reporting(). Set to true if you want -; error_reporting(0) around the eval(). -; http://php.net/assert.quiet-eval -;assert.quiet_eval = 0 - -[COM] -; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs -; http://php.net/com.typelib-file -;com.typelib_file = - -; allow Distributed-COM calls -; http://php.net/com.allow-dcom -;com.allow_dcom = true - -; autoregister constants of a components typlib on com_load() -; http://php.net/com.autoregister-typelib -;com.autoregister_typelib = true - -; register constants casesensitive -; http://php.net/com.autoregister-casesensitive -;com.autoregister_casesensitive = false - -; show warnings on duplicate constant registrations -; http://php.net/com.autoregister-verbose -;com.autoregister_verbose = true - -; The default character set code-page to use when passing strings to and from COM objects. -; Default: system ANSI code page -;com.code_page= - -[mbstring] -; language for internal character representation. -; This affects mb_send_mail() and mbstring.detect_order. -; http://php.net/mbstring.language -;mbstring.language = Japanese - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; internal/script encoding. -; Some encoding cannot work as internal encoding. (e.g. SJIS, BIG5, ISO-2022-*) -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;mbstring.internal_encoding = - -; Use of this INI entry is deprecated, use global input_encoding instead. -; http input encoding. -; mbstring.encoding_traslation = On is needed to use this setting. -; If empty, default_charset or input_encoding or mbstring.input is used. -; The precedence is: default_charset < intput_encoding < mbsting.http_input -; http://php.net/mbstring.http-input -;mbstring.http_input = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; http output encoding. -; mb_output_handler must be registered as output buffer to function. -; If empty, default_charset or output_encoding or mbstring.http_output is used. -; The precedence is: default_charset < output_encoding < mbstring.http_output -; To use an output encoding conversion, mbstring's output handler must be set -; otherwise output encoding conversion cannot be performed. -; http://php.net/mbstring.http-output -;mbstring.http_output = - -; enable automatic encoding translation according to -; mbstring.internal_encoding setting. Input chars are -; converted to internal encoding by setting this to On. -; Note: Do _not_ use automatic encoding translation for -; portable libs/applications. -; http://php.net/mbstring.encoding-translation -;mbstring.encoding_translation = Off - -; automatic encoding detection order. -; "auto" detect order is changed according to mbstring.language -; http://php.net/mbstring.detect-order -;mbstring.detect_order = auto - -; substitute_character used when character cannot be converted -; one from another -; http://php.net/mbstring.substitute-character -;mbstring.substitute_character = none - -; overload(replace) single byte functions by mbstring functions. -; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(), -; etc. Possible values are 0,1,2,4 or combination of them. -; For example, 7 for overload everything. -; 0: No overload -; 1: Overload mail() function -; 2: Overload str*() functions -; 4: Overload ereg*() functions -; http://php.net/mbstring.func-overload -;mbstring.func_overload = 0 - -; enable strict encoding detection. -; Default: Off -;mbstring.strict_detection = On - -; This directive specifies the regex pattern of content types for which mb_output_handler() -; is activated. -; Default: mbstring.http_output_conv_mimetype=^(text/|application/xhtml\+xml) -;mbstring.http_output_conv_mimetype= - -[gd] -; Tell the jpeg decode to ignore warnings and try to create -; a gd image. The warning will then be displayed as notices -; disabled by default -; http://php.net/gd.jpeg-ignore-warning -;gd.jpeg_ignore_warning = 1 - -[exif] -; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS. -; With mbstring support this will automatically be converted into the encoding -; given by corresponding encode setting. When empty mbstring.internal_encoding -; is used. For the decode settings you can distinguish between motorola and -; intel byte order. A decode setting cannot be empty. -; http://php.net/exif.encode-unicode -;exif.encode_unicode = ISO-8859-15 - -; http://php.net/exif.decode-unicode-motorola -;exif.decode_unicode_motorola = UCS-2BE - -; http://php.net/exif.decode-unicode-intel -;exif.decode_unicode_intel = UCS-2LE - -; http://php.net/exif.encode-jis -;exif.encode_jis = - -; http://php.net/exif.decode-jis-motorola -;exif.decode_jis_motorola = JIS - -; http://php.net/exif.decode-jis-intel -;exif.decode_jis_intel = JIS - -[Tidy] -; The path to a default tidy configuration file to use when using tidy -; http://php.net/tidy.default-config -;tidy.default_config = /usr/local/lib/php/default.tcfg - -; Should tidy clean and repair output automatically? -; WARNING: Do not use this option if you are generating non-html content -; such as dynamic images -; http://php.net/tidy.clean-output -tidy.clean_output = Off - -[soap] -; Enables or disables WSDL caching feature. -; http://php.net/soap.wsdl-cache-enabled -soap.wsdl_cache_enabled=1 - -; Sets the directory name where SOAP extension will put cache files. -; http://php.net/soap.wsdl-cache-dir -soap.wsdl_cache_dir="/tmp" - -; (time to live) Sets the number of second while cached file will be used -; instead of original one. -; http://php.net/soap.wsdl-cache-ttl -soap.wsdl_cache_ttl=86400 - -; Sets the size of the cache limit. (Max. number of WSDL files to cache) -soap.wsdl_cache_limit = 5 - -[sysvshm] -; A default size of the shared memory segment -;sysvshm.init_mem = 10000 - -[ldap] -; Sets the maximum number of open links or -1 for unlimited. -ldap.max_links = -1 - -[dba] -;dba.default_handler= - -[opcache] -; Determines if Zend OPCache is enabled -;opcache.enable=1 - -; Determines if Zend OPCache is enabled for the CLI version of PHP -;opcache.enable_cli=1 - -; The OPcache shared memory storage size. -;opcache.memory_consumption=128 - -; The amount of memory for interned strings in Mbytes. -;opcache.interned_strings_buffer=8 - -; The maximum number of keys (scripts) in the OPcache hash table. -; Only numbers between 200 and 1000000 are allowed. -;opcache.max_accelerated_files=10000 - -; The maximum percentage of "wasted" memory until a restart is scheduled. -;opcache.max_wasted_percentage=5 - -; When this directive is enabled, the OPcache appends the current working -; directory to the script key, thus eliminating possible collisions between -; files with the same name (basename). Disabling the directive improves -; performance, but may break existing applications. -;opcache.use_cwd=1 - -; When disabled, you must reset the OPcache manually or restart the -; webserver for changes to the filesystem to take effect. -;opcache.validate_timestamps=1 - -; How often (in seconds) to check file timestamps for changes to the shared -; memory storage allocation. ("1" means validate once per second, but only -; once per request. "0" means always validate) -;opcache.revalidate_freq=2 - -; Enables or disables file search in include_path optimization -;opcache.revalidate_path=0 - -; If disabled, all PHPDoc comments are dropped from the code to reduce the -; size of the optimized code. -;opcache.save_comments=1 - -; If enabled, a fast shutdown sequence is used for the accelerated code -; Depending on the used Memory Manager this may cause some incompatibilities. -;opcache.fast_shutdown=0 - -; Allow file existence override (file_exists, etc.) performance feature. -;opcache.enable_file_override=0 - -; A bitmask, where each bit enables or disables the appropriate OPcache -; passes -;opcache.optimization_level=0xffffffff - -;opcache.inherited_hack=1 -;opcache.dups_fix=0 - -; The location of the OPcache blacklist file (wildcards allowed). -; Each OPcache blacklist file is a text file that holds the names of files -; that should not be accelerated. The file format is to add each filename -; to a new line. The filename may be a full path or just a file prefix -; (i.e., /var/www/x blacklists all the files and directories in /var/www -; that start with 'x'). Line starting with a ; are ignored (comments). -;opcache.blacklist_filename= - -; Allows exclusion of large files from being cached. By default all files -; are cached. -;opcache.max_file_size=0 - -; Check the cache checksum each N requests. -; The default value of "0" means that the checks are disabled. -;opcache.consistency_checks=0 - -; How long to wait (in seconds) for a scheduled restart to begin if the cache -; is not being accessed. -;opcache.force_restart_timeout=180 - -; OPcache error_log file name. Empty string assumes "stderr". -;opcache.error_log= - -; All OPcache errors go to the Web server log. -; By default, only fatal errors (level 0) or errors (level 1) are logged. -; You can also enable warnings (level 2), info messages (level 3) or -; debug messages (level 4). -;opcache.log_verbosity_level=1 - -; Preferred Shared Memory back-end. Leave empty and let the system decide. -;opcache.preferred_memory_model= - -; Protect the shared memory from unexpected writing during script execution. -; Useful for internal debugging only. -;opcache.protect_memory=0 - -; Allows calling OPcache API functions only from PHP scripts which path is -; started from specified string. The default "" means no restriction -;opcache.restrict_api= - -; Mapping base of shared memory segments (for Windows only). All the PHP -; processes have to map shared memory into the same address space. This -; directive allows to manually fix the "Unable to reattach to base address" -; errors. -;opcache.mmap_base= - -; Enables and sets the second level cache directory. -; It should improve performance when SHM memory is full, at server restart or -; SHM reset. The default "" disables file based caching. -;opcache.file_cache= - -; Enables or disables opcode caching in shared memory. -;opcache.file_cache_only=0 - -; Enables or disables checksum validation when script loaded from file cache. -;opcache.file_cache_consistency_checks=1 - -; Implies opcache.file_cache_only=1 for a certain process that failed to -; reattach to the shared memory (for Windows only). Explicitly enabled file -; cache is required. -;opcache.file_cache_fallback=1 - -; Enables or disables copying of PHP code (text segment) into HUGE PAGES. -; This should improve performance, but requires appropriate OS configuration. -;opcache.huge_code_pages=1 - -; Validate cached file permissions. -;opcache.validate_permission=0 - -; Prevent name collisions in chroot'ed environment. -;opcache.validate_root=0 - -[curl] -; A default value for the CURLOPT_CAINFO option. This is required to be an -; absolute path. -;curl.cainfo = - -[openssl] -; The location of a Certificate Authority (CA) file on the local filesystem -; to use when verifying the identity of SSL/TLS peers. Most users should -; not specify a value for this directive as PHP will attempt to use the -; OS-managed cert stores in its absence. If specified, this value may still -; be overridden on a per-stream basis via the "cafile" SSL stream context -; option. -;openssl.cafile= - -; If openssl.cafile is not specified or if the CA file is not found, the -; directory pointed to by openssl.capath is searched for a suitable -; certificate. This value must be a correctly hashed certificate directory. -; Most users should not specify a value for this directive as PHP will -; attempt to use the OS-managed cert stores in its absence. If specified, -; this value may still be overridden on a per-stream basis via the "capath" -; SSL stream context option. -;openssl.capath= - -; Local Variables: -; tab-width: 4 -; End: - -[XDebug] -xdebug.remote_enable = 1 -xdebug.remote_handler = "dbgp" -; Set to host.docker.internal on Mac and Windows, otherwise, set to host real ip -xdebug.remote_host = host.docker.internal -;xdebug.remote_port = 9000 -xdebug.remote_log = /var/log/php/xdebug.log - -SERVER_ENV=develop - -yaf.use_spl_autoload=1 - -[xhprof] -;xhprof.output_dir = /var/log/php/xhprof.log \ No newline at end of file diff --git a/php5/5.4.45/data.yml b/php5/5.4.45/data.yml deleted file mode 100755 index deeede5ad..000000000 --- a/php5/5.4.45/data.yml +++ /dev/null @@ -1,18 +0,0 @@ -additionalProperties: - formFields: - - default: 9000 - envKey: PANEL_APP_PORT_HTTP - labelEn: PHP-FPM Port - labelZh: PHP-FPM 端口 - label: - en: PHP-FPM Port - ja: PHP-FPM ポート - ms: Port PHP-FPM - pt-br: Porta PHP-FPM - ru: Порт PHP-FPM - ko: PHP-FPM 포트 - zh-Hant: PHP-FPM 埠 - zh: PHP-FPM 端口 - required: true - rule: paramPort - type: number diff --git a/php5/5.4.45/docker-compose.yml b/php5/5.4.45/docker-compose.yml deleted file mode 100644 index dc530c778..000000000 --- a/php5/5.4.45/docker-compose.yml +++ /dev/null @@ -1,21 +0,0 @@ -services: - php: - image: ${IMAGE_NAME} - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - volumes: - - ${PANEL_WEBSITE_DIR}:/www/ - - ./conf/php.ini:/usr/local/etc/php/php.ini - - ./conf/php-fpm.conf:/usr/local/etc/php-fpm.d/www.conf - - ./log:/var/log/php - - ./composer:/tmp/composer - - ./extensions:/php/extensions - ports: - - 127.0.0.1:${PANEL_APP_PORT_HTTP}:9000 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/php5/5.5.38/build/.env b/php5/5.5.38/build/.env deleted file mode 100644 index 2d7d4ad89..000000000 --- a/php5/5.5.38/build/.env +++ /dev/null @@ -1,13 +0,0 @@ -CONTAINER_PACKAGE_URL=mirrors.ustc.edu.cn - -PHP_VERSION=5.5.38 -PHP_PHP_CONF_FILE=./php/php.ini -PHP_FPM_CONF_FILE=./php/php-fpm.conf -PHP_LOG_DIR=./logs/php -PHP_EXTENSIONS= - -SOURCE_DIR=./www - -TZ=Asia/Shanghai -DATA_DIR=./data -IMAGE_NAME=1panel-php:5.5.38 \ No newline at end of file diff --git a/php5/5.5.38/build/config.json b/php5/5.5.38/build/config.json deleted file mode 100644 index 3fa4429d8..000000000 --- a/php5/5.5.38/build/config.json +++ /dev/null @@ -1,126 +0,0 @@ -{ - "formFields": [ - { - "type": "select", - "multiple": true, - "labelZh": "扩展", - "labelEn": "Extensions", - "default": ["mysqli","pdo_mysql"], - "values": [ - { - "label": "opcache", - "value": "opcache" - }, - { - "label": "memcached", - "value": "memcached" - }, - { - "label": "memcache", - "value": "memcache" - }, - { - "label": "redis", - "value": "redis" - }, - { - "label": "mcrypt", - "value": "mcrypt" - }, - { - "label": "xdebug", - "value": "xdebug" - }, - { - "label": "imap", - "value": "imap" - }, - { - "label": "exif", - "value": "exif" - }, - { - "label": "intl", - "value": "intl" - }, - { - "label": "swoole", - "value": "swoole" - }, - { - "label": "yaf", - "value": "yaf" - }, - { - "label": "pgsql", - "value": "pgsql" - }, - { - "label": "pdo_pgsql", - "value": "pdo_pgsql" - }, - { - "label": "snmp", - "value": "snmp" - }, { - "label": "ldap", - "value": "ldap" - }, - { - "label": "pspell", - "value": "pspell" - }, - { - "label": "bz2", - "value": "bz2" - }, - { - "label": "sysvshm", - "value": "sysvshm" - }, - { - "label": "calendar", - "value": "calendar" - }, - { - "label": "gmp", - "value": "gmp" - }, - { - "label": "sysvmsg", - "value": "sysvmsg" - }, - { - "label": "igbinary", - "value": "igbinary" - }, - { - "label": "mysqli", - "value": "mysqli" - }, - { - "label": "pdo_mysql", - "value": "pdo_mysql" - }, - { - "label": "mbstring", - "value": "mbstring" - }, - { - "label": "gd", - "value": "gd" - }, - { - "label": "curl", - "value": "curl" - }, - { - "label": "sg15", - "value": "sourceguardian" - } - ], - "envKey": "PHP_EXTENSIONS", - "edit": true - } - ] -} \ No newline at end of file diff --git a/php5/5.5.38/build/docker-compose.yml b/php5/5.5.38/build/docker-compose.yml deleted file mode 100644 index 21e9fa737..000000000 --- a/php5/5.5.38/build/docker-compose.yml +++ /dev/null @@ -1,19 +0,0 @@ -services: - 1panel-php: - build: - context: ./php - args: - PHP_IMAGE: php:${PHP_VERSION}-fpm-alpine - CONTAINER_PACKAGE_URL: ${CONTAINER_PACKAGE_URL} - PHP_EXTENSIONS: ${PHP_EXTENSIONS} - TZ: ${TZ} - image: ${IMAGE_NAME} - volumes: - - ${SOURCE_DIR}:/www/ - - ${PHP_PHP_CONF_FILE}:/usr/local/etc/php/php.ini - - ${PHP_FPM_CONF_FILE}:/usr/local/etc/php-fpm.d/www.conf - - ${PHP_LOG_DIR}:/var/log/php - - ${DATA_DIR}/composer:/tmp/composer - restart: always - cap_add: - - SYS_PTRACE diff --git a/php5/5.5.38/build/php/Dockerfile b/php5/5.5.38/build/php/Dockerfile deleted file mode 100644 index 5f52897a2..000000000 --- a/php5/5.5.38/build/php/Dockerfile +++ /dev/null @@ -1,38 +0,0 @@ -ARG PHP_IMAGE -FROM ${PHP_IMAGE} - -ARG TZ -ARG PHP_EXTENSIONS -ARG CONTAINER_PACKAGE_URL - -RUN if [ "$CONTAINER_PACKAGE_URL" ]; then sed -i "s|http://dl-cdn.alpinelinux.org/alpine/v3.4|https://${CONTAINER_PACKAGE_URL}/alpine/v3.5|g" /etc/apk/repositories; fi - - -ADD ./extensions/install-php-extensions /usr/local/bin/ -RUN chmod uga+x /usr/local/bin/install-php-extensions - -COPY ./extensions /tmp/extensions -WORKDIR /tmp/extensions -RUN chmod +x install.sh \ - && sh install.sh - -RUN apk --no-cache add tzdata \ - && cp "/usr/share/zoneinfo/$TZ" /etc/localtime \ - && echo "$TZ" > /etc/timezone - - -# Fix: https://github.com/docker-library/php/issues/1121 -RUN apk add --no-cache --repository http://${CONTAINER_PACKAGE_URL}/alpine/v3.13/community/ gnu-libiconv=1.15-r3 -ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so php - - -# Install composer and change it's cache home -RUN curl -ksS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer --disable-tls \ - && chmod +x /usr/bin/composer \ - && rm -rf /tmp/composer-setup.php - -# php image's www-data user uid & gid are 82, change them to 1000 (primary user) -RUN apk --no-cache add shadow && usermod -u 1000 www-data && groupmod -g 1000 www-data - - -WORKDIR /www \ No newline at end of file diff --git a/php5/5.5.38/build/php/extensions/amqp-1.11.0.tgz b/php5/5.5.38/build/php/extensions/amqp-1.11.0.tgz deleted file mode 100644 index 4b32465b1..000000000 Binary files a/php5/5.5.38/build/php/extensions/amqp-1.11.0.tgz and /dev/null differ diff --git a/php5/5.5.38/build/php/extensions/apcu-4.0.8.tgz b/php5/5.5.38/build/php/extensions/apcu-4.0.8.tgz deleted file mode 100644 index c7f75bce6..000000000 Binary files a/php5/5.5.38/build/php/extensions/apcu-4.0.8.tgz and /dev/null differ diff --git a/php5/5.5.38/build/php/extensions/event-3.0.8.tgz b/php5/5.5.38/build/php/extensions/event-3.0.8.tgz deleted file mode 100644 index e7a471bbe..000000000 Binary files a/php5/5.5.38/build/php/extensions/event-3.0.8.tgz and /dev/null differ diff --git a/php5/5.5.38/build/php/extensions/install-composer.sh b/php5/5.5.38/build/php/extensions/install-composer.sh deleted file mode 100644 index 361cdaf23..000000000 --- a/php5/5.5.38/build/php/extensions/install-composer.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh - -# The latest mirror's composer version only support for PHP 7.2.5 -# And if your PHP version is lesser than that, will be download supported version. -supportLatest=$(php -r "echo version_compare(PHP_VERSION, '7.2.5', '>');") - -if [ "$supportLatest" -eq "1" ]; then - curl -o /usr/bin/composer https://mirrors.aliyun.com/composer/composer.phar \ - && chmod +x /usr/bin/composer -else - curl -ksS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer --disable-tls \ - && chmod +x /usr/bin/composer \ - && rm -rf /tmp/composer-setup.php -fi \ No newline at end of file diff --git a/php5/5.5.38/build/php/extensions/install-php-extensions b/php5/5.5.38/build/php/extensions/install-php-extensions deleted file mode 100644 index 59a1ea8b2..000000000 --- a/php5/5.5.38/build/php/extensions/install-php-extensions +++ /dev/null @@ -1,4741 +0,0 @@ -#!/bin/sh - -# This script wraps docker-php-ext-install, properly configuring the system. -# -# Copyright (c) Michele Locati, 2018-2023 -# -# Source: https://github.com/mlocati/docker-php-extension-installer -# -# License: MIT - see https://github.com/mlocati/docker-php-extension-installer/blob/master/LICENSE - -# Let's set a sane environment -set -o errexit -set -o nounset - -if test "${IPE_DEBUG:-}" = "1"; then - set -x -fi - -if ! which docker-php-ext-configure >/dev/null || ! which docker-php-ext-enable >/dev/null || ! which docker-php-ext-install >/dev/null || ! which docker-php-source >/dev/null; then - printf 'The script %s is meant to be used with official Docker PHP Images - https://hub.docker.com/_/php\n' "$0" >&2 - exit 1 -fi - -IPE_VERSION=2.2.14 - -StandWithUkraine() { - if test -t 1 && ! grep -Eq '^VERSION=.*jessie' /etc/os-release; then - printf '\e[37;44m#StandWith\e[30;43mUkraine\e[0m\n' - else - printf '#StandWithUkraine\n' - fi -} - -if test "$IPE_VERSION" = master && test "${CI:-}" != true; then - cat <&2 - exit 1 - fi - DISTRO="$(cat /etc/os-release | grep -E ^ID= | cut -d = -f 2)" - DISTRO_VERSION_NUMBER="$(cat /etc/os-release | grep -E ^VERSION_ID= | cut -d = -f 2 | cut -d '"' -f 2 | cut -d . -f 1,2)" - DISTRO_VERSION="$(printf '%s@%s' $DISTRO $DISTRO_VERSION_NUMBER)" - DISTRO_MAJMIN_VERSION="$(echo "$DISTRO_VERSION_NUMBER" | awk -F. '{print $1*100+$2}')" -} - -# Set: -# - PHP_MAJMIN_VERSION: Major-Minor version, format MMmm (example 800 for PHP 8.0.1) -# - PHP_MAJDOTMIN_VERSION: Major-Minor version, format M.m (example 8.0 for PHP 8.0.1) -# - PHP_MAJMINPAT_VERSION: Major-Minor-Patch version, format MMmmpp (example 80001 for PHP 8.0.1) variables containing integers value -# - PHP_MAJDOTMINDOTPAT_VERSION: Major-Minor-Patch version, format M.m.p (example 8.0.1 for PHP 8.0.1) -# - PHP_THREADSAFE: 1 if PHP is thread-safe (TS), 0 if not thread-safe (NTS) -# - PHP_DEBUGBUILD: 1 if PHP is debug build (configured with "--enable-debug"), 0 otherwise -# - PHP_BITS: 32 if PHP is compiled for 32-bit, 64 if 64-bit -# - PHP_EXTDIR: the absolute path where the PHP extensions reside -setPHPVersionVariables() { - PHP_MAJDOTMINDOTPAT_VERSION="$(php-config --version)" - PHP_MAJMIN_VERSION=$(printf '%s' "$PHP_MAJDOTMINDOTPAT_VERSION" | awk -F. '{print $1*100+$2}') - PHP_MAJDOTMIN_VERSION=$(printf '%s' "$PHP_MAJDOTMINDOTPAT_VERSION" | cut -d. -f1-2) - PHP_MAJMINPAT_VERSION=$(printf '%s' "$PHP_MAJDOTMINDOTPAT_VERSION" | awk -F. '{print $1*10000+$2*100+$3}') - PHP_THREADSAFE=$(php -n -r 'echo ZEND_THREAD_SAFE ? 1 : 0;') - PHP_DEBUGBUILD=$(php -n -r 'echo ZEND_DEBUG_BUILD ? 1 : 0;') - PHP_BITS=$(php -n -r 'echo PHP_INT_SIZE * 8;') - PHP_EXTDIR="$(php -d display_errors=stderr -r 'echo realpath(ini_get("extension_dir"));')" -} - -# Fix apt-get being very slow on Debian Jessie -# See https://bugs.launchpad.net/ubuntu/+source/apt/+bug/1332440 -fixMaxOpenFiles() { - fixMaxOpenFiles_cur=$(ulimit -n 2>/dev/null || echo 0) - if test "$fixMaxOpenFiles_cur" -gt 10000; then - ulimit -n 10000 - fi -} - -# Get the directory containing the compiled PHP extensions -# -# Output: -# The absolute path of the extensions dir -getPHPExtensionsDir() { - php -i | grep -E '^extension_dir' | head -n1 | tr -s '[:space:]*=>[:space:]*' '|' | cut -d'|' -f2 -} - -# Normalize the name of a PHP extension -# -# Arguments: -# $1: the name of the module to be normalized -# -# Output: -# The normalized module name -normalizePHPModuleName() { - normalizePHPModuleName_name="$1" - case "$normalizePHPModuleName_name" in - *A* | *B* | *C* | *D* | *E* | *F* | *G* | *H* | *I* | *J* | *K* | *L* | *M* | *N* | *O* | *P* | *Q* | *R* | *S* | *T* | *U* | *V* | *W* | *X* | *Y* | *Z*) - normalizePHPModuleName_name="$(LC_CTYPE=C printf '%s' "$normalizePHPModuleName_name" | tr '[:upper:]' '[:lower:]')" - ;; - esac - case "$normalizePHPModuleName_name" in - datadog_trace) - normalizePHPModuleName_name=ddtrace - ;; - ioncube | ioncube\ loader) - normalizePHPModuleName_name='ioncube_loader' - ;; - pecl_http) - normalizePHPModuleName_name='http' - ;; - zend\ opcache) - normalizePHPModuleName_name='opcache' - ;; - libsodium) - if test $PHP_MAJMIN_VERSION -ge 700; then - normalizePHPModuleName_name='sodium' - fi - ;; - sodium) - if test $PHP_MAJMIN_VERSION -lt 700; then - normalizePHPModuleName_name='libsodium' - fi - ;; - *\ *) - printf '### WARNING Unrecognized module name: %s ###\n' "$1" >&2 - ;; - esac - printf '%s' "$normalizePHPModuleName_name" -} - -# Get the PECL name of PHP extension -# -# Arguments: -# $1: the name of the extension -# -# Output: -# The PECL name of the extension -getPeclModuleName() { - normalizePHPModuleName_name="$1" - case "$normalizePHPModuleName_name" in - ddtrace) - normalizePHPModuleName_name=datadog_trace - ;; - http) - normalizePHPModuleName_name=pecl_http - ;; - sodium) - normalizePHPModuleName_name=libsodium - ;; - esac - printf '%s' "$normalizePHPModuleName_name" -} - -# Parse a package.xml (or package2.xml) file and extract the module name and version -# -# Arguments: -# $1: the patho to the XML file -# -# Set these variables: -# - EXTRACTPACKAGEVERSIONFROMXML_NAME -# - EXTRACTPACKAGEVERSIONFROMXML_VERSION -# -# Output: -# Nothing -# -# Return: -# 0 (true): if the string is in the list -# 1 (false): if the string is not in the list -extractPackageVersionFromXML() { - if ! test -f "$1"; then - printf 'Unable to find the file\n%s\n' >&2 - return 1 - fi - extractPackageVersionFromXML_code="$( - cat <<'EOT' -$doc = new DOMDocument(); -if (!$doc->load($argv[1])) { - fwrite(STDERR, "Failed to load XML file\n"); - exit(1); -} -set_error_handler( - static function($errno, $errstr) { - fwrite(STDERR, trim((string) $errstr) . "\n"); - exit(1); - }, - -1 -); -$xpath = new DOMXpath($doc); -$xpath->registerNamespace('v20', 'http://pear.php.net/dtd/package-2.0'); -$xpath->registerNamespace('v21', 'http://pear.php.net/dtd/package-2.1'); -if ($xpath->query('/v20:package/v20:dependencies')->length === 1) { - $ns = 'v20:'; -} elseif ($xpath->query('/v21:package/v21:dependencies')->length === 1) { - $ns = 'v21:'; -} elseif ($xpath->query('/package')->length === 1) { - $ns = ''; -} else { - fwrite(STDERR, "Unsupported namespace of the XML of package version details\n"); -} -$nodes = $xpath->query("/{$ns}package/{$ns}name"); -$name = trim((string) $nodes[0]->nodeValue); -if ($ns === '') { - $nodes = $xpath->query("/{$ns}package/{$ns}version"); -} else { - $nodes = $xpath->query("/{$ns}package/{$ns}version/{$ns}release"); -} -$version = trim((string) $nodes[0]->nodeValue); -echo "EXTRACTPACKAGEVERSIONFROMXML_NAME='{$name}'\n"; -echo "EXTRACTPACKAGEVERSIONFROMXML_VERSION='{$version}'\n"; -exit(0); -EOT - )" - extractPackageVersionFromXML_vars="$(php -n -d display_errors=stderr -r "$extractPackageVersionFromXML_code" "$1")" - if test -z "$extractPackageVersionFromXML_vars"; then - return 1 - fi - eval "$extractPackageVersionFromXML_vars" - return 0 -} - -# Parse a module name (and optionally version) as received via command arguments, extracting the version and normalizing it -# Examples: -# xdebug-2.9.8 -# xdebug-^2 -# xdebug-^2.9 -# -# Arguments: -# $1: the name of the module to be normalized -# -# Set these variables: -# - PROCESSED_PHP_MODULE_ARGUMENT -# -# Optionally set these variables: -# - PHP_WANTEDMODULEVERSION_<...> (where <...> is the normalized module name) -# - PHP_MODULESOURCECODEPATH_<...> (where <...> is the normalized module name) -# -# Output: -# Nothing -processPHPModuleArgument() { - processPHPModuleArgument_arg="$1" - # Convert GitHub short form to long url, - # for example: from - # php-memcached-dev/php-memcached@8f106564e6bb005ca6100b12ccc89000daafa9d8 - # to - # https://codeload.github.com/php-memcached-dev/php-memcached/tar.gz/8f106564e6bb005ca6100b12ccc89000daafa9d8 - processPHPModuleArgument_arg="$(printf '%s' "$processPHPModuleArgument_arg" | sed -E 's/^([a-zA-Z0-9_.\-]+\/[a-zA-Z0-9_.\-]+)@(.+$)/https:\/\/codeload.github.com\/\1\/tar.gz\/\2/')" - # Let's check if $processPHPModuleArgument_arg is an URL - if printf '%s' "$processPHPModuleArgument_arg" | grep -Eq '^https?://[^ ]+/[^ ]+$'; then - printf 'Downloading source from %s\n' "$processPHPModuleArgument_arg" - processPHPModuleArgument_arg="$(getPackageSource "$processPHPModuleArgument_arg")" - fi - # Let's check if $processPHPModuleArgument_arg the absolute path of an existing directory - if test "$processPHPModuleArgument_arg" != "${processPHPModuleArgument_arg#/}" && test -d "$processPHPModuleArgument_arg"; then - if test -f "$processPHPModuleArgument_arg/package2.xml"; then - printf 'Checking package2.xml of directory %s... ' "$processPHPModuleArgument_arg" - if ! extractPackageVersionFromXML "$processPHPModuleArgument_arg/package2.xml"; then - return 1 - fi - elif test -f "$processPHPModuleArgument_arg/package.xml"; then - printf 'Checking package.xml of directory %s... ' "$processPHPModuleArgument_arg" - if ! extractPackageVersionFromXML "$processPHPModuleArgument_arg/package.xml"; then - return 1 - fi - else - printf 'Unable to find the package.xml file in the directory\n%s\n' "$processPHPModuleArgument_arg" - return 1 - fi - printf 'good (name: %s, version: %s)\n' "$EXTRACTPACKAGEVERSIONFROMXML_NAME" "$EXTRACTPACKAGEVERSIONFROMXML_VERSION" - PROCESSED_PHP_MODULE_ARGUMENT="$(normalizePHPModuleName "$EXTRACTPACKAGEVERSIONFROMXML_NAME")" - processPHPModuleArgument_version="$EXTRACTPACKAGEVERSIONFROMXML_VERSION" - if printf '%s' "$PROCESSED_PHP_MODULE_ARGUMENT" | grep -Eq '^[a-zA-Z0-9_]+$'; then - eval PHP_MODULESOURCECODEPATH_$PROCESSED_PHP_MODULE_ARGUMENT="$processPHPModuleArgument_arg" - else - printf 'Unable to parse the following module name:\n%s\n' "$PROCESSED_PHP_MODULE_ARGUMENT" >&2 - exit 1 - fi - else - PROCESSED_PHP_MODULE_ARGUMENT="${processPHPModuleArgument_arg%%-*}" - if test -n "$PROCESSED_PHP_MODULE_ARGUMENT" && test "$PROCESSED_PHP_MODULE_ARGUMENT" != "$processPHPModuleArgument_arg"; then - processPHPModuleArgument_version="${processPHPModuleArgument_arg#*-}" - else - processPHPModuleArgument_version='' - fi - PROCESSED_PHP_MODULE_ARGUMENT="$(normalizePHPModuleName "$PROCESSED_PHP_MODULE_ARGUMENT")" - fi - if test -n "$processPHPModuleArgument_version"; then - if printf '%s' "$PROCESSED_PHP_MODULE_ARGUMENT" | grep -Eq '^[a-zA-Z0-9_]+$'; then - eval PHP_WANTEDMODULEVERSION_$PROCESSED_PHP_MODULE_ARGUMENT="$processPHPModuleArgument_version" - elif printf '%s' "$PROCESSED_PHP_MODULE_ARGUMENT" | grep -Eq '^@[a-zA-Z0-9_]+$'; then - eval PHP_WANTEDMODULEVERSION__${PROCESSED_PHP_MODULE_ARGUMENT#@}="$processPHPModuleArgument_version" - else - printf 'Unable to parse the following module name:\n%s\n' "$PROCESSED_PHP_MODULE_ARGUMENT" >&2 - fi - fi -} - -# Get the wanted PHP module version, as specified in the command line arguments. -# -# Arguments: -# $1: the name of the module to be normalized -# -# Output: -# The wanted version (if any) -getWantedPHPModuleVersion() { - if printf '%s' "$1" | grep -Eq '^[a-zA-Z0-9_]+$'; then - eval printf '%s' "\${PHP_WANTEDMODULEVERSION_$1:-}" - elif printf '%s' "$1" | grep -Eq '^@[a-zA-Z0-9_]+$'; then - eval printf '%s' "\${PHP_WANTEDMODULEVERSION__${1#@}:-}" - fi -} - -# Get source code path of a PHP module version, as specified in the command line arguments. -# -# Arguments: -# $1: the name of the module to be normalized -# -# Output: -# The wanted version (if any) -getModuleSourceCodePath() { - if printf '%s' "$1" | grep -Eq '^[a-zA-Z0-9_]+$'; then - eval printf '%s' "\${PHP_MODULESOURCECODEPATH_$1:-}" - fi -} - -# Get the actual PHP module version, resolving it if it starts with '^' -# -# Arguments: -# $1: the name of the module -# $2: the wanted version (optional, if omitted we'll use getWantedPHPModuleVersion) -# -# Output: -# The version to be used -resolvePHPModuleVersion() { - resolvePHPModuleVersion_module="$1" - if test $# -lt 2; then - resolvePHPModuleVersion_raw="$(getWantedPHPModuleVersion "$installRemoteModule_module")" - else - resolvePHPModuleVersion_raw="$2" - fi - resolvePHPModuleVersion_afterCaret="${resolvePHPModuleVersion_raw#^}" - if test "$resolvePHPModuleVersion_raw" = "$resolvePHPModuleVersion_afterCaret"; then - printf '%s' "$resolvePHPModuleVersion_raw" - return - fi - case "$resolvePHPModuleVersion_afterCaret" in - ?*@snapshot | ?*@devel | ?*@alpha | ?*@beta | ?*@stable) - resolvePHPModuleVersion_wantedStability="${resolvePHPModuleVersion_afterCaret##*@}" - resolvePHPModuleVersion_wantedVersion="${resolvePHPModuleVersion_afterCaret%@*}" - ;; - *) - resolvePHPModuleVersion_wantedStability='' - resolvePHPModuleVersion_wantedVersion="$resolvePHPModuleVersion_afterCaret" - ;; - esac - resolvePHPModuleVersion_peclModule="$(getPeclModuleName "$resolvePHPModuleVersion_module")" - resolvePHPModuleVersion_xml="$(curl -sSLf "http://pecl.php.net/rest/r/$resolvePHPModuleVersion_peclModule/allreleases.xml")" - # remove line endings, collapse spaces - resolvePHPModuleVersion_versions="$(printf '%s' "$resolvePHPModuleVersion_xml" | tr -s ' \t\r\n' ' ')" - # one line per release (eg 1.2.3stable) - resolvePHPModuleVersion_versions="$(printf '%s' "$resolvePHPModuleVersion_versions" | sed -r 's#$resolvePHPModuleVersion_wantedStability")" - fi - # remove everything's up to '' (included) - resolvePHPModuleVersion_versions="$(printf '%s' "$resolvePHPModuleVersion_versions" | sed 's#^.*##')" - # keep just the versions - resolvePHPModuleVersion_versions="$(printf '%s' "$resolvePHPModuleVersion_versions" | cut -d'<' -f1)" - resetIFS - for resolvePHPModuleVersion_version in $resolvePHPModuleVersion_versions; do - resolvePHPModuleVersion_suffix="${resolvePHPModuleVersion_version#$resolvePHPModuleVersion_wantedVersion}" - if test "$resolvePHPModuleVersion_version" != "${resolvePHPModuleVersion_version#$resolvePHPModuleVersion_wantedVersion.}"; then - # Example: looking for 1.0, found 1.0.1 - printf '%s' "$resolvePHPModuleVersion_version" - return - fi - done - for resolvePHPModuleVersion_version in $resolvePHPModuleVersion_versions; do - resolvePHPModuleVersion_suffix="${resolvePHPModuleVersion_version#$resolvePHPModuleVersion_wantedVersion}" - if test "$resolvePHPModuleVersion_version" = "$resolvePHPModuleVersion_suffix"; then - continue - fi - if test -z "$resolvePHPModuleVersion_suffix"; then - # Example: looking for 1.0, found exactly it - printf '%s' "$resolvePHPModuleVersion_version" - return - fi - case "$resolvePHPModuleVersion_suffix" in - [0-9]) - # Example: looking for 1.1, but this is 1.10 - ;; - *) - # Example: looking for 1.1, this is 1.1rc1 - printf '%s' "$resolvePHPModuleVersion_version" - return - ;; - esac - done - printf 'Unable to find a version of "%s" compatible with "%s"\nAvailable versions are:\n%s\n' "$resolvePHPModuleVersion_module" "$resolvePHPModuleVersion_raw" "$resolvePHPModuleVersion_versions" >&2 - exit 1 -} - -# Get the actual version of a PECL pmodule, resolving 'latest', 'stable', 'beta', 'alpha', 'devel'. -# -# Arguments: -# $1: the module name as known on the PECL archive -# $2: the version to be resolved -# Output: -# $2 itself if $1 is not 'latest', 'stable', 'beta', 'alpha', or 'devel', the actual version otherwise -resolvePeclStabilityVersion() { - case "$2" in - latest | stable | beta | alpha | devel) ;; - *) - printf '%s' "$2" - return - ;; - esac - resolvePeclStabilityVersion_peclModule="$(getPeclModuleName "$1")" - peclStabilityFlagToVersion_url="http://pecl.php.net/rest/r/$resolvePeclStabilityVersion_peclModule/$2.txt" - if ! peclStabilityFlagToVersion_result="$(curl -sSLf "$peclStabilityFlagToVersion_url")"; then - peclStabilityFlagToVersion_result='' - fi - if test -z "$peclStabilityFlagToVersion_result"; then - printf 'Failed to resolve the PECL package version "%s" of %s from %s\n' "$2" "$1" "$peclStabilityFlagToVersion_url" >&2 - exit 1 - fi - printf '%s' "$peclStabilityFlagToVersion_result" -} - -# Set these variables: -# - PHP_PREINSTALLED_MODULES the normalized list of PHP modules installed before running this script -setPHPPreinstalledModules() { - PHP_PREINSTALLED_MODULES='' - IFS=' -' - for getPHPInstalledModules_module in $(php -m); do - getPHPInstalledModules_moduleNormalized='' - case "$getPHPInstalledModules_module" in - \[PHP\ Modules\]) ;; - \[Zend\ Modules\]) - break - ;; - *) - getPHPInstalledModules_moduleNormalized="$(normalizePHPModuleName "$getPHPInstalledModules_module")" - if ! stringInList "$getPHPInstalledModules_moduleNormalized" "$PHP_PREINSTALLED_MODULES"; then - PHP_PREINSTALLED_MODULES="$PHP_PREINSTALLED_MODULES $getPHPInstalledModules_moduleNormalized" - fi - ;; - esac - done - if command -v composer >/dev/null; then - PHP_PREINSTALLED_MODULES="$PHP_PREINSTALLED_MODULES @composer" - fi - resetIFS - PHP_PREINSTALLED_MODULES="${PHP_PREINSTALLED_MODULES# }" -} - -# Get the handles of the modules to be installed -# -# Arguments: -# $@: all module handles -# -# Set: -# PHP_MODULES_TO_INSTALL -# -# Output: -# Nothing -processCommandArguments() { - processCommandArguments_endArgs=0 - PHP_MODULES_TO_INSTALL='' - # Support deprecated flag IPE_FIX_CACERTS - case "${IPE_FIX_CACERTS:-}" in - 1 | y* | Y*) - PHP_MODULES_TO_INSTALL="$PHP_MODULES_TO_INSTALL @fix_letsencrypt" - ;; - esac - while :; do - if test $# -lt 1; then - break - fi - processCommandArguments_skip=0 - if test $processCommandArguments_endArgs -eq 0; then - case "$1" in - --cleanup) - printf '### WARNING the %s option is deprecated (we always cleanup everything) ###\n' "$1" >&2 - processCommandArguments_skip=1 - ;; - --) - processCommandArguments_skip=1 - processCommandArguments_endArgs=1 - ;; - -*) - printf 'Unrecognized option: %s\n' "$1" >&2 - exit 1 - ;; - esac - fi - if test $processCommandArguments_skip -eq 0; then - processPHPModuleArgument "$1" - processCommandArguments_name="$PROCESSED_PHP_MODULE_ARGUMENT" - if stringInList "$processCommandArguments_name" "$PHP_MODULES_TO_INSTALL"; then - printf '### WARNING Duplicated module name specified: %s ###\n' "$processCommandArguments_name" >&2 - elif stringInList "$processCommandArguments_name" "$PHP_PREINSTALLED_MODULES"; then - printf '### WARNING Module already installed: %s ###\n' "$processCommandArguments_name" >&2 - else - PHP_MODULES_TO_INSTALL="$PHP_MODULES_TO_INSTALL $processCommandArguments_name" - fi - fi - shift - done - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL# }" -} - -# Add a module that's required by another module -# -# Arguments: -# $1: module that requires another module -# $2: the required module -# -# Update: -# PHP_MODULES_TO_INSTALL -# -# Output: -# Nothing -checkRequiredModule() { - if ! stringInList "$1" "$PHP_MODULES_TO_INSTALL"; then - return - fi - if stringInList "$2" "$PHP_PREINSTALLED_MODULES"; then - return - fi - PHP_MODULES_TO_INSTALL="$(removeStringFromList "$1" "$PHP_MODULES_TO_INSTALL")" - if ! stringInList "$2" "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$PHP_MODULES_TO_INSTALL $2" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL# }" - fi - PHP_MODULES_TO_INSTALL="$PHP_MODULES_TO_INSTALL $1" -} - -# Sort the modules to be installed, in order to fix dependencies -# -# Update: -# PHP_MODULES_TO_INSTALL -# -# Output: -# Nothing -sortModulesToInstall() { - # apcu_bc requires apcu - checkRequiredModule 'apcu_bc' 'apcu' - # http requires propro (for PHP < 8) and raphf - if test $PHP_MAJMIN_VERSION -le 704; then - checkRequiredModule 'http' 'propro' - fi - checkRequiredModule 'http' 'raphf' - # event requires sockets (for PHP <= 5.6) - if test $PHP_MAJMIN_VERSION -le 506; then - checkRequiredModule event sockets - fi - # relay requires msgpack - checkRequiredModule relay msgpack - # relay requires igbinary - checkRequiredModule relay igbinary - # pq requires raphf - checkRequiredModule pq raphf - # Some module installation may use sockets if available: move it before other modules - if stringInList 'sockets' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'sockets' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="sockets $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # Some module installation may use igbinary if available: move it before other modules - if stringInList 'igbinary' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'igbinary' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="igbinary $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # Some module installation may use msgpack if available: move it before other modules - if stringInList 'msgpack' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'msgpack' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="msgpack $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # Some module installation may use socket if available: move it before other modules - if stringInList 'socket' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'socket' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="socket $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # Some module installation may use apcu if available: move it before other modules - if stringInList 'apcu' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'apcu' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="apcu $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # Some module installation may use raphf if available: move it before other modules - if stringInList 'raphf' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'raphf' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="raphf $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # In any case, first of all, we need to install composer - if stringInList '@composer' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList '@composer' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="@composer $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi -} - -# Expand the IPE_ASPELL_LANGUAGES environment variable into apk/apt package names -expandASpellDictionaries() { - expandASpellDictionaries_languages="${IPE_ASPELL_LANGUAGES:-en}" - expandASpellDictionaries_result='' - resetIFS - for expandASpellDictionaries_language in $expandASpellDictionaries_languages; do - expandASpellDictionaries_result="$expandASpellDictionaries_result aspell-$expandASpellDictionaries_language" - done - printf '%s' "${expandASpellDictionaries_result# }" -} - -# Get the required APT/APK packages for a specific PHP version and for the list of module handles -# -# Arguments: -# $@: the PHP module handles -# -# Set: -# PACKAGES_PERSISTENT_NEW the list of packages required at runtume that must be installed -# PACKAGES_PERSISTENT_PRE the list of packages required at runtume that are already installed -# PACKAGES_VOLATILE the list of packages required at compile time that must be installed -# PACKAGES_PREVIOUS the list of packages (with their version) that are installed right now (calculated only on Debian and only if PACKAGES_PERSISTENT_NEW or PACKAGES_VOLATILE are not empty) -buildRequiredPackageLists() { - buildRequiredPackageLists_persistent='' - buildRequiredPackageLists_volatile='' - case "$DISTRO" in - alpine) - apk update - ;; - debian) - invokeAptGetUpdate - ;; - esac - case "$DISTRO_VERSION" in - alpine@*) - if test $# -gt 1 || test "${1:-}" != '@composer'; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $PHPIZE_DEPS" - fi - if test -z "$(apk info 2>/dev/null | grep -E ^libssl)"; then - buildRequiredPackageLists_libssl="$(apk search | grep -E '^libssl[0-9]' | head -1 | cut -d- -f1)" - elif test -z "$(apk info 2>/dev/null | grep -E '^libressl.*-libtls')" && test -z "$(apk info 2>/dev/null | grep -E '^libressl.*-libssl')" && test -z "$(apk info 2>/dev/null | grep -E '^libretls-')"; then - buildRequiredPackageLists_libssl=$(apk search -q libressl*-libtls) - else - buildRequiredPackageLists_libssl='' - fi - if test $DISTRO_MAJMIN_VERSION -le 313; then - buildRequiredPackageLists_libssldev='libressl-dev' - else - buildRequiredPackageLists_libssldev='libretls-dev' - fi - buildRequiredPackageLists_icuPersistent='' - if test $DISTRO_MAJMIN_VERSION -ge 316; then - case "${IPE_ICU_EN_ONLY:-}" in - 1 | y* | Y*) ;; - *) - buildRequiredPackageLists_icuPersistent='icu-data-full' - ;; - esac - fi - ;; - debian@9) - buildRequiredPackageLists_libssldev='libssl1.0-dev' - ;; - debian@*) - buildRequiredPackageLists_libssldev='^libssl([0-9]+(\.[0-9]+)*)?-dev$' - ;; - esac - if test $USE_PICKLE -gt 1; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile git" - fi - while :; do - if test $# -lt 1; then - break - fi - case "$1@$DISTRO" in - @composer@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent unzip" - ;; - amqp@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent rabbitmq-c" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile rabbitmq-c-dev" - ;; - amqp@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^librabbitmq[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile librabbitmq-dev libssh-dev" - ;; - bz2@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libbz2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile bzip2-dev" - ;; - bz2@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libbz2-dev" - ;; - cassandra@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent cassandra-cpp-driver gmp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cassandra-cpp-driver-dev gmp-dev" - ;; - cmark@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake" - ;; - cmark@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake" - ;; - ddtrace@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libgcc" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile curl-dev" - ;; - ddtrace@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libcurl4-openssl-dev" - ;; - dba@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent db" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile db-dev" - ;; - dba@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile ^libdb5\.3-dev$" - if test $PHP_MAJMIN_VERSION -le 505; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile patch" - fi - ;; - decimal@debian) - if test $DISTRO_MAJMIN_VERSION -lt 1200; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libmpdec[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmpdec-dev" - fi - ;; - ecma_intl@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent icu-libs $buildRequiredPackageLists_icuPersistent" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev libidn-dev" - ;; - ecma_intl@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libicu[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libicu-dev" - ;; - enchant@alpine) - if test $DISTRO_MAJMIN_VERSION -ge 312; then - if test $PHP_MAJMIN_VERSION -ge 800; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent enchant2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile enchant2-dev" - else - # The system provides libenchant2, supported since PHP 8.0: we need to build libenchant1 on our own - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent glib aspell-libs libhunspell" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile glib-dev aspell-dev hunspell-dev" - fi - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent enchant" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile enchant-dev" - fi - ;; - enchant@debian) - if test $DISTRO_VERSION_NUMBER -ge 11; then - if test $PHP_MAJMIN_VERSION -ge 800; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libenchant-2-2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libenchant-2-dev" - else - # The system provides libenchant2, supported since PHP 8.0: we need to build libenchant1 on our own - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent aspell-en libhunspell-1.7-0" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libglib2.0-dev libaspell-dev libhunspell-dev" - fi - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libenchant1c2a" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libenchant-dev" - fi - ;; - event@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libevent $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libevent-dev $buildRequiredPackageLists_libssldev" - ;; - event@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libevent[0-9\.\-]*$ ^libevent-openssl[0-9\.\-]*$ ^libevent-extra[0-9\.\-]*$ ^libevent-pthreads[0-9\.\-]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libevent-dev $buildRequiredPackageLists_libssldev" - ;; - ffi@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libffi" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libffi-dev" - ;; - ffi@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libffi-dev" - ;; - ftp@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev" - ;; - ftp@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev" - ;; - gd@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent freetype libjpeg-turbo libpng libxpm" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetype-dev libjpeg-turbo-dev libpng-dev libxpm-dev" - if test $PHP_MAJMIN_VERSION -le 506; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libvpx" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libvpx-dev" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libwebp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libwebp-dev" - if test $PHP_MAJMIN_VERSION -ge 801; then - if test $DISTRO_MAJMIN_VERSION -ge 315; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libavif aom-libs libdav1d" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libavif-dev aom-dev dav1d-dev" - elif isLibaomInstalled && isLibdav1dInstalled && isLibyuvInstalled && isLibavifInstalled; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - else - case "${IPE_GD_WITHOUTAVIF:-}" in - 1 | y* | Y*) ;; - *) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake nasm meson" - ;; - esac - fi - fi - fi - ;; - gd@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libfreetype6 libjpeg62-turbo ^libpng[0-9]+-[0-9]+$ libxpm4" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libfreetype6-dev libjpeg62-turbo-dev libpng-dev libxpm-dev" - if test $PHP_MAJMIN_VERSION -le 506; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libvpx[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libvpx-dev" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libwebp[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libwebp-dev" - if test $PHP_MAJMIN_VERSION -ge 801; then - if test $DISTRO_VERSION_NUMBER -ge 12; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libavif[0-9]+$ ^libaom[0-9]+$ ^libdav1d[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libavif-dev libaom-dev libdav1d-dev" - elif ! isLibaomInstalled || ! isLibdav1dInstalled || ! isLibyuvInstalled || ! isLibavifInstalled; then - case "${IPE_GD_WITHOUTAVIF:-}" in - 1 | y* | Y*) ;; - *) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake nasm meson" - ;; - esac - fi - fi - fi - ;; - gearman@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++ libuuid" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile boost-dev gperf libmemcached-dev libevent-dev util-linux-dev" - ;; - gearman@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libgearman[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgearman-dev" - ;; - geoip@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent geoip" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile geoip-dev" - ;; - geoip@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libgeoip1[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgeoip-dev" - ;; - geos@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent geos-dev" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile geos" - ;; - geos@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libgeos-c1(v[0-9]*)?$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgeos-dev" - ;; - gettext@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libintl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile gettext-dev" - ;; - gmagick@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent graphicsmagick libgomp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile graphicsmagick-dev libtool" - ;; - gmagick@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libgraphicsmagick(-q16-)?[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgraphicsmagick1-dev" - ;; - gmp@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gmp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile gmp-dev" - ;; - gmp@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgmp-dev" - ;; - gnupg@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gpgme" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile gpgme-dev" - ;; - gnupg@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libgpgme[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile ^libgpgme[0-9]*-dev$" - ;; - grpc@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev linux-headers" - ;; - grpc@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev" - ;; - http@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libevent" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev curl-dev libevent-dev" - if test $PHP_MAJMIN_VERSION -le 506; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libidn" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libidn-dev" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent icu-libs $buildRequiredPackageLists_icuPersistent libidn" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev libidn-dev" - fi - ;; - http@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libcurl3-gnutls ^libevent[0-9\.\-]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev libgnutls28-dev libcurl4-gnutls-dev libevent-dev" - if test $PHP_MAJMIN_VERSION -le 506; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile ^libidn1[0-9+]-dev$" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libicu[0-9]+$ ^libidn2-[0-9+]$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libicu-dev ^libidn2-[0-9+]-dev$" - fi - ;; - imagick@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent imagemagick libgomp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile imagemagick-dev" - if [ $DISTRO_MAJMIN_VERSION -ge 319 ]; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ghostscript libheif libjxl libraw librsvg" - fi - ;; - imagick@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libmagickwand-6.q16-[0-9]+$ ^libmagickcore-6.q16-[0-9]+-extra$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmagickwand-dev" - ;; - imap@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent c-client $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile krb5-dev imap-dev $buildRequiredPackageLists_libssldev" - ;; - imap@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libc-client2007e" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libkrb5-dev" - case "$DISTRO_VERSION" in - debian@9) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev comerr-dev krb5-multidev libc-client2007e libgssrpc4 libkadm5clnt-mit11 libkadm5srv-mit11 libkdb5-8 libpam0g-dev libssl-doc mlock" - ;; - *) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libc-client-dev" - ;; - esac - ;; - interbase@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev ncurses-dev" - ;; - interbase@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libfbclient2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile firebird-dev libib-util" - ;; - intl@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent icu-libs $buildRequiredPackageLists_icuPersistent" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev" - ;; - intl@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libicu[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libicu-dev" - ;; - ion@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake git" - ;; - ion@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake git" - ;; - ldap@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libldap" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile openldap-dev" - ;; - ldap@debian) - if test $DISTRO_VERSION_NUMBER -ge 9; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libldap-common" - fi - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libldap2-dev" - ;; - luasandbox@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lua5.1-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile lua5.1-dev" - ;; - luasandbox@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblua5.1-0" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liblua5.1-0-dev" - ;; - lz4@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lz4-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile lz4-dev" - ;; - lz4@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblz4-1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liblz4-dev" - ;; - maxminddb@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmaxminddb" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmaxminddb-dev" - ;; - maxminddb@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libmaxminddb[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmaxminddb-dev" - ;; - memprof@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent judy" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile judy-dev bsd-compat-headers" - ;; - memprof@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libjudydebian1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libjudy-dev" - ;; - mcrypt@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmcrypt" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmcrypt-dev" - ;; - mcrypt@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmcrypt4" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmcrypt-dev" - ;; - memcache@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev" - ;; - memcache@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev" - ;; - memcached@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmemcached-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmemcached-dev zlib-dev" - ;; - memcached@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmemcachedutil2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmemcached-dev zlib1g-dev" - if test $DISTRO_MAJMIN_VERSION -ge 12; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev" - fi - ;; - mongo@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsasl $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev cyrus-sasl-dev" - ;; - mongo@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev libsasl2-dev" - ;; - mongodb@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent icu-libs $buildRequiredPackageLists_icuPersistent libsasl $buildRequiredPackageLists_libssl snappy" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev cyrus-sasl-dev snappy-dev $buildRequiredPackageLists_libssldev zlib-dev" - if test $PHP_MAJMIN_VERSION -ge 704; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent zstd-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zstd-dev" - fi - ;; - mongodb@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libsnappy[0-9]+(v[0-9]+)?$ ^libicu[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libicu-dev libsasl2-dev libsnappy-dev $buildRequiredPackageLists_libssldev zlib1g-dev" - if test $PHP_MAJMIN_VERSION -ge 704; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libzstd[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libzstd-dev" - fi - ;; - mosquitto@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent mosquitto-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile mosquitto-dev" - ;; - mosquitto@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmosquitto1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmosquitto-dev" - ;; - mssql@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent freetds" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - mssql@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsybdb5" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - oauth@alpine) - if test $PHP_MAJMIN_VERSION -ge 700; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile pcre-dev" - fi - ;; - oauth@debian) - if test $PHP_MAJMIN_VERSION -ge 700; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libpcre3-dev" - fi - ;; - oci8@alpine | pdo_oci@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libaio libc6-compat libnsl" - if test $DISTRO_MAJMIN_VERSION -le 307; then - # The unzip tool of Alpine 3.7 can't extract symlinks from ZIP archives: let's use bsdtar instead - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libarchive-tools" - fi - ;; - oci8@debian | pdo_oci@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libaio[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unzip" - ;; - odbc@alpine | pdo_odbc@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent unixodbc" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unixodbc-dev" - ;; - odbc@debian | pdo_odbc@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libodbc1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unixodbc-dev" - ;; - openswoole@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent postgresql-libs libstdc++ $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile curl-dev postgresql-dev linux-headers $buildRequiredPackageLists_libssldev" - ;; - openswoole@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libcurl3-gnutls libpq5" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev libcurl4-gnutls-dev libpq-dev" - ;; - parle@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - ;; - pdo_dblib@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent freetds" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - pdo_dblib@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsybdb5" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - pdo_firebird@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev ncurses-dev" - ;; - pdo_firebird@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libfbclient2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile firebird-dev libib-util" - ;; - pgsql@alpine | pdo_pgsql@alpine | pq@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent postgresql-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile postgresql-dev" - ;; - pgsql@debian | pdo_pgsql@debian | pq@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libpq5" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libpq-dev" - ;; - php_trie@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - ;; - pkcs11@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent softhsm" - ;; - pkcs11@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsofthsm2" - ;; - pspell@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent aspell-libs $(expandASpellDictionaries)" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile aspell-dev" - ;; - pspell@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libaspell15 $(expandASpellDictionaries)" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libpspell-dev" - ;; - rdkafka@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent librdkafka" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile librdkafka-dev" - ;; - rdkafka@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^librdkafka\+*[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile librdkafka-dev" - ;; - recode@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent recode" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile recode-dev" - ;; - recode@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent librecode0" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile librecode-dev" - ;; - redis@alpine) - if test $PHP_MAJMIN_VERSION -ge 700; then - case "$DISTRO_VERSION" in - alpine@3.7) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent zstd" - ;; - *) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent zstd-libs" - ;; - esac - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zstd-dev" - if test $PHP_MAJMIN_VERSION -ge 702; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lz4-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile lz4-dev" - fi - fi - ;; - redis@debian) - if test $PHP_MAJMIN_VERSION -ge 700; then - case "$DISTRO_VERSION" in - debian@8) - ## There's no APT package for libzstd - ;; - debian@9) - ## libzstd is too old (available: 1.1.2, required: 1.3.0+) - ;; - *) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libzstd[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libzstd-dev" - ;; - esac - fi - if test $PHP_MAJMIN_VERSION -ge 702; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblz4-1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liblz4-dev" - fi - ;; - relay@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lz4-libs zstd-libs" - if test $DISTRO_MAJMIN_VERSION -ge 317; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent $buildRequiredPackageLists_libssl" - fi - ;; - saxon@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_volatile unzip" - ;; - seasclick@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - ;; - simdjson@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - ;; - smbclient@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsmbclient" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile samba-dev" - ;; - smbclient@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsmbclient" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsmbclient-dev" - ;; - snappy@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent snappy" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile snappy-dev" - ;; - snappy@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libsnappy1(v[0-9]+)?$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsnappy-dev" - ;; - snmp@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent net-snmp-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile net-snmp-dev" - ;; - snmp@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent snmp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsnmp-dev" - ;; - snuffleupagus@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent pcre" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile pcre-dev" - ;; - snuffleupagus@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libpcre3-dev" - ;; - soap@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - soap@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - sockets@alpine) - if test $PHP_MAJMIN_VERSION -ge 802; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile linux-headers" - fi - ;; - sodium@alpine | libsodium@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsodium" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsodium-dev" - ;; - sodium@debian | libsodium@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libsodium[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsodium-dev" - ;; - solr@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile curl-dev libxml2-dev" - ;; - solr@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libcurl3-gnutls" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libcurl4-gnutls-dev libxml2-dev" - ;; - sourceguardian@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent eudev-libs" - ;; - spx@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev" - ;; - spx@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev" - ;; - sqlsrv@alpine | pdo_sqlsrv@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++ unixodbc" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unixodbc-dev" - ;; - sqlsrv@debian | pdo_sqlsrv@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent unixodbc" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unixodbc-dev" - if ! isMicrosoftSqlServerODBCInstalled; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile gnupg apt-transport-https" - fi - ;; - ssh2@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libssh2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libssh2-dev" - ;; - ssh2@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libssh2-1-dev" - ;; - stomp@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev" - ;; - stomp@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev" - ;; - swoole@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent postgresql-libs libstdc++ $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile curl-dev postgresql-dev linux-headers $buildRequiredPackageLists_libssldev" - if test $PHP_MAJMIN_VERSION -ge 702; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent c-ares" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile c-ares-dev" - fi - ;; - swoole@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libcurl3-gnutls libpq5" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev libcurl4-gnutls-dev libpq-dev" - if test $PHP_MAJMIN_VERSION -ge 702; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libc-ares2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libc-ares-dev" - fi - if test $PHP_MAJMIN_VERSION -ge 800; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev" - fi - ;; - sybase_ct@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent freetds" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - sybase_ct@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libct4" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - tdlib@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++ $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile git cmake gperf zlib-dev $buildRequiredPackageLists_libssldev linux-headers readline-dev" - ;; - tdlib@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile git cmake gperf zlib1g-dev $buildRequiredPackageLists_libssldev" - ;; - tensor@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent openblas" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile lapack-dev openblas-dev" - if test $DISTRO_MAJMIN_VERSION -le 317; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lapack" - if test $DISTRO_MAJMIN_VERSION -le 316; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libexecinfo" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libexecinfo-dev" - if test $DISTRO_MAJMIN_VERSION -le 310; then - if ! stringInList --force-overwrite "$IPE_APK_FLAGS"; then - IPE_APK_FLAGS="$IPE_APK_FLAGS --force-overwrite" - fi - fi - fi - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblapack" - fi - ;; - tensor@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblapacke" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liblapack-dev libopenblas-dev liblapacke-dev" - if test $DISTRO_VERSION_NUMBER -le 9; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-6 libopenblas-base" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-6-dev" - elif test $DISTRO_VERSION_NUMBER -le 10; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-8 libopenblas-base" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-8-dev" - elif test $DISTRO_VERSION_NUMBER -le 11; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-10 libopenblas-base" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-10-dev" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-12 libopenblas0" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-12-dev" - fi - ;; - tidy@alpine) - if test $DISTRO_MAJMIN_VERSION -ge 315; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent tidyhtml" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent tidyhtml-libs" - fi - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile tidyhtml-dev" - ;; - tidy@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libtidy-?[0-9][0-9.\-]*(deb[0-9])?$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libtidy-dev" - ;; - uuid@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libuuid" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile util-linux-dev" - ;; - uuid@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile uuid-dev" - ;; - uv@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libuv" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libuv-dev" - ;; - uv@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libuv1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libuv1-dev" - ;; - vips@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent vips" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile vips-dev" - ;; - vips@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libvips" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libvips-dev" - ;; - wddx@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - wddx@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - wikidiff2@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile git" - ;; - wikidiff2@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libthai0" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile git libthai-dev" - ;; - xdebug@alpine) - if test $PHP_MAJMIN_VERSION -ge 800; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile linux-headers" - fi - ;; - xlswriter@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev" - ;; - xlswriter@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev" - ;; - xmldiff@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - xmldiff@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - xmlrpc@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - xmlrpc@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - xsl@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libxslt" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxslt-dev libgcrypt-dev" - ;; - xsl@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libxslt1\.1$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxslt-dev" - ;; - yaml@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent yaml" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile yaml-dev" - ;; - yaml@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libyaml-0-2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libyaml-dev" - ;; - yar@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile curl-dev" - ;; - yar@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libcurl3-gnutls" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libcurl4-gnutls-dev" - ;; - zip@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libzip" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake gnutls-dev libzip-dev $buildRequiredPackageLists_libssldev zlib-dev" - ;; - zip@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libzip[0-9]$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake gnutls-dev $buildRequiredPackageLists_libssldev libzip-dev libbz2-dev zlib1g-dev" - case "$DISTRO_VERSION" in - debian@8) - # Debian Jessie doesn't seem to provide libmbedtls - ;; - *) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libmbedtls[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmbedtls-dev" - ;; - esac - ;; - zmq@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent zeromq-dev" - ;; - zmq@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libzmq3-dev" - ;; - zookeeper@alpine) - if ! test -f /usr/local/include/zookeeper/zookeeper.h; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile maven automake libtool openjdk8" - fi - ;; - zookeeper@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libzookeeper-mt2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libzookeeper-mt-dev" - ;; - esac - shift - done - PACKAGES_PERSISTENT_NEW='' - PACKAGES_PERSISTENT_PRE='' - PACKAGES_VOLATILE='' - PACKAGES_PREVIOUS='' - if test -z "$buildRequiredPackageLists_persistent$buildRequiredPackageLists_volatile"; then - return - fi - if test -n "$buildRequiredPackageLists_persistent"; then - PACKAGES_PERSISTENT_NEW="$(expandPackagesToBeInstalled $buildRequiredPackageLists_persistent)" - if test -s "$IPE_ERRFLAG_FILE"; then - exit 1 - fi - resetIFS - for buildRequiredPackageLists_package in $buildRequiredPackageLists_persistent; do - buildRequiredPackageLists_package="$(expandInstalledSystemPackageName "$buildRequiredPackageLists_package")" - if test -n "$buildRequiredPackageLists_package"; then - PACKAGES_PERSISTENT_PRE="$PACKAGES_PERSISTENT_PRE $buildRequiredPackageLists_package" - fi - done - PACKAGES_PERSISTENT_PRE="${PACKAGES_PERSISTENT_PRE# }" - fi - if test -n "$buildRequiredPackageLists_volatile"; then - buildRequiredPackageLists_packages="$(expandPackagesToBeInstalled $buildRequiredPackageLists_volatile)" - if test -s "$IPE_ERRFLAG_FILE"; then - exit 1 - fi - resetIFS - for buildRequiredPackageLists_package in $buildRequiredPackageLists_packages; do - if ! stringInList "$buildRequiredPackageLists_package" "$PACKAGES_PERSISTENT_NEW"; then - if test "$buildRequiredPackageLists_package" != icu-data-en || ! stringInList icu-data-full "$PACKAGES_PERSISTENT_NEW"; then - PACKAGES_VOLATILE="$PACKAGES_VOLATILE $buildRequiredPackageLists_package" - fi - fi - done - PACKAGES_VOLATILE="${PACKAGES_VOLATILE# }" - fi - if test -n "$PACKAGES_PERSISTENT_NEW$PACKAGES_VOLATILE"; then - case "$DISTRO" in - debian) - PACKAGES_PREVIOUS="$(dpkg --get-selections | grep -E '\sinstall$' | awk '{ print $1 }')" - ;; - esac - fi -} - -# Get the full list of APT/APK packages that will be installed, given the required packages -# -# Arguments: -# $1: the list of required APT/APK packages -# -# Output: -# Space-separated list of every APT/APK packages that will be installed -expandPackagesToBeInstalled() { - expandPackagesToBeInstalled_result='' - case "$DISTRO" in - alpine) - expandPackagesToBeInstalled_log="$(apk add --simulate $@ 2>&1 || printf '\nERROR: apk failed\n')" - if test -n "$(printf '%s' "$expandPackagesToBeInstalled_log" | grep -E '^ERROR:')"; then - printf 'FAILED TO LIST THE WHOLE PACKAGE LIST FOR\n' >&2 - printf '%s ' "$@" >&2 - printf '\n\nCOMMAND OUTPUT:\n%s\n' "$expandPackagesToBeInstalled_log" >&2 - echo 'y' >"$IPE_ERRFLAG_FILE" - exit 1 - fi - IFS=' -' - for expandPackagesToBeInstalled_line in $expandPackagesToBeInstalled_log; do - if test -n "$(printf '%s' "$expandPackagesToBeInstalled_line" | grep -E '^\([0-9]*/[0-9]*) Installing ')"; then - expandPackagesToBeInstalled_result="$expandPackagesToBeInstalled_result $(printf '%s' "$expandPackagesToBeInstalled_line" | cut -d ' ' -f 3)" - fi - done - resetIFS - ;; - debian) - expandPackagesToBeInstalled_log="$(DEBIAN_FRONTEND=noninteractive apt-get install -sy --no-install-recommends $IPE_APTGET_INSTALLOPTIONS $@ 2>&1 || printf '\nE: apt-get failed\n')" - if test -n "$(printf '%s' "$expandPackagesToBeInstalled_log" | grep -E '^E:')"; then - printf 'FAILED TO LIST THE WHOLE PACKAGE LIST FOR\n' >&2 - printf '%s ' "$@" >&2 - printf '\n\nCOMMAND OUTPUT:\n%s\n' "$expandPackagesToBeInstalled_log" >&2 - echo 'y' >"$IPE_ERRFLAG_FILE" - exit 1 - fi - expandPackagesToBeInstalled_inNewPackages=0 - IFS=' -' - for expandPackagesToBeInstalled_line in $expandPackagesToBeInstalled_log; do - if test $expandPackagesToBeInstalled_inNewPackages -eq 0; then - if test "$expandPackagesToBeInstalled_line" = 'The following NEW packages will be installed:'; then - expandPackagesToBeInstalled_inNewPackages=1 - fi - elif test "$expandPackagesToBeInstalled_line" = "${expandPackagesToBeInstalled_line# }"; then - break - else - resetIFS - for expandPackagesToBeInstalled_newPackage in $expandPackagesToBeInstalled_line; do - expandPackagesToBeInstalled_result="$expandPackagesToBeInstalled_result $expandPackagesToBeInstalled_newPackage" - done - IFS=' -' - fi - done - resetIFS - ;; - esac - printf '%s' "${expandPackagesToBeInstalled_result# }" -} - -# Check if a system package is installed; if so we prints its name. -# -# Arguments: -# $1: the name of the package to be checked (regular expressions accepted: they must start with a ^) -expandInstalledSystemPackageName() { - if test "$1" = "${1#^}"; then - expandInstalledSystemPackageName_grepflags='-Fx' - else - expandInstalledSystemPackageName_grepflags='-E' - fi - case "$DISTRO" in - alpine) - apk info | grep $expandInstalledSystemPackageName_grepflags -- "$1" || test $? -eq 1 - ;; - debian) - dpkg --get-selections | grep -E '\sinstall$' | awk '{ print $1 }' | cut -d: -f1 | grep $expandInstalledSystemPackageName_grepflags -- "$1" || test $? -eq 1 - ;; - esac -} - -# Retrieve the number of available cores (alternative to nproc if not available) -# -# Output: -# The number of processor cores available -getProcessorCount() { - if test -n "${IPE_PROCESSOR_COUNT:-}"; then - echo $IPE_PROCESSOR_COUNT - return - fi - if command -v nproc >/dev/null 2>&1; then - nproc - else - getProcessorCount_tmp=$(cat /proc/cpuinfo | grep -E '^processor\s*:\s*\d+$' | wc -l) - if test $getProcessorCount_tmp -ge 1; then - echo $getProcessorCount_tmp - else - echo 1 - fi - fi -} - -# Set these variables: -# - TARGET_TRIPLET the build target tripled (eg 'x86_64-linux-gnu', 'x86_64-alpine-linux-musl') -setTargetTriplet() { - TARGET_TRIPLET="$(gcc -print-multiarch 2>/dev/null || true)" - if test -z "$TARGET_TRIPLET"; then - TARGET_TRIPLET="$(gcc -dumpmachine)" - fi -} - -# Retrieve the number of processors to be used when compiling an extension -# -# Arguments: -# $1: the handle of the PHP extension to be compiled -# Output: -# The number of processors to be used -getCompilationProcessorCount() { - case "$1" in - '') - # The above extensions don't support parallel compilation - echo 1 - ;; - *) - # All the other extensions support parallel compilation - getProcessorCount - ;; - esac -} - -# Get the full path of a PHP extension given its name. -# -# Arguments: -# $1: the name of the PHP extension -# -# Output: -# The absolute path of the PHP extension file (or nothing if the file can't be found) -getModuleFullPath() { - case "$1" in - apcu_bc) - getModuleFullPath_path="$PHP_EXTDIR/apc.so" - ;; - seasclick) - getModuleFullPath_path="$PHP_EXTDIR/SeasClick.so" - ;; - *) - getModuleFullPath_path="$PHP_EXTDIR/$1.so" - ;; - esac - if ! test -f "$getModuleFullPath_path"; then - printf 'Unable to find the file of the PHP extension "%s"\n' "$1" >&2 - exit 1 - fi - printf '%s' "$getModuleFullPath_path" -} - -# Post-process a PHP module just compiled and installed in the PHP extension directory -# -# Arguments: -# $1: the name of the PHP extension -# -# Return: -# 0 (true): if suceeded -# non-zero (false): in case of errors -postProcessModule() { - postProcessModule_file="$(getModuleFullPath "$1")" - if test $PHP_DEBUGBUILD -ne 1; then - printf 'Removing symbols from %s... ' "$postProcessModule_file" - postProcessModule_preSize="$(stat -c %s "$postProcessModule_file")" - strip --strip-all "$postProcessModule_file" - postProcessModule_postSize="$(stat -c %s "$postProcessModule_file")" - printf 'done (%s bytes saved).\n' "$((postProcessModule_preSize - postProcessModule_postSize))" - fi - return $? -} - -# Get the type of the php.ini entry to be used for a PHP extension -# -# Arguments: -# $1: the name of the PHP extension -# -# Output: -# zend_extension or extension -getModuleIniEntryType() { - case "$1" in - ioncube_loader | sourceguardian) - # On PHP 5.5, docker-php-ext-enable fails to detect that ionCube Loader and sourceguardian are Zend extensions - if test $PHP_MAJMIN_VERSION -le 505; then - printf 'zend_extension' - return 0 - fi - ;; - esac - getModuleIniEntryType_file="$(getModuleFullPath "$1")" - if readelf --wide --syms "$getModuleIniEntryType_file" | grep -Eq ' zend_extension_entry$'; then - printf 'zend_extension' - else - printf 'extension' - fi -} - -# Create the contents of a PHP ini file that enables an extension -# -# Arguments: -# $1: the name of the PHP extension -# $2: additional php.ini configuration (optional) -# -# Output: -# The contents of the ini file -buildPhpExtensionIniContent() { - buildPhpExtensionIniContent_type="$(getModuleIniEntryType "$1")" - buildPhpExtensionIniContent_soFile="$(getModuleFullPath "$1")" - buildPhpExtensionIniContent_result="$(printf '%s=%s' "$buildPhpExtensionIniContent_type" "${buildPhpExtensionIniContent_soFile##$PHP_EXTDIR/}")" - if test -n "${2:-}"; then - buildPhpExtensionIniContent_result="$(printf '%s\n%s' "$buildPhpExtensionIniContent_result" "$2")" - fi - printf '%s' "$buildPhpExtensionIniContent_result" -} - -# Check that a PHP module actually works (better to run this check before enabling the extension) -# -# Arguments: -# $1: the name of the PHP extension -# $2: base name (without path and extension) of additional php.ini configuration (optional) -# $3: additional php.ini configuration (optional) -# -# Return: -# 0 (true): if the string is in the list -# 1 (false): if the string is not in the list -checkModuleWorking() { - if test -n "${2:-}"; then - checkModuleWorking_iniFile="$PHP_INI_DIR/conf.d/$2--temp.ini" - else - checkModuleWorking_iniFile="$PHP_INI_DIR/conf.d/docker-php-ext-$1--temp.ini" - fi - checkModuleWorking_iniContent="$(buildPhpExtensionIniContent "$1" "${3:-}")" - printf 'Check if the %s module can be loaded... ' "$1" - checkModuleWorking_errBefore="$(php -r 'return;' 2>&1 || true)" - printf '%s' "$checkModuleWorking_iniContent" >"$checkModuleWorking_iniFile" - checkModuleWorking_errAfter="$(php -r 'return;' 2>&1 || true)" - rm "$checkModuleWorking_iniFile" - if test "$checkModuleWorking_errAfter" != "$checkModuleWorking_errBefore"; then - printf 'Error loading the "%s" extension:\n%s\n' "$1" "$checkModuleWorking_errAfter" >&2 - return 1 - fi - printf 'ok.\n' - return 0 -} - -# Enable a PHP extension -# -# Arguments: -# $1: the name of the PHP extension to be enabled -# $2: base name (without path and extension) of additional php.ini configuration (optional) -# $3: additional php.ini configuration (optional) -enablePhpExtension() { - if test -n "${2:-}"; then - enablePhpExtension_iniFile="$PHP_INI_DIR/conf.d/$2.ini" - else - enablePhpExtension_iniFile="$PHP_INI_DIR/conf.d/docker-php-ext-$1.ini" - fi - enablePhpExtension_iniContent="$(buildPhpExtensionIniContent "$1" "${3:-}")" - case "${IPE_DONT_ENABLE:-}" in - 1 | y* | Y*) - enablePhpExtension_enableCommand="/usr/local/bin/docker-php-ext-enable-$1" - printf '%s' "$enablePhpExtension_iniContent" >"$enablePhpExtension_iniFile-disabled" - printf '\n' >>"$enablePhpExtension_iniFile-disabled" - cat <"$enablePhpExtension_enableCommand" -#!/bin/sh - -if test -f '$enablePhpExtension_iniFile-disabled'; then - echo 'Enabling extension $1' - mv '$enablePhpExtension_iniFile-disabled' '$enablePhpExtension_iniFile' -else - echo 'The extension $1 has already been enabled' -fi -EOT - chmod +x "$enablePhpExtension_enableCommand" - printf '## Extension %s not enabled.\nYou can enable it by running the following command:\n%s\n\n' "$1" "$(basename "$enablePhpExtension_enableCommand")" - ;; - *) - printf '%s' "$enablePhpExtension_iniContent" >"$enablePhpExtension_iniFile" - printf '\n' >>"$enablePhpExtension_iniFile" - ;; - esac -} - -# Mark the pre-installed APT/APK packages as used -# that way they won't be uninstalled by accident -markPreinstalledPackagesAsUsed() { - printf '### MARKING PRE-INSTALLED PACKAGES AS IN-USE ###\n' - case "$DISTRO" in - alpine) - printf '# Packages: %s\n' "$PACKAGES_PERSISTENT_PRE" - apk add $PACKAGES_PERSISTENT_PRE - ;; - debian) - DEBIAN_FRONTEND=noninteractive apt-mark manual $PACKAGES_PERSISTENT_PRE - ;; - esac -} - -# Install the required APT/APK packages -# -# Arguments: -# $@: the list of APT/APK packages to be installed -installRequiredPackages() { - printf '### INSTALLING REQUIRED PACKAGES ###\n' - printf '# Packages to be kept after installation: %s\n' "$PACKAGES_PERSISTENT_NEW" - printf '# Packages to be used only for installation: %s\n' "$PACKAGES_VOLATILE" - case "$DISTRO" in - alpine) - apk add $IPE_APK_FLAGS $PACKAGES_PERSISTENT_NEW $PACKAGES_VOLATILE - # https://gitlab.alpinelinux.org/alpine/aports/-/issues/12763#note_172090 - # https://github.com/mlocati/docker-php-extension-installer/issues/385 - # https://github.com/mlocati/docker-php-extension-installer/issues/537#issuecomment-1078748882 - for installRequiredPackages_item in wget; do - if test -n "$(expandInstalledSystemPackageName "$installRequiredPackages_item")"; then - apk add --upgrade "$installRequiredPackages_item" - fi - done - ;; - debian) - DEBIAN_FRONTEND=noninteractive apt-get install -qqy --no-install-recommends $IPE_APTGET_INSTALLOPTIONS $PACKAGES_PERSISTENT_NEW $PACKAGES_VOLATILE - ;; - esac -} - -# Get the version of an installed APT/APK package -# -# Arguments: -# $1: the name of the installed package -# -# Output: -# The numeric part of the package version, with from 1 to 3 numbers -# -# Example: -# 1 -# 1.2 -# 1.2.3 -getInstalledPackageVersion() { - case "$DISTRO" in - alpine) - apk info "$1" | head -n1 | cut -c $((${#1} + 2))- | grep -o -E '^[0-9]+(\.[0-9]+){0,2}' - ;; - debian) - dpkg-query --showformat='${Version}' --show "$1" 2>/dev/null | grep -o -E '^[0-9]+(\.[0-9]+){0,2}' - ;; - esac -} - -# Compare two versions -# -# Arguments: -# $1: the first version -# $2: the second version -# -# Output -# -1 if $1 is less than $2 -# 0 if $1 is the same as $2 -# 1 if $1 is greater than $2 -compareVersions() { - compareVersions_v1="$1.0.0" - compareVersions_v2="$2.0.0" - compareVersions_vMin="$(printf '%s\n%s' "$compareVersions_v1" "$compareVersions_v2" | sort -t '.' -n -k1,1 -k2,2 -k3,3 | head -n 1)" - if test "$compareVersions_vMin" != "$compareVersions_v1"; then - echo '1' - elif test "$compareVersions_vMin" = "$compareVersions_v2"; then - echo '0' - else - echo '-1' - fi -} - -# Install Oracle Instant Client & SDK -# -# Set: -# ORACLE_INSTANTCLIENT_LIBPATH -installOracleInstantClient() { - case "${IPE_INSTANTCLIENT_BASIC:-}" in - 1 | y* | Y*) - installOracleInstantClient_handle=basic - ;; - *) - installOracleInstantClient_handle=basiclite - ;; - esac - case $PHP_BITS in - 32) - installOracleInstantClient_client=client - installOracleInstantClient_version='19.9' - installOracleInstantClient_ic=https://download.oracle.com/otn_software/linux/instantclient/199000/instantclient-$installOracleInstantClient_handle-linux-$installOracleInstantClient_version.0.0.0dbru.zip - installOracleInstantClient_sdk=https://download.oracle.com/otn_software/linux/instantclient/199000/instantclient-sdk-linux-$installOracleInstantClient_version.0.0.0dbru.zip - ;; - *) - case $(uname -m) in - aarch64*) - installOracleInstantClient_client=client64 - installOracleInstantClient_version='19.10' - installOracleInstantClient_ic=https://download.oracle.com/otn_software/linux/instantclient/191000/instantclient-$installOracleInstantClient_handle-linux.arm64-$installOracleInstantClient_version.0.0.0dbru.zip - installOracleInstantClient_sdk=https://download.oracle.com/otn_software/linux/instantclient/191000/instantclient-sdk-linux.arm64-$installOracleInstantClient_version.0.0.0dbru.zip - ;; - *) - installOracleInstantClient_client=client64 - installOracleInstantClient_version='21.1' - installOracleInstantClient_ic=https://download.oracle.com/otn_software/linux/instantclient/211000/instantclient-$installOracleInstantClient_handle-linux.x64-$installOracleInstantClient_version.0.0.0.zip - installOracleInstantClient_sdk=https://download.oracle.com/otn_software/linux/instantclient/211000/instantclient-sdk-linux.x64-$installOracleInstantClient_version.0.0.0.zip - ;; - esac - ;; - esac - ORACLE_INSTANTCLIENT_LIBPATH=/usr/lib/oracle/$installOracleInstantClient_version/$installOracleInstantClient_client/lib - if ! test -e "$ORACLE_INSTANTCLIENT_LIBPATH"; then - printf 'Downloading Oracle Instant Client v%s (%s)... ' "$installOracleInstantClient_version" "$installOracleInstantClient_handle" - installOracleInstantClient_src="$(getPackageSource $installOracleInstantClient_ic)" - mkdir -p "/usr/lib/oracle/$installOracleInstantClient_version/$installOracleInstantClient_client" - mv "$installOracleInstantClient_src" "$ORACLE_INSTANTCLIENT_LIBPATH" - echo 'done.' - fi - if ! test -e "$ORACLE_INSTANTCLIENT_LIBPATH/sdk" && ! test -L "$ORACLE_INSTANTCLIENT_LIBPATH/sdk"; then - printf 'Downloading Oracle Instant SDK v%s... ' "$installOracleInstantClient_version" - installOracleInstantClient_src="$(getPackageSource $installOracleInstantClient_sdk)" - ln -sf "$installOracleInstantClient_src/sdk" "$ORACLE_INSTANTCLIENT_LIBPATH/sdk" - UNNEEDED_PACKAGE_LINKS="$UNNEEDED_PACKAGE_LINKS $ORACLE_INSTANTCLIENT_LIBPATH/sdk" - echo 'done.' - fi - case "$DISTRO" in - alpine) - if ! test -e /usr/lib/libresolv.so.2 && test -e /lib/libc.so.6; then - ln -s /lib/libc.so.6 /usr/lib/libresolv.so.2 - fi - installOracleInstantClient_ldconf=/etc/ld-musl-${TARGET_TRIPLET%-alpine-linux-musl}.path - if test -e "$installOracleInstantClient_ldconf"; then - if ! cat "$installOracleInstantClient_ldconf" | grep -q "$ORACLE_INSTANTCLIENT_LIBPATH"; then - cat "$ORACLE_INSTANTCLIENT_LIBPATH" | awk -v suffix=":$ORACLE_INSTANTCLIENT_LIBPATH" '{print NR==1 ? $0suffix : $0}' >"$ORACLE_INSTANTCLIENT_LIBPATH" - fi - else - case $PHP_BITS in - 32) - echo "/lib:/usr/local/lib:/usr/lib:$ORACLE_INSTANTCLIENT_LIBPATH" >"$installOracleInstantClient_ldconf" - ;; - *) - echo "/lib64:/lib:/usr/local/lib:/usr/lib:$ORACLE_INSTANTCLIENT_LIBPATH" >"$installOracleInstantClient_ldconf" - ;; - esac - fi - ;; - debian) - if ! test -e /etc/ld.so.conf.d/oracle-instantclient.conf; then - echo "$ORACLE_INSTANTCLIENT_LIBPATH" >/etc/ld.so.conf.d/oracle-instantclient.conf - ldconfig - fi - ;; - esac -} - -# Check if the Microsoft SQL Server ODBC Driver is installed -# -# Return: -# 0 (true): if the string is in the list -# 1 (false): if the string is not in the list -isMicrosoftSqlServerODBCInstalled() { - test -d /opt/microsoft/msodbcsql*/ -} - -# Install the Microsoft SQL Server ODBC Driver -# see https://learn.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server -installMicrosoftSqlServerODBC() { - printf 'Installing the Microsoft SQL Server ODBC Driver\n' - case "$DISTRO" in - alpine) - rm -rf /tmp/src/msodbcsql.apk - if test $PHP_MAJMIN_VERSION -le 703; then - curl -sSLf -o /tmp/src/msodbcsql.apk https://download.microsoft.com/download/e/4/e/e4e67866-dffd-428c-aac7-8d28ddafb39b/msodbcsql17_17.10.6.1-1_amd64.apk - else - case $(uname -m) in - aarch64 | arm64 | armv8) - installMicrosoftSqlServerODBC_arch=arm64 - ;; - *) - installMicrosoftSqlServerODBC_arch=amd64 - ;; - esac - curl -sSLf -o /tmp/src/msodbcsql.apk https://download.microsoft.com/download/3/5/5/355d7943-a338-41a7-858d-53b259ea33f5/msodbcsql18_18.3.3.1-1_$installMicrosoftSqlServerODBC_arch.apk - fi - printf '\n' | apk add --allow-untrusted /tmp/src/msodbcsql.apk - rm -rf /tmp/src/msodbcsql.apk - ;; - debian) - printf -- '- installing the Microsoft APT key\n' - if test $DISTRO_VERSION_NUMBER -eq 11; then - curl -sSLf -o /etc/apt/trusted.gpg.d/microsoft.asc https://packages.microsoft.com/keys/microsoft.asc - elif test $DISTRO_VERSION_NUMBER -ge 12; then - curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor --yes --output /usr/share/keyrings/microsoft-prod.gpg - else - # apt-key is deprecated - curl -sSLf https://packages.microsoft.com/keys/microsoft.asc | apt-key add - - fi - if ! test -f /etc/apt/sources.list.d/mssql-release.list; then - printf -- '- adding the Microsoft APT source list\n' - curl -sSLf https://packages.microsoft.com/config/debian/$DISTRO_VERSION_NUMBER/prod.list >/etc/apt/sources.list.d/mssql-release.list - invokeAptGetUpdate - fi - printf -- '- installing the APT package\n' - if test $PHP_MAJMIN_VERSION -le 703; then - DEBIAN_FRONTEND=noninteractive ACCEPT_EULA=Y apt-get install -qqy --no-install-recommends $IPE_APTGET_INSTALLOPTIONS msodbcsql17 - elif test $DISTRO_VERSION_NUMBER -ge 9 && test $DISTRO_VERSION_NUMBER -le 12; then - # On Debian 9 to 12 we have both msodbcsql17 and msodbcsql18: let's install just one - DEBIAN_FRONTEND=noninteractive ACCEPT_EULA=Y apt-get install -qqy --no-install-recommends $IPE_APTGET_INSTALLOPTIONS msodbcsql18 - else - DEBIAN_FRONTEND=noninteractive ACCEPT_EULA=Y apt-get install -qqy --no-install-recommends $IPE_APTGET_INSTALLOPTIONS '^msodbcsql[0-9]+$' - fi - ;; - esac -} - -# Check if libaom is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibaomInstalled() { - if ! test -f /usr/local/lib/libaom.so && ! test -f /usr/lib/libaom.so && ! test -f /usr/lib/x86_64*/libaom.so; then - return 1 - fi - if ! test -f /usr/local/include/aom/aom_codec.h && ! test -f /usr/include/aom/aom_codec.h; then - return 1 - fi - return 0 -} - -# Install libaom -installLibaom() { - printf 'Installing libaom\n' - installLibaom_version=3.8.1 - case "$DISTRO_VERSION" in - debian@10) - case $(uname -m) in - aarch* | arm*) - #see https://bugs.chromium.org/p/aomedia/issues/detail?id=3543 - installLibaom_version=3.5.0 - ;; - esac - ;; - esac - installLibaom_dir="$(getPackageSource https://aomedia.googlesource.com/aom/+archive/v$installLibaom_version.tar.gz)" - mkdir -- "$installLibaom_dir/my.build" - cd -- "$installLibaom_dir/my.build" - cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=1 -DENABLE_DOCS=0 -DENABLE_EXAMPLES=0 -DENABLE_TESTDATA=0 -DENABLE_TESTS=0 -DENABLE_TOOLS=0 -DCMAKE_INSTALL_LIBDIR:PATH=lib .. - ninja -j $(getProcessorCount) install - cd - >/dev/null - ldconfig || true -} - -# Check if libdav1d is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibdav1dInstalled() { - if ! test -f /usr/local/lib/libdav1d.so && ! test -f /usr/lib/libdav1d.so && ! test -f /usr/lib/x86_64*/libdav1d.so; then - return 1 - fi - if ! test -f /usr/local/include/dav1d/dav1d.h && ! test -f /usr/include/dav1d/dav1d.h; then - return 1 - fi - return 0 -} - -# Install libdav1d -installLibdav1d() { - printf 'Installing libdav1d\n' - installLibdav1d_dir="$(getPackageSource https://github.com/videolan/dav1d/archive/refs/tags/1.3.0.tar.gz)" - mkdir -- "$installLibdav1d_dir/build" - cd -- "$installLibdav1d_dir/build" - meson --buildtype release -Dprefix=/usr .. - ninja -j $(getProcessorCount) install - cd - >/dev/null - if test -f /usr/lib/$TARGET_TRIPLET/libdav1d.so && ! test -f /usr/lib/libdav1d.so; then - ln -s /usr/lib/$TARGET_TRIPLET/libdav1d.so /usr/lib/ - fi - ldconfig || true -} - -# Check if libyuv is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibyuvInstalled() { - if ! test -f /usr/local/lib/libyuv.so && ! test -f /usr/lib/libyuv.so && ! test -f /usr/lib/x86_64*/libyuv.so && ! test -f /usr/lib/x86_64*/libyuv.so.*; then - return 1 - fi - if ! test -f /usr/local/include/libyuv.h && ! test -f /usr/include/libyuv.h; then - return 1 - fi - return 0 -} - -# Install libyuv -installLibyuv() { - printf 'Installing libyuv\n' - installLibyuv_dir="$(getPackageSource https://chromium.googlesource.com/libyuv/libyuv/+archive/d359a9f922af840b043535d43cf9d38b220d102e.tar.gz)" - mkdir -- "$installLibyuv_dir/build" - cd -- "$installLibyuv_dir/build" - cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr -B. .. - make -j$(getProcessorCount) install - cd - >/dev/null -} - -# Check if libavif is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibavifInstalled() { - if ! test -f /usr/local/lib/libavif.so && ! test -f /usr/lib/libavif.so && ! test -f /usr/lib/x86_64*/libavif.so; then - return 1 - fi - if ! test -f /usr/local/include/avif/avif.h && ! test -f /usr/include/avif/avif.h; then - return 1 - fi - return 0 -} - -# Install libavif -installLibavif() { - printf 'Installing libavif\n' - installLibavif_dir="$(getPackageSource https://codeload.github.com/AOMediaCodec/libavif/tar.gz/refs/tags/v1.0.3)" - mkdir -- "$installLibavif_dir/build" - cd -- "$installLibavif_dir/build" - cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON -DAVIF_CODEC_AOM=ON -DCMAKE_INSTALL_LIBDIR:PATH=lib - make -j$(getProcessorCount) install - cd - >/dev/null -} - -# Install libmpdec -installLibMPDec() { - installLibMPDec_src="$(getPackageSource https://www.bytereef.org/software/mpdecimal/releases/mpdecimal-2.5.1.tar.gz)" - cd -- "$installLibMPDec_src" - ./configure --disable-cxx - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -# Check if libdatrie is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibDatrieInstalled() { - if ! test -f /usr/local/lib/libdatrie.so && ! test -f /usr/lib/libdatrie.so && ! test -f /usr/lib/x86_64*/libdatrie.so; then - return 1 - fi - if ! test -f /usr/local/include/datrie/trie.h && ! test -f /usr/include/datrie/trie.h; then - return 1 - fi - return 0 -} - -# Install libdatrie -installLibDatrie() { - printf 'Installing libdatrie\n' - installLibDatrie_src="$(getPackageSource https://github.com/tlwg/libdatrie/releases/download/v0.2.13/libdatrie-0.2.13.tar.xz)" - cd -- "$installLibDatrie_src" - ./configure - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -# Check if libdatrie is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibThaiInstalled() { - return 1 - if ! test -f /usr/local/lib/libthai.so && ! test -f /usr/lib/libthai.so && ! test -f /usr/lib/x86_64*/libthai.so; then - return 1 - fi - if ! test -f /usr/local/include/thai/thailib.h && ! test -f /usr/include/thai/thailib.h; then - return 1 - fi - return 0 -} - -# Install libdatrie -installLibThai() { - printf 'Installing libthai\n' - installLibThai_src="$(getPackageSource https://github.com/tlwg/libthai/releases/download/v0.1.29/libthai-0.1.29.tar.xz)" - cd -- "$installLibThai_src" - ./configure - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -# Install Composer -installComposer() { - installComposer_version="$(getWantedPHPModuleVersion @composer)" - installComposer_version="${installComposer_version#^}" - if test -z "$installComposer_version"; then - installComposer_fullname=composer - installComposer_flags='' - else - installComposer_fullname="$(printf 'composer v%s' "$installComposer_version")" - if printf '%s' "$installComposer_version" | grep -Eq '^[0-9]+$'; then - installComposer_flags="--$installComposer_version" - else - installComposer_flags="--version=$installComposer_version" - fi - fi - printf '### INSTALLING %s ###\n' "$installComposer_fullname" - actuallyInstallComposer /usr/local/bin composer "$installComposer_flags" -} - -# Actually install composer -# -# Arguments: -# $1: the directory where composer should be installed (required) -# $2: the composer filename (optional, default: composer) -# $3. additional flags for the composer installed (optional) -actuallyInstallComposer() { - actuallyInstallComposer_installer="$(mktemp -p /tmp/src)" - curl -sSLf -o "$actuallyInstallComposer_installer" https://getcomposer.org/installer - actuallyInstallComposer_expectedSignature="$(curl -sSLf https://composer.github.io/installer.sig)" - actuallyInstallComposer_actualSignature="$(php -n -r "echo hash_file('sha384', '$actuallyInstallComposer_installer');")" - if test "$actuallyInstallComposer_expectedSignature" != "$actuallyInstallComposer_actualSignature"; then - printf 'Verification of composer installer failed!\nExpected signature: %s\nActual signature: %s\n' "$actuallyInstallComposer_expectedSignature" "$actuallyInstallComposer_actualSignature" >&2 - exit 1 - fi - actuallyInstallComposer_flags="--install-dir=$1" - if test -n "${2:-}"; then - actuallyInstallComposer_flags="$actuallyInstallComposer_flags --filename=$2" - else - actuallyInstallComposer_flags="$actuallyInstallComposer_flags --filename=composer" - fi - if test -n "${3:-}"; then - actuallyInstallComposer_flags="$actuallyInstallComposer_flags $3" - fi - php "$actuallyInstallComposer_installer" $actuallyInstallComposer_flags - rm -- "$actuallyInstallComposer_installer" -} - -# Install ionCube Loader -installIonCubeLoader() { - # See https://www.ioncube.com/loaders.php - case $PHP_BITS in - 32) - case $(uname -m) in - aarch* | arm*) - installIonCubeLoader_url="https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_armv7l.tar.gz" - ;; - *) - installIonCubeLoader_url="https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86.tar.gz" - ;; - esac - ;; - *) - case $(uname -m) in - aarch64 | arm64 | armv8) - installIonCubeLoader_url="https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_aarch64.tar.gz" - ;; - *) - installIonCubeLoader_url="https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz" - ;; - esac - ;; - esac - printf 'Downloading ionCube Loader... ' - installIonCubeLoader_dir="$(getPackageSource $installIonCubeLoader_url)" - echo 'done.' - installIonCubeLoader_so=$(php -r "printf('ioncube_loader_lin_%s.%s%s.so', PHP_MAJOR_VERSION, PHP_MINOR_VERSION, ZEND_THREAD_SAFE ? '_ts' : '');") - cp "$installIonCubeLoader_dir/$installIonCubeLoader_so" "$(getPHPExtensionsDir)/ioncube_loader.so" -} - -# Install SourceGuardian Loader -installSourceGuardian() { - # See https://www.sourceguardian.com/loaders.html - case $PHP_BITS in - 32) - installSourceGuardian_url=https://www.sourceguardian.com/loaders/download/loaders.linux-i386.tar.gz - ;; - *) - case $(uname -m) in - aarch64 | arm64 | armv8) - installSourceGuardian_url=https://www.sourceguardian.com/loaders/download/loaders.linux-aarch64.tar.gz - ;; - *) - installSourceGuardian_url=https://www.sourceguardian.com/loaders/download/loaders.linux-x86_64.tar.gz - ;; - esac - ;; - esac - printf 'Downloading SourceGuardian... ' - installSourceGuardian_dir="$(getPackageSource $installSourceGuardian_url)" - printf 'done (version: %s)\n' "$(cat "$installSourceGuardian_dir/version")" - for installSourceGuardian_phpv in $PHP_MAJDOTMINDOTPAT_VERSION $PHP_MAJDOTMIN_VERSION; do - installSourceGuardian_file="$installSourceGuardian_dir/ixed.$PHP_MAJDOTMIN_VERSION" - if test $PHP_THREADSAFE -eq 1; then - installSourceGuardian_file="${installSourceGuardian_file}ts" - fi - installSourceGuardian_file="${installSourceGuardian_file}.lin" - if test -f "$installSourceGuardian_file"; then - mv "$installSourceGuardian_file" "$(getPHPExtensionsDir)/sourceguardian.so" - return - fi - done - printf 'Unable to find a SourceGuardian compatible with PHP %s or PHP %s.\nAvailable SourceGuardian versions:\n' "$PHP_MAJDOTMINDOTPAT_VERSION" "$PHP_MAJDOTMIN_VERSION" >&2 - ls -1 "$installSourceGuardian_dir" | grep -E '^ixed\..*\.lin$' | sed -E 's/^[^0-9]+([0-9]+(\.[0-9]+)*).*$/\1/' | sort | uniq >&2 - exit 1 -} - -# Install Cargo (if not yet installed) -installCargo() { - if command -v cargo >/dev/null; then - return - fi - printf '# Installing cargo\n' - case "$DISTRO" in - alpine) - # see https://github.com/hyperledger/indy-vdr/issues/69#issuecomment-998104850 - export RUSTFLAGS='-C target-feature=-crt-static' - ;; - esac - curl https://sh.rustup.rs -sSf | sh -s -- -y -q - . "$HOME/.cargo/env" - if test -z "${IPE_UNINSTALL_CARGO:-}"; then - IPE_UNINSTALL_CARGO=y - fi -} - -installNewRelic() { - printf '# Installing newrelic\n' - installNewRelic_search='\bnewrelic-php[0-9.]*-[0-9]+(\.[0-9]+)*-linux' - case "$DISTRO" in - alpine) - installNewRelic_search="$installNewRelic_search-musl" - ;; - esac - installNewRelic_file="$(curl -sSLf -o- https://download.newrelic.com/php_agent/release/ | sed -E 's/<[^>]*>//g' | grep -Eo "$installNewRelic_search.tar.gz" | sort | head -1)" - installNewRelic_url="https://download.newrelic.com/php_agent/release/$installNewRelic_file" - installNewRelic_src="$(getPackageSource "$installNewRelic_url")" - cd -- "$installNewRelic_src" - NR_INSTALL_USE_CP_NOT_LN=1 NR_INSTALL_SILENT=1 ./newrelic-install install - case "${IPE_NEWRELIC_DAEMON:-}" in - 1 | y* | Y*) - NR_INSTALL_USE_CP_NOT_LN=1 NR_INSTALL_SILENT=1 ./newrelic-install install_daemon - ;; - esac - cd - >/dev/null - cat <&2 - fi - if test -n "$(getModuleSourceCodePath "$1")"; then - printf '### WARNING the module "%s" is bundled with PHP, you can NOT specify a source code path for it\n' "$1" >&2 - fi - case "$1" in - dba) - if test -e /usr/lib/$TARGET_TRIPLET/libdb-5.3.so && ! test -e /usr/lib/libdb-5.3.so; then - ln -s /usr/lib/$TARGET_TRIPLET/libdb-5.3.so /usr/lib/ - fi - if test $PHP_MAJMIN_VERSION -le 505; then - docker-php-source extract - patch /usr/src/php/ext/dba/config.m4 </dev/null - fi - ;; - ftp) - docker-php-ext-configure ftp --with-openssl-dir=/usr - ;; - gd) - if test $PHP_MAJMIN_VERSION -le 506; then - docker-php-ext-configure gd --with-gd --with-jpeg-dir --with-png-dir --with-zlib-dir --with-xpm-dir --with-freetype-dir --enable-gd-native-ttf --with-vpx-dir - elif test $PHP_MAJMIN_VERSION -le 701; then - docker-php-ext-configure gd --with-gd --with-jpeg-dir --with-png-dir --with-zlib-dir --with-xpm-dir --with-freetype-dir --enable-gd-native-ttf --with-webp-dir - elif test $PHP_MAJMIN_VERSION -le 703; then - docker-php-ext-configure gd --with-gd --with-jpeg-dir --with-png-dir --with-zlib-dir --with-xpm-dir --with-freetype-dir --with-webp-dir - elif test $PHP_MAJMIN_VERSION -le 800; then - docker-php-ext-configure gd --enable-gd --with-webp --with-jpeg --with-xpm --with-freetype - else - installBundledModule_tmp=0 - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -ge 315; then - installBundledModule_tmp=1 - fi - ;; - debian) - if test $DISTRO_VERSION_NUMBER -ge 12; then - installBundledModule_tmp=1 - fi - ;; - esac - if test $installBundledModule_tmp -eq 0; then - case "${IPE_GD_WITHOUTAVIF:-}" in - 1 | y* | Y*) ;; - *) - if ! isLibaomInstalled; then - installLibaom - fi - if ! isLibdav1dInstalled; then - installLibdav1d - fi - if ! isLibyuvInstalled; then - installLibyuv - fi - if ! isLibavifInstalled; then - installLibavif - fi - ;; - esac - if isLibaomInstalled && isLibdav1dInstalled && isLibyuvInstalled && isLibavifInstalled; then - installBundledModule_tmp=1 - fi - fi - if test $installBundledModule_tmp -eq 1; then - docker-php-ext-configure gd --enable-gd --with-webp --with-jpeg --with-xpm --with-freetype --with-avif - else - docker-php-ext-configure gd --enable-gd --with-webp --with-jpeg --with-xpm --with-freetype - fi - fi - ;; - gmp) - if test $PHP_MAJMIN_VERSION -le 506; then - if ! test -f /usr/include/gmp.h; then - ln -s /usr/include/$TARGET_TRIPLET/gmp.h /usr/include/gmp.h - UNNEEDED_PACKAGE_LINKS="$UNNEEDED_PACKAGE_LINKS /usr/include/gmp.h" - fi - fi - ;; - imap) - case "$DISTRO_VERSION" in - debian@9) - installBundledModule_tmp="$(pwd)" - cd /tmp - apt-get download $IPE_APTGET_INSTALLOPTIONS libc-client2007e-dev - dpkg -i --ignore-depends=libssl-dev libc-client2007e-dev* - rm libc-client2007e-dev* - cd "$installBundledModule_tmp" - ;; - esac - PHP_OPENSSL=yes docker-php-ext-configure imap --with-kerberos --with-imap-ssl - ;; - interbase | pdo_firebird) - case "$DISTRO" in - alpine) - if ! test -d /tmp/src/firebird; then - mv "$(getPackageSource https://github.com/FirebirdSQL/firebird/releases/download/R2_5_9/Firebird-2.5.9.27139-0.tar.bz2)" /tmp/src/firebird - cd /tmp/src/firebird - # Patch rwlock.h (this has been fixed in later release of firebird 3.x) - sed -i '194s/.*/#if 0/' src/common/classes/rwlock.h - ./configure --with-system-icu - # -j option can't be used: make targets must be compiled sequentially - make -s btyacc_binary gpre_boot libfbstatic libfbclient - cp gen/firebird/lib/libfbclient.so /usr/lib/ - ln -s /usr/lib/libfbclient.so /usr/lib/libfbclient.so.2 - cd - >/dev/null - fi - CFLAGS='-I/tmp/src/firebird/src/jrd -I/tmp/src/firebird/src/include -I/tmp/src/firebird/src/include/gen' docker-php-ext-configure $1 - ;; - esac - ;; - ldap) - case "$DISTRO" in - debian) - docker-php-ext-configure ldap --with-libdir=lib/$TARGET_TRIPLET - ;; - esac - ;; - mssql | pdo_dblib) - if ! test -f /usr/lib/libsybdb.so; then - ln -s /usr/lib/$TARGET_TRIPLET/libsybdb.so /usr/lib/libsybdb.so - UNNEEDED_PACKAGE_LINKS="$UNNEEDED_PACKAGE_LINKS /usr/lib/libsybdb.so" - fi - ;; - odbc) - docker-php-source extract - cd /usr/src/php/ext/odbc - phpize - sed -ri 's@^ *test +"\$PHP_.*" *= *"no" *&& *PHP_.*=yes *$@#&@g' configure - ./configure --with-unixODBC=shared,/usr - cd - >/dev/null - ;; - oci8 | pdo_oci) - installOracleInstantClient - if test "$1" = oci8; then - docker-php-ext-configure "$1" "--with-oci8=instantclient,$ORACLE_INSTANTCLIENT_LIBPATH" - elif test "$1" = pdo_oci; then - docker-php-ext-configure "$1" "--with-pdo-oci=instantclient,$ORACLE_INSTANTCLIENT_LIBPATH" - fi - ;; - pdo_odbc) - docker-php-ext-configure pdo_odbc --with-pdo-odbc=unixODBC,/usr - ;; - snmp) - case "$DISTRO" in - alpine) - mkdir -p -m 0755 /var/lib/net-snmp/mib_indexes - ;; - esac - ;; - sockets) - case "$PHP_MAJDOTMINDOTPAT_VERSION" in - 8.0.15 | 8.1.2) - sed -i '70 i #ifndef _GNU_SOURCE' /usr/src/php/ext/sockets/config.m4 - sed -i '71 i #define _GNU_SOURCE' /usr/src/php/ext/sockets/config.m4 - sed -i '72 i #endif' /usr/src/php/ext/sockets/config.m4 - ;; - esac - ;; - sybase_ct) - docker-php-ext-configure sybase_ct --with-sybase-ct=/usr - ;; - tidy) - case "$DISTRO" in - alpine) - if ! test -f /usr/include/buffio.h; then - ln -s /usr/include/tidybuffio.h /usr/include/buffio.h - UNNEEDED_PACKAGE_LINKS="$UNNEEDED_PACKAGE_LINKS /usr/include/buffio.h" - fi - ;; - esac - ;; - zip) - if test $PHP_MAJMIN_VERSION -le 505; then - docker-php-ext-configure zip - elif test $PHP_MAJMIN_VERSION -le 703; then - docker-php-ext-configure zip --with-libzip - else - docker-php-ext-configure zip --with-zip - fi - ;; - esac - installBundledModule_errBefore="$(php -r 'return;' 2>&1 || true)" - docker-php-ext-install -j$(getProcessorCount) "$1" - case "$1" in - imap) - case "$DISTRO_VERSION" in - debian@9) - dpkg -r libc-client2007e-dev - ;; - esac - ;; - esac - case "${IPE_SKIP_CHECK:-}" in - 1 | y* | Y*) ;; - *) - php -r 'return;' >/dev/null 2>/dev/null || true - installBundledModule_errAfter="$(php -r 'return;' 2>&1 || true)" - if test "$installBundledModule_errAfter" != "$installBundledModule_errBefore"; then - printf 'PHP has problems after installing the "%s" extension:\n%s\n' "$1" "$installBundledModule_errAfter" >&2 - rm "$PHP_INI_DIR/conf.d/docker-php-ext-$1.ini" || true - return 1 - fi - ;; - esac -} - -# Fetch a tar.gz file, extract it and returns the path of the extracted folder. -# -# Arguments: -# $1: the URL of the file to be downloaded -# -# Output: -# The path of the extracted directory -getPackageSource() { - mkdir -p /tmp/src - getPackageSource_tempFile=$(mktemp -p /tmp/src) - curl -sSLf -o "$getPackageSource_tempFile" "$1" - getPackageSource_tempDir=$(mktemp -p /tmp/src -d) - cd "$getPackageSource_tempDir" - tar -xzf "$getPackageSource_tempFile" 2>/dev/null || tar -xf "$getPackageSource_tempFile" 2>/dev/null || ( - if command -v bsdtar >/dev/null; then - bsdtar -xf "$getPackageSource_tempFile" - else - unzip -q "$getPackageSource_tempFile" - fi - ) - cd - >/dev/null - unlink "$getPackageSource_tempFile" - getPackageSource_outDir='' - for getPackageSource_i in $(ls "$getPackageSource_tempDir"); do - if test -n "$getPackageSource_outDir" || test -f "$getPackageSource_tempDir/$getPackageSource_i"; then - getPackageSource_outDir='' - break - fi - getPackageSource_outDir="$getPackageSource_tempDir/$getPackageSource_i" - done - if test -n "$getPackageSource_outDir"; then - printf '%s' "$getPackageSource_outDir" - else - printf '%s' "$getPackageSource_tempDir" - fi -} - -# Install a PECL/remote PHP module given its handle -# -# Arguments: -# $1: the handle of the PHP module -installRemoteModule() { - installRemoteModule_module="$1" - printf '### INSTALLING REMOTE MODULE %s ###\n' "$installRemoteModule_module" - installRemoteModule_version="$(resolvePHPModuleVersion "$installRemoteModule_module")" - installRemoteModule_path="$(getModuleSourceCodePath "$installRemoteModule_module")" - rm -rf "$CONFIGURE_FILE" - installRemoteModule_manuallyInstalled=0 - installRemoteModule_cppflags='' - installRemoteModule_ini_basename='' - installRemoteModule_ini_extra='' - case "$installRemoteModule_module" in - amqp) - if test -z "$installRemoteModule_version"; then - if test "$DISTRO_VERSION" = debian@8; then - # in Debian Jessie we have librabbitmq version 0.5.2 - installRemoteModule_version=1.9.3 - elif test $PHP_MAJMIN_VERSION -le 505; then - installRemoteModule_version=1.9.4 - elif test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=1.11.0 - fi - fi - ;; - apcu) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=4.0.11 - fi - fi - ;; - apcu_bc) - # apcu_bc must be loaded after apcu - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - ;; - ast) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=1.0.16 - fi - fi - ;; - bitset) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.0.4 - fi - fi - ;; - blackfire) - case $(uname -m) in - i386 | i686 | x86) - installRemoteModule_tmp1=i386 - ;; - aarch64 | arm64 | armv8) - installRemoteModule_tmp1=arm64 - ;; - *) - installRemoteModule_tmp1=amd64 - ;; - esac - case $DISTRO in - alpine) - installRemoteModule_distro=alpine - ;; - *) - installRemoteModule_distro=linux - ;; - esac - installRemoteModule_tmp2=$(php -r 'echo PHP_MAJOR_VERSION . PHP_MINOR_VERSION;') - installRemoteModule_tmp="$(mktemp -p /tmp/src -d)" - cd "$installRemoteModule_tmp" - curl -sSLf --user-agent Docker https://blackfire.io/api/v1/releases/probe/php/$installRemoteModule_distro/$installRemoteModule_tmp1/$installRemoteModule_tmp2 | tar xz - mv blackfire-*.so $(getPHPExtensionsDir)/blackfire.so - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - installRemoteModule_ini_extra="$(printf '%sblackfire.agent_socket=tcp://blackfire:8307\n' "$installRemoteModule_ini_extra")" - ;; - cassandra) - installRemoteModule_src="$(getPackageSource https://github.com/nano-interactive/ext-cassandra/tarball/1cf12c5ce49ed43a2c449bee4b7b23ce02a37bf0)" - cd "$installRemoteModule_src/ext" - phpize - ./configure - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - ;; - cmark) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=1.1.0 - fi - fi - if ! test -e /usr/local/lib/libcmark.so && ! test -e /usr/local/lib64/libcmark.so && ! test -e /usr/lib/libcmark.so && ! test -e /usr/lib64/libcmark.so && ! test -e /lib/libcmark.so; then - if test $(compareVersions "$(cmake --version | head -n1 | sed -E 's/^.* //')" '3.7') -lt 0; then - installRemoteModule_tmp=0.29.0 - else - installRemoteModule_tmp=0.31.0 - fi - cd "$(getPackageSource https://github.com/commonmark/cmark/archive/$installRemoteModule_tmp.tar.gz)" - make -s -j$(getProcessorCount) cmake_build - make -s -j$(getProcessorCount) install - cd - >/dev/null - case "$DISTRO" in - alpine) - if test -e /usr/local/lib64/libcmark.so.$installRemoteModule_tmp && ! test -e /usr/local/lib/libcmark.so.$installRemoteModule_tmp; then - ln -s /usr/local/lib64/libcmark.so.$installRemoteModule_tmp /usr/local/lib/ - fi - ;; - *) - ldconfig || true - ;; - esac - fi - ;; - csv) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=0.3.1 - fi - fi - ;; - ddtrace) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=0.75.0 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 0.75.0) -ge 0; then - installCargo - fi - ;; - decimal) - case "$DISTRO" in - alpine) - if ! test -f /usr/local/lib/libmpdec.so; then - installLibMPDec - fi - ;; - debian) - if test $DISTRO_MAJMIN_VERSION -ge 1200; then - if test -z "$(ldconfig -p | grep -E '\slibmpdec.so\s')"; then - installLibMPDec - fi - fi - ;; - esac - ;; - ds) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 703; then - installRemoteModule_version=1.3.0 - elif test $PHP_MAJMIN_VERSION -lt 704; then - installRemoteModule_version=1.4.0 - fi - fi - ;; - ecma_intl) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=alpha - fi - ;; - event) - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 2.4.0) -ge 0; then - # Enable internal debugging in Event - addConfigureOption enable-event-debug no - # Enable sockets support in Event - if php --ri sockets >/dev/null 2>/dev/null; then - addConfigureOption enable-event-sockets yes - else - addConfigureOption enable-event-sockets no - fi - # libevent installation prefix - addConfigureOption with-event-libevent-dir /usr - # Include libevent's pthreads library and enable thread safety support in Event - addConfigureOption with-event-pthreads yes - # Include libevent protocol-specific functionality support including HTTP, DNS, and RPC - addConfigureOption with-event-extra yes - # Include libevent OpenSSL support - addConfigureOption with-event-openssl yes - # PHP Namespace for all Event classes - if test -n "${IPE_EVENT_NAMESPACE:-}"; then - addConfigureOption with-event-ns "$IPE_EVENT_NAMESPACE" - else - addConfigureOption with-event-ns no - fi - # openssl installation prefix - addConfigureOption with-openssl-dir yes - elif test $(compareVersions "$installRemoteModule_version" 1.7.6) -ge 0; then - # Enable internal debugging in Event - addConfigureOption enable-event-debug no - # Enable sockets support in Event - if php --ri sockets >/dev/null 2>/dev/null; then - addConfigureOption enable-event-sockets yes - else - addConfigureOption enable-event-sockets no - fi - # libevent installation prefix - addConfigureOption with-event-libevent-dir /usr - # Include libevent's pthreads library and enable thread safety support in Event - addConfigureOption with-event-pthreads yes - # Include libevent protocol-specific functionality support including HTTP, DNS, and RPC - addConfigureOption with-event-extra yes - # Include libevent OpenSSL support - addConfigureOption with-event-openssl yes - # openssl installation prefix - addConfigureOption with-openssl-dir no - elif test $(compareVersions "$installRemoteModule_version" 1.3.0) -ge 0; then - # Enable internal debugging in event - addConfigureOption enable-event-debug no - # libevent installation prefix - addConfigureOption with-event-libevent-dir /usr - # Include libevent's pthreads library and enable thread safety support in event - addConfigureOption with-event-pthreads yes - # Include libevent protocol-specific functionality support including HTTP, DNS, and RPC - addConfigureOption with-event-extra yes - # Include libevent OpenSSL support - addConfigureOption with-event-openssl yes - # openssl installation prefix - addConfigureOption with-openssl-dir no - fi - # event must be loaded after sockets - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - ;; - gearman) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.1.2 - fi - fi - case "$DISTRO" in - alpine) - if ! test -e /usr/local/include/libgearman/gearman.h || ! test -e /usr/local/lib/libgearman.so; then - installRemoteModule_src="$(getPackageSource https://github.com/gearman/gearmand/releases/download/1.1.21/gearmand-1.1.21.tar.gz)" - cd -- "$installRemoteModule_src" - ./configure - make -j$(getProcessorCount) install-binPROGRAMS - make -j$(getProcessorCount) install-nobase_includeHEADERS - cd - >/dev/null - fi - ;; - esac - ;; - geoip) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=beta - fi - ;; - geos) - if test -z "$installRemoteModule_path"; then - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=0def35611f773c951432f1f06a155471a5cb7611 - fi - installRemoteModule_src="$(getPackageSource https://git.osgeo.org/gitea/geos/php-geos/archive/$installRemoteModule_version.tar.gz)" - cd "$installRemoteModule_src" - ./autogen.sh - ./configure - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - fi - ;; - geospatial) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.2.1 - else - installRemoteModule_version=beta - fi - fi - ;; - gmagick) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.1.7RC3 - else - installRemoteModule_version=beta - fi - fi - ;; - grpc) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.33.1 - else - case "$DISTRO_VERSION" in - debian@8) - installRemoteModule_version=1.46.3 - ;; - alpine@3.7 | alpine@3.8 | debian@9) # With newer version: "This package requires GCC 7 or higher" - installRemoteModule_version=1.52.1 - ;; - esac - fi - fi - if test -z "$installRemoteModule_version" || test "$installRemoteModule_version" = 1.35.0; then - case "$DISTRO_VERSION" in - alpine@3.13) - installRemoteModule_cppflags='-Wno-maybe-uninitialized' - ;; - esac - fi - ;; - http) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.6.0 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=3.2.4 - fi - fi - if test $PHP_MAJMIN_VERSION -ge 700; then - if ! test -e /usr/local/lib/libidnkit.so; then - installRemoteModule_src="$(getPackageSource https://jprs.co.jp/idn/idnkit-2.3.tar.bz2)" - cd -- "$installRemoteModule_src" - ./configure - make -j$(getProcessorCount) install - cd - >/dev/null - fi - fi - # http must be loaded after raphf and propro - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - ;; - igbinary) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.0.8 - fi - fi - ;; - imap) - # Include Kerberos Support - addConfigureOption with-kerberos yes - # Include SSL Support - addConfigureOption with-imap-ssl yes - ;; - inotify) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.1.6 - fi - fi - ;; - ion) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=alpha - fi - if ! test -f /usr/local/lib/libionc.so || ! test -f /usr/local/include/ionc/ion.h; then - echo 'Installing ion-c... ' - installRemoteModule_src="$(mktemp -p /tmp/src -d)" - git clone -q -c advice.detachedHead=false --depth 1 --branch v1.1.2 https://github.com/amzn/ion-c.git "$installRemoteModule_src/ion" - ( - cd "$installRemoteModule_src/ion" - git submodule init -q - git submodule update -q - mkdir -p build - cd build - cmake -DCMAKE_BUILD_TYPE=Release .. -Wno-dev - make clean - make -j$(getProcessorCount) install - ) - rm -rf "$installRemoteModule_src" - fi - addConfigureOption with-ion "shared,/usr/local" - ;; - ioncube_loader) - installIonCubeLoader - installRemoteModule_manuallyInstalled=1 - ;; - jsmin) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=2.0.1 - fi - fi - ;; - jsonpath) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 800; then - installRemoteModule_version=1.0.1 - fi - fi - ;; - luasandbox) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 702; then - installRemoteModule_version=3.0.3 - fi - fi - ;; - lz4) - if test -z "$installRemoteModule_path"; then - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=0.4.3 - fi - installRemoteModule_src="$(getPackageSource https://github.com/kjdev/php-ext-lz4/archive/refs/tags/$installRemoteModule_version.tar.gz)" - cd "$installRemoteModule_src" - phpize - ./configure --with-lz4-includedir=/usr - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - fi - ;; - lzf) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 702; then - installRemoteModule_version=1.6.8 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" '1.5.0') -ge 0; then - # Sacrifice speed in favour of compression ratio? - case "${IPE_LZF_BETTERCOMPRESSION:-}" in - 1 | y* | Y*) - addConfigureOption 'enable-lzf-better-compression' 'yes' - ;; - *) - addConfigureOption 'enable-lzf-better-compression' 'no' - ;; - esac - fi - ;; - mailparse) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.1.6 - elif test $PHP_MAJMIN_VERSION -le 702; then - installRemoteModule_version=3.1.3 - fi - fi - ;; - memcache) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.2.7 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=4.0.5.2 - fi - fi - ;; - memcached) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.2.0 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - # Set the path to libmemcached install prefix - addConfigureOption 'with-libmemcached-dir' 'no' - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" '3.0.0') -ge 0; then - # Set the path to ZLIB install prefix - addConfigureOption 'with-zlib-dir' 'no' - # Use system FastLZ library - addConfigureOption 'with-system-fastlz' 'no' - # Enable memcached igbinary serializer support - if php --ri igbinary >/dev/null 2>/dev/null; then - addConfigureOption 'enable-memcached-igbinary' 'yes' - else - addConfigureOption 'enable-memcached-igbinary' 'no' - fi - # Enable memcached msgpack serializer support - if php --ri msgpack >/dev/null 2>/dev/null; then - addConfigureOption 'enable-memcached-msgpack' 'yes' - else - addConfigureOption 'enable-memcached-msgpack' 'no' - fi - # Enable memcached json serializer support - addConfigureOption 'enable-memcached-json' 'yes' - # Enable memcached protocol support - addConfigureOption 'enable-memcached-protocol' 'no' # https://github.com/php-memcached-dev/php-memcached/issues/418#issuecomment-449587972 - # Enable memcached sasl support - addConfigureOption 'enable-memcached-sasl' 'yes' - # Enable memcached session handler support - addConfigureOption 'enable-memcached-session' 'yes' - fi - # memcached must be loaded after msgpack - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - ;; - memprof) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.0.0 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=2.1.0 - fi - fi - ;; - mongo) - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" '1.5.0') -ge 0; then - # Build with Cyrus SASL (MongoDB Enterprise Authentication) support? - addConfigureOption '-with-mongo-sasl' 'yes' - fi - ;; - mongodb) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 505; then - installRemoteModule_version=1.5.5 - elif test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.7.5 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=1.9.2 - elif test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=1.11.1 - elif test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=1.16.2 - fi - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 1.17.0) -ge 0; then - # Enable developer flags? (yes/no) - addConfigureOption enable-mongodb-developer-flags no - # Enable code coverage? (yes/no) - addConfigureOption enable-mongodb-coverage no - # Use system libraries for libbson, libmongoc, and libmongocrypt? (yes/no) - addConfigureOption with-mongodb-system-libs no - # Enable client-side encryption? (auto/yes/no) - addConfigureOption with-mongodb-client-side-encryption yes - # Enable Snappy for compression? (auto/yes/no) - addConfigureOption with-mongodb-snappy yes - # Enable zlib for compression? (auto/system/bundled/no) - addConfigureOption with-mongodb-zlib yes - # Enable zstd for compression? (auto/yes/no) - addConfigureOption with-mongodb-zstd yes - # Enable SASL for Kerberos authentication? (auto/cyrus/no) - addConfigureOption with-mongodb-sasl yes - # Enable crypto and TLS? (auto/openssl/libressl/darwin/no) - addConfigureOption with-mongodb-ssl yes - # Use system crypto profile (OpenSSL only)? (yes/no) - addConfigureOption enable-mongodb-crypto-system-profile yes - # Use bundled or system utf8proc for SCRAM-SHA-256 SASLprep? (bundled/system) - addConfigureOption with-mongodb-utf8proc bundled - fi - ;; - mosquitto) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=beta - fi - ;; - msgpack) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.5.7 - fi - fi - ;; - newrelic) - installNewRelic - installRemoteModule_manuallyInstalled=2 - ;; - oauth) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.2.3 - fi - fi - ;; - oci8 | pdo_oci) - installOracleInstantClient - if test "$installRemoteModule_module" = oci8; then - addConfigureOption with-oci8 "instantclient,$ORACLE_INSTANTCLIENT_LIBPATH" - elif test "$installRemoteModule_module" = pdo_oci; then - addConfigureOption with-pdo-oci "instantclient,$ORACLE_INSTANTCLIENT_LIBPATH" - fi - ;; - opencensus) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=alpha - fi - ;; - openswoole) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 704; then - installRemoteModule_version=4.10.0 - elif test $PHP_MAJMIN_VERSION -lt 801; then - installRemoteModule_version=22.0.0 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if php --ri sockets >/dev/null 2>/dev/null; then - installRemoteModule_sockets=yes - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - else - installRemoteModule_sockets=no - fi - installRemoteModule_openssl=yes - if test -n "$installRemoteModule_version" && test $(compareVersions "$installRemoteModule_version" 22.1.2) -ge 0; then - # enable coroutine sockets? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 protocol? - addConfigureOption enable-http2 yes - # enable coroutine mysqlnd? - addConfigureOption enable-mysqlnd yes - # enable coroutine curl? - addConfigureOption enable-hook-curl yes - # enable coroutine postgres? - addConfigureOption with-postgres yes - elif test $(compareVersions "$installRemoteModule_version" 22.1.1) -ge 0; then - # enable c-ares support? - addConfigureOption enable-cares yes - # enable coroutine sockets? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 protocol? - addConfigureOption enable-http2 yes - # enable coroutine mysqlnd? - addConfigureOption enable-mysqlnd yes - # enable coroutine curl? - addConfigureOption enable-hook-curl yes - # enable coroutine postgres? - addConfigureOption with-postgres yes - elif test $(compareVersions "$installRemoteModule_version" 22.1.0) -ge 0; then - # enable coroutine sockets? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 protocol? - addConfigureOption enable-http2 yes - # enable coroutine mysqlnd? - addConfigureOption enable-mysqlnd yes - # enable coroutine curl? - addConfigureOption enable-hook-curl yes - # enable coroutine postgres? - addConfigureOption with-postgres yes - elif test $(compareVersions "$installRemoteModule_version" 22.0.0) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable hook curl support? - addConfigureOption enable-hook-curl yes - # enable postgres support? - addConfigureOption with-postgres yes - elif test $(compareVersions "$installRemoteModule_version" 4.8.0) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable json support? - addConfigureOption enable-swoole-json yes - # enable curl support? - addConfigureOption enable-swoole-curl yes - # enable postgres support? - addConfigureOption with-postgres yes - else - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable json support? - addConfigureOption enable-swoole-json yes - # enable curl support? - addConfigureOption enable-swoole-curl yes - fi - ;; - parallel) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=0.8.3 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=1.1.4 - fi - fi - ;; - parle) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 704; then - installRemoteModule_version=0.8.3 - else - installRemoteModule_version=beta - fi - fi - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 0.8.4) -ge 0; then - # Enable internal UTF-32 support in parle - addConfigureOption enable-parle-utf32 yes - fi - ;; - pcov) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=0.9.0 - fi - fi - ;; - php_trie) - if ! test -f /usr/local/include/hat-trie/include/tsl/htrie_map.h; then - installRemoteModule_src="$(getPackageSource https://codeload.github.com/Tessil/hat-trie/tar.gz/v0.6.0)" - mkdir -p /usr/local/include/hat-trie - mv "$installRemoteModule_src/include" /usr/local/include/hat-trie - fi - ;; - pq) - # pq must be loaded after raphf - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - ;; - propro) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.0.2 - fi - fi - ;; - protobuf) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=3.12.4 - elif test $PHP_MAJMIN_VERSION -lt 800; then - installRemoteModule_version=3.24.4 - elif test $PHP_MAJMIN_VERSION -lt 801; then - installRemoteModule_version=3.25.3 - fi - fi - ;; - pthreads) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.0.10 - fi - fi - ;; - raphf) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.1.2 - fi - fi - ;; - rdkafka) - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version"; then - installRemoteModule_version1='' - if test $PHP_MAJMIN_VERSION -le 505; then - installRemoteModule_version1=3.0.5 - elif test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version1=4.1.2 - fi - installRemoteModule_version2='' - case "$DISTRO" in - alpine) - installRemoteModule_tmp='librdkafka' - ;; - debian) - installRemoteModule_tmp='librdkafka*' - ;; - *) - installRemoteModule_tmp='' - ;; - esac - if test -n "$installRemoteModule_tmp"; then - installRemoteModule_tmp="$(getInstalledPackageVersion "$installRemoteModule_tmp")" - if test -n "$installRemoteModule_tmp" && test $(compareVersions "$installRemoteModule_tmp" '0.11.0') -lt 0; then - installRemoteModule_version2=3.1.3 - fi - fi - if test -z "$installRemoteModule_version1" || test -z "$installRemoteModule_version2"; then - installRemoteModule_version="$installRemoteModule_version1$installRemoteModule_version2" - elif test $(compareVersions "$installRemoteModule_version1" "$installRemoteModule_version2") -le 0; then - installRemoteModule_version="$installRemoteModule_version1" - else - installRemoteModule_version="$installRemoteModule_version2" - fi - fi - ;; - redis) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=4.3.0 - elif test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=5.3.7 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - # Enable igbinary serializer support? - if php --ri igbinary >/dev/null 2>/dev/null; then - addConfigureOption enable-redis-igbinary yes - else - addConfigureOption enable-redis-igbinary no - fi - # Enable lzf compression support? - addConfigureOption enable-redis-lzf yes - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 5.0.0) -ge 0; then - if ! test -e /usr/include/zstd.h || ! test -e /usr/lib/libzstd.so -o -e "/usr/lib/$TARGET_TRIPLET/libzstd.so"; then - installRemoteModule_zstdVersion=1.4.4 - installRemoteModule_zstdVersionMajor=$(echo $installRemoteModule_zstdVersion | cut -d. -f1) - rm -rf /tmp/src/zstd - mv "$(getPackageSource https://github.com/facebook/zstd/releases/download/v$installRemoteModule_zstdVersion/zstd-$installRemoteModule_zstdVersion.tar.gz)" /tmp/src/zstd - cd /tmp/src/zstd - make V=0 -j$(getProcessorCount) lib - cp -f lib/libzstd.so "/usr/lib/$TARGET_TRIPLET/libzstd.so.$installRemoteModule_zstdVersion" - ln -sf "/usr/lib/$TARGET_TRIPLET/libzstd.so.$installRemoteModule_zstdVersion" "/usr/lib/$TARGET_TRIPLET/libzstd.so.$installRemoteModule_zstdVersionMajor" - ln -sf "/usr/lib/$TARGET_TRIPLET/libzstd.so.$installRemoteModule_zstdVersion" "/usr/lib/$TARGET_TRIPLET/libzstd.so" - ln -sf /tmp/src/zstd/lib/zstd.h /usr/include/zstd.h - UNNEEDED_PACKAGE_LINKS="$UNNEEDED_PACKAGE_LINKS /usr/include/zstd.h" - cd - >/dev/null - fi - # Enable zstd compression support? - addConfigureOption enable-redis-zstd yes - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 6.0.0) -ge 0; then - # Enable msgpack serializer support? - if php --ri msgpack >/dev/null 2>/dev/null; then - addConfigureOption enable-redis-msgpack yes - else - addConfigureOption enable-redis-msgpack no - fi - # Enable lz4 compression? - addConfigureOption enable-redis-lz4 yes - # Use system liblz4? - addConfigureOption with-liblz4 yes - fi - fi - ;; - relay) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version="$(curl -sSLf https://builds.r2.relay.so/meta/latest)" - installRemoteModule_version="${installRemoteModule_version#v}" - fi - case $(uname -m) in - aarch64 | arm64 | armv8) - installRemoteModule_hardware=aarch64 - ;; - *) - installRemoteModule_hardware=x86-64 - ;; - esac - installRemoteModule_distro="$DISTRO" - installRemoteModule_flags='' - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -lt 317; then - installRemoteModule_distro=alpine3.9 - else - installRemoteModule_distro=alpine3.17 - fi - ;; - debian) - case "$(dpkg -l 'libssl*' | grep -E '^ii ' | cut -d' ' -f3)" in - libssl3*) - installRemoteModule_flags=+libssl3 - ;; - esac - ;; - esac - # See https://relay.so/builds - installRemoteModule_url="https://builds.r2.relay.so/v${installRemoteModule_version}/relay-v${installRemoteModule_version}-php${PHP_MAJDOTMIN_VERSION}-${installRemoteModule_distro}-${installRemoteModule_hardware}${installRemoteModule_flags}.tar.gz" - printf 'Downloading relay v%s (%s) from %s... ' "$installRemoteModule_version" "$installRemoteModule_hardware" "$installRemoteModule_url" - installRemoteModule_src="$(getPackageSource $installRemoteModule_url)" - echo 'done.' - cp -- "$installRemoteModule_src/relay-pkg.so" "$PHP_EXTDIR/relay.so" - sed -i "s/00000000-0000-0000-0000-000000000000/$(cat /proc/sys/kernel/random/uuid)/" "$PHP_EXTDIR/relay.so" - installRemoteModule_ini_extra="$(grep -vE '^[ \t]*extension[ \t]*=' $installRemoteModule_src/relay.ini)" - installRemoteModule_manuallyInstalled=1 - ;; - saxon) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -ge 800; then - installRemoteModule_version='12.4.2' - else - installRemoteModule_version='12.3' - fi - fi - installRemoteModule_majorVersion="${installRemoteModule_version%%.*}" - if test "$installRemoteModule_majorVersion" -ge 12; then - case $(uname -m) in - aarch64 | arm64 | armv8) - installRemoteModule_url=https://downloads.saxonica.com/SaxonC/EE/${installRemoteModule_majorVersion}/libsaxon-EEC-linux-aarch64-v${installRemoteModule_version}.zip - ;; - *) - installRemoteModule_url=https://downloads.saxonica.com/SaxonC/EE/${installRemoteModule_majorVersion}/libsaxon-EEC-linux-x86_64-v${installRemoteModule_version}.zip - ;; - esac - else - installRemoteModule_url=https://downloads.saxonica.com/SaxonC/EE/${installRemoteModule_majorVersion}/libsaxon-EEC-setup64-v${installRemoteModule_version}.zip - fi - installRemoteModule_dir="$(getPackageSource $installRemoteModule_url)" - if ! test -f /usr/lib/libsaxon-*.so; then - if test "$installRemoteModule_majorVersion" -ge 12; then - cp $installRemoteModule_dir/libs/nix/*.so /usr/lib/ - else - cp $installRemoteModule_dir/*.so /usr/lib/ - fi - ldconfig || true - fi - cd "$installRemoteModule_dir/Saxon.C.API" - phpize - ./configure --enable-saxon - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - ;; - seasclick) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.1.0 - fi - fi - ;; - snappy) - if test -z "$installRemoteModule_path"; then - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=0.2.1 - fi - installRemoteModule_src="$(getPackageSource https://github.com/kjdev/php-ext-snappy/archive/refs/tags/$installRemoteModule_version.tar.gz)" - cd "$installRemoteModule_src" - phpize - ./configure --with-snappy-includedir=/usr - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - fi - ;; - snuffleupagus) - if test -z "$installRemoteModule_path"; then - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=0.9.0 - else - installRemoteModule_version=0.10.0 - fi - fi - installRemoteModule_src="$(getPackageSource https://codeload.github.com/jvoisin/snuffleupagus/tar.gz/v$installRemoteModule_version)" - cd "$installRemoteModule_src/src" - phpize - ./configure --enable-snuffleupagus - make -j$(getProcessorCount) install - cd - >/dev/null - cp -a "$installRemoteModule_src/config/default.rules" "$PHP_INI_DIR/conf.d/snuffleupagus.rules" - if test $(compareVersions "$installRemoteModule_version" 0.8.0) -ge 0; then - printf '\n# Disable "PHP version is not officially maintained anymore" message\nsp.global.show_old_php_warning.disable();\n' >>"$PHP_INI_DIR/conf.d/snuffleupagus.rules" - fi - else - if test -f "$installRemoteModule_path/config/default.rules"; then - cp -a "$installRemoteModule_path/config/default.rules" "$PHP_INI_DIR/conf.d/snuffleupagus.rules" - fi - fi - installRemoteModule_ini_extra="$(printf '%ssp.configuration_file=%s\n' "$installRemoteModule_ini_extra" "$PHP_INI_DIR/conf.d/snuffleupagus.rules")" - installRemoteModule_manuallyInstalled=1 - ;; - sodium | libsodium) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=1.0.7 - fi - fi - ;; - solr) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=2.4.0 - elif test $PHP_MAJMIN_VERSION -lt 704; then - installRemoteModule_version=2.6.0 - fi - fi - ;; - sourceguardian) - installSourceGuardian - installRemoteModule_manuallyInstalled=1 - ;; - spx) - if test -z "$installRemoteModule_path"; then - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=v0.4.15 - fi - if test "${installRemoteModule_version%.*}" = "$installRemoteModule_version"; then - installRemoteModule_displayVersion="$installRemoteModule_version" - else - installRemoteModule_displayVersion="git--master-$installRemoteModule_version" - fi - installRemoteModule_src="$(getPackageSource https://codeload.github.com/NoiseByNorthwest/php-spx/tar.gz/$installRemoteModule_version)" - cd -- "$installRemoteModule_src" - phpize - ./configure - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - fi - ;; - sqlsrv | pdo_sqlsrv) - isMicrosoftSqlServerODBCInstalled || installMicrosoftSqlServerODBC - if test -z "$installRemoteModule_version"; then - # https://docs.microsoft.com/it-it/sql/connect/php/system-requirements-for-the-php-sql-driver?view=sql-server-2017 - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=3.0.1 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=5.3.0 - elif test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=5.6.1 - elif test $PHP_MAJMIN_VERSION -le 702; then - installRemoteModule_version=5.8.1 - elif test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=5.9.0 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=5.10.1 - elif test $PHP_MAJMIN_VERSION -le 800; then - installRemoteModule_version=5.11.1 - fi - fi - ;; - ssh2) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.13 - fi - fi - ;; - stomp) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.0.9 - fi - fi - if test "$DISTRO" = debian; then - addConfigureOption with-openssl-dir yes - else - addConfigureOption with-openssl-dir /usr - fi - ;; - swoole) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 502; then - installRemoteModule_version=1.6.10 - elif test $PHP_MAJMIN_VERSION -le 504; then - installRemoteModule_version=2.0.4 - elif test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.0.11 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=4.3.6 - elif test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=4.5.10 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=4.8.11 - elif test $PHP_BITS -eq 32; then - # See https://github.com/swoole/swoole-src/issues/5198#issuecomment-1820162178 - installRemoteModule_version="$(resolvePHPModuleVersion "$installRemoteModule_module" '^5.0')" - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if php --ri sockets >/dev/null 2>/dev/null; then - installRemoteModule_sockets=yes - else - installRemoteModule_sockets=no - fi - installRemoteModule_openssl=yes - case "$DISTRO_VERSION" in - alpine@3.7 | alpine@3.8) - if test -n "$installRemoteModule_version" && test $(compareVersions "$installRemoteModule_version" 4.6.0) -lt 0; then - # see https://github.com/swoole/swoole-src/issues/3934 - installRemoteModule_openssl=no - fi - ;; - esac - if test $PHP_MAJMIN_VERSION -eq 803; then - # see https://github.com/swoole/docker-swoole/issues/45 - installRemoteModule_curl=no - else - installRemoteModule_curl=yes - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 5.0.1) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - # enable cares support? - addConfigureOption enable-cares yes - # enable brotli support? - addConfigureOption enable-brotli yes - elif test $(compareVersions "$installRemoteModule_version" 5.0.0) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - # enable cares support? - addConfigureOption enable-cares yes - elif test $(compareVersions "$installRemoteModule_version" 4.8.11) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable json support? - addConfigureOption enable-swoole-json yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - # enable cares support? - addConfigureOption enable-cares yes - elif test $(compareVersions "$installRemoteModule_version" 4.6.1) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable json support? - addConfigureOption enable-swoole-json yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - elif test $(compareVersions "$installRemoteModule_version" 4.4.0) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - elif test $(compareVersions "$installRemoteModule_version" 4.2.11) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable postgresql coroutine client support? - addConfigureOption enable-coroutine-postgresql yes - elif test $(compareVersions "$installRemoteModule_version" 4.2.7) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable postgresql coroutine client support? - addConfigureOption enable-coroutine-postgresql yes - # enable kernel debug/trace log? (it will degrade performance) - addConfigureOption enable-debug-log no - elif test $(compareVersions "$installRemoteModule_version" 4.2.6) -ge 0; then - # enable debug/trace log support? - addConfigureOption enable-debug-log no - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable postgresql coroutine client support? - addConfigureOption enable-coroutine-postgresql yes - elif test $(compareVersions "$installRemoteModule_version" 4.2.0) -ge 0; then - # enable debug/trace log support? - addConfigureOption enable-debug-log no - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable async-redis support? - addConfigureOption enable-async-redis yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable postgresql coroutine client support? - addConfigureOption enable-coroutine-postgresql yes - elif test $(compareVersions "$installRemoteModule_version" 2.1.2) -ge 0; then - # enable debug/trace log support? - addConfigureOption enable-swoole-debug no - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable async-redis support? - addConfigureOption enable-async-redis yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable postgresql coroutine client support? - addConfigureOption enable-coroutine-postgresql yes - elif test $(compareVersions "$installRemoteModule_version" 1.10.4) -ge 0 && test $(compareVersions "$installRemoteModule_version" 1.10.5) -le 0; then - # enable debug/trace log support? - addConfigureOption enable-swoole-debug no - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable async-redis support? - addConfigureOption enable-async-redis yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - fi - ;; - tdlib) - if ! test -f /usr/lib/libphpcpp.so || ! test -f /usr/include/phpcpp.h; then - if test $PHP_MAJMIN_VERSION -le 701; then - cd "$(getPackageSource https://codeload.github.com/CopernicaMarketingSoftware/PHP-CPP/tar.gz/v2.1.4)" - elif test $PHP_MAJMIN_VERSION -le 703; then - cd "$(getPackageSource https://codeload.github.com/CopernicaMarketingSoftware/PHP-CPP/tar.gz/v2.2.0)" - else - cd "$(getPackageSource https://codeload.github.com/CopernicaMarketingSoftware/PHP-CPP/tar.gz/444d1f90cf6b7f3cb5178fa0d0b5ab441b0389d0)" - fi - make -j$(getProcessorCount) - make install - cd - >/dev/null - fi - if test -z "$installRemoteModule_path"; then - installRemoteModule_tmp="$(mktemp -p /tmp/src -d)" - git clone --depth=1 --recurse-submodules https://github.com/yaroslavche/phptdlib.git "$installRemoteModule_tmp" - mkdir "$installRemoteModule_tmp/build" - cd "$installRemoteModule_tmp/build" - cmake -D USE_SHARED_PHPCPP:BOOL=ON .. - make - make install - cd - >/dev/null - rm "$PHP_INI_DIR/conf.d/tdlib.ini" - installRemoteModule_manuallyInstalled=1 - fi - ;; - tensor) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=2.2.3 - fi - fi - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -ge 315 && test $DISTRO_MAJMIN_VERSION -le 317; then - if test -e /usr/lib/liblapacke.so.3 && ! test -e /usr/lib/liblapacke.so; then - ln -s /usr/lib/liblapacke.so.3 /usr/lib/liblapacke.so - fi - fi - ;; - esac - ;; - tideways) - case "$DISTRO" in - alpine) - case $(uname -m) in - aarch64 | arm64 | armv8) - installRemoteModule_architecture=alpine-arm64 - ;; - *) - installRemoteModule_architecture=alpine-x86_64 - ;; - esac - ;; - debian) - case $(uname -m) in - aarch64 | arm64 | armv8) - installRemoteModule_architecture=arm64 - ;; - *) - installRemoteModule_architecture=x86_64 - ;; - esac - ;; - esac - installRemoteModule_url="$(curl -sSLf -o - https://tideways.com/profiler/downloads | grep -Eo "\"[^\"]+/tideways-php-([0-9]+\.[0-9]+\.[0-9]+)-$installRemoteModule_architecture.tar.gz\"" | cut -d'"' -f2)" - if test -z "$installRemoteModule_url"; then - echo 'Failed to find the tideways tarball to be downloaded' - exit 1 - fi - printf 'Downloading tideways from %s\n' "$installRemoteModule_url" - installRemoteModule_src="$(getPackageSource $installRemoteModule_url)" - if test -d "$installRemoteModule_src/dist"; then - installRemoteModule_src="$installRemoteModule_src/dist" - fi - installRemoteModule_src="$installRemoteModule_src/tideways-php" - case "$DISTRO" in - alpine) - installRemoteModule_src="$installRemoteModule_src-alpine" - ;; - esac - installRemoteModule_src="$installRemoteModule_src-$PHP_MAJDOTMIN_VERSION" - if test $PHP_THREADSAFE -eq 1; then - installRemoteModule_src="$installRemoteModule_src-zts" - fi - installRemoteModule_src="$installRemoteModule_src.so" - if ! test -f "$installRemoteModule_src"; then - echo 'tideways does not support the current environment' >&2 - exit 1 - fi - mv "$installRemoteModule_src" $(getPHPExtensionsDir)/tideways.so - installRemoteModule_manuallyInstalled=1 - ;; - uopz) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.0.7 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=5.0.2 - elif test $PHP_MAJMIN_VERSION -le 740; then - installRemoteModule_version=6.1.2 - fi - fi - ;; - uploadprogress) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=1.1.4 - fi - fi - ;; - uuid) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.0.5 - fi - fi - ;; - uv) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 800; then - installRemoteModule_version=0.2.4 - else - installRemoteModule_version=beta - fi - fi - ;; - vld) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=0.14.0 - else - installRemoteModule_version=beta - fi - fi - ;; - wikidiff2) - case "$DISTRO" in - alpine) - if ! isLibDatrieInstalled; then - installLibDatrie - fi - if ! isLibThaiInstalled; then - installLibThai - fi - ;; - esac - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 702; then - installRemoteModule_version=1.13.0 - else - installRemoteModule_version="$(git -c versionsort.suffix=- ls-remote --tags --refs --quiet --exit-code --sort=version:refname https://github.com/wikimedia/mediawiki-php-wikidiff2.git 'refs/tags/*.*.*' | tail -1 | cut -d/ -f3)" - fi - fi - installRemoteModule_src="$(getPackageSource "https://codeload.github.com/wikimedia/mediawiki-php-wikidiff2/tar.gz/refs/tags/$installRemoteModule_version")" - cd -- "$installRemoteModule_src" - phpize - ./configure - make -j$(getProcessorCount) - make install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - ;; - xdebug) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 500; then - installRemoteModule_version=2.0.5 - elif test $PHP_MAJMIN_VERSION -le 503; then - installRemoteModule_version=2.2.7 - elif test $PHP_MAJMIN_VERSION -le 504; then - installRemoteModule_version=2.4.1 - elif test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.5.5 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=2.6.1 - elif test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=2.9.8 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=3.1.6 - fi - fi - ;; - xdiff) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.5.2 - fi - fi - if ! test -f /usr/local/lib/libxdiff.* && ! test -f /usr/lib/libxdiff.* && ! test -f /usr/lib/x86_64*/libxdiff.*; then - installRemoteModule_src="$(getPackageSource https://raw.githubusercontent.com/mlocati/docker-php-extension-installer/assets/resources/libxdiff-0.23.tar.gz)" - cd -- "$installRemoteModule_src" - ./configure --disable-shared --disable-dependency-tracking --with-pic - make -j$(getProcessorCount) - make install - cd - >/dev/null - fi - ;; - xhprof) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.9.4 - fi - fi - ;; - xlswriter) - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 1.2.7) -ge 0; then - # enable reader supports? - addConfigureOption enable-reader yes - fi - ;; - xmlrpc) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=beta - fi - ;; - yac) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.9.2 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 2.2.0) -ge 0; then - # Enable igbinary serializer support - if php --ri igbinary >/dev/null 2>/dev/null; then - addConfigureOption enable-igbinary yes - else - addConfigureOption enable-igbinary no - fi - # Enable json serializer support - if php --ri json >/dev/null 2>/dev/null; then - addConfigureOption enable-json yes - else - addConfigureOption enable-json no - fi - # Enable msgpack serializer support - if php --ri msgpack >/dev/null 2>/dev/null; then - addConfigureOption enable-msgpack yes - else - addConfigureOption enable-msgpack no - fi - fi - ;; - yaml) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.3.1 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=2.0.4 - fi - fi - ;; - yar) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.2.5 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 1.2.4) -ge 0; then - # Enable Msgpack Supports - if php --ri msgpack >/dev/null 2>/dev/null; then - addConfigureOption enable-msgpack yes - else - addConfigureOption enable-msgpack no - fi - fi - ;; - zmq) - if test -z "$installRemoteModule_version"; then - installRemoteModule_src="$(getPackageSource https://github.com/zeromq/php-zmq/tarball/master)" - cd "$installRemoteModule_src" - phpize - ./configure - make -j$(getProcessorCount) - make install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - fi - ;; - zookeeper) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.5.0 - else - installRemoteModule_version=alpha - fi - fi - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - case "$DISTRO" in - alpine) - if ! test -f /usr/local/include/zookeeper/zookeeper.h; then - if test $(compareVersions "$installRemoteModule_version" 1.0.0) -lt 0; then - installRemoteModule_src="$(getPackageSource http://archive.apache.org/dist/zookeeper/zookeeper-3.5.9/apache-zookeeper-3.5.9.tar.gz)" - else - installRemoteModule_tmp="$(curl -sSLf https://downloads.apache.org/zookeeper/stable | sed -E 's/["<>]/\n/g' | grep -E '^(apache-)?zookeeper-[0-9]+\.[0-9]+\.[0-9]+\.(tar\.gz|tgz)$' | head -n1)" - if test -z "$installRemoteModule_tmp"; then - echo 'Failed to detect the zookeeper library URL' >&2 - exit 1 - fi - installRemoteModule_src="$(getPackageSource https://downloads.apache.org/zookeeper/stable/$installRemoteModule_tmp)" - fi - cd -- "$installRemoteModule_src" - if test -d ~/.m2; then - installRemoteModule_delm2=n - else - installRemoteModule_delm2=y - fi - mvn -pl zookeeper-jute compile - cd - >/dev/null - cd -- "$installRemoteModule_src/zookeeper-client/zookeeper-client-c" - autoreconf -if - ./configure --without-cppunit - make -j$(getProcessorCount) CFLAGS='-Wno-stringop-truncation -Wno-format-overflow' - make install - cd - >/dev/null - if test $installRemoteModule_delm2 = y; then - rm -rf ~/.m2 - fi - fi - ;; - esac - ;; - zstd) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.11.0 - fi - fi - ;; - esac - if test $installRemoteModule_manuallyInstalled -eq 0; then - if test -n "$installRemoteModule_path"; then - printf ' (installing version %s from %s)\n' "$installRemoteModule_version" "$installRemoteModule_path" - elif test -n "$installRemoteModule_version"; then - printf ' (installing version %s)\n' "$installRemoteModule_version" - fi - installPeclPackage "$installRemoteModule_module" "$installRemoteModule_version" "$installRemoteModule_cppflags" "$installRemoteModule_path" - fi - postProcessModule "$installRemoteModule_module" - if test $installRemoteModule_manuallyInstalled -lt 2; then - case "${IPE_SKIP_CHECK:-}" in - 1 | y* | Y*) ;; - *) - checkModuleWorking "$installRemoteModule_module" "$installRemoteModule_ini_basename" "$installRemoteModule_ini_extra" - ;; - esac - enablePhpExtension "$installRemoteModule_module" "$installRemoteModule_ini_basename" "$installRemoteModule_ini_extra" - fi -} - -# Check if a module/helper may be installed using the pecl archive -# -# Arguments: -# $1: the name of the module -# -# Return: -# 0: true -# 1: false -moduleMayUsePecl() { - case "$1" in - @composer | @fix_letsencrypt) - return 1 - ;; - blackfire | geos | ioncube_loader | snuffleupagus | sourceguardian | spx | tdlib | tideways) - return 1 - ;; - esac - if test -n "$(getModuleSourceCodePath "$1")"; then - return 1 - fi - if stringInList "$1" "$BUNDLED_MODULES"; then - return 1 - fi - return 0 -} - -# Configure the PECL package installer -# -# Updates: -# PHP_MODULES_TO_INSTALL -# Sets: -# USE_PICKLE 0: no, 1: yes (already downloaded), 2: yes (build it from source) -configureInstaller() { - USE_PICKLE=0 - if ! which pecl >/dev/null; then - for PHP_MODULE_TO_INSTALL in $PHP_MODULES_TO_INSTALL; do - if ! moduleMayUsePecl "$PHP_MODULE_TO_INSTALL"; then - continue - fi - if false && anyStringInList '' "$PHP_MODULES_TO_INSTALL"; then - USE_PICKLE=2 - else - curl -sSLf https://github.com/FriendsOfPHP/pickle/releases/latest/download/pickle.phar -o /tmp/pickle - chmod +x /tmp/pickle - USE_PICKLE=1 - fi - break - done - fi - if test $USE_PICKLE -eq 0; then - if test -z "$(pear config-get http_proxy)"; then - if test -n "${http_proxy:-}"; then - pear config-set http_proxy "$http_proxy" || true - elif test -n "${HTTP_PROXY:-}"; then - pear config-set http_proxy "$HTTP_PROXY" || true - fi - fi - pecl channel-update pecl.php.net || true - fi -} - -buildPickle() { - printf '### BUILDING PICKLE ###\n' - buildPickle_tempDir="$(mktemp -p /tmp/src -d)" - cd -- "$buildPickle_tempDir" - printf 'Downloading... ' - git clone --quiet --depth 1 https://github.com/FriendsOfPHP/pickle.git . - git tag 0.7.0 - printf 'done.\n' - printf 'Installing composer... ' - actuallyInstallComposer . composer '--1 --quiet' - printf 'done.\n' - printf 'Installing composer dependencies... ' - ./composer install --no-dev --no-progress --no-suggest --optimize-autoloader --ignore-platform-reqs --quiet --no-cache - printf 'done.\n' - printf 'Building... ' - php -d phar.readonly=0 box.phar build - mv pickle.phar /tmp/pickle - printf 'done.\n' - cd - >/dev/null -} - -# Add a configure option for the pecl/pickle install command -# -# Arguments: -# $1: the option name -# $2: the option value -addConfigureOption() { - if test $USE_PICKLE -eq 0; then - printf -- '%s\n' "$2" >>"$CONFIGURE_FILE" - else - printf -- '--%s=%s\n' "$1" "$2" >>"$CONFIGURE_FILE" - fi -} - -# Actually installs a PECL package -# -# Arguments: -# $1: the package to be installed -# $2: the package version to be installed (optional) -# $3: the value of the CPPFLAGS variable (optional) -# $4: the path of the local package to be installed (optional, downloaded from PECL if omitted/empty) -installPeclPackage() { - if ! test -f "$CONFIGURE_FILE"; then - printf '\n' >"$CONFIGURE_FILE" - fi - installPeclPackage_name="$(getPeclModuleName "$1")" - if test -z "${2:-}"; then - installPeclPackage_fullname="$installPeclPackage_name" - else - installPeclPackage_fullname="$installPeclPackage_name-$2" - fi - installPeclPackage_path="${4:-}" - if test -z "$installPeclPackage_path"; then - installPeclPackage_path="$installPeclPackage_fullname" - fi - if test $USE_PICKLE -eq 0; then - if test -n "${4:-}"; then - if test -f "$installPeclPackage_path/package2.xml"; then - installPeclPackage_path="$installPeclPackage_path/package2.xml" - else - installPeclPackage_path="$installPeclPackage_path/package.xml" - fi - fi - cat "$CONFIGURE_FILE" | MAKE="make -j$(getCompilationProcessorCount $1)" CPPFLAGS="${3:-}" pecl install "$installPeclPackage_path" - else - MAKEFLAGS="-j$(getCompilationProcessorCount $1)" CPPFLAGS="${3:-}" /tmp/pickle install --tmp-dir=/tmp/pickle.tmp --no-interaction --version-override='' --with-configure-options "$CONFIGURE_FILE" -- "$installPeclPackage_path" - fi -} - -# Check if a string is in a list of space-separated string -# -# Arguments: -# $1: the string to be checked -# $2: the string list -# -# Return: -# 0 (true): if the string is in the list -# 1 (false): if the string is not in the list -stringInList() { - for stringInList_listItem in $2; do - if test "$1" = "$stringInList_listItem"; then - return 0 - fi - done - return 1 -} - -# Check if at least one item in a list is in another list -# -# Arguments: -# $1: the space-separated list of items to be searched -# $2: the space-separated list of reference items -# -# Return: -# 0 (true): at least one of the items in $1 is in $2 -# 1 (false): otherwise -anyStringInList() { - for anyStringInList_item in $1; do - if stringInList "$anyStringInList_item" "$2"; then - return 0 - fi - done - return 1 -} - -# Remove a word from a space-separated list -# -# Arguments: -# $1: the word to be removed -# $2: the string list -# -# Output: -# The list without the word -removeStringFromList() { - removeStringFromList_result='' - for removeStringFromList_listItem in $2; do - if test "$1" != "$removeStringFromList_listItem"; then - if test -z "$removeStringFromList_result"; then - removeStringFromList_result="$removeStringFromList_listItem" - else - removeStringFromList_result="$removeStringFromList_result $removeStringFromList_listItem" - fi - fi - done - printf '%s' "$removeStringFromList_result" -} - -# Invoke apt-get update -# -# Set: -# IPE_APTGET_INSTALLOPTIONS -invokeAptGetUpdate() { - if test -n "${IPE_APTGETUPDATE_ALREADY:-}"; then - DEBIAN_FRONTEND=noninteractive apt-get update -q - return - fi - IPE_APTGET_INSTALLOPTIONS='' - invokeAptGetUpdate_fixdistro='' - if grep -q 'VERSION="8 (jessie)"' /etc/os-release; then - invokeAptGetUpdate_fixdistro=jessie - elif grep -q 'VERSION="9 (stretch)"' /etc/os-release; then - invokeAptGetUpdate_fixdistro=stretch - else - IPE_APTGETUPDATE_ALREADY=y - DEBIAN_FRONTEND=noninteractive apt-get update -q - return - fi - # See https://www.debian.org/distrib/archive.en.html for a list of mirrors - if test -z "${IPE_DEB_ARCHIVE:-}"; then - IPE_DEB_ARCHIVE=http://archive.kernel.org/debian-archive - fi - if test -z "${IPE_DEB_ARCHIVE_SECURITY:-}"; then - IPE_DEB_ARCHIVE_SECURITY=http://archive.kernel.org/debian-archive/debian-security - fi - sed -ri "s;^(\s*deb\s+http://(httpredir|deb).debian.org/debian\s+$invokeAptGetUpdate_fixdistro-updates\b.*);#\1;" /etc/apt/sources.list - sed -ri "s;^(\s*deb\s+)http://(httpredir|deb).debian.org;\1$IPE_DEB_ARCHIVE;" /etc/apt/sources.list - sed -ri "s;^(\s*deb\s+)http://security.debian.org/debian-security;\1$IPE_DEB_ARCHIVE_SECURITY;" /etc/apt/sources.list - sed -ri "s;^(\s*deb\s+)http://security.debian.org;\1$IPE_DEB_ARCHIVE_SECURITY;" /etc/apt/sources.list - invokeAptGetUpdate_tmp="$(mktemp)" - DEBIAN_FRONTEND=noninteractive apt-get update -q 2>"$invokeAptGetUpdate_tmp" - if test -s "$invokeAptGetUpdate_tmp"; then - cat "$invokeAptGetUpdate_tmp" >&2 - if grep -qE ' KEYEXPIRED [0-9]' "$invokeAptGetUpdate_tmp"; then - IPE_APTGET_INSTALLOPTIONS='-o APT::Get::AllowUnauthenticated=true' - echo '############' >&2 - echo '# WARNING! #' >&2 - echo '############' >&2 - echo 'apt packages will be installed without checking authenticity!' >&2 - fi - fi - rm "$invokeAptGetUpdate_tmp" - IPE_APTGETUPDATE_ALREADY=y -} - -# Fix the Let's Encrypt CA certificates on old distros -fixLetsEncrypt() { - printf '### FIXING LETS ENCRYPT CA CERTIFICATES ###\n' - case "$DISTRO_VERSION" in - alpine@3.7 | alpine@3.8) - printf -- '- old Alpine Linux detected: we should fix the certificates\n' - ;; - debian@8 | debian@9) - printf -- '- old Debian detected: we should fix the certificates\n' - if ! grep -q 'mozilla/ISRG_Root_X1.crt' /etc/ca-certificates.conf && grep -q 'mozilla/DST_Root_CA_X3.crt' /etc/ca-certificates.conf; then - printf -- '- old ca-certificates package detected\n' - fixCACerts_mustUpdate=1 - if test -d /var/lib/apt/lists; then - for fixCACerts_item in $(ls -1 /var/lib/apt/lists); do - case "$fixCACerts_item" in - partial | lock) ;; - *) - fixCACerts_mustUpdate=0 - break - ;; - esac - done - fi - if test $fixCACerts_mustUpdate -eq 1; then - printf -- '- refreshing the APT package list\n' - invokeAptGetUpdate - fi - printf -- '- installing newer ca-certificates package\n' - DEBIAN_FRONTEND=noninteractive apt-get install -qqy --no-install-recommends ${IPE_APTGET_INSTALLOPTIONS:-} ca-certificates - fi - ;; - *) - printf -- '- patch not required in this distro version\n' - return - ;; - esac - if grep -Eq '^mozilla/ISRG_Root_X1\.crt$' /etc/ca-certificates.conf && grep -Eq '^mozilla/DST_Root_CA_X3\.crt$' /etc/ca-certificates.conf; then - printf -- '- disabling the DST_Root_CA_X3 certificate\n' - sed -i '/^mozilla\/DST_Root_CA_X3/s/^/!/' /etc/ca-certificates.conf - printf -- '- refreshing the certificates\n' - update-ca-certificates -f - else - printf -- '- DST_Root_CA_X3 certificate not found or already disabled\n' - fi -} - -# Cleanup everything at the end of the execution -cleanup() { - if test "${IPE_UNINSTALL_CARGO:-}" = y; then - . "$HOME/.cargo/env" - rustup self uninstall -y - fi - if test -n "$UNNEEDED_PACKAGE_LINKS"; then - printf '### REMOVING UNNEEDED PACKAGE LINKS ###\n' - for cleanup_link in $UNNEEDED_PACKAGE_LINKS; do - if test -L "$cleanup_link"; then - rm -f "$cleanup_link" - fi - done - fi - case "$DISTRO" in - alpine) - if stringInList icu-libs "${PACKAGES_PERSISTENT_NEW:-}" && stringInList icu-data-en "${PACKAGES_PERSISTENT_NEW:-}"; then - apk del icu-data-en >/dev/null 2>&1 || true - fi - if test -n "$PACKAGES_VOLATILE"; then - printf '### REMOVING UNNEEDED PACKAGES ###\n' - apk del --purge $PACKAGES_VOLATILE - fi - ;; - debian) - if test -n "$PACKAGES_VOLATILE"; then - printf '### REMOVING UNNEEDED PACKAGES ###\n' - DEBIAN_FRONTEND=noninteractive apt-get remove --purge -y $PACKAGES_VOLATILE - fi - if test -n "$PACKAGES_PREVIOUS"; then - printf '### RESTORING PREVIOUSLY INSTALLED PACKAGES ###\n' - DEBIAN_FRONTEND=noninteractive apt-get install -qqy --no-install-recommends --no-upgrade $IPE_APTGET_INSTALLOPTIONS $PACKAGES_PREVIOUS - fi - ;; - esac - docker-php-source delete - rm -rf /tmp/src - rm -rf /tmp/pickle - rm -rf /tmp/pickle.tmp - rm -rf "$CONFIGURE_FILE" - case "${IPE_KEEP_SYSPKG_CACHE:-}" in - 1 | y* | Y*) ;; - *) - case "$DISTRO" in - alpine) - rm -rf /var/cache/apk/* - ;; - debian) - rm -rf /var/lib/apt/lists/* - ;; - esac - rm -rf /tmp/pear - ;; - esac -} - -resetIFS -mkdir -p /tmp/src -mkdir -p /tmp/pickle.tmp -IPE_ERRFLAG_FILE="$(mktemp -p /tmp/src)" -CONFIGURE_FILE=/tmp/configure-options -IPE_APK_FLAGS='' -setDistro -case "$DISTRO_VERSION" in - debian@8) - fixMaxOpenFiles || true - ;; -esac -setPHPVersionVariables -setPHPPreinstalledModules -case "$PHP_MAJMIN_VERSION" in - 505 | 506 | 700 | 701 | 702 | 703 | 704 | 800 | 801 | 802 | 803) ;; - *) - printf "### ERROR: Unsupported PHP version: %s.%s ###\n" $((PHP_MAJMIN_VERSION / 100)) $((PHP_MAJMIN_VERSION % 100)) - ;; -esac -UNNEEDED_PACKAGE_LINKS='' -processCommandArguments "$@" - -if test -z "$PHP_MODULES_TO_INSTALL"; then - exit 0 -fi - -if stringInList @fix_letsencrypt "$PHP_MODULES_TO_INSTALL"; then - # This must be the very first thing we do - fixLetsEncrypt -fi - -sortModulesToInstall - -docker-php-source extract -BUNDLED_MODULES="$(find /usr/src/php/ext -mindepth 2 -maxdepth 2 -type f -name 'config.m4' | xargs -n1 dirname | xargs -n1 basename | xargs)" -configureInstaller - -buildRequiredPackageLists $PHP_MODULES_TO_INSTALL -if test -n "$PACKAGES_PERSISTENT_PRE"; then - markPreinstalledPackagesAsUsed -fi -if test -n "$PACKAGES_PERSISTENT_NEW$PACKAGES_VOLATILE"; then - installRequiredPackages -fi -if test "$PHP_MODULES_TO_INSTALL" != '@composer'; then - setTargetTriplet -fi -if test $USE_PICKLE -gt 1; then - buildPickle -fi - -for PHP_MODULE_TO_INSTALL in $PHP_MODULES_TO_INSTALL; do - case "$PHP_MODULE_TO_INSTALL" in - @fix_letsencrypt) - # Already done: it must be the first thing we do - ;; - @composer) - installComposer - ;; - *) - if stringInList "$PHP_MODULE_TO_INSTALL" "$BUNDLED_MODULES"; then - installBundledModule "$PHP_MODULE_TO_INSTALL" - else - installRemoteModule "$PHP_MODULE_TO_INSTALL" - fi - ;; - esac -done -cleanup diff --git a/php5/5.5.38/build/php/extensions/install.sh b/php5/5.5.38/build/php/extensions/install.sh deleted file mode 100644 index a0c4956a6..000000000 --- a/php5/5.5.38/build/php/extensions/install.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -echo -echo "============================================" -echo "Install extensions from : install.sh" -echo "PHP version : ${PHP_VERSION}" -echo "Extra Extensions : ${PHP_EXTENSIONS}" -echo "Multicore Compilation : ${MC}" -echo "Container package url : ${CONTAINER_PACKAGE_URL}" -echo "Work directory : ${PWD}" -echo "============================================" -echo - -IFS=',' -for ext in $PHP_EXTENSIONS; do - echo "开始安装 $ext..." - install-php-extensions $ext - - if [ $? -eq 0 ]; then - echo "$ext 安装成功!" - else - echo "$ext 安装失败!" - fi -done -unset IFS diff --git a/php5/5.5.38/build/php/extensions/memcache-2.2.7.tgz b/php5/5.5.38/build/php/extensions/memcache-2.2.7.tgz deleted file mode 100644 index a3c453416..000000000 Binary files a/php5/5.5.38/build/php/extensions/memcache-2.2.7.tgz and /dev/null differ diff --git a/php5/5.5.38/build/php/extensions/mongodb-1.6.0.tgz b/php5/5.5.38/build/php/extensions/mongodb-1.6.0.tgz deleted file mode 100644 index eb98c8186..000000000 Binary files a/php5/5.5.38/build/php/extensions/mongodb-1.6.0.tgz and /dev/null differ diff --git a/php5/5.5.38/build/php/extensions/redis-4.3.0.tgz b/php5/5.5.38/build/php/extensions/redis-4.3.0.tgz deleted file mode 100644 index c4a9ffcfe..000000000 Binary files a/php5/5.5.38/build/php/extensions/redis-4.3.0.tgz and /dev/null differ diff --git a/php5/5.5.38/build/php/extensions/swoole-2.0.11.tgz b/php5/5.5.38/build/php/extensions/swoole-2.0.11.tgz deleted file mode 100644 index a155450ce..000000000 Binary files a/php5/5.5.38/build/php/extensions/swoole-2.0.11.tgz and /dev/null differ diff --git a/php5/5.5.38/build/php/extensions/xdebug-2.5.5.tgz b/php5/5.5.38/build/php/extensions/xdebug-2.5.5.tgz deleted file mode 100644 index d62c7ff63..000000000 Binary files a/php5/5.5.38/build/php/extensions/xdebug-2.5.5.tgz and /dev/null differ diff --git a/php5/5.5.38/build/php/extensions/xhprof-0.9.4.tgz b/php5/5.5.38/build/php/extensions/xhprof-0.9.4.tgz deleted file mode 100644 index 127117911..000000000 Binary files a/php5/5.5.38/build/php/extensions/xhprof-0.9.4.tgz and /dev/null differ diff --git a/php5/5.5.38/build/php/extensions/yaf-3.0.9.tgz b/php5/5.5.38/build/php/extensions/yaf-3.0.9.tgz deleted file mode 100644 index 492c1fdc3..000000000 Binary files a/php5/5.5.38/build/php/extensions/yaf-3.0.9.tgz and /dev/null differ diff --git a/php5/5.5.38/build/php/php-fpm.conf b/php5/5.5.38/build/php/php-fpm.conf deleted file mode 100644 index 131835891..000000000 --- a/php5/5.5.38/build/php/php-fpm.conf +++ /dev/null @@ -1,423 +0,0 @@ -; Start a new pool named 'www'. -; the variable $pool can be used in any directive and will be replaced by the -; pool name ('www' here) -[www] - -; Per pool prefix -; It only applies on the following directives: -; - 'access.log' -; - 'slowlog' -; - 'listen' (unixsocket) -; - 'chroot' -; - 'chdir' -; - 'php_values' -; - 'php_admin_values' -; When not set, the global prefix (or NONE) applies instead. -; Note: This directive can also be relative to the global prefix. -; Default Value: none -;prefix = /path/to/pools/$pool - -; Unix user/group of processes -; Note: The user is mandatory. If the group is not set, the default user's group -; will be used. -user = www-data -group = www-data - -; The address on which to accept FastCGI requests. -; Valid syntaxes are: -; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on -; a specific port; -; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on -; a specific port; -; 'port' - to listen on a TCP socket to all addresses -; (IPv6 and IPv4-mapped) on a specific port; -; '/path/to/unix/socket' - to listen on a unix socket. -; Note: This value is mandatory. -listen = 127.0.0.1:9000 - -; Set listen(2) backlog. -; Default Value: 511 (-1 on FreeBSD and OpenBSD) -;listen.backlog = 511 - -; Set permissions for unix socket, if one is used. In Linux, read/write -; permissions must be set in order to allow connections from a web server. Many -; BSD-derived systems allow connections regardless of permissions. -; Default Values: user and group are set as the running user -; mode is set to 0660 -;listen.owner = www-data -;listen.group = www-data -;listen.mode = 0660 -; When POSIX Access Control Lists are supported you can set them using -; these options, value is a comma separated list of user/group names. -; When set, listen.owner and listen.group are ignored -;listen.acl_users = -;listen.acl_groups = - -; List of addresses (IPv4/IPv6) of FastCGI clients which are allowed to connect. -; Equivalent to the FCGI_WEB_SERVER_ADDRS environment variable in the original -; PHP FCGI (5.2.2+). Makes sense only with a tcp listening socket. Each address -; must be separated by a comma. If this value is left blank, connections will be -; accepted from any ip address. -; Default Value: any -;listen.allowed_clients = 127.0.0.1 - -; Specify the nice(2) priority to apply to the pool processes (only if set) -; The value can vary from -19 (highest priority) to 20 (lower priority) -; Note: - It will only work if the FPM master process is launched as root -; - The pool processes will inherit the master process priority -; unless it specified otherwise -; Default Value: no set -; process.priority = -19 - -; Set the process dumpable flag (PR_SET_DUMPABLE prctl) even if the process user -; or group is differrent than the master process user. It allows to create process -; core dump and ptrace the process for the pool user. -; Default Value: no -; process.dumpable = yes - -; Choose how the process manager will control the number of child processes. -; Possible Values: -; static - a fixed number (pm.max_children) of child processes; -; dynamic - the number of child processes are set dynamically based on the -; following directives. With this process management, there will be -; always at least 1 children. -; pm.max_children - the maximum number of children that can -; be alive at the same time. -; pm.start_servers - the number of children created on startup. -; pm.min_spare_servers - the minimum number of children in 'idle' -; state (waiting to process). If the number -; of 'idle' processes is less than this -; number then some children will be created. -; pm.max_spare_servers - the maximum number of children in 'idle' -; state (waiting to process). If the number -; of 'idle' processes is greater than this -; number then some children will be killed. -; ondemand - no children are created at startup. Children will be forked when -; new requests will connect. The following parameter are used: -; pm.max_children - the maximum number of children that -; can be alive at the same time. -; pm.process_idle_timeout - The number of seconds after which -; an idle process will be killed. -; Note: This value is mandatory. -pm = dynamic - -; The number of child processes to be created when pm is set to 'static' and the -; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'. -; This value sets the limit on the number of simultaneous requests that will be -; served. Equivalent to the ApacheMaxClients directive with mpm_prefork. -; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP -; CGI. The below defaults are based on a server without much resources. Don't -; forget to tweak pm.* to fit your needs. -; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand' -; Note: This value is mandatory. -pm.max_children = 10 - -; The number of child processes created on startup. -; Note: Used only when pm is set to 'dynamic' -; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2 -pm.start_servers = 2 - -; The desired minimum number of idle server processes. -; Note: Used only when pm is set to 'dynamic' -; Note: Mandatory when pm is set to 'dynamic' -pm.min_spare_servers = 1 - -; The desired maximum number of idle server processes. -; Note: Used only when pm is set to 'dynamic' -; Note: Mandatory when pm is set to 'dynamic' -pm.max_spare_servers = 3 - -; The number of seconds after which an idle process will be killed. -; Note: Used only when pm is set to 'ondemand' -; Default Value: 10s -;pm.process_idle_timeout = 10s; - -; The number of requests each child process should execute before respawning. -; This can be useful to work around memory leaks in 3rd party libraries. For -; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS. -; Default Value: 0 -;pm.max_requests = 500 - -; The URI to view the FPM status page. If this value is not set, no URI will be -; recognized as a status page. It shows the following informations: -; pool - the name of the pool; -; process manager - static, dynamic or ondemand; -; start time - the date and time FPM has started; -; start since - number of seconds since FPM has started; -; accepted conn - the number of request accepted by the pool; -; listen queue - the number of request in the queue of pending -; connections (see backlog in listen(2)); -; max listen queue - the maximum number of requests in the queue -; of pending connections since FPM has started; -; listen queue len - the size of the socket queue of pending connections; -; idle processes - the number of idle processes; -; active processes - the number of active processes; -; total processes - the number of idle + active processes; -; max active processes - the maximum number of active processes since FPM -; has started; -; max children reached - number of times, the process limit has been reached, -; when pm tries to start more children (works only for -; pm 'dynamic' and 'ondemand'); -; Value are updated in real time. -; Example output: -; pool: www -; process manager: static -; start time: 01/Jul/2011:17:53:49 +0200 -; start since: 62636 -; accepted conn: 190460 -; listen queue: 0 -; max listen queue: 1 -; listen queue len: 42 -; idle processes: 4 -; active processes: 11 -; total processes: 15 -; max active processes: 12 -; max children reached: 0 -; -; By default the status page output is formatted as text/plain. Passing either -; 'html', 'xml' or 'json' in the query string will return the corresponding -; output syntax. Example: -; http://www.foo.bar/status -; http://www.foo.bar/status?json -; http://www.foo.bar/status?html -; http://www.foo.bar/status?xml -; -; By default the status page only outputs short status. Passing 'full' in the -; query string will also return status for each pool process. -; Example: -; http://www.foo.bar/status?full -; http://www.foo.bar/status?json&full -; http://www.foo.bar/status?html&full -; http://www.foo.bar/status?xml&full -; The Full status returns for each process: -; pid - the PID of the process; -; state - the state of the process (Idle, Running, ...); -; start time - the date and time the process has started; -; start since - the number of seconds since the process has started; -; requests - the number of requests the process has served; -; request duration - the duration in µs of the requests; -; request method - the request method (GET, POST, ...); -; request URI - the request URI with the query string; -; content length - the content length of the request (only with POST); -; user - the user (PHP_AUTH_USER) (or '-' if not set); -; script - the main script called (or '-' if not set); -; last request cpu - the %cpu the last request consumed -; it's always 0 if the process is not in Idle state -; because CPU calculation is done when the request -; processing has terminated; -; last request memory - the max amount of memory the last request consumed -; it's always 0 if the process is not in Idle state -; because memory calculation is done when the request -; processing has terminated; -; If the process is in Idle state, then informations are related to the -; last request the process has served. Otherwise informations are related to -; the current request being served. -; Example output: -; ************************ -; pid: 31330 -; state: Running -; start time: 01/Jul/2011:17:53:49 +0200 -; start since: 63087 -; requests: 12808 -; request duration: 1250261 -; request method: GET -; request URI: /test_mem.php?N=10000 -; content length: 0 -; user: - -; script: /home/fat/web/docs/php/test_mem.php -; last request cpu: 0.00 -; last request memory: 0 -; -; Note: There is a real-time FPM status monitoring sample web page available -; It's available in: /usr/local/share/php/fpm/status.html -; -; Note: The value must start with a leading slash (/). The value can be -; anything, but it may not be a good idea to use the .php extension or it -; may conflict with a real PHP file. -; Default Value: not set -;pm.status_path = /status - -; The ping URI to call the monitoring page of FPM. If this value is not set, no -; URI will be recognized as a ping page. This could be used to test from outside -; that FPM is alive and responding, or to -; - create a graph of FPM availability (rrd or such); -; - remove a server from a group if it is not responding (load balancing); -; - trigger alerts for the operating team (24/7). -; Note: The value must start with a leading slash (/). The value can be -; anything, but it may not be a good idea to use the .php extension or it -; may conflict with a real PHP file. -; Default Value: not set -;ping.path = /ping - -; This directive may be used to customize the response of a ping request. The -; response is formatted as text/plain with a 200 response code. -; Default Value: pong -;ping.response = pong - -; The access log file -; Default: not set -;access.log = log/$pool.access.log - -; The access log format. -; The following syntax is allowed -; %%: the '%' character -; %C: %CPU used by the request -; it can accept the following format: -; - %{user}C for user CPU only -; - %{system}C for system CPU only -; - %{total}C for user + system CPU (default) -; %d: time taken to serve the request -; it can accept the following format: -; - %{seconds}d (default) -; - %{miliseconds}d -; - %{mili}d -; - %{microseconds}d -; - %{micro}d -; %e: an environment variable (same as $_ENV or $_SERVER) -; it must be associated with embraces to specify the name of the env -; variable. Some exemples: -; - server specifics like: %{REQUEST_METHOD}e or %{SERVER_PROTOCOL}e -; - HTTP headers like: %{HTTP_HOST}e or %{HTTP_USER_AGENT}e -; %f: script filename -; %l: content-length of the request (for POST request only) -; %m: request method -; %M: peak of memory allocated by PHP -; it can accept the following format: -; - %{bytes}M (default) -; - %{kilobytes}M -; - %{kilo}M -; - %{megabytes}M -; - %{mega}M -; %n: pool name -; %o: output header -; it must be associated with embraces to specify the name of the header: -; - %{Content-Type}o -; - %{X-Powered-By}o -; - %{Transfert-Encoding}o -; - .... -; %p: PID of the child that serviced the request -; %P: PID of the parent of the child that serviced the request -; %q: the query string -; %Q: the '?' character if query string exists -; %r: the request URI (without the query string, see %q and %Q) -; %R: remote IP address -; %s: status (response code) -; %t: server time the request was received -; it can accept a strftime(3) format: -; %d/%b/%Y:%H:%M:%S %z (default) -; The strftime(3) format must be encapsuled in a %{}t tag -; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t -; %T: time the log has been written (the request has finished) -; it can accept a strftime(3) format: -; %d/%b/%Y:%H:%M:%S %z (default) -; The strftime(3) format must be encapsuled in a %{}t tag -; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t -; %u: remote user -; -; Default: "%R - %u %t \"%m %r\" %s" -;access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%" - -; The log file for slow requests -; Default Value: not set -; Note: slowlog is mandatory if request_slowlog_timeout is set -slowlog = /var/log/php/fpm.slow.log - -; The timeout for serving a single request after which a PHP backtrace will be -; dumped to the 'slowlog' file. A value of '0s' means 'off'. -; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) -; Default Value: 0 -request_slowlog_timeout = 3 - -; Depth of slow log stack trace. -; Default Value: 20 -;request_slowlog_trace_depth = 20 - -; The timeout for serving a single request after which the worker process will -; be killed. This option should be used when the 'max_execution_time' ini option -; does not stop script execution for some reason. A value of '0' means 'off'. -; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) -; Default Value: 0 -;request_terminate_timeout = 0 - -; Set open file descriptor rlimit. -; Default Value: system defined value -;rlimit_files = 1024 - -; Set max core size rlimit. -; Possible Values: 'unlimited' or an integer greater or equal to 0 -; Default Value: system defined value -;rlimit_core = 0 - -; Chroot to this directory at the start. This value must be defined as an -; absolute path. When this value is not set, chroot is not used. -; Note: you can prefix with '$prefix' to chroot to the pool prefix or one -; of its subdirectories. If the pool prefix is not set, the global prefix -; will be used instead. -; Note: chrooting is a great security feature and should be used whenever -; possible. However, all PHP paths will be relative to the chroot -; (error_log, sessions.save_path, ...). -; Default Value: not set -;chroot = - -; Chdir to this directory at the start. -; Note: relative path can be used. -; Default Value: current directory or / when chroot -;chdir = /var/www - -; Redirect worker stdout and stderr into main error log. If not set, stdout and -; stderr will be redirected to /dev/null according to FastCGI specs. -; Note: on highloaded environement, this can cause some delay in the page -; process time (several ms). -; Default Value: no -catch_workers_output = yes - -; Clear environment in FPM workers -; Prevents arbitrary environment variables from reaching FPM worker processes -; by clearing the environment in workers before env vars specified in this -; pool configuration are added. -; Setting to "no" will make all environment variables available to PHP code -; via getenv(), $_ENV and $_SERVER. -; Default Value: yes -;clear_env = no - -; Limits the extensions of the main script FPM will allow to parse. This can -; prevent configuration mistakes on the web server side. You should only limit -; FPM to .php extensions to prevent malicious users to use other extensions to -; execute php code. -; Note: set an empty value to allow all extensions. -; Default Value: .php -;security.limit_extensions = .php .php3 .php4 .php5 .php7 - -; Pass environment variables like LD_LIBRARY_PATH. All $VARIABLEs are taken from -; the current environment. -; Default Value: clean env -;env[HOSTNAME] = $HOSTNAME -;env[PATH] = /usr/local/bin:/usr/bin:/bin -;env[TMP] = /tmp -;env[TMPDIR] = /tmp -;env[TEMP] = /tmp - -; Additional php.ini defines, specific to this pool of workers. These settings -; overwrite the values previously defined in the php.ini. The directives are the -; same as the PHP SAPI: -; php_value/php_flag - you can set classic ini defines which can -; be overwritten from PHP call 'ini_set'. -; php_admin_value/php_admin_flag - these directives won't be overwritten by -; PHP call 'ini_set' -; For php_*flag, valid values are on, off, 1, 0, true, false, yes or no. - -; Defining 'extension' will load the corresponding shared extension from -; extension_dir. Defining 'disable_functions' or 'disable_classes' will not -; overwrite previously defined php.ini values, but will append the new value -; instead. - -; Note: path INI options can be relative and will be expanded with the prefix -; (pool, global or /usr/local) - -; Default Value: nothing is defined by default except the values in php.ini and -; specified at startup with the -d argument -;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com -;php_flag[display_errors] = off -;php_admin_value[error_log] = /var/log/fpm-php.www.log -;php_admin_flag[log_errors] = on -;php_admin_value[memory_limit] = 32M diff --git a/php5/5.5.38/build/php/php.ini b/php5/5.5.38/build/php/php.ini deleted file mode 100644 index b04e16401..000000000 --- a/php5/5.5.38/build/php/php.ini +++ /dev/null @@ -1,1933 +0,0 @@ -[PHP] - -;;;;;;;;;;;;;;;;;;; -; About php.ini ; -;;;;;;;;;;;;;;;;;;; -; PHP's initialization file, generally called php.ini, is responsible for -; configuring many of the aspects of PHP's behavior. - -; PHP attempts to find and load this configuration from a number of locations. -; The following is a summary of its search order: -; 1. SAPI module specific location. -; 2. The PHPRC environment variable. (As of PHP 5.2.0) -; 3. A number of predefined registry keys on Windows (As of PHP 5.2.0) -; 4. Current working directory (except CLI) -; 5. The web server's directory (for SAPI modules), or directory of PHP -; (otherwise in Windows) -; 6. The directory from the --with-config-file-path compile time option, or the -; Windows directory (C:\windows or C:\winnt) -; See the PHP docs for more specific information. -; http://php.net/configuration.file - -; The syntax of the file is extremely simple. Whitespace and lines -; beginning with a semicolon are silently ignored (as you probably guessed). -; Section headers (e.g. [Foo]) are also silently ignored, even though -; they might mean something in the future. - -; Directives following the section heading [PATH=/www/mysite] only -; apply to PHP files in the /www/mysite directory. Directives -; following the section heading [HOST=www.example.com] only apply to -; PHP files served from www.example.com. Directives set in these -; special sections cannot be overridden by user-defined INI files or -; at runtime. Currently, [PATH=] and [HOST=] sections only work under -; CGI/FastCGI. -; http://php.net/ini.sections - -; Directives are specified using the following syntax: -; directive = value -; Directive names are *case sensitive* - foo=bar is different from FOO=bar. -; Directives are variables used to configure PHP or PHP extensions. -; There is no name validation. If PHP can't find an expected -; directive because it is not set or is mistyped, a default value will be used. - -; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one -; of the INI constants (On, Off, True, False, Yes, No and None) or an expression -; (e.g. E_ALL & ~E_NOTICE), a quoted string ("bar"), or a reference to a -; previously set variable or directive (e.g. ${foo}) - -; Expressions in the INI file are limited to bitwise operators and parentheses: -; | bitwise OR -; ^ bitwise XOR -; & bitwise AND -; ~ bitwise NOT -; ! boolean NOT - -; Boolean flags can be turned on using the values 1, On, True or Yes. -; They can be turned off using the values 0, Off, False or No. - -; An empty string can be denoted by simply not writing anything after the equal -; sign, or by using the None keyword: - -; foo = ; sets foo to an empty string -; foo = None ; sets foo to an empty string -; foo = "None" ; sets foo to the string 'None' - -; If you use constants in your value, and these constants belong to a -; dynamically loaded extension (either a PHP extension or a Zend extension), -; you may only use these constants *after* the line that loads the extension. - -;;;;;;;;;;;;;;;;;;; -; About this file ; -;;;;;;;;;;;;;;;;;;; -; PHP comes packaged with two INI files. One that is recommended to be used -; in production environments and one that is recommended to be used in -; development environments. - -; php.ini-production contains settings which hold security, performance and -; best practices at its core. But please be aware, these settings may break -; compatibility with older or less security conscience applications. We -; recommending using the production ini in production and testing environments. - -; php.ini-development is very similar to its production variant, except it is -; much more verbose when it comes to errors. We recommend using the -; development version only in development environments, as errors shown to -; application users can inadvertently leak otherwise secure information. - -; This is php.ini-production INI file. - -;;;;;;;;;;;;;;;;;;; -; Quick Reference ; -;;;;;;;;;;;;;;;;;;; -; The following are all the settings which are different in either the production -; or development versions of the INIs with respect to PHP's default behavior. -; Please see the actual settings later in the document for more details as to why -; we recommend these changes in PHP's behavior. - -; display_errors -; Default Value: On -; Development Value: On -; Production Value: Off - -; display_startup_errors -; Default Value: Off -; Development Value: On -; Production Value: Off - -; error_reporting -; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT - -; html_errors -; Default Value: On -; Development Value: On -; Production value: On - -; log_errors -; Default Value: Off -; Development Value: On -; Production Value: On - -; max_input_time -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) - -; output_buffering -; Default Value: Off -; Development Value: 4096 -; Production Value: 4096 - -; register_argc_argv -; Default Value: On -; Development Value: Off -; Production Value: Off - -; request_order -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" - -; session.gc_divisor -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 - -; session.sid_bits_per_character -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 - -; short_open_tag -; Default Value: On -; Development Value: Off -; Production Value: Off - -; track_errors -; Default Value: Off -; Development Value: On -; Production Value: Off - -; variables_order -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS" - -;;;;;;;;;;;;;;;;;;;; -; php.ini Options ; -;;;;;;;;;;;;;;;;;;;; -; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini" -;user_ini.filename = ".user.ini" - -; To disable this feature set this option to empty value -;user_ini.filename = - -; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes) -;user_ini.cache_ttl = 300 - -;;;;;;;;;;;;;;;;;;;; -; Language Options ; -;;;;;;;;;;;;;;;;;;;; - -; Enable the PHP scripting language engine under Apache. -; http://php.net/engine -engine = On - -; This directive determines whether or not PHP will recognize code between -; tags as PHP source which should be processed as such. It is -; generally recommended that should be used and that this feature -; should be disabled, as enabling it may result in issues when generating XML -; documents, however this remains supported for backward compatibility reasons. -; Note that this directive does not control the would work. -; http://php.net/syntax-highlighting -;highlight.string = #DD0000 -;highlight.comment = #FF9900 -;highlight.keyword = #007700 -;highlight.default = #0000BB -;highlight.html = #000000 - -; If enabled, the request will be allowed to complete even if the user aborts -; the request. Consider enabling it if executing long requests, which may end up -; being interrupted by the user or a browser timing out. PHP's default behavior -; is to disable this feature. -; http://php.net/ignore-user-abort -;ignore_user_abort = On - -; Determines the size of the realpath cache to be used by PHP. This value should -; be increased on systems where PHP opens many files to reflect the quantity of -; the file operations performed. -; http://php.net/realpath-cache-size -;realpath_cache_size = 4096k - -; Duration of time, in seconds for which to cache realpath information for a given -; file or directory. For systems with rarely changing files, consider increasing this -; value. -; http://php.net/realpath-cache-ttl -;realpath_cache_ttl = 120 - -; Enables or disables the circular reference collector. -; http://php.net/zend.enable-gc -zend.enable_gc = On - -; If enabled, scripts may be written in encodings that are incompatible with -; the scanner. CP936, Big5, CP949 and Shift_JIS are the examples of such -; encodings. To use this feature, mbstring extension must be enabled. -; Default: Off -;zend.multibyte = Off - -; Allows to set the default encoding for the scripts. This value will be used -; unless "declare(encoding=...)" directive appears at the top of the script. -; Only affects if zend.multibyte is set. -; Default: "" -;zend.script_encoding = - -;;;;;;;;;;;;;;;;; -; Miscellaneous ; -;;;;;;;;;;;;;;;;; - -; Decides whether PHP may expose the fact that it is installed on the server -; (e.g. by adding its signature to the Web server header). It is no security -; threat in any way, but it makes it possible to determine whether you use PHP -; on your server or not. -; http://php.net/expose-php -expose_php = Off - -;;;;;;;;;;;;;;;;;;; -; Resource Limits ; -;;;;;;;;;;;;;;;;;;; - -; Maximum execution time of each script, in seconds -; http://php.net/max-execution-time -; Note: This directive is hardcoded to 0 for the CLI SAPI -max_execution_time = 30 - -; Maximum amount of time each script may spend parsing request data. It's a good -; idea to limit this time on productions servers in order to eliminate unexpectedly -; long running scripts. -; Note: This directive is hardcoded to -1 for the CLI SAPI -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) -; http://php.net/max-input-time -max_input_time = 60 - -; Maximum input variable nesting level -; http://php.net/max-input-nesting-level -;max_input_nesting_level = 64 - -; How many GET/POST/COOKIE input variables may be accepted -; max_input_vars = 1000 - -; Maximum amount of memory a script may consume (128MB) -; http://php.net/memory-limit -memory_limit = 256M - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; Error handling and logging ; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -; This directive informs PHP of which errors, warnings and notices you would like -; it to take action for. The recommended way of setting values for this -; directive is through the use of the error level constants and bitwise -; operators. The error level constants are below here for convenience as well as -; some common settings and their meanings. -; By default, PHP is set to take action on all errors, notices and warnings EXCEPT -; those related to E_NOTICE and E_STRICT, which together cover best practices and -; recommended coding standards in PHP. For performance reasons, this is the -; recommend error reporting setting. Your production server shouldn't be wasting -; resources complaining about best practices and coding standards. That's what -; development servers and development settings are for. -; Note: The php.ini-development file has this setting as E_ALL. This -; means it pretty much reports everything which is exactly what you want during -; development and early testing. -; -; Error Level Constants: -; E_ALL - All errors and warnings (includes E_STRICT as of PHP 5.4.0) -; E_ERROR - fatal run-time errors -; E_RECOVERABLE_ERROR - almost fatal run-time errors -; E_WARNING - run-time warnings (non-fatal errors) -; E_PARSE - compile-time parse errors -; E_NOTICE - run-time notices (these are warnings which often result -; from a bug in your code, but it's possible that it was -; intentional (e.g., using an uninitialized variable and -; relying on the fact it is automatically initialized to an -; empty string) -; E_STRICT - run-time notices, enable to have PHP suggest changes -; to your code which will ensure the best interoperability -; and forward compatibility of your code -; E_CORE_ERROR - fatal errors that occur during PHP's initial startup -; E_CORE_WARNING - warnings (non-fatal errors) that occur during PHP's -; initial startup -; E_COMPILE_ERROR - fatal compile-time errors -; E_COMPILE_WARNING - compile-time warnings (non-fatal errors) -; E_USER_ERROR - user-generated error message -; E_USER_WARNING - user-generated warning message -; E_USER_NOTICE - user-generated notice message -; E_DEPRECATED - warn about code that will not work in future versions -; of PHP -; E_USER_DEPRECATED - user-generated deprecation warnings -; -; Common Values: -; E_ALL (Show all errors, warnings and notices including coding standards.) -; E_ALL & ~E_NOTICE (Show all errors, except for notices) -; E_ALL & ~E_NOTICE & ~E_STRICT (Show all errors, except for notices and coding standards warnings.) -; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors) -; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT -; http://php.net/error-reporting -error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT - -; This directive controls whether or not and where PHP will output errors, -; notices and warnings too. Error output is very useful during development, but -; it could be very dangerous in production environments. Depending on the code -; which is triggering the error, sensitive information could potentially leak -; out of your application such as database usernames and passwords or worse. -; For production environments, we recommend logging errors rather than -; sending them to STDOUT. -; Possible Values: -; Off = Do not display any errors -; stderr = Display errors to STDERR (affects only CGI/CLI binaries!) -; On or stdout = Display errors to STDOUT -; Default Value: On -; Development Value: On -; Production Value: Off -; http://php.net/display-errors -display_errors = Off - -; The display of errors which occur during PHP's startup sequence are handled -; separately from display_errors. PHP's default behavior is to suppress those -; errors from clients. Turning the display of startup errors on can be useful in -; debugging configuration problems. We strongly recommend you -; set this to 'off' for production servers. -; Default Value: Off -; Development Value: On -; Production Value: Off -; http://php.net/display-startup-errors -display_startup_errors = Off - -; Besides displaying errors, PHP can also log errors to locations such as a -; server-specific log, STDERR, or a location specified by the error_log -; directive found below. While errors should not be displayed on productions -; servers they should still be monitored and logging is a great way to do that. -; Default Value: Off -; Development Value: On -; Production Value: On -; http://php.net/log-errors -log_errors = On - -; Set maximum length of log_errors. In error_log information about the source is -; added. The default is 1024 and 0 allows to not apply any maximum length at all. -; http://php.net/log-errors-max-len -log_errors_max_len = 1024 - -; Do not log repeated messages. Repeated errors must occur in same file on same -; line unless ignore_repeated_source is set true. -; http://php.net/ignore-repeated-errors -ignore_repeated_errors = Off - -; Ignore source of message when ignoring repeated messages. When this setting -; is On you will not log errors with repeated messages from different files or -; source lines. -; http://php.net/ignore-repeated-source -ignore_repeated_source = Off - -; If this parameter is set to Off, then memory leaks will not be shown (on -; stdout or in the log). This has only effect in a debug compile, and if -; error reporting includes E_WARNING in the allowed list -; http://php.net/report-memleaks -report_memleaks = On - -; This setting is on by default. -;report_zend_debug = 0 - -; Store the last error/warning message in $php_errormsg (boolean). Setting this value -; to On can assist in debugging and is appropriate for development servers. It should -; however be disabled on production servers. -; Default Value: Off -; Development Value: On -; Production Value: Off -; http://php.net/track-errors -track_errors = Off - -; Turn off normal error reporting and emit XML-RPC error XML -; http://php.net/xmlrpc-errors -;xmlrpc_errors = 0 - -; An XML-RPC faultCode -;xmlrpc_error_number = 0 - -; When PHP displays or logs an error, it has the capability of formatting the -; error message as HTML for easier reading. This directive controls whether -; the error message is formatted as HTML or not. -; Note: This directive is hardcoded to Off for the CLI SAPI -; Default Value: On -; Development Value: On -; Production value: On -; http://php.net/html-errors -html_errors = On - -; If html_errors is set to On *and* docref_root is not empty, then PHP -; produces clickable error messages that direct to a page describing the error -; or function causing the error in detail. -; You can download a copy of the PHP manual from http://php.net/docs -; and change docref_root to the base URL of your local copy including the -; leading '/'. You must also specify the file extension being used including -; the dot. PHP's default behavior is to leave these settings empty, in which -; case no links to documentation are generated. -; Note: Never use this feature for production boxes. -; http://php.net/docref-root -; Examples -;docref_root = "/phpmanual/" - -; http://php.net/docref-ext -;docref_ext = .html - -; String to output before an error message. PHP's default behavior is to leave -; this setting blank. -; http://php.net/error-prepend-string -; Example: -;error_prepend_string = "" - -; String to output after an error message. PHP's default behavior is to leave -; this setting blank. -; http://php.net/error-append-string -; Example: -;error_append_string = "" - -; Log errors to specified file. PHP's default behavior is to leave this value -; empty. -; http://php.net/error-log -; Example: -;error_log = php_errors.log -; Log errors to syslog (Event Log on Windows). -error_log = /var/log/php/php.error.log - -;windows.show_crt_warning -; Default value: 0 -; Development value: 0 -; Production value: 0 - -;;;;;;;;;;;;;;;;; -; Data Handling ; -;;;;;;;;;;;;;;;;; - -; The separator used in PHP generated URLs to separate arguments. -; PHP's default setting is "&". -; http://php.net/arg-separator.output -; Example: -;arg_separator.output = "&" - -; List of separator(s) used by PHP to parse input URLs into variables. -; PHP's default setting is "&". -; NOTE: Every character in this directive is considered as separator! -; http://php.net/arg-separator.input -; Example: -;arg_separator.input = ";&" - -; This directive determines which super global arrays are registered when PHP -; starts up. G,P,C,E & S are abbreviations for the following respective super -; globals: GET, POST, COOKIE, ENV and SERVER. There is a performance penalty -; paid for the registration of these arrays and because ENV is not as commonly -; used as the others, ENV is not recommended on productions servers. You -; can still get access to the environment variables through getenv() should you -; need to. -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS"; -; http://php.net/variables-order -variables_order = "GPCS" - -; This directive determines which super global data (G,P & C) should be -; registered into the super global array REQUEST. If so, it also determines -; the order in which that data is registered. The values for this directive -; are specified in the same manner as the variables_order directive, -; EXCEPT one. Leaving this value empty will cause PHP to use the value set -; in the variables_order directive. It does not mean it will leave the super -; globals array REQUEST empty. -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" -; http://php.net/request-order -request_order = "GP" - -; This directive determines whether PHP registers $argv & $argc each time it -; runs. $argv contains an array of all the arguments passed to PHP when a script -; is invoked. $argc contains an integer representing the number of arguments -; that were passed when the script was invoked. These arrays are extremely -; useful when running scripts from the command line. When this directive is -; enabled, registering these variables consumes CPU cycles and memory each time -; a script is executed. For performance reasons, this feature should be disabled -; on production servers. -; Note: This directive is hardcoded to On for the CLI SAPI -; Default Value: On -; Development Value: Off -; Production Value: Off -; http://php.net/register-argc-argv -register_argc_argv = Off - -; When enabled, the ENV, REQUEST and SERVER variables are created when they're -; first used (Just In Time) instead of when the script starts. If these -; variables are not used within a script, having this directive on will result -; in a performance gain. The PHP directive register_argc_argv must be disabled -; for this directive to have any affect. -; http://php.net/auto-globals-jit -auto_globals_jit = On - -; Whether PHP will read the POST data. -; This option is enabled by default. -; Most likely, you won't want to disable this option globally. It causes $_POST -; and $_FILES to always be empty; the only way you will be able to read the -; POST data will be through the php://input stream wrapper. This can be useful -; to proxy requests or to process the POST data in a memory efficient fashion. -; http://php.net/enable-post-data-reading -;enable_post_data_reading = Off - -; Maximum size of POST data that PHP will accept. -; Its value may be 0 to disable the limit. It is ignored if POST data reading -; is disabled through enable_post_data_reading. -; http://php.net/post-max-size -post_max_size = 100M - -; Automatically add files before PHP document. -; http://php.net/auto-prepend-file -auto_prepend_file = - -; Automatically add files after PHP document. -; http://php.net/auto-append-file -auto_append_file = - -; By default, PHP will output a media type using the Content-Type header. To -; disable this, simply set it to be empty. -; -; PHP's built-in default media type is set to text/html. -; http://php.net/default-mimetype -default_mimetype = "text/html" - -; PHP's default character set is set to UTF-8. -; http://php.net/default-charset -default_charset = "UTF-8" - -; PHP internal character encoding is set to empty. -; If empty, default_charset is used. -; http://php.net/internal-encoding -;internal_encoding = - -; PHP input character encoding is set to empty. -; If empty, default_charset is used. -; http://php.net/input-encoding -;input_encoding = - -; PHP output character encoding is set to empty. -; If empty, default_charset is used. -; See also output_buffer. -; http://php.net/output-encoding -;output_encoding = - -;;;;;;;;;;;;;;;;;;;;;;;;; -; Paths and Directories ; -;;;;;;;;;;;;;;;;;;;;;;;;; - -; UNIX: "/path1:/path2" -;include_path = ".:/php/includes" -; -; Windows: "\path1;\path2" -;include_path = ".;c:\php\includes" -; -; PHP's default setting for include_path is ".;/path/to/php/pear" -; http://php.net/include-path - -; The root of the PHP pages, used only if nonempty. -; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root -; if you are running php as a CGI under any web server (other than IIS) -; see documentation for security issues. The alternate is to use the -; cgi.force_redirect configuration below -; http://php.net/doc-root -doc_root = - -; The directory under which PHP opens the script using /~username used only -; if nonempty. -; http://php.net/user-dir -user_dir = - -; Directory in which the loadable extensions (modules) reside. -; http://php.net/extension-dir -; extension_dir = "./" -; On windows: -; extension_dir = "ext" - -; Directory where the temporary files should be placed. -; Defaults to the system default (see sys_get_temp_dir) -; sys_temp_dir = "/tmp" - -; Whether or not to enable the dl() function. The dl() function does NOT work -; properly in multithreaded servers, such as IIS or Zeus, and is automatically -; disabled on them. -; http://php.net/enable-dl -enable_dl = Off - -; cgi.force_redirect is necessary to provide security running PHP as a CGI under -; most web servers. Left undefined, PHP turns this on by default. You can -; turn it off here AT YOUR OWN RISK -; **You CAN safely turn this off for IIS, in fact, you MUST.** -; http://php.net/cgi.force-redirect -;cgi.force_redirect = 1 - -; if cgi.nph is enabled it will force cgi to always sent Status: 200 with -; every request. PHP's default behavior is to disable this feature. -;cgi.nph = 1 - -; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape -; (iPlanet) web servers, you MAY need to set an environment variable name that PHP -; will look for to know it is OK to continue execution. Setting this variable MAY -; cause security issues, KNOW WHAT YOU ARE DOING FIRST. -; http://php.net/cgi.redirect-status-env -;cgi.redirect_status_env = - -; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's -; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok -; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting -; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting -; of zero causes PHP to behave as before. Default is 1. You should fix your scripts -; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. -; http://php.net/cgi.fix-pathinfo -;cgi.fix_pathinfo=1 - -; if cgi.discard_path is enabled, the PHP CGI binary can safely be placed outside -; of the web tree and people will not be able to circumvent .htaccess security. -; http://php.net/cgi.dicard-path -;cgi.discard_path=1 - -; FastCGI under IIS (on WINNT based OS) supports the ability to impersonate -; security tokens of the calling client. This allows IIS to define the -; security context that the request runs under. mod_fastcgi under Apache -; does not currently support this feature (03/17/2002) -; Set to 1 if running under IIS. Default is zero. -; http://php.net/fastcgi.impersonate -;fastcgi.impersonate = 1 - -; Disable logging through FastCGI connection. PHP's default behavior is to enable -; this feature. -;fastcgi.logging = 0 - -; cgi.rfc2616_headers configuration option tells PHP what type of headers to -; use when sending HTTP response code. If set to 0, PHP sends Status: header that -; is supported by Apache. When this option is set to 1, PHP will send -; RFC2616 compliant header. -; Default is zero. -; http://php.net/cgi.rfc2616-headers -;cgi.rfc2616_headers = 0 - -; cgi.check_shebang_line controls whether CGI PHP checks for line starting with #! -; (shebang) at the top of the running script. This line might be needed if the -; script support running both as stand-alone script and via PHP CGI<. PHP in CGI -; mode skips this line and ignores its content if this directive is turned on. -; http://php.net/cgi.check-shebang-line -;cgi.check_shebang_line=1 - -;;;;;;;;;;;;;;;; -; File Uploads ; -;;;;;;;;;;;;;;;; - -; Whether to allow HTTP file uploads. -; http://php.net/file-uploads -file_uploads = On - -; Temporary directory for HTTP uploaded files (will use system default if not -; specified). -; http://php.net/upload-tmp-dir -;upload_tmp_dir = - -; Maximum allowed size for uploaded files. -; http://php.net/upload-max-filesize -upload_max_filesize = 50M - -; Maximum number of files that can be uploaded via a single request -max_file_uploads = 20 - -;;;;;;;;;;;;;;;;;; -; Fopen wrappers ; -;;;;;;;;;;;;;;;;;; - -; Whether to allow the treatment of URLs (like http:// or ftp://) as files. -; http://php.net/allow-url-fopen -allow_url_fopen = On - -; Whether to allow include/require to open URLs (like http:// or ftp://) as files. -; http://php.net/allow-url-include -allow_url_include = Off - -; Define the anonymous ftp password (your email address). PHP's default setting -; for this is empty. -; http://php.net/from -;from="john@doe.com" - -; Define the User-Agent string. PHP's default setting for this is empty. -; http://php.net/user-agent -;user_agent="PHP" - -; Default timeout for socket based streams (seconds) -; http://php.net/default-socket-timeout -default_socket_timeout = 60 - -; If your scripts have to deal with files from Macintosh systems, -; or you are running on a Mac and need to deal with files from -; unix or win32 systems, setting this flag will cause PHP to -; automatically detect the EOL character in those files so that -; fgets() and file() will work regardless of the source of the file. -; http://php.net/auto-detect-line-endings -;auto_detect_line_endings = Off - -;;;;;;;;;;;;;;;;;;;;;; -; Dynamic Extensions ; -;;;;;;;;;;;;;;;;;;;;;; - -; If you wish to have an extension loaded automatically, use the following -; syntax: -; -; extension=modulename.extension -; -; For example, on Windows: -; -; extension=mysqli.dll -; -; ... or under UNIX: -; -; extension=mysqli.so -; -; ... or with a path: -; -; extension=/path/to/extension/mysqli.so -; -; If you only provide the name of the extension, PHP will look for it in its -; default extension directory. -; -; Windows Extensions -; Note that ODBC support is built in, so no dll is needed for it. -; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5+) -; extension folders as well as the separate PECL DLL download (PHP 5+). -; Be sure to appropriately set the extension_dir directive. -; -;extension=php_bz2.dll -;extension=php_curl.dll -;extension=php_fileinfo.dll -;extension=php_ftp.dll -;extension=php_gd2.dll -;extension=php_gettext.dll -;extension=php_gmp.dll -;extension=php_intl.dll -;extension=php_imap.dll -;extension=php_interbase.dll -;extension=php_ldap.dll -;extension=php_mbstring.dll -;extension=php_exif.dll ; Must be after mbstring as it depends on it -;extension=php_mysqli.dll -;extension=php_oci8_12c.dll ; Use with Oracle Database 12c Instant Client -;extension=php_openssl.dll -;extension=php_pdo_firebird.dll -;extension=php_pdo_mysql.dll -;extension=php_pdo_oci.dll -;extension=php_pdo_odbc.dll -;extension=php_pdo_pgsql.dll -;extension=php_pdo_sqlite.dll -;extension=php_pgsql.dll -;extension=php_shmop.dll - -; The MIBS data available in the PHP distribution must be installed. -; See http://www.php.net/manual/en/snmp.installation.php -;extension=php_snmp.dll - -;extension=php_soap.dll -;extension=php_sockets.dll -;extension=php_sqlite3.dll -;extension=php_tidy.dll -;extension=php_xmlrpc.dll -;extension=php_xsl.dll - -;;;;;;;;;;;;;;;;;;; -; Module Settings ; -;;;;;;;;;;;;;;;;;;; - -[CLI Server] -; Whether the CLI web server uses ANSI color coding in its terminal output. -cli_server.color = On - -[Date] -; Defines the default timezone used by the date functions -; http://php.net/date.timezone -date.timezone = Asia/Shanghai - -; http://php.net/date.default-latitude -;date.default_latitude = 31.7667 - -; http://php.net/date.default-longitude -;date.default_longitude = 35.2333 - -; http://php.net/date.sunrise-zenith -;date.sunrise_zenith = 90.583333 - -; http://php.net/date.sunset-zenith -;date.sunset_zenith = 90.583333 - -[filter] -; http://php.net/filter.default -;filter.default = unsafe_raw - -; http://php.net/filter.default-flags -;filter.default_flags = - -[iconv] -; Use of this INI entry is deprecated, use global input_encoding instead. -; If empty, default_charset or input_encoding or iconv.input_encoding is used. -; The precedence is: default_charset < intput_encoding < iconv.input_encoding -;iconv.input_encoding = - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;iconv.internal_encoding = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; If empty, default_charset or output_encoding or iconv.output_encoding is used. -; The precedence is: default_charset < output_encoding < iconv.output_encoding -; To use an output encoding conversion, iconv's output handler must be set -; otherwise output encoding conversion cannot be performed. -;iconv.output_encoding = - -[intl] -;intl.default_locale = -; This directive allows you to produce PHP errors when some error -; happens within intl functions. The value is the level of the error produced. -; Default is 0, which does not produce any errors. -;intl.error_level = E_WARNING -;intl.use_exceptions = 0 - -[sqlite3] -;sqlite3.extension_dir = - -[Pcre] -;PCRE library backtracking limit. -; http://php.net/pcre.backtrack-limit -;pcre.backtrack_limit=100000 - -;PCRE library recursion limit. -;Please note that if you set this value to a high number you may consume all -;the available process stack and eventually crash PHP (due to reaching the -;stack size limit imposed by the Operating System). -; http://php.net/pcre.recursion-limit -;pcre.recursion_limit=100000 - -;Enables or disables JIT compilation of patterns. This requires the PCRE -;library to be compiled with JIT support. -;pcre.jit=1 - -[Pdo] -; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off" -; http://php.net/pdo-odbc.connection-pooling -;pdo_odbc.connection_pooling=strict - -;pdo_odbc.db2_instance_name - -[Pdo_mysql] -; If mysqlnd is used: Number of cache slots for the internal result set cache -; http://php.net/pdo_mysql.cache_size -pdo_mysql.cache_size = 2000 - -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -; http://php.net/pdo_mysql.default-socket -pdo_mysql.default_socket= - -[Phar] -; http://php.net/phar.readonly -;phar.readonly = On - -; http://php.net/phar.require-hash -;phar.require_hash = On - -;phar.cache_list = - -[mail function] -; For Win32 only. -; http://php.net/smtp -SMTP = localhost -; http://php.net/smtp-port -smtp_port = 25 - -; For Win32 only. -; http://php.net/sendmail-from -;sendmail_from = me@example.com - -; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). -; http://php.net/sendmail-path -;sendmail_path = - -; Force the addition of the specified parameters to be passed as extra parameters -; to the sendmail binary. These parameters will always replace the value of -; the 5th parameter to mail(). -;mail.force_extra_parameters = - -; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename -mail.add_x_header = On - -; The path to a log file that will log all mail() calls. Log entries include -; the full path of the script, line number, To address and headers. -;mail.log = -; Log mail to syslog (Event Log on Windows). -;mail.log = syslog - -[ODBC] -; http://php.net/odbc.default-db -;odbc.default_db = Not yet implemented - -; http://php.net/odbc.default-user -;odbc.default_user = Not yet implemented - -; http://php.net/odbc.default-pw -;odbc.default_pw = Not yet implemented - -; Controls the ODBC cursor model. -; Default: SQL_CURSOR_STATIC (default). -;odbc.default_cursortype - -; Allow or prevent persistent links. -; http://php.net/odbc.allow-persistent -odbc.allow_persistent = On - -; Check that a connection is still valid before reuse. -; http://php.net/odbc.check-persistent -odbc.check_persistent = On - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/odbc.max-persistent -odbc.max_persistent = -1 - -; Maximum number of links (persistent + non-persistent). -1 means no limit. -; http://php.net/odbc.max-links -odbc.max_links = -1 - -; Handling of LONG fields. Returns number of bytes to variables. 0 means -; passthru. -; http://php.net/odbc.defaultlrl -odbc.defaultlrl = 4096 - -; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char. -; See the documentation on odbc_binmode and odbc_longreadlen for an explanation -; of odbc.defaultlrl and odbc.defaultbinmode -; http://php.net/odbc.defaultbinmode -odbc.defaultbinmode = 1 - -;birdstep.max_links = -1 - -[Interbase] -; Allow or prevent persistent links. -ibase.allow_persistent = 1 - -; Maximum number of persistent links. -1 means no limit. -ibase.max_persistent = -1 - -; Maximum number of links (persistent + non-persistent). -1 means no limit. -ibase.max_links = -1 - -; Default database name for ibase_connect(). -;ibase.default_db = - -; Default username for ibase_connect(). -;ibase.default_user = - -; Default password for ibase_connect(). -;ibase.default_password = - -; Default charset for ibase_connect(). -;ibase.default_charset = - -; Default timestamp format. -ibase.timestampformat = "%Y-%m-%d %H:%M:%S" - -; Default date format. -ibase.dateformat = "%Y-%m-%d" - -; Default time format. -ibase.timeformat = "%H:%M:%S" - -[MySQLi] - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/mysqli.max-persistent -mysqli.max_persistent = -1 - -; Allow accessing, from PHP's perspective, local files with LOAD DATA statements -; http://php.net/mysqli.allow_local_infile -;mysqli.allow_local_infile = On - -; Allow or prevent persistent links. -; http://php.net/mysqli.allow-persistent -mysqli.allow_persistent = On - -; Maximum number of links. -1 means no limit. -; http://php.net/mysqli.max-links -mysqli.max_links = -1 - -; If mysqlnd is used: Number of cache slots for the internal result set cache -; http://php.net/mysqli.cache_size -mysqli.cache_size = 2000 - -; Default port number for mysqli_connect(). If unset, mysqli_connect() will use -; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the -; compile-time value defined MYSQL_PORT (in that order). Win32 will only look -; at MYSQL_PORT. -; http://php.net/mysqli.default-port -mysqli.default_port = 3306 - -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -; http://php.net/mysqli.default-socket -mysqli.default_socket = - -; Default host for mysql_connect() (doesn't apply in safe mode). -; http://php.net/mysqli.default-host -mysqli.default_host = - -; Default user for mysql_connect() (doesn't apply in safe mode). -; http://php.net/mysqli.default-user -mysqli.default_user = - -; Default password for mysqli_connect() (doesn't apply in safe mode). -; Note that this is generally a *bad* idea to store passwords in this file. -; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw") -; and reveal this password! And of course, any users with read access to this -; file will be able to reveal the password as well. -; http://php.net/mysqli.default-pw -mysqli.default_pw = - -; Allow or prevent reconnect -mysqli.reconnect = Off - -[mysqlnd] -; Enable / Disable collection of general statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -; http://php.net/mysqlnd.collect_statistics -mysqlnd.collect_statistics = On - -; Enable / Disable collection of memory usage statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -; http://php.net/mysqlnd.collect_memory_statistics -mysqlnd.collect_memory_statistics = Off - -; Records communication from all extensions using mysqlnd to the specified log -; file. -; http://php.net/mysqlnd.debug -;mysqlnd.debug = - -; Defines which queries will be logged. -; http://php.net/mysqlnd.log_mask -;mysqlnd.log_mask = 0 - -; Default size of the mysqlnd memory pool, which is used by result sets. -; http://php.net/mysqlnd.mempool_default_size -;mysqlnd.mempool_default_size = 16000 - -; Size of a pre-allocated buffer used when sending commands to MySQL in bytes. -; http://php.net/mysqlnd.net_cmd_buffer_size -;mysqlnd.net_cmd_buffer_size = 2048 - -; Size of a pre-allocated buffer used for reading data sent by the server in -; bytes. -; http://php.net/mysqlnd.net_read_buffer_size -;mysqlnd.net_read_buffer_size = 32768 - -; Timeout for network requests in seconds. -; http://php.net/mysqlnd.net_read_timeout -;mysqlnd.net_read_timeout = 31536000 - -; SHA-256 Authentication Plugin related. File with the MySQL server public RSA -; key. -; http://php.net/mysqlnd.sha256_server_public_key -;mysqlnd.sha256_server_public_key = - -[OCI8] - -; Connection: Enables privileged connections using external -; credentials (OCI_SYSOPER, OCI_SYSDBA) -; http://php.net/oci8.privileged-connect -;oci8.privileged_connect = Off - -; Connection: The maximum number of persistent OCI8 connections per -; process. Using -1 means no limit. -; http://php.net/oci8.max-persistent -;oci8.max_persistent = -1 - -; Connection: The maximum number of seconds a process is allowed to -; maintain an idle persistent connection. Using -1 means idle -; persistent connections will be maintained forever. -; http://php.net/oci8.persistent-timeout -;oci8.persistent_timeout = -1 - -; Connection: The number of seconds that must pass before issuing a -; ping during oci_pconnect() to check the connection validity. When -; set to 0, each oci_pconnect() will cause a ping. Using -1 disables -; pings completely. -; http://php.net/oci8.ping-interval -;oci8.ping_interval = 60 - -; Connection: Set this to a user chosen connection class to be used -; for all pooled server requests with Oracle 11g Database Resident -; Connection Pooling (DRCP). To use DRCP, this value should be set to -; the same string for all web servers running the same application, -; the database pool must be configured, and the connection string must -; specify to use a pooled server. -;oci8.connection_class = - -; High Availability: Using On lets PHP receive Fast Application -; Notification (FAN) events generated when a database node fails. The -; database must also be configured to post FAN events. -;oci8.events = Off - -; Tuning: This option enables statement caching, and specifies how -; many statements to cache. Using 0 disables statement caching. -; http://php.net/oci8.statement-cache-size -;oci8.statement_cache_size = 20 - -; Tuning: Enables statement prefetching and sets the default number of -; rows that will be fetched automatically after statement execution. -; http://php.net/oci8.default-prefetch -;oci8.default_prefetch = 100 - -; Compatibility. Using On means oci_close() will not close -; oci_connect() and oci_new_connect() connections. -; http://php.net/oci8.old-oci-close-semantics -;oci8.old_oci_close_semantics = Off - -[PostgreSQL] -; Allow or prevent persistent links. -; http://php.net/pgsql.allow-persistent -pgsql.allow_persistent = On - -; Detect broken persistent links always with pg_pconnect(). -; Auto reset feature requires a little overheads. -; http://php.net/pgsql.auto-reset-persistent -pgsql.auto_reset_persistent = Off - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/pgsql.max-persistent -pgsql.max_persistent = -1 - -; Maximum number of links (persistent+non persistent). -1 means no limit. -; http://php.net/pgsql.max-links -pgsql.max_links = -1 - -; Ignore PostgreSQL backends Notice message or not. -; Notice message logging require a little overheads. -; http://php.net/pgsql.ignore-notice -pgsql.ignore_notice = 0 - -; Log PostgreSQL backends Notice message or not. -; Unless pgsql.ignore_notice=0, module cannot log notice message. -; http://php.net/pgsql.log-notice -pgsql.log_notice = 0 - -[bcmath] -; Number of decimal digits for all bcmath functions. -; http://php.net/bcmath.scale -bcmath.scale = 0 - -[browscap] -; http://php.net/browscap -;browscap = extra/browscap.ini - -[Session] -; Handler used to store/retrieve data. -; http://php.net/session.save-handler -session.save_handler = files - -; Argument passed to save_handler. In the case of files, this is the path -; where data files are stored. Note: Windows users have to change this -; variable in order to use PHP's session functions. -; -; The path can be defined as: -; -; session.save_path = "N;/path" -; -; where N is an integer. Instead of storing all the session files in -; /path, what this will do is use subdirectories N-levels deep, and -; store the session data in those directories. This is useful if -; your OS has problems with many files in one directory, and is -; a more efficient layout for servers that handle many sessions. -; -; NOTE 1: PHP will not create this directory structure automatically. -; You can use the script in the ext/session dir for that purpose. -; NOTE 2: See the section on garbage collection below if you choose to -; use subdirectories for session storage -; -; The file storage module creates files using mode 600 by default. -; You can change that by using -; -; session.save_path = "N;MODE;/path" -; -; where MODE is the octal representation of the mode. Note that this -; does not overwrite the process's umask. -; http://php.net/session.save-path -;session.save_path = "/tmp" - -; Whether to use strict session mode. -; Strict session mode does not accept uninitialized session ID and regenerate -; session ID if browser sends uninitialized session ID. Strict mode protects -; applications from session fixation via session adoption vulnerability. It is -; disabled by default for maximum compatibility, but enabling it is encouraged. -; https://wiki.php.net/rfc/strict_sessions -session.use_strict_mode = 0 - -; Whether to use cookies. -; http://php.net/session.use-cookies -session.use_cookies = 1 - -; http://php.net/session.cookie-secure -;session.cookie_secure = - -; This option forces PHP to fetch and use a cookie for storing and maintaining -; the session id. We encourage this operation as it's very helpful in combating -; session hijacking when not specifying and managing your own session id. It is -; not the be-all and end-all of session hijacking defense, but it's a good start. -; http://php.net/session.use-only-cookies -session.use_only_cookies = 1 - -; Name of the session (used as cookie name). -; http://php.net/session.name -session.name = PHPSESSID - -; Initialize session on request startup. -; http://php.net/session.auto-start -session.auto_start = 0 - -; Lifetime in seconds of cookie or, if 0, until browser is restarted. -; http://php.net/session.cookie-lifetime -session.cookie_lifetime = 0 - -; The path for which the cookie is valid. -; http://php.net/session.cookie-path -session.cookie_path = / - -; The domain for which the cookie is valid. -; http://php.net/session.cookie-domain -session.cookie_domain = - -; Whether or not to add the httpOnly flag to the cookie, which makes it inaccessible to browser scripting languages such as JavaScript. -; http://php.net/session.cookie-httponly -session.cookie_httponly = - -; Handler used to serialize data. php is the standard serializer of PHP. -; http://php.net/session.serialize-handler -session.serialize_handler = php - -; Defines the probability that the 'garbage collection' process is started -; on every session initialization. The probability is calculated by using -; gc_probability/gc_divisor. Where session.gc_probability is the numerator -; and gc_divisor is the denominator in the equation. Setting this value to 1 -; when the session.gc_divisor value is 100 will give you approximately a 1% chance -; the gc will run on any give request. -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; http://php.net/session.gc-probability -session.gc_probability = 1 - -; Defines the probability that the 'garbage collection' process is started on every -; session initialization. The probability is calculated by using the following equation: -; gc_probability/gc_divisor. Where session.gc_probability is the numerator and -; session.gc_divisor is the denominator in the equation. Setting this value to 1 -; when the session.gc_divisor value is 100 will give you approximately a 1% chance -; the gc will run on any give request. Increasing this value to 1000 will give you -; a 0.1% chance the gc will run on any give request. For high volume production servers, -; this is a more efficient approach. -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 -; http://php.net/session.gc-divisor -session.gc_divisor = 1000 - -; After this number of seconds, stored data will be seen as 'garbage' and -; cleaned up by the garbage collection process. -; http://php.net/session.gc-maxlifetime -session.gc_maxlifetime = 1440 - -; NOTE: If you are using the subdirectory option for storing session files -; (see session.save_path above), then garbage collection does *not* -; happen automatically. You will need to do your own garbage -; collection through a shell script, cron entry, or some other method. -; For example, the following script would is the equivalent of -; setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes): -; find /path/to/sessions -cmin +24 -type f | xargs rm - -; Check HTTP Referer to invalidate externally stored URLs containing ids. -; HTTP_REFERER has to contain this substring for the session to be -; considered as valid. -; http://php.net/session.referer-check -session.referer_check = - -; Set to {nocache,private,public,} to determine HTTP caching aspects -; or leave this empty to avoid sending anti-caching headers. -; http://php.net/session.cache-limiter -session.cache_limiter = nocache - -; Document expires after n minutes. -; http://php.net/session.cache-expire -session.cache_expire = 180 - -; trans sid support is disabled by default. -; Use of trans sid may risk your users' security. -; Use this option with caution. -; - User may send URL contains active session ID -; to other person via. email/irc/etc. -; - URL that contains active session ID may be stored -; in publicly accessible computer. -; - User may access your site with the same session ID -; always using URL stored in browser's history or bookmarks. -; http://php.net/session.use-trans-sid -session.use_trans_sid = 0 - -; Set session ID character length. This value could be between 22 to 256. -; Shorter length than default is supported only for compatibility reason. -; Users should use 32 or more chars. -; http://php.net/session.sid-length -; Default Value: 32 -; Development Value: 26 -; Production Value: 26 -session.sid_length = 26 - -; The URL rewriter will look for URLs in a defined set of HTML tags. -; is special; if you include them here, the rewriter will -; add a hidden field with the info which is otherwise appended -; to URLs. tag's action attribute URL will not be modified -; unless it is specified. -; Note that all valid entries require a "=", even if no value follows. -; Default Value: "a=href,area=href,frame=src,form=" -; Development Value: "a=href,area=href,frame=src,form=" -; Production Value: "a=href,area=href,frame=src,form=" -; http://php.net/url-rewriter.tags -session.trans_sid_tags = "a=href,area=href,frame=src,form=" - -; URL rewriter does not rewrite absolute URLs by default. -; To enable rewrites for absolute pathes, target hosts must be specified -; at RUNTIME. i.e. use ini_set() -; tags is special. PHP will check action attribute's URL regardless -; of session.trans_sid_tags setting. -; If no host is defined, HTTP_HOST will be used for allowed host. -; Example value: php.net,www.php.net,wiki.php.net -; Use "," for multiple hosts. No spaces are allowed. -; Default Value: "" -; Development Value: "" -; Production Value: "" -;session.trans_sid_hosts="" - -; Define how many bits are stored in each character when converting -; the binary hash data to something readable. -; Possible values: -; 4 (4 bits: 0-9, a-f) -; 5 (5 bits: 0-9, a-v) -; 6 (6 bits: 0-9, a-z, A-Z, "-", ",") -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 -; http://php.net/session.hash-bits-per-character -session.sid_bits_per_character = 5 - -; Enable upload progress tracking in $_SESSION -; Default Value: On -; Development Value: On -; Production Value: On -; http://php.net/session.upload-progress.enabled -;session.upload_progress.enabled = On - -; Cleanup the progress information as soon as all POST data has been read -; (i.e. upload completed). -; Default Value: On -; Development Value: On -; Production Value: On -; http://php.net/session.upload-progress.cleanup -;session.upload_progress.cleanup = On - -; A prefix used for the upload progress key in $_SESSION -; Default Value: "upload_progress_" -; Development Value: "upload_progress_" -; Production Value: "upload_progress_" -; http://php.net/session.upload-progress.prefix -;session.upload_progress.prefix = "upload_progress_" - -; The index name (concatenated with the prefix) in $_SESSION -; containing the upload progress information -; Default Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Development Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Production Value: "PHP_SESSION_UPLOAD_PROGRESS" -; http://php.net/session.upload-progress.name -;session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS" - -; How frequently the upload progress should be updated. -; Given either in percentages (per-file), or in bytes -; Default Value: "1%" -; Development Value: "1%" -; Production Value: "1%" -; http://php.net/session.upload-progress.freq -;session.upload_progress.freq = "1%" - -; The minimum delay between updates, in seconds -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; http://php.net/session.upload-progress.min-freq -;session.upload_progress.min_freq = "1" - -; Only write session data when session data is changed. Enabled by default. -; http://php.net/session.lazy-write -;session.lazy_write = On - -[Assertion] -; Switch whether to compile assertions at all (to have no overhead at run-time) -; -1: Do not compile at all -; 0: Jump over assertion at run-time -; 1: Execute assertions -; Changing from or to a negative value is only possible in php.ini! (For turning assertions on and off at run-time, see assert.active, when zend.assertions = 1) -; Default Value: 1 -; Development Value: 1 -; Production Value: -1 -; http://php.net/zend.assertions -zend.assertions = -1 - -; Assert(expr); active by default. -; http://php.net/assert.active -;assert.active = On - -; Throw an AssertationException on failed assertions -; http://php.net/assert.exception -;assert.exception = On - -; Issue a PHP warning for each failed assertion. (Overridden by assert.exception if active) -; http://php.net/assert.warning -;assert.warning = On - -; Don't bail out by default. -; http://php.net/assert.bail -;assert.bail = Off - -; User-function to be called if an assertion fails. -; http://php.net/assert.callback -;assert.callback = 0 - -; Eval the expression with current error_reporting(). Set to true if you want -; error_reporting(0) around the eval(). -; http://php.net/assert.quiet-eval -;assert.quiet_eval = 0 - -[COM] -; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs -; http://php.net/com.typelib-file -;com.typelib_file = - -; allow Distributed-COM calls -; http://php.net/com.allow-dcom -;com.allow_dcom = true - -; autoregister constants of a components typlib on com_load() -; http://php.net/com.autoregister-typelib -;com.autoregister_typelib = true - -; register constants casesensitive -; http://php.net/com.autoregister-casesensitive -;com.autoregister_casesensitive = false - -; show warnings on duplicate constant registrations -; http://php.net/com.autoregister-verbose -;com.autoregister_verbose = true - -; The default character set code-page to use when passing strings to and from COM objects. -; Default: system ANSI code page -;com.code_page= - -[mbstring] -; language for internal character representation. -; This affects mb_send_mail() and mbstring.detect_order. -; http://php.net/mbstring.language -;mbstring.language = Japanese - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; internal/script encoding. -; Some encoding cannot work as internal encoding. (e.g. SJIS, BIG5, ISO-2022-*) -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;mbstring.internal_encoding = - -; Use of this INI entry is deprecated, use global input_encoding instead. -; http input encoding. -; mbstring.encoding_traslation = On is needed to use this setting. -; If empty, default_charset or input_encoding or mbstring.input is used. -; The precedence is: default_charset < intput_encoding < mbsting.http_input -; http://php.net/mbstring.http-input -;mbstring.http_input = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; http output encoding. -; mb_output_handler must be registered as output buffer to function. -; If empty, default_charset or output_encoding or mbstring.http_output is used. -; The precedence is: default_charset < output_encoding < mbstring.http_output -; To use an output encoding conversion, mbstring's output handler must be set -; otherwise output encoding conversion cannot be performed. -; http://php.net/mbstring.http-output -;mbstring.http_output = - -; enable automatic encoding translation according to -; mbstring.internal_encoding setting. Input chars are -; converted to internal encoding by setting this to On. -; Note: Do _not_ use automatic encoding translation for -; portable libs/applications. -; http://php.net/mbstring.encoding-translation -;mbstring.encoding_translation = Off - -; automatic encoding detection order. -; "auto" detect order is changed according to mbstring.language -; http://php.net/mbstring.detect-order -;mbstring.detect_order = auto - -; substitute_character used when character cannot be converted -; one from another -; http://php.net/mbstring.substitute-character -;mbstring.substitute_character = none - -; overload(replace) single byte functions by mbstring functions. -; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(), -; etc. Possible values are 0,1,2,4 or combination of them. -; For example, 7 for overload everything. -; 0: No overload -; 1: Overload mail() function -; 2: Overload str*() functions -; 4: Overload ereg*() functions -; http://php.net/mbstring.func-overload -;mbstring.func_overload = 0 - -; enable strict encoding detection. -; Default: Off -;mbstring.strict_detection = On - -; This directive specifies the regex pattern of content types for which mb_output_handler() -; is activated. -; Default: mbstring.http_output_conv_mimetype=^(text/|application/xhtml\+xml) -;mbstring.http_output_conv_mimetype= - -[gd] -; Tell the jpeg decode to ignore warnings and try to create -; a gd image. The warning will then be displayed as notices -; disabled by default -; http://php.net/gd.jpeg-ignore-warning -;gd.jpeg_ignore_warning = 1 - -[exif] -; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS. -; With mbstring support this will automatically be converted into the encoding -; given by corresponding encode setting. When empty mbstring.internal_encoding -; is used. For the decode settings you can distinguish between motorola and -; intel byte order. A decode setting cannot be empty. -; http://php.net/exif.encode-unicode -;exif.encode_unicode = ISO-8859-15 - -; http://php.net/exif.decode-unicode-motorola -;exif.decode_unicode_motorola = UCS-2BE - -; http://php.net/exif.decode-unicode-intel -;exif.decode_unicode_intel = UCS-2LE - -; http://php.net/exif.encode-jis -;exif.encode_jis = - -; http://php.net/exif.decode-jis-motorola -;exif.decode_jis_motorola = JIS - -; http://php.net/exif.decode-jis-intel -;exif.decode_jis_intel = JIS - -[Tidy] -; The path to a default tidy configuration file to use when using tidy -; http://php.net/tidy.default-config -;tidy.default_config = /usr/local/lib/php/default.tcfg - -; Should tidy clean and repair output automatically? -; WARNING: Do not use this option if you are generating non-html content -; such as dynamic images -; http://php.net/tidy.clean-output -tidy.clean_output = Off - -[soap] -; Enables or disables WSDL caching feature. -; http://php.net/soap.wsdl-cache-enabled -soap.wsdl_cache_enabled=1 - -; Sets the directory name where SOAP extension will put cache files. -; http://php.net/soap.wsdl-cache-dir -soap.wsdl_cache_dir="/tmp" - -; (time to live) Sets the number of second while cached file will be used -; instead of original one. -; http://php.net/soap.wsdl-cache-ttl -soap.wsdl_cache_ttl=86400 - -; Sets the size of the cache limit. (Max. number of WSDL files to cache) -soap.wsdl_cache_limit = 5 - -[sysvshm] -; A default size of the shared memory segment -;sysvshm.init_mem = 10000 - -[ldap] -; Sets the maximum number of open links or -1 for unlimited. -ldap.max_links = -1 - -[dba] -;dba.default_handler= - -[opcache] -; Determines if Zend OPCache is enabled -;opcache.enable=1 - -; Determines if Zend OPCache is enabled for the CLI version of PHP -;opcache.enable_cli=1 - -; The OPcache shared memory storage size. -;opcache.memory_consumption=128 - -; The amount of memory for interned strings in Mbytes. -;opcache.interned_strings_buffer=8 - -; The maximum number of keys (scripts) in the OPcache hash table. -; Only numbers between 200 and 1000000 are allowed. -;opcache.max_accelerated_files=10000 - -; The maximum percentage of "wasted" memory until a restart is scheduled. -;opcache.max_wasted_percentage=5 - -; When this directive is enabled, the OPcache appends the current working -; directory to the script key, thus eliminating possible collisions between -; files with the same name (basename). Disabling the directive improves -; performance, but may break existing applications. -;opcache.use_cwd=1 - -; When disabled, you must reset the OPcache manually or restart the -; webserver for changes to the filesystem to take effect. -;opcache.validate_timestamps=1 - -; How often (in seconds) to check file timestamps for changes to the shared -; memory storage allocation. ("1" means validate once per second, but only -; once per request. "0" means always validate) -;opcache.revalidate_freq=2 - -; Enables or disables file search in include_path optimization -;opcache.revalidate_path=0 - -; If disabled, all PHPDoc comments are dropped from the code to reduce the -; size of the optimized code. -;opcache.save_comments=1 - -; If enabled, a fast shutdown sequence is used for the accelerated code -; Depending on the used Memory Manager this may cause some incompatibilities. -;opcache.fast_shutdown=0 - -; Allow file existence override (file_exists, etc.) performance feature. -;opcache.enable_file_override=0 - -; A bitmask, where each bit enables or disables the appropriate OPcache -; passes -;opcache.optimization_level=0xffffffff - -;opcache.inherited_hack=1 -;opcache.dups_fix=0 - -; The location of the OPcache blacklist file (wildcards allowed). -; Each OPcache blacklist file is a text file that holds the names of files -; that should not be accelerated. The file format is to add each filename -; to a new line. The filename may be a full path or just a file prefix -; (i.e., /var/www/x blacklists all the files and directories in /var/www -; that start with 'x'). Line starting with a ; are ignored (comments). -;opcache.blacklist_filename= - -; Allows exclusion of large files from being cached. By default all files -; are cached. -;opcache.max_file_size=0 - -; Check the cache checksum each N requests. -; The default value of "0" means that the checks are disabled. -;opcache.consistency_checks=0 - -; How long to wait (in seconds) for a scheduled restart to begin if the cache -; is not being accessed. -;opcache.force_restart_timeout=180 - -; OPcache error_log file name. Empty string assumes "stderr". -;opcache.error_log= - -; All OPcache errors go to the Web server log. -; By default, only fatal errors (level 0) or errors (level 1) are logged. -; You can also enable warnings (level 2), info messages (level 3) or -; debug messages (level 4). -;opcache.log_verbosity_level=1 - -; Preferred Shared Memory back-end. Leave empty and let the system decide. -;opcache.preferred_memory_model= - -; Protect the shared memory from unexpected writing during script execution. -; Useful for internal debugging only. -;opcache.protect_memory=0 - -; Allows calling OPcache API functions only from PHP scripts which path is -; started from specified string. The default "" means no restriction -;opcache.restrict_api= - -; Mapping base of shared memory segments (for Windows only). All the PHP -; processes have to map shared memory into the same address space. This -; directive allows to manually fix the "Unable to reattach to base address" -; errors. -;opcache.mmap_base= - -; Enables and sets the second level cache directory. -; It should improve performance when SHM memory is full, at server restart or -; SHM reset. The default "" disables file based caching. -;opcache.file_cache= - -; Enables or disables opcode caching in shared memory. -;opcache.file_cache_only=0 - -; Enables or disables checksum validation when script loaded from file cache. -;opcache.file_cache_consistency_checks=1 - -; Implies opcache.file_cache_only=1 for a certain process that failed to -; reattach to the shared memory (for Windows only). Explicitly enabled file -; cache is required. -;opcache.file_cache_fallback=1 - -; Enables or disables copying of PHP code (text segment) into HUGE PAGES. -; This should improve performance, but requires appropriate OS configuration. -;opcache.huge_code_pages=1 - -; Validate cached file permissions. -;opcache.validate_permission=0 - -; Prevent name collisions in chroot'ed environment. -;opcache.validate_root=0 - -[curl] -; A default value for the CURLOPT_CAINFO option. This is required to be an -; absolute path. -;curl.cainfo = - -[openssl] -; The location of a Certificate Authority (CA) file on the local filesystem -; to use when verifying the identity of SSL/TLS peers. Most users should -; not specify a value for this directive as PHP will attempt to use the -; OS-managed cert stores in its absence. If specified, this value may still -; be overridden on a per-stream basis via the "cafile" SSL stream context -; option. -;openssl.cafile= - -; If openssl.cafile is not specified or if the CA file is not found, the -; directory pointed to by openssl.capath is searched for a suitable -; certificate. This value must be a correctly hashed certificate directory. -; Most users should not specify a value for this directive as PHP will -; attempt to use the OS-managed cert stores in its absence. If specified, -; this value may still be overridden on a per-stream basis via the "capath" -; SSL stream context option. -;openssl.capath= - -; Local Variables: -; tab-width: 4 -; End: - -[XDebug] -xdebug.remote_enable = 1 -xdebug.remote_handler = "dbgp" -; Set to host.docker.internal on Mac and Windows, otherwise, set to host real ip -xdebug.remote_host = host.docker.internal -;xdebug.remote_port = 9000 -xdebug.remote_log = /var/log/php/xdebug2.log - -SERVER_ENV=develop - -yaf.use_spl_autoload=1 - -[xhprof] -;xhprof.output_dir = /var/log/php/xhprof.log \ No newline at end of file diff --git a/php5/5.5.38/conf/php-fpm.conf b/php5/5.5.38/conf/php-fpm.conf deleted file mode 100644 index 131835891..000000000 --- a/php5/5.5.38/conf/php-fpm.conf +++ /dev/null @@ -1,423 +0,0 @@ -; Start a new pool named 'www'. -; the variable $pool can be used in any directive and will be replaced by the -; pool name ('www' here) -[www] - -; Per pool prefix -; It only applies on the following directives: -; - 'access.log' -; - 'slowlog' -; - 'listen' (unixsocket) -; - 'chroot' -; - 'chdir' -; - 'php_values' -; - 'php_admin_values' -; When not set, the global prefix (or NONE) applies instead. -; Note: This directive can also be relative to the global prefix. -; Default Value: none -;prefix = /path/to/pools/$pool - -; Unix user/group of processes -; Note: The user is mandatory. If the group is not set, the default user's group -; will be used. -user = www-data -group = www-data - -; The address on which to accept FastCGI requests. -; Valid syntaxes are: -; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on -; a specific port; -; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on -; a specific port; -; 'port' - to listen on a TCP socket to all addresses -; (IPv6 and IPv4-mapped) on a specific port; -; '/path/to/unix/socket' - to listen on a unix socket. -; Note: This value is mandatory. -listen = 127.0.0.1:9000 - -; Set listen(2) backlog. -; Default Value: 511 (-1 on FreeBSD and OpenBSD) -;listen.backlog = 511 - -; Set permissions for unix socket, if one is used. In Linux, read/write -; permissions must be set in order to allow connections from a web server. Many -; BSD-derived systems allow connections regardless of permissions. -; Default Values: user and group are set as the running user -; mode is set to 0660 -;listen.owner = www-data -;listen.group = www-data -;listen.mode = 0660 -; When POSIX Access Control Lists are supported you can set them using -; these options, value is a comma separated list of user/group names. -; When set, listen.owner and listen.group are ignored -;listen.acl_users = -;listen.acl_groups = - -; List of addresses (IPv4/IPv6) of FastCGI clients which are allowed to connect. -; Equivalent to the FCGI_WEB_SERVER_ADDRS environment variable in the original -; PHP FCGI (5.2.2+). Makes sense only with a tcp listening socket. Each address -; must be separated by a comma. If this value is left blank, connections will be -; accepted from any ip address. -; Default Value: any -;listen.allowed_clients = 127.0.0.1 - -; Specify the nice(2) priority to apply to the pool processes (only if set) -; The value can vary from -19 (highest priority) to 20 (lower priority) -; Note: - It will only work if the FPM master process is launched as root -; - The pool processes will inherit the master process priority -; unless it specified otherwise -; Default Value: no set -; process.priority = -19 - -; Set the process dumpable flag (PR_SET_DUMPABLE prctl) even if the process user -; or group is differrent than the master process user. It allows to create process -; core dump and ptrace the process for the pool user. -; Default Value: no -; process.dumpable = yes - -; Choose how the process manager will control the number of child processes. -; Possible Values: -; static - a fixed number (pm.max_children) of child processes; -; dynamic - the number of child processes are set dynamically based on the -; following directives. With this process management, there will be -; always at least 1 children. -; pm.max_children - the maximum number of children that can -; be alive at the same time. -; pm.start_servers - the number of children created on startup. -; pm.min_spare_servers - the minimum number of children in 'idle' -; state (waiting to process). If the number -; of 'idle' processes is less than this -; number then some children will be created. -; pm.max_spare_servers - the maximum number of children in 'idle' -; state (waiting to process). If the number -; of 'idle' processes is greater than this -; number then some children will be killed. -; ondemand - no children are created at startup. Children will be forked when -; new requests will connect. The following parameter are used: -; pm.max_children - the maximum number of children that -; can be alive at the same time. -; pm.process_idle_timeout - The number of seconds after which -; an idle process will be killed. -; Note: This value is mandatory. -pm = dynamic - -; The number of child processes to be created when pm is set to 'static' and the -; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'. -; This value sets the limit on the number of simultaneous requests that will be -; served. Equivalent to the ApacheMaxClients directive with mpm_prefork. -; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP -; CGI. The below defaults are based on a server without much resources. Don't -; forget to tweak pm.* to fit your needs. -; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand' -; Note: This value is mandatory. -pm.max_children = 10 - -; The number of child processes created on startup. -; Note: Used only when pm is set to 'dynamic' -; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2 -pm.start_servers = 2 - -; The desired minimum number of idle server processes. -; Note: Used only when pm is set to 'dynamic' -; Note: Mandatory when pm is set to 'dynamic' -pm.min_spare_servers = 1 - -; The desired maximum number of idle server processes. -; Note: Used only when pm is set to 'dynamic' -; Note: Mandatory when pm is set to 'dynamic' -pm.max_spare_servers = 3 - -; The number of seconds after which an idle process will be killed. -; Note: Used only when pm is set to 'ondemand' -; Default Value: 10s -;pm.process_idle_timeout = 10s; - -; The number of requests each child process should execute before respawning. -; This can be useful to work around memory leaks in 3rd party libraries. For -; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS. -; Default Value: 0 -;pm.max_requests = 500 - -; The URI to view the FPM status page. If this value is not set, no URI will be -; recognized as a status page. It shows the following informations: -; pool - the name of the pool; -; process manager - static, dynamic or ondemand; -; start time - the date and time FPM has started; -; start since - number of seconds since FPM has started; -; accepted conn - the number of request accepted by the pool; -; listen queue - the number of request in the queue of pending -; connections (see backlog in listen(2)); -; max listen queue - the maximum number of requests in the queue -; of pending connections since FPM has started; -; listen queue len - the size of the socket queue of pending connections; -; idle processes - the number of idle processes; -; active processes - the number of active processes; -; total processes - the number of idle + active processes; -; max active processes - the maximum number of active processes since FPM -; has started; -; max children reached - number of times, the process limit has been reached, -; when pm tries to start more children (works only for -; pm 'dynamic' and 'ondemand'); -; Value are updated in real time. -; Example output: -; pool: www -; process manager: static -; start time: 01/Jul/2011:17:53:49 +0200 -; start since: 62636 -; accepted conn: 190460 -; listen queue: 0 -; max listen queue: 1 -; listen queue len: 42 -; idle processes: 4 -; active processes: 11 -; total processes: 15 -; max active processes: 12 -; max children reached: 0 -; -; By default the status page output is formatted as text/plain. Passing either -; 'html', 'xml' or 'json' in the query string will return the corresponding -; output syntax. Example: -; http://www.foo.bar/status -; http://www.foo.bar/status?json -; http://www.foo.bar/status?html -; http://www.foo.bar/status?xml -; -; By default the status page only outputs short status. Passing 'full' in the -; query string will also return status for each pool process. -; Example: -; http://www.foo.bar/status?full -; http://www.foo.bar/status?json&full -; http://www.foo.bar/status?html&full -; http://www.foo.bar/status?xml&full -; The Full status returns for each process: -; pid - the PID of the process; -; state - the state of the process (Idle, Running, ...); -; start time - the date and time the process has started; -; start since - the number of seconds since the process has started; -; requests - the number of requests the process has served; -; request duration - the duration in µs of the requests; -; request method - the request method (GET, POST, ...); -; request URI - the request URI with the query string; -; content length - the content length of the request (only with POST); -; user - the user (PHP_AUTH_USER) (or '-' if not set); -; script - the main script called (or '-' if not set); -; last request cpu - the %cpu the last request consumed -; it's always 0 if the process is not in Idle state -; because CPU calculation is done when the request -; processing has terminated; -; last request memory - the max amount of memory the last request consumed -; it's always 0 if the process is not in Idle state -; because memory calculation is done when the request -; processing has terminated; -; If the process is in Idle state, then informations are related to the -; last request the process has served. Otherwise informations are related to -; the current request being served. -; Example output: -; ************************ -; pid: 31330 -; state: Running -; start time: 01/Jul/2011:17:53:49 +0200 -; start since: 63087 -; requests: 12808 -; request duration: 1250261 -; request method: GET -; request URI: /test_mem.php?N=10000 -; content length: 0 -; user: - -; script: /home/fat/web/docs/php/test_mem.php -; last request cpu: 0.00 -; last request memory: 0 -; -; Note: There is a real-time FPM status monitoring sample web page available -; It's available in: /usr/local/share/php/fpm/status.html -; -; Note: The value must start with a leading slash (/). The value can be -; anything, but it may not be a good idea to use the .php extension or it -; may conflict with a real PHP file. -; Default Value: not set -;pm.status_path = /status - -; The ping URI to call the monitoring page of FPM. If this value is not set, no -; URI will be recognized as a ping page. This could be used to test from outside -; that FPM is alive and responding, or to -; - create a graph of FPM availability (rrd or such); -; - remove a server from a group if it is not responding (load balancing); -; - trigger alerts for the operating team (24/7). -; Note: The value must start with a leading slash (/). The value can be -; anything, but it may not be a good idea to use the .php extension or it -; may conflict with a real PHP file. -; Default Value: not set -;ping.path = /ping - -; This directive may be used to customize the response of a ping request. The -; response is formatted as text/plain with a 200 response code. -; Default Value: pong -;ping.response = pong - -; The access log file -; Default: not set -;access.log = log/$pool.access.log - -; The access log format. -; The following syntax is allowed -; %%: the '%' character -; %C: %CPU used by the request -; it can accept the following format: -; - %{user}C for user CPU only -; - %{system}C for system CPU only -; - %{total}C for user + system CPU (default) -; %d: time taken to serve the request -; it can accept the following format: -; - %{seconds}d (default) -; - %{miliseconds}d -; - %{mili}d -; - %{microseconds}d -; - %{micro}d -; %e: an environment variable (same as $_ENV or $_SERVER) -; it must be associated with embraces to specify the name of the env -; variable. Some exemples: -; - server specifics like: %{REQUEST_METHOD}e or %{SERVER_PROTOCOL}e -; - HTTP headers like: %{HTTP_HOST}e or %{HTTP_USER_AGENT}e -; %f: script filename -; %l: content-length of the request (for POST request only) -; %m: request method -; %M: peak of memory allocated by PHP -; it can accept the following format: -; - %{bytes}M (default) -; - %{kilobytes}M -; - %{kilo}M -; - %{megabytes}M -; - %{mega}M -; %n: pool name -; %o: output header -; it must be associated with embraces to specify the name of the header: -; - %{Content-Type}o -; - %{X-Powered-By}o -; - %{Transfert-Encoding}o -; - .... -; %p: PID of the child that serviced the request -; %P: PID of the parent of the child that serviced the request -; %q: the query string -; %Q: the '?' character if query string exists -; %r: the request URI (without the query string, see %q and %Q) -; %R: remote IP address -; %s: status (response code) -; %t: server time the request was received -; it can accept a strftime(3) format: -; %d/%b/%Y:%H:%M:%S %z (default) -; The strftime(3) format must be encapsuled in a %{}t tag -; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t -; %T: time the log has been written (the request has finished) -; it can accept a strftime(3) format: -; %d/%b/%Y:%H:%M:%S %z (default) -; The strftime(3) format must be encapsuled in a %{}t tag -; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t -; %u: remote user -; -; Default: "%R - %u %t \"%m %r\" %s" -;access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%" - -; The log file for slow requests -; Default Value: not set -; Note: slowlog is mandatory if request_slowlog_timeout is set -slowlog = /var/log/php/fpm.slow.log - -; The timeout for serving a single request after which a PHP backtrace will be -; dumped to the 'slowlog' file. A value of '0s' means 'off'. -; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) -; Default Value: 0 -request_slowlog_timeout = 3 - -; Depth of slow log stack trace. -; Default Value: 20 -;request_slowlog_trace_depth = 20 - -; The timeout for serving a single request after which the worker process will -; be killed. This option should be used when the 'max_execution_time' ini option -; does not stop script execution for some reason. A value of '0' means 'off'. -; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) -; Default Value: 0 -;request_terminate_timeout = 0 - -; Set open file descriptor rlimit. -; Default Value: system defined value -;rlimit_files = 1024 - -; Set max core size rlimit. -; Possible Values: 'unlimited' or an integer greater or equal to 0 -; Default Value: system defined value -;rlimit_core = 0 - -; Chroot to this directory at the start. This value must be defined as an -; absolute path. When this value is not set, chroot is not used. -; Note: you can prefix with '$prefix' to chroot to the pool prefix or one -; of its subdirectories. If the pool prefix is not set, the global prefix -; will be used instead. -; Note: chrooting is a great security feature and should be used whenever -; possible. However, all PHP paths will be relative to the chroot -; (error_log, sessions.save_path, ...). -; Default Value: not set -;chroot = - -; Chdir to this directory at the start. -; Note: relative path can be used. -; Default Value: current directory or / when chroot -;chdir = /var/www - -; Redirect worker stdout and stderr into main error log. If not set, stdout and -; stderr will be redirected to /dev/null according to FastCGI specs. -; Note: on highloaded environement, this can cause some delay in the page -; process time (several ms). -; Default Value: no -catch_workers_output = yes - -; Clear environment in FPM workers -; Prevents arbitrary environment variables from reaching FPM worker processes -; by clearing the environment in workers before env vars specified in this -; pool configuration are added. -; Setting to "no" will make all environment variables available to PHP code -; via getenv(), $_ENV and $_SERVER. -; Default Value: yes -;clear_env = no - -; Limits the extensions of the main script FPM will allow to parse. This can -; prevent configuration mistakes on the web server side. You should only limit -; FPM to .php extensions to prevent malicious users to use other extensions to -; execute php code. -; Note: set an empty value to allow all extensions. -; Default Value: .php -;security.limit_extensions = .php .php3 .php4 .php5 .php7 - -; Pass environment variables like LD_LIBRARY_PATH. All $VARIABLEs are taken from -; the current environment. -; Default Value: clean env -;env[HOSTNAME] = $HOSTNAME -;env[PATH] = /usr/local/bin:/usr/bin:/bin -;env[TMP] = /tmp -;env[TMPDIR] = /tmp -;env[TEMP] = /tmp - -; Additional php.ini defines, specific to this pool of workers. These settings -; overwrite the values previously defined in the php.ini. The directives are the -; same as the PHP SAPI: -; php_value/php_flag - you can set classic ini defines which can -; be overwritten from PHP call 'ini_set'. -; php_admin_value/php_admin_flag - these directives won't be overwritten by -; PHP call 'ini_set' -; For php_*flag, valid values are on, off, 1, 0, true, false, yes or no. - -; Defining 'extension' will load the corresponding shared extension from -; extension_dir. Defining 'disable_functions' or 'disable_classes' will not -; overwrite previously defined php.ini values, but will append the new value -; instead. - -; Note: path INI options can be relative and will be expanded with the prefix -; (pool, global or /usr/local) - -; Default Value: nothing is defined by default except the values in php.ini and -; specified at startup with the -d argument -;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com -;php_flag[display_errors] = off -;php_admin_value[error_log] = /var/log/fpm-php.www.log -;php_admin_flag[log_errors] = on -;php_admin_value[memory_limit] = 32M diff --git a/php5/5.5.38/conf/php.ini b/php5/5.5.38/conf/php.ini deleted file mode 100644 index b6b0aee69..000000000 --- a/php5/5.5.38/conf/php.ini +++ /dev/null @@ -1,1933 +0,0 @@ -[PHP] - -;;;;;;;;;;;;;;;;;;; -; About php.ini ; -;;;;;;;;;;;;;;;;;;; -; PHP's initialization file, generally called php.ini, is responsible for -; configuring many of the aspects of PHP's behavior. - -; PHP attempts to find and load this configuration from a number of locations. -; The following is a summary of its search order: -; 1. SAPI module specific location. -; 2. The PHPRC environment variable. (As of PHP 5.2.0) -; 3. A number of predefined registry keys on Windows (As of PHP 5.2.0) -; 4. Current working directory (except CLI) -; 5. The web server's directory (for SAPI modules), or directory of PHP -; (otherwise in Windows) -; 6. The directory from the --with-config-file-path compile time option, or the -; Windows directory (C:\windows or C:\winnt) -; See the PHP docs for more specific information. -; http://php.net/configuration.file - -; The syntax of the file is extremely simple. Whitespace and lines -; beginning with a semicolon are silently ignored (as you probably guessed). -; Section headers (e.g. [Foo]) are also silently ignored, even though -; they might mean something in the future. - -; Directives following the section heading [PATH=/www/mysite] only -; apply to PHP files in the /www/mysite directory. Directives -; following the section heading [HOST=www.example.com] only apply to -; PHP files served from www.example.com. Directives set in these -; special sections cannot be overridden by user-defined INI files or -; at runtime. Currently, [PATH=] and [HOST=] sections only work under -; CGI/FastCGI. -; http://php.net/ini.sections - -; Directives are specified using the following syntax: -; directive = value -; Directive names are *case sensitive* - foo=bar is different from FOO=bar. -; Directives are variables used to configure PHP or PHP extensions. -; There is no name validation. If PHP can't find an expected -; directive because it is not set or is mistyped, a default value will be used. - -; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one -; of the INI constants (On, Off, True, False, Yes, No and None) or an expression -; (e.g. E_ALL & ~E_NOTICE), a quoted string ("bar"), or a reference to a -; previously set variable or directive (e.g. ${foo}) - -; Expressions in the INI file are limited to bitwise operators and parentheses: -; | bitwise OR -; ^ bitwise XOR -; & bitwise AND -; ~ bitwise NOT -; ! boolean NOT - -; Boolean flags can be turned on using the values 1, On, True or Yes. -; They can be turned off using the values 0, Off, False or No. - -; An empty string can be denoted by simply not writing anything after the equal -; sign, or by using the None keyword: - -; foo = ; sets foo to an empty string -; foo = None ; sets foo to an empty string -; foo = "None" ; sets foo to the string 'None' - -; If you use constants in your value, and these constants belong to a -; dynamically loaded extension (either a PHP extension or a Zend extension), -; you may only use these constants *after* the line that loads the extension. - -;;;;;;;;;;;;;;;;;;; -; About this file ; -;;;;;;;;;;;;;;;;;;; -; PHP comes packaged with two INI files. One that is recommended to be used -; in production environments and one that is recommended to be used in -; development environments. - -; php.ini-production contains settings which hold security, performance and -; best practices at its core. But please be aware, these settings may break -; compatibility with older or less security conscience applications. We -; recommending using the production ini in production and testing environments. - -; php.ini-development is very similar to its production variant, except it is -; much more verbose when it comes to errors. We recommend using the -; development version only in development environments, as errors shown to -; application users can inadvertently leak otherwise secure information. - -; This is php.ini-production INI file. - -;;;;;;;;;;;;;;;;;;; -; Quick Reference ; -;;;;;;;;;;;;;;;;;;; -; The following are all the settings which are different in either the production -; or development versions of the INIs with respect to PHP's default behavior. -; Please see the actual settings later in the document for more details as to why -; we recommend these changes in PHP's behavior. - -; display_errors -; Default Value: On -; Development Value: On -; Production Value: Off - -; display_startup_errors -; Default Value: Off -; Development Value: On -; Production Value: Off - -; error_reporting -; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT - -; html_errors -; Default Value: On -; Development Value: On -; Production value: On - -; log_errors -; Default Value: Off -; Development Value: On -; Production Value: On - -; max_input_time -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) - -; output_buffering -; Default Value: Off -; Development Value: 4096 -; Production Value: 4096 - -; register_argc_argv -; Default Value: On -; Development Value: Off -; Production Value: Off - -; request_order -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" - -; session.gc_divisor -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 - -; session.sid_bits_per_character -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 - -; short_open_tag -; Default Value: On -; Development Value: Off -; Production Value: Off - -; track_errors -; Default Value: Off -; Development Value: On -; Production Value: Off - -; variables_order -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS" - -;;;;;;;;;;;;;;;;;;;; -; php.ini Options ; -;;;;;;;;;;;;;;;;;;;; -; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini" -;user_ini.filename = ".user.ini" - -; To disable this feature set this option to empty value -;user_ini.filename = - -; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes) -;user_ini.cache_ttl = 300 - -;;;;;;;;;;;;;;;;;;;; -; Language Options ; -;;;;;;;;;;;;;;;;;;;; - -; Enable the PHP scripting language engine under Apache. -; http://php.net/engine -engine = On - -; This directive determines whether or not PHP will recognize code between -; tags as PHP source which should be processed as such. It is -; generally recommended that should be used and that this feature -; should be disabled, as enabling it may result in issues when generating XML -; documents, however this remains supported for backward compatibility reasons. -; Note that this directive does not control the would work. -; http://php.net/syntax-highlighting -;highlight.string = #DD0000 -;highlight.comment = #FF9900 -;highlight.keyword = #007700 -;highlight.default = #0000BB -;highlight.html = #000000 - -; If enabled, the request will be allowed to complete even if the user aborts -; the request. Consider enabling it if executing long requests, which may end up -; being interrupted by the user or a browser timing out. PHP's default behavior -; is to disable this feature. -; http://php.net/ignore-user-abort -;ignore_user_abort = On - -; Determines the size of the realpath cache to be used by PHP. This value should -; be increased on systems where PHP opens many files to reflect the quantity of -; the file operations performed. -; http://php.net/realpath-cache-size -;realpath_cache_size = 4096k - -; Duration of time, in seconds for which to cache realpath information for a given -; file or directory. For systems with rarely changing files, consider increasing this -; value. -; http://php.net/realpath-cache-ttl -;realpath_cache_ttl = 120 - -; Enables or disables the circular reference collector. -; http://php.net/zend.enable-gc -zend.enable_gc = On - -; If enabled, scripts may be written in encodings that are incompatible with -; the scanner. CP936, Big5, CP949 and Shift_JIS are the examples of such -; encodings. To use this feature, mbstring extension must be enabled. -; Default: Off -;zend.multibyte = Off - -; Allows to set the default encoding for the scripts. This value will be used -; unless "declare(encoding=...)" directive appears at the top of the script. -; Only affects if zend.multibyte is set. -; Default: "" -;zend.script_encoding = - -;;;;;;;;;;;;;;;;; -; Miscellaneous ; -;;;;;;;;;;;;;;;;; - -; Decides whether PHP may expose the fact that it is installed on the server -; (e.g. by adding its signature to the Web server header). It is no security -; threat in any way, but it makes it possible to determine whether you use PHP -; on your server or not. -; http://php.net/expose-php -expose_php = Off - -;;;;;;;;;;;;;;;;;;; -; Resource Limits ; -;;;;;;;;;;;;;;;;;;; - -; Maximum execution time of each script, in seconds -; http://php.net/max-execution-time -; Note: This directive is hardcoded to 0 for the CLI SAPI -max_execution_time = 30 - -; Maximum amount of time each script may spend parsing request data. It's a good -; idea to limit this time on productions servers in order to eliminate unexpectedly -; long running scripts. -; Note: This directive is hardcoded to -1 for the CLI SAPI -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) -; http://php.net/max-input-time -max_input_time = 60 - -; Maximum input variable nesting level -; http://php.net/max-input-nesting-level -;max_input_nesting_level = 64 - -; How many GET/POST/COOKIE input variables may be accepted -; max_input_vars = 1000 - -; Maximum amount of memory a script may consume (128MB) -; http://php.net/memory-limit -memory_limit = 256M - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; Error handling and logging ; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -; This directive informs PHP of which errors, warnings and notices you would like -; it to take action for. The recommended way of setting values for this -; directive is through the use of the error level constants and bitwise -; operators. The error level constants are below here for convenience as well as -; some common settings and their meanings. -; By default, PHP is set to take action on all errors, notices and warnings EXCEPT -; those related to E_NOTICE and E_STRICT, which together cover best practices and -; recommended coding standards in PHP. For performance reasons, this is the -; recommend error reporting setting. Your production server shouldn't be wasting -; resources complaining about best practices and coding standards. That's what -; development servers and development settings are for. -; Note: The php.ini-development file has this setting as E_ALL. This -; means it pretty much reports everything which is exactly what you want during -; development and early testing. -; -; Error Level Constants: -; E_ALL - All errors and warnings (includes E_STRICT as of PHP 5.4.0) -; E_ERROR - fatal run-time errors -; E_RECOVERABLE_ERROR - almost fatal run-time errors -; E_WARNING - run-time warnings (non-fatal errors) -; E_PARSE - compile-time parse errors -; E_NOTICE - run-time notices (these are warnings which often result -; from a bug in your code, but it's possible that it was -; intentional (e.g., using an uninitialized variable and -; relying on the fact it is automatically initialized to an -; empty string) -; E_STRICT - run-time notices, enable to have PHP suggest changes -; to your code which will ensure the best interoperability -; and forward compatibility of your code -; E_CORE_ERROR - fatal errors that occur during PHP's initial startup -; E_CORE_WARNING - warnings (non-fatal errors) that occur during PHP's -; initial startup -; E_COMPILE_ERROR - fatal compile-time errors -; E_COMPILE_WARNING - compile-time warnings (non-fatal errors) -; E_USER_ERROR - user-generated error message -; E_USER_WARNING - user-generated warning message -; E_USER_NOTICE - user-generated notice message -; E_DEPRECATED - warn about code that will not work in future versions -; of PHP -; E_USER_DEPRECATED - user-generated deprecation warnings -; -; Common Values: -; E_ALL (Show all errors, warnings and notices including coding standards.) -; E_ALL & ~E_NOTICE (Show all errors, except for notices) -; E_ALL & ~E_NOTICE & ~E_STRICT (Show all errors, except for notices and coding standards warnings.) -; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors) -; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT -; http://php.net/error-reporting -error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT - -; This directive controls whether or not and where PHP will output errors, -; notices and warnings too. Error output is very useful during development, but -; it could be very dangerous in production environments. Depending on the code -; which is triggering the error, sensitive information could potentially leak -; out of your application such as database usernames and passwords or worse. -; For production environments, we recommend logging errors rather than -; sending them to STDOUT. -; Possible Values: -; Off = Do not display any errors -; stderr = Display errors to STDERR (affects only CGI/CLI binaries!) -; On or stdout = Display errors to STDOUT -; Default Value: On -; Development Value: On -; Production Value: Off -; http://php.net/display-errors -display_errors = Off - -; The display of errors which occur during PHP's startup sequence are handled -; separately from display_errors. PHP's default behavior is to suppress those -; errors from clients. Turning the display of startup errors on can be useful in -; debugging configuration problems. We strongly recommend you -; set this to 'off' for production servers. -; Default Value: Off -; Development Value: On -; Production Value: Off -; http://php.net/display-startup-errors -display_startup_errors = Off - -; Besides displaying errors, PHP can also log errors to locations such as a -; server-specific log, STDERR, or a location specified by the error_log -; directive found below. While errors should not be displayed on productions -; servers they should still be monitored and logging is a great way to do that. -; Default Value: Off -; Development Value: On -; Production Value: On -; http://php.net/log-errors -log_errors = On - -; Set maximum length of log_errors. In error_log information about the source is -; added. The default is 1024 and 0 allows to not apply any maximum length at all. -; http://php.net/log-errors-max-len -log_errors_max_len = 1024 - -; Do not log repeated messages. Repeated errors must occur in same file on same -; line unless ignore_repeated_source is set true. -; http://php.net/ignore-repeated-errors -ignore_repeated_errors = Off - -; Ignore source of message when ignoring repeated messages. When this setting -; is On you will not log errors with repeated messages from different files or -; source lines. -; http://php.net/ignore-repeated-source -ignore_repeated_source = Off - -; If this parameter is set to Off, then memory leaks will not be shown (on -; stdout or in the log). This has only effect in a debug compile, and if -; error reporting includes E_WARNING in the allowed list -; http://php.net/report-memleaks -report_memleaks = On - -; This setting is on by default. -;report_zend_debug = 0 - -; Store the last error/warning message in $php_errormsg (boolean). Setting this value -; to On can assist in debugging and is appropriate for development servers. It should -; however be disabled on production servers. -; Default Value: Off -; Development Value: On -; Production Value: Off -; http://php.net/track-errors -track_errors = Off - -; Turn off normal error reporting and emit XML-RPC error XML -; http://php.net/xmlrpc-errors -;xmlrpc_errors = 0 - -; An XML-RPC faultCode -;xmlrpc_error_number = 0 - -; When PHP displays or logs an error, it has the capability of formatting the -; error message as HTML for easier reading. This directive controls whether -; the error message is formatted as HTML or not. -; Note: This directive is hardcoded to Off for the CLI SAPI -; Default Value: On -; Development Value: On -; Production value: On -; http://php.net/html-errors -html_errors = On - -; If html_errors is set to On *and* docref_root is not empty, then PHP -; produces clickable error messages that direct to a page describing the error -; or function causing the error in detail. -; You can download a copy of the PHP manual from http://php.net/docs -; and change docref_root to the base URL of your local copy including the -; leading '/'. You must also specify the file extension being used including -; the dot. PHP's default behavior is to leave these settings empty, in which -; case no links to documentation are generated. -; Note: Never use this feature for production boxes. -; http://php.net/docref-root -; Examples -;docref_root = "/phpmanual/" - -; http://php.net/docref-ext -;docref_ext = .html - -; String to output before an error message. PHP's default behavior is to leave -; this setting blank. -; http://php.net/error-prepend-string -; Example: -;error_prepend_string = "" - -; String to output after an error message. PHP's default behavior is to leave -; this setting blank. -; http://php.net/error-append-string -; Example: -;error_append_string = "" - -; Log errors to specified file. PHP's default behavior is to leave this value -; empty. -; http://php.net/error-log -; Example: -;error_log = php_errors.log -; Log errors to syslog (Event Log on Windows). -error_log = /var/log/php/php.error.log - -;windows.show_crt_warning -; Default value: 0 -; Development value: 0 -; Production value: 0 - -;;;;;;;;;;;;;;;;; -; Data Handling ; -;;;;;;;;;;;;;;;;; - -; The separator used in PHP generated URLs to separate arguments. -; PHP's default setting is "&". -; http://php.net/arg-separator.output -; Example: -;arg_separator.output = "&" - -; List of separator(s) used by PHP to parse input URLs into variables. -; PHP's default setting is "&". -; NOTE: Every character in this directive is considered as separator! -; http://php.net/arg-separator.input -; Example: -;arg_separator.input = ";&" - -; This directive determines which super global arrays are registered when PHP -; starts up. G,P,C,E & S are abbreviations for the following respective super -; globals: GET, POST, COOKIE, ENV and SERVER. There is a performance penalty -; paid for the registration of these arrays and because ENV is not as commonly -; used as the others, ENV is not recommended on productions servers. You -; can still get access to the environment variables through getenv() should you -; need to. -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS"; -; http://php.net/variables-order -variables_order = "GPCS" - -; This directive determines which super global data (G,P & C) should be -; registered into the super global array REQUEST. If so, it also determines -; the order in which that data is registered. The values for this directive -; are specified in the same manner as the variables_order directive, -; EXCEPT one. Leaving this value empty will cause PHP to use the value set -; in the variables_order directive. It does not mean it will leave the super -; globals array REQUEST empty. -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" -; http://php.net/request-order -request_order = "GP" - -; This directive determines whether PHP registers $argv & $argc each time it -; runs. $argv contains an array of all the arguments passed to PHP when a script -; is invoked. $argc contains an integer representing the number of arguments -; that were passed when the script was invoked. These arrays are extremely -; useful when running scripts from the command line. When this directive is -; enabled, registering these variables consumes CPU cycles and memory each time -; a script is executed. For performance reasons, this feature should be disabled -; on production servers. -; Note: This directive is hardcoded to On for the CLI SAPI -; Default Value: On -; Development Value: Off -; Production Value: Off -; http://php.net/register-argc-argv -register_argc_argv = Off - -; When enabled, the ENV, REQUEST and SERVER variables are created when they're -; first used (Just In Time) instead of when the script starts. If these -; variables are not used within a script, having this directive on will result -; in a performance gain. The PHP directive register_argc_argv must be disabled -; for this directive to have any affect. -; http://php.net/auto-globals-jit -auto_globals_jit = On - -; Whether PHP will read the POST data. -; This option is enabled by default. -; Most likely, you won't want to disable this option globally. It causes $_POST -; and $_FILES to always be empty; the only way you will be able to read the -; POST data will be through the php://input stream wrapper. This can be useful -; to proxy requests or to process the POST data in a memory efficient fashion. -; http://php.net/enable-post-data-reading -;enable_post_data_reading = Off - -; Maximum size of POST data that PHP will accept. -; Its value may be 0 to disable the limit. It is ignored if POST data reading -; is disabled through enable_post_data_reading. -; http://php.net/post-max-size -post_max_size = 100M - -; Automatically add files before PHP document. -; http://php.net/auto-prepend-file -auto_prepend_file = - -; Automatically add files after PHP document. -; http://php.net/auto-append-file -auto_append_file = - -; By default, PHP will output a media type using the Content-Type header. To -; disable this, simply set it to be empty. -; -; PHP's built-in default media type is set to text/html. -; http://php.net/default-mimetype -default_mimetype = "text/html" - -; PHP's default character set is set to UTF-8. -; http://php.net/default-charset -default_charset = "UTF-8" - -; PHP internal character encoding is set to empty. -; If empty, default_charset is used. -; http://php.net/internal-encoding -;internal_encoding = - -; PHP input character encoding is set to empty. -; If empty, default_charset is used. -; http://php.net/input-encoding -;input_encoding = - -; PHP output character encoding is set to empty. -; If empty, default_charset is used. -; See also output_buffer. -; http://php.net/output-encoding -;output_encoding = - -;;;;;;;;;;;;;;;;;;;;;;;;; -; Paths and Directories ; -;;;;;;;;;;;;;;;;;;;;;;;;; - -; UNIX: "/path1:/path2" -;include_path = ".:/php/includes" -; -; Windows: "\path1;\path2" -;include_path = ".;c:\php\includes" -; -; PHP's default setting for include_path is ".;/path/to/php/pear" -; http://php.net/include-path - -; The root of the PHP pages, used only if nonempty. -; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root -; if you are running php as a CGI under any web server (other than IIS) -; see documentation for security issues. The alternate is to use the -; cgi.force_redirect configuration below -; http://php.net/doc-root -doc_root = - -; The directory under which PHP opens the script using /~username used only -; if nonempty. -; http://php.net/user-dir -user_dir = - -; Directory in which the loadable extensions (modules) reside. -; http://php.net/extension-dir -; extension_dir = "./" -; On windows: -; extension_dir = "ext" - -; Directory where the temporary files should be placed. -; Defaults to the system default (see sys_get_temp_dir) -; sys_temp_dir = "/tmp" - -; Whether or not to enable the dl() function. The dl() function does NOT work -; properly in multithreaded servers, such as IIS or Zeus, and is automatically -; disabled on them. -; http://php.net/enable-dl -enable_dl = Off - -; cgi.force_redirect is necessary to provide security running PHP as a CGI under -; most web servers. Left undefined, PHP turns this on by default. You can -; turn it off here AT YOUR OWN RISK -; **You CAN safely turn this off for IIS, in fact, you MUST.** -; http://php.net/cgi.force-redirect -;cgi.force_redirect = 1 - -; if cgi.nph is enabled it will force cgi to always sent Status: 200 with -; every request. PHP's default behavior is to disable this feature. -;cgi.nph = 1 - -; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape -; (iPlanet) web servers, you MAY need to set an environment variable name that PHP -; will look for to know it is OK to continue execution. Setting this variable MAY -; cause security issues, KNOW WHAT YOU ARE DOING FIRST. -; http://php.net/cgi.redirect-status-env -;cgi.redirect_status_env = - -; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's -; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok -; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting -; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting -; of zero causes PHP to behave as before. Default is 1. You should fix your scripts -; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. -; http://php.net/cgi.fix-pathinfo -;cgi.fix_pathinfo=1 - -; if cgi.discard_path is enabled, the PHP CGI binary can safely be placed outside -; of the web tree and people will not be able to circumvent .htaccess security. -; http://php.net/cgi.dicard-path -;cgi.discard_path=1 - -; FastCGI under IIS (on WINNT based OS) supports the ability to impersonate -; security tokens of the calling client. This allows IIS to define the -; security context that the request runs under. mod_fastcgi under Apache -; does not currently support this feature (03/17/2002) -; Set to 1 if running under IIS. Default is zero. -; http://php.net/fastcgi.impersonate -;fastcgi.impersonate = 1 - -; Disable logging through FastCGI connection. PHP's default behavior is to enable -; this feature. -;fastcgi.logging = 0 - -; cgi.rfc2616_headers configuration option tells PHP what type of headers to -; use when sending HTTP response code. If set to 0, PHP sends Status: header that -; is supported by Apache. When this option is set to 1, PHP will send -; RFC2616 compliant header. -; Default is zero. -; http://php.net/cgi.rfc2616-headers -;cgi.rfc2616_headers = 0 - -; cgi.check_shebang_line controls whether CGI PHP checks for line starting with #! -; (shebang) at the top of the running script. This line might be needed if the -; script support running both as stand-alone script and via PHP CGI<. PHP in CGI -; mode skips this line and ignores its content if this directive is turned on. -; http://php.net/cgi.check-shebang-line -;cgi.check_shebang_line=1 - -;;;;;;;;;;;;;;;; -; File Uploads ; -;;;;;;;;;;;;;;;; - -; Whether to allow HTTP file uploads. -; http://php.net/file-uploads -file_uploads = On - -; Temporary directory for HTTP uploaded files (will use system default if not -; specified). -; http://php.net/upload-tmp-dir -;upload_tmp_dir = - -; Maximum allowed size for uploaded files. -; http://php.net/upload-max-filesize -upload_max_filesize = 50M - -; Maximum number of files that can be uploaded via a single request -max_file_uploads = 20 - -;;;;;;;;;;;;;;;;;; -; Fopen wrappers ; -;;;;;;;;;;;;;;;;;; - -; Whether to allow the treatment of URLs (like http:// or ftp://) as files. -; http://php.net/allow-url-fopen -allow_url_fopen = On - -; Whether to allow include/require to open URLs (like http:// or ftp://) as files. -; http://php.net/allow-url-include -allow_url_include = Off - -; Define the anonymous ftp password (your email address). PHP's default setting -; for this is empty. -; http://php.net/from -;from="john@doe.com" - -; Define the User-Agent string. PHP's default setting for this is empty. -; http://php.net/user-agent -;user_agent="PHP" - -; Default timeout for socket based streams (seconds) -; http://php.net/default-socket-timeout -default_socket_timeout = 60 - -; If your scripts have to deal with files from Macintosh systems, -; or you are running on a Mac and need to deal with files from -; unix or win32 systems, setting this flag will cause PHP to -; automatically detect the EOL character in those files so that -; fgets() and file() will work regardless of the source of the file. -; http://php.net/auto-detect-line-endings -;auto_detect_line_endings = Off - -;;;;;;;;;;;;;;;;;;;;;; -; Dynamic Extensions ; -;;;;;;;;;;;;;;;;;;;;;; - -; If you wish to have an extension loaded automatically, use the following -; syntax: -; -; extension=modulename.extension -; -; For example, on Windows: -; -; extension=mysqli.dll -; -; ... or under UNIX: -; -; extension=mysqli.so -; -; ... or with a path: -; -; extension=/path/to/extension/mysqli.so -; -; If you only provide the name of the extension, PHP will look for it in its -; default extension directory. -; -; Windows Extensions -; Note that ODBC support is built in, so no dll is needed for it. -; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5+) -; extension folders as well as the separate PECL DLL download (PHP 5+). -; Be sure to appropriately set the extension_dir directive. -; -;extension=php_bz2.dll -;extension=php_curl.dll -;extension=php_fileinfo.dll -;extension=php_ftp.dll -;extension=php_gd2.dll -;extension=php_gettext.dll -;extension=php_gmp.dll -;extension=php_intl.dll -;extension=php_imap.dll -;extension=php_interbase.dll -;extension=php_ldap.dll -;extension=php_mbstring.dll -;extension=php_exif.dll ; Must be after mbstring as it depends on it -;extension=php_mysqli.dll -;extension=php_oci8_12c.dll ; Use with Oracle Database 12c Instant Client -;extension=php_openssl.dll -;extension=php_pdo_firebird.dll -;extension=php_pdo_mysql.dll -;extension=php_pdo_oci.dll -;extension=php_pdo_odbc.dll -;extension=php_pdo_pgsql.dll -;extension=php_pdo_sqlite.dll -;extension=php_pgsql.dll -;extension=php_shmop.dll - -; The MIBS data available in the PHP distribution must be installed. -; See http://www.php.net/manual/en/snmp.installation.php -;extension=php_snmp.dll - -;extension=php_soap.dll -;extension=php_sockets.dll -;extension=php_sqlite3.dll -;extension=php_tidy.dll -;extension=php_xmlrpc.dll -;extension=php_xsl.dll - -;;;;;;;;;;;;;;;;;;; -; Module Settings ; -;;;;;;;;;;;;;;;;;;; - -[CLI Server] -; Whether the CLI web server uses ANSI color coding in its terminal output. -cli_server.color = On - -[Date] -; Defines the default timezone used by the date functions -; http://php.net/date.timezone -date.timezone = Asia/Shanghai - -; http://php.net/date.default-latitude -;date.default_latitude = 31.7667 - -; http://php.net/date.default-longitude -;date.default_longitude = 35.2333 - -; http://php.net/date.sunrise-zenith -;date.sunrise_zenith = 90.583333 - -; http://php.net/date.sunset-zenith -;date.sunset_zenith = 90.583333 - -[filter] -; http://php.net/filter.default -;filter.default = unsafe_raw - -; http://php.net/filter.default-flags -;filter.default_flags = - -[iconv] -; Use of this INI entry is deprecated, use global input_encoding instead. -; If empty, default_charset or input_encoding or iconv.input_encoding is used. -; The precedence is: default_charset < intput_encoding < iconv.input_encoding -;iconv.input_encoding = - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;iconv.internal_encoding = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; If empty, default_charset or output_encoding or iconv.output_encoding is used. -; The precedence is: default_charset < output_encoding < iconv.output_encoding -; To use an output encoding conversion, iconv's output handler must be set -; otherwise output encoding conversion cannot be performed. -;iconv.output_encoding = - -[intl] -;intl.default_locale = -; This directive allows you to produce PHP errors when some error -; happens within intl functions. The value is the level of the error produced. -; Default is 0, which does not produce any errors. -;intl.error_level = E_WARNING -;intl.use_exceptions = 0 - -[sqlite3] -;sqlite3.extension_dir = - -[Pcre] -;PCRE library backtracking limit. -; http://php.net/pcre.backtrack-limit -;pcre.backtrack_limit=100000 - -;PCRE library recursion limit. -;Please note that if you set this value to a high number you may consume all -;the available process stack and eventually crash PHP (due to reaching the -;stack size limit imposed by the Operating System). -; http://php.net/pcre.recursion-limit -;pcre.recursion_limit=100000 - -;Enables or disables JIT compilation of patterns. This requires the PCRE -;library to be compiled with JIT support. -;pcre.jit=1 - -[Pdo] -; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off" -; http://php.net/pdo-odbc.connection-pooling -;pdo_odbc.connection_pooling=strict - -;pdo_odbc.db2_instance_name - -[Pdo_mysql] -; If mysqlnd is used: Number of cache slots for the internal result set cache -; http://php.net/pdo_mysql.cache_size -pdo_mysql.cache_size = 2000 - -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -; http://php.net/pdo_mysql.default-socket -pdo_mysql.default_socket= - -[Phar] -; http://php.net/phar.readonly -;phar.readonly = On - -; http://php.net/phar.require-hash -;phar.require_hash = On - -;phar.cache_list = - -[mail function] -; For Win32 only. -; http://php.net/smtp -SMTP = localhost -; http://php.net/smtp-port -smtp_port = 25 - -; For Win32 only. -; http://php.net/sendmail-from -;sendmail_from = me@example.com - -; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). -; http://php.net/sendmail-path -;sendmail_path = - -; Force the addition of the specified parameters to be passed as extra parameters -; to the sendmail binary. These parameters will always replace the value of -; the 5th parameter to mail(). -;mail.force_extra_parameters = - -; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename -mail.add_x_header = On - -; The path to a log file that will log all mail() calls. Log entries include -; the full path of the script, line number, To address and headers. -;mail.log = -; Log mail to syslog (Event Log on Windows). -;mail.log = syslog - -[ODBC] -; http://php.net/odbc.default-db -;odbc.default_db = Not yet implemented - -; http://php.net/odbc.default-user -;odbc.default_user = Not yet implemented - -; http://php.net/odbc.default-pw -;odbc.default_pw = Not yet implemented - -; Controls the ODBC cursor model. -; Default: SQL_CURSOR_STATIC (default). -;odbc.default_cursortype - -; Allow or prevent persistent links. -; http://php.net/odbc.allow-persistent -odbc.allow_persistent = On - -; Check that a connection is still valid before reuse. -; http://php.net/odbc.check-persistent -odbc.check_persistent = On - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/odbc.max-persistent -odbc.max_persistent = -1 - -; Maximum number of links (persistent + non-persistent). -1 means no limit. -; http://php.net/odbc.max-links -odbc.max_links = -1 - -; Handling of LONG fields. Returns number of bytes to variables. 0 means -; passthru. -; http://php.net/odbc.defaultlrl -odbc.defaultlrl = 4096 - -; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char. -; See the documentation on odbc_binmode and odbc_longreadlen for an explanation -; of odbc.defaultlrl and odbc.defaultbinmode -; http://php.net/odbc.defaultbinmode -odbc.defaultbinmode = 1 - -;birdstep.max_links = -1 - -[Interbase] -; Allow or prevent persistent links. -ibase.allow_persistent = 1 - -; Maximum number of persistent links. -1 means no limit. -ibase.max_persistent = -1 - -; Maximum number of links (persistent + non-persistent). -1 means no limit. -ibase.max_links = -1 - -; Default database name for ibase_connect(). -;ibase.default_db = - -; Default username for ibase_connect(). -;ibase.default_user = - -; Default password for ibase_connect(). -;ibase.default_password = - -; Default charset for ibase_connect(). -;ibase.default_charset = - -; Default timestamp format. -ibase.timestampformat = "%Y-%m-%d %H:%M:%S" - -; Default date format. -ibase.dateformat = "%Y-%m-%d" - -; Default time format. -ibase.timeformat = "%H:%M:%S" - -[MySQLi] - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/mysqli.max-persistent -mysqli.max_persistent = -1 - -; Allow accessing, from PHP's perspective, local files with LOAD DATA statements -; http://php.net/mysqli.allow_local_infile -;mysqli.allow_local_infile = On - -; Allow or prevent persistent links. -; http://php.net/mysqli.allow-persistent -mysqli.allow_persistent = On - -; Maximum number of links. -1 means no limit. -; http://php.net/mysqli.max-links -mysqli.max_links = -1 - -; If mysqlnd is used: Number of cache slots for the internal result set cache -; http://php.net/mysqli.cache_size -mysqli.cache_size = 2000 - -; Default port number for mysqli_connect(). If unset, mysqli_connect() will use -; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the -; compile-time value defined MYSQL_PORT (in that order). Win32 will only look -; at MYSQL_PORT. -; http://php.net/mysqli.default-port -mysqli.default_port = 3306 - -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -; http://php.net/mysqli.default-socket -mysqli.default_socket = - -; Default host for mysql_connect() (doesn't apply in safe mode). -; http://php.net/mysqli.default-host -mysqli.default_host = - -; Default user for mysql_connect() (doesn't apply in safe mode). -; http://php.net/mysqli.default-user -mysqli.default_user = - -; Default password for mysqli_connect() (doesn't apply in safe mode). -; Note that this is generally a *bad* idea to store passwords in this file. -; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw") -; and reveal this password! And of course, any users with read access to this -; file will be able to reveal the password as well. -; http://php.net/mysqli.default-pw -mysqli.default_pw = - -; Allow or prevent reconnect -mysqli.reconnect = Off - -[mysqlnd] -; Enable / Disable collection of general statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -; http://php.net/mysqlnd.collect_statistics -mysqlnd.collect_statistics = On - -; Enable / Disable collection of memory usage statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -; http://php.net/mysqlnd.collect_memory_statistics -mysqlnd.collect_memory_statistics = Off - -; Records communication from all extensions using mysqlnd to the specified log -; file. -; http://php.net/mysqlnd.debug -;mysqlnd.debug = - -; Defines which queries will be logged. -; http://php.net/mysqlnd.log_mask -;mysqlnd.log_mask = 0 - -; Default size of the mysqlnd memory pool, which is used by result sets. -; http://php.net/mysqlnd.mempool_default_size -;mysqlnd.mempool_default_size = 16000 - -; Size of a pre-allocated buffer used when sending commands to MySQL in bytes. -; http://php.net/mysqlnd.net_cmd_buffer_size -;mysqlnd.net_cmd_buffer_size = 2048 - -; Size of a pre-allocated buffer used for reading data sent by the server in -; bytes. -; http://php.net/mysqlnd.net_read_buffer_size -;mysqlnd.net_read_buffer_size = 32768 - -; Timeout for network requests in seconds. -; http://php.net/mysqlnd.net_read_timeout -;mysqlnd.net_read_timeout = 31536000 - -; SHA-256 Authentication Plugin related. File with the MySQL server public RSA -; key. -; http://php.net/mysqlnd.sha256_server_public_key -;mysqlnd.sha256_server_public_key = - -[OCI8] - -; Connection: Enables privileged connections using external -; credentials (OCI_SYSOPER, OCI_SYSDBA) -; http://php.net/oci8.privileged-connect -;oci8.privileged_connect = Off - -; Connection: The maximum number of persistent OCI8 connections per -; process. Using -1 means no limit. -; http://php.net/oci8.max-persistent -;oci8.max_persistent = -1 - -; Connection: The maximum number of seconds a process is allowed to -; maintain an idle persistent connection. Using -1 means idle -; persistent connections will be maintained forever. -; http://php.net/oci8.persistent-timeout -;oci8.persistent_timeout = -1 - -; Connection: The number of seconds that must pass before issuing a -; ping during oci_pconnect() to check the connection validity. When -; set to 0, each oci_pconnect() will cause a ping. Using -1 disables -; pings completely. -; http://php.net/oci8.ping-interval -;oci8.ping_interval = 60 - -; Connection: Set this to a user chosen connection class to be used -; for all pooled server requests with Oracle 11g Database Resident -; Connection Pooling (DRCP). To use DRCP, this value should be set to -; the same string for all web servers running the same application, -; the database pool must be configured, and the connection string must -; specify to use a pooled server. -;oci8.connection_class = - -; High Availability: Using On lets PHP receive Fast Application -; Notification (FAN) events generated when a database node fails. The -; database must also be configured to post FAN events. -;oci8.events = Off - -; Tuning: This option enables statement caching, and specifies how -; many statements to cache. Using 0 disables statement caching. -; http://php.net/oci8.statement-cache-size -;oci8.statement_cache_size = 20 - -; Tuning: Enables statement prefetching and sets the default number of -; rows that will be fetched automatically after statement execution. -; http://php.net/oci8.default-prefetch -;oci8.default_prefetch = 100 - -; Compatibility. Using On means oci_close() will not close -; oci_connect() and oci_new_connect() connections. -; http://php.net/oci8.old-oci-close-semantics -;oci8.old_oci_close_semantics = Off - -[PostgreSQL] -; Allow or prevent persistent links. -; http://php.net/pgsql.allow-persistent -pgsql.allow_persistent = On - -; Detect broken persistent links always with pg_pconnect(). -; Auto reset feature requires a little overheads. -; http://php.net/pgsql.auto-reset-persistent -pgsql.auto_reset_persistent = Off - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/pgsql.max-persistent -pgsql.max_persistent = -1 - -; Maximum number of links (persistent+non persistent). -1 means no limit. -; http://php.net/pgsql.max-links -pgsql.max_links = -1 - -; Ignore PostgreSQL backends Notice message or not. -; Notice message logging require a little overheads. -; http://php.net/pgsql.ignore-notice -pgsql.ignore_notice = 0 - -; Log PostgreSQL backends Notice message or not. -; Unless pgsql.ignore_notice=0, module cannot log notice message. -; http://php.net/pgsql.log-notice -pgsql.log_notice = 0 - -[bcmath] -; Number of decimal digits for all bcmath functions. -; http://php.net/bcmath.scale -bcmath.scale = 0 - -[browscap] -; http://php.net/browscap -;browscap = extra/browscap.ini - -[Session] -; Handler used to store/retrieve data. -; http://php.net/session.save-handler -session.save_handler = files - -; Argument passed to save_handler. In the case of files, this is the path -; where data files are stored. Note: Windows users have to change this -; variable in order to use PHP's session functions. -; -; The path can be defined as: -; -; session.save_path = "N;/path" -; -; where N is an integer. Instead of storing all the session files in -; /path, what this will do is use subdirectories N-levels deep, and -; store the session data in those directories. This is useful if -; your OS has problems with many files in one directory, and is -; a more efficient layout for servers that handle many sessions. -; -; NOTE 1: PHP will not create this directory structure automatically. -; You can use the script in the ext/session dir for that purpose. -; NOTE 2: See the section on garbage collection below if you choose to -; use subdirectories for session storage -; -; The file storage module creates files using mode 600 by default. -; You can change that by using -; -; session.save_path = "N;MODE;/path" -; -; where MODE is the octal representation of the mode. Note that this -; does not overwrite the process's umask. -; http://php.net/session.save-path -;session.save_path = "/tmp" - -; Whether to use strict session mode. -; Strict session mode does not accept uninitialized session ID and regenerate -; session ID if browser sends uninitialized session ID. Strict mode protects -; applications from session fixation via session adoption vulnerability. It is -; disabled by default for maximum compatibility, but enabling it is encouraged. -; https://wiki.php.net/rfc/strict_sessions -session.use_strict_mode = 0 - -; Whether to use cookies. -; http://php.net/session.use-cookies -session.use_cookies = 1 - -; http://php.net/session.cookie-secure -;session.cookie_secure = - -; This option forces PHP to fetch and use a cookie for storing and maintaining -; the session id. We encourage this operation as it's very helpful in combating -; session hijacking when not specifying and managing your own session id. It is -; not the be-all and end-all of session hijacking defense, but it's a good start. -; http://php.net/session.use-only-cookies -session.use_only_cookies = 1 - -; Name of the session (used as cookie name). -; http://php.net/session.name -session.name = PHPSESSID - -; Initialize session on request startup. -; http://php.net/session.auto-start -session.auto_start = 0 - -; Lifetime in seconds of cookie or, if 0, until browser is restarted. -; http://php.net/session.cookie-lifetime -session.cookie_lifetime = 0 - -; The path for which the cookie is valid. -; http://php.net/session.cookie-path -session.cookie_path = / - -; The domain for which the cookie is valid. -; http://php.net/session.cookie-domain -session.cookie_domain = - -; Whether or not to add the httpOnly flag to the cookie, which makes it inaccessible to browser scripting languages such as JavaScript. -; http://php.net/session.cookie-httponly -session.cookie_httponly = - -; Handler used to serialize data. php is the standard serializer of PHP. -; http://php.net/session.serialize-handler -session.serialize_handler = php - -; Defines the probability that the 'garbage collection' process is started -; on every session initialization. The probability is calculated by using -; gc_probability/gc_divisor. Where session.gc_probability is the numerator -; and gc_divisor is the denominator in the equation. Setting this value to 1 -; when the session.gc_divisor value is 100 will give you approximately a 1% chance -; the gc will run on any give request. -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; http://php.net/session.gc-probability -session.gc_probability = 1 - -; Defines the probability that the 'garbage collection' process is started on every -; session initialization. The probability is calculated by using the following equation: -; gc_probability/gc_divisor. Where session.gc_probability is the numerator and -; session.gc_divisor is the denominator in the equation. Setting this value to 1 -; when the session.gc_divisor value is 100 will give you approximately a 1% chance -; the gc will run on any give request. Increasing this value to 1000 will give you -; a 0.1% chance the gc will run on any give request. For high volume production servers, -; this is a more efficient approach. -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 -; http://php.net/session.gc-divisor -session.gc_divisor = 1000 - -; After this number of seconds, stored data will be seen as 'garbage' and -; cleaned up by the garbage collection process. -; http://php.net/session.gc-maxlifetime -session.gc_maxlifetime = 1440 - -; NOTE: If you are using the subdirectory option for storing session files -; (see session.save_path above), then garbage collection does *not* -; happen automatically. You will need to do your own garbage -; collection through a shell script, cron entry, or some other method. -; For example, the following script would is the equivalent of -; setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes): -; find /path/to/sessions -cmin +24 -type f | xargs rm - -; Check HTTP Referer to invalidate externally stored URLs containing ids. -; HTTP_REFERER has to contain this substring for the session to be -; considered as valid. -; http://php.net/session.referer-check -session.referer_check = - -; Set to {nocache,private,public,} to determine HTTP caching aspects -; or leave this empty to avoid sending anti-caching headers. -; http://php.net/session.cache-limiter -session.cache_limiter = nocache - -; Document expires after n minutes. -; http://php.net/session.cache-expire -session.cache_expire = 180 - -; trans sid support is disabled by default. -; Use of trans sid may risk your users' security. -; Use this option with caution. -; - User may send URL contains active session ID -; to other person via. email/irc/etc. -; - URL that contains active session ID may be stored -; in publicly accessible computer. -; - User may access your site with the same session ID -; always using URL stored in browser's history or bookmarks. -; http://php.net/session.use-trans-sid -session.use_trans_sid = 0 - -; Set session ID character length. This value could be between 22 to 256. -; Shorter length than default is supported only for compatibility reason. -; Users should use 32 or more chars. -; http://php.net/session.sid-length -; Default Value: 32 -; Development Value: 26 -; Production Value: 26 -session.sid_length = 26 - -; The URL rewriter will look for URLs in a defined set of HTML tags. -; is special; if you include them here, the rewriter will -; add a hidden field with the info which is otherwise appended -; to URLs. tag's action attribute URL will not be modified -; unless it is specified. -; Note that all valid entries require a "=", even if no value follows. -; Default Value: "a=href,area=href,frame=src,form=" -; Development Value: "a=href,area=href,frame=src,form=" -; Production Value: "a=href,area=href,frame=src,form=" -; http://php.net/url-rewriter.tags -session.trans_sid_tags = "a=href,area=href,frame=src,form=" - -; URL rewriter does not rewrite absolute URLs by default. -; To enable rewrites for absolute pathes, target hosts must be specified -; at RUNTIME. i.e. use ini_set() -; tags is special. PHP will check action attribute's URL regardless -; of session.trans_sid_tags setting. -; If no host is defined, HTTP_HOST will be used for allowed host. -; Example value: php.net,www.php.net,wiki.php.net -; Use "," for multiple hosts. No spaces are allowed. -; Default Value: "" -; Development Value: "" -; Production Value: "" -;session.trans_sid_hosts="" - -; Define how many bits are stored in each character when converting -; the binary hash data to something readable. -; Possible values: -; 4 (4 bits: 0-9, a-f) -; 5 (5 bits: 0-9, a-v) -; 6 (6 bits: 0-9, a-z, A-Z, "-", ",") -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 -; http://php.net/session.hash-bits-per-character -session.sid_bits_per_character = 5 - -; Enable upload progress tracking in $_SESSION -; Default Value: On -; Development Value: On -; Production Value: On -; http://php.net/session.upload-progress.enabled -;session.upload_progress.enabled = On - -; Cleanup the progress information as soon as all POST data has been read -; (i.e. upload completed). -; Default Value: On -; Development Value: On -; Production Value: On -; http://php.net/session.upload-progress.cleanup -;session.upload_progress.cleanup = On - -; A prefix used for the upload progress key in $_SESSION -; Default Value: "upload_progress_" -; Development Value: "upload_progress_" -; Production Value: "upload_progress_" -; http://php.net/session.upload-progress.prefix -;session.upload_progress.prefix = "upload_progress_" - -; The index name (concatenated with the prefix) in $_SESSION -; containing the upload progress information -; Default Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Development Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Production Value: "PHP_SESSION_UPLOAD_PROGRESS" -; http://php.net/session.upload-progress.name -;session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS" - -; How frequently the upload progress should be updated. -; Given either in percentages (per-file), or in bytes -; Default Value: "1%" -; Development Value: "1%" -; Production Value: "1%" -; http://php.net/session.upload-progress.freq -;session.upload_progress.freq = "1%" - -; The minimum delay between updates, in seconds -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; http://php.net/session.upload-progress.min-freq -;session.upload_progress.min_freq = "1" - -; Only write session data when session data is changed. Enabled by default. -; http://php.net/session.lazy-write -;session.lazy_write = On - -[Assertion] -; Switch whether to compile assertions at all (to have no overhead at run-time) -; -1: Do not compile at all -; 0: Jump over assertion at run-time -; 1: Execute assertions -; Changing from or to a negative value is only possible in php.ini! (For turning assertions on and off at run-time, see assert.active, when zend.assertions = 1) -; Default Value: 1 -; Development Value: 1 -; Production Value: -1 -; http://php.net/zend.assertions -zend.assertions = -1 - -; Assert(expr); active by default. -; http://php.net/assert.active -;assert.active = On - -; Throw an AssertationException on failed assertions -; http://php.net/assert.exception -;assert.exception = On - -; Issue a PHP warning for each failed assertion. (Overridden by assert.exception if active) -; http://php.net/assert.warning -;assert.warning = On - -; Don't bail out by default. -; http://php.net/assert.bail -;assert.bail = Off - -; User-function to be called if an assertion fails. -; http://php.net/assert.callback -;assert.callback = 0 - -; Eval the expression with current error_reporting(). Set to true if you want -; error_reporting(0) around the eval(). -; http://php.net/assert.quiet-eval -;assert.quiet_eval = 0 - -[COM] -; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs -; http://php.net/com.typelib-file -;com.typelib_file = - -; allow Distributed-COM calls -; http://php.net/com.allow-dcom -;com.allow_dcom = true - -; autoregister constants of a components typlib on com_load() -; http://php.net/com.autoregister-typelib -;com.autoregister_typelib = true - -; register constants casesensitive -; http://php.net/com.autoregister-casesensitive -;com.autoregister_casesensitive = false - -; show warnings on duplicate constant registrations -; http://php.net/com.autoregister-verbose -;com.autoregister_verbose = true - -; The default character set code-page to use when passing strings to and from COM objects. -; Default: system ANSI code page -;com.code_page= - -[mbstring] -; language for internal character representation. -; This affects mb_send_mail() and mbstring.detect_order. -; http://php.net/mbstring.language -;mbstring.language = Japanese - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; internal/script encoding. -; Some encoding cannot work as internal encoding. (e.g. SJIS, BIG5, ISO-2022-*) -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;mbstring.internal_encoding = - -; Use of this INI entry is deprecated, use global input_encoding instead. -; http input encoding. -; mbstring.encoding_traslation = On is needed to use this setting. -; If empty, default_charset or input_encoding or mbstring.input is used. -; The precedence is: default_charset < intput_encoding < mbsting.http_input -; http://php.net/mbstring.http-input -;mbstring.http_input = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; http output encoding. -; mb_output_handler must be registered as output buffer to function. -; If empty, default_charset or output_encoding or mbstring.http_output is used. -; The precedence is: default_charset < output_encoding < mbstring.http_output -; To use an output encoding conversion, mbstring's output handler must be set -; otherwise output encoding conversion cannot be performed. -; http://php.net/mbstring.http-output -;mbstring.http_output = - -; enable automatic encoding translation according to -; mbstring.internal_encoding setting. Input chars are -; converted to internal encoding by setting this to On. -; Note: Do _not_ use automatic encoding translation for -; portable libs/applications. -; http://php.net/mbstring.encoding-translation -;mbstring.encoding_translation = Off - -; automatic encoding detection order. -; "auto" detect order is changed according to mbstring.language -; http://php.net/mbstring.detect-order -;mbstring.detect_order = auto - -; substitute_character used when character cannot be converted -; one from another -; http://php.net/mbstring.substitute-character -;mbstring.substitute_character = none - -; overload(replace) single byte functions by mbstring functions. -; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(), -; etc. Possible values are 0,1,2,4 or combination of them. -; For example, 7 for overload everything. -; 0: No overload -; 1: Overload mail() function -; 2: Overload str*() functions -; 4: Overload ereg*() functions -; http://php.net/mbstring.func-overload -;mbstring.func_overload = 0 - -; enable strict encoding detection. -; Default: Off -;mbstring.strict_detection = On - -; This directive specifies the regex pattern of content types for which mb_output_handler() -; is activated. -; Default: mbstring.http_output_conv_mimetype=^(text/|application/xhtml\+xml) -;mbstring.http_output_conv_mimetype= - -[gd] -; Tell the jpeg decode to ignore warnings and try to create -; a gd image. The warning will then be displayed as notices -; disabled by default -; http://php.net/gd.jpeg-ignore-warning -;gd.jpeg_ignore_warning = 1 - -[exif] -; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS. -; With mbstring support this will automatically be converted into the encoding -; given by corresponding encode setting. When empty mbstring.internal_encoding -; is used. For the decode settings you can distinguish between motorola and -; intel byte order. A decode setting cannot be empty. -; http://php.net/exif.encode-unicode -;exif.encode_unicode = ISO-8859-15 - -; http://php.net/exif.decode-unicode-motorola -;exif.decode_unicode_motorola = UCS-2BE - -; http://php.net/exif.decode-unicode-intel -;exif.decode_unicode_intel = UCS-2LE - -; http://php.net/exif.encode-jis -;exif.encode_jis = - -; http://php.net/exif.decode-jis-motorola -;exif.decode_jis_motorola = JIS - -; http://php.net/exif.decode-jis-intel -;exif.decode_jis_intel = JIS - -[Tidy] -; The path to a default tidy configuration file to use when using tidy -; http://php.net/tidy.default-config -;tidy.default_config = /usr/local/lib/php/default.tcfg - -; Should tidy clean and repair output automatically? -; WARNING: Do not use this option if you are generating non-html content -; such as dynamic images -; http://php.net/tidy.clean-output -tidy.clean_output = Off - -[soap] -; Enables or disables WSDL caching feature. -; http://php.net/soap.wsdl-cache-enabled -soap.wsdl_cache_enabled=1 - -; Sets the directory name where SOAP extension will put cache files. -; http://php.net/soap.wsdl-cache-dir -soap.wsdl_cache_dir="/tmp" - -; (time to live) Sets the number of second while cached file will be used -; instead of original one. -; http://php.net/soap.wsdl-cache-ttl -soap.wsdl_cache_ttl=86400 - -; Sets the size of the cache limit. (Max. number of WSDL files to cache) -soap.wsdl_cache_limit = 5 - -[sysvshm] -; A default size of the shared memory segment -;sysvshm.init_mem = 10000 - -[ldap] -; Sets the maximum number of open links or -1 for unlimited. -ldap.max_links = -1 - -[dba] -;dba.default_handler= - -[opcache] -; Determines if Zend OPCache is enabled -;opcache.enable=1 - -; Determines if Zend OPCache is enabled for the CLI version of PHP -;opcache.enable_cli=1 - -; The OPcache shared memory storage size. -;opcache.memory_consumption=128 - -; The amount of memory for interned strings in Mbytes. -;opcache.interned_strings_buffer=8 - -; The maximum number of keys (scripts) in the OPcache hash table. -; Only numbers between 200 and 1000000 are allowed. -;opcache.max_accelerated_files=10000 - -; The maximum percentage of "wasted" memory until a restart is scheduled. -;opcache.max_wasted_percentage=5 - -; When this directive is enabled, the OPcache appends the current working -; directory to the script key, thus eliminating possible collisions between -; files with the same name (basename). Disabling the directive improves -; performance, but may break existing applications. -;opcache.use_cwd=1 - -; When disabled, you must reset the OPcache manually or restart the -; webserver for changes to the filesystem to take effect. -;opcache.validate_timestamps=1 - -; How often (in seconds) to check file timestamps for changes to the shared -; memory storage allocation. ("1" means validate once per second, but only -; once per request. "0" means always validate) -;opcache.revalidate_freq=2 - -; Enables or disables file search in include_path optimization -;opcache.revalidate_path=0 - -; If disabled, all PHPDoc comments are dropped from the code to reduce the -; size of the optimized code. -;opcache.save_comments=1 - -; If enabled, a fast shutdown sequence is used for the accelerated code -; Depending on the used Memory Manager this may cause some incompatibilities. -;opcache.fast_shutdown=0 - -; Allow file existence override (file_exists, etc.) performance feature. -;opcache.enable_file_override=0 - -; A bitmask, where each bit enables or disables the appropriate OPcache -; passes -;opcache.optimization_level=0xffffffff - -;opcache.inherited_hack=1 -;opcache.dups_fix=0 - -; The location of the OPcache blacklist file (wildcards allowed). -; Each OPcache blacklist file is a text file that holds the names of files -; that should not be accelerated. The file format is to add each filename -; to a new line. The filename may be a full path or just a file prefix -; (i.e., /var/www/x blacklists all the files and directories in /var/www -; that start with 'x'). Line starting with a ; are ignored (comments). -;opcache.blacklist_filename= - -; Allows exclusion of large files from being cached. By default all files -; are cached. -;opcache.max_file_size=0 - -; Check the cache checksum each N requests. -; The default value of "0" means that the checks are disabled. -;opcache.consistency_checks=0 - -; How long to wait (in seconds) for a scheduled restart to begin if the cache -; is not being accessed. -;opcache.force_restart_timeout=180 - -; OPcache error_log file name. Empty string assumes "stderr". -;opcache.error_log= - -; All OPcache errors go to the Web server log. -; By default, only fatal errors (level 0) or errors (level 1) are logged. -; You can also enable warnings (level 2), info messages (level 3) or -; debug messages (level 4). -;opcache.log_verbosity_level=1 - -; Preferred Shared Memory back-end. Leave empty and let the system decide. -;opcache.preferred_memory_model= - -; Protect the shared memory from unexpected writing during script execution. -; Useful for internal debugging only. -;opcache.protect_memory=0 - -; Allows calling OPcache API functions only from PHP scripts which path is -; started from specified string. The default "" means no restriction -;opcache.restrict_api= - -; Mapping base of shared memory segments (for Windows only). All the PHP -; processes have to map shared memory into the same address space. This -; directive allows to manually fix the "Unable to reattach to base address" -; errors. -;opcache.mmap_base= - -; Enables and sets the second level cache directory. -; It should improve performance when SHM memory is full, at server restart or -; SHM reset. The default "" disables file based caching. -;opcache.file_cache= - -; Enables or disables opcode caching in shared memory. -;opcache.file_cache_only=0 - -; Enables or disables checksum validation when script loaded from file cache. -;opcache.file_cache_consistency_checks=1 - -; Implies opcache.file_cache_only=1 for a certain process that failed to -; reattach to the shared memory (for Windows only). Explicitly enabled file -; cache is required. -;opcache.file_cache_fallback=1 - -; Enables or disables copying of PHP code (text segment) into HUGE PAGES. -; This should improve performance, but requires appropriate OS configuration. -;opcache.huge_code_pages=1 - -; Validate cached file permissions. -;opcache.validate_permission=0 - -; Prevent name collisions in chroot'ed environment. -;opcache.validate_root=0 - -[curl] -; A default value for the CURLOPT_CAINFO option. This is required to be an -; absolute path. -;curl.cainfo = - -[openssl] -; The location of a Certificate Authority (CA) file on the local filesystem -; to use when verifying the identity of SSL/TLS peers. Most users should -; not specify a value for this directive as PHP will attempt to use the -; OS-managed cert stores in its absence. If specified, this value may still -; be overridden on a per-stream basis via the "cafile" SSL stream context -; option. -;openssl.cafile= - -; If openssl.cafile is not specified or if the CA file is not found, the -; directory pointed to by openssl.capath is searched for a suitable -; certificate. This value must be a correctly hashed certificate directory. -; Most users should not specify a value for this directive as PHP will -; attempt to use the OS-managed cert stores in its absence. If specified, -; this value may still be overridden on a per-stream basis via the "capath" -; SSL stream context option. -;openssl.capath= - -; Local Variables: -; tab-width: 4 -; End: - -[XDebug] -xdebug.remote_enable = 1 -xdebug.remote_handler = "dbgp" -; Set to host.docker.internal on Mac and Windows, otherwise, set to host real ip -xdebug.remote_host = host.docker.internal -;xdebug.remote_port = 9000 -xdebug.remote_log = /var/log/php/xdebug.log - -SERVER_ENV=develop - -yaf.use_spl_autoload=1 - -[xhprof] -;xhprof.output_dir = /var/log/php/xhprof.log \ No newline at end of file diff --git a/php5/5.5.38/data.yml b/php5/5.5.38/data.yml deleted file mode 100755 index deeede5ad..000000000 --- a/php5/5.5.38/data.yml +++ /dev/null @@ -1,18 +0,0 @@ -additionalProperties: - formFields: - - default: 9000 - envKey: PANEL_APP_PORT_HTTP - labelEn: PHP-FPM Port - labelZh: PHP-FPM 端口 - label: - en: PHP-FPM Port - ja: PHP-FPM ポート - ms: Port PHP-FPM - pt-br: Porta PHP-FPM - ru: Порт PHP-FPM - ko: PHP-FPM 포트 - zh-Hant: PHP-FPM 埠 - zh: PHP-FPM 端口 - required: true - rule: paramPort - type: number diff --git a/php5/5.5.38/docker-compose.yml b/php5/5.5.38/docker-compose.yml deleted file mode 100644 index dc530c778..000000000 --- a/php5/5.5.38/docker-compose.yml +++ /dev/null @@ -1,21 +0,0 @@ -services: - php: - image: ${IMAGE_NAME} - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - volumes: - - ${PANEL_WEBSITE_DIR}:/www/ - - ./conf/php.ini:/usr/local/etc/php/php.ini - - ./conf/php-fpm.conf:/usr/local/etc/php-fpm.d/www.conf - - ./log:/var/log/php - - ./composer:/tmp/composer - - ./extensions:/php/extensions - ports: - - 127.0.0.1:${PANEL_APP_PORT_HTTP}:9000 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/php5/5.6.40/build/.env b/php5/5.6.40/build/.env deleted file mode 100644 index c2804904f..000000000 --- a/php5/5.6.40/build/.env +++ /dev/null @@ -1,13 +0,0 @@ -CONTAINER_PACKAGE_URL=mirrors.ustc.edu.cn - -PHP_VERSION=5.6.40 -PHP_PHP_CONF_FILE=./php/php.ini -PHP_FPM_CONF_FILE=./php/php-fpm.conf -PHP_LOG_DIR=./logs/php -PHP_EXTENSIONS= - -SOURCE_DIR=./www - -TZ=Asia/Shanghai -DATA_DIR=./data -IMAGE_NAME=1panel-php:5.6.40 \ No newline at end of file diff --git a/php5/5.6.40/build/config.json b/php5/5.6.40/build/config.json deleted file mode 100644 index 3fa4429d8..000000000 --- a/php5/5.6.40/build/config.json +++ /dev/null @@ -1,126 +0,0 @@ -{ - "formFields": [ - { - "type": "select", - "multiple": true, - "labelZh": "扩展", - "labelEn": "Extensions", - "default": ["mysqli","pdo_mysql"], - "values": [ - { - "label": "opcache", - "value": "opcache" - }, - { - "label": "memcached", - "value": "memcached" - }, - { - "label": "memcache", - "value": "memcache" - }, - { - "label": "redis", - "value": "redis" - }, - { - "label": "mcrypt", - "value": "mcrypt" - }, - { - "label": "xdebug", - "value": "xdebug" - }, - { - "label": "imap", - "value": "imap" - }, - { - "label": "exif", - "value": "exif" - }, - { - "label": "intl", - "value": "intl" - }, - { - "label": "swoole", - "value": "swoole" - }, - { - "label": "yaf", - "value": "yaf" - }, - { - "label": "pgsql", - "value": "pgsql" - }, - { - "label": "pdo_pgsql", - "value": "pdo_pgsql" - }, - { - "label": "snmp", - "value": "snmp" - }, { - "label": "ldap", - "value": "ldap" - }, - { - "label": "pspell", - "value": "pspell" - }, - { - "label": "bz2", - "value": "bz2" - }, - { - "label": "sysvshm", - "value": "sysvshm" - }, - { - "label": "calendar", - "value": "calendar" - }, - { - "label": "gmp", - "value": "gmp" - }, - { - "label": "sysvmsg", - "value": "sysvmsg" - }, - { - "label": "igbinary", - "value": "igbinary" - }, - { - "label": "mysqli", - "value": "mysqli" - }, - { - "label": "pdo_mysql", - "value": "pdo_mysql" - }, - { - "label": "mbstring", - "value": "mbstring" - }, - { - "label": "gd", - "value": "gd" - }, - { - "label": "curl", - "value": "curl" - }, - { - "label": "sg15", - "value": "sourceguardian" - } - ], - "envKey": "PHP_EXTENSIONS", - "edit": true - } - ] -} \ No newline at end of file diff --git a/php5/5.6.40/build/docker-compose.yml b/php5/5.6.40/build/docker-compose.yml deleted file mode 100644 index da7c4d9d6..000000000 --- a/php5/5.6.40/build/docker-compose.yml +++ /dev/null @@ -1,20 +0,0 @@ -services: - 1panel-php: - build: - context: ./php - args: - PHP_IMAGE: php:${PHP_VERSION}-fpm-alpine - CONTAINER_PACKAGE_URL: ${CONTAINER_PACKAGE_URL} - PHP_EXTENSIONS: ${PHP_EXTENSIONS} - TZ: ${TZ} - image: ${IMAGE_NAME} - volumes: - - ${SOURCE_DIR}:/www/ - - ${PHP_PHP_CONF_FILE}:/usr/local/etc/php/php.ini - - ${PHP_FPM_CONF_FILE}:/usr/local/etc/php-fpm.d/www.conf - - ${PHP_LOG_DIR}:/var/log/php - - ${DATA_DIR}/composer:/tmp/composer - - ./extensions:/php/extensions - restart: always - cap_add: - - SYS_PTRACE diff --git a/php5/5.6.40/build/php/Dockerfile b/php5/5.6.40/build/php/Dockerfile deleted file mode 100644 index ba8fcdf83..000000000 --- a/php5/5.6.40/build/php/Dockerfile +++ /dev/null @@ -1,39 +0,0 @@ -ARG PHP_IMAGE -FROM ${PHP_IMAGE} - -ARG TZ -ARG PHP_EXTENSIONS -ARG CONTAINER_PACKAGE_URL - -RUN if [ "$CONTAINER_PACKAGE_URL" ]; then sed -i "s|http://dl-cdn.alpinelinux.org/alpine/v3.8|https://${CONTAINER_PACKAGE_URL}/alpine/v3.12|g" /etc/apk/repositories; fi - - -ADD ./extensions/install-php-extensions /usr/local/bin/ -RUN chmod uga+x /usr/local/bin/install-php-extensions - -COPY ./extensions /tmp/extensions -WORKDIR /tmp/extensions -RUN chmod +x install.sh \ - && sh install.sh - - -RUN apk --no-cache add tzdata \ - && cp "/usr/share/zoneinfo/$TZ" /etc/localtime \ - && echo "$TZ" > /etc/timezone - -# Fix: https://github.com/docker-library/php/issues/1121 -RUN apk add --no-cache --repository http://${CONTAINER_PACKAGE_URL}/alpine/v3.13/community/ gnu-libiconv=1.15-r3 -ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so php - - -# Install composer and change it's cache home -RUN chmod +x install-composer.sh \ - && sh install-composer.sh \ - && rm -rf /tmp/extensions -ENV COMPOSER_HOME=/tmp/composer - -# php image's www-data user uid & gid are 82, change them to 1000 (primary user) -RUN apk --no-cache add shadow && usermod -u 1000 www-data && groupmod -g 1000 www-data - - -WORKDIR /www \ No newline at end of file diff --git a/php5/5.6.40/build/php/extensions/amqp-1.11.0.tgz b/php5/5.6.40/build/php/extensions/amqp-1.11.0.tgz deleted file mode 100644 index 4b32465b1..000000000 Binary files a/php5/5.6.40/build/php/extensions/amqp-1.11.0.tgz and /dev/null differ diff --git a/php5/5.6.40/build/php/extensions/apcu-4.0.8.tgz b/php5/5.6.40/build/php/extensions/apcu-4.0.8.tgz deleted file mode 100644 index c7f75bce6..000000000 Binary files a/php5/5.6.40/build/php/extensions/apcu-4.0.8.tgz and /dev/null differ diff --git a/php5/5.6.40/build/php/extensions/event-3.0.8.tgz b/php5/5.6.40/build/php/extensions/event-3.0.8.tgz deleted file mode 100644 index e7a471bbe..000000000 Binary files a/php5/5.6.40/build/php/extensions/event-3.0.8.tgz and /dev/null differ diff --git a/php5/5.6.40/build/php/extensions/install-composer.sh b/php5/5.6.40/build/php/extensions/install-composer.sh deleted file mode 100644 index 34074732d..000000000 --- a/php5/5.6.40/build/php/extensions/install-composer.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/sh - -# The latest mirror's composer version only support for PHP 7.2.5 -# And if your PHP version is lesser than that, will be download supported version. -supportLatest=$(php -r "echo version_compare(PHP_VERSION, '7.2.5', '>');") - -if [ "$supportLatest" -eq "1" ]; then - curl -o /usr/bin/composer https://mirrors.aliyun.com/composer/composer.phar \ - && chmod +x /usr/bin/composer -else - curl -o /tmp/composer-setup.php https://getcomposer.org/installer \ - && php /tmp/composer-setup.php --install-dir=/tmp \ - && mv /tmp/composer.phar /usr/bin/composer \ - && chmod +x /usr/bin/composer \ - && rm -rf /tmp/composer-setup.php -fi \ No newline at end of file diff --git a/php5/5.6.40/build/php/extensions/install-php-extensions b/php5/5.6.40/build/php/extensions/install-php-extensions deleted file mode 100644 index 59a1ea8b2..000000000 --- a/php5/5.6.40/build/php/extensions/install-php-extensions +++ /dev/null @@ -1,4741 +0,0 @@ -#!/bin/sh - -# This script wraps docker-php-ext-install, properly configuring the system. -# -# Copyright (c) Michele Locati, 2018-2023 -# -# Source: https://github.com/mlocati/docker-php-extension-installer -# -# License: MIT - see https://github.com/mlocati/docker-php-extension-installer/blob/master/LICENSE - -# Let's set a sane environment -set -o errexit -set -o nounset - -if test "${IPE_DEBUG:-}" = "1"; then - set -x -fi - -if ! which docker-php-ext-configure >/dev/null || ! which docker-php-ext-enable >/dev/null || ! which docker-php-ext-install >/dev/null || ! which docker-php-source >/dev/null; then - printf 'The script %s is meant to be used with official Docker PHP Images - https://hub.docker.com/_/php\n' "$0" >&2 - exit 1 -fi - -IPE_VERSION=2.2.14 - -StandWithUkraine() { - if test -t 1 && ! grep -Eq '^VERSION=.*jessie' /etc/os-release; then - printf '\e[37;44m#StandWith\e[30;43mUkraine\e[0m\n' - else - printf '#StandWithUkraine\n' - fi -} - -if test "$IPE_VERSION" = master && test "${CI:-}" != true; then - cat <&2 - exit 1 - fi - DISTRO="$(cat /etc/os-release | grep -E ^ID= | cut -d = -f 2)" - DISTRO_VERSION_NUMBER="$(cat /etc/os-release | grep -E ^VERSION_ID= | cut -d = -f 2 | cut -d '"' -f 2 | cut -d . -f 1,2)" - DISTRO_VERSION="$(printf '%s@%s' $DISTRO $DISTRO_VERSION_NUMBER)" - DISTRO_MAJMIN_VERSION="$(echo "$DISTRO_VERSION_NUMBER" | awk -F. '{print $1*100+$2}')" -} - -# Set: -# - PHP_MAJMIN_VERSION: Major-Minor version, format MMmm (example 800 for PHP 8.0.1) -# - PHP_MAJDOTMIN_VERSION: Major-Minor version, format M.m (example 8.0 for PHP 8.0.1) -# - PHP_MAJMINPAT_VERSION: Major-Minor-Patch version, format MMmmpp (example 80001 for PHP 8.0.1) variables containing integers value -# - PHP_MAJDOTMINDOTPAT_VERSION: Major-Minor-Patch version, format M.m.p (example 8.0.1 for PHP 8.0.1) -# - PHP_THREADSAFE: 1 if PHP is thread-safe (TS), 0 if not thread-safe (NTS) -# - PHP_DEBUGBUILD: 1 if PHP is debug build (configured with "--enable-debug"), 0 otherwise -# - PHP_BITS: 32 if PHP is compiled for 32-bit, 64 if 64-bit -# - PHP_EXTDIR: the absolute path where the PHP extensions reside -setPHPVersionVariables() { - PHP_MAJDOTMINDOTPAT_VERSION="$(php-config --version)" - PHP_MAJMIN_VERSION=$(printf '%s' "$PHP_MAJDOTMINDOTPAT_VERSION" | awk -F. '{print $1*100+$2}') - PHP_MAJDOTMIN_VERSION=$(printf '%s' "$PHP_MAJDOTMINDOTPAT_VERSION" | cut -d. -f1-2) - PHP_MAJMINPAT_VERSION=$(printf '%s' "$PHP_MAJDOTMINDOTPAT_VERSION" | awk -F. '{print $1*10000+$2*100+$3}') - PHP_THREADSAFE=$(php -n -r 'echo ZEND_THREAD_SAFE ? 1 : 0;') - PHP_DEBUGBUILD=$(php -n -r 'echo ZEND_DEBUG_BUILD ? 1 : 0;') - PHP_BITS=$(php -n -r 'echo PHP_INT_SIZE * 8;') - PHP_EXTDIR="$(php -d display_errors=stderr -r 'echo realpath(ini_get("extension_dir"));')" -} - -# Fix apt-get being very slow on Debian Jessie -# See https://bugs.launchpad.net/ubuntu/+source/apt/+bug/1332440 -fixMaxOpenFiles() { - fixMaxOpenFiles_cur=$(ulimit -n 2>/dev/null || echo 0) - if test "$fixMaxOpenFiles_cur" -gt 10000; then - ulimit -n 10000 - fi -} - -# Get the directory containing the compiled PHP extensions -# -# Output: -# The absolute path of the extensions dir -getPHPExtensionsDir() { - php -i | grep -E '^extension_dir' | head -n1 | tr -s '[:space:]*=>[:space:]*' '|' | cut -d'|' -f2 -} - -# Normalize the name of a PHP extension -# -# Arguments: -# $1: the name of the module to be normalized -# -# Output: -# The normalized module name -normalizePHPModuleName() { - normalizePHPModuleName_name="$1" - case "$normalizePHPModuleName_name" in - *A* | *B* | *C* | *D* | *E* | *F* | *G* | *H* | *I* | *J* | *K* | *L* | *M* | *N* | *O* | *P* | *Q* | *R* | *S* | *T* | *U* | *V* | *W* | *X* | *Y* | *Z*) - normalizePHPModuleName_name="$(LC_CTYPE=C printf '%s' "$normalizePHPModuleName_name" | tr '[:upper:]' '[:lower:]')" - ;; - esac - case "$normalizePHPModuleName_name" in - datadog_trace) - normalizePHPModuleName_name=ddtrace - ;; - ioncube | ioncube\ loader) - normalizePHPModuleName_name='ioncube_loader' - ;; - pecl_http) - normalizePHPModuleName_name='http' - ;; - zend\ opcache) - normalizePHPModuleName_name='opcache' - ;; - libsodium) - if test $PHP_MAJMIN_VERSION -ge 700; then - normalizePHPModuleName_name='sodium' - fi - ;; - sodium) - if test $PHP_MAJMIN_VERSION -lt 700; then - normalizePHPModuleName_name='libsodium' - fi - ;; - *\ *) - printf '### WARNING Unrecognized module name: %s ###\n' "$1" >&2 - ;; - esac - printf '%s' "$normalizePHPModuleName_name" -} - -# Get the PECL name of PHP extension -# -# Arguments: -# $1: the name of the extension -# -# Output: -# The PECL name of the extension -getPeclModuleName() { - normalizePHPModuleName_name="$1" - case "$normalizePHPModuleName_name" in - ddtrace) - normalizePHPModuleName_name=datadog_trace - ;; - http) - normalizePHPModuleName_name=pecl_http - ;; - sodium) - normalizePHPModuleName_name=libsodium - ;; - esac - printf '%s' "$normalizePHPModuleName_name" -} - -# Parse a package.xml (or package2.xml) file and extract the module name and version -# -# Arguments: -# $1: the patho to the XML file -# -# Set these variables: -# - EXTRACTPACKAGEVERSIONFROMXML_NAME -# - EXTRACTPACKAGEVERSIONFROMXML_VERSION -# -# Output: -# Nothing -# -# Return: -# 0 (true): if the string is in the list -# 1 (false): if the string is not in the list -extractPackageVersionFromXML() { - if ! test -f "$1"; then - printf 'Unable to find the file\n%s\n' >&2 - return 1 - fi - extractPackageVersionFromXML_code="$( - cat <<'EOT' -$doc = new DOMDocument(); -if (!$doc->load($argv[1])) { - fwrite(STDERR, "Failed to load XML file\n"); - exit(1); -} -set_error_handler( - static function($errno, $errstr) { - fwrite(STDERR, trim((string) $errstr) . "\n"); - exit(1); - }, - -1 -); -$xpath = new DOMXpath($doc); -$xpath->registerNamespace('v20', 'http://pear.php.net/dtd/package-2.0'); -$xpath->registerNamespace('v21', 'http://pear.php.net/dtd/package-2.1'); -if ($xpath->query('/v20:package/v20:dependencies')->length === 1) { - $ns = 'v20:'; -} elseif ($xpath->query('/v21:package/v21:dependencies')->length === 1) { - $ns = 'v21:'; -} elseif ($xpath->query('/package')->length === 1) { - $ns = ''; -} else { - fwrite(STDERR, "Unsupported namespace of the XML of package version details\n"); -} -$nodes = $xpath->query("/{$ns}package/{$ns}name"); -$name = trim((string) $nodes[0]->nodeValue); -if ($ns === '') { - $nodes = $xpath->query("/{$ns}package/{$ns}version"); -} else { - $nodes = $xpath->query("/{$ns}package/{$ns}version/{$ns}release"); -} -$version = trim((string) $nodes[0]->nodeValue); -echo "EXTRACTPACKAGEVERSIONFROMXML_NAME='{$name}'\n"; -echo "EXTRACTPACKAGEVERSIONFROMXML_VERSION='{$version}'\n"; -exit(0); -EOT - )" - extractPackageVersionFromXML_vars="$(php -n -d display_errors=stderr -r "$extractPackageVersionFromXML_code" "$1")" - if test -z "$extractPackageVersionFromXML_vars"; then - return 1 - fi - eval "$extractPackageVersionFromXML_vars" - return 0 -} - -# Parse a module name (and optionally version) as received via command arguments, extracting the version and normalizing it -# Examples: -# xdebug-2.9.8 -# xdebug-^2 -# xdebug-^2.9 -# -# Arguments: -# $1: the name of the module to be normalized -# -# Set these variables: -# - PROCESSED_PHP_MODULE_ARGUMENT -# -# Optionally set these variables: -# - PHP_WANTEDMODULEVERSION_<...> (where <...> is the normalized module name) -# - PHP_MODULESOURCECODEPATH_<...> (where <...> is the normalized module name) -# -# Output: -# Nothing -processPHPModuleArgument() { - processPHPModuleArgument_arg="$1" - # Convert GitHub short form to long url, - # for example: from - # php-memcached-dev/php-memcached@8f106564e6bb005ca6100b12ccc89000daafa9d8 - # to - # https://codeload.github.com/php-memcached-dev/php-memcached/tar.gz/8f106564e6bb005ca6100b12ccc89000daafa9d8 - processPHPModuleArgument_arg="$(printf '%s' "$processPHPModuleArgument_arg" | sed -E 's/^([a-zA-Z0-9_.\-]+\/[a-zA-Z0-9_.\-]+)@(.+$)/https:\/\/codeload.github.com\/\1\/tar.gz\/\2/')" - # Let's check if $processPHPModuleArgument_arg is an URL - if printf '%s' "$processPHPModuleArgument_arg" | grep -Eq '^https?://[^ ]+/[^ ]+$'; then - printf 'Downloading source from %s\n' "$processPHPModuleArgument_arg" - processPHPModuleArgument_arg="$(getPackageSource "$processPHPModuleArgument_arg")" - fi - # Let's check if $processPHPModuleArgument_arg the absolute path of an existing directory - if test "$processPHPModuleArgument_arg" != "${processPHPModuleArgument_arg#/}" && test -d "$processPHPModuleArgument_arg"; then - if test -f "$processPHPModuleArgument_arg/package2.xml"; then - printf 'Checking package2.xml of directory %s... ' "$processPHPModuleArgument_arg" - if ! extractPackageVersionFromXML "$processPHPModuleArgument_arg/package2.xml"; then - return 1 - fi - elif test -f "$processPHPModuleArgument_arg/package.xml"; then - printf 'Checking package.xml of directory %s... ' "$processPHPModuleArgument_arg" - if ! extractPackageVersionFromXML "$processPHPModuleArgument_arg/package.xml"; then - return 1 - fi - else - printf 'Unable to find the package.xml file in the directory\n%s\n' "$processPHPModuleArgument_arg" - return 1 - fi - printf 'good (name: %s, version: %s)\n' "$EXTRACTPACKAGEVERSIONFROMXML_NAME" "$EXTRACTPACKAGEVERSIONFROMXML_VERSION" - PROCESSED_PHP_MODULE_ARGUMENT="$(normalizePHPModuleName "$EXTRACTPACKAGEVERSIONFROMXML_NAME")" - processPHPModuleArgument_version="$EXTRACTPACKAGEVERSIONFROMXML_VERSION" - if printf '%s' "$PROCESSED_PHP_MODULE_ARGUMENT" | grep -Eq '^[a-zA-Z0-9_]+$'; then - eval PHP_MODULESOURCECODEPATH_$PROCESSED_PHP_MODULE_ARGUMENT="$processPHPModuleArgument_arg" - else - printf 'Unable to parse the following module name:\n%s\n' "$PROCESSED_PHP_MODULE_ARGUMENT" >&2 - exit 1 - fi - else - PROCESSED_PHP_MODULE_ARGUMENT="${processPHPModuleArgument_arg%%-*}" - if test -n "$PROCESSED_PHP_MODULE_ARGUMENT" && test "$PROCESSED_PHP_MODULE_ARGUMENT" != "$processPHPModuleArgument_arg"; then - processPHPModuleArgument_version="${processPHPModuleArgument_arg#*-}" - else - processPHPModuleArgument_version='' - fi - PROCESSED_PHP_MODULE_ARGUMENT="$(normalizePHPModuleName "$PROCESSED_PHP_MODULE_ARGUMENT")" - fi - if test -n "$processPHPModuleArgument_version"; then - if printf '%s' "$PROCESSED_PHP_MODULE_ARGUMENT" | grep -Eq '^[a-zA-Z0-9_]+$'; then - eval PHP_WANTEDMODULEVERSION_$PROCESSED_PHP_MODULE_ARGUMENT="$processPHPModuleArgument_version" - elif printf '%s' "$PROCESSED_PHP_MODULE_ARGUMENT" | grep -Eq '^@[a-zA-Z0-9_]+$'; then - eval PHP_WANTEDMODULEVERSION__${PROCESSED_PHP_MODULE_ARGUMENT#@}="$processPHPModuleArgument_version" - else - printf 'Unable to parse the following module name:\n%s\n' "$PROCESSED_PHP_MODULE_ARGUMENT" >&2 - fi - fi -} - -# Get the wanted PHP module version, as specified in the command line arguments. -# -# Arguments: -# $1: the name of the module to be normalized -# -# Output: -# The wanted version (if any) -getWantedPHPModuleVersion() { - if printf '%s' "$1" | grep -Eq '^[a-zA-Z0-9_]+$'; then - eval printf '%s' "\${PHP_WANTEDMODULEVERSION_$1:-}" - elif printf '%s' "$1" | grep -Eq '^@[a-zA-Z0-9_]+$'; then - eval printf '%s' "\${PHP_WANTEDMODULEVERSION__${1#@}:-}" - fi -} - -# Get source code path of a PHP module version, as specified in the command line arguments. -# -# Arguments: -# $1: the name of the module to be normalized -# -# Output: -# The wanted version (if any) -getModuleSourceCodePath() { - if printf '%s' "$1" | grep -Eq '^[a-zA-Z0-9_]+$'; then - eval printf '%s' "\${PHP_MODULESOURCECODEPATH_$1:-}" - fi -} - -# Get the actual PHP module version, resolving it if it starts with '^' -# -# Arguments: -# $1: the name of the module -# $2: the wanted version (optional, if omitted we'll use getWantedPHPModuleVersion) -# -# Output: -# The version to be used -resolvePHPModuleVersion() { - resolvePHPModuleVersion_module="$1" - if test $# -lt 2; then - resolvePHPModuleVersion_raw="$(getWantedPHPModuleVersion "$installRemoteModule_module")" - else - resolvePHPModuleVersion_raw="$2" - fi - resolvePHPModuleVersion_afterCaret="${resolvePHPModuleVersion_raw#^}" - if test "$resolvePHPModuleVersion_raw" = "$resolvePHPModuleVersion_afterCaret"; then - printf '%s' "$resolvePHPModuleVersion_raw" - return - fi - case "$resolvePHPModuleVersion_afterCaret" in - ?*@snapshot | ?*@devel | ?*@alpha | ?*@beta | ?*@stable) - resolvePHPModuleVersion_wantedStability="${resolvePHPModuleVersion_afterCaret##*@}" - resolvePHPModuleVersion_wantedVersion="${resolvePHPModuleVersion_afterCaret%@*}" - ;; - *) - resolvePHPModuleVersion_wantedStability='' - resolvePHPModuleVersion_wantedVersion="$resolvePHPModuleVersion_afterCaret" - ;; - esac - resolvePHPModuleVersion_peclModule="$(getPeclModuleName "$resolvePHPModuleVersion_module")" - resolvePHPModuleVersion_xml="$(curl -sSLf "http://pecl.php.net/rest/r/$resolvePHPModuleVersion_peclModule/allreleases.xml")" - # remove line endings, collapse spaces - resolvePHPModuleVersion_versions="$(printf '%s' "$resolvePHPModuleVersion_xml" | tr -s ' \t\r\n' ' ')" - # one line per release (eg 1.2.3stable) - resolvePHPModuleVersion_versions="$(printf '%s' "$resolvePHPModuleVersion_versions" | sed -r 's#$resolvePHPModuleVersion_wantedStability")" - fi - # remove everything's up to '' (included) - resolvePHPModuleVersion_versions="$(printf '%s' "$resolvePHPModuleVersion_versions" | sed 's#^.*##')" - # keep just the versions - resolvePHPModuleVersion_versions="$(printf '%s' "$resolvePHPModuleVersion_versions" | cut -d'<' -f1)" - resetIFS - for resolvePHPModuleVersion_version in $resolvePHPModuleVersion_versions; do - resolvePHPModuleVersion_suffix="${resolvePHPModuleVersion_version#$resolvePHPModuleVersion_wantedVersion}" - if test "$resolvePHPModuleVersion_version" != "${resolvePHPModuleVersion_version#$resolvePHPModuleVersion_wantedVersion.}"; then - # Example: looking for 1.0, found 1.0.1 - printf '%s' "$resolvePHPModuleVersion_version" - return - fi - done - for resolvePHPModuleVersion_version in $resolvePHPModuleVersion_versions; do - resolvePHPModuleVersion_suffix="${resolvePHPModuleVersion_version#$resolvePHPModuleVersion_wantedVersion}" - if test "$resolvePHPModuleVersion_version" = "$resolvePHPModuleVersion_suffix"; then - continue - fi - if test -z "$resolvePHPModuleVersion_suffix"; then - # Example: looking for 1.0, found exactly it - printf '%s' "$resolvePHPModuleVersion_version" - return - fi - case "$resolvePHPModuleVersion_suffix" in - [0-9]) - # Example: looking for 1.1, but this is 1.10 - ;; - *) - # Example: looking for 1.1, this is 1.1rc1 - printf '%s' "$resolvePHPModuleVersion_version" - return - ;; - esac - done - printf 'Unable to find a version of "%s" compatible with "%s"\nAvailable versions are:\n%s\n' "$resolvePHPModuleVersion_module" "$resolvePHPModuleVersion_raw" "$resolvePHPModuleVersion_versions" >&2 - exit 1 -} - -# Get the actual version of a PECL pmodule, resolving 'latest', 'stable', 'beta', 'alpha', 'devel'. -# -# Arguments: -# $1: the module name as known on the PECL archive -# $2: the version to be resolved -# Output: -# $2 itself if $1 is not 'latest', 'stable', 'beta', 'alpha', or 'devel', the actual version otherwise -resolvePeclStabilityVersion() { - case "$2" in - latest | stable | beta | alpha | devel) ;; - *) - printf '%s' "$2" - return - ;; - esac - resolvePeclStabilityVersion_peclModule="$(getPeclModuleName "$1")" - peclStabilityFlagToVersion_url="http://pecl.php.net/rest/r/$resolvePeclStabilityVersion_peclModule/$2.txt" - if ! peclStabilityFlagToVersion_result="$(curl -sSLf "$peclStabilityFlagToVersion_url")"; then - peclStabilityFlagToVersion_result='' - fi - if test -z "$peclStabilityFlagToVersion_result"; then - printf 'Failed to resolve the PECL package version "%s" of %s from %s\n' "$2" "$1" "$peclStabilityFlagToVersion_url" >&2 - exit 1 - fi - printf '%s' "$peclStabilityFlagToVersion_result" -} - -# Set these variables: -# - PHP_PREINSTALLED_MODULES the normalized list of PHP modules installed before running this script -setPHPPreinstalledModules() { - PHP_PREINSTALLED_MODULES='' - IFS=' -' - for getPHPInstalledModules_module in $(php -m); do - getPHPInstalledModules_moduleNormalized='' - case "$getPHPInstalledModules_module" in - \[PHP\ Modules\]) ;; - \[Zend\ Modules\]) - break - ;; - *) - getPHPInstalledModules_moduleNormalized="$(normalizePHPModuleName "$getPHPInstalledModules_module")" - if ! stringInList "$getPHPInstalledModules_moduleNormalized" "$PHP_PREINSTALLED_MODULES"; then - PHP_PREINSTALLED_MODULES="$PHP_PREINSTALLED_MODULES $getPHPInstalledModules_moduleNormalized" - fi - ;; - esac - done - if command -v composer >/dev/null; then - PHP_PREINSTALLED_MODULES="$PHP_PREINSTALLED_MODULES @composer" - fi - resetIFS - PHP_PREINSTALLED_MODULES="${PHP_PREINSTALLED_MODULES# }" -} - -# Get the handles of the modules to be installed -# -# Arguments: -# $@: all module handles -# -# Set: -# PHP_MODULES_TO_INSTALL -# -# Output: -# Nothing -processCommandArguments() { - processCommandArguments_endArgs=0 - PHP_MODULES_TO_INSTALL='' - # Support deprecated flag IPE_FIX_CACERTS - case "${IPE_FIX_CACERTS:-}" in - 1 | y* | Y*) - PHP_MODULES_TO_INSTALL="$PHP_MODULES_TO_INSTALL @fix_letsencrypt" - ;; - esac - while :; do - if test $# -lt 1; then - break - fi - processCommandArguments_skip=0 - if test $processCommandArguments_endArgs -eq 0; then - case "$1" in - --cleanup) - printf '### WARNING the %s option is deprecated (we always cleanup everything) ###\n' "$1" >&2 - processCommandArguments_skip=1 - ;; - --) - processCommandArguments_skip=1 - processCommandArguments_endArgs=1 - ;; - -*) - printf 'Unrecognized option: %s\n' "$1" >&2 - exit 1 - ;; - esac - fi - if test $processCommandArguments_skip -eq 0; then - processPHPModuleArgument "$1" - processCommandArguments_name="$PROCESSED_PHP_MODULE_ARGUMENT" - if stringInList "$processCommandArguments_name" "$PHP_MODULES_TO_INSTALL"; then - printf '### WARNING Duplicated module name specified: %s ###\n' "$processCommandArguments_name" >&2 - elif stringInList "$processCommandArguments_name" "$PHP_PREINSTALLED_MODULES"; then - printf '### WARNING Module already installed: %s ###\n' "$processCommandArguments_name" >&2 - else - PHP_MODULES_TO_INSTALL="$PHP_MODULES_TO_INSTALL $processCommandArguments_name" - fi - fi - shift - done - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL# }" -} - -# Add a module that's required by another module -# -# Arguments: -# $1: module that requires another module -# $2: the required module -# -# Update: -# PHP_MODULES_TO_INSTALL -# -# Output: -# Nothing -checkRequiredModule() { - if ! stringInList "$1" "$PHP_MODULES_TO_INSTALL"; then - return - fi - if stringInList "$2" "$PHP_PREINSTALLED_MODULES"; then - return - fi - PHP_MODULES_TO_INSTALL="$(removeStringFromList "$1" "$PHP_MODULES_TO_INSTALL")" - if ! stringInList "$2" "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$PHP_MODULES_TO_INSTALL $2" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL# }" - fi - PHP_MODULES_TO_INSTALL="$PHP_MODULES_TO_INSTALL $1" -} - -# Sort the modules to be installed, in order to fix dependencies -# -# Update: -# PHP_MODULES_TO_INSTALL -# -# Output: -# Nothing -sortModulesToInstall() { - # apcu_bc requires apcu - checkRequiredModule 'apcu_bc' 'apcu' - # http requires propro (for PHP < 8) and raphf - if test $PHP_MAJMIN_VERSION -le 704; then - checkRequiredModule 'http' 'propro' - fi - checkRequiredModule 'http' 'raphf' - # event requires sockets (for PHP <= 5.6) - if test $PHP_MAJMIN_VERSION -le 506; then - checkRequiredModule event sockets - fi - # relay requires msgpack - checkRequiredModule relay msgpack - # relay requires igbinary - checkRequiredModule relay igbinary - # pq requires raphf - checkRequiredModule pq raphf - # Some module installation may use sockets if available: move it before other modules - if stringInList 'sockets' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'sockets' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="sockets $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # Some module installation may use igbinary if available: move it before other modules - if stringInList 'igbinary' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'igbinary' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="igbinary $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # Some module installation may use msgpack if available: move it before other modules - if stringInList 'msgpack' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'msgpack' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="msgpack $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # Some module installation may use socket if available: move it before other modules - if stringInList 'socket' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'socket' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="socket $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # Some module installation may use apcu if available: move it before other modules - if stringInList 'apcu' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'apcu' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="apcu $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # Some module installation may use raphf if available: move it before other modules - if stringInList 'raphf' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'raphf' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="raphf $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # In any case, first of all, we need to install composer - if stringInList '@composer' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList '@composer' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="@composer $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi -} - -# Expand the IPE_ASPELL_LANGUAGES environment variable into apk/apt package names -expandASpellDictionaries() { - expandASpellDictionaries_languages="${IPE_ASPELL_LANGUAGES:-en}" - expandASpellDictionaries_result='' - resetIFS - for expandASpellDictionaries_language in $expandASpellDictionaries_languages; do - expandASpellDictionaries_result="$expandASpellDictionaries_result aspell-$expandASpellDictionaries_language" - done - printf '%s' "${expandASpellDictionaries_result# }" -} - -# Get the required APT/APK packages for a specific PHP version and for the list of module handles -# -# Arguments: -# $@: the PHP module handles -# -# Set: -# PACKAGES_PERSISTENT_NEW the list of packages required at runtume that must be installed -# PACKAGES_PERSISTENT_PRE the list of packages required at runtume that are already installed -# PACKAGES_VOLATILE the list of packages required at compile time that must be installed -# PACKAGES_PREVIOUS the list of packages (with their version) that are installed right now (calculated only on Debian and only if PACKAGES_PERSISTENT_NEW or PACKAGES_VOLATILE are not empty) -buildRequiredPackageLists() { - buildRequiredPackageLists_persistent='' - buildRequiredPackageLists_volatile='' - case "$DISTRO" in - alpine) - apk update - ;; - debian) - invokeAptGetUpdate - ;; - esac - case "$DISTRO_VERSION" in - alpine@*) - if test $# -gt 1 || test "${1:-}" != '@composer'; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $PHPIZE_DEPS" - fi - if test -z "$(apk info 2>/dev/null | grep -E ^libssl)"; then - buildRequiredPackageLists_libssl="$(apk search | grep -E '^libssl[0-9]' | head -1 | cut -d- -f1)" - elif test -z "$(apk info 2>/dev/null | grep -E '^libressl.*-libtls')" && test -z "$(apk info 2>/dev/null | grep -E '^libressl.*-libssl')" && test -z "$(apk info 2>/dev/null | grep -E '^libretls-')"; then - buildRequiredPackageLists_libssl=$(apk search -q libressl*-libtls) - else - buildRequiredPackageLists_libssl='' - fi - if test $DISTRO_MAJMIN_VERSION -le 313; then - buildRequiredPackageLists_libssldev='libressl-dev' - else - buildRequiredPackageLists_libssldev='libretls-dev' - fi - buildRequiredPackageLists_icuPersistent='' - if test $DISTRO_MAJMIN_VERSION -ge 316; then - case "${IPE_ICU_EN_ONLY:-}" in - 1 | y* | Y*) ;; - *) - buildRequiredPackageLists_icuPersistent='icu-data-full' - ;; - esac - fi - ;; - debian@9) - buildRequiredPackageLists_libssldev='libssl1.0-dev' - ;; - debian@*) - buildRequiredPackageLists_libssldev='^libssl([0-9]+(\.[0-9]+)*)?-dev$' - ;; - esac - if test $USE_PICKLE -gt 1; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile git" - fi - while :; do - if test $# -lt 1; then - break - fi - case "$1@$DISTRO" in - @composer@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent unzip" - ;; - amqp@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent rabbitmq-c" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile rabbitmq-c-dev" - ;; - amqp@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^librabbitmq[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile librabbitmq-dev libssh-dev" - ;; - bz2@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libbz2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile bzip2-dev" - ;; - bz2@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libbz2-dev" - ;; - cassandra@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent cassandra-cpp-driver gmp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cassandra-cpp-driver-dev gmp-dev" - ;; - cmark@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake" - ;; - cmark@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake" - ;; - ddtrace@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libgcc" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile curl-dev" - ;; - ddtrace@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libcurl4-openssl-dev" - ;; - dba@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent db" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile db-dev" - ;; - dba@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile ^libdb5\.3-dev$" - if test $PHP_MAJMIN_VERSION -le 505; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile patch" - fi - ;; - decimal@debian) - if test $DISTRO_MAJMIN_VERSION -lt 1200; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libmpdec[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmpdec-dev" - fi - ;; - ecma_intl@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent icu-libs $buildRequiredPackageLists_icuPersistent" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev libidn-dev" - ;; - ecma_intl@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libicu[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libicu-dev" - ;; - enchant@alpine) - if test $DISTRO_MAJMIN_VERSION -ge 312; then - if test $PHP_MAJMIN_VERSION -ge 800; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent enchant2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile enchant2-dev" - else - # The system provides libenchant2, supported since PHP 8.0: we need to build libenchant1 on our own - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent glib aspell-libs libhunspell" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile glib-dev aspell-dev hunspell-dev" - fi - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent enchant" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile enchant-dev" - fi - ;; - enchant@debian) - if test $DISTRO_VERSION_NUMBER -ge 11; then - if test $PHP_MAJMIN_VERSION -ge 800; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libenchant-2-2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libenchant-2-dev" - else - # The system provides libenchant2, supported since PHP 8.0: we need to build libenchant1 on our own - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent aspell-en libhunspell-1.7-0" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libglib2.0-dev libaspell-dev libhunspell-dev" - fi - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libenchant1c2a" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libenchant-dev" - fi - ;; - event@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libevent $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libevent-dev $buildRequiredPackageLists_libssldev" - ;; - event@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libevent[0-9\.\-]*$ ^libevent-openssl[0-9\.\-]*$ ^libevent-extra[0-9\.\-]*$ ^libevent-pthreads[0-9\.\-]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libevent-dev $buildRequiredPackageLists_libssldev" - ;; - ffi@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libffi" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libffi-dev" - ;; - ffi@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libffi-dev" - ;; - ftp@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev" - ;; - ftp@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev" - ;; - gd@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent freetype libjpeg-turbo libpng libxpm" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetype-dev libjpeg-turbo-dev libpng-dev libxpm-dev" - if test $PHP_MAJMIN_VERSION -le 506; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libvpx" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libvpx-dev" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libwebp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libwebp-dev" - if test $PHP_MAJMIN_VERSION -ge 801; then - if test $DISTRO_MAJMIN_VERSION -ge 315; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libavif aom-libs libdav1d" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libavif-dev aom-dev dav1d-dev" - elif isLibaomInstalled && isLibdav1dInstalled && isLibyuvInstalled && isLibavifInstalled; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - else - case "${IPE_GD_WITHOUTAVIF:-}" in - 1 | y* | Y*) ;; - *) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake nasm meson" - ;; - esac - fi - fi - fi - ;; - gd@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libfreetype6 libjpeg62-turbo ^libpng[0-9]+-[0-9]+$ libxpm4" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libfreetype6-dev libjpeg62-turbo-dev libpng-dev libxpm-dev" - if test $PHP_MAJMIN_VERSION -le 506; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libvpx[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libvpx-dev" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libwebp[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libwebp-dev" - if test $PHP_MAJMIN_VERSION -ge 801; then - if test $DISTRO_VERSION_NUMBER -ge 12; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libavif[0-9]+$ ^libaom[0-9]+$ ^libdav1d[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libavif-dev libaom-dev libdav1d-dev" - elif ! isLibaomInstalled || ! isLibdav1dInstalled || ! isLibyuvInstalled || ! isLibavifInstalled; then - case "${IPE_GD_WITHOUTAVIF:-}" in - 1 | y* | Y*) ;; - *) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake nasm meson" - ;; - esac - fi - fi - fi - ;; - gearman@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++ libuuid" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile boost-dev gperf libmemcached-dev libevent-dev util-linux-dev" - ;; - gearman@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libgearman[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgearman-dev" - ;; - geoip@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent geoip" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile geoip-dev" - ;; - geoip@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libgeoip1[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgeoip-dev" - ;; - geos@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent geos-dev" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile geos" - ;; - geos@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libgeos-c1(v[0-9]*)?$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgeos-dev" - ;; - gettext@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libintl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile gettext-dev" - ;; - gmagick@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent graphicsmagick libgomp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile graphicsmagick-dev libtool" - ;; - gmagick@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libgraphicsmagick(-q16-)?[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgraphicsmagick1-dev" - ;; - gmp@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gmp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile gmp-dev" - ;; - gmp@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgmp-dev" - ;; - gnupg@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gpgme" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile gpgme-dev" - ;; - gnupg@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libgpgme[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile ^libgpgme[0-9]*-dev$" - ;; - grpc@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev linux-headers" - ;; - grpc@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev" - ;; - http@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libevent" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev curl-dev libevent-dev" - if test $PHP_MAJMIN_VERSION -le 506; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libidn" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libidn-dev" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent icu-libs $buildRequiredPackageLists_icuPersistent libidn" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev libidn-dev" - fi - ;; - http@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libcurl3-gnutls ^libevent[0-9\.\-]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev libgnutls28-dev libcurl4-gnutls-dev libevent-dev" - if test $PHP_MAJMIN_VERSION -le 506; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile ^libidn1[0-9+]-dev$" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libicu[0-9]+$ ^libidn2-[0-9+]$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libicu-dev ^libidn2-[0-9+]-dev$" - fi - ;; - imagick@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent imagemagick libgomp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile imagemagick-dev" - if [ $DISTRO_MAJMIN_VERSION -ge 319 ]; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ghostscript libheif libjxl libraw librsvg" - fi - ;; - imagick@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libmagickwand-6.q16-[0-9]+$ ^libmagickcore-6.q16-[0-9]+-extra$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmagickwand-dev" - ;; - imap@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent c-client $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile krb5-dev imap-dev $buildRequiredPackageLists_libssldev" - ;; - imap@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libc-client2007e" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libkrb5-dev" - case "$DISTRO_VERSION" in - debian@9) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev comerr-dev krb5-multidev libc-client2007e libgssrpc4 libkadm5clnt-mit11 libkadm5srv-mit11 libkdb5-8 libpam0g-dev libssl-doc mlock" - ;; - *) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libc-client-dev" - ;; - esac - ;; - interbase@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev ncurses-dev" - ;; - interbase@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libfbclient2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile firebird-dev libib-util" - ;; - intl@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent icu-libs $buildRequiredPackageLists_icuPersistent" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev" - ;; - intl@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libicu[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libicu-dev" - ;; - ion@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake git" - ;; - ion@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake git" - ;; - ldap@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libldap" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile openldap-dev" - ;; - ldap@debian) - if test $DISTRO_VERSION_NUMBER -ge 9; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libldap-common" - fi - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libldap2-dev" - ;; - luasandbox@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lua5.1-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile lua5.1-dev" - ;; - luasandbox@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblua5.1-0" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liblua5.1-0-dev" - ;; - lz4@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lz4-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile lz4-dev" - ;; - lz4@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblz4-1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liblz4-dev" - ;; - maxminddb@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmaxminddb" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmaxminddb-dev" - ;; - maxminddb@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libmaxminddb[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmaxminddb-dev" - ;; - memprof@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent judy" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile judy-dev bsd-compat-headers" - ;; - memprof@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libjudydebian1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libjudy-dev" - ;; - mcrypt@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmcrypt" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmcrypt-dev" - ;; - mcrypt@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmcrypt4" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmcrypt-dev" - ;; - memcache@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev" - ;; - memcache@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev" - ;; - memcached@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmemcached-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmemcached-dev zlib-dev" - ;; - memcached@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmemcachedutil2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmemcached-dev zlib1g-dev" - if test $DISTRO_MAJMIN_VERSION -ge 12; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev" - fi - ;; - mongo@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsasl $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev cyrus-sasl-dev" - ;; - mongo@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev libsasl2-dev" - ;; - mongodb@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent icu-libs $buildRequiredPackageLists_icuPersistent libsasl $buildRequiredPackageLists_libssl snappy" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev cyrus-sasl-dev snappy-dev $buildRequiredPackageLists_libssldev zlib-dev" - if test $PHP_MAJMIN_VERSION -ge 704; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent zstd-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zstd-dev" - fi - ;; - mongodb@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libsnappy[0-9]+(v[0-9]+)?$ ^libicu[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libicu-dev libsasl2-dev libsnappy-dev $buildRequiredPackageLists_libssldev zlib1g-dev" - if test $PHP_MAJMIN_VERSION -ge 704; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libzstd[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libzstd-dev" - fi - ;; - mosquitto@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent mosquitto-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile mosquitto-dev" - ;; - mosquitto@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmosquitto1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmosquitto-dev" - ;; - mssql@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent freetds" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - mssql@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsybdb5" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - oauth@alpine) - if test $PHP_MAJMIN_VERSION -ge 700; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile pcre-dev" - fi - ;; - oauth@debian) - if test $PHP_MAJMIN_VERSION -ge 700; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libpcre3-dev" - fi - ;; - oci8@alpine | pdo_oci@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libaio libc6-compat libnsl" - if test $DISTRO_MAJMIN_VERSION -le 307; then - # The unzip tool of Alpine 3.7 can't extract symlinks from ZIP archives: let's use bsdtar instead - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libarchive-tools" - fi - ;; - oci8@debian | pdo_oci@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libaio[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unzip" - ;; - odbc@alpine | pdo_odbc@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent unixodbc" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unixodbc-dev" - ;; - odbc@debian | pdo_odbc@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libodbc1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unixodbc-dev" - ;; - openswoole@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent postgresql-libs libstdc++ $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile curl-dev postgresql-dev linux-headers $buildRequiredPackageLists_libssldev" - ;; - openswoole@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libcurl3-gnutls libpq5" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev libcurl4-gnutls-dev libpq-dev" - ;; - parle@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - ;; - pdo_dblib@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent freetds" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - pdo_dblib@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsybdb5" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - pdo_firebird@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev ncurses-dev" - ;; - pdo_firebird@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libfbclient2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile firebird-dev libib-util" - ;; - pgsql@alpine | pdo_pgsql@alpine | pq@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent postgresql-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile postgresql-dev" - ;; - pgsql@debian | pdo_pgsql@debian | pq@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libpq5" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libpq-dev" - ;; - php_trie@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - ;; - pkcs11@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent softhsm" - ;; - pkcs11@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsofthsm2" - ;; - pspell@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent aspell-libs $(expandASpellDictionaries)" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile aspell-dev" - ;; - pspell@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libaspell15 $(expandASpellDictionaries)" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libpspell-dev" - ;; - rdkafka@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent librdkafka" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile librdkafka-dev" - ;; - rdkafka@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^librdkafka\+*[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile librdkafka-dev" - ;; - recode@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent recode" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile recode-dev" - ;; - recode@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent librecode0" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile librecode-dev" - ;; - redis@alpine) - if test $PHP_MAJMIN_VERSION -ge 700; then - case "$DISTRO_VERSION" in - alpine@3.7) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent zstd" - ;; - *) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent zstd-libs" - ;; - esac - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zstd-dev" - if test $PHP_MAJMIN_VERSION -ge 702; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lz4-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile lz4-dev" - fi - fi - ;; - redis@debian) - if test $PHP_MAJMIN_VERSION -ge 700; then - case "$DISTRO_VERSION" in - debian@8) - ## There's no APT package for libzstd - ;; - debian@9) - ## libzstd is too old (available: 1.1.2, required: 1.3.0+) - ;; - *) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libzstd[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libzstd-dev" - ;; - esac - fi - if test $PHP_MAJMIN_VERSION -ge 702; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblz4-1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liblz4-dev" - fi - ;; - relay@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lz4-libs zstd-libs" - if test $DISTRO_MAJMIN_VERSION -ge 317; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent $buildRequiredPackageLists_libssl" - fi - ;; - saxon@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_volatile unzip" - ;; - seasclick@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - ;; - simdjson@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - ;; - smbclient@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsmbclient" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile samba-dev" - ;; - smbclient@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsmbclient" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsmbclient-dev" - ;; - snappy@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent snappy" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile snappy-dev" - ;; - snappy@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libsnappy1(v[0-9]+)?$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsnappy-dev" - ;; - snmp@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent net-snmp-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile net-snmp-dev" - ;; - snmp@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent snmp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsnmp-dev" - ;; - snuffleupagus@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent pcre" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile pcre-dev" - ;; - snuffleupagus@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libpcre3-dev" - ;; - soap@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - soap@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - sockets@alpine) - if test $PHP_MAJMIN_VERSION -ge 802; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile linux-headers" - fi - ;; - sodium@alpine | libsodium@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsodium" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsodium-dev" - ;; - sodium@debian | libsodium@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libsodium[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsodium-dev" - ;; - solr@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile curl-dev libxml2-dev" - ;; - solr@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libcurl3-gnutls" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libcurl4-gnutls-dev libxml2-dev" - ;; - sourceguardian@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent eudev-libs" - ;; - spx@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev" - ;; - spx@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev" - ;; - sqlsrv@alpine | pdo_sqlsrv@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++ unixodbc" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unixodbc-dev" - ;; - sqlsrv@debian | pdo_sqlsrv@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent unixodbc" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unixodbc-dev" - if ! isMicrosoftSqlServerODBCInstalled; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile gnupg apt-transport-https" - fi - ;; - ssh2@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libssh2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libssh2-dev" - ;; - ssh2@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libssh2-1-dev" - ;; - stomp@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev" - ;; - stomp@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev" - ;; - swoole@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent postgresql-libs libstdc++ $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile curl-dev postgresql-dev linux-headers $buildRequiredPackageLists_libssldev" - if test $PHP_MAJMIN_VERSION -ge 702; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent c-ares" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile c-ares-dev" - fi - ;; - swoole@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libcurl3-gnutls libpq5" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev libcurl4-gnutls-dev libpq-dev" - if test $PHP_MAJMIN_VERSION -ge 702; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libc-ares2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libc-ares-dev" - fi - if test $PHP_MAJMIN_VERSION -ge 800; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev" - fi - ;; - sybase_ct@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent freetds" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - sybase_ct@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libct4" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - tdlib@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++ $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile git cmake gperf zlib-dev $buildRequiredPackageLists_libssldev linux-headers readline-dev" - ;; - tdlib@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile git cmake gperf zlib1g-dev $buildRequiredPackageLists_libssldev" - ;; - tensor@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent openblas" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile lapack-dev openblas-dev" - if test $DISTRO_MAJMIN_VERSION -le 317; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lapack" - if test $DISTRO_MAJMIN_VERSION -le 316; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libexecinfo" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libexecinfo-dev" - if test $DISTRO_MAJMIN_VERSION -le 310; then - if ! stringInList --force-overwrite "$IPE_APK_FLAGS"; then - IPE_APK_FLAGS="$IPE_APK_FLAGS --force-overwrite" - fi - fi - fi - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblapack" - fi - ;; - tensor@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblapacke" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liblapack-dev libopenblas-dev liblapacke-dev" - if test $DISTRO_VERSION_NUMBER -le 9; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-6 libopenblas-base" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-6-dev" - elif test $DISTRO_VERSION_NUMBER -le 10; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-8 libopenblas-base" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-8-dev" - elif test $DISTRO_VERSION_NUMBER -le 11; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-10 libopenblas-base" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-10-dev" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-12 libopenblas0" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-12-dev" - fi - ;; - tidy@alpine) - if test $DISTRO_MAJMIN_VERSION -ge 315; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent tidyhtml" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent tidyhtml-libs" - fi - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile tidyhtml-dev" - ;; - tidy@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libtidy-?[0-9][0-9.\-]*(deb[0-9])?$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libtidy-dev" - ;; - uuid@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libuuid" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile util-linux-dev" - ;; - uuid@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile uuid-dev" - ;; - uv@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libuv" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libuv-dev" - ;; - uv@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libuv1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libuv1-dev" - ;; - vips@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent vips" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile vips-dev" - ;; - vips@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libvips" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libvips-dev" - ;; - wddx@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - wddx@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - wikidiff2@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile git" - ;; - wikidiff2@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libthai0" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile git libthai-dev" - ;; - xdebug@alpine) - if test $PHP_MAJMIN_VERSION -ge 800; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile linux-headers" - fi - ;; - xlswriter@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev" - ;; - xlswriter@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev" - ;; - xmldiff@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - xmldiff@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - xmlrpc@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - xmlrpc@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - xsl@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libxslt" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxslt-dev libgcrypt-dev" - ;; - xsl@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libxslt1\.1$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxslt-dev" - ;; - yaml@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent yaml" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile yaml-dev" - ;; - yaml@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libyaml-0-2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libyaml-dev" - ;; - yar@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile curl-dev" - ;; - yar@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libcurl3-gnutls" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libcurl4-gnutls-dev" - ;; - zip@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libzip" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake gnutls-dev libzip-dev $buildRequiredPackageLists_libssldev zlib-dev" - ;; - zip@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libzip[0-9]$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake gnutls-dev $buildRequiredPackageLists_libssldev libzip-dev libbz2-dev zlib1g-dev" - case "$DISTRO_VERSION" in - debian@8) - # Debian Jessie doesn't seem to provide libmbedtls - ;; - *) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libmbedtls[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmbedtls-dev" - ;; - esac - ;; - zmq@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent zeromq-dev" - ;; - zmq@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libzmq3-dev" - ;; - zookeeper@alpine) - if ! test -f /usr/local/include/zookeeper/zookeeper.h; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile maven automake libtool openjdk8" - fi - ;; - zookeeper@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libzookeeper-mt2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libzookeeper-mt-dev" - ;; - esac - shift - done - PACKAGES_PERSISTENT_NEW='' - PACKAGES_PERSISTENT_PRE='' - PACKAGES_VOLATILE='' - PACKAGES_PREVIOUS='' - if test -z "$buildRequiredPackageLists_persistent$buildRequiredPackageLists_volatile"; then - return - fi - if test -n "$buildRequiredPackageLists_persistent"; then - PACKAGES_PERSISTENT_NEW="$(expandPackagesToBeInstalled $buildRequiredPackageLists_persistent)" - if test -s "$IPE_ERRFLAG_FILE"; then - exit 1 - fi - resetIFS - for buildRequiredPackageLists_package in $buildRequiredPackageLists_persistent; do - buildRequiredPackageLists_package="$(expandInstalledSystemPackageName "$buildRequiredPackageLists_package")" - if test -n "$buildRequiredPackageLists_package"; then - PACKAGES_PERSISTENT_PRE="$PACKAGES_PERSISTENT_PRE $buildRequiredPackageLists_package" - fi - done - PACKAGES_PERSISTENT_PRE="${PACKAGES_PERSISTENT_PRE# }" - fi - if test -n "$buildRequiredPackageLists_volatile"; then - buildRequiredPackageLists_packages="$(expandPackagesToBeInstalled $buildRequiredPackageLists_volatile)" - if test -s "$IPE_ERRFLAG_FILE"; then - exit 1 - fi - resetIFS - for buildRequiredPackageLists_package in $buildRequiredPackageLists_packages; do - if ! stringInList "$buildRequiredPackageLists_package" "$PACKAGES_PERSISTENT_NEW"; then - if test "$buildRequiredPackageLists_package" != icu-data-en || ! stringInList icu-data-full "$PACKAGES_PERSISTENT_NEW"; then - PACKAGES_VOLATILE="$PACKAGES_VOLATILE $buildRequiredPackageLists_package" - fi - fi - done - PACKAGES_VOLATILE="${PACKAGES_VOLATILE# }" - fi - if test -n "$PACKAGES_PERSISTENT_NEW$PACKAGES_VOLATILE"; then - case "$DISTRO" in - debian) - PACKAGES_PREVIOUS="$(dpkg --get-selections | grep -E '\sinstall$' | awk '{ print $1 }')" - ;; - esac - fi -} - -# Get the full list of APT/APK packages that will be installed, given the required packages -# -# Arguments: -# $1: the list of required APT/APK packages -# -# Output: -# Space-separated list of every APT/APK packages that will be installed -expandPackagesToBeInstalled() { - expandPackagesToBeInstalled_result='' - case "$DISTRO" in - alpine) - expandPackagesToBeInstalled_log="$(apk add --simulate $@ 2>&1 || printf '\nERROR: apk failed\n')" - if test -n "$(printf '%s' "$expandPackagesToBeInstalled_log" | grep -E '^ERROR:')"; then - printf 'FAILED TO LIST THE WHOLE PACKAGE LIST FOR\n' >&2 - printf '%s ' "$@" >&2 - printf '\n\nCOMMAND OUTPUT:\n%s\n' "$expandPackagesToBeInstalled_log" >&2 - echo 'y' >"$IPE_ERRFLAG_FILE" - exit 1 - fi - IFS=' -' - for expandPackagesToBeInstalled_line in $expandPackagesToBeInstalled_log; do - if test -n "$(printf '%s' "$expandPackagesToBeInstalled_line" | grep -E '^\([0-9]*/[0-9]*) Installing ')"; then - expandPackagesToBeInstalled_result="$expandPackagesToBeInstalled_result $(printf '%s' "$expandPackagesToBeInstalled_line" | cut -d ' ' -f 3)" - fi - done - resetIFS - ;; - debian) - expandPackagesToBeInstalled_log="$(DEBIAN_FRONTEND=noninteractive apt-get install -sy --no-install-recommends $IPE_APTGET_INSTALLOPTIONS $@ 2>&1 || printf '\nE: apt-get failed\n')" - if test -n "$(printf '%s' "$expandPackagesToBeInstalled_log" | grep -E '^E:')"; then - printf 'FAILED TO LIST THE WHOLE PACKAGE LIST FOR\n' >&2 - printf '%s ' "$@" >&2 - printf '\n\nCOMMAND OUTPUT:\n%s\n' "$expandPackagesToBeInstalled_log" >&2 - echo 'y' >"$IPE_ERRFLAG_FILE" - exit 1 - fi - expandPackagesToBeInstalled_inNewPackages=0 - IFS=' -' - for expandPackagesToBeInstalled_line in $expandPackagesToBeInstalled_log; do - if test $expandPackagesToBeInstalled_inNewPackages -eq 0; then - if test "$expandPackagesToBeInstalled_line" = 'The following NEW packages will be installed:'; then - expandPackagesToBeInstalled_inNewPackages=1 - fi - elif test "$expandPackagesToBeInstalled_line" = "${expandPackagesToBeInstalled_line# }"; then - break - else - resetIFS - for expandPackagesToBeInstalled_newPackage in $expandPackagesToBeInstalled_line; do - expandPackagesToBeInstalled_result="$expandPackagesToBeInstalled_result $expandPackagesToBeInstalled_newPackage" - done - IFS=' -' - fi - done - resetIFS - ;; - esac - printf '%s' "${expandPackagesToBeInstalled_result# }" -} - -# Check if a system package is installed; if so we prints its name. -# -# Arguments: -# $1: the name of the package to be checked (regular expressions accepted: they must start with a ^) -expandInstalledSystemPackageName() { - if test "$1" = "${1#^}"; then - expandInstalledSystemPackageName_grepflags='-Fx' - else - expandInstalledSystemPackageName_grepflags='-E' - fi - case "$DISTRO" in - alpine) - apk info | grep $expandInstalledSystemPackageName_grepflags -- "$1" || test $? -eq 1 - ;; - debian) - dpkg --get-selections | grep -E '\sinstall$' | awk '{ print $1 }' | cut -d: -f1 | grep $expandInstalledSystemPackageName_grepflags -- "$1" || test $? -eq 1 - ;; - esac -} - -# Retrieve the number of available cores (alternative to nproc if not available) -# -# Output: -# The number of processor cores available -getProcessorCount() { - if test -n "${IPE_PROCESSOR_COUNT:-}"; then - echo $IPE_PROCESSOR_COUNT - return - fi - if command -v nproc >/dev/null 2>&1; then - nproc - else - getProcessorCount_tmp=$(cat /proc/cpuinfo | grep -E '^processor\s*:\s*\d+$' | wc -l) - if test $getProcessorCount_tmp -ge 1; then - echo $getProcessorCount_tmp - else - echo 1 - fi - fi -} - -# Set these variables: -# - TARGET_TRIPLET the build target tripled (eg 'x86_64-linux-gnu', 'x86_64-alpine-linux-musl') -setTargetTriplet() { - TARGET_TRIPLET="$(gcc -print-multiarch 2>/dev/null || true)" - if test -z "$TARGET_TRIPLET"; then - TARGET_TRIPLET="$(gcc -dumpmachine)" - fi -} - -# Retrieve the number of processors to be used when compiling an extension -# -# Arguments: -# $1: the handle of the PHP extension to be compiled -# Output: -# The number of processors to be used -getCompilationProcessorCount() { - case "$1" in - '') - # The above extensions don't support parallel compilation - echo 1 - ;; - *) - # All the other extensions support parallel compilation - getProcessorCount - ;; - esac -} - -# Get the full path of a PHP extension given its name. -# -# Arguments: -# $1: the name of the PHP extension -# -# Output: -# The absolute path of the PHP extension file (or nothing if the file can't be found) -getModuleFullPath() { - case "$1" in - apcu_bc) - getModuleFullPath_path="$PHP_EXTDIR/apc.so" - ;; - seasclick) - getModuleFullPath_path="$PHP_EXTDIR/SeasClick.so" - ;; - *) - getModuleFullPath_path="$PHP_EXTDIR/$1.so" - ;; - esac - if ! test -f "$getModuleFullPath_path"; then - printf 'Unable to find the file of the PHP extension "%s"\n' "$1" >&2 - exit 1 - fi - printf '%s' "$getModuleFullPath_path" -} - -# Post-process a PHP module just compiled and installed in the PHP extension directory -# -# Arguments: -# $1: the name of the PHP extension -# -# Return: -# 0 (true): if suceeded -# non-zero (false): in case of errors -postProcessModule() { - postProcessModule_file="$(getModuleFullPath "$1")" - if test $PHP_DEBUGBUILD -ne 1; then - printf 'Removing symbols from %s... ' "$postProcessModule_file" - postProcessModule_preSize="$(stat -c %s "$postProcessModule_file")" - strip --strip-all "$postProcessModule_file" - postProcessModule_postSize="$(stat -c %s "$postProcessModule_file")" - printf 'done (%s bytes saved).\n' "$((postProcessModule_preSize - postProcessModule_postSize))" - fi - return $? -} - -# Get the type of the php.ini entry to be used for a PHP extension -# -# Arguments: -# $1: the name of the PHP extension -# -# Output: -# zend_extension or extension -getModuleIniEntryType() { - case "$1" in - ioncube_loader | sourceguardian) - # On PHP 5.5, docker-php-ext-enable fails to detect that ionCube Loader and sourceguardian are Zend extensions - if test $PHP_MAJMIN_VERSION -le 505; then - printf 'zend_extension' - return 0 - fi - ;; - esac - getModuleIniEntryType_file="$(getModuleFullPath "$1")" - if readelf --wide --syms "$getModuleIniEntryType_file" | grep -Eq ' zend_extension_entry$'; then - printf 'zend_extension' - else - printf 'extension' - fi -} - -# Create the contents of a PHP ini file that enables an extension -# -# Arguments: -# $1: the name of the PHP extension -# $2: additional php.ini configuration (optional) -# -# Output: -# The contents of the ini file -buildPhpExtensionIniContent() { - buildPhpExtensionIniContent_type="$(getModuleIniEntryType "$1")" - buildPhpExtensionIniContent_soFile="$(getModuleFullPath "$1")" - buildPhpExtensionIniContent_result="$(printf '%s=%s' "$buildPhpExtensionIniContent_type" "${buildPhpExtensionIniContent_soFile##$PHP_EXTDIR/}")" - if test -n "${2:-}"; then - buildPhpExtensionIniContent_result="$(printf '%s\n%s' "$buildPhpExtensionIniContent_result" "$2")" - fi - printf '%s' "$buildPhpExtensionIniContent_result" -} - -# Check that a PHP module actually works (better to run this check before enabling the extension) -# -# Arguments: -# $1: the name of the PHP extension -# $2: base name (without path and extension) of additional php.ini configuration (optional) -# $3: additional php.ini configuration (optional) -# -# Return: -# 0 (true): if the string is in the list -# 1 (false): if the string is not in the list -checkModuleWorking() { - if test -n "${2:-}"; then - checkModuleWorking_iniFile="$PHP_INI_DIR/conf.d/$2--temp.ini" - else - checkModuleWorking_iniFile="$PHP_INI_DIR/conf.d/docker-php-ext-$1--temp.ini" - fi - checkModuleWorking_iniContent="$(buildPhpExtensionIniContent "$1" "${3:-}")" - printf 'Check if the %s module can be loaded... ' "$1" - checkModuleWorking_errBefore="$(php -r 'return;' 2>&1 || true)" - printf '%s' "$checkModuleWorking_iniContent" >"$checkModuleWorking_iniFile" - checkModuleWorking_errAfter="$(php -r 'return;' 2>&1 || true)" - rm "$checkModuleWorking_iniFile" - if test "$checkModuleWorking_errAfter" != "$checkModuleWorking_errBefore"; then - printf 'Error loading the "%s" extension:\n%s\n' "$1" "$checkModuleWorking_errAfter" >&2 - return 1 - fi - printf 'ok.\n' - return 0 -} - -# Enable a PHP extension -# -# Arguments: -# $1: the name of the PHP extension to be enabled -# $2: base name (without path and extension) of additional php.ini configuration (optional) -# $3: additional php.ini configuration (optional) -enablePhpExtension() { - if test -n "${2:-}"; then - enablePhpExtension_iniFile="$PHP_INI_DIR/conf.d/$2.ini" - else - enablePhpExtension_iniFile="$PHP_INI_DIR/conf.d/docker-php-ext-$1.ini" - fi - enablePhpExtension_iniContent="$(buildPhpExtensionIniContent "$1" "${3:-}")" - case "${IPE_DONT_ENABLE:-}" in - 1 | y* | Y*) - enablePhpExtension_enableCommand="/usr/local/bin/docker-php-ext-enable-$1" - printf '%s' "$enablePhpExtension_iniContent" >"$enablePhpExtension_iniFile-disabled" - printf '\n' >>"$enablePhpExtension_iniFile-disabled" - cat <"$enablePhpExtension_enableCommand" -#!/bin/sh - -if test -f '$enablePhpExtension_iniFile-disabled'; then - echo 'Enabling extension $1' - mv '$enablePhpExtension_iniFile-disabled' '$enablePhpExtension_iniFile' -else - echo 'The extension $1 has already been enabled' -fi -EOT - chmod +x "$enablePhpExtension_enableCommand" - printf '## Extension %s not enabled.\nYou can enable it by running the following command:\n%s\n\n' "$1" "$(basename "$enablePhpExtension_enableCommand")" - ;; - *) - printf '%s' "$enablePhpExtension_iniContent" >"$enablePhpExtension_iniFile" - printf '\n' >>"$enablePhpExtension_iniFile" - ;; - esac -} - -# Mark the pre-installed APT/APK packages as used -# that way they won't be uninstalled by accident -markPreinstalledPackagesAsUsed() { - printf '### MARKING PRE-INSTALLED PACKAGES AS IN-USE ###\n' - case "$DISTRO" in - alpine) - printf '# Packages: %s\n' "$PACKAGES_PERSISTENT_PRE" - apk add $PACKAGES_PERSISTENT_PRE - ;; - debian) - DEBIAN_FRONTEND=noninteractive apt-mark manual $PACKAGES_PERSISTENT_PRE - ;; - esac -} - -# Install the required APT/APK packages -# -# Arguments: -# $@: the list of APT/APK packages to be installed -installRequiredPackages() { - printf '### INSTALLING REQUIRED PACKAGES ###\n' - printf '# Packages to be kept after installation: %s\n' "$PACKAGES_PERSISTENT_NEW" - printf '# Packages to be used only for installation: %s\n' "$PACKAGES_VOLATILE" - case "$DISTRO" in - alpine) - apk add $IPE_APK_FLAGS $PACKAGES_PERSISTENT_NEW $PACKAGES_VOLATILE - # https://gitlab.alpinelinux.org/alpine/aports/-/issues/12763#note_172090 - # https://github.com/mlocati/docker-php-extension-installer/issues/385 - # https://github.com/mlocati/docker-php-extension-installer/issues/537#issuecomment-1078748882 - for installRequiredPackages_item in wget; do - if test -n "$(expandInstalledSystemPackageName "$installRequiredPackages_item")"; then - apk add --upgrade "$installRequiredPackages_item" - fi - done - ;; - debian) - DEBIAN_FRONTEND=noninteractive apt-get install -qqy --no-install-recommends $IPE_APTGET_INSTALLOPTIONS $PACKAGES_PERSISTENT_NEW $PACKAGES_VOLATILE - ;; - esac -} - -# Get the version of an installed APT/APK package -# -# Arguments: -# $1: the name of the installed package -# -# Output: -# The numeric part of the package version, with from 1 to 3 numbers -# -# Example: -# 1 -# 1.2 -# 1.2.3 -getInstalledPackageVersion() { - case "$DISTRO" in - alpine) - apk info "$1" | head -n1 | cut -c $((${#1} + 2))- | grep -o -E '^[0-9]+(\.[0-9]+){0,2}' - ;; - debian) - dpkg-query --showformat='${Version}' --show "$1" 2>/dev/null | grep -o -E '^[0-9]+(\.[0-9]+){0,2}' - ;; - esac -} - -# Compare two versions -# -# Arguments: -# $1: the first version -# $2: the second version -# -# Output -# -1 if $1 is less than $2 -# 0 if $1 is the same as $2 -# 1 if $1 is greater than $2 -compareVersions() { - compareVersions_v1="$1.0.0" - compareVersions_v2="$2.0.0" - compareVersions_vMin="$(printf '%s\n%s' "$compareVersions_v1" "$compareVersions_v2" | sort -t '.' -n -k1,1 -k2,2 -k3,3 | head -n 1)" - if test "$compareVersions_vMin" != "$compareVersions_v1"; then - echo '1' - elif test "$compareVersions_vMin" = "$compareVersions_v2"; then - echo '0' - else - echo '-1' - fi -} - -# Install Oracle Instant Client & SDK -# -# Set: -# ORACLE_INSTANTCLIENT_LIBPATH -installOracleInstantClient() { - case "${IPE_INSTANTCLIENT_BASIC:-}" in - 1 | y* | Y*) - installOracleInstantClient_handle=basic - ;; - *) - installOracleInstantClient_handle=basiclite - ;; - esac - case $PHP_BITS in - 32) - installOracleInstantClient_client=client - installOracleInstantClient_version='19.9' - installOracleInstantClient_ic=https://download.oracle.com/otn_software/linux/instantclient/199000/instantclient-$installOracleInstantClient_handle-linux-$installOracleInstantClient_version.0.0.0dbru.zip - installOracleInstantClient_sdk=https://download.oracle.com/otn_software/linux/instantclient/199000/instantclient-sdk-linux-$installOracleInstantClient_version.0.0.0dbru.zip - ;; - *) - case $(uname -m) in - aarch64*) - installOracleInstantClient_client=client64 - installOracleInstantClient_version='19.10' - installOracleInstantClient_ic=https://download.oracle.com/otn_software/linux/instantclient/191000/instantclient-$installOracleInstantClient_handle-linux.arm64-$installOracleInstantClient_version.0.0.0dbru.zip - installOracleInstantClient_sdk=https://download.oracle.com/otn_software/linux/instantclient/191000/instantclient-sdk-linux.arm64-$installOracleInstantClient_version.0.0.0dbru.zip - ;; - *) - installOracleInstantClient_client=client64 - installOracleInstantClient_version='21.1' - installOracleInstantClient_ic=https://download.oracle.com/otn_software/linux/instantclient/211000/instantclient-$installOracleInstantClient_handle-linux.x64-$installOracleInstantClient_version.0.0.0.zip - installOracleInstantClient_sdk=https://download.oracle.com/otn_software/linux/instantclient/211000/instantclient-sdk-linux.x64-$installOracleInstantClient_version.0.0.0.zip - ;; - esac - ;; - esac - ORACLE_INSTANTCLIENT_LIBPATH=/usr/lib/oracle/$installOracleInstantClient_version/$installOracleInstantClient_client/lib - if ! test -e "$ORACLE_INSTANTCLIENT_LIBPATH"; then - printf 'Downloading Oracle Instant Client v%s (%s)... ' "$installOracleInstantClient_version" "$installOracleInstantClient_handle" - installOracleInstantClient_src="$(getPackageSource $installOracleInstantClient_ic)" - mkdir -p "/usr/lib/oracle/$installOracleInstantClient_version/$installOracleInstantClient_client" - mv "$installOracleInstantClient_src" "$ORACLE_INSTANTCLIENT_LIBPATH" - echo 'done.' - fi - if ! test -e "$ORACLE_INSTANTCLIENT_LIBPATH/sdk" && ! test -L "$ORACLE_INSTANTCLIENT_LIBPATH/sdk"; then - printf 'Downloading Oracle Instant SDK v%s... ' "$installOracleInstantClient_version" - installOracleInstantClient_src="$(getPackageSource $installOracleInstantClient_sdk)" - ln -sf "$installOracleInstantClient_src/sdk" "$ORACLE_INSTANTCLIENT_LIBPATH/sdk" - UNNEEDED_PACKAGE_LINKS="$UNNEEDED_PACKAGE_LINKS $ORACLE_INSTANTCLIENT_LIBPATH/sdk" - echo 'done.' - fi - case "$DISTRO" in - alpine) - if ! test -e /usr/lib/libresolv.so.2 && test -e /lib/libc.so.6; then - ln -s /lib/libc.so.6 /usr/lib/libresolv.so.2 - fi - installOracleInstantClient_ldconf=/etc/ld-musl-${TARGET_TRIPLET%-alpine-linux-musl}.path - if test -e "$installOracleInstantClient_ldconf"; then - if ! cat "$installOracleInstantClient_ldconf" | grep -q "$ORACLE_INSTANTCLIENT_LIBPATH"; then - cat "$ORACLE_INSTANTCLIENT_LIBPATH" | awk -v suffix=":$ORACLE_INSTANTCLIENT_LIBPATH" '{print NR==1 ? $0suffix : $0}' >"$ORACLE_INSTANTCLIENT_LIBPATH" - fi - else - case $PHP_BITS in - 32) - echo "/lib:/usr/local/lib:/usr/lib:$ORACLE_INSTANTCLIENT_LIBPATH" >"$installOracleInstantClient_ldconf" - ;; - *) - echo "/lib64:/lib:/usr/local/lib:/usr/lib:$ORACLE_INSTANTCLIENT_LIBPATH" >"$installOracleInstantClient_ldconf" - ;; - esac - fi - ;; - debian) - if ! test -e /etc/ld.so.conf.d/oracle-instantclient.conf; then - echo "$ORACLE_INSTANTCLIENT_LIBPATH" >/etc/ld.so.conf.d/oracle-instantclient.conf - ldconfig - fi - ;; - esac -} - -# Check if the Microsoft SQL Server ODBC Driver is installed -# -# Return: -# 0 (true): if the string is in the list -# 1 (false): if the string is not in the list -isMicrosoftSqlServerODBCInstalled() { - test -d /opt/microsoft/msodbcsql*/ -} - -# Install the Microsoft SQL Server ODBC Driver -# see https://learn.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server -installMicrosoftSqlServerODBC() { - printf 'Installing the Microsoft SQL Server ODBC Driver\n' - case "$DISTRO" in - alpine) - rm -rf /tmp/src/msodbcsql.apk - if test $PHP_MAJMIN_VERSION -le 703; then - curl -sSLf -o /tmp/src/msodbcsql.apk https://download.microsoft.com/download/e/4/e/e4e67866-dffd-428c-aac7-8d28ddafb39b/msodbcsql17_17.10.6.1-1_amd64.apk - else - case $(uname -m) in - aarch64 | arm64 | armv8) - installMicrosoftSqlServerODBC_arch=arm64 - ;; - *) - installMicrosoftSqlServerODBC_arch=amd64 - ;; - esac - curl -sSLf -o /tmp/src/msodbcsql.apk https://download.microsoft.com/download/3/5/5/355d7943-a338-41a7-858d-53b259ea33f5/msodbcsql18_18.3.3.1-1_$installMicrosoftSqlServerODBC_arch.apk - fi - printf '\n' | apk add --allow-untrusted /tmp/src/msodbcsql.apk - rm -rf /tmp/src/msodbcsql.apk - ;; - debian) - printf -- '- installing the Microsoft APT key\n' - if test $DISTRO_VERSION_NUMBER -eq 11; then - curl -sSLf -o /etc/apt/trusted.gpg.d/microsoft.asc https://packages.microsoft.com/keys/microsoft.asc - elif test $DISTRO_VERSION_NUMBER -ge 12; then - curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor --yes --output /usr/share/keyrings/microsoft-prod.gpg - else - # apt-key is deprecated - curl -sSLf https://packages.microsoft.com/keys/microsoft.asc | apt-key add - - fi - if ! test -f /etc/apt/sources.list.d/mssql-release.list; then - printf -- '- adding the Microsoft APT source list\n' - curl -sSLf https://packages.microsoft.com/config/debian/$DISTRO_VERSION_NUMBER/prod.list >/etc/apt/sources.list.d/mssql-release.list - invokeAptGetUpdate - fi - printf -- '- installing the APT package\n' - if test $PHP_MAJMIN_VERSION -le 703; then - DEBIAN_FRONTEND=noninteractive ACCEPT_EULA=Y apt-get install -qqy --no-install-recommends $IPE_APTGET_INSTALLOPTIONS msodbcsql17 - elif test $DISTRO_VERSION_NUMBER -ge 9 && test $DISTRO_VERSION_NUMBER -le 12; then - # On Debian 9 to 12 we have both msodbcsql17 and msodbcsql18: let's install just one - DEBIAN_FRONTEND=noninteractive ACCEPT_EULA=Y apt-get install -qqy --no-install-recommends $IPE_APTGET_INSTALLOPTIONS msodbcsql18 - else - DEBIAN_FRONTEND=noninteractive ACCEPT_EULA=Y apt-get install -qqy --no-install-recommends $IPE_APTGET_INSTALLOPTIONS '^msodbcsql[0-9]+$' - fi - ;; - esac -} - -# Check if libaom is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibaomInstalled() { - if ! test -f /usr/local/lib/libaom.so && ! test -f /usr/lib/libaom.so && ! test -f /usr/lib/x86_64*/libaom.so; then - return 1 - fi - if ! test -f /usr/local/include/aom/aom_codec.h && ! test -f /usr/include/aom/aom_codec.h; then - return 1 - fi - return 0 -} - -# Install libaom -installLibaom() { - printf 'Installing libaom\n' - installLibaom_version=3.8.1 - case "$DISTRO_VERSION" in - debian@10) - case $(uname -m) in - aarch* | arm*) - #see https://bugs.chromium.org/p/aomedia/issues/detail?id=3543 - installLibaom_version=3.5.0 - ;; - esac - ;; - esac - installLibaom_dir="$(getPackageSource https://aomedia.googlesource.com/aom/+archive/v$installLibaom_version.tar.gz)" - mkdir -- "$installLibaom_dir/my.build" - cd -- "$installLibaom_dir/my.build" - cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=1 -DENABLE_DOCS=0 -DENABLE_EXAMPLES=0 -DENABLE_TESTDATA=0 -DENABLE_TESTS=0 -DENABLE_TOOLS=0 -DCMAKE_INSTALL_LIBDIR:PATH=lib .. - ninja -j $(getProcessorCount) install - cd - >/dev/null - ldconfig || true -} - -# Check if libdav1d is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibdav1dInstalled() { - if ! test -f /usr/local/lib/libdav1d.so && ! test -f /usr/lib/libdav1d.so && ! test -f /usr/lib/x86_64*/libdav1d.so; then - return 1 - fi - if ! test -f /usr/local/include/dav1d/dav1d.h && ! test -f /usr/include/dav1d/dav1d.h; then - return 1 - fi - return 0 -} - -# Install libdav1d -installLibdav1d() { - printf 'Installing libdav1d\n' - installLibdav1d_dir="$(getPackageSource https://github.com/videolan/dav1d/archive/refs/tags/1.3.0.tar.gz)" - mkdir -- "$installLibdav1d_dir/build" - cd -- "$installLibdav1d_dir/build" - meson --buildtype release -Dprefix=/usr .. - ninja -j $(getProcessorCount) install - cd - >/dev/null - if test -f /usr/lib/$TARGET_TRIPLET/libdav1d.so && ! test -f /usr/lib/libdav1d.so; then - ln -s /usr/lib/$TARGET_TRIPLET/libdav1d.so /usr/lib/ - fi - ldconfig || true -} - -# Check if libyuv is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibyuvInstalled() { - if ! test -f /usr/local/lib/libyuv.so && ! test -f /usr/lib/libyuv.so && ! test -f /usr/lib/x86_64*/libyuv.so && ! test -f /usr/lib/x86_64*/libyuv.so.*; then - return 1 - fi - if ! test -f /usr/local/include/libyuv.h && ! test -f /usr/include/libyuv.h; then - return 1 - fi - return 0 -} - -# Install libyuv -installLibyuv() { - printf 'Installing libyuv\n' - installLibyuv_dir="$(getPackageSource https://chromium.googlesource.com/libyuv/libyuv/+archive/d359a9f922af840b043535d43cf9d38b220d102e.tar.gz)" - mkdir -- "$installLibyuv_dir/build" - cd -- "$installLibyuv_dir/build" - cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr -B. .. - make -j$(getProcessorCount) install - cd - >/dev/null -} - -# Check if libavif is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibavifInstalled() { - if ! test -f /usr/local/lib/libavif.so && ! test -f /usr/lib/libavif.so && ! test -f /usr/lib/x86_64*/libavif.so; then - return 1 - fi - if ! test -f /usr/local/include/avif/avif.h && ! test -f /usr/include/avif/avif.h; then - return 1 - fi - return 0 -} - -# Install libavif -installLibavif() { - printf 'Installing libavif\n' - installLibavif_dir="$(getPackageSource https://codeload.github.com/AOMediaCodec/libavif/tar.gz/refs/tags/v1.0.3)" - mkdir -- "$installLibavif_dir/build" - cd -- "$installLibavif_dir/build" - cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON -DAVIF_CODEC_AOM=ON -DCMAKE_INSTALL_LIBDIR:PATH=lib - make -j$(getProcessorCount) install - cd - >/dev/null -} - -# Install libmpdec -installLibMPDec() { - installLibMPDec_src="$(getPackageSource https://www.bytereef.org/software/mpdecimal/releases/mpdecimal-2.5.1.tar.gz)" - cd -- "$installLibMPDec_src" - ./configure --disable-cxx - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -# Check if libdatrie is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibDatrieInstalled() { - if ! test -f /usr/local/lib/libdatrie.so && ! test -f /usr/lib/libdatrie.so && ! test -f /usr/lib/x86_64*/libdatrie.so; then - return 1 - fi - if ! test -f /usr/local/include/datrie/trie.h && ! test -f /usr/include/datrie/trie.h; then - return 1 - fi - return 0 -} - -# Install libdatrie -installLibDatrie() { - printf 'Installing libdatrie\n' - installLibDatrie_src="$(getPackageSource https://github.com/tlwg/libdatrie/releases/download/v0.2.13/libdatrie-0.2.13.tar.xz)" - cd -- "$installLibDatrie_src" - ./configure - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -# Check if libdatrie is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibThaiInstalled() { - return 1 - if ! test -f /usr/local/lib/libthai.so && ! test -f /usr/lib/libthai.so && ! test -f /usr/lib/x86_64*/libthai.so; then - return 1 - fi - if ! test -f /usr/local/include/thai/thailib.h && ! test -f /usr/include/thai/thailib.h; then - return 1 - fi - return 0 -} - -# Install libdatrie -installLibThai() { - printf 'Installing libthai\n' - installLibThai_src="$(getPackageSource https://github.com/tlwg/libthai/releases/download/v0.1.29/libthai-0.1.29.tar.xz)" - cd -- "$installLibThai_src" - ./configure - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -# Install Composer -installComposer() { - installComposer_version="$(getWantedPHPModuleVersion @composer)" - installComposer_version="${installComposer_version#^}" - if test -z "$installComposer_version"; then - installComposer_fullname=composer - installComposer_flags='' - else - installComposer_fullname="$(printf 'composer v%s' "$installComposer_version")" - if printf '%s' "$installComposer_version" | grep -Eq '^[0-9]+$'; then - installComposer_flags="--$installComposer_version" - else - installComposer_flags="--version=$installComposer_version" - fi - fi - printf '### INSTALLING %s ###\n' "$installComposer_fullname" - actuallyInstallComposer /usr/local/bin composer "$installComposer_flags" -} - -# Actually install composer -# -# Arguments: -# $1: the directory where composer should be installed (required) -# $2: the composer filename (optional, default: composer) -# $3. additional flags for the composer installed (optional) -actuallyInstallComposer() { - actuallyInstallComposer_installer="$(mktemp -p /tmp/src)" - curl -sSLf -o "$actuallyInstallComposer_installer" https://getcomposer.org/installer - actuallyInstallComposer_expectedSignature="$(curl -sSLf https://composer.github.io/installer.sig)" - actuallyInstallComposer_actualSignature="$(php -n -r "echo hash_file('sha384', '$actuallyInstallComposer_installer');")" - if test "$actuallyInstallComposer_expectedSignature" != "$actuallyInstallComposer_actualSignature"; then - printf 'Verification of composer installer failed!\nExpected signature: %s\nActual signature: %s\n' "$actuallyInstallComposer_expectedSignature" "$actuallyInstallComposer_actualSignature" >&2 - exit 1 - fi - actuallyInstallComposer_flags="--install-dir=$1" - if test -n "${2:-}"; then - actuallyInstallComposer_flags="$actuallyInstallComposer_flags --filename=$2" - else - actuallyInstallComposer_flags="$actuallyInstallComposer_flags --filename=composer" - fi - if test -n "${3:-}"; then - actuallyInstallComposer_flags="$actuallyInstallComposer_flags $3" - fi - php "$actuallyInstallComposer_installer" $actuallyInstallComposer_flags - rm -- "$actuallyInstallComposer_installer" -} - -# Install ionCube Loader -installIonCubeLoader() { - # See https://www.ioncube.com/loaders.php - case $PHP_BITS in - 32) - case $(uname -m) in - aarch* | arm*) - installIonCubeLoader_url="https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_armv7l.tar.gz" - ;; - *) - installIonCubeLoader_url="https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86.tar.gz" - ;; - esac - ;; - *) - case $(uname -m) in - aarch64 | arm64 | armv8) - installIonCubeLoader_url="https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_aarch64.tar.gz" - ;; - *) - installIonCubeLoader_url="https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz" - ;; - esac - ;; - esac - printf 'Downloading ionCube Loader... ' - installIonCubeLoader_dir="$(getPackageSource $installIonCubeLoader_url)" - echo 'done.' - installIonCubeLoader_so=$(php -r "printf('ioncube_loader_lin_%s.%s%s.so', PHP_MAJOR_VERSION, PHP_MINOR_VERSION, ZEND_THREAD_SAFE ? '_ts' : '');") - cp "$installIonCubeLoader_dir/$installIonCubeLoader_so" "$(getPHPExtensionsDir)/ioncube_loader.so" -} - -# Install SourceGuardian Loader -installSourceGuardian() { - # See https://www.sourceguardian.com/loaders.html - case $PHP_BITS in - 32) - installSourceGuardian_url=https://www.sourceguardian.com/loaders/download/loaders.linux-i386.tar.gz - ;; - *) - case $(uname -m) in - aarch64 | arm64 | armv8) - installSourceGuardian_url=https://www.sourceguardian.com/loaders/download/loaders.linux-aarch64.tar.gz - ;; - *) - installSourceGuardian_url=https://www.sourceguardian.com/loaders/download/loaders.linux-x86_64.tar.gz - ;; - esac - ;; - esac - printf 'Downloading SourceGuardian... ' - installSourceGuardian_dir="$(getPackageSource $installSourceGuardian_url)" - printf 'done (version: %s)\n' "$(cat "$installSourceGuardian_dir/version")" - for installSourceGuardian_phpv in $PHP_MAJDOTMINDOTPAT_VERSION $PHP_MAJDOTMIN_VERSION; do - installSourceGuardian_file="$installSourceGuardian_dir/ixed.$PHP_MAJDOTMIN_VERSION" - if test $PHP_THREADSAFE -eq 1; then - installSourceGuardian_file="${installSourceGuardian_file}ts" - fi - installSourceGuardian_file="${installSourceGuardian_file}.lin" - if test -f "$installSourceGuardian_file"; then - mv "$installSourceGuardian_file" "$(getPHPExtensionsDir)/sourceguardian.so" - return - fi - done - printf 'Unable to find a SourceGuardian compatible with PHP %s or PHP %s.\nAvailable SourceGuardian versions:\n' "$PHP_MAJDOTMINDOTPAT_VERSION" "$PHP_MAJDOTMIN_VERSION" >&2 - ls -1 "$installSourceGuardian_dir" | grep -E '^ixed\..*\.lin$' | sed -E 's/^[^0-9]+([0-9]+(\.[0-9]+)*).*$/\1/' | sort | uniq >&2 - exit 1 -} - -# Install Cargo (if not yet installed) -installCargo() { - if command -v cargo >/dev/null; then - return - fi - printf '# Installing cargo\n' - case "$DISTRO" in - alpine) - # see https://github.com/hyperledger/indy-vdr/issues/69#issuecomment-998104850 - export RUSTFLAGS='-C target-feature=-crt-static' - ;; - esac - curl https://sh.rustup.rs -sSf | sh -s -- -y -q - . "$HOME/.cargo/env" - if test -z "${IPE_UNINSTALL_CARGO:-}"; then - IPE_UNINSTALL_CARGO=y - fi -} - -installNewRelic() { - printf '# Installing newrelic\n' - installNewRelic_search='\bnewrelic-php[0-9.]*-[0-9]+(\.[0-9]+)*-linux' - case "$DISTRO" in - alpine) - installNewRelic_search="$installNewRelic_search-musl" - ;; - esac - installNewRelic_file="$(curl -sSLf -o- https://download.newrelic.com/php_agent/release/ | sed -E 's/<[^>]*>//g' | grep -Eo "$installNewRelic_search.tar.gz" | sort | head -1)" - installNewRelic_url="https://download.newrelic.com/php_agent/release/$installNewRelic_file" - installNewRelic_src="$(getPackageSource "$installNewRelic_url")" - cd -- "$installNewRelic_src" - NR_INSTALL_USE_CP_NOT_LN=1 NR_INSTALL_SILENT=1 ./newrelic-install install - case "${IPE_NEWRELIC_DAEMON:-}" in - 1 | y* | Y*) - NR_INSTALL_USE_CP_NOT_LN=1 NR_INSTALL_SILENT=1 ./newrelic-install install_daemon - ;; - esac - cd - >/dev/null - cat <&2 - fi - if test -n "$(getModuleSourceCodePath "$1")"; then - printf '### WARNING the module "%s" is bundled with PHP, you can NOT specify a source code path for it\n' "$1" >&2 - fi - case "$1" in - dba) - if test -e /usr/lib/$TARGET_TRIPLET/libdb-5.3.so && ! test -e /usr/lib/libdb-5.3.so; then - ln -s /usr/lib/$TARGET_TRIPLET/libdb-5.3.so /usr/lib/ - fi - if test $PHP_MAJMIN_VERSION -le 505; then - docker-php-source extract - patch /usr/src/php/ext/dba/config.m4 </dev/null - fi - ;; - ftp) - docker-php-ext-configure ftp --with-openssl-dir=/usr - ;; - gd) - if test $PHP_MAJMIN_VERSION -le 506; then - docker-php-ext-configure gd --with-gd --with-jpeg-dir --with-png-dir --with-zlib-dir --with-xpm-dir --with-freetype-dir --enable-gd-native-ttf --with-vpx-dir - elif test $PHP_MAJMIN_VERSION -le 701; then - docker-php-ext-configure gd --with-gd --with-jpeg-dir --with-png-dir --with-zlib-dir --with-xpm-dir --with-freetype-dir --enable-gd-native-ttf --with-webp-dir - elif test $PHP_MAJMIN_VERSION -le 703; then - docker-php-ext-configure gd --with-gd --with-jpeg-dir --with-png-dir --with-zlib-dir --with-xpm-dir --with-freetype-dir --with-webp-dir - elif test $PHP_MAJMIN_VERSION -le 800; then - docker-php-ext-configure gd --enable-gd --with-webp --with-jpeg --with-xpm --with-freetype - else - installBundledModule_tmp=0 - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -ge 315; then - installBundledModule_tmp=1 - fi - ;; - debian) - if test $DISTRO_VERSION_NUMBER -ge 12; then - installBundledModule_tmp=1 - fi - ;; - esac - if test $installBundledModule_tmp -eq 0; then - case "${IPE_GD_WITHOUTAVIF:-}" in - 1 | y* | Y*) ;; - *) - if ! isLibaomInstalled; then - installLibaom - fi - if ! isLibdav1dInstalled; then - installLibdav1d - fi - if ! isLibyuvInstalled; then - installLibyuv - fi - if ! isLibavifInstalled; then - installLibavif - fi - ;; - esac - if isLibaomInstalled && isLibdav1dInstalled && isLibyuvInstalled && isLibavifInstalled; then - installBundledModule_tmp=1 - fi - fi - if test $installBundledModule_tmp -eq 1; then - docker-php-ext-configure gd --enable-gd --with-webp --with-jpeg --with-xpm --with-freetype --with-avif - else - docker-php-ext-configure gd --enable-gd --with-webp --with-jpeg --with-xpm --with-freetype - fi - fi - ;; - gmp) - if test $PHP_MAJMIN_VERSION -le 506; then - if ! test -f /usr/include/gmp.h; then - ln -s /usr/include/$TARGET_TRIPLET/gmp.h /usr/include/gmp.h - UNNEEDED_PACKAGE_LINKS="$UNNEEDED_PACKAGE_LINKS /usr/include/gmp.h" - fi - fi - ;; - imap) - case "$DISTRO_VERSION" in - debian@9) - installBundledModule_tmp="$(pwd)" - cd /tmp - apt-get download $IPE_APTGET_INSTALLOPTIONS libc-client2007e-dev - dpkg -i --ignore-depends=libssl-dev libc-client2007e-dev* - rm libc-client2007e-dev* - cd "$installBundledModule_tmp" - ;; - esac - PHP_OPENSSL=yes docker-php-ext-configure imap --with-kerberos --with-imap-ssl - ;; - interbase | pdo_firebird) - case "$DISTRO" in - alpine) - if ! test -d /tmp/src/firebird; then - mv "$(getPackageSource https://github.com/FirebirdSQL/firebird/releases/download/R2_5_9/Firebird-2.5.9.27139-0.tar.bz2)" /tmp/src/firebird - cd /tmp/src/firebird - # Patch rwlock.h (this has been fixed in later release of firebird 3.x) - sed -i '194s/.*/#if 0/' src/common/classes/rwlock.h - ./configure --with-system-icu - # -j option can't be used: make targets must be compiled sequentially - make -s btyacc_binary gpre_boot libfbstatic libfbclient - cp gen/firebird/lib/libfbclient.so /usr/lib/ - ln -s /usr/lib/libfbclient.so /usr/lib/libfbclient.so.2 - cd - >/dev/null - fi - CFLAGS='-I/tmp/src/firebird/src/jrd -I/tmp/src/firebird/src/include -I/tmp/src/firebird/src/include/gen' docker-php-ext-configure $1 - ;; - esac - ;; - ldap) - case "$DISTRO" in - debian) - docker-php-ext-configure ldap --with-libdir=lib/$TARGET_TRIPLET - ;; - esac - ;; - mssql | pdo_dblib) - if ! test -f /usr/lib/libsybdb.so; then - ln -s /usr/lib/$TARGET_TRIPLET/libsybdb.so /usr/lib/libsybdb.so - UNNEEDED_PACKAGE_LINKS="$UNNEEDED_PACKAGE_LINKS /usr/lib/libsybdb.so" - fi - ;; - odbc) - docker-php-source extract - cd /usr/src/php/ext/odbc - phpize - sed -ri 's@^ *test +"\$PHP_.*" *= *"no" *&& *PHP_.*=yes *$@#&@g' configure - ./configure --with-unixODBC=shared,/usr - cd - >/dev/null - ;; - oci8 | pdo_oci) - installOracleInstantClient - if test "$1" = oci8; then - docker-php-ext-configure "$1" "--with-oci8=instantclient,$ORACLE_INSTANTCLIENT_LIBPATH" - elif test "$1" = pdo_oci; then - docker-php-ext-configure "$1" "--with-pdo-oci=instantclient,$ORACLE_INSTANTCLIENT_LIBPATH" - fi - ;; - pdo_odbc) - docker-php-ext-configure pdo_odbc --with-pdo-odbc=unixODBC,/usr - ;; - snmp) - case "$DISTRO" in - alpine) - mkdir -p -m 0755 /var/lib/net-snmp/mib_indexes - ;; - esac - ;; - sockets) - case "$PHP_MAJDOTMINDOTPAT_VERSION" in - 8.0.15 | 8.1.2) - sed -i '70 i #ifndef _GNU_SOURCE' /usr/src/php/ext/sockets/config.m4 - sed -i '71 i #define _GNU_SOURCE' /usr/src/php/ext/sockets/config.m4 - sed -i '72 i #endif' /usr/src/php/ext/sockets/config.m4 - ;; - esac - ;; - sybase_ct) - docker-php-ext-configure sybase_ct --with-sybase-ct=/usr - ;; - tidy) - case "$DISTRO" in - alpine) - if ! test -f /usr/include/buffio.h; then - ln -s /usr/include/tidybuffio.h /usr/include/buffio.h - UNNEEDED_PACKAGE_LINKS="$UNNEEDED_PACKAGE_LINKS /usr/include/buffio.h" - fi - ;; - esac - ;; - zip) - if test $PHP_MAJMIN_VERSION -le 505; then - docker-php-ext-configure zip - elif test $PHP_MAJMIN_VERSION -le 703; then - docker-php-ext-configure zip --with-libzip - else - docker-php-ext-configure zip --with-zip - fi - ;; - esac - installBundledModule_errBefore="$(php -r 'return;' 2>&1 || true)" - docker-php-ext-install -j$(getProcessorCount) "$1" - case "$1" in - imap) - case "$DISTRO_VERSION" in - debian@9) - dpkg -r libc-client2007e-dev - ;; - esac - ;; - esac - case "${IPE_SKIP_CHECK:-}" in - 1 | y* | Y*) ;; - *) - php -r 'return;' >/dev/null 2>/dev/null || true - installBundledModule_errAfter="$(php -r 'return;' 2>&1 || true)" - if test "$installBundledModule_errAfter" != "$installBundledModule_errBefore"; then - printf 'PHP has problems after installing the "%s" extension:\n%s\n' "$1" "$installBundledModule_errAfter" >&2 - rm "$PHP_INI_DIR/conf.d/docker-php-ext-$1.ini" || true - return 1 - fi - ;; - esac -} - -# Fetch a tar.gz file, extract it and returns the path of the extracted folder. -# -# Arguments: -# $1: the URL of the file to be downloaded -# -# Output: -# The path of the extracted directory -getPackageSource() { - mkdir -p /tmp/src - getPackageSource_tempFile=$(mktemp -p /tmp/src) - curl -sSLf -o "$getPackageSource_tempFile" "$1" - getPackageSource_tempDir=$(mktemp -p /tmp/src -d) - cd "$getPackageSource_tempDir" - tar -xzf "$getPackageSource_tempFile" 2>/dev/null || tar -xf "$getPackageSource_tempFile" 2>/dev/null || ( - if command -v bsdtar >/dev/null; then - bsdtar -xf "$getPackageSource_tempFile" - else - unzip -q "$getPackageSource_tempFile" - fi - ) - cd - >/dev/null - unlink "$getPackageSource_tempFile" - getPackageSource_outDir='' - for getPackageSource_i in $(ls "$getPackageSource_tempDir"); do - if test -n "$getPackageSource_outDir" || test -f "$getPackageSource_tempDir/$getPackageSource_i"; then - getPackageSource_outDir='' - break - fi - getPackageSource_outDir="$getPackageSource_tempDir/$getPackageSource_i" - done - if test -n "$getPackageSource_outDir"; then - printf '%s' "$getPackageSource_outDir" - else - printf '%s' "$getPackageSource_tempDir" - fi -} - -# Install a PECL/remote PHP module given its handle -# -# Arguments: -# $1: the handle of the PHP module -installRemoteModule() { - installRemoteModule_module="$1" - printf '### INSTALLING REMOTE MODULE %s ###\n' "$installRemoteModule_module" - installRemoteModule_version="$(resolvePHPModuleVersion "$installRemoteModule_module")" - installRemoteModule_path="$(getModuleSourceCodePath "$installRemoteModule_module")" - rm -rf "$CONFIGURE_FILE" - installRemoteModule_manuallyInstalled=0 - installRemoteModule_cppflags='' - installRemoteModule_ini_basename='' - installRemoteModule_ini_extra='' - case "$installRemoteModule_module" in - amqp) - if test -z "$installRemoteModule_version"; then - if test "$DISTRO_VERSION" = debian@8; then - # in Debian Jessie we have librabbitmq version 0.5.2 - installRemoteModule_version=1.9.3 - elif test $PHP_MAJMIN_VERSION -le 505; then - installRemoteModule_version=1.9.4 - elif test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=1.11.0 - fi - fi - ;; - apcu) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=4.0.11 - fi - fi - ;; - apcu_bc) - # apcu_bc must be loaded after apcu - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - ;; - ast) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=1.0.16 - fi - fi - ;; - bitset) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.0.4 - fi - fi - ;; - blackfire) - case $(uname -m) in - i386 | i686 | x86) - installRemoteModule_tmp1=i386 - ;; - aarch64 | arm64 | armv8) - installRemoteModule_tmp1=arm64 - ;; - *) - installRemoteModule_tmp1=amd64 - ;; - esac - case $DISTRO in - alpine) - installRemoteModule_distro=alpine - ;; - *) - installRemoteModule_distro=linux - ;; - esac - installRemoteModule_tmp2=$(php -r 'echo PHP_MAJOR_VERSION . PHP_MINOR_VERSION;') - installRemoteModule_tmp="$(mktemp -p /tmp/src -d)" - cd "$installRemoteModule_tmp" - curl -sSLf --user-agent Docker https://blackfire.io/api/v1/releases/probe/php/$installRemoteModule_distro/$installRemoteModule_tmp1/$installRemoteModule_tmp2 | tar xz - mv blackfire-*.so $(getPHPExtensionsDir)/blackfire.so - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - installRemoteModule_ini_extra="$(printf '%sblackfire.agent_socket=tcp://blackfire:8307\n' "$installRemoteModule_ini_extra")" - ;; - cassandra) - installRemoteModule_src="$(getPackageSource https://github.com/nano-interactive/ext-cassandra/tarball/1cf12c5ce49ed43a2c449bee4b7b23ce02a37bf0)" - cd "$installRemoteModule_src/ext" - phpize - ./configure - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - ;; - cmark) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=1.1.0 - fi - fi - if ! test -e /usr/local/lib/libcmark.so && ! test -e /usr/local/lib64/libcmark.so && ! test -e /usr/lib/libcmark.so && ! test -e /usr/lib64/libcmark.so && ! test -e /lib/libcmark.so; then - if test $(compareVersions "$(cmake --version | head -n1 | sed -E 's/^.* //')" '3.7') -lt 0; then - installRemoteModule_tmp=0.29.0 - else - installRemoteModule_tmp=0.31.0 - fi - cd "$(getPackageSource https://github.com/commonmark/cmark/archive/$installRemoteModule_tmp.tar.gz)" - make -s -j$(getProcessorCount) cmake_build - make -s -j$(getProcessorCount) install - cd - >/dev/null - case "$DISTRO" in - alpine) - if test -e /usr/local/lib64/libcmark.so.$installRemoteModule_tmp && ! test -e /usr/local/lib/libcmark.so.$installRemoteModule_tmp; then - ln -s /usr/local/lib64/libcmark.so.$installRemoteModule_tmp /usr/local/lib/ - fi - ;; - *) - ldconfig || true - ;; - esac - fi - ;; - csv) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=0.3.1 - fi - fi - ;; - ddtrace) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=0.75.0 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 0.75.0) -ge 0; then - installCargo - fi - ;; - decimal) - case "$DISTRO" in - alpine) - if ! test -f /usr/local/lib/libmpdec.so; then - installLibMPDec - fi - ;; - debian) - if test $DISTRO_MAJMIN_VERSION -ge 1200; then - if test -z "$(ldconfig -p | grep -E '\slibmpdec.so\s')"; then - installLibMPDec - fi - fi - ;; - esac - ;; - ds) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 703; then - installRemoteModule_version=1.3.0 - elif test $PHP_MAJMIN_VERSION -lt 704; then - installRemoteModule_version=1.4.0 - fi - fi - ;; - ecma_intl) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=alpha - fi - ;; - event) - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 2.4.0) -ge 0; then - # Enable internal debugging in Event - addConfigureOption enable-event-debug no - # Enable sockets support in Event - if php --ri sockets >/dev/null 2>/dev/null; then - addConfigureOption enable-event-sockets yes - else - addConfigureOption enable-event-sockets no - fi - # libevent installation prefix - addConfigureOption with-event-libevent-dir /usr - # Include libevent's pthreads library and enable thread safety support in Event - addConfigureOption with-event-pthreads yes - # Include libevent protocol-specific functionality support including HTTP, DNS, and RPC - addConfigureOption with-event-extra yes - # Include libevent OpenSSL support - addConfigureOption with-event-openssl yes - # PHP Namespace for all Event classes - if test -n "${IPE_EVENT_NAMESPACE:-}"; then - addConfigureOption with-event-ns "$IPE_EVENT_NAMESPACE" - else - addConfigureOption with-event-ns no - fi - # openssl installation prefix - addConfigureOption with-openssl-dir yes - elif test $(compareVersions "$installRemoteModule_version" 1.7.6) -ge 0; then - # Enable internal debugging in Event - addConfigureOption enable-event-debug no - # Enable sockets support in Event - if php --ri sockets >/dev/null 2>/dev/null; then - addConfigureOption enable-event-sockets yes - else - addConfigureOption enable-event-sockets no - fi - # libevent installation prefix - addConfigureOption with-event-libevent-dir /usr - # Include libevent's pthreads library and enable thread safety support in Event - addConfigureOption with-event-pthreads yes - # Include libevent protocol-specific functionality support including HTTP, DNS, and RPC - addConfigureOption with-event-extra yes - # Include libevent OpenSSL support - addConfigureOption with-event-openssl yes - # openssl installation prefix - addConfigureOption with-openssl-dir no - elif test $(compareVersions "$installRemoteModule_version" 1.3.0) -ge 0; then - # Enable internal debugging in event - addConfigureOption enable-event-debug no - # libevent installation prefix - addConfigureOption with-event-libevent-dir /usr - # Include libevent's pthreads library and enable thread safety support in event - addConfigureOption with-event-pthreads yes - # Include libevent protocol-specific functionality support including HTTP, DNS, and RPC - addConfigureOption with-event-extra yes - # Include libevent OpenSSL support - addConfigureOption with-event-openssl yes - # openssl installation prefix - addConfigureOption with-openssl-dir no - fi - # event must be loaded after sockets - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - ;; - gearman) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.1.2 - fi - fi - case "$DISTRO" in - alpine) - if ! test -e /usr/local/include/libgearman/gearman.h || ! test -e /usr/local/lib/libgearman.so; then - installRemoteModule_src="$(getPackageSource https://github.com/gearman/gearmand/releases/download/1.1.21/gearmand-1.1.21.tar.gz)" - cd -- "$installRemoteModule_src" - ./configure - make -j$(getProcessorCount) install-binPROGRAMS - make -j$(getProcessorCount) install-nobase_includeHEADERS - cd - >/dev/null - fi - ;; - esac - ;; - geoip) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=beta - fi - ;; - geos) - if test -z "$installRemoteModule_path"; then - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=0def35611f773c951432f1f06a155471a5cb7611 - fi - installRemoteModule_src="$(getPackageSource https://git.osgeo.org/gitea/geos/php-geos/archive/$installRemoteModule_version.tar.gz)" - cd "$installRemoteModule_src" - ./autogen.sh - ./configure - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - fi - ;; - geospatial) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.2.1 - else - installRemoteModule_version=beta - fi - fi - ;; - gmagick) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.1.7RC3 - else - installRemoteModule_version=beta - fi - fi - ;; - grpc) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.33.1 - else - case "$DISTRO_VERSION" in - debian@8) - installRemoteModule_version=1.46.3 - ;; - alpine@3.7 | alpine@3.8 | debian@9) # With newer version: "This package requires GCC 7 or higher" - installRemoteModule_version=1.52.1 - ;; - esac - fi - fi - if test -z "$installRemoteModule_version" || test "$installRemoteModule_version" = 1.35.0; then - case "$DISTRO_VERSION" in - alpine@3.13) - installRemoteModule_cppflags='-Wno-maybe-uninitialized' - ;; - esac - fi - ;; - http) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.6.0 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=3.2.4 - fi - fi - if test $PHP_MAJMIN_VERSION -ge 700; then - if ! test -e /usr/local/lib/libidnkit.so; then - installRemoteModule_src="$(getPackageSource https://jprs.co.jp/idn/idnkit-2.3.tar.bz2)" - cd -- "$installRemoteModule_src" - ./configure - make -j$(getProcessorCount) install - cd - >/dev/null - fi - fi - # http must be loaded after raphf and propro - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - ;; - igbinary) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.0.8 - fi - fi - ;; - imap) - # Include Kerberos Support - addConfigureOption with-kerberos yes - # Include SSL Support - addConfigureOption with-imap-ssl yes - ;; - inotify) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.1.6 - fi - fi - ;; - ion) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=alpha - fi - if ! test -f /usr/local/lib/libionc.so || ! test -f /usr/local/include/ionc/ion.h; then - echo 'Installing ion-c... ' - installRemoteModule_src="$(mktemp -p /tmp/src -d)" - git clone -q -c advice.detachedHead=false --depth 1 --branch v1.1.2 https://github.com/amzn/ion-c.git "$installRemoteModule_src/ion" - ( - cd "$installRemoteModule_src/ion" - git submodule init -q - git submodule update -q - mkdir -p build - cd build - cmake -DCMAKE_BUILD_TYPE=Release .. -Wno-dev - make clean - make -j$(getProcessorCount) install - ) - rm -rf "$installRemoteModule_src" - fi - addConfigureOption with-ion "shared,/usr/local" - ;; - ioncube_loader) - installIonCubeLoader - installRemoteModule_manuallyInstalled=1 - ;; - jsmin) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=2.0.1 - fi - fi - ;; - jsonpath) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 800; then - installRemoteModule_version=1.0.1 - fi - fi - ;; - luasandbox) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 702; then - installRemoteModule_version=3.0.3 - fi - fi - ;; - lz4) - if test -z "$installRemoteModule_path"; then - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=0.4.3 - fi - installRemoteModule_src="$(getPackageSource https://github.com/kjdev/php-ext-lz4/archive/refs/tags/$installRemoteModule_version.tar.gz)" - cd "$installRemoteModule_src" - phpize - ./configure --with-lz4-includedir=/usr - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - fi - ;; - lzf) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 702; then - installRemoteModule_version=1.6.8 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" '1.5.0') -ge 0; then - # Sacrifice speed in favour of compression ratio? - case "${IPE_LZF_BETTERCOMPRESSION:-}" in - 1 | y* | Y*) - addConfigureOption 'enable-lzf-better-compression' 'yes' - ;; - *) - addConfigureOption 'enable-lzf-better-compression' 'no' - ;; - esac - fi - ;; - mailparse) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.1.6 - elif test $PHP_MAJMIN_VERSION -le 702; then - installRemoteModule_version=3.1.3 - fi - fi - ;; - memcache) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.2.7 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=4.0.5.2 - fi - fi - ;; - memcached) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.2.0 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - # Set the path to libmemcached install prefix - addConfigureOption 'with-libmemcached-dir' 'no' - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" '3.0.0') -ge 0; then - # Set the path to ZLIB install prefix - addConfigureOption 'with-zlib-dir' 'no' - # Use system FastLZ library - addConfigureOption 'with-system-fastlz' 'no' - # Enable memcached igbinary serializer support - if php --ri igbinary >/dev/null 2>/dev/null; then - addConfigureOption 'enable-memcached-igbinary' 'yes' - else - addConfigureOption 'enable-memcached-igbinary' 'no' - fi - # Enable memcached msgpack serializer support - if php --ri msgpack >/dev/null 2>/dev/null; then - addConfigureOption 'enable-memcached-msgpack' 'yes' - else - addConfigureOption 'enable-memcached-msgpack' 'no' - fi - # Enable memcached json serializer support - addConfigureOption 'enable-memcached-json' 'yes' - # Enable memcached protocol support - addConfigureOption 'enable-memcached-protocol' 'no' # https://github.com/php-memcached-dev/php-memcached/issues/418#issuecomment-449587972 - # Enable memcached sasl support - addConfigureOption 'enable-memcached-sasl' 'yes' - # Enable memcached session handler support - addConfigureOption 'enable-memcached-session' 'yes' - fi - # memcached must be loaded after msgpack - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - ;; - memprof) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.0.0 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=2.1.0 - fi - fi - ;; - mongo) - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" '1.5.0') -ge 0; then - # Build with Cyrus SASL (MongoDB Enterprise Authentication) support? - addConfigureOption '-with-mongo-sasl' 'yes' - fi - ;; - mongodb) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 505; then - installRemoteModule_version=1.5.5 - elif test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.7.5 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=1.9.2 - elif test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=1.11.1 - elif test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=1.16.2 - fi - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 1.17.0) -ge 0; then - # Enable developer flags? (yes/no) - addConfigureOption enable-mongodb-developer-flags no - # Enable code coverage? (yes/no) - addConfigureOption enable-mongodb-coverage no - # Use system libraries for libbson, libmongoc, and libmongocrypt? (yes/no) - addConfigureOption with-mongodb-system-libs no - # Enable client-side encryption? (auto/yes/no) - addConfigureOption with-mongodb-client-side-encryption yes - # Enable Snappy for compression? (auto/yes/no) - addConfigureOption with-mongodb-snappy yes - # Enable zlib for compression? (auto/system/bundled/no) - addConfigureOption with-mongodb-zlib yes - # Enable zstd for compression? (auto/yes/no) - addConfigureOption with-mongodb-zstd yes - # Enable SASL for Kerberos authentication? (auto/cyrus/no) - addConfigureOption with-mongodb-sasl yes - # Enable crypto and TLS? (auto/openssl/libressl/darwin/no) - addConfigureOption with-mongodb-ssl yes - # Use system crypto profile (OpenSSL only)? (yes/no) - addConfigureOption enable-mongodb-crypto-system-profile yes - # Use bundled or system utf8proc for SCRAM-SHA-256 SASLprep? (bundled/system) - addConfigureOption with-mongodb-utf8proc bundled - fi - ;; - mosquitto) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=beta - fi - ;; - msgpack) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.5.7 - fi - fi - ;; - newrelic) - installNewRelic - installRemoteModule_manuallyInstalled=2 - ;; - oauth) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.2.3 - fi - fi - ;; - oci8 | pdo_oci) - installOracleInstantClient - if test "$installRemoteModule_module" = oci8; then - addConfigureOption with-oci8 "instantclient,$ORACLE_INSTANTCLIENT_LIBPATH" - elif test "$installRemoteModule_module" = pdo_oci; then - addConfigureOption with-pdo-oci "instantclient,$ORACLE_INSTANTCLIENT_LIBPATH" - fi - ;; - opencensus) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=alpha - fi - ;; - openswoole) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 704; then - installRemoteModule_version=4.10.0 - elif test $PHP_MAJMIN_VERSION -lt 801; then - installRemoteModule_version=22.0.0 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if php --ri sockets >/dev/null 2>/dev/null; then - installRemoteModule_sockets=yes - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - else - installRemoteModule_sockets=no - fi - installRemoteModule_openssl=yes - if test -n "$installRemoteModule_version" && test $(compareVersions "$installRemoteModule_version" 22.1.2) -ge 0; then - # enable coroutine sockets? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 protocol? - addConfigureOption enable-http2 yes - # enable coroutine mysqlnd? - addConfigureOption enable-mysqlnd yes - # enable coroutine curl? - addConfigureOption enable-hook-curl yes - # enable coroutine postgres? - addConfigureOption with-postgres yes - elif test $(compareVersions "$installRemoteModule_version" 22.1.1) -ge 0; then - # enable c-ares support? - addConfigureOption enable-cares yes - # enable coroutine sockets? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 protocol? - addConfigureOption enable-http2 yes - # enable coroutine mysqlnd? - addConfigureOption enable-mysqlnd yes - # enable coroutine curl? - addConfigureOption enable-hook-curl yes - # enable coroutine postgres? - addConfigureOption with-postgres yes - elif test $(compareVersions "$installRemoteModule_version" 22.1.0) -ge 0; then - # enable coroutine sockets? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 protocol? - addConfigureOption enable-http2 yes - # enable coroutine mysqlnd? - addConfigureOption enable-mysqlnd yes - # enable coroutine curl? - addConfigureOption enable-hook-curl yes - # enable coroutine postgres? - addConfigureOption with-postgres yes - elif test $(compareVersions "$installRemoteModule_version" 22.0.0) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable hook curl support? - addConfigureOption enable-hook-curl yes - # enable postgres support? - addConfigureOption with-postgres yes - elif test $(compareVersions "$installRemoteModule_version" 4.8.0) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable json support? - addConfigureOption enable-swoole-json yes - # enable curl support? - addConfigureOption enable-swoole-curl yes - # enable postgres support? - addConfigureOption with-postgres yes - else - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable json support? - addConfigureOption enable-swoole-json yes - # enable curl support? - addConfigureOption enable-swoole-curl yes - fi - ;; - parallel) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=0.8.3 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=1.1.4 - fi - fi - ;; - parle) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 704; then - installRemoteModule_version=0.8.3 - else - installRemoteModule_version=beta - fi - fi - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 0.8.4) -ge 0; then - # Enable internal UTF-32 support in parle - addConfigureOption enable-parle-utf32 yes - fi - ;; - pcov) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=0.9.0 - fi - fi - ;; - php_trie) - if ! test -f /usr/local/include/hat-trie/include/tsl/htrie_map.h; then - installRemoteModule_src="$(getPackageSource https://codeload.github.com/Tessil/hat-trie/tar.gz/v0.6.0)" - mkdir -p /usr/local/include/hat-trie - mv "$installRemoteModule_src/include" /usr/local/include/hat-trie - fi - ;; - pq) - # pq must be loaded after raphf - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - ;; - propro) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.0.2 - fi - fi - ;; - protobuf) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=3.12.4 - elif test $PHP_MAJMIN_VERSION -lt 800; then - installRemoteModule_version=3.24.4 - elif test $PHP_MAJMIN_VERSION -lt 801; then - installRemoteModule_version=3.25.3 - fi - fi - ;; - pthreads) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.0.10 - fi - fi - ;; - raphf) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.1.2 - fi - fi - ;; - rdkafka) - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version"; then - installRemoteModule_version1='' - if test $PHP_MAJMIN_VERSION -le 505; then - installRemoteModule_version1=3.0.5 - elif test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version1=4.1.2 - fi - installRemoteModule_version2='' - case "$DISTRO" in - alpine) - installRemoteModule_tmp='librdkafka' - ;; - debian) - installRemoteModule_tmp='librdkafka*' - ;; - *) - installRemoteModule_tmp='' - ;; - esac - if test -n "$installRemoteModule_tmp"; then - installRemoteModule_tmp="$(getInstalledPackageVersion "$installRemoteModule_tmp")" - if test -n "$installRemoteModule_tmp" && test $(compareVersions "$installRemoteModule_tmp" '0.11.0') -lt 0; then - installRemoteModule_version2=3.1.3 - fi - fi - if test -z "$installRemoteModule_version1" || test -z "$installRemoteModule_version2"; then - installRemoteModule_version="$installRemoteModule_version1$installRemoteModule_version2" - elif test $(compareVersions "$installRemoteModule_version1" "$installRemoteModule_version2") -le 0; then - installRemoteModule_version="$installRemoteModule_version1" - else - installRemoteModule_version="$installRemoteModule_version2" - fi - fi - ;; - redis) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=4.3.0 - elif test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=5.3.7 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - # Enable igbinary serializer support? - if php --ri igbinary >/dev/null 2>/dev/null; then - addConfigureOption enable-redis-igbinary yes - else - addConfigureOption enable-redis-igbinary no - fi - # Enable lzf compression support? - addConfigureOption enable-redis-lzf yes - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 5.0.0) -ge 0; then - if ! test -e /usr/include/zstd.h || ! test -e /usr/lib/libzstd.so -o -e "/usr/lib/$TARGET_TRIPLET/libzstd.so"; then - installRemoteModule_zstdVersion=1.4.4 - installRemoteModule_zstdVersionMajor=$(echo $installRemoteModule_zstdVersion | cut -d. -f1) - rm -rf /tmp/src/zstd - mv "$(getPackageSource https://github.com/facebook/zstd/releases/download/v$installRemoteModule_zstdVersion/zstd-$installRemoteModule_zstdVersion.tar.gz)" /tmp/src/zstd - cd /tmp/src/zstd - make V=0 -j$(getProcessorCount) lib - cp -f lib/libzstd.so "/usr/lib/$TARGET_TRIPLET/libzstd.so.$installRemoteModule_zstdVersion" - ln -sf "/usr/lib/$TARGET_TRIPLET/libzstd.so.$installRemoteModule_zstdVersion" "/usr/lib/$TARGET_TRIPLET/libzstd.so.$installRemoteModule_zstdVersionMajor" - ln -sf "/usr/lib/$TARGET_TRIPLET/libzstd.so.$installRemoteModule_zstdVersion" "/usr/lib/$TARGET_TRIPLET/libzstd.so" - ln -sf /tmp/src/zstd/lib/zstd.h /usr/include/zstd.h - UNNEEDED_PACKAGE_LINKS="$UNNEEDED_PACKAGE_LINKS /usr/include/zstd.h" - cd - >/dev/null - fi - # Enable zstd compression support? - addConfigureOption enable-redis-zstd yes - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 6.0.0) -ge 0; then - # Enable msgpack serializer support? - if php --ri msgpack >/dev/null 2>/dev/null; then - addConfigureOption enable-redis-msgpack yes - else - addConfigureOption enable-redis-msgpack no - fi - # Enable lz4 compression? - addConfigureOption enable-redis-lz4 yes - # Use system liblz4? - addConfigureOption with-liblz4 yes - fi - fi - ;; - relay) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version="$(curl -sSLf https://builds.r2.relay.so/meta/latest)" - installRemoteModule_version="${installRemoteModule_version#v}" - fi - case $(uname -m) in - aarch64 | arm64 | armv8) - installRemoteModule_hardware=aarch64 - ;; - *) - installRemoteModule_hardware=x86-64 - ;; - esac - installRemoteModule_distro="$DISTRO" - installRemoteModule_flags='' - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -lt 317; then - installRemoteModule_distro=alpine3.9 - else - installRemoteModule_distro=alpine3.17 - fi - ;; - debian) - case "$(dpkg -l 'libssl*' | grep -E '^ii ' | cut -d' ' -f3)" in - libssl3*) - installRemoteModule_flags=+libssl3 - ;; - esac - ;; - esac - # See https://relay.so/builds - installRemoteModule_url="https://builds.r2.relay.so/v${installRemoteModule_version}/relay-v${installRemoteModule_version}-php${PHP_MAJDOTMIN_VERSION}-${installRemoteModule_distro}-${installRemoteModule_hardware}${installRemoteModule_flags}.tar.gz" - printf 'Downloading relay v%s (%s) from %s... ' "$installRemoteModule_version" "$installRemoteModule_hardware" "$installRemoteModule_url" - installRemoteModule_src="$(getPackageSource $installRemoteModule_url)" - echo 'done.' - cp -- "$installRemoteModule_src/relay-pkg.so" "$PHP_EXTDIR/relay.so" - sed -i "s/00000000-0000-0000-0000-000000000000/$(cat /proc/sys/kernel/random/uuid)/" "$PHP_EXTDIR/relay.so" - installRemoteModule_ini_extra="$(grep -vE '^[ \t]*extension[ \t]*=' $installRemoteModule_src/relay.ini)" - installRemoteModule_manuallyInstalled=1 - ;; - saxon) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -ge 800; then - installRemoteModule_version='12.4.2' - else - installRemoteModule_version='12.3' - fi - fi - installRemoteModule_majorVersion="${installRemoteModule_version%%.*}" - if test "$installRemoteModule_majorVersion" -ge 12; then - case $(uname -m) in - aarch64 | arm64 | armv8) - installRemoteModule_url=https://downloads.saxonica.com/SaxonC/EE/${installRemoteModule_majorVersion}/libsaxon-EEC-linux-aarch64-v${installRemoteModule_version}.zip - ;; - *) - installRemoteModule_url=https://downloads.saxonica.com/SaxonC/EE/${installRemoteModule_majorVersion}/libsaxon-EEC-linux-x86_64-v${installRemoteModule_version}.zip - ;; - esac - else - installRemoteModule_url=https://downloads.saxonica.com/SaxonC/EE/${installRemoteModule_majorVersion}/libsaxon-EEC-setup64-v${installRemoteModule_version}.zip - fi - installRemoteModule_dir="$(getPackageSource $installRemoteModule_url)" - if ! test -f /usr/lib/libsaxon-*.so; then - if test "$installRemoteModule_majorVersion" -ge 12; then - cp $installRemoteModule_dir/libs/nix/*.so /usr/lib/ - else - cp $installRemoteModule_dir/*.so /usr/lib/ - fi - ldconfig || true - fi - cd "$installRemoteModule_dir/Saxon.C.API" - phpize - ./configure --enable-saxon - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - ;; - seasclick) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.1.0 - fi - fi - ;; - snappy) - if test -z "$installRemoteModule_path"; then - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=0.2.1 - fi - installRemoteModule_src="$(getPackageSource https://github.com/kjdev/php-ext-snappy/archive/refs/tags/$installRemoteModule_version.tar.gz)" - cd "$installRemoteModule_src" - phpize - ./configure --with-snappy-includedir=/usr - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - fi - ;; - snuffleupagus) - if test -z "$installRemoteModule_path"; then - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=0.9.0 - else - installRemoteModule_version=0.10.0 - fi - fi - installRemoteModule_src="$(getPackageSource https://codeload.github.com/jvoisin/snuffleupagus/tar.gz/v$installRemoteModule_version)" - cd "$installRemoteModule_src/src" - phpize - ./configure --enable-snuffleupagus - make -j$(getProcessorCount) install - cd - >/dev/null - cp -a "$installRemoteModule_src/config/default.rules" "$PHP_INI_DIR/conf.d/snuffleupagus.rules" - if test $(compareVersions "$installRemoteModule_version" 0.8.0) -ge 0; then - printf '\n# Disable "PHP version is not officially maintained anymore" message\nsp.global.show_old_php_warning.disable();\n' >>"$PHP_INI_DIR/conf.d/snuffleupagus.rules" - fi - else - if test -f "$installRemoteModule_path/config/default.rules"; then - cp -a "$installRemoteModule_path/config/default.rules" "$PHP_INI_DIR/conf.d/snuffleupagus.rules" - fi - fi - installRemoteModule_ini_extra="$(printf '%ssp.configuration_file=%s\n' "$installRemoteModule_ini_extra" "$PHP_INI_DIR/conf.d/snuffleupagus.rules")" - installRemoteModule_manuallyInstalled=1 - ;; - sodium | libsodium) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=1.0.7 - fi - fi - ;; - solr) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=2.4.0 - elif test $PHP_MAJMIN_VERSION -lt 704; then - installRemoteModule_version=2.6.0 - fi - fi - ;; - sourceguardian) - installSourceGuardian - installRemoteModule_manuallyInstalled=1 - ;; - spx) - if test -z "$installRemoteModule_path"; then - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=v0.4.15 - fi - if test "${installRemoteModule_version%.*}" = "$installRemoteModule_version"; then - installRemoteModule_displayVersion="$installRemoteModule_version" - else - installRemoteModule_displayVersion="git--master-$installRemoteModule_version" - fi - installRemoteModule_src="$(getPackageSource https://codeload.github.com/NoiseByNorthwest/php-spx/tar.gz/$installRemoteModule_version)" - cd -- "$installRemoteModule_src" - phpize - ./configure - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - fi - ;; - sqlsrv | pdo_sqlsrv) - isMicrosoftSqlServerODBCInstalled || installMicrosoftSqlServerODBC - if test -z "$installRemoteModule_version"; then - # https://docs.microsoft.com/it-it/sql/connect/php/system-requirements-for-the-php-sql-driver?view=sql-server-2017 - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=3.0.1 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=5.3.0 - elif test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=5.6.1 - elif test $PHP_MAJMIN_VERSION -le 702; then - installRemoteModule_version=5.8.1 - elif test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=5.9.0 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=5.10.1 - elif test $PHP_MAJMIN_VERSION -le 800; then - installRemoteModule_version=5.11.1 - fi - fi - ;; - ssh2) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.13 - fi - fi - ;; - stomp) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.0.9 - fi - fi - if test "$DISTRO" = debian; then - addConfigureOption with-openssl-dir yes - else - addConfigureOption with-openssl-dir /usr - fi - ;; - swoole) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 502; then - installRemoteModule_version=1.6.10 - elif test $PHP_MAJMIN_VERSION -le 504; then - installRemoteModule_version=2.0.4 - elif test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.0.11 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=4.3.6 - elif test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=4.5.10 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=4.8.11 - elif test $PHP_BITS -eq 32; then - # See https://github.com/swoole/swoole-src/issues/5198#issuecomment-1820162178 - installRemoteModule_version="$(resolvePHPModuleVersion "$installRemoteModule_module" '^5.0')" - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if php --ri sockets >/dev/null 2>/dev/null; then - installRemoteModule_sockets=yes - else - installRemoteModule_sockets=no - fi - installRemoteModule_openssl=yes - case "$DISTRO_VERSION" in - alpine@3.7 | alpine@3.8) - if test -n "$installRemoteModule_version" && test $(compareVersions "$installRemoteModule_version" 4.6.0) -lt 0; then - # see https://github.com/swoole/swoole-src/issues/3934 - installRemoteModule_openssl=no - fi - ;; - esac - if test $PHP_MAJMIN_VERSION -eq 803; then - # see https://github.com/swoole/docker-swoole/issues/45 - installRemoteModule_curl=no - else - installRemoteModule_curl=yes - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 5.0.1) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - # enable cares support? - addConfigureOption enable-cares yes - # enable brotli support? - addConfigureOption enable-brotli yes - elif test $(compareVersions "$installRemoteModule_version" 5.0.0) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - # enable cares support? - addConfigureOption enable-cares yes - elif test $(compareVersions "$installRemoteModule_version" 4.8.11) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable json support? - addConfigureOption enable-swoole-json yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - # enable cares support? - addConfigureOption enable-cares yes - elif test $(compareVersions "$installRemoteModule_version" 4.6.1) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable json support? - addConfigureOption enable-swoole-json yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - elif test $(compareVersions "$installRemoteModule_version" 4.4.0) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - elif test $(compareVersions "$installRemoteModule_version" 4.2.11) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable postgresql coroutine client support? - addConfigureOption enable-coroutine-postgresql yes - elif test $(compareVersions "$installRemoteModule_version" 4.2.7) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable postgresql coroutine client support? - addConfigureOption enable-coroutine-postgresql yes - # enable kernel debug/trace log? (it will degrade performance) - addConfigureOption enable-debug-log no - elif test $(compareVersions "$installRemoteModule_version" 4.2.6) -ge 0; then - # enable debug/trace log support? - addConfigureOption enable-debug-log no - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable postgresql coroutine client support? - addConfigureOption enable-coroutine-postgresql yes - elif test $(compareVersions "$installRemoteModule_version" 4.2.0) -ge 0; then - # enable debug/trace log support? - addConfigureOption enable-debug-log no - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable async-redis support? - addConfigureOption enable-async-redis yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable postgresql coroutine client support? - addConfigureOption enable-coroutine-postgresql yes - elif test $(compareVersions "$installRemoteModule_version" 2.1.2) -ge 0; then - # enable debug/trace log support? - addConfigureOption enable-swoole-debug no - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable async-redis support? - addConfigureOption enable-async-redis yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable postgresql coroutine client support? - addConfigureOption enable-coroutine-postgresql yes - elif test $(compareVersions "$installRemoteModule_version" 1.10.4) -ge 0 && test $(compareVersions "$installRemoteModule_version" 1.10.5) -le 0; then - # enable debug/trace log support? - addConfigureOption enable-swoole-debug no - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable async-redis support? - addConfigureOption enable-async-redis yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - fi - ;; - tdlib) - if ! test -f /usr/lib/libphpcpp.so || ! test -f /usr/include/phpcpp.h; then - if test $PHP_MAJMIN_VERSION -le 701; then - cd "$(getPackageSource https://codeload.github.com/CopernicaMarketingSoftware/PHP-CPP/tar.gz/v2.1.4)" - elif test $PHP_MAJMIN_VERSION -le 703; then - cd "$(getPackageSource https://codeload.github.com/CopernicaMarketingSoftware/PHP-CPP/tar.gz/v2.2.0)" - else - cd "$(getPackageSource https://codeload.github.com/CopernicaMarketingSoftware/PHP-CPP/tar.gz/444d1f90cf6b7f3cb5178fa0d0b5ab441b0389d0)" - fi - make -j$(getProcessorCount) - make install - cd - >/dev/null - fi - if test -z "$installRemoteModule_path"; then - installRemoteModule_tmp="$(mktemp -p /tmp/src -d)" - git clone --depth=1 --recurse-submodules https://github.com/yaroslavche/phptdlib.git "$installRemoteModule_tmp" - mkdir "$installRemoteModule_tmp/build" - cd "$installRemoteModule_tmp/build" - cmake -D USE_SHARED_PHPCPP:BOOL=ON .. - make - make install - cd - >/dev/null - rm "$PHP_INI_DIR/conf.d/tdlib.ini" - installRemoteModule_manuallyInstalled=1 - fi - ;; - tensor) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=2.2.3 - fi - fi - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -ge 315 && test $DISTRO_MAJMIN_VERSION -le 317; then - if test -e /usr/lib/liblapacke.so.3 && ! test -e /usr/lib/liblapacke.so; then - ln -s /usr/lib/liblapacke.so.3 /usr/lib/liblapacke.so - fi - fi - ;; - esac - ;; - tideways) - case "$DISTRO" in - alpine) - case $(uname -m) in - aarch64 | arm64 | armv8) - installRemoteModule_architecture=alpine-arm64 - ;; - *) - installRemoteModule_architecture=alpine-x86_64 - ;; - esac - ;; - debian) - case $(uname -m) in - aarch64 | arm64 | armv8) - installRemoteModule_architecture=arm64 - ;; - *) - installRemoteModule_architecture=x86_64 - ;; - esac - ;; - esac - installRemoteModule_url="$(curl -sSLf -o - https://tideways.com/profiler/downloads | grep -Eo "\"[^\"]+/tideways-php-([0-9]+\.[0-9]+\.[0-9]+)-$installRemoteModule_architecture.tar.gz\"" | cut -d'"' -f2)" - if test -z "$installRemoteModule_url"; then - echo 'Failed to find the tideways tarball to be downloaded' - exit 1 - fi - printf 'Downloading tideways from %s\n' "$installRemoteModule_url" - installRemoteModule_src="$(getPackageSource $installRemoteModule_url)" - if test -d "$installRemoteModule_src/dist"; then - installRemoteModule_src="$installRemoteModule_src/dist" - fi - installRemoteModule_src="$installRemoteModule_src/tideways-php" - case "$DISTRO" in - alpine) - installRemoteModule_src="$installRemoteModule_src-alpine" - ;; - esac - installRemoteModule_src="$installRemoteModule_src-$PHP_MAJDOTMIN_VERSION" - if test $PHP_THREADSAFE -eq 1; then - installRemoteModule_src="$installRemoteModule_src-zts" - fi - installRemoteModule_src="$installRemoteModule_src.so" - if ! test -f "$installRemoteModule_src"; then - echo 'tideways does not support the current environment' >&2 - exit 1 - fi - mv "$installRemoteModule_src" $(getPHPExtensionsDir)/tideways.so - installRemoteModule_manuallyInstalled=1 - ;; - uopz) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.0.7 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=5.0.2 - elif test $PHP_MAJMIN_VERSION -le 740; then - installRemoteModule_version=6.1.2 - fi - fi - ;; - uploadprogress) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=1.1.4 - fi - fi - ;; - uuid) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.0.5 - fi - fi - ;; - uv) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 800; then - installRemoteModule_version=0.2.4 - else - installRemoteModule_version=beta - fi - fi - ;; - vld) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=0.14.0 - else - installRemoteModule_version=beta - fi - fi - ;; - wikidiff2) - case "$DISTRO" in - alpine) - if ! isLibDatrieInstalled; then - installLibDatrie - fi - if ! isLibThaiInstalled; then - installLibThai - fi - ;; - esac - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 702; then - installRemoteModule_version=1.13.0 - else - installRemoteModule_version="$(git -c versionsort.suffix=- ls-remote --tags --refs --quiet --exit-code --sort=version:refname https://github.com/wikimedia/mediawiki-php-wikidiff2.git 'refs/tags/*.*.*' | tail -1 | cut -d/ -f3)" - fi - fi - installRemoteModule_src="$(getPackageSource "https://codeload.github.com/wikimedia/mediawiki-php-wikidiff2/tar.gz/refs/tags/$installRemoteModule_version")" - cd -- "$installRemoteModule_src" - phpize - ./configure - make -j$(getProcessorCount) - make install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - ;; - xdebug) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 500; then - installRemoteModule_version=2.0.5 - elif test $PHP_MAJMIN_VERSION -le 503; then - installRemoteModule_version=2.2.7 - elif test $PHP_MAJMIN_VERSION -le 504; then - installRemoteModule_version=2.4.1 - elif test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.5.5 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=2.6.1 - elif test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=2.9.8 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=3.1.6 - fi - fi - ;; - xdiff) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.5.2 - fi - fi - if ! test -f /usr/local/lib/libxdiff.* && ! test -f /usr/lib/libxdiff.* && ! test -f /usr/lib/x86_64*/libxdiff.*; then - installRemoteModule_src="$(getPackageSource https://raw.githubusercontent.com/mlocati/docker-php-extension-installer/assets/resources/libxdiff-0.23.tar.gz)" - cd -- "$installRemoteModule_src" - ./configure --disable-shared --disable-dependency-tracking --with-pic - make -j$(getProcessorCount) - make install - cd - >/dev/null - fi - ;; - xhprof) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.9.4 - fi - fi - ;; - xlswriter) - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 1.2.7) -ge 0; then - # enable reader supports? - addConfigureOption enable-reader yes - fi - ;; - xmlrpc) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=beta - fi - ;; - yac) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.9.2 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 2.2.0) -ge 0; then - # Enable igbinary serializer support - if php --ri igbinary >/dev/null 2>/dev/null; then - addConfigureOption enable-igbinary yes - else - addConfigureOption enable-igbinary no - fi - # Enable json serializer support - if php --ri json >/dev/null 2>/dev/null; then - addConfigureOption enable-json yes - else - addConfigureOption enable-json no - fi - # Enable msgpack serializer support - if php --ri msgpack >/dev/null 2>/dev/null; then - addConfigureOption enable-msgpack yes - else - addConfigureOption enable-msgpack no - fi - fi - ;; - yaml) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.3.1 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=2.0.4 - fi - fi - ;; - yar) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.2.5 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 1.2.4) -ge 0; then - # Enable Msgpack Supports - if php --ri msgpack >/dev/null 2>/dev/null; then - addConfigureOption enable-msgpack yes - else - addConfigureOption enable-msgpack no - fi - fi - ;; - zmq) - if test -z "$installRemoteModule_version"; then - installRemoteModule_src="$(getPackageSource https://github.com/zeromq/php-zmq/tarball/master)" - cd "$installRemoteModule_src" - phpize - ./configure - make -j$(getProcessorCount) - make install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - fi - ;; - zookeeper) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.5.0 - else - installRemoteModule_version=alpha - fi - fi - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - case "$DISTRO" in - alpine) - if ! test -f /usr/local/include/zookeeper/zookeeper.h; then - if test $(compareVersions "$installRemoteModule_version" 1.0.0) -lt 0; then - installRemoteModule_src="$(getPackageSource http://archive.apache.org/dist/zookeeper/zookeeper-3.5.9/apache-zookeeper-3.5.9.tar.gz)" - else - installRemoteModule_tmp="$(curl -sSLf https://downloads.apache.org/zookeeper/stable | sed -E 's/["<>]/\n/g' | grep -E '^(apache-)?zookeeper-[0-9]+\.[0-9]+\.[0-9]+\.(tar\.gz|tgz)$' | head -n1)" - if test -z "$installRemoteModule_tmp"; then - echo 'Failed to detect the zookeeper library URL' >&2 - exit 1 - fi - installRemoteModule_src="$(getPackageSource https://downloads.apache.org/zookeeper/stable/$installRemoteModule_tmp)" - fi - cd -- "$installRemoteModule_src" - if test -d ~/.m2; then - installRemoteModule_delm2=n - else - installRemoteModule_delm2=y - fi - mvn -pl zookeeper-jute compile - cd - >/dev/null - cd -- "$installRemoteModule_src/zookeeper-client/zookeeper-client-c" - autoreconf -if - ./configure --without-cppunit - make -j$(getProcessorCount) CFLAGS='-Wno-stringop-truncation -Wno-format-overflow' - make install - cd - >/dev/null - if test $installRemoteModule_delm2 = y; then - rm -rf ~/.m2 - fi - fi - ;; - esac - ;; - zstd) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.11.0 - fi - fi - ;; - esac - if test $installRemoteModule_manuallyInstalled -eq 0; then - if test -n "$installRemoteModule_path"; then - printf ' (installing version %s from %s)\n' "$installRemoteModule_version" "$installRemoteModule_path" - elif test -n "$installRemoteModule_version"; then - printf ' (installing version %s)\n' "$installRemoteModule_version" - fi - installPeclPackage "$installRemoteModule_module" "$installRemoteModule_version" "$installRemoteModule_cppflags" "$installRemoteModule_path" - fi - postProcessModule "$installRemoteModule_module" - if test $installRemoteModule_manuallyInstalled -lt 2; then - case "${IPE_SKIP_CHECK:-}" in - 1 | y* | Y*) ;; - *) - checkModuleWorking "$installRemoteModule_module" "$installRemoteModule_ini_basename" "$installRemoteModule_ini_extra" - ;; - esac - enablePhpExtension "$installRemoteModule_module" "$installRemoteModule_ini_basename" "$installRemoteModule_ini_extra" - fi -} - -# Check if a module/helper may be installed using the pecl archive -# -# Arguments: -# $1: the name of the module -# -# Return: -# 0: true -# 1: false -moduleMayUsePecl() { - case "$1" in - @composer | @fix_letsencrypt) - return 1 - ;; - blackfire | geos | ioncube_loader | snuffleupagus | sourceguardian | spx | tdlib | tideways) - return 1 - ;; - esac - if test -n "$(getModuleSourceCodePath "$1")"; then - return 1 - fi - if stringInList "$1" "$BUNDLED_MODULES"; then - return 1 - fi - return 0 -} - -# Configure the PECL package installer -# -# Updates: -# PHP_MODULES_TO_INSTALL -# Sets: -# USE_PICKLE 0: no, 1: yes (already downloaded), 2: yes (build it from source) -configureInstaller() { - USE_PICKLE=0 - if ! which pecl >/dev/null; then - for PHP_MODULE_TO_INSTALL in $PHP_MODULES_TO_INSTALL; do - if ! moduleMayUsePecl "$PHP_MODULE_TO_INSTALL"; then - continue - fi - if false && anyStringInList '' "$PHP_MODULES_TO_INSTALL"; then - USE_PICKLE=2 - else - curl -sSLf https://github.com/FriendsOfPHP/pickle/releases/latest/download/pickle.phar -o /tmp/pickle - chmod +x /tmp/pickle - USE_PICKLE=1 - fi - break - done - fi - if test $USE_PICKLE -eq 0; then - if test -z "$(pear config-get http_proxy)"; then - if test -n "${http_proxy:-}"; then - pear config-set http_proxy "$http_proxy" || true - elif test -n "${HTTP_PROXY:-}"; then - pear config-set http_proxy "$HTTP_PROXY" || true - fi - fi - pecl channel-update pecl.php.net || true - fi -} - -buildPickle() { - printf '### BUILDING PICKLE ###\n' - buildPickle_tempDir="$(mktemp -p /tmp/src -d)" - cd -- "$buildPickle_tempDir" - printf 'Downloading... ' - git clone --quiet --depth 1 https://github.com/FriendsOfPHP/pickle.git . - git tag 0.7.0 - printf 'done.\n' - printf 'Installing composer... ' - actuallyInstallComposer . composer '--1 --quiet' - printf 'done.\n' - printf 'Installing composer dependencies... ' - ./composer install --no-dev --no-progress --no-suggest --optimize-autoloader --ignore-platform-reqs --quiet --no-cache - printf 'done.\n' - printf 'Building... ' - php -d phar.readonly=0 box.phar build - mv pickle.phar /tmp/pickle - printf 'done.\n' - cd - >/dev/null -} - -# Add a configure option for the pecl/pickle install command -# -# Arguments: -# $1: the option name -# $2: the option value -addConfigureOption() { - if test $USE_PICKLE -eq 0; then - printf -- '%s\n' "$2" >>"$CONFIGURE_FILE" - else - printf -- '--%s=%s\n' "$1" "$2" >>"$CONFIGURE_FILE" - fi -} - -# Actually installs a PECL package -# -# Arguments: -# $1: the package to be installed -# $2: the package version to be installed (optional) -# $3: the value of the CPPFLAGS variable (optional) -# $4: the path of the local package to be installed (optional, downloaded from PECL if omitted/empty) -installPeclPackage() { - if ! test -f "$CONFIGURE_FILE"; then - printf '\n' >"$CONFIGURE_FILE" - fi - installPeclPackage_name="$(getPeclModuleName "$1")" - if test -z "${2:-}"; then - installPeclPackage_fullname="$installPeclPackage_name" - else - installPeclPackage_fullname="$installPeclPackage_name-$2" - fi - installPeclPackage_path="${4:-}" - if test -z "$installPeclPackage_path"; then - installPeclPackage_path="$installPeclPackage_fullname" - fi - if test $USE_PICKLE -eq 0; then - if test -n "${4:-}"; then - if test -f "$installPeclPackage_path/package2.xml"; then - installPeclPackage_path="$installPeclPackage_path/package2.xml" - else - installPeclPackage_path="$installPeclPackage_path/package.xml" - fi - fi - cat "$CONFIGURE_FILE" | MAKE="make -j$(getCompilationProcessorCount $1)" CPPFLAGS="${3:-}" pecl install "$installPeclPackage_path" - else - MAKEFLAGS="-j$(getCompilationProcessorCount $1)" CPPFLAGS="${3:-}" /tmp/pickle install --tmp-dir=/tmp/pickle.tmp --no-interaction --version-override='' --with-configure-options "$CONFIGURE_FILE" -- "$installPeclPackage_path" - fi -} - -# Check if a string is in a list of space-separated string -# -# Arguments: -# $1: the string to be checked -# $2: the string list -# -# Return: -# 0 (true): if the string is in the list -# 1 (false): if the string is not in the list -stringInList() { - for stringInList_listItem in $2; do - if test "$1" = "$stringInList_listItem"; then - return 0 - fi - done - return 1 -} - -# Check if at least one item in a list is in another list -# -# Arguments: -# $1: the space-separated list of items to be searched -# $2: the space-separated list of reference items -# -# Return: -# 0 (true): at least one of the items in $1 is in $2 -# 1 (false): otherwise -anyStringInList() { - for anyStringInList_item in $1; do - if stringInList "$anyStringInList_item" "$2"; then - return 0 - fi - done - return 1 -} - -# Remove a word from a space-separated list -# -# Arguments: -# $1: the word to be removed -# $2: the string list -# -# Output: -# The list without the word -removeStringFromList() { - removeStringFromList_result='' - for removeStringFromList_listItem in $2; do - if test "$1" != "$removeStringFromList_listItem"; then - if test -z "$removeStringFromList_result"; then - removeStringFromList_result="$removeStringFromList_listItem" - else - removeStringFromList_result="$removeStringFromList_result $removeStringFromList_listItem" - fi - fi - done - printf '%s' "$removeStringFromList_result" -} - -# Invoke apt-get update -# -# Set: -# IPE_APTGET_INSTALLOPTIONS -invokeAptGetUpdate() { - if test -n "${IPE_APTGETUPDATE_ALREADY:-}"; then - DEBIAN_FRONTEND=noninteractive apt-get update -q - return - fi - IPE_APTGET_INSTALLOPTIONS='' - invokeAptGetUpdate_fixdistro='' - if grep -q 'VERSION="8 (jessie)"' /etc/os-release; then - invokeAptGetUpdate_fixdistro=jessie - elif grep -q 'VERSION="9 (stretch)"' /etc/os-release; then - invokeAptGetUpdate_fixdistro=stretch - else - IPE_APTGETUPDATE_ALREADY=y - DEBIAN_FRONTEND=noninteractive apt-get update -q - return - fi - # See https://www.debian.org/distrib/archive.en.html for a list of mirrors - if test -z "${IPE_DEB_ARCHIVE:-}"; then - IPE_DEB_ARCHIVE=http://archive.kernel.org/debian-archive - fi - if test -z "${IPE_DEB_ARCHIVE_SECURITY:-}"; then - IPE_DEB_ARCHIVE_SECURITY=http://archive.kernel.org/debian-archive/debian-security - fi - sed -ri "s;^(\s*deb\s+http://(httpredir|deb).debian.org/debian\s+$invokeAptGetUpdate_fixdistro-updates\b.*);#\1;" /etc/apt/sources.list - sed -ri "s;^(\s*deb\s+)http://(httpredir|deb).debian.org;\1$IPE_DEB_ARCHIVE;" /etc/apt/sources.list - sed -ri "s;^(\s*deb\s+)http://security.debian.org/debian-security;\1$IPE_DEB_ARCHIVE_SECURITY;" /etc/apt/sources.list - sed -ri "s;^(\s*deb\s+)http://security.debian.org;\1$IPE_DEB_ARCHIVE_SECURITY;" /etc/apt/sources.list - invokeAptGetUpdate_tmp="$(mktemp)" - DEBIAN_FRONTEND=noninteractive apt-get update -q 2>"$invokeAptGetUpdate_tmp" - if test -s "$invokeAptGetUpdate_tmp"; then - cat "$invokeAptGetUpdate_tmp" >&2 - if grep -qE ' KEYEXPIRED [0-9]' "$invokeAptGetUpdate_tmp"; then - IPE_APTGET_INSTALLOPTIONS='-o APT::Get::AllowUnauthenticated=true' - echo '############' >&2 - echo '# WARNING! #' >&2 - echo '############' >&2 - echo 'apt packages will be installed without checking authenticity!' >&2 - fi - fi - rm "$invokeAptGetUpdate_tmp" - IPE_APTGETUPDATE_ALREADY=y -} - -# Fix the Let's Encrypt CA certificates on old distros -fixLetsEncrypt() { - printf '### FIXING LETS ENCRYPT CA CERTIFICATES ###\n' - case "$DISTRO_VERSION" in - alpine@3.7 | alpine@3.8) - printf -- '- old Alpine Linux detected: we should fix the certificates\n' - ;; - debian@8 | debian@9) - printf -- '- old Debian detected: we should fix the certificates\n' - if ! grep -q 'mozilla/ISRG_Root_X1.crt' /etc/ca-certificates.conf && grep -q 'mozilla/DST_Root_CA_X3.crt' /etc/ca-certificates.conf; then - printf -- '- old ca-certificates package detected\n' - fixCACerts_mustUpdate=1 - if test -d /var/lib/apt/lists; then - for fixCACerts_item in $(ls -1 /var/lib/apt/lists); do - case "$fixCACerts_item" in - partial | lock) ;; - *) - fixCACerts_mustUpdate=0 - break - ;; - esac - done - fi - if test $fixCACerts_mustUpdate -eq 1; then - printf -- '- refreshing the APT package list\n' - invokeAptGetUpdate - fi - printf -- '- installing newer ca-certificates package\n' - DEBIAN_FRONTEND=noninteractive apt-get install -qqy --no-install-recommends ${IPE_APTGET_INSTALLOPTIONS:-} ca-certificates - fi - ;; - *) - printf -- '- patch not required in this distro version\n' - return - ;; - esac - if grep -Eq '^mozilla/ISRG_Root_X1\.crt$' /etc/ca-certificates.conf && grep -Eq '^mozilla/DST_Root_CA_X3\.crt$' /etc/ca-certificates.conf; then - printf -- '- disabling the DST_Root_CA_X3 certificate\n' - sed -i '/^mozilla\/DST_Root_CA_X3/s/^/!/' /etc/ca-certificates.conf - printf -- '- refreshing the certificates\n' - update-ca-certificates -f - else - printf -- '- DST_Root_CA_X3 certificate not found or already disabled\n' - fi -} - -# Cleanup everything at the end of the execution -cleanup() { - if test "${IPE_UNINSTALL_CARGO:-}" = y; then - . "$HOME/.cargo/env" - rustup self uninstall -y - fi - if test -n "$UNNEEDED_PACKAGE_LINKS"; then - printf '### REMOVING UNNEEDED PACKAGE LINKS ###\n' - for cleanup_link in $UNNEEDED_PACKAGE_LINKS; do - if test -L "$cleanup_link"; then - rm -f "$cleanup_link" - fi - done - fi - case "$DISTRO" in - alpine) - if stringInList icu-libs "${PACKAGES_PERSISTENT_NEW:-}" && stringInList icu-data-en "${PACKAGES_PERSISTENT_NEW:-}"; then - apk del icu-data-en >/dev/null 2>&1 || true - fi - if test -n "$PACKAGES_VOLATILE"; then - printf '### REMOVING UNNEEDED PACKAGES ###\n' - apk del --purge $PACKAGES_VOLATILE - fi - ;; - debian) - if test -n "$PACKAGES_VOLATILE"; then - printf '### REMOVING UNNEEDED PACKAGES ###\n' - DEBIAN_FRONTEND=noninteractive apt-get remove --purge -y $PACKAGES_VOLATILE - fi - if test -n "$PACKAGES_PREVIOUS"; then - printf '### RESTORING PREVIOUSLY INSTALLED PACKAGES ###\n' - DEBIAN_FRONTEND=noninteractive apt-get install -qqy --no-install-recommends --no-upgrade $IPE_APTGET_INSTALLOPTIONS $PACKAGES_PREVIOUS - fi - ;; - esac - docker-php-source delete - rm -rf /tmp/src - rm -rf /tmp/pickle - rm -rf /tmp/pickle.tmp - rm -rf "$CONFIGURE_FILE" - case "${IPE_KEEP_SYSPKG_CACHE:-}" in - 1 | y* | Y*) ;; - *) - case "$DISTRO" in - alpine) - rm -rf /var/cache/apk/* - ;; - debian) - rm -rf /var/lib/apt/lists/* - ;; - esac - rm -rf /tmp/pear - ;; - esac -} - -resetIFS -mkdir -p /tmp/src -mkdir -p /tmp/pickle.tmp -IPE_ERRFLAG_FILE="$(mktemp -p /tmp/src)" -CONFIGURE_FILE=/tmp/configure-options -IPE_APK_FLAGS='' -setDistro -case "$DISTRO_VERSION" in - debian@8) - fixMaxOpenFiles || true - ;; -esac -setPHPVersionVariables -setPHPPreinstalledModules -case "$PHP_MAJMIN_VERSION" in - 505 | 506 | 700 | 701 | 702 | 703 | 704 | 800 | 801 | 802 | 803) ;; - *) - printf "### ERROR: Unsupported PHP version: %s.%s ###\n" $((PHP_MAJMIN_VERSION / 100)) $((PHP_MAJMIN_VERSION % 100)) - ;; -esac -UNNEEDED_PACKAGE_LINKS='' -processCommandArguments "$@" - -if test -z "$PHP_MODULES_TO_INSTALL"; then - exit 0 -fi - -if stringInList @fix_letsencrypt "$PHP_MODULES_TO_INSTALL"; then - # This must be the very first thing we do - fixLetsEncrypt -fi - -sortModulesToInstall - -docker-php-source extract -BUNDLED_MODULES="$(find /usr/src/php/ext -mindepth 2 -maxdepth 2 -type f -name 'config.m4' | xargs -n1 dirname | xargs -n1 basename | xargs)" -configureInstaller - -buildRequiredPackageLists $PHP_MODULES_TO_INSTALL -if test -n "$PACKAGES_PERSISTENT_PRE"; then - markPreinstalledPackagesAsUsed -fi -if test -n "$PACKAGES_PERSISTENT_NEW$PACKAGES_VOLATILE"; then - installRequiredPackages -fi -if test "$PHP_MODULES_TO_INSTALL" != '@composer'; then - setTargetTriplet -fi -if test $USE_PICKLE -gt 1; then - buildPickle -fi - -for PHP_MODULE_TO_INSTALL in $PHP_MODULES_TO_INSTALL; do - case "$PHP_MODULE_TO_INSTALL" in - @fix_letsencrypt) - # Already done: it must be the first thing we do - ;; - @composer) - installComposer - ;; - *) - if stringInList "$PHP_MODULE_TO_INSTALL" "$BUNDLED_MODULES"; then - installBundledModule "$PHP_MODULE_TO_INSTALL" - else - installRemoteModule "$PHP_MODULE_TO_INSTALL" - fi - ;; - esac -done -cleanup diff --git a/php5/5.6.40/build/php/extensions/install.sh b/php5/5.6.40/build/php/extensions/install.sh deleted file mode 100644 index c3d3f4e75..000000000 --- a/php5/5.6.40/build/php/extensions/install.sh +++ /dev/null @@ -1,694 +0,0 @@ -#!/bin/sh - -export MC="-j$(nproc)" - -echo -echo "============================================" -echo "Install extensions from : install.sh" -echo "PHP version : ${PHP_VERSION}" -echo "Extra Extensions : ${PHP_EXTENSIONS}" -echo "Multicore Compilation : ${MC}" -echo "Container package url : ${CONTAINER_PACKAGE_URL}" -echo "Work directory : ${PWD}" -echo "============================================" -echo - - -if [ "${PHP_EXTENSIONS}" != "" ]; then - apk --update add --no-cache --virtual .build-deps autoconf g++ libtool make curl-dev gettext-dev linux-headers -fi - - -export EXTENSIONS=",${PHP_EXTENSIONS}," - - -# -# Check if current php version is greater than or equal to -# specific version. -# -# For example, to check if current php is greater than or -# equal to PHP 5.6: -# -# isPhpVersionGreaterOrEqual 5 6 -# -# Param 1: Specific PHP Major version -# Param 2: Specific PHP Minor version -# Return : 1 if greater than or equal to, 0 if less than -# -isPhpVersionGreaterOrEqual() - { - local PHP_MAJOR_VERSION=$(php -r "echo PHP_MAJOR_VERSION;") - local PHP_MINOR_VERSION=$(php -r "echo PHP_MINOR_VERSION;") - - if [[ "$PHP_MAJOR_VERSION" -gt "$1" || "$PHP_MAJOR_VERSION" -eq "$1" && "$PHP_MINOR_VERSION" -ge "$2" ]]; then - return 1; - else - return 0; - fi -} - - -# -# Install extension from package file(.tgz), -# For example: -# -# installExtensionFromTgz redis-5.2.2 -# -# Param 1: Package name with version -# Param 2: enable options -# -installExtensionFromTgz() -{ - tgzName=$1 - result="" - extensionName="${tgzName%%-*}" - shift 1 - result=$@ - mkdir ${extensionName} - tar -xf ${tgzName}.tgz -C ${extensionName} --strip-components=1 - ( cd ${extensionName} && phpize && ./configure ${result} && make ${MC} && make install ) - - docker-php-ext-enable ${extensionName} -} - -if [[ -z "${EXTENSIONS##*,ioncube_loader,*}" ]]; then - echo "---------- Install ioncube_loader ----------" - install-php-extensions ioncube_loader -fi - -if [[ -z "${EXTENSIONS##*,imagick,*}" ]]; then - echo "---------- Install imagick ----------" - install-php-extensions imagick -fi - - -if [[ -z "${EXTENSIONS##*,pdo_mysql,*}" ]]; then - echo "---------- Install pdo_mysql ----------" - docker-php-ext-install ${MC} pdo_mysql -fi - -if [[ -z "${EXTENSIONS##*,pcntl,*}" ]]; then - echo "---------- Install pcntl ----------" - docker-php-ext-install ${MC} pcntl -fi - -if [[ -z "${EXTENSIONS##*,mysqli,*}" ]]; then - echo "---------- Install mysqli ----------" - docker-php-ext-install ${MC} mysqli -fi - -if [[ -z "${EXTENSIONS##*,mbstring,*}" ]]; then - echo "---------- mbstring is installed ----------" -fi - -if [[ -z "${EXTENSIONS##*,exif,*}" ]]; then - echo "---------- Install exif ----------" - docker-php-ext-install ${MC} exif -fi - -if [[ -z "${EXTENSIONS##*,bcmath,*}" ]]; then - echo "---------- Install bcmath ----------" - docker-php-ext-install ${MC} bcmath -fi - -if [[ -z "${EXTENSIONS##*,calendar,*}" ]]; then - echo "---------- Install calendar ----------" - docker-php-ext-install ${MC} calendar -fi - -if [[ -z "${EXTENSIONS##*,zend_test,*}" ]]; then - echo "---------- Install zend_test ----------" - docker-php-ext-install ${MC} zend_test -fi - -if [[ -z "${EXTENSIONS##*,opcache,*}" ]]; then - echo "---------- Install opcache ----------" - docker-php-ext-install opcache -fi - -if [[ -z "${EXTENSIONS##*,sockets,*}" ]]; then - echo "---------- Install sockets ----------" - docker-php-ext-install ${MC} sockets -fi - -if [[ -z "${EXTENSIONS##*,gettext,*}" ]]; then - echo "---------- Install gettext ----------" - apk --no-cache add gettext-dev - docker-php-ext-install ${MC} gettext - -fi - -if [[ -z "${EXTENSIONS##*,shmop,*}" ]]; then - echo "---------- Install shmop ----------" - docker-php-ext-install ${MC} shmop -fi - -if [[ -z "${EXTENSIONS##*,sysvmsg,*}" ]]; then - echo "---------- Install sysvmsg ----------" - docker-php-ext-install ${MC} sysvmsg -fi - -if [[ -z "${EXTENSIONS##*,sysvsem,*}" ]]; then - echo "---------- Install sysvsem ----------" - docker-php-ext-install ${MC} sysvsem -fi - -if [[ -z "${EXTENSIONS##*,sysvshm,*}" ]]; then - echo "---------- Install sysvshm ----------" - docker-php-ext-install ${MC} sysvshm -fi - -if [[ -z "${EXTENSIONS##*,pdo_firebird,*}" ]]; then - echo "---------- Install pdo_firebird ----------" - docker-php-ext-install ${MC} pdo_firebird -fi - -if [[ -z "${EXTENSIONS##*,pdo_dblib,*}" ]]; then - echo "---------- Install pdo_dblib ----------" - docker-php-ext-install ${MC} pdo_dblib -fi - -if [[ -z "${EXTENSIONS##*,pdo_oci,*}" ]]; then - echo "---------- Install pdo_oci ----------" - docker-php-ext-install ${MC} pdo_oci -fi - -if [[ -z "${EXTENSIONS##*,pdo_odbc,*}" ]]; then - echo "---------- Install pdo_odbc ----------" - docker-php-ext-install ${MC} pdo_odbc -fi - -if [[ -z "${EXTENSIONS##*,pdo_pgsql,*}" ]]; then - echo "---------- Install pdo_pgsql ----------" - apk --no-cache add postgresql-dev \ - && docker-php-ext-install ${MC} pdo_pgsql -fi - -if [[ -z "${EXTENSIONS##*,pgsql,*}" ]]; then - echo "---------- Install pgsql ----------" - apk --no-cache add postgresql-dev \ - && docker-php-ext-install ${MC} pgsql -fi - -if [[ -z "${EXTENSIONS##*,oci8,*}" ]]; then - echo "---------- Install oci8 ----------" - docker-php-ext-install ${MC} oci8 -fi - -if [[ -z "${EXTENSIONS##*,odbc,*}" ]]; then - echo "---------- Install odbc ----------" - docker-php-ext-install ${MC} odbc -fi - -if [[ -z "${EXTENSIONS##*,dba,*}" ]]; then - echo "---------- Install dba ----------" - docker-php-ext-install ${MC} dba -fi - -if [[ -z "${EXTENSIONS##*,interbase,*}" ]]; then - echo "---------- Install interbase ----------" - echo "Alpine linux do not support interbase/firebird!!!" - #docker-php-ext-install ${MC} interbase -fi - -if [[ -z "${EXTENSIONS##*,hprose,*}" ]]; then - echo "---------- Install hprose ----------" - printf "\n" | pecl install hprose - docker-php-ext-enable hprose -fi - -if [[ -z "${EXTENSIONS##*,gd,*}" ]]; then - echo "---------- Install gd ----------" - isPhpVersionGreaterOrEqual 7 4 - - if [[ "$?" = "1" ]]; then - # "--with-xxx-dir" was removed from php 7.4, - # issue: https://github.com/docker-library/php/issues/912 - options="--with-freetype --with-jpeg --with-webp" - else - options="--with-gd --with-freetype-dir=/usr/include/ --with-png-dir=/usr/include/ --with-jpeg-dir=/usr/include/ --with-webp-dir=/usr/include/" - fi - - apk add --no-cache \ - freetype \ - freetype-dev \ - libpng \ - libpng-dev \ - libjpeg-turbo \ - libjpeg-turbo-dev \ - libwebp-dev \ - && docker-php-ext-configure gd ${options} \ - && docker-php-ext-install ${MC} gd \ - && apk del \ - freetype-dev \ - libpng-dev \ - libjpeg-turbo-dev -fi - -if [[ -z "${EXTENSIONS##*,yaml,*}" ]]; then - echo "---------- Install yaml ----------" - apk add --no-cache yaml-dev - printf "\n" | pecl install yaml - docker-php-ext-enable yaml -fi - -if [[ -z "${EXTENSIONS##*,intl,*}" ]]; then - echo "---------- Install intl ----------" - apk add --no-cache icu-dev - docker-php-ext-install ${MC} intl -fi - -if [[ -z "${EXTENSIONS##*,bz2,*}" ]]; then - echo "---------- Install bz2 ----------" - apk add --no-cache bzip2-dev - docker-php-ext-install ${MC} bz2 -fi - -if [[ -z "${EXTENSIONS##*,soap,*}" ]]; then - echo "---------- Install soap ----------" - apk add --no-cache libxml2-dev - docker-php-ext-install ${MC} soap -fi - -if [[ -z "${EXTENSIONS##*,xsl,*}" ]]; then - echo "---------- Install xsl ----------" - apk add --no-cache libxml2-dev libxslt-dev - docker-php-ext-install ${MC} xsl -fi - -if [[ -z "${EXTENSIONS##*,xmlrpc,*}" ]]; then - echo "---------- Install xmlrpc ----------" - apk add --no-cache libxml2-dev libxslt-dev - docker-php-ext-install ${MC} xmlrpc -fi - -if [[ -z "${EXTENSIONS##*,wddx,*}" ]]; then - echo "---------- Install wddx ----------" - apk add --no-cache libxml2-dev libxslt-dev - docker-php-ext-install ${MC} wddx -fi - -if [[ -z "${EXTENSIONS##*,curl,*}" ]]; then - echo "---------- curl is installed ----------" -fi - -if [[ -z "${EXTENSIONS##*,readline,*}" ]]; then - echo "---------- Install readline ----------" - apk add --no-cache readline-dev - apk add --no-cache libedit-dev - docker-php-ext-install ${MC} readline -fi - -if [[ -z "${EXTENSIONS##*,snmp,*}" ]]; then - echo "---------- Install snmp ----------" - apk add --no-cache net-snmp-dev - docker-php-ext-install ${MC} snmp -fi - -if [[ -z "${EXTENSIONS##*,pspell,*}" ]]; then - echo "---------- Install pspell ----------" - apk add --no-cache aspell-dev - apk add --no-cache aspell-en - docker-php-ext-install ${MC} pspell -fi - -if [[ -z "${EXTENSIONS##*,recode,*}" ]]; then - echo "---------- Install recode ----------" - apk add --no-cache recode-dev - docker-php-ext-install ${MC} recode -fi - -if [[ -z "${EXTENSIONS##*,tidy,*}" ]]; then - echo "---------- Install tidy ----------" - apk add --no-cache tidyhtml-dev - - # Fix: https://github.com/htacg/tidy-html5/issues/235 - ln -s /usr/include/tidybuffio.h /usr/include/buffio.h - - docker-php-ext-install ${MC} tidy -fi - -if [[ -z "${EXTENSIONS##*,gmp,*}" ]]; then - echo "---------- Install gmp ----------" - apk add --no-cache gmp-dev - docker-php-ext-install ${MC} gmp -fi - -if [[ -z "${EXTENSIONS##*,imap,*}" ]]; then - echo "---------- Install imap ----------" - apk add --no-cache imap-dev - docker-php-ext-configure imap --with-imap --with-imap-ssl - docker-php-ext-install ${MC} imap -fi - -if [[ -z "${EXTENSIONS##*,ldap,*}" ]]; then - echo "---------- Install ldap ----------" - apk add --no-cache ldb-dev - apk add --no-cache openldap-dev - docker-php-ext-install ${MC} ldap -fi - -if [[ -z "${EXTENSIONS##*,psr,*}" ]]; then - echo "---------- Install psr ----------" - printf "\n" | pecl install psr - docker-php-ext-enable psr -fi - -if [[ -z "${EXTENSIONS##*,imagick,*}" ]]; then - echo "---------- Install imagick ----------" - apk add --no-cache file-dev - apk add --no-cache imagemagick-dev - printf "\n" | pecl install imagick-3.4.4 - docker-php-ext-enable imagick -fi - -if [[ -z "${EXTENSIONS##*,rar,*}" ]]; then - echo "---------- Install rar ----------" - printf "\n" | pecl install rar - docker-php-ext-enable rar -fi - -if [[ -z "${EXTENSIONS##*,ast,*}" ]]; then - echo "---------- Install ast ----------" - printf "\n" | pecl install ast - docker-php-ext-enable ast -fi - -if [[ -z "${EXTENSIONS##*,msgpack,*}" ]]; then - echo "---------- Install msgpack ----------" - printf "\n" | pecl install msgpack - docker-php-ext-enable msgpack -fi - -if [[ -z "${EXTENSIONS##*,igbinary,*}" ]]; then - echo "---------- Install igbinary ----------" - printf "\n" | pecl install igbinary - docker-php-ext-enable igbinary -fi - - -if [[ -z "${EXTENSIONS##*,ssh2,*}" ]]; then - isPhpVersionGreaterOrEqual 5 6 - if [[ "$?" = "1" ]]; then - echo "---------- Install ssh2 ----------" - printf "\n" | apk add libssh2-dev - pecl install ssh2-1.1.2 - docker-php-ext-enable ssh2 - else - echo "ssh2 requires PHP >= 5.6.0, installed version is ${PHP_VERSION}" - fi -fi - -if [[ -z "${EXTENSIONS##*,protobuf,*}" ]]; then - isPhpVersionGreaterOrEqual 5 6 - if [[ "$?" = "1" ]]; then - echo "---------- Install protobuf ----------" - printf "\n" | pecl install protobuf - docker-php-ext-enable protobuf - else - echo "yar requires PHP >= 5.6.0, installed version is ${PHP_VERSION}" - fi -fi - -if [[ -z "${EXTENSIONS##*,yac,*}" ]]; then - isPhpVersionGreaterOrEqual 5 6 - if [[ "$?" = "1" ]]; then - echo "---------- Install yac ----------" - printf "\n" | pecl install yac-2.0.2 - docker-php-ext-enable yac - else - echo "yar requires PHP >= 5.6.0, installed version is ${PHP_VERSION}" - fi -fi - -if [[ -z "${EXTENSIONS##*,yar,*}" ]]; then - isPhpVersionGreaterOrEqual 5 6 - if [[ "$?" = "1" ]]; then - echo "---------- Install yar ----------" - printf "\n" | pecl install yar - docker-php-ext-enable yar - else - echo "yar requires PHP >= 5.6.0, installed version is ${PHP_VERSION}" - fi - -fi - - - -if [[ -z "${EXTENSIONS##*,yaconf,*}" ]]; then - isPhpVersionGreaterOrEqual 5 6 - if [[ "$?" = "1" ]]; then - echo "---------- Install yaconf ----------" - printf "\n" | pecl install yaconf - docker-php-ext-enable yaconf - else - echo "yar requires PHP >= 5.6.0, installed version is ${PHP_VERSION}" - fi -fi - -if [[ -z "${EXTENSIONS##*,seaslog,*}" ]]; then - echo "---------- Install seaslog ----------" - printf "\n" | pecl install seaslog - docker-php-ext-enable seaslog -fi - -if [[ -z "${EXTENSIONS##*,varnish,*}" ]]; then - echo "---------- Install varnish ----------" - apk add --no-cache varnish-dev - printf "\n" | pecl install varnish - docker-php-ext-enable varnish -fi - -if [[ -z "${EXTENSIONS##*,pdo_sqlsrv,*}" ]]; then - isPhpVersionGreaterOrEqual 7 1 - if [[ "$?" = "1" ]]; then - echo "---------- Install pdo_sqlsrv ----------" - apk add --no-cache unixodbc-dev - printf "\n" | pecl install pdo_sqlsrv - docker-php-ext-enable pdo_sqlsrv - curl -o /tmp/msodbcsql17_amd64.apk https://download.microsoft.com/download/e/4/e/e4e67866-dffd-428c-aac7-8d28ddafb39b/msodbcsql17_17.5.2.1-1_amd64.apk - apk add --allow-untrusted /tmp/msodbcsql17_amd64.apk - else - echo "pdo_sqlsrv requires PHP >= 7.1.0, installed version is ${PHP_VERSION}" - fi -fi - -if [[ -z "${EXTENSIONS##*,sqlsrv,*}" ]]; then - isPhpVersionGreaterOrEqual 7 1 - if [[ "$?" = "1" ]]; then - echo "---------- Install sqlsrv ----------" - apk add --no-cache unixodbc-dev - printf "\n" | pecl install sqlsrv - docker-php-ext-enable sqlsrv - else - echo "sqlsrv requires PHP >= 7.1.0, installed version is ${PHP_VERSION}" - fi -fi - -if [[ -z "${EXTENSIONS##*,mcrypt,*}" ]]; then - isPhpVersionGreaterOrEqual 5 6 - if [[ "$?" = "1" ]]; then - echo "---------- Install mcrypt ----------" - apk add --no-cache libmcrypt-dev libmcrypt re2c - printf "\n" |pecl install mcrypt - docker-php-ext-enable mcrypt - else - echo "---------- Install mcrypt ----------" - apk add --no-cache libmcrypt-dev \ - && docker-php-ext-install ${MC} mcrypt - fi -fi - -if [[ -z "${EXTENSIONS##*,mysql,*}" ]]; then - echo "---------- Install mysql ----------" - docker-php-ext-install ${MC} mysql -fi - -if [[ -z "${EXTENSIONS##*,sodium,*}" ]]; then - isPhpVersionGreaterOrEqual 7 2 - if [[ "$?" = "1" ]]; then - echo - echo "Sodium is bundled with PHP from PHP 7.2.0" - echo - else - echo "---------- Install sodium ----------" - apk add --no-cache libsodium-dev - docker-php-ext-install ${MC} sodium - fi -fi - -if [[ -z "${EXTENSIONS##*,amqp,*}" ]]; then - echo "---------- Install amqp ----------" - apk add --no-cache rabbitmq-c-dev - installExtensionFromTgz amqp-1.11.0 -fi - -if [[ -z "${EXTENSIONS##*,redis,*}" ]]; then - echo "---------- Install redis ----------" - isPhpVersionGreaterOrEqual 5 6 - if [[ "$?" = "1" ]]; then - installExtensionFromTgz redis-4.3.0 - else - echo "redis requires PHP >= 5.6.0, installed version is ${PHP_VERSION}" - fi -fi - -if [[ -z "${EXTENSIONS##*,apcu,*}" ]]; then - echo "---------- Install apcu ----------" - installExtensionFromTgz apcu-4.0.8 -fi - -if [[ -z "${EXTENSIONS##*,memcached,*}" ]]; then - echo "---------- Install memcached ----------" - apk add --no-cache libmemcached-dev zlib-dev - printf "\n" | pecl install memcached-2.2.0 - docker-php-ext-enable memcached -fi - -if [[ -z "${EXTENSIONS##*,memcache,*}" ]]; then - echo "---------- Install memcache ----------" - installExtensionFromTgz memcache-2.2.7 -fi - -if [[ -z "${EXTENSIONS##*,xdebug,*}" ]]; then - echo "---------- Install xdebug ----------" - installExtensionFromTgz xdebug-2.5.5 -fi - -if [[ -z "${EXTENSIONS##*,event,*}" ]]; then - echo "---------- Install event ----------" - apk add --no-cache libevent-dev - export is_sockets_installed=$(php -r "echo extension_loaded('sockets');") - - if [[ "${is_sockets_installed}" = "" ]]; then - echo "---------- event is depend on sockets, install sockets first ----------" - docker-php-ext-install sockets - fi - - echo "---------- Install event again ----------" - mkdir event - tar -xf event-3.0.8.tgz -C event --strip-components=1 - cd event && phpize && ./configure && make && make install - - docker-php-ext-enable --ini-name event.ini event -fi - -if [[ -z "${EXTENSIONS##*,mongodb,*}" ]]; then - echo "---------- Install mongodb ----------" - apk add --no-cache openssl-dev - installExtensionFromTgz mongodb-1.6.4=0 - docker-php-ext-configure mongodb --with-mongodb-ssl=openssl -fi - -if [[ -z "${EXTENSIONS##*,yaf,*}" ]]; then - echo "---------- Install yaf ----------" - installExtensionFromTgz yaf-3.0.9 -fi - - -if [[ -z "${EXTENSIONS##*,swoole,*}" ]]; then - echo "---------- Install swoole ----------" - # Fix: Refer to the line containing "swoole@alpine)" in file "./install-php-extensions" - apk add --no-cache libstdc++ - installExtensionFromTgz swoole-2.0.11 --enable-openssl -fi - -if [[ -z "${EXTENSIONS##*,zip,*}" ]]; then - echo "---------- Install zip ----------" - # Fix: https://github.com/docker-library/php/issues/797 - apk add --no-cache libzip-dev - - docker-php-ext-install ${MC} zip -fi - -if [[ -z "${EXTENSIONS##*,xhprof,*}" ]]; then - echo "---------- Install XHProf ----------" - isPhpVersionGreaterOrEqual 5 6 - if [[ "$?" = "1" ]]; then - mkdir xhprof \ - && tar -xf xhprof-0.9.4.tgz -C xhprof --strip-components=1 \ - && ( cd xhprof/extension/ && phpize && ./configure && make ${MC} && make install ) \ - && docker-php-ext-enable xhprof - else - echo "---------- PHP Version>= 5.6----------" - fi - -fi - -if [[ -z "${EXTENSIONS##*,xlswriter,*}" ]]; then - echo "---------- Install xlswriter ----------" - isPhpVersionGreaterOrEqual 5 6 - - if [[ "$?" = "1" ]]; then - printf "\n" | pecl install xlswriter - docker-php-ext-enable xlswriter - else - echo "---------- PHP Version>= 5.6----------" - fi -fi - -if [[ -z "${EXTENSIONS##*,rdkafka,*}" ]]; then - echo "---------- Install rdkafka ----------" - isPhpVersionGreaterOrEqual 5 6 - - if [[ "$?" = "1" ]]; then - apk add librdkafka-dev - printf "\n" | pecl install rdkafka - docker-php-ext-enable rdkafka - else - echo "---------- PHP Version>= 5.6----------" - fi -fi - -if [[ -z "${EXTENSIONS##*,zookeeper,*}" ]]; then - echo "---------- Install zookeeper ----------" - isPhpVersionGreaterOrEqual 5 6 - - if [[ "$?" = "1" ]]; then - apk add re2c - apk add libzookeeper-dev --repository http://${CONTAINER_PACKAGE_URL}/alpine/edge/testing/ - printf "\n" | pecl install zookeeper - docker-php-ext-enable zookeeper - else - echo "---------- PHP Version>= 5.6----------" - fi -fi - -if [[ -z "${EXTENSIONS##*,phalcon,*}" ]]; then - echo "---------- Install phalcon ----------" - isPhpVersionGreaterOrEqual 7 2 - - if [[ "$?" = "1" ]]; then - printf "\n" | pecl install phalcon - docker-php-ext-enable psr - docker-php-ext-enable phalcon - else - echo "---------- PHP Version>= 7.2----------" - fi -fi - -if [[ -z "${EXTENSIONS##*,sdebug,*}" ]]; then - echo "---------- Install sdebug ----------" - isPhpVersionGreaterOrEqual 7 2 - - if [[ "$?" = "1" ]]; then - curl -SL "https://github.com/swoole/sdebug/archive/sdebug_2_9-beta.tar.gz" -o sdebug.tar.gz \ - && mkdir -p sdebug \ - && tar -xf sdebug.tar.gz -C sdebug --strip-components=1 \ - && rm sdebug.tar.gz \ - && ( \ - cd sdebug \ - && phpize \ - && ./configure --enable-xdebug \ - && make clean && make && make install \ - ) \ - && docker-php-ext-enable xdebug - else - echo "---------- PHP Version>= 7.2----------" - fi -fi - -if [ "${PHP_EXTENSIONS}" != "" ]; then - apk del .build-deps \ - && docker-php-source delete -fi \ No newline at end of file diff --git a/php5/5.6.40/build/php/extensions/memcache-2.2.7.tgz b/php5/5.6.40/build/php/extensions/memcache-2.2.7.tgz deleted file mode 100644 index a3c453416..000000000 Binary files a/php5/5.6.40/build/php/extensions/memcache-2.2.7.tgz and /dev/null differ diff --git a/php5/5.6.40/build/php/extensions/mongodb-1.6.0.tgz b/php5/5.6.40/build/php/extensions/mongodb-1.6.0.tgz deleted file mode 100644 index eb98c8186..000000000 Binary files a/php5/5.6.40/build/php/extensions/mongodb-1.6.0.tgz and /dev/null differ diff --git a/php5/5.6.40/build/php/extensions/redis-4.3.0.tgz b/php5/5.6.40/build/php/extensions/redis-4.3.0.tgz deleted file mode 100644 index c4a9ffcfe..000000000 Binary files a/php5/5.6.40/build/php/extensions/redis-4.3.0.tgz and /dev/null differ diff --git a/php5/5.6.40/build/php/extensions/swoole-2.0.11.tgz b/php5/5.6.40/build/php/extensions/swoole-2.0.11.tgz deleted file mode 100644 index a155450ce..000000000 Binary files a/php5/5.6.40/build/php/extensions/swoole-2.0.11.tgz and /dev/null differ diff --git a/php5/5.6.40/build/php/extensions/xdebug-2.5.5.tgz b/php5/5.6.40/build/php/extensions/xdebug-2.5.5.tgz deleted file mode 100644 index d62c7ff63..000000000 Binary files a/php5/5.6.40/build/php/extensions/xdebug-2.5.5.tgz and /dev/null differ diff --git a/php5/5.6.40/build/php/extensions/xhprof-0.9.4.tgz b/php5/5.6.40/build/php/extensions/xhprof-0.9.4.tgz deleted file mode 100644 index 127117911..000000000 Binary files a/php5/5.6.40/build/php/extensions/xhprof-0.9.4.tgz and /dev/null differ diff --git a/php5/5.6.40/build/php/extensions/yaf-3.0.9.tgz b/php5/5.6.40/build/php/extensions/yaf-3.0.9.tgz deleted file mode 100644 index 492c1fdc3..000000000 Binary files a/php5/5.6.40/build/php/extensions/yaf-3.0.9.tgz and /dev/null differ diff --git a/php5/5.6.40/build/php/php-fpm.conf b/php5/5.6.40/build/php/php-fpm.conf deleted file mode 100644 index 131835891..000000000 --- a/php5/5.6.40/build/php/php-fpm.conf +++ /dev/null @@ -1,423 +0,0 @@ -; Start a new pool named 'www'. -; the variable $pool can be used in any directive and will be replaced by the -; pool name ('www' here) -[www] - -; Per pool prefix -; It only applies on the following directives: -; - 'access.log' -; - 'slowlog' -; - 'listen' (unixsocket) -; - 'chroot' -; - 'chdir' -; - 'php_values' -; - 'php_admin_values' -; When not set, the global prefix (or NONE) applies instead. -; Note: This directive can also be relative to the global prefix. -; Default Value: none -;prefix = /path/to/pools/$pool - -; Unix user/group of processes -; Note: The user is mandatory. If the group is not set, the default user's group -; will be used. -user = www-data -group = www-data - -; The address on which to accept FastCGI requests. -; Valid syntaxes are: -; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on -; a specific port; -; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on -; a specific port; -; 'port' - to listen on a TCP socket to all addresses -; (IPv6 and IPv4-mapped) on a specific port; -; '/path/to/unix/socket' - to listen on a unix socket. -; Note: This value is mandatory. -listen = 127.0.0.1:9000 - -; Set listen(2) backlog. -; Default Value: 511 (-1 on FreeBSD and OpenBSD) -;listen.backlog = 511 - -; Set permissions for unix socket, if one is used. In Linux, read/write -; permissions must be set in order to allow connections from a web server. Many -; BSD-derived systems allow connections regardless of permissions. -; Default Values: user and group are set as the running user -; mode is set to 0660 -;listen.owner = www-data -;listen.group = www-data -;listen.mode = 0660 -; When POSIX Access Control Lists are supported you can set them using -; these options, value is a comma separated list of user/group names. -; When set, listen.owner and listen.group are ignored -;listen.acl_users = -;listen.acl_groups = - -; List of addresses (IPv4/IPv6) of FastCGI clients which are allowed to connect. -; Equivalent to the FCGI_WEB_SERVER_ADDRS environment variable in the original -; PHP FCGI (5.2.2+). Makes sense only with a tcp listening socket. Each address -; must be separated by a comma. If this value is left blank, connections will be -; accepted from any ip address. -; Default Value: any -;listen.allowed_clients = 127.0.0.1 - -; Specify the nice(2) priority to apply to the pool processes (only if set) -; The value can vary from -19 (highest priority) to 20 (lower priority) -; Note: - It will only work if the FPM master process is launched as root -; - The pool processes will inherit the master process priority -; unless it specified otherwise -; Default Value: no set -; process.priority = -19 - -; Set the process dumpable flag (PR_SET_DUMPABLE prctl) even if the process user -; or group is differrent than the master process user. It allows to create process -; core dump and ptrace the process for the pool user. -; Default Value: no -; process.dumpable = yes - -; Choose how the process manager will control the number of child processes. -; Possible Values: -; static - a fixed number (pm.max_children) of child processes; -; dynamic - the number of child processes are set dynamically based on the -; following directives. With this process management, there will be -; always at least 1 children. -; pm.max_children - the maximum number of children that can -; be alive at the same time. -; pm.start_servers - the number of children created on startup. -; pm.min_spare_servers - the minimum number of children in 'idle' -; state (waiting to process). If the number -; of 'idle' processes is less than this -; number then some children will be created. -; pm.max_spare_servers - the maximum number of children in 'idle' -; state (waiting to process). If the number -; of 'idle' processes is greater than this -; number then some children will be killed. -; ondemand - no children are created at startup. Children will be forked when -; new requests will connect. The following parameter are used: -; pm.max_children - the maximum number of children that -; can be alive at the same time. -; pm.process_idle_timeout - The number of seconds after which -; an idle process will be killed. -; Note: This value is mandatory. -pm = dynamic - -; The number of child processes to be created when pm is set to 'static' and the -; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'. -; This value sets the limit on the number of simultaneous requests that will be -; served. Equivalent to the ApacheMaxClients directive with mpm_prefork. -; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP -; CGI. The below defaults are based on a server without much resources. Don't -; forget to tweak pm.* to fit your needs. -; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand' -; Note: This value is mandatory. -pm.max_children = 10 - -; The number of child processes created on startup. -; Note: Used only when pm is set to 'dynamic' -; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2 -pm.start_servers = 2 - -; The desired minimum number of idle server processes. -; Note: Used only when pm is set to 'dynamic' -; Note: Mandatory when pm is set to 'dynamic' -pm.min_spare_servers = 1 - -; The desired maximum number of idle server processes. -; Note: Used only when pm is set to 'dynamic' -; Note: Mandatory when pm is set to 'dynamic' -pm.max_spare_servers = 3 - -; The number of seconds after which an idle process will be killed. -; Note: Used only when pm is set to 'ondemand' -; Default Value: 10s -;pm.process_idle_timeout = 10s; - -; The number of requests each child process should execute before respawning. -; This can be useful to work around memory leaks in 3rd party libraries. For -; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS. -; Default Value: 0 -;pm.max_requests = 500 - -; The URI to view the FPM status page. If this value is not set, no URI will be -; recognized as a status page. It shows the following informations: -; pool - the name of the pool; -; process manager - static, dynamic or ondemand; -; start time - the date and time FPM has started; -; start since - number of seconds since FPM has started; -; accepted conn - the number of request accepted by the pool; -; listen queue - the number of request in the queue of pending -; connections (see backlog in listen(2)); -; max listen queue - the maximum number of requests in the queue -; of pending connections since FPM has started; -; listen queue len - the size of the socket queue of pending connections; -; idle processes - the number of idle processes; -; active processes - the number of active processes; -; total processes - the number of idle + active processes; -; max active processes - the maximum number of active processes since FPM -; has started; -; max children reached - number of times, the process limit has been reached, -; when pm tries to start more children (works only for -; pm 'dynamic' and 'ondemand'); -; Value are updated in real time. -; Example output: -; pool: www -; process manager: static -; start time: 01/Jul/2011:17:53:49 +0200 -; start since: 62636 -; accepted conn: 190460 -; listen queue: 0 -; max listen queue: 1 -; listen queue len: 42 -; idle processes: 4 -; active processes: 11 -; total processes: 15 -; max active processes: 12 -; max children reached: 0 -; -; By default the status page output is formatted as text/plain. Passing either -; 'html', 'xml' or 'json' in the query string will return the corresponding -; output syntax. Example: -; http://www.foo.bar/status -; http://www.foo.bar/status?json -; http://www.foo.bar/status?html -; http://www.foo.bar/status?xml -; -; By default the status page only outputs short status. Passing 'full' in the -; query string will also return status for each pool process. -; Example: -; http://www.foo.bar/status?full -; http://www.foo.bar/status?json&full -; http://www.foo.bar/status?html&full -; http://www.foo.bar/status?xml&full -; The Full status returns for each process: -; pid - the PID of the process; -; state - the state of the process (Idle, Running, ...); -; start time - the date and time the process has started; -; start since - the number of seconds since the process has started; -; requests - the number of requests the process has served; -; request duration - the duration in µs of the requests; -; request method - the request method (GET, POST, ...); -; request URI - the request URI with the query string; -; content length - the content length of the request (only with POST); -; user - the user (PHP_AUTH_USER) (or '-' if not set); -; script - the main script called (or '-' if not set); -; last request cpu - the %cpu the last request consumed -; it's always 0 if the process is not in Idle state -; because CPU calculation is done when the request -; processing has terminated; -; last request memory - the max amount of memory the last request consumed -; it's always 0 if the process is not in Idle state -; because memory calculation is done when the request -; processing has terminated; -; If the process is in Idle state, then informations are related to the -; last request the process has served. Otherwise informations are related to -; the current request being served. -; Example output: -; ************************ -; pid: 31330 -; state: Running -; start time: 01/Jul/2011:17:53:49 +0200 -; start since: 63087 -; requests: 12808 -; request duration: 1250261 -; request method: GET -; request URI: /test_mem.php?N=10000 -; content length: 0 -; user: - -; script: /home/fat/web/docs/php/test_mem.php -; last request cpu: 0.00 -; last request memory: 0 -; -; Note: There is a real-time FPM status monitoring sample web page available -; It's available in: /usr/local/share/php/fpm/status.html -; -; Note: The value must start with a leading slash (/). The value can be -; anything, but it may not be a good idea to use the .php extension or it -; may conflict with a real PHP file. -; Default Value: not set -;pm.status_path = /status - -; The ping URI to call the monitoring page of FPM. If this value is not set, no -; URI will be recognized as a ping page. This could be used to test from outside -; that FPM is alive and responding, or to -; - create a graph of FPM availability (rrd or such); -; - remove a server from a group if it is not responding (load balancing); -; - trigger alerts for the operating team (24/7). -; Note: The value must start with a leading slash (/). The value can be -; anything, but it may not be a good idea to use the .php extension or it -; may conflict with a real PHP file. -; Default Value: not set -;ping.path = /ping - -; This directive may be used to customize the response of a ping request. The -; response is formatted as text/plain with a 200 response code. -; Default Value: pong -;ping.response = pong - -; The access log file -; Default: not set -;access.log = log/$pool.access.log - -; The access log format. -; The following syntax is allowed -; %%: the '%' character -; %C: %CPU used by the request -; it can accept the following format: -; - %{user}C for user CPU only -; - %{system}C for system CPU only -; - %{total}C for user + system CPU (default) -; %d: time taken to serve the request -; it can accept the following format: -; - %{seconds}d (default) -; - %{miliseconds}d -; - %{mili}d -; - %{microseconds}d -; - %{micro}d -; %e: an environment variable (same as $_ENV or $_SERVER) -; it must be associated with embraces to specify the name of the env -; variable. Some exemples: -; - server specifics like: %{REQUEST_METHOD}e or %{SERVER_PROTOCOL}e -; - HTTP headers like: %{HTTP_HOST}e or %{HTTP_USER_AGENT}e -; %f: script filename -; %l: content-length of the request (for POST request only) -; %m: request method -; %M: peak of memory allocated by PHP -; it can accept the following format: -; - %{bytes}M (default) -; - %{kilobytes}M -; - %{kilo}M -; - %{megabytes}M -; - %{mega}M -; %n: pool name -; %o: output header -; it must be associated with embraces to specify the name of the header: -; - %{Content-Type}o -; - %{X-Powered-By}o -; - %{Transfert-Encoding}o -; - .... -; %p: PID of the child that serviced the request -; %P: PID of the parent of the child that serviced the request -; %q: the query string -; %Q: the '?' character if query string exists -; %r: the request URI (without the query string, see %q and %Q) -; %R: remote IP address -; %s: status (response code) -; %t: server time the request was received -; it can accept a strftime(3) format: -; %d/%b/%Y:%H:%M:%S %z (default) -; The strftime(3) format must be encapsuled in a %{}t tag -; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t -; %T: time the log has been written (the request has finished) -; it can accept a strftime(3) format: -; %d/%b/%Y:%H:%M:%S %z (default) -; The strftime(3) format must be encapsuled in a %{}t tag -; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t -; %u: remote user -; -; Default: "%R - %u %t \"%m %r\" %s" -;access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%" - -; The log file for slow requests -; Default Value: not set -; Note: slowlog is mandatory if request_slowlog_timeout is set -slowlog = /var/log/php/fpm.slow.log - -; The timeout for serving a single request after which a PHP backtrace will be -; dumped to the 'slowlog' file. A value of '0s' means 'off'. -; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) -; Default Value: 0 -request_slowlog_timeout = 3 - -; Depth of slow log stack trace. -; Default Value: 20 -;request_slowlog_trace_depth = 20 - -; The timeout for serving a single request after which the worker process will -; be killed. This option should be used when the 'max_execution_time' ini option -; does not stop script execution for some reason. A value of '0' means 'off'. -; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) -; Default Value: 0 -;request_terminate_timeout = 0 - -; Set open file descriptor rlimit. -; Default Value: system defined value -;rlimit_files = 1024 - -; Set max core size rlimit. -; Possible Values: 'unlimited' or an integer greater or equal to 0 -; Default Value: system defined value -;rlimit_core = 0 - -; Chroot to this directory at the start. This value must be defined as an -; absolute path. When this value is not set, chroot is not used. -; Note: you can prefix with '$prefix' to chroot to the pool prefix or one -; of its subdirectories. If the pool prefix is not set, the global prefix -; will be used instead. -; Note: chrooting is a great security feature and should be used whenever -; possible. However, all PHP paths will be relative to the chroot -; (error_log, sessions.save_path, ...). -; Default Value: not set -;chroot = - -; Chdir to this directory at the start. -; Note: relative path can be used. -; Default Value: current directory or / when chroot -;chdir = /var/www - -; Redirect worker stdout and stderr into main error log. If not set, stdout and -; stderr will be redirected to /dev/null according to FastCGI specs. -; Note: on highloaded environement, this can cause some delay in the page -; process time (several ms). -; Default Value: no -catch_workers_output = yes - -; Clear environment in FPM workers -; Prevents arbitrary environment variables from reaching FPM worker processes -; by clearing the environment in workers before env vars specified in this -; pool configuration are added. -; Setting to "no" will make all environment variables available to PHP code -; via getenv(), $_ENV and $_SERVER. -; Default Value: yes -;clear_env = no - -; Limits the extensions of the main script FPM will allow to parse. This can -; prevent configuration mistakes on the web server side. You should only limit -; FPM to .php extensions to prevent malicious users to use other extensions to -; execute php code. -; Note: set an empty value to allow all extensions. -; Default Value: .php -;security.limit_extensions = .php .php3 .php4 .php5 .php7 - -; Pass environment variables like LD_LIBRARY_PATH. All $VARIABLEs are taken from -; the current environment. -; Default Value: clean env -;env[HOSTNAME] = $HOSTNAME -;env[PATH] = /usr/local/bin:/usr/bin:/bin -;env[TMP] = /tmp -;env[TMPDIR] = /tmp -;env[TEMP] = /tmp - -; Additional php.ini defines, specific to this pool of workers. These settings -; overwrite the values previously defined in the php.ini. The directives are the -; same as the PHP SAPI: -; php_value/php_flag - you can set classic ini defines which can -; be overwritten from PHP call 'ini_set'. -; php_admin_value/php_admin_flag - these directives won't be overwritten by -; PHP call 'ini_set' -; For php_*flag, valid values are on, off, 1, 0, true, false, yes or no. - -; Defining 'extension' will load the corresponding shared extension from -; extension_dir. Defining 'disable_functions' or 'disable_classes' will not -; overwrite previously defined php.ini values, but will append the new value -; instead. - -; Note: path INI options can be relative and will be expanded with the prefix -; (pool, global or /usr/local) - -; Default Value: nothing is defined by default except the values in php.ini and -; specified at startup with the -d argument -;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com -;php_flag[display_errors] = off -;php_admin_value[error_log] = /var/log/fpm-php.www.log -;php_admin_flag[log_errors] = on -;php_admin_value[memory_limit] = 32M diff --git a/php5/5.6.40/build/php/php.ini b/php5/5.6.40/build/php/php.ini deleted file mode 100644 index b04e16401..000000000 --- a/php5/5.6.40/build/php/php.ini +++ /dev/null @@ -1,1933 +0,0 @@ -[PHP] - -;;;;;;;;;;;;;;;;;;; -; About php.ini ; -;;;;;;;;;;;;;;;;;;; -; PHP's initialization file, generally called php.ini, is responsible for -; configuring many of the aspects of PHP's behavior. - -; PHP attempts to find and load this configuration from a number of locations. -; The following is a summary of its search order: -; 1. SAPI module specific location. -; 2. The PHPRC environment variable. (As of PHP 5.2.0) -; 3. A number of predefined registry keys on Windows (As of PHP 5.2.0) -; 4. Current working directory (except CLI) -; 5. The web server's directory (for SAPI modules), or directory of PHP -; (otherwise in Windows) -; 6. The directory from the --with-config-file-path compile time option, or the -; Windows directory (C:\windows or C:\winnt) -; See the PHP docs for more specific information. -; http://php.net/configuration.file - -; The syntax of the file is extremely simple. Whitespace and lines -; beginning with a semicolon are silently ignored (as you probably guessed). -; Section headers (e.g. [Foo]) are also silently ignored, even though -; they might mean something in the future. - -; Directives following the section heading [PATH=/www/mysite] only -; apply to PHP files in the /www/mysite directory. Directives -; following the section heading [HOST=www.example.com] only apply to -; PHP files served from www.example.com. Directives set in these -; special sections cannot be overridden by user-defined INI files or -; at runtime. Currently, [PATH=] and [HOST=] sections only work under -; CGI/FastCGI. -; http://php.net/ini.sections - -; Directives are specified using the following syntax: -; directive = value -; Directive names are *case sensitive* - foo=bar is different from FOO=bar. -; Directives are variables used to configure PHP or PHP extensions. -; There is no name validation. If PHP can't find an expected -; directive because it is not set or is mistyped, a default value will be used. - -; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one -; of the INI constants (On, Off, True, False, Yes, No and None) or an expression -; (e.g. E_ALL & ~E_NOTICE), a quoted string ("bar"), or a reference to a -; previously set variable or directive (e.g. ${foo}) - -; Expressions in the INI file are limited to bitwise operators and parentheses: -; | bitwise OR -; ^ bitwise XOR -; & bitwise AND -; ~ bitwise NOT -; ! boolean NOT - -; Boolean flags can be turned on using the values 1, On, True or Yes. -; They can be turned off using the values 0, Off, False or No. - -; An empty string can be denoted by simply not writing anything after the equal -; sign, or by using the None keyword: - -; foo = ; sets foo to an empty string -; foo = None ; sets foo to an empty string -; foo = "None" ; sets foo to the string 'None' - -; If you use constants in your value, and these constants belong to a -; dynamically loaded extension (either a PHP extension or a Zend extension), -; you may only use these constants *after* the line that loads the extension. - -;;;;;;;;;;;;;;;;;;; -; About this file ; -;;;;;;;;;;;;;;;;;;; -; PHP comes packaged with two INI files. One that is recommended to be used -; in production environments and one that is recommended to be used in -; development environments. - -; php.ini-production contains settings which hold security, performance and -; best practices at its core. But please be aware, these settings may break -; compatibility with older or less security conscience applications. We -; recommending using the production ini in production and testing environments. - -; php.ini-development is very similar to its production variant, except it is -; much more verbose when it comes to errors. We recommend using the -; development version only in development environments, as errors shown to -; application users can inadvertently leak otherwise secure information. - -; This is php.ini-production INI file. - -;;;;;;;;;;;;;;;;;;; -; Quick Reference ; -;;;;;;;;;;;;;;;;;;; -; The following are all the settings which are different in either the production -; or development versions of the INIs with respect to PHP's default behavior. -; Please see the actual settings later in the document for more details as to why -; we recommend these changes in PHP's behavior. - -; display_errors -; Default Value: On -; Development Value: On -; Production Value: Off - -; display_startup_errors -; Default Value: Off -; Development Value: On -; Production Value: Off - -; error_reporting -; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT - -; html_errors -; Default Value: On -; Development Value: On -; Production value: On - -; log_errors -; Default Value: Off -; Development Value: On -; Production Value: On - -; max_input_time -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) - -; output_buffering -; Default Value: Off -; Development Value: 4096 -; Production Value: 4096 - -; register_argc_argv -; Default Value: On -; Development Value: Off -; Production Value: Off - -; request_order -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" - -; session.gc_divisor -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 - -; session.sid_bits_per_character -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 - -; short_open_tag -; Default Value: On -; Development Value: Off -; Production Value: Off - -; track_errors -; Default Value: Off -; Development Value: On -; Production Value: Off - -; variables_order -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS" - -;;;;;;;;;;;;;;;;;;;; -; php.ini Options ; -;;;;;;;;;;;;;;;;;;;; -; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini" -;user_ini.filename = ".user.ini" - -; To disable this feature set this option to empty value -;user_ini.filename = - -; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes) -;user_ini.cache_ttl = 300 - -;;;;;;;;;;;;;;;;;;;; -; Language Options ; -;;;;;;;;;;;;;;;;;;;; - -; Enable the PHP scripting language engine under Apache. -; http://php.net/engine -engine = On - -; This directive determines whether or not PHP will recognize code between -; tags as PHP source which should be processed as such. It is -; generally recommended that should be used and that this feature -; should be disabled, as enabling it may result in issues when generating XML -; documents, however this remains supported for backward compatibility reasons. -; Note that this directive does not control the would work. -; http://php.net/syntax-highlighting -;highlight.string = #DD0000 -;highlight.comment = #FF9900 -;highlight.keyword = #007700 -;highlight.default = #0000BB -;highlight.html = #000000 - -; If enabled, the request will be allowed to complete even if the user aborts -; the request. Consider enabling it if executing long requests, which may end up -; being interrupted by the user or a browser timing out. PHP's default behavior -; is to disable this feature. -; http://php.net/ignore-user-abort -;ignore_user_abort = On - -; Determines the size of the realpath cache to be used by PHP. This value should -; be increased on systems where PHP opens many files to reflect the quantity of -; the file operations performed. -; http://php.net/realpath-cache-size -;realpath_cache_size = 4096k - -; Duration of time, in seconds for which to cache realpath information for a given -; file or directory. For systems with rarely changing files, consider increasing this -; value. -; http://php.net/realpath-cache-ttl -;realpath_cache_ttl = 120 - -; Enables or disables the circular reference collector. -; http://php.net/zend.enable-gc -zend.enable_gc = On - -; If enabled, scripts may be written in encodings that are incompatible with -; the scanner. CP936, Big5, CP949 and Shift_JIS are the examples of such -; encodings. To use this feature, mbstring extension must be enabled. -; Default: Off -;zend.multibyte = Off - -; Allows to set the default encoding for the scripts. This value will be used -; unless "declare(encoding=...)" directive appears at the top of the script. -; Only affects if zend.multibyte is set. -; Default: "" -;zend.script_encoding = - -;;;;;;;;;;;;;;;;; -; Miscellaneous ; -;;;;;;;;;;;;;;;;; - -; Decides whether PHP may expose the fact that it is installed on the server -; (e.g. by adding its signature to the Web server header). It is no security -; threat in any way, but it makes it possible to determine whether you use PHP -; on your server or not. -; http://php.net/expose-php -expose_php = Off - -;;;;;;;;;;;;;;;;;;; -; Resource Limits ; -;;;;;;;;;;;;;;;;;;; - -; Maximum execution time of each script, in seconds -; http://php.net/max-execution-time -; Note: This directive is hardcoded to 0 for the CLI SAPI -max_execution_time = 30 - -; Maximum amount of time each script may spend parsing request data. It's a good -; idea to limit this time on productions servers in order to eliminate unexpectedly -; long running scripts. -; Note: This directive is hardcoded to -1 for the CLI SAPI -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) -; http://php.net/max-input-time -max_input_time = 60 - -; Maximum input variable nesting level -; http://php.net/max-input-nesting-level -;max_input_nesting_level = 64 - -; How many GET/POST/COOKIE input variables may be accepted -; max_input_vars = 1000 - -; Maximum amount of memory a script may consume (128MB) -; http://php.net/memory-limit -memory_limit = 256M - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; Error handling and logging ; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -; This directive informs PHP of which errors, warnings and notices you would like -; it to take action for. The recommended way of setting values for this -; directive is through the use of the error level constants and bitwise -; operators. The error level constants are below here for convenience as well as -; some common settings and their meanings. -; By default, PHP is set to take action on all errors, notices and warnings EXCEPT -; those related to E_NOTICE and E_STRICT, which together cover best practices and -; recommended coding standards in PHP. For performance reasons, this is the -; recommend error reporting setting. Your production server shouldn't be wasting -; resources complaining about best practices and coding standards. That's what -; development servers and development settings are for. -; Note: The php.ini-development file has this setting as E_ALL. This -; means it pretty much reports everything which is exactly what you want during -; development and early testing. -; -; Error Level Constants: -; E_ALL - All errors and warnings (includes E_STRICT as of PHP 5.4.0) -; E_ERROR - fatal run-time errors -; E_RECOVERABLE_ERROR - almost fatal run-time errors -; E_WARNING - run-time warnings (non-fatal errors) -; E_PARSE - compile-time parse errors -; E_NOTICE - run-time notices (these are warnings which often result -; from a bug in your code, but it's possible that it was -; intentional (e.g., using an uninitialized variable and -; relying on the fact it is automatically initialized to an -; empty string) -; E_STRICT - run-time notices, enable to have PHP suggest changes -; to your code which will ensure the best interoperability -; and forward compatibility of your code -; E_CORE_ERROR - fatal errors that occur during PHP's initial startup -; E_CORE_WARNING - warnings (non-fatal errors) that occur during PHP's -; initial startup -; E_COMPILE_ERROR - fatal compile-time errors -; E_COMPILE_WARNING - compile-time warnings (non-fatal errors) -; E_USER_ERROR - user-generated error message -; E_USER_WARNING - user-generated warning message -; E_USER_NOTICE - user-generated notice message -; E_DEPRECATED - warn about code that will not work in future versions -; of PHP -; E_USER_DEPRECATED - user-generated deprecation warnings -; -; Common Values: -; E_ALL (Show all errors, warnings and notices including coding standards.) -; E_ALL & ~E_NOTICE (Show all errors, except for notices) -; E_ALL & ~E_NOTICE & ~E_STRICT (Show all errors, except for notices and coding standards warnings.) -; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors) -; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT -; http://php.net/error-reporting -error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT - -; This directive controls whether or not and where PHP will output errors, -; notices and warnings too. Error output is very useful during development, but -; it could be very dangerous in production environments. Depending on the code -; which is triggering the error, sensitive information could potentially leak -; out of your application such as database usernames and passwords or worse. -; For production environments, we recommend logging errors rather than -; sending them to STDOUT. -; Possible Values: -; Off = Do not display any errors -; stderr = Display errors to STDERR (affects only CGI/CLI binaries!) -; On or stdout = Display errors to STDOUT -; Default Value: On -; Development Value: On -; Production Value: Off -; http://php.net/display-errors -display_errors = Off - -; The display of errors which occur during PHP's startup sequence are handled -; separately from display_errors. PHP's default behavior is to suppress those -; errors from clients. Turning the display of startup errors on can be useful in -; debugging configuration problems. We strongly recommend you -; set this to 'off' for production servers. -; Default Value: Off -; Development Value: On -; Production Value: Off -; http://php.net/display-startup-errors -display_startup_errors = Off - -; Besides displaying errors, PHP can also log errors to locations such as a -; server-specific log, STDERR, or a location specified by the error_log -; directive found below. While errors should not be displayed on productions -; servers they should still be monitored and logging is a great way to do that. -; Default Value: Off -; Development Value: On -; Production Value: On -; http://php.net/log-errors -log_errors = On - -; Set maximum length of log_errors. In error_log information about the source is -; added. The default is 1024 and 0 allows to not apply any maximum length at all. -; http://php.net/log-errors-max-len -log_errors_max_len = 1024 - -; Do not log repeated messages. Repeated errors must occur in same file on same -; line unless ignore_repeated_source is set true. -; http://php.net/ignore-repeated-errors -ignore_repeated_errors = Off - -; Ignore source of message when ignoring repeated messages. When this setting -; is On you will not log errors with repeated messages from different files or -; source lines. -; http://php.net/ignore-repeated-source -ignore_repeated_source = Off - -; If this parameter is set to Off, then memory leaks will not be shown (on -; stdout or in the log). This has only effect in a debug compile, and if -; error reporting includes E_WARNING in the allowed list -; http://php.net/report-memleaks -report_memleaks = On - -; This setting is on by default. -;report_zend_debug = 0 - -; Store the last error/warning message in $php_errormsg (boolean). Setting this value -; to On can assist in debugging and is appropriate for development servers. It should -; however be disabled on production servers. -; Default Value: Off -; Development Value: On -; Production Value: Off -; http://php.net/track-errors -track_errors = Off - -; Turn off normal error reporting and emit XML-RPC error XML -; http://php.net/xmlrpc-errors -;xmlrpc_errors = 0 - -; An XML-RPC faultCode -;xmlrpc_error_number = 0 - -; When PHP displays or logs an error, it has the capability of formatting the -; error message as HTML for easier reading. This directive controls whether -; the error message is formatted as HTML or not. -; Note: This directive is hardcoded to Off for the CLI SAPI -; Default Value: On -; Development Value: On -; Production value: On -; http://php.net/html-errors -html_errors = On - -; If html_errors is set to On *and* docref_root is not empty, then PHP -; produces clickable error messages that direct to a page describing the error -; or function causing the error in detail. -; You can download a copy of the PHP manual from http://php.net/docs -; and change docref_root to the base URL of your local copy including the -; leading '/'. You must also specify the file extension being used including -; the dot. PHP's default behavior is to leave these settings empty, in which -; case no links to documentation are generated. -; Note: Never use this feature for production boxes. -; http://php.net/docref-root -; Examples -;docref_root = "/phpmanual/" - -; http://php.net/docref-ext -;docref_ext = .html - -; String to output before an error message. PHP's default behavior is to leave -; this setting blank. -; http://php.net/error-prepend-string -; Example: -;error_prepend_string = "" - -; String to output after an error message. PHP's default behavior is to leave -; this setting blank. -; http://php.net/error-append-string -; Example: -;error_append_string = "" - -; Log errors to specified file. PHP's default behavior is to leave this value -; empty. -; http://php.net/error-log -; Example: -;error_log = php_errors.log -; Log errors to syslog (Event Log on Windows). -error_log = /var/log/php/php.error.log - -;windows.show_crt_warning -; Default value: 0 -; Development value: 0 -; Production value: 0 - -;;;;;;;;;;;;;;;;; -; Data Handling ; -;;;;;;;;;;;;;;;;; - -; The separator used in PHP generated URLs to separate arguments. -; PHP's default setting is "&". -; http://php.net/arg-separator.output -; Example: -;arg_separator.output = "&" - -; List of separator(s) used by PHP to parse input URLs into variables. -; PHP's default setting is "&". -; NOTE: Every character in this directive is considered as separator! -; http://php.net/arg-separator.input -; Example: -;arg_separator.input = ";&" - -; This directive determines which super global arrays are registered when PHP -; starts up. G,P,C,E & S are abbreviations for the following respective super -; globals: GET, POST, COOKIE, ENV and SERVER. There is a performance penalty -; paid for the registration of these arrays and because ENV is not as commonly -; used as the others, ENV is not recommended on productions servers. You -; can still get access to the environment variables through getenv() should you -; need to. -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS"; -; http://php.net/variables-order -variables_order = "GPCS" - -; This directive determines which super global data (G,P & C) should be -; registered into the super global array REQUEST. If so, it also determines -; the order in which that data is registered. The values for this directive -; are specified in the same manner as the variables_order directive, -; EXCEPT one. Leaving this value empty will cause PHP to use the value set -; in the variables_order directive. It does not mean it will leave the super -; globals array REQUEST empty. -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" -; http://php.net/request-order -request_order = "GP" - -; This directive determines whether PHP registers $argv & $argc each time it -; runs. $argv contains an array of all the arguments passed to PHP when a script -; is invoked. $argc contains an integer representing the number of arguments -; that were passed when the script was invoked. These arrays are extremely -; useful when running scripts from the command line. When this directive is -; enabled, registering these variables consumes CPU cycles and memory each time -; a script is executed. For performance reasons, this feature should be disabled -; on production servers. -; Note: This directive is hardcoded to On for the CLI SAPI -; Default Value: On -; Development Value: Off -; Production Value: Off -; http://php.net/register-argc-argv -register_argc_argv = Off - -; When enabled, the ENV, REQUEST and SERVER variables are created when they're -; first used (Just In Time) instead of when the script starts. If these -; variables are not used within a script, having this directive on will result -; in a performance gain. The PHP directive register_argc_argv must be disabled -; for this directive to have any affect. -; http://php.net/auto-globals-jit -auto_globals_jit = On - -; Whether PHP will read the POST data. -; This option is enabled by default. -; Most likely, you won't want to disable this option globally. It causes $_POST -; and $_FILES to always be empty; the only way you will be able to read the -; POST data will be through the php://input stream wrapper. This can be useful -; to proxy requests or to process the POST data in a memory efficient fashion. -; http://php.net/enable-post-data-reading -;enable_post_data_reading = Off - -; Maximum size of POST data that PHP will accept. -; Its value may be 0 to disable the limit. It is ignored if POST data reading -; is disabled through enable_post_data_reading. -; http://php.net/post-max-size -post_max_size = 100M - -; Automatically add files before PHP document. -; http://php.net/auto-prepend-file -auto_prepend_file = - -; Automatically add files after PHP document. -; http://php.net/auto-append-file -auto_append_file = - -; By default, PHP will output a media type using the Content-Type header. To -; disable this, simply set it to be empty. -; -; PHP's built-in default media type is set to text/html. -; http://php.net/default-mimetype -default_mimetype = "text/html" - -; PHP's default character set is set to UTF-8. -; http://php.net/default-charset -default_charset = "UTF-8" - -; PHP internal character encoding is set to empty. -; If empty, default_charset is used. -; http://php.net/internal-encoding -;internal_encoding = - -; PHP input character encoding is set to empty. -; If empty, default_charset is used. -; http://php.net/input-encoding -;input_encoding = - -; PHP output character encoding is set to empty. -; If empty, default_charset is used. -; See also output_buffer. -; http://php.net/output-encoding -;output_encoding = - -;;;;;;;;;;;;;;;;;;;;;;;;; -; Paths and Directories ; -;;;;;;;;;;;;;;;;;;;;;;;;; - -; UNIX: "/path1:/path2" -;include_path = ".:/php/includes" -; -; Windows: "\path1;\path2" -;include_path = ".;c:\php\includes" -; -; PHP's default setting for include_path is ".;/path/to/php/pear" -; http://php.net/include-path - -; The root of the PHP pages, used only if nonempty. -; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root -; if you are running php as a CGI under any web server (other than IIS) -; see documentation for security issues. The alternate is to use the -; cgi.force_redirect configuration below -; http://php.net/doc-root -doc_root = - -; The directory under which PHP opens the script using /~username used only -; if nonempty. -; http://php.net/user-dir -user_dir = - -; Directory in which the loadable extensions (modules) reside. -; http://php.net/extension-dir -; extension_dir = "./" -; On windows: -; extension_dir = "ext" - -; Directory where the temporary files should be placed. -; Defaults to the system default (see sys_get_temp_dir) -; sys_temp_dir = "/tmp" - -; Whether or not to enable the dl() function. The dl() function does NOT work -; properly in multithreaded servers, such as IIS or Zeus, and is automatically -; disabled on them. -; http://php.net/enable-dl -enable_dl = Off - -; cgi.force_redirect is necessary to provide security running PHP as a CGI under -; most web servers. Left undefined, PHP turns this on by default. You can -; turn it off here AT YOUR OWN RISK -; **You CAN safely turn this off for IIS, in fact, you MUST.** -; http://php.net/cgi.force-redirect -;cgi.force_redirect = 1 - -; if cgi.nph is enabled it will force cgi to always sent Status: 200 with -; every request. PHP's default behavior is to disable this feature. -;cgi.nph = 1 - -; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape -; (iPlanet) web servers, you MAY need to set an environment variable name that PHP -; will look for to know it is OK to continue execution. Setting this variable MAY -; cause security issues, KNOW WHAT YOU ARE DOING FIRST. -; http://php.net/cgi.redirect-status-env -;cgi.redirect_status_env = - -; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's -; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok -; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting -; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting -; of zero causes PHP to behave as before. Default is 1. You should fix your scripts -; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. -; http://php.net/cgi.fix-pathinfo -;cgi.fix_pathinfo=1 - -; if cgi.discard_path is enabled, the PHP CGI binary can safely be placed outside -; of the web tree and people will not be able to circumvent .htaccess security. -; http://php.net/cgi.dicard-path -;cgi.discard_path=1 - -; FastCGI under IIS (on WINNT based OS) supports the ability to impersonate -; security tokens of the calling client. This allows IIS to define the -; security context that the request runs under. mod_fastcgi under Apache -; does not currently support this feature (03/17/2002) -; Set to 1 if running under IIS. Default is zero. -; http://php.net/fastcgi.impersonate -;fastcgi.impersonate = 1 - -; Disable logging through FastCGI connection. PHP's default behavior is to enable -; this feature. -;fastcgi.logging = 0 - -; cgi.rfc2616_headers configuration option tells PHP what type of headers to -; use when sending HTTP response code. If set to 0, PHP sends Status: header that -; is supported by Apache. When this option is set to 1, PHP will send -; RFC2616 compliant header. -; Default is zero. -; http://php.net/cgi.rfc2616-headers -;cgi.rfc2616_headers = 0 - -; cgi.check_shebang_line controls whether CGI PHP checks for line starting with #! -; (shebang) at the top of the running script. This line might be needed if the -; script support running both as stand-alone script and via PHP CGI<. PHP in CGI -; mode skips this line and ignores its content if this directive is turned on. -; http://php.net/cgi.check-shebang-line -;cgi.check_shebang_line=1 - -;;;;;;;;;;;;;;;; -; File Uploads ; -;;;;;;;;;;;;;;;; - -; Whether to allow HTTP file uploads. -; http://php.net/file-uploads -file_uploads = On - -; Temporary directory for HTTP uploaded files (will use system default if not -; specified). -; http://php.net/upload-tmp-dir -;upload_tmp_dir = - -; Maximum allowed size for uploaded files. -; http://php.net/upload-max-filesize -upload_max_filesize = 50M - -; Maximum number of files that can be uploaded via a single request -max_file_uploads = 20 - -;;;;;;;;;;;;;;;;;; -; Fopen wrappers ; -;;;;;;;;;;;;;;;;;; - -; Whether to allow the treatment of URLs (like http:// or ftp://) as files. -; http://php.net/allow-url-fopen -allow_url_fopen = On - -; Whether to allow include/require to open URLs (like http:// or ftp://) as files. -; http://php.net/allow-url-include -allow_url_include = Off - -; Define the anonymous ftp password (your email address). PHP's default setting -; for this is empty. -; http://php.net/from -;from="john@doe.com" - -; Define the User-Agent string. PHP's default setting for this is empty. -; http://php.net/user-agent -;user_agent="PHP" - -; Default timeout for socket based streams (seconds) -; http://php.net/default-socket-timeout -default_socket_timeout = 60 - -; If your scripts have to deal with files from Macintosh systems, -; or you are running on a Mac and need to deal with files from -; unix or win32 systems, setting this flag will cause PHP to -; automatically detect the EOL character in those files so that -; fgets() and file() will work regardless of the source of the file. -; http://php.net/auto-detect-line-endings -;auto_detect_line_endings = Off - -;;;;;;;;;;;;;;;;;;;;;; -; Dynamic Extensions ; -;;;;;;;;;;;;;;;;;;;;;; - -; If you wish to have an extension loaded automatically, use the following -; syntax: -; -; extension=modulename.extension -; -; For example, on Windows: -; -; extension=mysqli.dll -; -; ... or under UNIX: -; -; extension=mysqli.so -; -; ... or with a path: -; -; extension=/path/to/extension/mysqli.so -; -; If you only provide the name of the extension, PHP will look for it in its -; default extension directory. -; -; Windows Extensions -; Note that ODBC support is built in, so no dll is needed for it. -; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5+) -; extension folders as well as the separate PECL DLL download (PHP 5+). -; Be sure to appropriately set the extension_dir directive. -; -;extension=php_bz2.dll -;extension=php_curl.dll -;extension=php_fileinfo.dll -;extension=php_ftp.dll -;extension=php_gd2.dll -;extension=php_gettext.dll -;extension=php_gmp.dll -;extension=php_intl.dll -;extension=php_imap.dll -;extension=php_interbase.dll -;extension=php_ldap.dll -;extension=php_mbstring.dll -;extension=php_exif.dll ; Must be after mbstring as it depends on it -;extension=php_mysqli.dll -;extension=php_oci8_12c.dll ; Use with Oracle Database 12c Instant Client -;extension=php_openssl.dll -;extension=php_pdo_firebird.dll -;extension=php_pdo_mysql.dll -;extension=php_pdo_oci.dll -;extension=php_pdo_odbc.dll -;extension=php_pdo_pgsql.dll -;extension=php_pdo_sqlite.dll -;extension=php_pgsql.dll -;extension=php_shmop.dll - -; The MIBS data available in the PHP distribution must be installed. -; See http://www.php.net/manual/en/snmp.installation.php -;extension=php_snmp.dll - -;extension=php_soap.dll -;extension=php_sockets.dll -;extension=php_sqlite3.dll -;extension=php_tidy.dll -;extension=php_xmlrpc.dll -;extension=php_xsl.dll - -;;;;;;;;;;;;;;;;;;; -; Module Settings ; -;;;;;;;;;;;;;;;;;;; - -[CLI Server] -; Whether the CLI web server uses ANSI color coding in its terminal output. -cli_server.color = On - -[Date] -; Defines the default timezone used by the date functions -; http://php.net/date.timezone -date.timezone = Asia/Shanghai - -; http://php.net/date.default-latitude -;date.default_latitude = 31.7667 - -; http://php.net/date.default-longitude -;date.default_longitude = 35.2333 - -; http://php.net/date.sunrise-zenith -;date.sunrise_zenith = 90.583333 - -; http://php.net/date.sunset-zenith -;date.sunset_zenith = 90.583333 - -[filter] -; http://php.net/filter.default -;filter.default = unsafe_raw - -; http://php.net/filter.default-flags -;filter.default_flags = - -[iconv] -; Use of this INI entry is deprecated, use global input_encoding instead. -; If empty, default_charset or input_encoding or iconv.input_encoding is used. -; The precedence is: default_charset < intput_encoding < iconv.input_encoding -;iconv.input_encoding = - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;iconv.internal_encoding = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; If empty, default_charset or output_encoding or iconv.output_encoding is used. -; The precedence is: default_charset < output_encoding < iconv.output_encoding -; To use an output encoding conversion, iconv's output handler must be set -; otherwise output encoding conversion cannot be performed. -;iconv.output_encoding = - -[intl] -;intl.default_locale = -; This directive allows you to produce PHP errors when some error -; happens within intl functions. The value is the level of the error produced. -; Default is 0, which does not produce any errors. -;intl.error_level = E_WARNING -;intl.use_exceptions = 0 - -[sqlite3] -;sqlite3.extension_dir = - -[Pcre] -;PCRE library backtracking limit. -; http://php.net/pcre.backtrack-limit -;pcre.backtrack_limit=100000 - -;PCRE library recursion limit. -;Please note that if you set this value to a high number you may consume all -;the available process stack and eventually crash PHP (due to reaching the -;stack size limit imposed by the Operating System). -; http://php.net/pcre.recursion-limit -;pcre.recursion_limit=100000 - -;Enables or disables JIT compilation of patterns. This requires the PCRE -;library to be compiled with JIT support. -;pcre.jit=1 - -[Pdo] -; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off" -; http://php.net/pdo-odbc.connection-pooling -;pdo_odbc.connection_pooling=strict - -;pdo_odbc.db2_instance_name - -[Pdo_mysql] -; If mysqlnd is used: Number of cache slots for the internal result set cache -; http://php.net/pdo_mysql.cache_size -pdo_mysql.cache_size = 2000 - -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -; http://php.net/pdo_mysql.default-socket -pdo_mysql.default_socket= - -[Phar] -; http://php.net/phar.readonly -;phar.readonly = On - -; http://php.net/phar.require-hash -;phar.require_hash = On - -;phar.cache_list = - -[mail function] -; For Win32 only. -; http://php.net/smtp -SMTP = localhost -; http://php.net/smtp-port -smtp_port = 25 - -; For Win32 only. -; http://php.net/sendmail-from -;sendmail_from = me@example.com - -; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). -; http://php.net/sendmail-path -;sendmail_path = - -; Force the addition of the specified parameters to be passed as extra parameters -; to the sendmail binary. These parameters will always replace the value of -; the 5th parameter to mail(). -;mail.force_extra_parameters = - -; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename -mail.add_x_header = On - -; The path to a log file that will log all mail() calls. Log entries include -; the full path of the script, line number, To address and headers. -;mail.log = -; Log mail to syslog (Event Log on Windows). -;mail.log = syslog - -[ODBC] -; http://php.net/odbc.default-db -;odbc.default_db = Not yet implemented - -; http://php.net/odbc.default-user -;odbc.default_user = Not yet implemented - -; http://php.net/odbc.default-pw -;odbc.default_pw = Not yet implemented - -; Controls the ODBC cursor model. -; Default: SQL_CURSOR_STATIC (default). -;odbc.default_cursortype - -; Allow or prevent persistent links. -; http://php.net/odbc.allow-persistent -odbc.allow_persistent = On - -; Check that a connection is still valid before reuse. -; http://php.net/odbc.check-persistent -odbc.check_persistent = On - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/odbc.max-persistent -odbc.max_persistent = -1 - -; Maximum number of links (persistent + non-persistent). -1 means no limit. -; http://php.net/odbc.max-links -odbc.max_links = -1 - -; Handling of LONG fields. Returns number of bytes to variables. 0 means -; passthru. -; http://php.net/odbc.defaultlrl -odbc.defaultlrl = 4096 - -; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char. -; See the documentation on odbc_binmode and odbc_longreadlen for an explanation -; of odbc.defaultlrl and odbc.defaultbinmode -; http://php.net/odbc.defaultbinmode -odbc.defaultbinmode = 1 - -;birdstep.max_links = -1 - -[Interbase] -; Allow or prevent persistent links. -ibase.allow_persistent = 1 - -; Maximum number of persistent links. -1 means no limit. -ibase.max_persistent = -1 - -; Maximum number of links (persistent + non-persistent). -1 means no limit. -ibase.max_links = -1 - -; Default database name for ibase_connect(). -;ibase.default_db = - -; Default username for ibase_connect(). -;ibase.default_user = - -; Default password for ibase_connect(). -;ibase.default_password = - -; Default charset for ibase_connect(). -;ibase.default_charset = - -; Default timestamp format. -ibase.timestampformat = "%Y-%m-%d %H:%M:%S" - -; Default date format. -ibase.dateformat = "%Y-%m-%d" - -; Default time format. -ibase.timeformat = "%H:%M:%S" - -[MySQLi] - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/mysqli.max-persistent -mysqli.max_persistent = -1 - -; Allow accessing, from PHP's perspective, local files with LOAD DATA statements -; http://php.net/mysqli.allow_local_infile -;mysqli.allow_local_infile = On - -; Allow or prevent persistent links. -; http://php.net/mysqli.allow-persistent -mysqli.allow_persistent = On - -; Maximum number of links. -1 means no limit. -; http://php.net/mysqli.max-links -mysqli.max_links = -1 - -; If mysqlnd is used: Number of cache slots for the internal result set cache -; http://php.net/mysqli.cache_size -mysqli.cache_size = 2000 - -; Default port number for mysqli_connect(). If unset, mysqli_connect() will use -; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the -; compile-time value defined MYSQL_PORT (in that order). Win32 will only look -; at MYSQL_PORT. -; http://php.net/mysqli.default-port -mysqli.default_port = 3306 - -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -; http://php.net/mysqli.default-socket -mysqli.default_socket = - -; Default host for mysql_connect() (doesn't apply in safe mode). -; http://php.net/mysqli.default-host -mysqli.default_host = - -; Default user for mysql_connect() (doesn't apply in safe mode). -; http://php.net/mysqli.default-user -mysqli.default_user = - -; Default password for mysqli_connect() (doesn't apply in safe mode). -; Note that this is generally a *bad* idea to store passwords in this file. -; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw") -; and reveal this password! And of course, any users with read access to this -; file will be able to reveal the password as well. -; http://php.net/mysqli.default-pw -mysqli.default_pw = - -; Allow or prevent reconnect -mysqli.reconnect = Off - -[mysqlnd] -; Enable / Disable collection of general statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -; http://php.net/mysqlnd.collect_statistics -mysqlnd.collect_statistics = On - -; Enable / Disable collection of memory usage statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -; http://php.net/mysqlnd.collect_memory_statistics -mysqlnd.collect_memory_statistics = Off - -; Records communication from all extensions using mysqlnd to the specified log -; file. -; http://php.net/mysqlnd.debug -;mysqlnd.debug = - -; Defines which queries will be logged. -; http://php.net/mysqlnd.log_mask -;mysqlnd.log_mask = 0 - -; Default size of the mysqlnd memory pool, which is used by result sets. -; http://php.net/mysqlnd.mempool_default_size -;mysqlnd.mempool_default_size = 16000 - -; Size of a pre-allocated buffer used when sending commands to MySQL in bytes. -; http://php.net/mysqlnd.net_cmd_buffer_size -;mysqlnd.net_cmd_buffer_size = 2048 - -; Size of a pre-allocated buffer used for reading data sent by the server in -; bytes. -; http://php.net/mysqlnd.net_read_buffer_size -;mysqlnd.net_read_buffer_size = 32768 - -; Timeout for network requests in seconds. -; http://php.net/mysqlnd.net_read_timeout -;mysqlnd.net_read_timeout = 31536000 - -; SHA-256 Authentication Plugin related. File with the MySQL server public RSA -; key. -; http://php.net/mysqlnd.sha256_server_public_key -;mysqlnd.sha256_server_public_key = - -[OCI8] - -; Connection: Enables privileged connections using external -; credentials (OCI_SYSOPER, OCI_SYSDBA) -; http://php.net/oci8.privileged-connect -;oci8.privileged_connect = Off - -; Connection: The maximum number of persistent OCI8 connections per -; process. Using -1 means no limit. -; http://php.net/oci8.max-persistent -;oci8.max_persistent = -1 - -; Connection: The maximum number of seconds a process is allowed to -; maintain an idle persistent connection. Using -1 means idle -; persistent connections will be maintained forever. -; http://php.net/oci8.persistent-timeout -;oci8.persistent_timeout = -1 - -; Connection: The number of seconds that must pass before issuing a -; ping during oci_pconnect() to check the connection validity. When -; set to 0, each oci_pconnect() will cause a ping. Using -1 disables -; pings completely. -; http://php.net/oci8.ping-interval -;oci8.ping_interval = 60 - -; Connection: Set this to a user chosen connection class to be used -; for all pooled server requests with Oracle 11g Database Resident -; Connection Pooling (DRCP). To use DRCP, this value should be set to -; the same string for all web servers running the same application, -; the database pool must be configured, and the connection string must -; specify to use a pooled server. -;oci8.connection_class = - -; High Availability: Using On lets PHP receive Fast Application -; Notification (FAN) events generated when a database node fails. The -; database must also be configured to post FAN events. -;oci8.events = Off - -; Tuning: This option enables statement caching, and specifies how -; many statements to cache. Using 0 disables statement caching. -; http://php.net/oci8.statement-cache-size -;oci8.statement_cache_size = 20 - -; Tuning: Enables statement prefetching and sets the default number of -; rows that will be fetched automatically after statement execution. -; http://php.net/oci8.default-prefetch -;oci8.default_prefetch = 100 - -; Compatibility. Using On means oci_close() will not close -; oci_connect() and oci_new_connect() connections. -; http://php.net/oci8.old-oci-close-semantics -;oci8.old_oci_close_semantics = Off - -[PostgreSQL] -; Allow or prevent persistent links. -; http://php.net/pgsql.allow-persistent -pgsql.allow_persistent = On - -; Detect broken persistent links always with pg_pconnect(). -; Auto reset feature requires a little overheads. -; http://php.net/pgsql.auto-reset-persistent -pgsql.auto_reset_persistent = Off - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/pgsql.max-persistent -pgsql.max_persistent = -1 - -; Maximum number of links (persistent+non persistent). -1 means no limit. -; http://php.net/pgsql.max-links -pgsql.max_links = -1 - -; Ignore PostgreSQL backends Notice message or not. -; Notice message logging require a little overheads. -; http://php.net/pgsql.ignore-notice -pgsql.ignore_notice = 0 - -; Log PostgreSQL backends Notice message or not. -; Unless pgsql.ignore_notice=0, module cannot log notice message. -; http://php.net/pgsql.log-notice -pgsql.log_notice = 0 - -[bcmath] -; Number of decimal digits for all bcmath functions. -; http://php.net/bcmath.scale -bcmath.scale = 0 - -[browscap] -; http://php.net/browscap -;browscap = extra/browscap.ini - -[Session] -; Handler used to store/retrieve data. -; http://php.net/session.save-handler -session.save_handler = files - -; Argument passed to save_handler. In the case of files, this is the path -; where data files are stored. Note: Windows users have to change this -; variable in order to use PHP's session functions. -; -; The path can be defined as: -; -; session.save_path = "N;/path" -; -; where N is an integer. Instead of storing all the session files in -; /path, what this will do is use subdirectories N-levels deep, and -; store the session data in those directories. This is useful if -; your OS has problems with many files in one directory, and is -; a more efficient layout for servers that handle many sessions. -; -; NOTE 1: PHP will not create this directory structure automatically. -; You can use the script in the ext/session dir for that purpose. -; NOTE 2: See the section on garbage collection below if you choose to -; use subdirectories for session storage -; -; The file storage module creates files using mode 600 by default. -; You can change that by using -; -; session.save_path = "N;MODE;/path" -; -; where MODE is the octal representation of the mode. Note that this -; does not overwrite the process's umask. -; http://php.net/session.save-path -;session.save_path = "/tmp" - -; Whether to use strict session mode. -; Strict session mode does not accept uninitialized session ID and regenerate -; session ID if browser sends uninitialized session ID. Strict mode protects -; applications from session fixation via session adoption vulnerability. It is -; disabled by default for maximum compatibility, but enabling it is encouraged. -; https://wiki.php.net/rfc/strict_sessions -session.use_strict_mode = 0 - -; Whether to use cookies. -; http://php.net/session.use-cookies -session.use_cookies = 1 - -; http://php.net/session.cookie-secure -;session.cookie_secure = - -; This option forces PHP to fetch and use a cookie for storing and maintaining -; the session id. We encourage this operation as it's very helpful in combating -; session hijacking when not specifying and managing your own session id. It is -; not the be-all and end-all of session hijacking defense, but it's a good start. -; http://php.net/session.use-only-cookies -session.use_only_cookies = 1 - -; Name of the session (used as cookie name). -; http://php.net/session.name -session.name = PHPSESSID - -; Initialize session on request startup. -; http://php.net/session.auto-start -session.auto_start = 0 - -; Lifetime in seconds of cookie or, if 0, until browser is restarted. -; http://php.net/session.cookie-lifetime -session.cookie_lifetime = 0 - -; The path for which the cookie is valid. -; http://php.net/session.cookie-path -session.cookie_path = / - -; The domain for which the cookie is valid. -; http://php.net/session.cookie-domain -session.cookie_domain = - -; Whether or not to add the httpOnly flag to the cookie, which makes it inaccessible to browser scripting languages such as JavaScript. -; http://php.net/session.cookie-httponly -session.cookie_httponly = - -; Handler used to serialize data. php is the standard serializer of PHP. -; http://php.net/session.serialize-handler -session.serialize_handler = php - -; Defines the probability that the 'garbage collection' process is started -; on every session initialization. The probability is calculated by using -; gc_probability/gc_divisor. Where session.gc_probability is the numerator -; and gc_divisor is the denominator in the equation. Setting this value to 1 -; when the session.gc_divisor value is 100 will give you approximately a 1% chance -; the gc will run on any give request. -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; http://php.net/session.gc-probability -session.gc_probability = 1 - -; Defines the probability that the 'garbage collection' process is started on every -; session initialization. The probability is calculated by using the following equation: -; gc_probability/gc_divisor. Where session.gc_probability is the numerator and -; session.gc_divisor is the denominator in the equation. Setting this value to 1 -; when the session.gc_divisor value is 100 will give you approximately a 1% chance -; the gc will run on any give request. Increasing this value to 1000 will give you -; a 0.1% chance the gc will run on any give request. For high volume production servers, -; this is a more efficient approach. -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 -; http://php.net/session.gc-divisor -session.gc_divisor = 1000 - -; After this number of seconds, stored data will be seen as 'garbage' and -; cleaned up by the garbage collection process. -; http://php.net/session.gc-maxlifetime -session.gc_maxlifetime = 1440 - -; NOTE: If you are using the subdirectory option for storing session files -; (see session.save_path above), then garbage collection does *not* -; happen automatically. You will need to do your own garbage -; collection through a shell script, cron entry, or some other method. -; For example, the following script would is the equivalent of -; setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes): -; find /path/to/sessions -cmin +24 -type f | xargs rm - -; Check HTTP Referer to invalidate externally stored URLs containing ids. -; HTTP_REFERER has to contain this substring for the session to be -; considered as valid. -; http://php.net/session.referer-check -session.referer_check = - -; Set to {nocache,private,public,} to determine HTTP caching aspects -; or leave this empty to avoid sending anti-caching headers. -; http://php.net/session.cache-limiter -session.cache_limiter = nocache - -; Document expires after n minutes. -; http://php.net/session.cache-expire -session.cache_expire = 180 - -; trans sid support is disabled by default. -; Use of trans sid may risk your users' security. -; Use this option with caution. -; - User may send URL contains active session ID -; to other person via. email/irc/etc. -; - URL that contains active session ID may be stored -; in publicly accessible computer. -; - User may access your site with the same session ID -; always using URL stored in browser's history or bookmarks. -; http://php.net/session.use-trans-sid -session.use_trans_sid = 0 - -; Set session ID character length. This value could be between 22 to 256. -; Shorter length than default is supported only for compatibility reason. -; Users should use 32 or more chars. -; http://php.net/session.sid-length -; Default Value: 32 -; Development Value: 26 -; Production Value: 26 -session.sid_length = 26 - -; The URL rewriter will look for URLs in a defined set of HTML tags. -; is special; if you include them here, the rewriter will -; add a hidden field with the info which is otherwise appended -; to URLs. tag's action attribute URL will not be modified -; unless it is specified. -; Note that all valid entries require a "=", even if no value follows. -; Default Value: "a=href,area=href,frame=src,form=" -; Development Value: "a=href,area=href,frame=src,form=" -; Production Value: "a=href,area=href,frame=src,form=" -; http://php.net/url-rewriter.tags -session.trans_sid_tags = "a=href,area=href,frame=src,form=" - -; URL rewriter does not rewrite absolute URLs by default. -; To enable rewrites for absolute pathes, target hosts must be specified -; at RUNTIME. i.e. use ini_set() -; tags is special. PHP will check action attribute's URL regardless -; of session.trans_sid_tags setting. -; If no host is defined, HTTP_HOST will be used for allowed host. -; Example value: php.net,www.php.net,wiki.php.net -; Use "," for multiple hosts. No spaces are allowed. -; Default Value: "" -; Development Value: "" -; Production Value: "" -;session.trans_sid_hosts="" - -; Define how many bits are stored in each character when converting -; the binary hash data to something readable. -; Possible values: -; 4 (4 bits: 0-9, a-f) -; 5 (5 bits: 0-9, a-v) -; 6 (6 bits: 0-9, a-z, A-Z, "-", ",") -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 -; http://php.net/session.hash-bits-per-character -session.sid_bits_per_character = 5 - -; Enable upload progress tracking in $_SESSION -; Default Value: On -; Development Value: On -; Production Value: On -; http://php.net/session.upload-progress.enabled -;session.upload_progress.enabled = On - -; Cleanup the progress information as soon as all POST data has been read -; (i.e. upload completed). -; Default Value: On -; Development Value: On -; Production Value: On -; http://php.net/session.upload-progress.cleanup -;session.upload_progress.cleanup = On - -; A prefix used for the upload progress key in $_SESSION -; Default Value: "upload_progress_" -; Development Value: "upload_progress_" -; Production Value: "upload_progress_" -; http://php.net/session.upload-progress.prefix -;session.upload_progress.prefix = "upload_progress_" - -; The index name (concatenated with the prefix) in $_SESSION -; containing the upload progress information -; Default Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Development Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Production Value: "PHP_SESSION_UPLOAD_PROGRESS" -; http://php.net/session.upload-progress.name -;session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS" - -; How frequently the upload progress should be updated. -; Given either in percentages (per-file), or in bytes -; Default Value: "1%" -; Development Value: "1%" -; Production Value: "1%" -; http://php.net/session.upload-progress.freq -;session.upload_progress.freq = "1%" - -; The minimum delay between updates, in seconds -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; http://php.net/session.upload-progress.min-freq -;session.upload_progress.min_freq = "1" - -; Only write session data when session data is changed. Enabled by default. -; http://php.net/session.lazy-write -;session.lazy_write = On - -[Assertion] -; Switch whether to compile assertions at all (to have no overhead at run-time) -; -1: Do not compile at all -; 0: Jump over assertion at run-time -; 1: Execute assertions -; Changing from or to a negative value is only possible in php.ini! (For turning assertions on and off at run-time, see assert.active, when zend.assertions = 1) -; Default Value: 1 -; Development Value: 1 -; Production Value: -1 -; http://php.net/zend.assertions -zend.assertions = -1 - -; Assert(expr); active by default. -; http://php.net/assert.active -;assert.active = On - -; Throw an AssertationException on failed assertions -; http://php.net/assert.exception -;assert.exception = On - -; Issue a PHP warning for each failed assertion. (Overridden by assert.exception if active) -; http://php.net/assert.warning -;assert.warning = On - -; Don't bail out by default. -; http://php.net/assert.bail -;assert.bail = Off - -; User-function to be called if an assertion fails. -; http://php.net/assert.callback -;assert.callback = 0 - -; Eval the expression with current error_reporting(). Set to true if you want -; error_reporting(0) around the eval(). -; http://php.net/assert.quiet-eval -;assert.quiet_eval = 0 - -[COM] -; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs -; http://php.net/com.typelib-file -;com.typelib_file = - -; allow Distributed-COM calls -; http://php.net/com.allow-dcom -;com.allow_dcom = true - -; autoregister constants of a components typlib on com_load() -; http://php.net/com.autoregister-typelib -;com.autoregister_typelib = true - -; register constants casesensitive -; http://php.net/com.autoregister-casesensitive -;com.autoregister_casesensitive = false - -; show warnings on duplicate constant registrations -; http://php.net/com.autoregister-verbose -;com.autoregister_verbose = true - -; The default character set code-page to use when passing strings to and from COM objects. -; Default: system ANSI code page -;com.code_page= - -[mbstring] -; language for internal character representation. -; This affects mb_send_mail() and mbstring.detect_order. -; http://php.net/mbstring.language -;mbstring.language = Japanese - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; internal/script encoding. -; Some encoding cannot work as internal encoding. (e.g. SJIS, BIG5, ISO-2022-*) -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;mbstring.internal_encoding = - -; Use of this INI entry is deprecated, use global input_encoding instead. -; http input encoding. -; mbstring.encoding_traslation = On is needed to use this setting. -; If empty, default_charset or input_encoding or mbstring.input is used. -; The precedence is: default_charset < intput_encoding < mbsting.http_input -; http://php.net/mbstring.http-input -;mbstring.http_input = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; http output encoding. -; mb_output_handler must be registered as output buffer to function. -; If empty, default_charset or output_encoding or mbstring.http_output is used. -; The precedence is: default_charset < output_encoding < mbstring.http_output -; To use an output encoding conversion, mbstring's output handler must be set -; otherwise output encoding conversion cannot be performed. -; http://php.net/mbstring.http-output -;mbstring.http_output = - -; enable automatic encoding translation according to -; mbstring.internal_encoding setting. Input chars are -; converted to internal encoding by setting this to On. -; Note: Do _not_ use automatic encoding translation for -; portable libs/applications. -; http://php.net/mbstring.encoding-translation -;mbstring.encoding_translation = Off - -; automatic encoding detection order. -; "auto" detect order is changed according to mbstring.language -; http://php.net/mbstring.detect-order -;mbstring.detect_order = auto - -; substitute_character used when character cannot be converted -; one from another -; http://php.net/mbstring.substitute-character -;mbstring.substitute_character = none - -; overload(replace) single byte functions by mbstring functions. -; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(), -; etc. Possible values are 0,1,2,4 or combination of them. -; For example, 7 for overload everything. -; 0: No overload -; 1: Overload mail() function -; 2: Overload str*() functions -; 4: Overload ereg*() functions -; http://php.net/mbstring.func-overload -;mbstring.func_overload = 0 - -; enable strict encoding detection. -; Default: Off -;mbstring.strict_detection = On - -; This directive specifies the regex pattern of content types for which mb_output_handler() -; is activated. -; Default: mbstring.http_output_conv_mimetype=^(text/|application/xhtml\+xml) -;mbstring.http_output_conv_mimetype= - -[gd] -; Tell the jpeg decode to ignore warnings and try to create -; a gd image. The warning will then be displayed as notices -; disabled by default -; http://php.net/gd.jpeg-ignore-warning -;gd.jpeg_ignore_warning = 1 - -[exif] -; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS. -; With mbstring support this will automatically be converted into the encoding -; given by corresponding encode setting. When empty mbstring.internal_encoding -; is used. For the decode settings you can distinguish between motorola and -; intel byte order. A decode setting cannot be empty. -; http://php.net/exif.encode-unicode -;exif.encode_unicode = ISO-8859-15 - -; http://php.net/exif.decode-unicode-motorola -;exif.decode_unicode_motorola = UCS-2BE - -; http://php.net/exif.decode-unicode-intel -;exif.decode_unicode_intel = UCS-2LE - -; http://php.net/exif.encode-jis -;exif.encode_jis = - -; http://php.net/exif.decode-jis-motorola -;exif.decode_jis_motorola = JIS - -; http://php.net/exif.decode-jis-intel -;exif.decode_jis_intel = JIS - -[Tidy] -; The path to a default tidy configuration file to use when using tidy -; http://php.net/tidy.default-config -;tidy.default_config = /usr/local/lib/php/default.tcfg - -; Should tidy clean and repair output automatically? -; WARNING: Do not use this option if you are generating non-html content -; such as dynamic images -; http://php.net/tidy.clean-output -tidy.clean_output = Off - -[soap] -; Enables or disables WSDL caching feature. -; http://php.net/soap.wsdl-cache-enabled -soap.wsdl_cache_enabled=1 - -; Sets the directory name where SOAP extension will put cache files. -; http://php.net/soap.wsdl-cache-dir -soap.wsdl_cache_dir="/tmp" - -; (time to live) Sets the number of second while cached file will be used -; instead of original one. -; http://php.net/soap.wsdl-cache-ttl -soap.wsdl_cache_ttl=86400 - -; Sets the size of the cache limit. (Max. number of WSDL files to cache) -soap.wsdl_cache_limit = 5 - -[sysvshm] -; A default size of the shared memory segment -;sysvshm.init_mem = 10000 - -[ldap] -; Sets the maximum number of open links or -1 for unlimited. -ldap.max_links = -1 - -[dba] -;dba.default_handler= - -[opcache] -; Determines if Zend OPCache is enabled -;opcache.enable=1 - -; Determines if Zend OPCache is enabled for the CLI version of PHP -;opcache.enable_cli=1 - -; The OPcache shared memory storage size. -;opcache.memory_consumption=128 - -; The amount of memory for interned strings in Mbytes. -;opcache.interned_strings_buffer=8 - -; The maximum number of keys (scripts) in the OPcache hash table. -; Only numbers between 200 and 1000000 are allowed. -;opcache.max_accelerated_files=10000 - -; The maximum percentage of "wasted" memory until a restart is scheduled. -;opcache.max_wasted_percentage=5 - -; When this directive is enabled, the OPcache appends the current working -; directory to the script key, thus eliminating possible collisions between -; files with the same name (basename). Disabling the directive improves -; performance, but may break existing applications. -;opcache.use_cwd=1 - -; When disabled, you must reset the OPcache manually or restart the -; webserver for changes to the filesystem to take effect. -;opcache.validate_timestamps=1 - -; How often (in seconds) to check file timestamps for changes to the shared -; memory storage allocation. ("1" means validate once per second, but only -; once per request. "0" means always validate) -;opcache.revalidate_freq=2 - -; Enables or disables file search in include_path optimization -;opcache.revalidate_path=0 - -; If disabled, all PHPDoc comments are dropped from the code to reduce the -; size of the optimized code. -;opcache.save_comments=1 - -; If enabled, a fast shutdown sequence is used for the accelerated code -; Depending on the used Memory Manager this may cause some incompatibilities. -;opcache.fast_shutdown=0 - -; Allow file existence override (file_exists, etc.) performance feature. -;opcache.enable_file_override=0 - -; A bitmask, where each bit enables or disables the appropriate OPcache -; passes -;opcache.optimization_level=0xffffffff - -;opcache.inherited_hack=1 -;opcache.dups_fix=0 - -; The location of the OPcache blacklist file (wildcards allowed). -; Each OPcache blacklist file is a text file that holds the names of files -; that should not be accelerated. The file format is to add each filename -; to a new line. The filename may be a full path or just a file prefix -; (i.e., /var/www/x blacklists all the files and directories in /var/www -; that start with 'x'). Line starting with a ; are ignored (comments). -;opcache.blacklist_filename= - -; Allows exclusion of large files from being cached. By default all files -; are cached. -;opcache.max_file_size=0 - -; Check the cache checksum each N requests. -; The default value of "0" means that the checks are disabled. -;opcache.consistency_checks=0 - -; How long to wait (in seconds) for a scheduled restart to begin if the cache -; is not being accessed. -;opcache.force_restart_timeout=180 - -; OPcache error_log file name. Empty string assumes "stderr". -;opcache.error_log= - -; All OPcache errors go to the Web server log. -; By default, only fatal errors (level 0) or errors (level 1) are logged. -; You can also enable warnings (level 2), info messages (level 3) or -; debug messages (level 4). -;opcache.log_verbosity_level=1 - -; Preferred Shared Memory back-end. Leave empty and let the system decide. -;opcache.preferred_memory_model= - -; Protect the shared memory from unexpected writing during script execution. -; Useful for internal debugging only. -;opcache.protect_memory=0 - -; Allows calling OPcache API functions only from PHP scripts which path is -; started from specified string. The default "" means no restriction -;opcache.restrict_api= - -; Mapping base of shared memory segments (for Windows only). All the PHP -; processes have to map shared memory into the same address space. This -; directive allows to manually fix the "Unable to reattach to base address" -; errors. -;opcache.mmap_base= - -; Enables and sets the second level cache directory. -; It should improve performance when SHM memory is full, at server restart or -; SHM reset. The default "" disables file based caching. -;opcache.file_cache= - -; Enables or disables opcode caching in shared memory. -;opcache.file_cache_only=0 - -; Enables or disables checksum validation when script loaded from file cache. -;opcache.file_cache_consistency_checks=1 - -; Implies opcache.file_cache_only=1 for a certain process that failed to -; reattach to the shared memory (for Windows only). Explicitly enabled file -; cache is required. -;opcache.file_cache_fallback=1 - -; Enables or disables copying of PHP code (text segment) into HUGE PAGES. -; This should improve performance, but requires appropriate OS configuration. -;opcache.huge_code_pages=1 - -; Validate cached file permissions. -;opcache.validate_permission=0 - -; Prevent name collisions in chroot'ed environment. -;opcache.validate_root=0 - -[curl] -; A default value for the CURLOPT_CAINFO option. This is required to be an -; absolute path. -;curl.cainfo = - -[openssl] -; The location of a Certificate Authority (CA) file on the local filesystem -; to use when verifying the identity of SSL/TLS peers. Most users should -; not specify a value for this directive as PHP will attempt to use the -; OS-managed cert stores in its absence. If specified, this value may still -; be overridden on a per-stream basis via the "cafile" SSL stream context -; option. -;openssl.cafile= - -; If openssl.cafile is not specified or if the CA file is not found, the -; directory pointed to by openssl.capath is searched for a suitable -; certificate. This value must be a correctly hashed certificate directory. -; Most users should not specify a value for this directive as PHP will -; attempt to use the OS-managed cert stores in its absence. If specified, -; this value may still be overridden on a per-stream basis via the "capath" -; SSL stream context option. -;openssl.capath= - -; Local Variables: -; tab-width: 4 -; End: - -[XDebug] -xdebug.remote_enable = 1 -xdebug.remote_handler = "dbgp" -; Set to host.docker.internal on Mac and Windows, otherwise, set to host real ip -xdebug.remote_host = host.docker.internal -;xdebug.remote_port = 9000 -xdebug.remote_log = /var/log/php/xdebug2.log - -SERVER_ENV=develop - -yaf.use_spl_autoload=1 - -[xhprof] -;xhprof.output_dir = /var/log/php/xhprof.log \ No newline at end of file diff --git a/php5/5.6.40/conf/php-fpm.conf b/php5/5.6.40/conf/php-fpm.conf deleted file mode 100644 index 131835891..000000000 --- a/php5/5.6.40/conf/php-fpm.conf +++ /dev/null @@ -1,423 +0,0 @@ -; Start a new pool named 'www'. -; the variable $pool can be used in any directive and will be replaced by the -; pool name ('www' here) -[www] - -; Per pool prefix -; It only applies on the following directives: -; - 'access.log' -; - 'slowlog' -; - 'listen' (unixsocket) -; - 'chroot' -; - 'chdir' -; - 'php_values' -; - 'php_admin_values' -; When not set, the global prefix (or NONE) applies instead. -; Note: This directive can also be relative to the global prefix. -; Default Value: none -;prefix = /path/to/pools/$pool - -; Unix user/group of processes -; Note: The user is mandatory. If the group is not set, the default user's group -; will be used. -user = www-data -group = www-data - -; The address on which to accept FastCGI requests. -; Valid syntaxes are: -; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on -; a specific port; -; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on -; a specific port; -; 'port' - to listen on a TCP socket to all addresses -; (IPv6 and IPv4-mapped) on a specific port; -; '/path/to/unix/socket' - to listen on a unix socket. -; Note: This value is mandatory. -listen = 127.0.0.1:9000 - -; Set listen(2) backlog. -; Default Value: 511 (-1 on FreeBSD and OpenBSD) -;listen.backlog = 511 - -; Set permissions for unix socket, if one is used. In Linux, read/write -; permissions must be set in order to allow connections from a web server. Many -; BSD-derived systems allow connections regardless of permissions. -; Default Values: user and group are set as the running user -; mode is set to 0660 -;listen.owner = www-data -;listen.group = www-data -;listen.mode = 0660 -; When POSIX Access Control Lists are supported you can set them using -; these options, value is a comma separated list of user/group names. -; When set, listen.owner and listen.group are ignored -;listen.acl_users = -;listen.acl_groups = - -; List of addresses (IPv4/IPv6) of FastCGI clients which are allowed to connect. -; Equivalent to the FCGI_WEB_SERVER_ADDRS environment variable in the original -; PHP FCGI (5.2.2+). Makes sense only with a tcp listening socket. Each address -; must be separated by a comma. If this value is left blank, connections will be -; accepted from any ip address. -; Default Value: any -;listen.allowed_clients = 127.0.0.1 - -; Specify the nice(2) priority to apply to the pool processes (only if set) -; The value can vary from -19 (highest priority) to 20 (lower priority) -; Note: - It will only work if the FPM master process is launched as root -; - The pool processes will inherit the master process priority -; unless it specified otherwise -; Default Value: no set -; process.priority = -19 - -; Set the process dumpable flag (PR_SET_DUMPABLE prctl) even if the process user -; or group is differrent than the master process user. It allows to create process -; core dump and ptrace the process for the pool user. -; Default Value: no -; process.dumpable = yes - -; Choose how the process manager will control the number of child processes. -; Possible Values: -; static - a fixed number (pm.max_children) of child processes; -; dynamic - the number of child processes are set dynamically based on the -; following directives. With this process management, there will be -; always at least 1 children. -; pm.max_children - the maximum number of children that can -; be alive at the same time. -; pm.start_servers - the number of children created on startup. -; pm.min_spare_servers - the minimum number of children in 'idle' -; state (waiting to process). If the number -; of 'idle' processes is less than this -; number then some children will be created. -; pm.max_spare_servers - the maximum number of children in 'idle' -; state (waiting to process). If the number -; of 'idle' processes is greater than this -; number then some children will be killed. -; ondemand - no children are created at startup. Children will be forked when -; new requests will connect. The following parameter are used: -; pm.max_children - the maximum number of children that -; can be alive at the same time. -; pm.process_idle_timeout - The number of seconds after which -; an idle process will be killed. -; Note: This value is mandatory. -pm = dynamic - -; The number of child processes to be created when pm is set to 'static' and the -; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'. -; This value sets the limit on the number of simultaneous requests that will be -; served. Equivalent to the ApacheMaxClients directive with mpm_prefork. -; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP -; CGI. The below defaults are based on a server without much resources. Don't -; forget to tweak pm.* to fit your needs. -; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand' -; Note: This value is mandatory. -pm.max_children = 10 - -; The number of child processes created on startup. -; Note: Used only when pm is set to 'dynamic' -; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2 -pm.start_servers = 2 - -; The desired minimum number of idle server processes. -; Note: Used only when pm is set to 'dynamic' -; Note: Mandatory when pm is set to 'dynamic' -pm.min_spare_servers = 1 - -; The desired maximum number of idle server processes. -; Note: Used only when pm is set to 'dynamic' -; Note: Mandatory when pm is set to 'dynamic' -pm.max_spare_servers = 3 - -; The number of seconds after which an idle process will be killed. -; Note: Used only when pm is set to 'ondemand' -; Default Value: 10s -;pm.process_idle_timeout = 10s; - -; The number of requests each child process should execute before respawning. -; This can be useful to work around memory leaks in 3rd party libraries. For -; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS. -; Default Value: 0 -;pm.max_requests = 500 - -; The URI to view the FPM status page. If this value is not set, no URI will be -; recognized as a status page. It shows the following informations: -; pool - the name of the pool; -; process manager - static, dynamic or ondemand; -; start time - the date and time FPM has started; -; start since - number of seconds since FPM has started; -; accepted conn - the number of request accepted by the pool; -; listen queue - the number of request in the queue of pending -; connections (see backlog in listen(2)); -; max listen queue - the maximum number of requests in the queue -; of pending connections since FPM has started; -; listen queue len - the size of the socket queue of pending connections; -; idle processes - the number of idle processes; -; active processes - the number of active processes; -; total processes - the number of idle + active processes; -; max active processes - the maximum number of active processes since FPM -; has started; -; max children reached - number of times, the process limit has been reached, -; when pm tries to start more children (works only for -; pm 'dynamic' and 'ondemand'); -; Value are updated in real time. -; Example output: -; pool: www -; process manager: static -; start time: 01/Jul/2011:17:53:49 +0200 -; start since: 62636 -; accepted conn: 190460 -; listen queue: 0 -; max listen queue: 1 -; listen queue len: 42 -; idle processes: 4 -; active processes: 11 -; total processes: 15 -; max active processes: 12 -; max children reached: 0 -; -; By default the status page output is formatted as text/plain. Passing either -; 'html', 'xml' or 'json' in the query string will return the corresponding -; output syntax. Example: -; http://www.foo.bar/status -; http://www.foo.bar/status?json -; http://www.foo.bar/status?html -; http://www.foo.bar/status?xml -; -; By default the status page only outputs short status. Passing 'full' in the -; query string will also return status for each pool process. -; Example: -; http://www.foo.bar/status?full -; http://www.foo.bar/status?json&full -; http://www.foo.bar/status?html&full -; http://www.foo.bar/status?xml&full -; The Full status returns for each process: -; pid - the PID of the process; -; state - the state of the process (Idle, Running, ...); -; start time - the date and time the process has started; -; start since - the number of seconds since the process has started; -; requests - the number of requests the process has served; -; request duration - the duration in µs of the requests; -; request method - the request method (GET, POST, ...); -; request URI - the request URI with the query string; -; content length - the content length of the request (only with POST); -; user - the user (PHP_AUTH_USER) (or '-' if not set); -; script - the main script called (or '-' if not set); -; last request cpu - the %cpu the last request consumed -; it's always 0 if the process is not in Idle state -; because CPU calculation is done when the request -; processing has terminated; -; last request memory - the max amount of memory the last request consumed -; it's always 0 if the process is not in Idle state -; because memory calculation is done when the request -; processing has terminated; -; If the process is in Idle state, then informations are related to the -; last request the process has served. Otherwise informations are related to -; the current request being served. -; Example output: -; ************************ -; pid: 31330 -; state: Running -; start time: 01/Jul/2011:17:53:49 +0200 -; start since: 63087 -; requests: 12808 -; request duration: 1250261 -; request method: GET -; request URI: /test_mem.php?N=10000 -; content length: 0 -; user: - -; script: /home/fat/web/docs/php/test_mem.php -; last request cpu: 0.00 -; last request memory: 0 -; -; Note: There is a real-time FPM status monitoring sample web page available -; It's available in: /usr/local/share/php/fpm/status.html -; -; Note: The value must start with a leading slash (/). The value can be -; anything, but it may not be a good idea to use the .php extension or it -; may conflict with a real PHP file. -; Default Value: not set -;pm.status_path = /status - -; The ping URI to call the monitoring page of FPM. If this value is not set, no -; URI will be recognized as a ping page. This could be used to test from outside -; that FPM is alive and responding, or to -; - create a graph of FPM availability (rrd or such); -; - remove a server from a group if it is not responding (load balancing); -; - trigger alerts for the operating team (24/7). -; Note: The value must start with a leading slash (/). The value can be -; anything, but it may not be a good idea to use the .php extension or it -; may conflict with a real PHP file. -; Default Value: not set -;ping.path = /ping - -; This directive may be used to customize the response of a ping request. The -; response is formatted as text/plain with a 200 response code. -; Default Value: pong -;ping.response = pong - -; The access log file -; Default: not set -;access.log = log/$pool.access.log - -; The access log format. -; The following syntax is allowed -; %%: the '%' character -; %C: %CPU used by the request -; it can accept the following format: -; - %{user}C for user CPU only -; - %{system}C for system CPU only -; - %{total}C for user + system CPU (default) -; %d: time taken to serve the request -; it can accept the following format: -; - %{seconds}d (default) -; - %{miliseconds}d -; - %{mili}d -; - %{microseconds}d -; - %{micro}d -; %e: an environment variable (same as $_ENV or $_SERVER) -; it must be associated with embraces to specify the name of the env -; variable. Some exemples: -; - server specifics like: %{REQUEST_METHOD}e or %{SERVER_PROTOCOL}e -; - HTTP headers like: %{HTTP_HOST}e or %{HTTP_USER_AGENT}e -; %f: script filename -; %l: content-length of the request (for POST request only) -; %m: request method -; %M: peak of memory allocated by PHP -; it can accept the following format: -; - %{bytes}M (default) -; - %{kilobytes}M -; - %{kilo}M -; - %{megabytes}M -; - %{mega}M -; %n: pool name -; %o: output header -; it must be associated with embraces to specify the name of the header: -; - %{Content-Type}o -; - %{X-Powered-By}o -; - %{Transfert-Encoding}o -; - .... -; %p: PID of the child that serviced the request -; %P: PID of the parent of the child that serviced the request -; %q: the query string -; %Q: the '?' character if query string exists -; %r: the request URI (without the query string, see %q and %Q) -; %R: remote IP address -; %s: status (response code) -; %t: server time the request was received -; it can accept a strftime(3) format: -; %d/%b/%Y:%H:%M:%S %z (default) -; The strftime(3) format must be encapsuled in a %{}t tag -; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t -; %T: time the log has been written (the request has finished) -; it can accept a strftime(3) format: -; %d/%b/%Y:%H:%M:%S %z (default) -; The strftime(3) format must be encapsuled in a %{}t tag -; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t -; %u: remote user -; -; Default: "%R - %u %t \"%m %r\" %s" -;access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%" - -; The log file for slow requests -; Default Value: not set -; Note: slowlog is mandatory if request_slowlog_timeout is set -slowlog = /var/log/php/fpm.slow.log - -; The timeout for serving a single request after which a PHP backtrace will be -; dumped to the 'slowlog' file. A value of '0s' means 'off'. -; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) -; Default Value: 0 -request_slowlog_timeout = 3 - -; Depth of slow log stack trace. -; Default Value: 20 -;request_slowlog_trace_depth = 20 - -; The timeout for serving a single request after which the worker process will -; be killed. This option should be used when the 'max_execution_time' ini option -; does not stop script execution for some reason. A value of '0' means 'off'. -; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) -; Default Value: 0 -;request_terminate_timeout = 0 - -; Set open file descriptor rlimit. -; Default Value: system defined value -;rlimit_files = 1024 - -; Set max core size rlimit. -; Possible Values: 'unlimited' or an integer greater or equal to 0 -; Default Value: system defined value -;rlimit_core = 0 - -; Chroot to this directory at the start. This value must be defined as an -; absolute path. When this value is not set, chroot is not used. -; Note: you can prefix with '$prefix' to chroot to the pool prefix or one -; of its subdirectories. If the pool prefix is not set, the global prefix -; will be used instead. -; Note: chrooting is a great security feature and should be used whenever -; possible. However, all PHP paths will be relative to the chroot -; (error_log, sessions.save_path, ...). -; Default Value: not set -;chroot = - -; Chdir to this directory at the start. -; Note: relative path can be used. -; Default Value: current directory or / when chroot -;chdir = /var/www - -; Redirect worker stdout and stderr into main error log. If not set, stdout and -; stderr will be redirected to /dev/null according to FastCGI specs. -; Note: on highloaded environement, this can cause some delay in the page -; process time (several ms). -; Default Value: no -catch_workers_output = yes - -; Clear environment in FPM workers -; Prevents arbitrary environment variables from reaching FPM worker processes -; by clearing the environment in workers before env vars specified in this -; pool configuration are added. -; Setting to "no" will make all environment variables available to PHP code -; via getenv(), $_ENV and $_SERVER. -; Default Value: yes -;clear_env = no - -; Limits the extensions of the main script FPM will allow to parse. This can -; prevent configuration mistakes on the web server side. You should only limit -; FPM to .php extensions to prevent malicious users to use other extensions to -; execute php code. -; Note: set an empty value to allow all extensions. -; Default Value: .php -;security.limit_extensions = .php .php3 .php4 .php5 .php7 - -; Pass environment variables like LD_LIBRARY_PATH. All $VARIABLEs are taken from -; the current environment. -; Default Value: clean env -;env[HOSTNAME] = $HOSTNAME -;env[PATH] = /usr/local/bin:/usr/bin:/bin -;env[TMP] = /tmp -;env[TMPDIR] = /tmp -;env[TEMP] = /tmp - -; Additional php.ini defines, specific to this pool of workers. These settings -; overwrite the values previously defined in the php.ini. The directives are the -; same as the PHP SAPI: -; php_value/php_flag - you can set classic ini defines which can -; be overwritten from PHP call 'ini_set'. -; php_admin_value/php_admin_flag - these directives won't be overwritten by -; PHP call 'ini_set' -; For php_*flag, valid values are on, off, 1, 0, true, false, yes or no. - -; Defining 'extension' will load the corresponding shared extension from -; extension_dir. Defining 'disable_functions' or 'disable_classes' will not -; overwrite previously defined php.ini values, but will append the new value -; instead. - -; Note: path INI options can be relative and will be expanded with the prefix -; (pool, global or /usr/local) - -; Default Value: nothing is defined by default except the values in php.ini and -; specified at startup with the -d argument -;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com -;php_flag[display_errors] = off -;php_admin_value[error_log] = /var/log/fpm-php.www.log -;php_admin_flag[log_errors] = on -;php_admin_value[memory_limit] = 32M diff --git a/php5/5.6.40/conf/php.ini b/php5/5.6.40/conf/php.ini deleted file mode 100644 index b6b0aee69..000000000 --- a/php5/5.6.40/conf/php.ini +++ /dev/null @@ -1,1933 +0,0 @@ -[PHP] - -;;;;;;;;;;;;;;;;;;; -; About php.ini ; -;;;;;;;;;;;;;;;;;;; -; PHP's initialization file, generally called php.ini, is responsible for -; configuring many of the aspects of PHP's behavior. - -; PHP attempts to find and load this configuration from a number of locations. -; The following is a summary of its search order: -; 1. SAPI module specific location. -; 2. The PHPRC environment variable. (As of PHP 5.2.0) -; 3. A number of predefined registry keys on Windows (As of PHP 5.2.0) -; 4. Current working directory (except CLI) -; 5. The web server's directory (for SAPI modules), or directory of PHP -; (otherwise in Windows) -; 6. The directory from the --with-config-file-path compile time option, or the -; Windows directory (C:\windows or C:\winnt) -; See the PHP docs for more specific information. -; http://php.net/configuration.file - -; The syntax of the file is extremely simple. Whitespace and lines -; beginning with a semicolon are silently ignored (as you probably guessed). -; Section headers (e.g. [Foo]) are also silently ignored, even though -; they might mean something in the future. - -; Directives following the section heading [PATH=/www/mysite] only -; apply to PHP files in the /www/mysite directory. Directives -; following the section heading [HOST=www.example.com] only apply to -; PHP files served from www.example.com. Directives set in these -; special sections cannot be overridden by user-defined INI files or -; at runtime. Currently, [PATH=] and [HOST=] sections only work under -; CGI/FastCGI. -; http://php.net/ini.sections - -; Directives are specified using the following syntax: -; directive = value -; Directive names are *case sensitive* - foo=bar is different from FOO=bar. -; Directives are variables used to configure PHP or PHP extensions. -; There is no name validation. If PHP can't find an expected -; directive because it is not set or is mistyped, a default value will be used. - -; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one -; of the INI constants (On, Off, True, False, Yes, No and None) or an expression -; (e.g. E_ALL & ~E_NOTICE), a quoted string ("bar"), or a reference to a -; previously set variable or directive (e.g. ${foo}) - -; Expressions in the INI file are limited to bitwise operators and parentheses: -; | bitwise OR -; ^ bitwise XOR -; & bitwise AND -; ~ bitwise NOT -; ! boolean NOT - -; Boolean flags can be turned on using the values 1, On, True or Yes. -; They can be turned off using the values 0, Off, False or No. - -; An empty string can be denoted by simply not writing anything after the equal -; sign, or by using the None keyword: - -; foo = ; sets foo to an empty string -; foo = None ; sets foo to an empty string -; foo = "None" ; sets foo to the string 'None' - -; If you use constants in your value, and these constants belong to a -; dynamically loaded extension (either a PHP extension or a Zend extension), -; you may only use these constants *after* the line that loads the extension. - -;;;;;;;;;;;;;;;;;;; -; About this file ; -;;;;;;;;;;;;;;;;;;; -; PHP comes packaged with two INI files. One that is recommended to be used -; in production environments and one that is recommended to be used in -; development environments. - -; php.ini-production contains settings which hold security, performance and -; best practices at its core. But please be aware, these settings may break -; compatibility with older or less security conscience applications. We -; recommending using the production ini in production and testing environments. - -; php.ini-development is very similar to its production variant, except it is -; much more verbose when it comes to errors. We recommend using the -; development version only in development environments, as errors shown to -; application users can inadvertently leak otherwise secure information. - -; This is php.ini-production INI file. - -;;;;;;;;;;;;;;;;;;; -; Quick Reference ; -;;;;;;;;;;;;;;;;;;; -; The following are all the settings which are different in either the production -; or development versions of the INIs with respect to PHP's default behavior. -; Please see the actual settings later in the document for more details as to why -; we recommend these changes in PHP's behavior. - -; display_errors -; Default Value: On -; Development Value: On -; Production Value: Off - -; display_startup_errors -; Default Value: Off -; Development Value: On -; Production Value: Off - -; error_reporting -; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT - -; html_errors -; Default Value: On -; Development Value: On -; Production value: On - -; log_errors -; Default Value: Off -; Development Value: On -; Production Value: On - -; max_input_time -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) - -; output_buffering -; Default Value: Off -; Development Value: 4096 -; Production Value: 4096 - -; register_argc_argv -; Default Value: On -; Development Value: Off -; Production Value: Off - -; request_order -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" - -; session.gc_divisor -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 - -; session.sid_bits_per_character -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 - -; short_open_tag -; Default Value: On -; Development Value: Off -; Production Value: Off - -; track_errors -; Default Value: Off -; Development Value: On -; Production Value: Off - -; variables_order -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS" - -;;;;;;;;;;;;;;;;;;;; -; php.ini Options ; -;;;;;;;;;;;;;;;;;;;; -; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini" -;user_ini.filename = ".user.ini" - -; To disable this feature set this option to empty value -;user_ini.filename = - -; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes) -;user_ini.cache_ttl = 300 - -;;;;;;;;;;;;;;;;;;;; -; Language Options ; -;;;;;;;;;;;;;;;;;;;; - -; Enable the PHP scripting language engine under Apache. -; http://php.net/engine -engine = On - -; This directive determines whether or not PHP will recognize code between -; tags as PHP source which should be processed as such. It is -; generally recommended that should be used and that this feature -; should be disabled, as enabling it may result in issues when generating XML -; documents, however this remains supported for backward compatibility reasons. -; Note that this directive does not control the would work. -; http://php.net/syntax-highlighting -;highlight.string = #DD0000 -;highlight.comment = #FF9900 -;highlight.keyword = #007700 -;highlight.default = #0000BB -;highlight.html = #000000 - -; If enabled, the request will be allowed to complete even if the user aborts -; the request. Consider enabling it if executing long requests, which may end up -; being interrupted by the user or a browser timing out. PHP's default behavior -; is to disable this feature. -; http://php.net/ignore-user-abort -;ignore_user_abort = On - -; Determines the size of the realpath cache to be used by PHP. This value should -; be increased on systems where PHP opens many files to reflect the quantity of -; the file operations performed. -; http://php.net/realpath-cache-size -;realpath_cache_size = 4096k - -; Duration of time, in seconds for which to cache realpath information for a given -; file or directory. For systems with rarely changing files, consider increasing this -; value. -; http://php.net/realpath-cache-ttl -;realpath_cache_ttl = 120 - -; Enables or disables the circular reference collector. -; http://php.net/zend.enable-gc -zend.enable_gc = On - -; If enabled, scripts may be written in encodings that are incompatible with -; the scanner. CP936, Big5, CP949 and Shift_JIS are the examples of such -; encodings. To use this feature, mbstring extension must be enabled. -; Default: Off -;zend.multibyte = Off - -; Allows to set the default encoding for the scripts. This value will be used -; unless "declare(encoding=...)" directive appears at the top of the script. -; Only affects if zend.multibyte is set. -; Default: "" -;zend.script_encoding = - -;;;;;;;;;;;;;;;;; -; Miscellaneous ; -;;;;;;;;;;;;;;;;; - -; Decides whether PHP may expose the fact that it is installed on the server -; (e.g. by adding its signature to the Web server header). It is no security -; threat in any way, but it makes it possible to determine whether you use PHP -; on your server or not. -; http://php.net/expose-php -expose_php = Off - -;;;;;;;;;;;;;;;;;;; -; Resource Limits ; -;;;;;;;;;;;;;;;;;;; - -; Maximum execution time of each script, in seconds -; http://php.net/max-execution-time -; Note: This directive is hardcoded to 0 for the CLI SAPI -max_execution_time = 30 - -; Maximum amount of time each script may spend parsing request data. It's a good -; idea to limit this time on productions servers in order to eliminate unexpectedly -; long running scripts. -; Note: This directive is hardcoded to -1 for the CLI SAPI -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) -; http://php.net/max-input-time -max_input_time = 60 - -; Maximum input variable nesting level -; http://php.net/max-input-nesting-level -;max_input_nesting_level = 64 - -; How many GET/POST/COOKIE input variables may be accepted -; max_input_vars = 1000 - -; Maximum amount of memory a script may consume (128MB) -; http://php.net/memory-limit -memory_limit = 256M - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; Error handling and logging ; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -; This directive informs PHP of which errors, warnings and notices you would like -; it to take action for. The recommended way of setting values for this -; directive is through the use of the error level constants and bitwise -; operators. The error level constants are below here for convenience as well as -; some common settings and their meanings. -; By default, PHP is set to take action on all errors, notices and warnings EXCEPT -; those related to E_NOTICE and E_STRICT, which together cover best practices and -; recommended coding standards in PHP. For performance reasons, this is the -; recommend error reporting setting. Your production server shouldn't be wasting -; resources complaining about best practices and coding standards. That's what -; development servers and development settings are for. -; Note: The php.ini-development file has this setting as E_ALL. This -; means it pretty much reports everything which is exactly what you want during -; development and early testing. -; -; Error Level Constants: -; E_ALL - All errors and warnings (includes E_STRICT as of PHP 5.4.0) -; E_ERROR - fatal run-time errors -; E_RECOVERABLE_ERROR - almost fatal run-time errors -; E_WARNING - run-time warnings (non-fatal errors) -; E_PARSE - compile-time parse errors -; E_NOTICE - run-time notices (these are warnings which often result -; from a bug in your code, but it's possible that it was -; intentional (e.g., using an uninitialized variable and -; relying on the fact it is automatically initialized to an -; empty string) -; E_STRICT - run-time notices, enable to have PHP suggest changes -; to your code which will ensure the best interoperability -; and forward compatibility of your code -; E_CORE_ERROR - fatal errors that occur during PHP's initial startup -; E_CORE_WARNING - warnings (non-fatal errors) that occur during PHP's -; initial startup -; E_COMPILE_ERROR - fatal compile-time errors -; E_COMPILE_WARNING - compile-time warnings (non-fatal errors) -; E_USER_ERROR - user-generated error message -; E_USER_WARNING - user-generated warning message -; E_USER_NOTICE - user-generated notice message -; E_DEPRECATED - warn about code that will not work in future versions -; of PHP -; E_USER_DEPRECATED - user-generated deprecation warnings -; -; Common Values: -; E_ALL (Show all errors, warnings and notices including coding standards.) -; E_ALL & ~E_NOTICE (Show all errors, except for notices) -; E_ALL & ~E_NOTICE & ~E_STRICT (Show all errors, except for notices and coding standards warnings.) -; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors) -; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT -; http://php.net/error-reporting -error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT - -; This directive controls whether or not and where PHP will output errors, -; notices and warnings too. Error output is very useful during development, but -; it could be very dangerous in production environments. Depending on the code -; which is triggering the error, sensitive information could potentially leak -; out of your application such as database usernames and passwords or worse. -; For production environments, we recommend logging errors rather than -; sending them to STDOUT. -; Possible Values: -; Off = Do not display any errors -; stderr = Display errors to STDERR (affects only CGI/CLI binaries!) -; On or stdout = Display errors to STDOUT -; Default Value: On -; Development Value: On -; Production Value: Off -; http://php.net/display-errors -display_errors = Off - -; The display of errors which occur during PHP's startup sequence are handled -; separately from display_errors. PHP's default behavior is to suppress those -; errors from clients. Turning the display of startup errors on can be useful in -; debugging configuration problems. We strongly recommend you -; set this to 'off' for production servers. -; Default Value: Off -; Development Value: On -; Production Value: Off -; http://php.net/display-startup-errors -display_startup_errors = Off - -; Besides displaying errors, PHP can also log errors to locations such as a -; server-specific log, STDERR, or a location specified by the error_log -; directive found below. While errors should not be displayed on productions -; servers they should still be monitored and logging is a great way to do that. -; Default Value: Off -; Development Value: On -; Production Value: On -; http://php.net/log-errors -log_errors = On - -; Set maximum length of log_errors. In error_log information about the source is -; added. The default is 1024 and 0 allows to not apply any maximum length at all. -; http://php.net/log-errors-max-len -log_errors_max_len = 1024 - -; Do not log repeated messages. Repeated errors must occur in same file on same -; line unless ignore_repeated_source is set true. -; http://php.net/ignore-repeated-errors -ignore_repeated_errors = Off - -; Ignore source of message when ignoring repeated messages. When this setting -; is On you will not log errors with repeated messages from different files or -; source lines. -; http://php.net/ignore-repeated-source -ignore_repeated_source = Off - -; If this parameter is set to Off, then memory leaks will not be shown (on -; stdout or in the log). This has only effect in a debug compile, and if -; error reporting includes E_WARNING in the allowed list -; http://php.net/report-memleaks -report_memleaks = On - -; This setting is on by default. -;report_zend_debug = 0 - -; Store the last error/warning message in $php_errormsg (boolean). Setting this value -; to On can assist in debugging and is appropriate for development servers. It should -; however be disabled on production servers. -; Default Value: Off -; Development Value: On -; Production Value: Off -; http://php.net/track-errors -track_errors = Off - -; Turn off normal error reporting and emit XML-RPC error XML -; http://php.net/xmlrpc-errors -;xmlrpc_errors = 0 - -; An XML-RPC faultCode -;xmlrpc_error_number = 0 - -; When PHP displays or logs an error, it has the capability of formatting the -; error message as HTML for easier reading. This directive controls whether -; the error message is formatted as HTML or not. -; Note: This directive is hardcoded to Off for the CLI SAPI -; Default Value: On -; Development Value: On -; Production value: On -; http://php.net/html-errors -html_errors = On - -; If html_errors is set to On *and* docref_root is not empty, then PHP -; produces clickable error messages that direct to a page describing the error -; or function causing the error in detail. -; You can download a copy of the PHP manual from http://php.net/docs -; and change docref_root to the base URL of your local copy including the -; leading '/'. You must also specify the file extension being used including -; the dot. PHP's default behavior is to leave these settings empty, in which -; case no links to documentation are generated. -; Note: Never use this feature for production boxes. -; http://php.net/docref-root -; Examples -;docref_root = "/phpmanual/" - -; http://php.net/docref-ext -;docref_ext = .html - -; String to output before an error message. PHP's default behavior is to leave -; this setting blank. -; http://php.net/error-prepend-string -; Example: -;error_prepend_string = "" - -; String to output after an error message. PHP's default behavior is to leave -; this setting blank. -; http://php.net/error-append-string -; Example: -;error_append_string = "" - -; Log errors to specified file. PHP's default behavior is to leave this value -; empty. -; http://php.net/error-log -; Example: -;error_log = php_errors.log -; Log errors to syslog (Event Log on Windows). -error_log = /var/log/php/php.error.log - -;windows.show_crt_warning -; Default value: 0 -; Development value: 0 -; Production value: 0 - -;;;;;;;;;;;;;;;;; -; Data Handling ; -;;;;;;;;;;;;;;;;; - -; The separator used in PHP generated URLs to separate arguments. -; PHP's default setting is "&". -; http://php.net/arg-separator.output -; Example: -;arg_separator.output = "&" - -; List of separator(s) used by PHP to parse input URLs into variables. -; PHP's default setting is "&". -; NOTE: Every character in this directive is considered as separator! -; http://php.net/arg-separator.input -; Example: -;arg_separator.input = ";&" - -; This directive determines which super global arrays are registered when PHP -; starts up. G,P,C,E & S are abbreviations for the following respective super -; globals: GET, POST, COOKIE, ENV and SERVER. There is a performance penalty -; paid for the registration of these arrays and because ENV is not as commonly -; used as the others, ENV is not recommended on productions servers. You -; can still get access to the environment variables through getenv() should you -; need to. -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS"; -; http://php.net/variables-order -variables_order = "GPCS" - -; This directive determines which super global data (G,P & C) should be -; registered into the super global array REQUEST. If so, it also determines -; the order in which that data is registered. The values for this directive -; are specified in the same manner as the variables_order directive, -; EXCEPT one. Leaving this value empty will cause PHP to use the value set -; in the variables_order directive. It does not mean it will leave the super -; globals array REQUEST empty. -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" -; http://php.net/request-order -request_order = "GP" - -; This directive determines whether PHP registers $argv & $argc each time it -; runs. $argv contains an array of all the arguments passed to PHP when a script -; is invoked. $argc contains an integer representing the number of arguments -; that were passed when the script was invoked. These arrays are extremely -; useful when running scripts from the command line. When this directive is -; enabled, registering these variables consumes CPU cycles and memory each time -; a script is executed. For performance reasons, this feature should be disabled -; on production servers. -; Note: This directive is hardcoded to On for the CLI SAPI -; Default Value: On -; Development Value: Off -; Production Value: Off -; http://php.net/register-argc-argv -register_argc_argv = Off - -; When enabled, the ENV, REQUEST and SERVER variables are created when they're -; first used (Just In Time) instead of when the script starts. If these -; variables are not used within a script, having this directive on will result -; in a performance gain. The PHP directive register_argc_argv must be disabled -; for this directive to have any affect. -; http://php.net/auto-globals-jit -auto_globals_jit = On - -; Whether PHP will read the POST data. -; This option is enabled by default. -; Most likely, you won't want to disable this option globally. It causes $_POST -; and $_FILES to always be empty; the only way you will be able to read the -; POST data will be through the php://input stream wrapper. This can be useful -; to proxy requests or to process the POST data in a memory efficient fashion. -; http://php.net/enable-post-data-reading -;enable_post_data_reading = Off - -; Maximum size of POST data that PHP will accept. -; Its value may be 0 to disable the limit. It is ignored if POST data reading -; is disabled through enable_post_data_reading. -; http://php.net/post-max-size -post_max_size = 100M - -; Automatically add files before PHP document. -; http://php.net/auto-prepend-file -auto_prepend_file = - -; Automatically add files after PHP document. -; http://php.net/auto-append-file -auto_append_file = - -; By default, PHP will output a media type using the Content-Type header. To -; disable this, simply set it to be empty. -; -; PHP's built-in default media type is set to text/html. -; http://php.net/default-mimetype -default_mimetype = "text/html" - -; PHP's default character set is set to UTF-8. -; http://php.net/default-charset -default_charset = "UTF-8" - -; PHP internal character encoding is set to empty. -; If empty, default_charset is used. -; http://php.net/internal-encoding -;internal_encoding = - -; PHP input character encoding is set to empty. -; If empty, default_charset is used. -; http://php.net/input-encoding -;input_encoding = - -; PHP output character encoding is set to empty. -; If empty, default_charset is used. -; See also output_buffer. -; http://php.net/output-encoding -;output_encoding = - -;;;;;;;;;;;;;;;;;;;;;;;;; -; Paths and Directories ; -;;;;;;;;;;;;;;;;;;;;;;;;; - -; UNIX: "/path1:/path2" -;include_path = ".:/php/includes" -; -; Windows: "\path1;\path2" -;include_path = ".;c:\php\includes" -; -; PHP's default setting for include_path is ".;/path/to/php/pear" -; http://php.net/include-path - -; The root of the PHP pages, used only if nonempty. -; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root -; if you are running php as a CGI under any web server (other than IIS) -; see documentation for security issues. The alternate is to use the -; cgi.force_redirect configuration below -; http://php.net/doc-root -doc_root = - -; The directory under which PHP opens the script using /~username used only -; if nonempty. -; http://php.net/user-dir -user_dir = - -; Directory in which the loadable extensions (modules) reside. -; http://php.net/extension-dir -; extension_dir = "./" -; On windows: -; extension_dir = "ext" - -; Directory where the temporary files should be placed. -; Defaults to the system default (see sys_get_temp_dir) -; sys_temp_dir = "/tmp" - -; Whether or not to enable the dl() function. The dl() function does NOT work -; properly in multithreaded servers, such as IIS or Zeus, and is automatically -; disabled on them. -; http://php.net/enable-dl -enable_dl = Off - -; cgi.force_redirect is necessary to provide security running PHP as a CGI under -; most web servers. Left undefined, PHP turns this on by default. You can -; turn it off here AT YOUR OWN RISK -; **You CAN safely turn this off for IIS, in fact, you MUST.** -; http://php.net/cgi.force-redirect -;cgi.force_redirect = 1 - -; if cgi.nph is enabled it will force cgi to always sent Status: 200 with -; every request. PHP's default behavior is to disable this feature. -;cgi.nph = 1 - -; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape -; (iPlanet) web servers, you MAY need to set an environment variable name that PHP -; will look for to know it is OK to continue execution. Setting this variable MAY -; cause security issues, KNOW WHAT YOU ARE DOING FIRST. -; http://php.net/cgi.redirect-status-env -;cgi.redirect_status_env = - -; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's -; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok -; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting -; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting -; of zero causes PHP to behave as before. Default is 1. You should fix your scripts -; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. -; http://php.net/cgi.fix-pathinfo -;cgi.fix_pathinfo=1 - -; if cgi.discard_path is enabled, the PHP CGI binary can safely be placed outside -; of the web tree and people will not be able to circumvent .htaccess security. -; http://php.net/cgi.dicard-path -;cgi.discard_path=1 - -; FastCGI under IIS (on WINNT based OS) supports the ability to impersonate -; security tokens of the calling client. This allows IIS to define the -; security context that the request runs under. mod_fastcgi under Apache -; does not currently support this feature (03/17/2002) -; Set to 1 if running under IIS. Default is zero. -; http://php.net/fastcgi.impersonate -;fastcgi.impersonate = 1 - -; Disable logging through FastCGI connection. PHP's default behavior is to enable -; this feature. -;fastcgi.logging = 0 - -; cgi.rfc2616_headers configuration option tells PHP what type of headers to -; use when sending HTTP response code. If set to 0, PHP sends Status: header that -; is supported by Apache. When this option is set to 1, PHP will send -; RFC2616 compliant header. -; Default is zero. -; http://php.net/cgi.rfc2616-headers -;cgi.rfc2616_headers = 0 - -; cgi.check_shebang_line controls whether CGI PHP checks for line starting with #! -; (shebang) at the top of the running script. This line might be needed if the -; script support running both as stand-alone script and via PHP CGI<. PHP in CGI -; mode skips this line and ignores its content if this directive is turned on. -; http://php.net/cgi.check-shebang-line -;cgi.check_shebang_line=1 - -;;;;;;;;;;;;;;;; -; File Uploads ; -;;;;;;;;;;;;;;;; - -; Whether to allow HTTP file uploads. -; http://php.net/file-uploads -file_uploads = On - -; Temporary directory for HTTP uploaded files (will use system default if not -; specified). -; http://php.net/upload-tmp-dir -;upload_tmp_dir = - -; Maximum allowed size for uploaded files. -; http://php.net/upload-max-filesize -upload_max_filesize = 50M - -; Maximum number of files that can be uploaded via a single request -max_file_uploads = 20 - -;;;;;;;;;;;;;;;;;; -; Fopen wrappers ; -;;;;;;;;;;;;;;;;;; - -; Whether to allow the treatment of URLs (like http:// or ftp://) as files. -; http://php.net/allow-url-fopen -allow_url_fopen = On - -; Whether to allow include/require to open URLs (like http:// or ftp://) as files. -; http://php.net/allow-url-include -allow_url_include = Off - -; Define the anonymous ftp password (your email address). PHP's default setting -; for this is empty. -; http://php.net/from -;from="john@doe.com" - -; Define the User-Agent string. PHP's default setting for this is empty. -; http://php.net/user-agent -;user_agent="PHP" - -; Default timeout for socket based streams (seconds) -; http://php.net/default-socket-timeout -default_socket_timeout = 60 - -; If your scripts have to deal with files from Macintosh systems, -; or you are running on a Mac and need to deal with files from -; unix or win32 systems, setting this flag will cause PHP to -; automatically detect the EOL character in those files so that -; fgets() and file() will work regardless of the source of the file. -; http://php.net/auto-detect-line-endings -;auto_detect_line_endings = Off - -;;;;;;;;;;;;;;;;;;;;;; -; Dynamic Extensions ; -;;;;;;;;;;;;;;;;;;;;;; - -; If you wish to have an extension loaded automatically, use the following -; syntax: -; -; extension=modulename.extension -; -; For example, on Windows: -; -; extension=mysqli.dll -; -; ... or under UNIX: -; -; extension=mysqli.so -; -; ... or with a path: -; -; extension=/path/to/extension/mysqli.so -; -; If you only provide the name of the extension, PHP will look for it in its -; default extension directory. -; -; Windows Extensions -; Note that ODBC support is built in, so no dll is needed for it. -; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5+) -; extension folders as well as the separate PECL DLL download (PHP 5+). -; Be sure to appropriately set the extension_dir directive. -; -;extension=php_bz2.dll -;extension=php_curl.dll -;extension=php_fileinfo.dll -;extension=php_ftp.dll -;extension=php_gd2.dll -;extension=php_gettext.dll -;extension=php_gmp.dll -;extension=php_intl.dll -;extension=php_imap.dll -;extension=php_interbase.dll -;extension=php_ldap.dll -;extension=php_mbstring.dll -;extension=php_exif.dll ; Must be after mbstring as it depends on it -;extension=php_mysqli.dll -;extension=php_oci8_12c.dll ; Use with Oracle Database 12c Instant Client -;extension=php_openssl.dll -;extension=php_pdo_firebird.dll -;extension=php_pdo_mysql.dll -;extension=php_pdo_oci.dll -;extension=php_pdo_odbc.dll -;extension=php_pdo_pgsql.dll -;extension=php_pdo_sqlite.dll -;extension=php_pgsql.dll -;extension=php_shmop.dll - -; The MIBS data available in the PHP distribution must be installed. -; See http://www.php.net/manual/en/snmp.installation.php -;extension=php_snmp.dll - -;extension=php_soap.dll -;extension=php_sockets.dll -;extension=php_sqlite3.dll -;extension=php_tidy.dll -;extension=php_xmlrpc.dll -;extension=php_xsl.dll - -;;;;;;;;;;;;;;;;;;; -; Module Settings ; -;;;;;;;;;;;;;;;;;;; - -[CLI Server] -; Whether the CLI web server uses ANSI color coding in its terminal output. -cli_server.color = On - -[Date] -; Defines the default timezone used by the date functions -; http://php.net/date.timezone -date.timezone = Asia/Shanghai - -; http://php.net/date.default-latitude -;date.default_latitude = 31.7667 - -; http://php.net/date.default-longitude -;date.default_longitude = 35.2333 - -; http://php.net/date.sunrise-zenith -;date.sunrise_zenith = 90.583333 - -; http://php.net/date.sunset-zenith -;date.sunset_zenith = 90.583333 - -[filter] -; http://php.net/filter.default -;filter.default = unsafe_raw - -; http://php.net/filter.default-flags -;filter.default_flags = - -[iconv] -; Use of this INI entry is deprecated, use global input_encoding instead. -; If empty, default_charset or input_encoding or iconv.input_encoding is used. -; The precedence is: default_charset < intput_encoding < iconv.input_encoding -;iconv.input_encoding = - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;iconv.internal_encoding = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; If empty, default_charset or output_encoding or iconv.output_encoding is used. -; The precedence is: default_charset < output_encoding < iconv.output_encoding -; To use an output encoding conversion, iconv's output handler must be set -; otherwise output encoding conversion cannot be performed. -;iconv.output_encoding = - -[intl] -;intl.default_locale = -; This directive allows you to produce PHP errors when some error -; happens within intl functions. The value is the level of the error produced. -; Default is 0, which does not produce any errors. -;intl.error_level = E_WARNING -;intl.use_exceptions = 0 - -[sqlite3] -;sqlite3.extension_dir = - -[Pcre] -;PCRE library backtracking limit. -; http://php.net/pcre.backtrack-limit -;pcre.backtrack_limit=100000 - -;PCRE library recursion limit. -;Please note that if you set this value to a high number you may consume all -;the available process stack and eventually crash PHP (due to reaching the -;stack size limit imposed by the Operating System). -; http://php.net/pcre.recursion-limit -;pcre.recursion_limit=100000 - -;Enables or disables JIT compilation of patterns. This requires the PCRE -;library to be compiled with JIT support. -;pcre.jit=1 - -[Pdo] -; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off" -; http://php.net/pdo-odbc.connection-pooling -;pdo_odbc.connection_pooling=strict - -;pdo_odbc.db2_instance_name - -[Pdo_mysql] -; If mysqlnd is used: Number of cache slots for the internal result set cache -; http://php.net/pdo_mysql.cache_size -pdo_mysql.cache_size = 2000 - -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -; http://php.net/pdo_mysql.default-socket -pdo_mysql.default_socket= - -[Phar] -; http://php.net/phar.readonly -;phar.readonly = On - -; http://php.net/phar.require-hash -;phar.require_hash = On - -;phar.cache_list = - -[mail function] -; For Win32 only. -; http://php.net/smtp -SMTP = localhost -; http://php.net/smtp-port -smtp_port = 25 - -; For Win32 only. -; http://php.net/sendmail-from -;sendmail_from = me@example.com - -; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). -; http://php.net/sendmail-path -;sendmail_path = - -; Force the addition of the specified parameters to be passed as extra parameters -; to the sendmail binary. These parameters will always replace the value of -; the 5th parameter to mail(). -;mail.force_extra_parameters = - -; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename -mail.add_x_header = On - -; The path to a log file that will log all mail() calls. Log entries include -; the full path of the script, line number, To address and headers. -;mail.log = -; Log mail to syslog (Event Log on Windows). -;mail.log = syslog - -[ODBC] -; http://php.net/odbc.default-db -;odbc.default_db = Not yet implemented - -; http://php.net/odbc.default-user -;odbc.default_user = Not yet implemented - -; http://php.net/odbc.default-pw -;odbc.default_pw = Not yet implemented - -; Controls the ODBC cursor model. -; Default: SQL_CURSOR_STATIC (default). -;odbc.default_cursortype - -; Allow or prevent persistent links. -; http://php.net/odbc.allow-persistent -odbc.allow_persistent = On - -; Check that a connection is still valid before reuse. -; http://php.net/odbc.check-persistent -odbc.check_persistent = On - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/odbc.max-persistent -odbc.max_persistent = -1 - -; Maximum number of links (persistent + non-persistent). -1 means no limit. -; http://php.net/odbc.max-links -odbc.max_links = -1 - -; Handling of LONG fields. Returns number of bytes to variables. 0 means -; passthru. -; http://php.net/odbc.defaultlrl -odbc.defaultlrl = 4096 - -; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char. -; See the documentation on odbc_binmode and odbc_longreadlen for an explanation -; of odbc.defaultlrl and odbc.defaultbinmode -; http://php.net/odbc.defaultbinmode -odbc.defaultbinmode = 1 - -;birdstep.max_links = -1 - -[Interbase] -; Allow or prevent persistent links. -ibase.allow_persistent = 1 - -; Maximum number of persistent links. -1 means no limit. -ibase.max_persistent = -1 - -; Maximum number of links (persistent + non-persistent). -1 means no limit. -ibase.max_links = -1 - -; Default database name for ibase_connect(). -;ibase.default_db = - -; Default username for ibase_connect(). -;ibase.default_user = - -; Default password for ibase_connect(). -;ibase.default_password = - -; Default charset for ibase_connect(). -;ibase.default_charset = - -; Default timestamp format. -ibase.timestampformat = "%Y-%m-%d %H:%M:%S" - -; Default date format. -ibase.dateformat = "%Y-%m-%d" - -; Default time format. -ibase.timeformat = "%H:%M:%S" - -[MySQLi] - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/mysqli.max-persistent -mysqli.max_persistent = -1 - -; Allow accessing, from PHP's perspective, local files with LOAD DATA statements -; http://php.net/mysqli.allow_local_infile -;mysqli.allow_local_infile = On - -; Allow or prevent persistent links. -; http://php.net/mysqli.allow-persistent -mysqli.allow_persistent = On - -; Maximum number of links. -1 means no limit. -; http://php.net/mysqli.max-links -mysqli.max_links = -1 - -; If mysqlnd is used: Number of cache slots for the internal result set cache -; http://php.net/mysqli.cache_size -mysqli.cache_size = 2000 - -; Default port number for mysqli_connect(). If unset, mysqli_connect() will use -; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the -; compile-time value defined MYSQL_PORT (in that order). Win32 will only look -; at MYSQL_PORT. -; http://php.net/mysqli.default-port -mysqli.default_port = 3306 - -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -; http://php.net/mysqli.default-socket -mysqli.default_socket = - -; Default host for mysql_connect() (doesn't apply in safe mode). -; http://php.net/mysqli.default-host -mysqli.default_host = - -; Default user for mysql_connect() (doesn't apply in safe mode). -; http://php.net/mysqli.default-user -mysqli.default_user = - -; Default password for mysqli_connect() (doesn't apply in safe mode). -; Note that this is generally a *bad* idea to store passwords in this file. -; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw") -; and reveal this password! And of course, any users with read access to this -; file will be able to reveal the password as well. -; http://php.net/mysqli.default-pw -mysqli.default_pw = - -; Allow or prevent reconnect -mysqli.reconnect = Off - -[mysqlnd] -; Enable / Disable collection of general statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -; http://php.net/mysqlnd.collect_statistics -mysqlnd.collect_statistics = On - -; Enable / Disable collection of memory usage statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -; http://php.net/mysqlnd.collect_memory_statistics -mysqlnd.collect_memory_statistics = Off - -; Records communication from all extensions using mysqlnd to the specified log -; file. -; http://php.net/mysqlnd.debug -;mysqlnd.debug = - -; Defines which queries will be logged. -; http://php.net/mysqlnd.log_mask -;mysqlnd.log_mask = 0 - -; Default size of the mysqlnd memory pool, which is used by result sets. -; http://php.net/mysqlnd.mempool_default_size -;mysqlnd.mempool_default_size = 16000 - -; Size of a pre-allocated buffer used when sending commands to MySQL in bytes. -; http://php.net/mysqlnd.net_cmd_buffer_size -;mysqlnd.net_cmd_buffer_size = 2048 - -; Size of a pre-allocated buffer used for reading data sent by the server in -; bytes. -; http://php.net/mysqlnd.net_read_buffer_size -;mysqlnd.net_read_buffer_size = 32768 - -; Timeout for network requests in seconds. -; http://php.net/mysqlnd.net_read_timeout -;mysqlnd.net_read_timeout = 31536000 - -; SHA-256 Authentication Plugin related. File with the MySQL server public RSA -; key. -; http://php.net/mysqlnd.sha256_server_public_key -;mysqlnd.sha256_server_public_key = - -[OCI8] - -; Connection: Enables privileged connections using external -; credentials (OCI_SYSOPER, OCI_SYSDBA) -; http://php.net/oci8.privileged-connect -;oci8.privileged_connect = Off - -; Connection: The maximum number of persistent OCI8 connections per -; process. Using -1 means no limit. -; http://php.net/oci8.max-persistent -;oci8.max_persistent = -1 - -; Connection: The maximum number of seconds a process is allowed to -; maintain an idle persistent connection. Using -1 means idle -; persistent connections will be maintained forever. -; http://php.net/oci8.persistent-timeout -;oci8.persistent_timeout = -1 - -; Connection: The number of seconds that must pass before issuing a -; ping during oci_pconnect() to check the connection validity. When -; set to 0, each oci_pconnect() will cause a ping. Using -1 disables -; pings completely. -; http://php.net/oci8.ping-interval -;oci8.ping_interval = 60 - -; Connection: Set this to a user chosen connection class to be used -; for all pooled server requests with Oracle 11g Database Resident -; Connection Pooling (DRCP). To use DRCP, this value should be set to -; the same string for all web servers running the same application, -; the database pool must be configured, and the connection string must -; specify to use a pooled server. -;oci8.connection_class = - -; High Availability: Using On lets PHP receive Fast Application -; Notification (FAN) events generated when a database node fails. The -; database must also be configured to post FAN events. -;oci8.events = Off - -; Tuning: This option enables statement caching, and specifies how -; many statements to cache. Using 0 disables statement caching. -; http://php.net/oci8.statement-cache-size -;oci8.statement_cache_size = 20 - -; Tuning: Enables statement prefetching and sets the default number of -; rows that will be fetched automatically after statement execution. -; http://php.net/oci8.default-prefetch -;oci8.default_prefetch = 100 - -; Compatibility. Using On means oci_close() will not close -; oci_connect() and oci_new_connect() connections. -; http://php.net/oci8.old-oci-close-semantics -;oci8.old_oci_close_semantics = Off - -[PostgreSQL] -; Allow or prevent persistent links. -; http://php.net/pgsql.allow-persistent -pgsql.allow_persistent = On - -; Detect broken persistent links always with pg_pconnect(). -; Auto reset feature requires a little overheads. -; http://php.net/pgsql.auto-reset-persistent -pgsql.auto_reset_persistent = Off - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/pgsql.max-persistent -pgsql.max_persistent = -1 - -; Maximum number of links (persistent+non persistent). -1 means no limit. -; http://php.net/pgsql.max-links -pgsql.max_links = -1 - -; Ignore PostgreSQL backends Notice message or not. -; Notice message logging require a little overheads. -; http://php.net/pgsql.ignore-notice -pgsql.ignore_notice = 0 - -; Log PostgreSQL backends Notice message or not. -; Unless pgsql.ignore_notice=0, module cannot log notice message. -; http://php.net/pgsql.log-notice -pgsql.log_notice = 0 - -[bcmath] -; Number of decimal digits for all bcmath functions. -; http://php.net/bcmath.scale -bcmath.scale = 0 - -[browscap] -; http://php.net/browscap -;browscap = extra/browscap.ini - -[Session] -; Handler used to store/retrieve data. -; http://php.net/session.save-handler -session.save_handler = files - -; Argument passed to save_handler. In the case of files, this is the path -; where data files are stored. Note: Windows users have to change this -; variable in order to use PHP's session functions. -; -; The path can be defined as: -; -; session.save_path = "N;/path" -; -; where N is an integer. Instead of storing all the session files in -; /path, what this will do is use subdirectories N-levels deep, and -; store the session data in those directories. This is useful if -; your OS has problems with many files in one directory, and is -; a more efficient layout for servers that handle many sessions. -; -; NOTE 1: PHP will not create this directory structure automatically. -; You can use the script in the ext/session dir for that purpose. -; NOTE 2: See the section on garbage collection below if you choose to -; use subdirectories for session storage -; -; The file storage module creates files using mode 600 by default. -; You can change that by using -; -; session.save_path = "N;MODE;/path" -; -; where MODE is the octal representation of the mode. Note that this -; does not overwrite the process's umask. -; http://php.net/session.save-path -;session.save_path = "/tmp" - -; Whether to use strict session mode. -; Strict session mode does not accept uninitialized session ID and regenerate -; session ID if browser sends uninitialized session ID. Strict mode protects -; applications from session fixation via session adoption vulnerability. It is -; disabled by default for maximum compatibility, but enabling it is encouraged. -; https://wiki.php.net/rfc/strict_sessions -session.use_strict_mode = 0 - -; Whether to use cookies. -; http://php.net/session.use-cookies -session.use_cookies = 1 - -; http://php.net/session.cookie-secure -;session.cookie_secure = - -; This option forces PHP to fetch and use a cookie for storing and maintaining -; the session id. We encourage this operation as it's very helpful in combating -; session hijacking when not specifying and managing your own session id. It is -; not the be-all and end-all of session hijacking defense, but it's a good start. -; http://php.net/session.use-only-cookies -session.use_only_cookies = 1 - -; Name of the session (used as cookie name). -; http://php.net/session.name -session.name = PHPSESSID - -; Initialize session on request startup. -; http://php.net/session.auto-start -session.auto_start = 0 - -; Lifetime in seconds of cookie or, if 0, until browser is restarted. -; http://php.net/session.cookie-lifetime -session.cookie_lifetime = 0 - -; The path for which the cookie is valid. -; http://php.net/session.cookie-path -session.cookie_path = / - -; The domain for which the cookie is valid. -; http://php.net/session.cookie-domain -session.cookie_domain = - -; Whether or not to add the httpOnly flag to the cookie, which makes it inaccessible to browser scripting languages such as JavaScript. -; http://php.net/session.cookie-httponly -session.cookie_httponly = - -; Handler used to serialize data. php is the standard serializer of PHP. -; http://php.net/session.serialize-handler -session.serialize_handler = php - -; Defines the probability that the 'garbage collection' process is started -; on every session initialization. The probability is calculated by using -; gc_probability/gc_divisor. Where session.gc_probability is the numerator -; and gc_divisor is the denominator in the equation. Setting this value to 1 -; when the session.gc_divisor value is 100 will give you approximately a 1% chance -; the gc will run on any give request. -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; http://php.net/session.gc-probability -session.gc_probability = 1 - -; Defines the probability that the 'garbage collection' process is started on every -; session initialization. The probability is calculated by using the following equation: -; gc_probability/gc_divisor. Where session.gc_probability is the numerator and -; session.gc_divisor is the denominator in the equation. Setting this value to 1 -; when the session.gc_divisor value is 100 will give you approximately a 1% chance -; the gc will run on any give request. Increasing this value to 1000 will give you -; a 0.1% chance the gc will run on any give request. For high volume production servers, -; this is a more efficient approach. -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 -; http://php.net/session.gc-divisor -session.gc_divisor = 1000 - -; After this number of seconds, stored data will be seen as 'garbage' and -; cleaned up by the garbage collection process. -; http://php.net/session.gc-maxlifetime -session.gc_maxlifetime = 1440 - -; NOTE: If you are using the subdirectory option for storing session files -; (see session.save_path above), then garbage collection does *not* -; happen automatically. You will need to do your own garbage -; collection through a shell script, cron entry, or some other method. -; For example, the following script would is the equivalent of -; setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes): -; find /path/to/sessions -cmin +24 -type f | xargs rm - -; Check HTTP Referer to invalidate externally stored URLs containing ids. -; HTTP_REFERER has to contain this substring for the session to be -; considered as valid. -; http://php.net/session.referer-check -session.referer_check = - -; Set to {nocache,private,public,} to determine HTTP caching aspects -; or leave this empty to avoid sending anti-caching headers. -; http://php.net/session.cache-limiter -session.cache_limiter = nocache - -; Document expires after n minutes. -; http://php.net/session.cache-expire -session.cache_expire = 180 - -; trans sid support is disabled by default. -; Use of trans sid may risk your users' security. -; Use this option with caution. -; - User may send URL contains active session ID -; to other person via. email/irc/etc. -; - URL that contains active session ID may be stored -; in publicly accessible computer. -; - User may access your site with the same session ID -; always using URL stored in browser's history or bookmarks. -; http://php.net/session.use-trans-sid -session.use_trans_sid = 0 - -; Set session ID character length. This value could be between 22 to 256. -; Shorter length than default is supported only for compatibility reason. -; Users should use 32 or more chars. -; http://php.net/session.sid-length -; Default Value: 32 -; Development Value: 26 -; Production Value: 26 -session.sid_length = 26 - -; The URL rewriter will look for URLs in a defined set of HTML tags. -; is special; if you include them here, the rewriter will -; add a hidden field with the info which is otherwise appended -; to URLs. tag's action attribute URL will not be modified -; unless it is specified. -; Note that all valid entries require a "=", even if no value follows. -; Default Value: "a=href,area=href,frame=src,form=" -; Development Value: "a=href,area=href,frame=src,form=" -; Production Value: "a=href,area=href,frame=src,form=" -; http://php.net/url-rewriter.tags -session.trans_sid_tags = "a=href,area=href,frame=src,form=" - -; URL rewriter does not rewrite absolute URLs by default. -; To enable rewrites for absolute pathes, target hosts must be specified -; at RUNTIME. i.e. use ini_set() -; tags is special. PHP will check action attribute's URL regardless -; of session.trans_sid_tags setting. -; If no host is defined, HTTP_HOST will be used for allowed host. -; Example value: php.net,www.php.net,wiki.php.net -; Use "," for multiple hosts. No spaces are allowed. -; Default Value: "" -; Development Value: "" -; Production Value: "" -;session.trans_sid_hosts="" - -; Define how many bits are stored in each character when converting -; the binary hash data to something readable. -; Possible values: -; 4 (4 bits: 0-9, a-f) -; 5 (5 bits: 0-9, a-v) -; 6 (6 bits: 0-9, a-z, A-Z, "-", ",") -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 -; http://php.net/session.hash-bits-per-character -session.sid_bits_per_character = 5 - -; Enable upload progress tracking in $_SESSION -; Default Value: On -; Development Value: On -; Production Value: On -; http://php.net/session.upload-progress.enabled -;session.upload_progress.enabled = On - -; Cleanup the progress information as soon as all POST data has been read -; (i.e. upload completed). -; Default Value: On -; Development Value: On -; Production Value: On -; http://php.net/session.upload-progress.cleanup -;session.upload_progress.cleanup = On - -; A prefix used for the upload progress key in $_SESSION -; Default Value: "upload_progress_" -; Development Value: "upload_progress_" -; Production Value: "upload_progress_" -; http://php.net/session.upload-progress.prefix -;session.upload_progress.prefix = "upload_progress_" - -; The index name (concatenated with the prefix) in $_SESSION -; containing the upload progress information -; Default Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Development Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Production Value: "PHP_SESSION_UPLOAD_PROGRESS" -; http://php.net/session.upload-progress.name -;session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS" - -; How frequently the upload progress should be updated. -; Given either in percentages (per-file), or in bytes -; Default Value: "1%" -; Development Value: "1%" -; Production Value: "1%" -; http://php.net/session.upload-progress.freq -;session.upload_progress.freq = "1%" - -; The minimum delay between updates, in seconds -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; http://php.net/session.upload-progress.min-freq -;session.upload_progress.min_freq = "1" - -; Only write session data when session data is changed. Enabled by default. -; http://php.net/session.lazy-write -;session.lazy_write = On - -[Assertion] -; Switch whether to compile assertions at all (to have no overhead at run-time) -; -1: Do not compile at all -; 0: Jump over assertion at run-time -; 1: Execute assertions -; Changing from or to a negative value is only possible in php.ini! (For turning assertions on and off at run-time, see assert.active, when zend.assertions = 1) -; Default Value: 1 -; Development Value: 1 -; Production Value: -1 -; http://php.net/zend.assertions -zend.assertions = -1 - -; Assert(expr); active by default. -; http://php.net/assert.active -;assert.active = On - -; Throw an AssertationException on failed assertions -; http://php.net/assert.exception -;assert.exception = On - -; Issue a PHP warning for each failed assertion. (Overridden by assert.exception if active) -; http://php.net/assert.warning -;assert.warning = On - -; Don't bail out by default. -; http://php.net/assert.bail -;assert.bail = Off - -; User-function to be called if an assertion fails. -; http://php.net/assert.callback -;assert.callback = 0 - -; Eval the expression with current error_reporting(). Set to true if you want -; error_reporting(0) around the eval(). -; http://php.net/assert.quiet-eval -;assert.quiet_eval = 0 - -[COM] -; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs -; http://php.net/com.typelib-file -;com.typelib_file = - -; allow Distributed-COM calls -; http://php.net/com.allow-dcom -;com.allow_dcom = true - -; autoregister constants of a components typlib on com_load() -; http://php.net/com.autoregister-typelib -;com.autoregister_typelib = true - -; register constants casesensitive -; http://php.net/com.autoregister-casesensitive -;com.autoregister_casesensitive = false - -; show warnings on duplicate constant registrations -; http://php.net/com.autoregister-verbose -;com.autoregister_verbose = true - -; The default character set code-page to use when passing strings to and from COM objects. -; Default: system ANSI code page -;com.code_page= - -[mbstring] -; language for internal character representation. -; This affects mb_send_mail() and mbstring.detect_order. -; http://php.net/mbstring.language -;mbstring.language = Japanese - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; internal/script encoding. -; Some encoding cannot work as internal encoding. (e.g. SJIS, BIG5, ISO-2022-*) -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;mbstring.internal_encoding = - -; Use of this INI entry is deprecated, use global input_encoding instead. -; http input encoding. -; mbstring.encoding_traslation = On is needed to use this setting. -; If empty, default_charset or input_encoding or mbstring.input is used. -; The precedence is: default_charset < intput_encoding < mbsting.http_input -; http://php.net/mbstring.http-input -;mbstring.http_input = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; http output encoding. -; mb_output_handler must be registered as output buffer to function. -; If empty, default_charset or output_encoding or mbstring.http_output is used. -; The precedence is: default_charset < output_encoding < mbstring.http_output -; To use an output encoding conversion, mbstring's output handler must be set -; otherwise output encoding conversion cannot be performed. -; http://php.net/mbstring.http-output -;mbstring.http_output = - -; enable automatic encoding translation according to -; mbstring.internal_encoding setting. Input chars are -; converted to internal encoding by setting this to On. -; Note: Do _not_ use automatic encoding translation for -; portable libs/applications. -; http://php.net/mbstring.encoding-translation -;mbstring.encoding_translation = Off - -; automatic encoding detection order. -; "auto" detect order is changed according to mbstring.language -; http://php.net/mbstring.detect-order -;mbstring.detect_order = auto - -; substitute_character used when character cannot be converted -; one from another -; http://php.net/mbstring.substitute-character -;mbstring.substitute_character = none - -; overload(replace) single byte functions by mbstring functions. -; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(), -; etc. Possible values are 0,1,2,4 or combination of them. -; For example, 7 for overload everything. -; 0: No overload -; 1: Overload mail() function -; 2: Overload str*() functions -; 4: Overload ereg*() functions -; http://php.net/mbstring.func-overload -;mbstring.func_overload = 0 - -; enable strict encoding detection. -; Default: Off -;mbstring.strict_detection = On - -; This directive specifies the regex pattern of content types for which mb_output_handler() -; is activated. -; Default: mbstring.http_output_conv_mimetype=^(text/|application/xhtml\+xml) -;mbstring.http_output_conv_mimetype= - -[gd] -; Tell the jpeg decode to ignore warnings and try to create -; a gd image. The warning will then be displayed as notices -; disabled by default -; http://php.net/gd.jpeg-ignore-warning -;gd.jpeg_ignore_warning = 1 - -[exif] -; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS. -; With mbstring support this will automatically be converted into the encoding -; given by corresponding encode setting. When empty mbstring.internal_encoding -; is used. For the decode settings you can distinguish between motorola and -; intel byte order. A decode setting cannot be empty. -; http://php.net/exif.encode-unicode -;exif.encode_unicode = ISO-8859-15 - -; http://php.net/exif.decode-unicode-motorola -;exif.decode_unicode_motorola = UCS-2BE - -; http://php.net/exif.decode-unicode-intel -;exif.decode_unicode_intel = UCS-2LE - -; http://php.net/exif.encode-jis -;exif.encode_jis = - -; http://php.net/exif.decode-jis-motorola -;exif.decode_jis_motorola = JIS - -; http://php.net/exif.decode-jis-intel -;exif.decode_jis_intel = JIS - -[Tidy] -; The path to a default tidy configuration file to use when using tidy -; http://php.net/tidy.default-config -;tidy.default_config = /usr/local/lib/php/default.tcfg - -; Should tidy clean and repair output automatically? -; WARNING: Do not use this option if you are generating non-html content -; such as dynamic images -; http://php.net/tidy.clean-output -tidy.clean_output = Off - -[soap] -; Enables or disables WSDL caching feature. -; http://php.net/soap.wsdl-cache-enabled -soap.wsdl_cache_enabled=1 - -; Sets the directory name where SOAP extension will put cache files. -; http://php.net/soap.wsdl-cache-dir -soap.wsdl_cache_dir="/tmp" - -; (time to live) Sets the number of second while cached file will be used -; instead of original one. -; http://php.net/soap.wsdl-cache-ttl -soap.wsdl_cache_ttl=86400 - -; Sets the size of the cache limit. (Max. number of WSDL files to cache) -soap.wsdl_cache_limit = 5 - -[sysvshm] -; A default size of the shared memory segment -;sysvshm.init_mem = 10000 - -[ldap] -; Sets the maximum number of open links or -1 for unlimited. -ldap.max_links = -1 - -[dba] -;dba.default_handler= - -[opcache] -; Determines if Zend OPCache is enabled -;opcache.enable=1 - -; Determines if Zend OPCache is enabled for the CLI version of PHP -;opcache.enable_cli=1 - -; The OPcache shared memory storage size. -;opcache.memory_consumption=128 - -; The amount of memory for interned strings in Mbytes. -;opcache.interned_strings_buffer=8 - -; The maximum number of keys (scripts) in the OPcache hash table. -; Only numbers between 200 and 1000000 are allowed. -;opcache.max_accelerated_files=10000 - -; The maximum percentage of "wasted" memory until a restart is scheduled. -;opcache.max_wasted_percentage=5 - -; When this directive is enabled, the OPcache appends the current working -; directory to the script key, thus eliminating possible collisions between -; files with the same name (basename). Disabling the directive improves -; performance, but may break existing applications. -;opcache.use_cwd=1 - -; When disabled, you must reset the OPcache manually or restart the -; webserver for changes to the filesystem to take effect. -;opcache.validate_timestamps=1 - -; How often (in seconds) to check file timestamps for changes to the shared -; memory storage allocation. ("1" means validate once per second, but only -; once per request. "0" means always validate) -;opcache.revalidate_freq=2 - -; Enables or disables file search in include_path optimization -;opcache.revalidate_path=0 - -; If disabled, all PHPDoc comments are dropped from the code to reduce the -; size of the optimized code. -;opcache.save_comments=1 - -; If enabled, a fast shutdown sequence is used for the accelerated code -; Depending on the used Memory Manager this may cause some incompatibilities. -;opcache.fast_shutdown=0 - -; Allow file existence override (file_exists, etc.) performance feature. -;opcache.enable_file_override=0 - -; A bitmask, where each bit enables or disables the appropriate OPcache -; passes -;opcache.optimization_level=0xffffffff - -;opcache.inherited_hack=1 -;opcache.dups_fix=0 - -; The location of the OPcache blacklist file (wildcards allowed). -; Each OPcache blacklist file is a text file that holds the names of files -; that should not be accelerated. The file format is to add each filename -; to a new line. The filename may be a full path or just a file prefix -; (i.e., /var/www/x blacklists all the files and directories in /var/www -; that start with 'x'). Line starting with a ; are ignored (comments). -;opcache.blacklist_filename= - -; Allows exclusion of large files from being cached. By default all files -; are cached. -;opcache.max_file_size=0 - -; Check the cache checksum each N requests. -; The default value of "0" means that the checks are disabled. -;opcache.consistency_checks=0 - -; How long to wait (in seconds) for a scheduled restart to begin if the cache -; is not being accessed. -;opcache.force_restart_timeout=180 - -; OPcache error_log file name. Empty string assumes "stderr". -;opcache.error_log= - -; All OPcache errors go to the Web server log. -; By default, only fatal errors (level 0) or errors (level 1) are logged. -; You can also enable warnings (level 2), info messages (level 3) or -; debug messages (level 4). -;opcache.log_verbosity_level=1 - -; Preferred Shared Memory back-end. Leave empty and let the system decide. -;opcache.preferred_memory_model= - -; Protect the shared memory from unexpected writing during script execution. -; Useful for internal debugging only. -;opcache.protect_memory=0 - -; Allows calling OPcache API functions only from PHP scripts which path is -; started from specified string. The default "" means no restriction -;opcache.restrict_api= - -; Mapping base of shared memory segments (for Windows only). All the PHP -; processes have to map shared memory into the same address space. This -; directive allows to manually fix the "Unable to reattach to base address" -; errors. -;opcache.mmap_base= - -; Enables and sets the second level cache directory. -; It should improve performance when SHM memory is full, at server restart or -; SHM reset. The default "" disables file based caching. -;opcache.file_cache= - -; Enables or disables opcode caching in shared memory. -;opcache.file_cache_only=0 - -; Enables or disables checksum validation when script loaded from file cache. -;opcache.file_cache_consistency_checks=1 - -; Implies opcache.file_cache_only=1 for a certain process that failed to -; reattach to the shared memory (for Windows only). Explicitly enabled file -; cache is required. -;opcache.file_cache_fallback=1 - -; Enables or disables copying of PHP code (text segment) into HUGE PAGES. -; This should improve performance, but requires appropriate OS configuration. -;opcache.huge_code_pages=1 - -; Validate cached file permissions. -;opcache.validate_permission=0 - -; Prevent name collisions in chroot'ed environment. -;opcache.validate_root=0 - -[curl] -; A default value for the CURLOPT_CAINFO option. This is required to be an -; absolute path. -;curl.cainfo = - -[openssl] -; The location of a Certificate Authority (CA) file on the local filesystem -; to use when verifying the identity of SSL/TLS peers. Most users should -; not specify a value for this directive as PHP will attempt to use the -; OS-managed cert stores in its absence. If specified, this value may still -; be overridden on a per-stream basis via the "cafile" SSL stream context -; option. -;openssl.cafile= - -; If openssl.cafile is not specified or if the CA file is not found, the -; directory pointed to by openssl.capath is searched for a suitable -; certificate. This value must be a correctly hashed certificate directory. -; Most users should not specify a value for this directive as PHP will -; attempt to use the OS-managed cert stores in its absence. If specified, -; this value may still be overridden on a per-stream basis via the "capath" -; SSL stream context option. -;openssl.capath= - -; Local Variables: -; tab-width: 4 -; End: - -[XDebug] -xdebug.remote_enable = 1 -xdebug.remote_handler = "dbgp" -; Set to host.docker.internal on Mac and Windows, otherwise, set to host real ip -xdebug.remote_host = host.docker.internal -;xdebug.remote_port = 9000 -xdebug.remote_log = /var/log/php/xdebug.log - -SERVER_ENV=develop - -yaf.use_spl_autoload=1 - -[xhprof] -;xhprof.output_dir = /var/log/php/xhprof.log \ No newline at end of file diff --git a/php5/5.6.40/data.yml b/php5/5.6.40/data.yml deleted file mode 100755 index deeede5ad..000000000 --- a/php5/5.6.40/data.yml +++ /dev/null @@ -1,18 +0,0 @@ -additionalProperties: - formFields: - - default: 9000 - envKey: PANEL_APP_PORT_HTTP - labelEn: PHP-FPM Port - labelZh: PHP-FPM 端口 - label: - en: PHP-FPM Port - ja: PHP-FPM ポート - ms: Port PHP-FPM - pt-br: Porta PHP-FPM - ru: Порт PHP-FPM - ko: PHP-FPM 포트 - zh-Hant: PHP-FPM 埠 - zh: PHP-FPM 端口 - required: true - rule: paramPort - type: number diff --git a/php5/5.6.40/docker-compose.yml b/php5/5.6.40/docker-compose.yml deleted file mode 100644 index dc530c778..000000000 --- a/php5/5.6.40/docker-compose.yml +++ /dev/null @@ -1,21 +0,0 @@ -services: - php: - image: ${IMAGE_NAME} - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - volumes: - - ${PANEL_WEBSITE_DIR}:/www/ - - ./conf/php.ini:/usr/local/etc/php/php.ini - - ./conf/php-fpm.conf:/usr/local/etc/php-fpm.d/www.conf - - ./log:/var/log/php - - ./composer:/tmp/composer - - ./extensions:/php/extensions - ports: - - 127.0.0.1:${PANEL_APP_PORT_HTTP}:9000 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/php5/README.md b/php5/README.md deleted file mode 100644 index b7d17a6ee..000000000 --- a/php5/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# PHP - -PHP(Hypertext Preprocessor)是一种流行的服务器端脚本语言,它用于开发动态网页和Web应用程序。 - -## 主要功能: - -- **动态网页生成**:PHP 可以嵌入到HTML中,用于生成动态内容。这意味着您可以根据用户的请求和其他条件来生成不同的网页内容。 -- **数据库连接**:PHP 支持多种数据库系统,包括MySQL、SQLite、PostgreSQL等,使您能够轻松地连接和操作数据库。 -- **表单处理**:PHP 可以处理网页表单数据,从而实现用户输入验证、数据存储和处理用户提交的信息。 -- **会话管理**:PHP 支持会话管理,允许您跟踪用户的状态和数据,从而创建登录系统和购物车等功能。 -- **文件操作**:PHP 允许您打开、读取、写入和删除文件,以及执行文件上传和下载等操作。 -- **错误处理**:PHP 提供丰富的错误处理机制,以便您能够捕获、记录和处理应用程序中的错误和异常。 -- **服务器端脚本**:PHP 脚本在服务器上执行,生成HTML输出,这意味着客户端无法查看脚本代码,从而提高了安全性。 -- **跨平台兼容**:PHP 可以在多种操作系统上运行,包括Windows、Linux和macOS,因此非常灵活。 -- **开源和社区支持**:PHP 是一个开源项目,拥有庞大的开发者社区,可以轻松找到各种扩展和库来扩展功能。 -- **模块化和面向对象编程**:PHP 支持面向对象编程(OOP),并且具有许多内置模块和扩展,可以简化开发过程。 \ No newline at end of file diff --git a/php5/README_en.md b/php5/README_en.md deleted file mode 100644 index 8a0db9e0e..000000000 --- a/php5/README_en.md +++ /dev/null @@ -1,25 +0,0 @@ -# PHP - -PHP (Hypertext Preprocessor) is a widely used server-side scripting language for developing dynamic web pages and web applications. - -## Main Features: - -- **Dynamic Web Page Generation**: PHP can be embedded directly into HTML, allowing for the generation of dynamic content. This enables the creation of web pages that respond to user input or other conditions. - -- **Database Support**: PHP supports a variety of database systems, including MySQL, SQLite, PostgreSQL, and more, enabling seamless database interaction and management. - -- **Form Handling**: PHP can handle data from web forms, enabling input validation, data storage, and processing of user-submitted information. - -- **Session Management**: PHP supports session management, allowing for the creation of login systems, shopping carts, and other user-specific functionalities. - -- **File Operations**: Open, read, write, delete, upload, and download files with PHP, enabling versatile file management capabilities. - -- **Error Handling**: PHP provides rich error handling features, allowing developers to capture, log, and handle errors and exceptions effectively. - -- **Server-Side Execution**: PHP scripts execute on the server, generating HTML output that the client sees. This keeps the source code secure and hidden from users. - -- **Cross-Platform**: PHP runs on multiple operating systems, including Windows, Linux, and macOS, making it highly versatile. - -- **Open Source and Community Support**: As an open-source project, PHP has a vast developer community offering libraries, extensions, and support. - -- **OOP Support**: PHP supports Object-Oriented Programming (OOP) and provides numerous built-in modules and extensions to simplify the development process. \ No newline at end of file diff --git a/php5/data.yml b/php5/data.yml deleted file mode 100755 index e33cdb313..000000000 --- a/php5/data.yml +++ /dev/null @@ -1,30 +0,0 @@ -name: PHP 5 -tags: - - 运行环境 -title: PHP5 运行环境 -description: PHP5 运行环境 -additionalProperties: - key: php5 - name: PHP 5 - tags: - - Runtime - shortDescZh: PHP5 运行环境 - shortDescEn: PHP5 Runtime - description: - en: PHP5 Runtime - ja: PHP5 ランタイム - ms: Persekitaran masa laku PHP5 - pt-br: Ambiente de execução PHP5 - ru: Среда выполнения PHP5 - ko: PHP5 런타임 - zh-hant: PHP5 執行環境 - zh: PHP5 运行环境 - type: php - crossVersionUpdate: false - limit: 0 - website: https://www.php.net/ - github: https://github.com/php/php-src - document: https://www.php.net/docs.php - deprecated: 2.0 - architectures: - - amd64 diff --git a/php5/logo.png b/php5/logo.png deleted file mode 100644 index cfa7782d2..000000000 Binary files a/php5/logo.png and /dev/null differ diff --git a/php7/7.0.33/build/.env b/php7/7.0.33/build/.env deleted file mode 100644 index fcdd0f448..000000000 --- a/php7/7.0.33/build/.env +++ /dev/null @@ -1,14 +0,0 @@ -CONTAINER_PACKAGE_URL=mirrors.ustc.edu.cn - -PHP_VERSION=7.0.33 -PHP_PHP_CONF_FILE=./php/php.ini -PHP_FPM_CONF_FILE=./php/php-fpm.conf -PHP_LOG_DIR=./logs/php -PHP_EXTENSIONS= - -SOURCE_DIR=./www - -TZ=Asia/Shanghai -DATA_DIR=./data -IMAGE_NAME=1panel-php:7.0.33 -INSTALL_SUPERVISOR=0 \ No newline at end of file diff --git a/php7/7.0.33/build/config.json b/php7/7.0.33/build/config.json deleted file mode 100644 index 28ee3c56b..000000000 --- a/php7/7.0.33/build/config.json +++ /dev/null @@ -1,134 +0,0 @@ -{ - "formFields": [ - { - "type": "select", - "multiple": true, - "labelZh": "扩展", - "labelEn": "Extensions", - "default": ["mysqli","pdo_mysql"], - "values": [ - { - "label": "opcache", - "value": "opcache" - }, - { - "label": "memcached", - "value": "memcached" - }, - { - "label": "memcache", - "value": "memcache" - }, - { - "label": "redis", - "value": "redis" - }, - { - "label": "mcrypt", - "value": "mcrypt" - }, - { - "label": "xdebug", - "value": "xdebug" - }, - { - "label": "imap", - "value": "imap" - }, - { - "label": "exif", - "value": "exif" - }, - { - "label": "intl", - "value": "intl" - }, - { - "label": "swoole", - "value": "swoole" - }, - { - "label": "yaf", - "value": "yaf" - }, - { - "label": "pgsql", - "value": "pgsql" - }, - { - "label": "pdo_pgsql", - "value": "pdo_pgsql" - }, - { - "label": "snmp", - "value": "snmp" - }, { - "label": "ldap", - "value": "ldap" - }, - { - "label": "pspell", - "value": "pspell" - }, - { - "label": "bz2", - "value": "bz2" - }, - { - "label": "sysvshm", - "value": "sysvshm" - }, - { - "label": "calendar", - "value": "calendar" - }, - { - "label": "gmp", - "value": "gmp" - }, - { - "label": "sysvmsg", - "value": "sysvmsg" - }, - { - "label": "igbinary", - "value": "igbinary" - }, - { - "label": "mysqli", - "value": "mysqli" - }, - { - "label": "pdo_mysql", - "value": "pdo_mysql" - }, - { - "label": "mbstring", - "value": "mbstring" - }, - { - "label": "gd", - "value": "gd" - }, - { - "label": "ioncube_loader", - "value": "ioncube_loader" - }, - { - "label": "curl", - "value": "curl" - }, - { - "label": "sg15", - "value": "sourceguardian" - }, - { - "label": "imagick", - "value": "imagick" - } - ], - "envKey": "PHP_EXTENSIONS", - "edit": true - } - ] -} \ No newline at end of file diff --git a/php7/7.0.33/build/docker-compose.yml b/php7/7.0.33/build/docker-compose.yml deleted file mode 100644 index 21e9fa737..000000000 --- a/php7/7.0.33/build/docker-compose.yml +++ /dev/null @@ -1,19 +0,0 @@ -services: - 1panel-php: - build: - context: ./php - args: - PHP_IMAGE: php:${PHP_VERSION}-fpm-alpine - CONTAINER_PACKAGE_URL: ${CONTAINER_PACKAGE_URL} - PHP_EXTENSIONS: ${PHP_EXTENSIONS} - TZ: ${TZ} - image: ${IMAGE_NAME} - volumes: - - ${SOURCE_DIR}:/www/ - - ${PHP_PHP_CONF_FILE}:/usr/local/etc/php/php.ini - - ${PHP_FPM_CONF_FILE}:/usr/local/etc/php-fpm.d/www.conf - - ${PHP_LOG_DIR}:/var/log/php - - ${DATA_DIR}/composer:/tmp/composer - restart: always - cap_add: - - SYS_PTRACE diff --git a/php7/7.0.33/build/php/Dockerfile b/php7/7.0.33/build/php/Dockerfile deleted file mode 100644 index 622c0b79e..000000000 --- a/php7/7.0.33/build/php/Dockerfile +++ /dev/null @@ -1,36 +0,0 @@ -ARG PHP_IMAGE -FROM ${PHP_IMAGE} - -ARG TZ -ARG PHP_EXTENSIONS -ARG CONTAINER_PACKAGE_URL -ARG INSTALL_SUPERVISOR - -RUN if [ $CONTAINER_PACKAGE_URL ] ; then sed -i "s/dl-cdn.alpinelinux.org/${CONTAINER_PACKAGE_URL}/g" /etc/apk/repositories ; fi - -ADD ./extensions/install-php-extensions /usr/local/bin/ -RUN chmod uga+x /usr/local/bin/install-php-extensions - -COPY ./extensions /tmp/extensions -WORKDIR /tmp/extensions -RUN chmod +x install.sh \ - && sh install.sh - -RUN apk --no-cache add tzdata \ - && cp "/usr/share/zoneinfo/$TZ" /etc/localtime \ - && echo "$TZ" > /etc/timezone - -# Fix: https://github.com/docker-library/php/issues/1121 -RUN apk add --no-cache --repository http://${CONTAINER_PACKAGE_URL}/alpine/v3.13/community/ gnu-libiconv=1.15-r3 -ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so php - -# Install composer and change it's cache home -RUN chmod +x install-composer.sh \ - && sh install-composer.sh \ - && rm -rf /tmp/extensions -ENV COMPOSER_HOME=/tmp/composer - -# php image's www-data user uid & gid are 82, change them to 1000 (primary user) -RUN apk --no-cache add shadow && usermod -u 1000 www-data && groupmod -g 1000 www-data - -WORKDIR /www diff --git a/php7/7.0.33/build/php/extensions/amqp-1.10.2.tgz b/php7/7.0.33/build/php/extensions/amqp-1.10.2.tgz deleted file mode 100644 index 7bcd30d03..000000000 Binary files a/php7/7.0.33/build/php/extensions/amqp-1.10.2.tgz and /dev/null differ diff --git a/php7/7.0.33/build/php/extensions/apcu-5.1.17.tgz b/php7/7.0.33/build/php/extensions/apcu-5.1.17.tgz deleted file mode 100644 index c15ca116a..000000000 Binary files a/php7/7.0.33/build/php/extensions/apcu-5.1.17.tgz and /dev/null differ diff --git a/php7/7.0.33/build/php/extensions/event-3.0.8.tgz b/php7/7.0.33/build/php/extensions/event-3.0.8.tgz deleted file mode 100644 index e7a471bbe..000000000 Binary files a/php7/7.0.33/build/php/extensions/event-3.0.8.tgz and /dev/null differ diff --git a/php7/7.0.33/build/php/extensions/install-composer.sh b/php7/7.0.33/build/php/extensions/install-composer.sh deleted file mode 100644 index 34074732d..000000000 --- a/php7/7.0.33/build/php/extensions/install-composer.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/sh - -# The latest mirror's composer version only support for PHP 7.2.5 -# And if your PHP version is lesser than that, will be download supported version. -supportLatest=$(php -r "echo version_compare(PHP_VERSION, '7.2.5', '>');") - -if [ "$supportLatest" -eq "1" ]; then - curl -o /usr/bin/composer https://mirrors.aliyun.com/composer/composer.phar \ - && chmod +x /usr/bin/composer -else - curl -o /tmp/composer-setup.php https://getcomposer.org/installer \ - && php /tmp/composer-setup.php --install-dir=/tmp \ - && mv /tmp/composer.phar /usr/bin/composer \ - && chmod +x /usr/bin/composer \ - && rm -rf /tmp/composer-setup.php -fi \ No newline at end of file diff --git a/php7/7.0.33/build/php/extensions/install-php-extensions b/php7/7.0.33/build/php/extensions/install-php-extensions deleted file mode 100644 index 2ef98bb85..000000000 --- a/php7/7.0.33/build/php/extensions/install-php-extensions +++ /dev/null @@ -1,5154 +0,0 @@ -#!/bin/sh - -# This script wraps docker-php-ext-install, properly configuring the system. -# -# Copyright (c) Michele Locati, 2018-2023 -# -# Source: https://github.com/mlocati/docker-php-extension-installer -# -# License: MIT - see https://github.com/mlocati/docker-php-extension-installer/blob/master/LICENSE - -# Let's set a sane environment -set -o errexit -set -o nounset - -if test "${IPE_DEBUG:-}" = "1"; then - set -x -fi - -if ! which docker-php-ext-configure >/dev/null || ! which docker-php-ext-enable >/dev/null || ! which docker-php-ext-install >/dev/null || ! which docker-php-source >/dev/null; then - printf 'The script %s is meant to be used with official Docker PHP Images - https://hub.docker.com/_/php\n' "$0" >&2 - exit 1 -fi - -IPE_VERSION=2.7.27 - -StandWithUkraine() { - if test -t 1 && ! grep -Eq '^VERSION=.*jessie' /etc/os-release; then - printf '\e[37;44m#StandWith\e[30;43mUkraine\e[0m\n' - else - printf '#StandWithUkraine\n' - fi -} - -if test "$IPE_VERSION" = master && test "${CI:-}" != true; then - cat <&2 - exit 1 - fi - DISTRO="$(cat /etc/os-release | grep -E ^ID= | cut -d = -f 2)" - DISTRO_VERSION_NUMBER="$(cat /etc/os-release | grep -E ^VERSION_ID= | cut -d = -f 2 | cut -d '"' -f 2 | cut -d . -f 1,2)" - DISTRO_VERSION="$(printf '%s@%s' $DISTRO $DISTRO_VERSION_NUMBER)" - DISTRO_MAJMIN_VERSION="$(echo "$DISTRO_VERSION_NUMBER" | awk -F. '{print $1*100+$2}')" -} - -# Set: -# - PHP_MAJMIN_VERSION: Major-Minor version, format MMmm (example 800 for PHP 8.0.1) -# - PHP_MAJDOTMIN_VERSION: Major-Minor version, format M.m (example 8.0 for PHP 8.0.1) -# - PHP_MAJMINPAT_VERSION: Major-Minor-Patch version, format MMmmpp (example 80001 for PHP 8.0.1) variables containing integers value -# - PHP_MAJDOTMINDOTPAT_VERSION: Major-Minor-Patch version, format M.m.p (example 8.0.1 for PHP 8.0.1) -# - PHP_THREADSAFE: 1 if PHP is thread-safe (TS), 0 if not thread-safe (NTS) -# - PHP_DEBUGBUILD: 1 if PHP is debug build (configured with "--enable-debug"), 0 otherwise -# - PHP_BITS: 32 if PHP is compiled for 32-bit, 64 if 64-bit -# - PHP_EXTDIR: the absolute path where the PHP extensions reside -setPHPVersionVariables() { - PHP_MAJDOTMINDOTPAT_VERSION="$(php-config --version)" - PHP_MAJMIN_VERSION=$(printf '%s' "$PHP_MAJDOTMINDOTPAT_VERSION" | awk -F. '{print $1*100+$2}') - PHP_MAJDOTMIN_VERSION=$(printf '%s' "$PHP_MAJDOTMINDOTPAT_VERSION" | cut -d. -f1-2) - PHP_MAJMINPAT_VERSION=$(printf '%s' "$PHP_MAJDOTMINDOTPAT_VERSION" | awk -F. '{print $1*10000+$2*100+$3}') - PHP_THREADSAFE=$(php -n -r 'echo ZEND_THREAD_SAFE ? 1 : 0;') - PHP_DEBUGBUILD=$(php -n -r 'echo ZEND_DEBUG_BUILD ? 1 : 0;') - PHP_BITS=$(php -n -r 'echo PHP_INT_SIZE * 8;') - PHP_EXTDIR="$(php -d display_errors=stderr -r 'echo realpath(ini_get("extension_dir"));')" -} - -# Fix apt-get being very slow on Debian Jessie -# See https://bugs.launchpad.net/ubuntu/+source/apt/+bug/1332440 -fixMaxOpenFiles() { - fixMaxOpenFiles_cur=$(ulimit -n 2>/dev/null || echo 0) - if test "$fixMaxOpenFiles_cur" -gt 10000; then - ulimit -n 10000 - fi -} - -# Get the directory containing the compiled PHP extensions -# -# Output: -# The absolute path of the extensions dir -getPHPExtensionsDir() { - php -i | grep -E '^extension_dir' | head -n1 | tr -s '[:space:]*=>[:space:]*' '|' | cut -d'|' -f2 -} - -# Normalize the name of a PHP extension -# -# Arguments: -# $1: the name of the module to be normalized -# -# Output: -# The normalized module name -normalizePHPModuleName() { - normalizePHPModuleName_name="$1" - case "$normalizePHPModuleName_name" in - *A* | *B* | *C* | *D* | *E* | *F* | *G* | *H* | *I* | *J* | *K* | *L* | *M* | *N* | *O* | *P* | *Q* | *R* | *S* | *T* | *U* | *V* | *W* | *X* | *Y* | *Z*) - normalizePHPModuleName_name="$(LC_CTYPE=C printf '%s' "$normalizePHPModuleName_name" | tr '[:upper:]' '[:lower:]')" - ;; - esac - case "$normalizePHPModuleName_name" in - datadog_trace) - normalizePHPModuleName_name=ddtrace - ;; - ioncube | ioncube\ loader) - normalizePHPModuleName_name='ioncube_loader' - ;; - pecl_http) - normalizePHPModuleName_name='http' - ;; - zend\ opcache) - normalizePHPModuleName_name='opcache' - ;; - libsodium) - if test $PHP_MAJMIN_VERSION -ge 700; then - normalizePHPModuleName_name='sodium' - fi - ;; - sodium) - if test $PHP_MAJMIN_VERSION -lt 700; then - normalizePHPModuleName_name='libsodium' - fi - ;; - *\ *) - printf '### WARNING Unrecognized module name: %s ###\n' "$1" >&2 - ;; - esac - printf '%s' "$normalizePHPModuleName_name" -} - -# Get the PECL name of PHP extension -# -# Arguments: -# $1: the name of the extension -# -# Output: -# The PECL name of the extension -getPeclModuleName() { - normalizePHPModuleName_name="$1" - case "$normalizePHPModuleName_name" in - ddtrace) - normalizePHPModuleName_name=datadog_trace - ;; - http) - normalizePHPModuleName_name=pecl_http - ;; - sodium) - normalizePHPModuleName_name=libsodium - ;; - esac - printf '%s' "$normalizePHPModuleName_name" -} - -# Parse a package.xml (or package2.xml) file and extract the module name and version -# -# Arguments: -# $1: the patho to the XML file -# -# Set these variables: -# - EXTRACTPACKAGEVERSIONFROMXML_NAME -# - EXTRACTPACKAGEVERSIONFROMXML_VERSION -# -# Output: -# Nothing -# -# Return: -# 0 (true): if the string is in the list -# 1 (false): if the string is not in the list -extractPackageVersionFromXML() { - if ! test -f "$1"; then - printf 'Unable to find the file\n%s\n' >&2 - return 1 - fi - extractPackageVersionFromXML_code="$( - cat <<'EOT' -$doc = new DOMDocument(); -if (!$doc->load($argv[1])) { - fwrite(STDERR, "Failed to load XML file\n"); - exit(1); -} -set_error_handler( - static function($errno, $errstr) { - fwrite(STDERR, trim((string) $errstr) . "\n"); - exit(1); - }, - -1 -); -$xpath = new DOMXpath($doc); -$xpath->registerNamespace('v20', 'http://pear.php.net/dtd/package-2.0'); -$xpath->registerNamespace('v21', 'http://pear.php.net/dtd/package-2.1'); -if ($xpath->query('/v20:package/v20:dependencies')->length === 1) { - $ns = 'v20:'; -} elseif ($xpath->query('/v21:package/v21:dependencies')->length === 1) { - $ns = 'v21:'; -} elseif ($xpath->query('/package')->length === 1) { - $ns = ''; -} else { - fwrite(STDERR, "Unsupported namespace of the XML of package version details\n"); -} -$nodes = $xpath->query("/{$ns}package/{$ns}name"); -$name = trim((string) $nodes[0]->nodeValue); -if ($ns === '') { - $nodes = $xpath->query("/{$ns}package/{$ns}version"); -} else { - $nodes = $xpath->query("/{$ns}package/{$ns}version/{$ns}release"); -} -$version = trim((string) $nodes[0]->nodeValue); -echo "EXTRACTPACKAGEVERSIONFROMXML_NAME='{$name}'\n"; -echo "EXTRACTPACKAGEVERSIONFROMXML_VERSION='{$version}'\n"; -exit(0); -EOT - )" - extractPackageVersionFromXML_vars="$(php -n -d display_errors=stderr -r "$extractPackageVersionFromXML_code" "$1")" - if test -z "$extractPackageVersionFromXML_vars"; then - return 1 - fi - eval "$extractPackageVersionFromXML_vars" - return 0 -} - -# Parse a module name (and optionally version) as received via command arguments, extracting the version and normalizing it -# Examples: -# xdebug-2.9.8 -# xdebug-^2 -# xdebug-^2.9 -# -# Arguments: -# $1: the name of the module to be normalized -# -# Set these variables: -# - PROCESSED_PHP_MODULE_ARGUMENT -# -# Optionally set these variables: -# - PHP_WANTEDMODULEVERSION_<...> (where <...> is the normalized module name) -# - PHP_MODULESOURCECODEPATH_<...> (where <...> is the normalized module name) -# -# Output: -# Nothing -processPHPModuleArgument() { - processPHPModuleArgument_arg="$1" - case "$processPHPModuleArgument_arg" in - imagick) - if test $PHP_MAJMIN_VERSION -ge 804; then - processPHPModuleArgument_arg=imagick/imagick@65e27f2bc02e7e8f1bf64e26e359e42a1331fca1 - elif test $PHP_MAJMIN_VERSION -ge 803; then - processPHPModuleArgument_arg=imagick/imagick@28f27044e435a2b203e32675e942eb8de620ee58 - fi - ;; - esac - # Convert GitHub short form to long url, - # for example: from - # php-memcached-dev/php-memcached@8f106564e6bb005ca6100b12ccc89000daafa9d8 - # to - # https://codeload.github.com/php-memcached-dev/php-memcached/tar.gz/8f106564e6bb005ca6100b12ccc89000daafa9d8 - processPHPModuleArgument_arg="$(printf '%s' "$processPHPModuleArgument_arg" | sed -E 's/^([a-zA-Z0-9_.\-]+\/[a-zA-Z0-9_.\-]+)@(.+$)/https:\/\/codeload.github.com\/\1\/tar.gz\/\2/')" - # Let's check if $processPHPModuleArgument_arg is an URL - if printf '%s' "$processPHPModuleArgument_arg" | grep -Eq '^https?://[^ ]+/[^ ]+$'; then - printf 'Downloading source from %s\n' "$processPHPModuleArgument_arg" - processPHPModuleArgument_arg="$(getPackageSource "$processPHPModuleArgument_arg")" - fi - # Let's check if $processPHPModuleArgument_arg the absolute path of an existing directory - if test "$processPHPModuleArgument_arg" != "${processPHPModuleArgument_arg#/}" && test -d "$processPHPModuleArgument_arg"; then - if test -f "$processPHPModuleArgument_arg/package2.xml"; then - printf 'Checking package2.xml of directory %s... ' "$processPHPModuleArgument_arg" - if ! extractPackageVersionFromXML "$processPHPModuleArgument_arg/package2.xml"; then - return 1 - fi - elif test -f "$processPHPModuleArgument_arg/package.xml"; then - printf 'Checking package.xml of directory %s... ' "$processPHPModuleArgument_arg" - if ! extractPackageVersionFromXML "$processPHPModuleArgument_arg/package.xml"; then - return 1 - fi - else - printf 'Unable to find the package.xml file in the directory\n%s\n' "$processPHPModuleArgument_arg" - return 1 - fi - printf 'good (name: %s, version: %s)\n' "$EXTRACTPACKAGEVERSIONFROMXML_NAME" "$EXTRACTPACKAGEVERSIONFROMXML_VERSION" - PROCESSED_PHP_MODULE_ARGUMENT="$(normalizePHPModuleName "$EXTRACTPACKAGEVERSIONFROMXML_NAME")" - processPHPModuleArgument_version="$EXTRACTPACKAGEVERSIONFROMXML_VERSION" - if printf '%s' "$PROCESSED_PHP_MODULE_ARGUMENT" | grep -Eq '^[a-zA-Z0-9_]+$'; then - eval PHP_MODULESOURCECODEPATH_$PROCESSED_PHP_MODULE_ARGUMENT="$processPHPModuleArgument_arg" - else - printf 'Unable to parse the following module name:\n%s\n' "$PROCESSED_PHP_MODULE_ARGUMENT" >&2 - exit 1 - fi - else - PROCESSED_PHP_MODULE_ARGUMENT="${processPHPModuleArgument_arg%%-*}" - if test -n "$PROCESSED_PHP_MODULE_ARGUMENT" && test "$PROCESSED_PHP_MODULE_ARGUMENT" != "$processPHPModuleArgument_arg"; then - processPHPModuleArgument_version="${processPHPModuleArgument_arg#*-}" - else - processPHPModuleArgument_version='' - fi - PROCESSED_PHP_MODULE_ARGUMENT="$(normalizePHPModuleName "$PROCESSED_PHP_MODULE_ARGUMENT")" - fi - if test -n "$processPHPModuleArgument_version"; then - if printf '%s' "$PROCESSED_PHP_MODULE_ARGUMENT" | grep -Eq '^[a-zA-Z0-9_]+$'; then - eval PHP_WANTEDMODULEVERSION_$PROCESSED_PHP_MODULE_ARGUMENT="$processPHPModuleArgument_version" - elif printf '%s' "$PROCESSED_PHP_MODULE_ARGUMENT" | grep -Eq '^@[a-zA-Z0-9_]+$'; then - eval PHP_WANTEDMODULEVERSION__${PROCESSED_PHP_MODULE_ARGUMENT#@}="$processPHPModuleArgument_version" - else - printf 'Unable to parse the following module name:\n%s\n' "$PROCESSED_PHP_MODULE_ARGUMENT" >&2 - fi - fi -} - -# Get the wanted PHP module version, as specified in the command line arguments. -# -# Arguments: -# $1: the name of the module to be normalized -# -# Output: -# The wanted version (if any) -getWantedPHPModuleVersion() { - if printf '%s' "$1" | grep -Eq '^[a-zA-Z0-9_]+$'; then - eval printf '%s' "\${PHP_WANTEDMODULEVERSION_$1:-}" - elif printf '%s' "$1" | grep -Eq '^@[a-zA-Z0-9_]+$'; then - eval printf '%s' "\${PHP_WANTEDMODULEVERSION__${1#@}:-}" - fi -} - -# Get source code path of a PHP module version, as specified in the command line arguments. -# -# Arguments: -# $1: the name of the module to be normalized -# -# Output: -# The wanted version (if any) -getModuleSourceCodePath() { - if printf '%s' "$1" | grep -Eq '^[a-zA-Z0-9_]+$'; then - eval printf '%s' "\${PHP_MODULESOURCECODEPATH_$1:-}" - fi -} - -# Get the actual PHP module version, resolving it if it starts with '^' -# -# Arguments: -# $1: the name of the module -# $2: the wanted version (optional, if omitted we'll use getWantedPHPModuleVersion) -# -# Output: -# The version to be used -resolvePHPModuleVersion() { - resolvePHPModuleVersion_module="$1" - if test $# -lt 2; then - resolvePHPModuleVersion_raw="$(getWantedPHPModuleVersion "$installRemoteModule_module")" - else - resolvePHPModuleVersion_raw="$2" - fi - resolvePHPModuleVersion_afterCaret="${resolvePHPModuleVersion_raw#^}" - if test "$resolvePHPModuleVersion_raw" = "$resolvePHPModuleVersion_afterCaret"; then - printf '%s' "$resolvePHPModuleVersion_raw" - return - fi - case "$resolvePHPModuleVersion_afterCaret" in - ?*@snapshot | ?*@devel | ?*@alpha | ?*@beta | ?*@stable) - resolvePHPModuleVersion_wantedStability="${resolvePHPModuleVersion_afterCaret##*@}" - resolvePHPModuleVersion_wantedVersion="${resolvePHPModuleVersion_afterCaret%@*}" - ;; - *) - resolvePHPModuleVersion_wantedStability='' - resolvePHPModuleVersion_wantedVersion="$resolvePHPModuleVersion_afterCaret" - ;; - esac - resolvePHPModuleVersion_peclModule="$(getPeclModuleName "$resolvePHPModuleVersion_module")" - resolvePHPModuleVersion_xml="$(curl -sSLf "http://pecl.php.net/rest/r/$resolvePHPModuleVersion_peclModule/allreleases.xml")" - # remove line endings, collapse spaces - resolvePHPModuleVersion_versions="$(printf '%s' "$resolvePHPModuleVersion_xml" | tr -s ' \t\r\n' ' ')" - # one line per release (eg 1.2.3stable) - resolvePHPModuleVersion_versions="$(printf '%s' "$resolvePHPModuleVersion_versions" | sed -r 's#$resolvePHPModuleVersion_wantedStability")" - fi - # remove everything's up to '' (included) - resolvePHPModuleVersion_versions="$(printf '%s' "$resolvePHPModuleVersion_versions" | sed 's#^.*##')" - # keep just the versions - resolvePHPModuleVersion_versions="$(printf '%s' "$resolvePHPModuleVersion_versions" | cut -d'<' -f1)" - resetIFS - for resolvePHPModuleVersion_version in $resolvePHPModuleVersion_versions; do - resolvePHPModuleVersion_suffix="${resolvePHPModuleVersion_version#$resolvePHPModuleVersion_wantedVersion}" - if test "$resolvePHPModuleVersion_version" != "${resolvePHPModuleVersion_version#$resolvePHPModuleVersion_wantedVersion.}"; then - # Example: looking for 1.0, found 1.0.1 - printf '%s' "$resolvePHPModuleVersion_version" - return - fi - done - for resolvePHPModuleVersion_version in $resolvePHPModuleVersion_versions; do - resolvePHPModuleVersion_suffix="${resolvePHPModuleVersion_version#$resolvePHPModuleVersion_wantedVersion}" - if test "$resolvePHPModuleVersion_version" = "$resolvePHPModuleVersion_suffix"; then - continue - fi - if test -z "$resolvePHPModuleVersion_suffix"; then - # Example: looking for 1.0, found exactly it - printf '%s' "$resolvePHPModuleVersion_version" - return - fi - case "$resolvePHPModuleVersion_suffix" in - [0-9]) - # Example: looking for 1.1, but this is 1.10 - ;; - *) - # Example: looking for 1.1, this is 1.1rc1 - printf '%s' "$resolvePHPModuleVersion_version" - return - ;; - esac - done - printf 'Unable to find a version of "%s" compatible with "%s"\nAvailable versions are:\n%s\n' "$resolvePHPModuleVersion_module" "$resolvePHPModuleVersion_raw" "$resolvePHPModuleVersion_versions" >&2 - exit 1 -} - -# Get the actual version of a PECL pmodule, resolving 'latest', 'stable', 'beta', 'alpha', 'devel'. -# -# Arguments: -# $1: the module name as known on the PECL archive -# $2: the version to be resolved -# Output: -# $2 itself if $1 is not 'latest', 'stable', 'beta', 'alpha', or 'devel', the actual version otherwise -resolvePeclStabilityVersion() { - case "$2" in - latest | stable | beta | alpha | devel) ;; - *) - printf '%s' "$2" - return - ;; - esac - resolvePeclStabilityVersion_peclModule="$(getPeclModuleName "$1")" - peclStabilityFlagToVersion_url="http://pecl.php.net/rest/r/$resolvePeclStabilityVersion_peclModule/$2.txt" - if ! peclStabilityFlagToVersion_result="$(curl -sSLf "$peclStabilityFlagToVersion_url")"; then - peclStabilityFlagToVersion_result='' - fi - if test -z "$peclStabilityFlagToVersion_result"; then - printf 'Failed to resolve the PECL package version "%s" of %s from %s\n' "$2" "$1" "$peclStabilityFlagToVersion_url" >&2 - exit 1 - fi - printf '%s' "$peclStabilityFlagToVersion_result" -} - -# Set these variables: -# - PHP_PREINSTALLED_MODULES the normalized list of PHP modules installed before running this script -setPHPPreinstalledModules() { - PHP_PREINSTALLED_MODULES='' - IFS=' -' - for getPHPInstalledModules_module in $(php -m); do - getPHPInstalledModules_moduleNormalized='' - case "$getPHPInstalledModules_module" in - \[PHP\ Modules\]) ;; - \[Zend\ Modules\]) - break - ;; - *) - getPHPInstalledModules_moduleNormalized="$(normalizePHPModuleName "$getPHPInstalledModules_module")" - if ! stringInList "$getPHPInstalledModules_moduleNormalized" "$PHP_PREINSTALLED_MODULES"; then - PHP_PREINSTALLED_MODULES="$PHP_PREINSTALLED_MODULES $getPHPInstalledModules_moduleNormalized" - fi - ;; - esac - done - if command -v composer >/dev/null; then - PHP_PREINSTALLED_MODULES="$PHP_PREINSTALLED_MODULES @composer" - fi - resetIFS - PHP_PREINSTALLED_MODULES="${PHP_PREINSTALLED_MODULES# }" -} - -# Get the handles of the modules to be installed -# -# Arguments: -# $@: all module handles -# -# Set: -# PHP_MODULES_TO_INSTALL -# -# Output: -# Nothing -processCommandArguments() { - processCommandArguments_endArgs=0 - PHP_MODULES_TO_INSTALL='' - # Support deprecated flag IPE_FIX_CACERTS - case "${IPE_FIX_CACERTS:-}" in - 1 | y* | Y*) - PHP_MODULES_TO_INSTALL="$PHP_MODULES_TO_INSTALL @fix_letsencrypt" - ;; - esac - while :; do - if test $# -lt 1; then - break - fi - processCommandArguments_skip=0 - if test $processCommandArguments_endArgs -eq 0; then - case "$1" in - --cleanup) - printf '### WARNING the %s option is deprecated (we always cleanup everything) ###\n' "$1" >&2 - processCommandArguments_skip=1 - ;; - --) - processCommandArguments_skip=1 - processCommandArguments_endArgs=1 - ;; - -*) - printf 'Unrecognized option: %s\n' "$1" >&2 - exit 1 - ;; - esac - fi - if test $processCommandArguments_skip -eq 0; then - processPHPModuleArgument "$1" - processCommandArguments_name="$PROCESSED_PHP_MODULE_ARGUMENT" - if stringInList "$processCommandArguments_name" "$PHP_MODULES_TO_INSTALL"; then - printf '### WARNING Duplicated module name specified: %s ###\n' "$processCommandArguments_name" >&2 - elif stringInList "$processCommandArguments_name" "$PHP_PREINSTALLED_MODULES"; then - printf '### WARNING Module already installed: %s ###\n' "$processCommandArguments_name" >&2 - else - PHP_MODULES_TO_INSTALL="$PHP_MODULES_TO_INSTALL $processCommandArguments_name" - fi - fi - shift - done - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL# }" -} - -# Add a module that's required by another module -# -# Arguments: -# $1: module that requires another module -# $2: the required module -# -# Update: -# PHP_MODULES_TO_INSTALL -# -# Output: -# Nothing -checkRequiredModule() { - if ! stringInList "$1" "$PHP_MODULES_TO_INSTALL"; then - return - fi - if stringInList "$2" "$PHP_PREINSTALLED_MODULES"; then - return - fi - PHP_MODULES_TO_INSTALL="$(removeStringFromList "$1" "$PHP_MODULES_TO_INSTALL")" - if ! stringInList "$2" "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$PHP_MODULES_TO_INSTALL $2" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL# }" - fi - PHP_MODULES_TO_INSTALL="$PHP_MODULES_TO_INSTALL $1" -} - -# Sort the modules to be installed, in order to fix dependencies -# -# Update: -# PHP_MODULES_TO_INSTALL -# -# Output: -# Nothing -sortModulesToInstall() { - # apcu_bc requires apcu - checkRequiredModule 'apcu_bc' 'apcu' - # http requires propro (for PHP < 8) and raphf - if test $PHP_MAJMIN_VERSION -le 704; then - checkRequiredModule 'http' 'propro' - fi - checkRequiredModule 'http' 'raphf' - # event requires sockets (for PHP <= 5.6) - if test $PHP_MAJMIN_VERSION -le 506; then - checkRequiredModule event sockets - fi - # relay requires msgpack - checkRequiredModule relay msgpack - # relay requires igbinary - checkRequiredModule relay igbinary - # pq requires raphf - checkRequiredModule pq raphf - # phalcon up to v5.0.0beta3 requires psr - if test $PHP_MAJMINPAT_VERSION -lt 70401; then - checkRequiredModule phalcon psr - fi - # Some module installation may use sockets if available: move it before other modules - if stringInList 'sockets' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'sockets' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="sockets $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # Some module installation may use igbinary if available: move it before other modules - if stringInList 'igbinary' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'igbinary' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="igbinary $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # Some module installation may use msgpack if available: move it before other modules - if stringInList 'msgpack' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'msgpack' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="msgpack $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # Some module installation may use socket if available: move it before other modules - if stringInList 'socket' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'socket' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="socket $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # Some module installation may use apcu if available: move it before other modules - if stringInList 'apcu' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'apcu' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="apcu $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # Some module installation may use raphf if available: move it before other modules - if stringInList 'raphf' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'raphf' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="raphf $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # In any case, first of all, we need to install composer - if stringInList '@composer' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList '@composer' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="@composer $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi -} - -# Expand the IPE_ASPELL_LANGUAGES environment variable into apk/apt package names -expandASpellDictionaries() { - expandASpellDictionaries_languages="${IPE_ASPELL_LANGUAGES:-en}" - expandASpellDictionaries_result='' - resetIFS - for expandASpellDictionaries_language in $expandASpellDictionaries_languages; do - expandASpellDictionaries_result="$expandASpellDictionaries_result aspell-$expandASpellDictionaries_language" - done - printf '%s' "${expandASpellDictionaries_result# }" -} - -# Get the required APT/APK packages for a specific PHP version and for the list of module handles -# -# Arguments: -# $@: the PHP module handles -# -# Set: -# PACKAGES_PERSISTENT_NEW the list of packages required at runtume that must be installed -# PACKAGES_PERSISTENT_PRE the list of packages required at runtume that are already installed -# PACKAGES_VOLATILE the list of packages required at compile time that must be installed -# PACKAGES_PREVIOUS the list of packages (with their version) that are installed right now (calculated only on Debian and only if PACKAGES_PERSISTENT_NEW or PACKAGES_VOLATILE are not empty) -# COMPILE_LIBS -buildRequiredPackageLists() { - buildRequiredPackageLists_persistent='' - buildRequiredPackageLists_volatile='' - COMPILE_LIBS='' - case "$DISTRO" in - alpine) - apk update - ;; - debian) - invokeAptGetUpdate - ;; - esac - case "$DISTRO_VERSION" in - alpine@*) - if test $# -gt 1 || test "${1:-}" != '@composer'; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $PHPIZE_DEPS" - fi - if test -z "$(apk info 2>/dev/null | grep -E ^libssl)"; then - buildRequiredPackageLists_libssl="$(apk search | grep -E '^libssl[0-9]' | head -1 | cut -d- -f1)" - elif test -z "$(apk info 2>/dev/null | grep -E '^libressl.*-libtls')" && test -z "$(apk info 2>/dev/null | grep -E '^libressl.*-libssl')" && test -z "$(apk info 2>/dev/null | grep -E '^libretls-')"; then - buildRequiredPackageLists_libssl=$(apk search -q libressl*-libtls) - else - buildRequiredPackageLists_libssl='' - fi - if test $DISTRO_MAJMIN_VERSION -le 313; then - buildRequiredPackageLists_libssldev='libressl-dev' - else - buildRequiredPackageLists_libssldev='libretls-dev' - fi - buildRequiredPackageLists_icuPersistent='' - if test $DISTRO_MAJMIN_VERSION -ge 316; then - case "${IPE_ICU_EN_ONLY:-}" in - 1 | y* | Y*) ;; - *) - buildRequiredPackageLists_icuPersistent='icu-data-full' - ;; - esac - fi - ;; - debian@9) - buildRequiredPackageLists_libssldev='libssl1.0-dev' - ;; - debian@*) - buildRequiredPackageLists_libssldev='^libssl([0-9]+(\.[0-9]+)*)?-dev$' - ;; - esac - if test $USE_PICKLE -gt 1; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile git" - fi - while :; do - if test $# -lt 1; then - break - fi - case "$1@$DISTRO" in - @composer@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent unzip" - ;; - amqp@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent rabbitmq-c" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile rabbitmq-c-dev" - ;; - amqp@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^librabbitmq[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile librabbitmq-dev libssh-dev" - ;; - bz2@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libbz2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile bzip2-dev" - ;; - bz2@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libbz2-dev" - ;; - cassandra@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent cassandra-cpp-driver gmp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cassandra-cpp-driver-dev gmp-dev" - ;; - cmark@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake" - ;; - cmark@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake" - ;; - ddtrace@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libgcc" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile curl-dev" - ;; - ddtrace@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libcurl4-openssl-dev" - ;; - dba@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent db" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile db-dev" - ;; - dba@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile ^libdb5\.3-dev$" - if test $PHP_MAJMIN_VERSION -le 505; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile patch" - fi - ;; - decimal@debian) - if test $DISTRO_MAJMIN_VERSION -lt 1200; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libmpdec[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmpdec-dev" - fi - ;; - ecma_intl@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent icu-libs $buildRequiredPackageLists_icuPersistent" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev libidn-dev" - ;; - ecma_intl@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libicu[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libicu-dev" - ;; - enchant@alpine) - if test $DISTRO_MAJMIN_VERSION -ge 312; then - if test $PHP_MAJMIN_VERSION -ge 800; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent enchant2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile enchant2-dev" - else - # The system provides libenchant2, supported since PHP 8.0: we need to build libenchant1 on our own - if ! isLibenchant1Installed; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent glib aspell-libs libhunspell" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile glib-dev aspell-dev hunspell-dev" - COMPILE_LIBS="$COMPILE_LIBS libenchant1" - fi - fi - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent enchant" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile enchant-dev" - fi - ;; - enchant@debian) - if test $DISTRO_VERSION_NUMBER -ge 11; then - if test $PHP_MAJMIN_VERSION -ge 800; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libenchant-2-2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libenchant-2-dev" - else - if ! isLibenchant1Installed; then - # The system provides libenchant2, supported since PHP 8.0: we need to build libenchant1 on our own - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent aspell-en libhunspell-1.7-0" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libglib2.0-dev libaspell-dev libhunspell-dev" - COMPILE_LIBS="$COMPILE_LIBS libenchant1" - fi - fi - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libenchant1c2a" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libenchant-dev" - fi - ;; - event@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libevent $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libevent-dev $buildRequiredPackageLists_libssldev" - ;; - event@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libevent[0-9\.\-]*$ ^libevent-openssl[0-9\.\-]*$ ^libevent-extra[0-9\.\-]*$ ^libevent-pthreads[0-9\.\-]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libevent-dev $buildRequiredPackageLists_libssldev" - ;; - ffi@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libffi" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libffi-dev" - ;; - ffi@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libffi-dev" - ;; - ftp@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev" - ;; - ftp@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev" - ;; - gd@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent freetype libjpeg-turbo libpng libxpm" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetype-dev libjpeg-turbo-dev libpng-dev libxpm-dev" - if test $PHP_MAJMIN_VERSION -le 506; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libvpx" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libvpx-dev" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libwebp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libwebp-dev" - if test $PHP_MAJMIN_VERSION -ge 801; then - if test $DISTRO_MAJMIN_VERSION -ge 315; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libavif aom-libs libdav1d" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libavif-dev aom-dev dav1d-dev" - elif isLibaomInstalled && isLibdav1dInstalled && isLibyuvInstalled && isLibavifInstalled; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - else - case "${IPE_GD_WITHOUTAVIF:-}" in - 1 | y* | Y*) ;; - *) - if ! isLibaomInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libaom" - fi - if ! isLibdav1dInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libdav1d" - fi - if ! isLibyuvInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libyuv" - fi - if ! isLibavifInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libavif" - fi - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake nasm meson" - ;; - esac - fi - fi - fi - ;; - gd@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libfreetype6 libjpeg62-turbo ^libpng[0-9]+-[0-9]+$ libxpm4" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libfreetype6-dev libjpeg62-turbo-dev libpng-dev libxpm-dev" - if test $PHP_MAJMIN_VERSION -le 506; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libvpx[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libvpx-dev" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libwebp[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libwebp-dev" - if test $PHP_MAJMIN_VERSION -ge 801; then - if test $DISTRO_VERSION_NUMBER -ge 12; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libavif[0-9]+$ ^libaom[0-9]+$ ^libdav1d[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libavif-dev libaom-dev libdav1d-dev" - elif ! isLibaomInstalled || ! isLibdav1dInstalled || ! isLibyuvInstalled || ! isLibavifInstalled; then - case "${IPE_GD_WITHOUTAVIF:-}" in - 1 | y* | Y*) ;; - *) - if ! isLibaomInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libaom" - fi - if ! isLibdav1dInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libdav1d" - fi - if ! isLibyuvInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libyuv" - fi - if ! isLibavifInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libavif" - fi - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake nasm meson" - ;; - esac - fi - fi - fi - ;; - gearman@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++ libuuid" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile boost-dev gperf libmemcached-dev libevent-dev util-linux-dev" - ;; - gearman@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libgearman[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgearman-dev" - ;; - geoip@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent geoip" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile geoip-dev" - ;; - geoip@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libgeoip1[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgeoip-dev" - ;; - geos@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent geos-dev" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile geos" - ;; - geos@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libgeos-c1(v[0-9]*)?$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgeos-dev" - ;; - gettext@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libintl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile gettext-dev" - ;; - gmagick@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent graphicsmagick libgomp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile graphicsmagick-dev libtool" - ;; - gmagick@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libgraphicsmagick(-q16-)?[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgraphicsmagick1-dev" - ;; - gmp@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gmp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile gmp-dev" - ;; - gmp@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgmp-dev" - ;; - gnupg@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gpgme" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile gpgme-dev" - ;; - gnupg@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libgpgme[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile ^libgpgme[0-9]*-dev$" - ;; - grpc@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev linux-headers" - ;; - grpc@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev" - ;; - http@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libevent" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev curl-dev libevent-dev" - if test $PHP_MAJMIN_VERSION -le 506; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libidn" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libidn-dev" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent icu-libs $buildRequiredPackageLists_icuPersistent libidn" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev libidn-dev" - fi - ;; - http@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libcurl3-gnutls ^libevent[0-9\.\-]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev libgnutls28-dev libcurl4-gnutls-dev libevent-dev" - if test $PHP_MAJMIN_VERSION -le 506; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile ^libidn1[0-9+]-dev$" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libicu[0-9]+$ ^libidn2-[0-9+]$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libicu-dev ^libidn2-[0-9+]-dev$ ^libgcrypt[0-9]+-dev$" - fi - ;; - imagick@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent imagemagick libgomp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile imagemagick-dev" - if [ $DISTRO_MAJMIN_VERSION -ge 319 ]; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ghostscript libheif libjxl libraw librsvg" - fi - ;; - imagick@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libmagickwand-6.q16-[0-9]+$ ^libmagickcore-6.q16-[0-9]+-extra$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmagickwand-dev" - ;; - imap@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent c-client $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile krb5-dev imap-dev $buildRequiredPackageLists_libssldev" - ;; - imap@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libc-client2007e" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libkrb5-dev" - case "$DISTRO_VERSION" in - debian@9) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev comerr-dev krb5-multidev libc-client2007e libgssrpc4 libkadm5clnt-mit11 libkadm5srv-mit11 libkdb5-8 libpam0g-dev libssl-doc mlock" - ;; - *) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libc-client-dev" - ;; - esac - ;; - interbase@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev ncurses-dev" - if ! isFirebirdInstalled; then - COMPILE_LIBS="$COMPILE_LIBS firebird" - fi - ;; - interbase@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libfbclient2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile firebird-dev libib-util" - ;; - intl@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent icu-libs $buildRequiredPackageLists_icuPersistent" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev" - ;; - intl@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libicu[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libicu-dev" - ;; - ion@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake git" - ;; - ion@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake git" - ;; - ldap@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libldap" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile openldap-dev" - ;; - ldap@debian) - if test $DISTRO_VERSION_NUMBER -ge 9; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libldap-common" - fi - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libldap2-dev" - ;; - luasandbox@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lua5.1-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile lua5.1-dev" - ;; - luasandbox@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblua5.1-0" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liblua5.1-0-dev" - ;; - lz4@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lz4-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile lz4-dev" - ;; - lz4@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblz4-1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liblz4-dev" - ;; - maxminddb@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmaxminddb" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmaxminddb-dev" - ;; - maxminddb@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libmaxminddb[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmaxminddb-dev" - ;; - memprof@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent judy" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile judy-dev bsd-compat-headers" - ;; - memprof@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libjudydebian1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libjudy-dev" - ;; - mcrypt@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmcrypt" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmcrypt-dev" - ;; - mcrypt@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmcrypt4" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmcrypt-dev" - ;; - memcache@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev" - ;; - memcache@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev" - ;; - memcached@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmemcached-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmemcached-dev zlib-dev" - ;; - memcached@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmemcachedutil2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmemcached-dev zlib1g-dev" - if test $DISTRO_MAJMIN_VERSION -ge 12; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev" - fi - ;; - mongo@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsasl $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev cyrus-sasl-dev" - ;; - mongo@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev libsasl2-dev" - ;; - mongodb@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent icu-libs $buildRequiredPackageLists_icuPersistent libsasl $buildRequiredPackageLists_libssl snappy" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev cyrus-sasl-dev snappy-dev $buildRequiredPackageLists_libssldev zlib-dev" - if test $PHP_MAJMIN_VERSION -ge 704; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent zstd-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zstd-dev" - fi - ;; - mongodb@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libsnappy[0-9]+(v[0-9]+)?$ ^libicu[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libicu-dev libsasl2-dev libsnappy-dev $buildRequiredPackageLists_libssldev zlib1g-dev" - if test $PHP_MAJMIN_VERSION -ge 704; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libzstd[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libzstd-dev" - fi - ;; - mosquitto@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent mosquitto-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile mosquitto-dev" - ;; - mosquitto@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmosquitto1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmosquitto-dev" - ;; - mssql@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent freetds" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - mssql@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsybdb5" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - oauth@alpine) - if test $PHP_MAJMIN_VERSION -ge 700; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile pcre-dev" - fi - ;; - oauth@debian) - if test $PHP_MAJMIN_VERSION -ge 700; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libpcre3-dev" - fi - ;; - oci8@alpine | pdo_oci@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libaio libc6-compat libnsl" - if test $DISTRO_MAJMIN_VERSION -le 307; then - # The unzip tool of Alpine 3.7 can't extract symlinks from ZIP archives: let's use bsdtar instead - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libarchive-tools" - fi - ;; - oci8@debian | pdo_oci@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libaio[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unzip" - ;; - odbc@alpine | pdo_odbc@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent unixodbc" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unixodbc-dev" - ;; - odbc@debian | pdo_odbc@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libodbc1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unixodbc-dev" - ;; - openswoole@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent postgresql-libs libstdc++ $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile curl-dev postgresql-dev linux-headers $buildRequiredPackageLists_libssldev" - ;; - openswoole@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libcurl3-gnutls libpq5" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev libcurl4-gnutls-dev libpq-dev" - ;; - parle@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - ;; - pdo_dblib@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent freetds" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - pdo_dblib@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsybdb5" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - pdo_firebird@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev ncurses-dev" - if ! isFirebirdInstalled; then - COMPILE_LIBS="$COMPILE_LIBS firebird" - if test $PHP_MAJMIN_VERSION -ge 804; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev" - if ! isLibTommathInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libtommath" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake" - fi - if ! isLibTomcryptInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libtomcrypt" - fi - fi - fi - ;; - pdo_firebird@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libfbclient2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile firebird-dev libib-util" - ;; - pgsql@alpine | pdo_pgsql@alpine | pq@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent postgresql-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile postgresql-dev" - ;; - pgsql@debian | pdo_pgsql@debian | pq@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libpq5" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libpq-dev" - ;; - php_trie@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - ;; - phpy@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent python3" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile python3-dev" - ;; - phpy@debian) - if test $DISTRO_VERSION_NUMBER -ge 12; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libpython3.11" - elif test $DISTRO_VERSION_NUMBER -ge 11; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libpython3.9" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libpython3.7" - fi - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile python3-dev" - ;; - pkcs11@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent softhsm" - ;; - pkcs11@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsofthsm2" - ;; - pspell@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent aspell-libs $(expandASpellDictionaries)" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile aspell-dev" - ;; - pspell@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libaspell15 $(expandASpellDictionaries)" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libpspell-dev" - ;; - rdkafka@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent librdkafka" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile librdkafka-dev" - ;; - rdkafka@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^librdkafka\+*[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile librdkafka-dev" - ;; - recode@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent recode" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile recode-dev" - ;; - recode@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent librecode0" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile librecode-dev" - ;; - redis@alpine) - if test $PHP_MAJMIN_VERSION -ge 700; then - case "$DISTRO_VERSION" in - alpine@3.7) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent zstd" - ;; - *) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent zstd-libs" - ;; - esac - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zstd-dev" - if test $PHP_MAJMIN_VERSION -ge 702; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lz4-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile lz4-dev" - fi - fi - ;; - redis@debian) - if test $PHP_MAJMIN_VERSION -ge 700; then - case "$DISTRO_VERSION" in - debian@8) - ## There's no APT package for libzstd - ;; - debian@9) - ## libzstd is too old (available: 1.1.2, required: 1.3.0+) - ;; - *) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libzstd[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libzstd-dev" - ;; - esac - fi - if test $PHP_MAJMIN_VERSION -ge 702; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblz4-1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liblz4-dev" - fi - ;; - relay@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lz4-libs zstd-libs" - if test $DISTRO_MAJMIN_VERSION -ge 317; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent $buildRequiredPackageLists_libssl" - fi - ;; - saxon@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_volatile unzip" - ;; - seasclick@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - ;; - simdjson@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - ;; - smbclient@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsmbclient" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile samba-dev" - ;; - smbclient@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsmbclient" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsmbclient-dev" - ;; - snappy@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent snappy" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile snappy-dev" - ;; - snappy@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libsnappy1(v[0-9]+)?$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsnappy-dev" - ;; - snmp@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent net-snmp-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile net-snmp-dev" - ;; - snmp@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent snmp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsnmp-dev" - ;; - snuffleupagus@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent pcre" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile pcre-dev" - ;; - snuffleupagus@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libpcre3-dev" - ;; - soap@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - soap@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - sockets@alpine) - if test $PHP_MAJMIN_VERSION -ge 802; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile linux-headers" - fi - ;; - sodium@alpine | libsodium@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsodium" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsodium-dev" - ;; - sodium@debian | libsodium@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libsodium[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsodium-dev" - ;; - solr@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile curl-dev libxml2-dev" - ;; - solr@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libcurl3-gnutls" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libcurl4-gnutls-dev libxml2-dev" - ;; - sourceguardian@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent eudev-libs" - ;; - spx@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev" - ;; - spx@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev" - ;; - sqlsrv@alpine | pdo_sqlsrv@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++ unixodbc" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unixodbc-dev" - ;; - sqlsrv@debian | pdo_sqlsrv@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent unixodbc" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unixodbc-dev" - if ! isMicrosoftSqlServerODBCInstalled; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile gnupg apt-transport-https" - fi - ;; - ssh2@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libssh2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libssh2-dev" - ;; - ssh2@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libssh2-1-dev" - ;; - stomp@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev" - ;; - stomp@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev" - ;; - swoole@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent postgresql-libs libstdc++ $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile curl-dev postgresql-dev linux-headers $buildRequiredPackageLists_libssldev" - if test $PHP_MAJMIN_VERSION -ge 702; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent c-ares" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile c-ares-dev" - if test $PHP_MAJMIN_VERSION -ge 801; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent zstd-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile sqlite-dev zstd-dev" - fi - fi - case "${IPE_SWOOLE_WITHOUT_IOURING:-}" in - 1 | y* | Y*) ;; - *) - # iouring support in swoole 6 requires liburing 2.5+: available since Alpine 3.19 - # but with Alpine 3.19 we have a "invalid use of incomplete type 'const struct statx'" error - if test $DISTRO_MAJMIN_VERSION -ge 320; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liburing" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liburing-dev" - fi - ;; - esac - ;; - swoole@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libcurl3-gnutls libpq5" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev libcurl4-gnutls-dev libpq-dev" - if test $PHP_MAJMIN_VERSION -ge 702; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libc-ares2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libc-ares-dev" - if test $PHP_MAJMIN_VERSION -ge 800; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libbrotli1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev libbrotli-dev" - if test $PHP_MAJMIN_VERSION -ge 801; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsqlite3-dev" - if test $DISTRO_VERSION_NUMBER -ge 11; then - # swoole 6 requires libzstd >= 1.4.0, but on debian 10 (buster) we have 1.3.8 - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libzstd[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libzstd-dev" - fi - fi - fi - fi - if test $DISTRO_VERSION_NUMBER -ge 13; then - # iouring support in swoole 6 requires liburing 2.5+: available since Debian Trixie (13) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liburing2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liburing-dev" - fi - ;; - sybase_ct@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent freetds" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - sybase_ct@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libct4" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - tdlib@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++ $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile git cmake gperf zlib-dev $buildRequiredPackageLists_libssldev linux-headers readline-dev" - ;; - tdlib@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile git cmake gperf zlib1g-dev $buildRequiredPackageLists_libssldev" - ;; - tensor@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent openblas" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile lapack-dev openblas-dev" - if test $DISTRO_MAJMIN_VERSION -le 317; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lapack" - if test $DISTRO_MAJMIN_VERSION -le 316; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libexecinfo" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libexecinfo-dev" - if test $DISTRO_MAJMIN_VERSION -le 310; then - if ! stringInList --force-overwrite "$IPE_APK_FLAGS"; then - IPE_APK_FLAGS="$IPE_APK_FLAGS --force-overwrite" - fi - fi - fi - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblapack" - fi - ;; - tensor@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblapacke" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liblapack-dev libopenblas-dev liblapacke-dev" - if test $DISTRO_VERSION_NUMBER -le 9; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-6 libopenblas-base" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-6-dev" - elif test $DISTRO_VERSION_NUMBER -le 10; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-8 libopenblas-base" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-8-dev" - elif test $DISTRO_VERSION_NUMBER -le 11; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-10 libopenblas-base" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-10-dev" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-12 libopenblas0" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-12-dev" - fi - ;; - tidy@alpine) - if test $DISTRO_MAJMIN_VERSION -ge 315; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent tidyhtml" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent tidyhtml-libs" - fi - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile tidyhtml-dev" - ;; - tidy@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libtidy-?[0-9][0-9.\-]*(deb[0-9])?$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libtidy-dev" - ;; - uuid@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libuuid" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile util-linux-dev" - ;; - uuid@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile uuid-dev" - ;; - uv@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libuv" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libuv-dev" - ;; - uv@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libuv1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libuv1-dev" - ;; - vips@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent vips" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile vips-dev" - ;; - vips@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libvips" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libvips-dev" - ;; - wddx@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - wddx@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - wikidiff2@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile git" - ;; - wikidiff2@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libthai0" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile git libthai-dev" - ;; - xdebug@alpine) - if test $PHP_MAJMIN_VERSION -ge 800; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile linux-headers" - fi - ;; - xlswriter@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev" - ;; - xlswriter@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev" - ;; - xmldiff@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - xmldiff@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - xmlrpc@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - xmlrpc@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - xpass@alpine) - if ! isLibXCryptInstalled; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile linux-headers" - COMPILE_LIBS="$COMPILE_LIBS libxcrypt" - fi - ;; - xsl@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libxslt" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxslt-dev libgcrypt-dev" - ;; - xsl@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libxslt1\.1$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxslt-dev" - ;; - yaml@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent yaml" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile yaml-dev" - ;; - yaml@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libyaml-0-2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libyaml-dev" - ;; - yar@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile curl-dev" - ;; - yar@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libcurl3-gnutls" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libcurl4-gnutls-dev" - ;; - zip@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libzip" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake gnutls-dev libzip-dev $buildRequiredPackageLists_libssldev zlib-dev" - ;; - zip@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libzip[0-9]$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake gnutls-dev $buildRequiredPackageLists_libssldev libzip-dev libbz2-dev zlib1g-dev" - case "$DISTRO_VERSION" in - debian@8) - # Debian Jessie doesn't seem to provide libmbedtls - ;; - *) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libmbedtls[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmbedtls-dev" - ;; - esac - ;; - zmq@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent zeromq-dev" - ;; - zmq@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libzmq3-dev" - ;; - zookeeper@alpine) - if ! test -f /usr/local/include/zookeeper/zookeeper.h; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile maven automake libtool openjdk8" - fi - ;; - zookeeper@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libzookeeper-mt2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libzookeeper-mt-dev" - ;; - esac - shift - done - PACKAGES_PERSISTENT_NEW='' - PACKAGES_PERSISTENT_PRE='' - PACKAGES_VOLATILE='' - PACKAGES_PREVIOUS='' - if test -z "$buildRequiredPackageLists_persistent$buildRequiredPackageLists_volatile"; then - return - fi - if test -n "$buildRequiredPackageLists_persistent"; then - PACKAGES_PERSISTENT_NEW="$(expandPackagesToBeInstalled $buildRequiredPackageLists_persistent)" - if test -s "$IPE_ERRFLAG_FILE"; then - exit 1 - fi - resetIFS - for buildRequiredPackageLists_package in $buildRequiredPackageLists_persistent; do - buildRequiredPackageLists_package="$(expandInstalledSystemPackageName "$buildRequiredPackageLists_package")" - if test -n "$buildRequiredPackageLists_package"; then - PACKAGES_PERSISTENT_PRE="$PACKAGES_PERSISTENT_PRE $buildRequiredPackageLists_package" - fi - done - PACKAGES_PERSISTENT_PRE="${PACKAGES_PERSISTENT_PRE# }" - fi - if test -n "$buildRequiredPackageLists_volatile"; then - buildRequiredPackageLists_packages="$(expandPackagesToBeInstalled $buildRequiredPackageLists_volatile)" - if test -s "$IPE_ERRFLAG_FILE"; then - exit 1 - fi - resetIFS - for buildRequiredPackageLists_package in $buildRequiredPackageLists_packages; do - if ! stringInList "$buildRequiredPackageLists_package" "$PACKAGES_PERSISTENT_NEW"; then - if test "$buildRequiredPackageLists_package" != icu-data-en || ! stringInList icu-data-full "$PACKAGES_PERSISTENT_NEW"; then - PACKAGES_VOLATILE="$PACKAGES_VOLATILE $buildRequiredPackageLists_package" - fi - fi - done - PACKAGES_VOLATILE="${PACKAGES_VOLATILE# }" - fi - if test -n "$PACKAGES_PERSISTENT_NEW$PACKAGES_VOLATILE"; then - case "$DISTRO" in - debian) - PACKAGES_PREVIOUS="$(dpkg --get-selections | grep -E '\sinstall$' | awk '{ print $1 }')" - ;; - esac - fi -} - -# Get the full list of APT/APK packages that will be installed, given the required packages -# -# Arguments: -# $1: the list of required APT/APK packages -# -# Output: -# Space-separated list of every APT/APK packages that will be installed -expandPackagesToBeInstalled() { - expandPackagesToBeInstalled_result='' - case "$DISTRO" in - alpine) - expandPackagesToBeInstalled_log="$(apk add --simulate $@ 2>&1 || printf '\nERROR: apk failed\n')" - if test -n "$(printf '%s' "$expandPackagesToBeInstalled_log" | grep -E '^ERROR:')"; then - printf 'FAILED TO LIST THE WHOLE PACKAGE LIST FOR\n' >&2 - printf '%s ' "$@" >&2 - printf '\n\nCOMMAND OUTPUT:\n%s\n' "$expandPackagesToBeInstalled_log" >&2 - echo 'y' >"$IPE_ERRFLAG_FILE" - exit 1 - fi - IFS=' -' - for expandPackagesToBeInstalled_line in $expandPackagesToBeInstalled_log; do - if test -n "$(printf '%s' "$expandPackagesToBeInstalled_line" | grep -E '^\([0-9]*/[0-9]*) Installing ')"; then - expandPackagesToBeInstalled_result="$expandPackagesToBeInstalled_result $(printf '%s' "$expandPackagesToBeInstalled_line" | cut -d ' ' -f 3)" - fi - done - resetIFS - ;; - debian) - expandPackagesToBeInstalled_log="$(apt-get install -sy --no-install-recommends $@ 2>&1 || printf '\nE: apt-get failed\n')" - if test -n "$(printf '%s' "$expandPackagesToBeInstalled_log" | grep -E '^E:')"; then - printf 'FAILED TO LIST THE WHOLE PACKAGE LIST FOR\n' >&2 - printf '%s ' "$@" >&2 - printf '\n\nCOMMAND OUTPUT:\n%s\n' "$expandPackagesToBeInstalled_log" >&2 - echo 'y' >"$IPE_ERRFLAG_FILE" - exit 1 - fi - expandPackagesToBeInstalled_inNewPackages=0 - IFS=' -' - for expandPackagesToBeInstalled_line in $expandPackagesToBeInstalled_log; do - if test $expandPackagesToBeInstalled_inNewPackages -eq 0; then - if test "$expandPackagesToBeInstalled_line" = 'The following NEW packages will be installed:'; then - expandPackagesToBeInstalled_inNewPackages=1 - fi - elif test "$expandPackagesToBeInstalled_line" = "${expandPackagesToBeInstalled_line# }"; then - break - else - resetIFS - for expandPackagesToBeInstalled_newPackage in $expandPackagesToBeInstalled_line; do - expandPackagesToBeInstalled_result="$expandPackagesToBeInstalled_result $expandPackagesToBeInstalled_newPackage" - done - IFS=' -' - fi - done - resetIFS - ;; - esac - printf '%s' "${expandPackagesToBeInstalled_result# }" -} - -# Check if a system package is installed; if so we prints its name. -# -# Arguments: -# $1: the name of the package to be checked (regular expressions accepted: they must start with a ^) -expandInstalledSystemPackageName() { - if test "$1" = "${1#^}"; then - expandInstalledSystemPackageName_grepflags='-Fx' - else - expandInstalledSystemPackageName_grepflags='-E' - fi - case "$DISTRO" in - alpine) - apk info | grep $expandInstalledSystemPackageName_grepflags -- "$1" || test $? -eq 1 - ;; - debian) - dpkg --get-selections | grep -E '\sinstall$' | awk '{ print $1 }' | cut -d: -f1 | grep $expandInstalledSystemPackageName_grepflags -- "$1" || test $? -eq 1 - ;; - esac -} - -# Retrieve the number of available cores (alternative to nproc if not available) -# -# Output: -# The number of processor cores available -getProcessorCount() { - if test -n "${IPE_PROCESSOR_COUNT:-}"; then - echo $IPE_PROCESSOR_COUNT - return - fi - if command -v nproc >/dev/null 2>&1; then - nproc - else - getProcessorCount_tmp=$(cat /proc/cpuinfo | grep -E '^processor\s*:\s*\d+$' | wc -l) - if test $getProcessorCount_tmp -ge 1; then - echo $getProcessorCount_tmp - else - echo 1 - fi - fi -} - -# Set these variables: -# - TARGET_TRIPLET the build target tripled (eg 'x86_64-linux-gnu', 'x86_64-alpine-linux-musl') -setTargetTriplet() { - TARGET_TRIPLET="$(gcc -print-multiarch 2>/dev/null || true)" - if test -z "$TARGET_TRIPLET"; then - TARGET_TRIPLET="$(gcc -dumpmachine)" - fi -} - -# Retrieve the number of processors to be used when compiling an extension -# -# Arguments: -# $1: the handle of the PHP extension to be compiled -# Output: -# The number of processors to be used -getCompilationProcessorCount() { - case "$1" in - '') - # The above extensions don't support parallel compilation - echo 1 - ;; - *) - # All the other extensions support parallel compilation - getProcessorCount - ;; - esac -} - -# Get the full path of a PHP extension given its name. -# -# Arguments: -# $1: the name of the PHP extension -# -# Output: -# The absolute path of the PHP extension file (or nothing if the file can't be found) -getModuleFullPath() { - case "$1" in - apcu_bc) - getModuleFullPath_path="$PHP_EXTDIR/apc.so" - ;; - seasclick) - getModuleFullPath_path="$PHP_EXTDIR/SeasClick.so" - ;; - *) - getModuleFullPath_path="$PHP_EXTDIR/$1.so" - ;; - esac - if ! test -f "$getModuleFullPath_path"; then - printf 'Unable to find the file of the PHP extension "%s"\n' "$1" >&2 - exit 1 - fi - printf '%s' "$getModuleFullPath_path" -} - -# Post-process a PHP module just compiled and installed in the PHP extension directory -# -# Arguments: -# $1: the name of the PHP extension -# -# Return: -# 0 (true): if suceeded -# non-zero (false): in case of errors -postProcessModule() { - postProcessModule_file="$(getModuleFullPath "$1")" - if test $PHP_DEBUGBUILD -ne 1; then - printf 'Removing symbols from %s... ' "$postProcessModule_file" - postProcessModule_preSize="$(stat -c %s "$postProcessModule_file")" - strip --strip-all "$postProcessModule_file" - postProcessModule_postSize="$(stat -c %s "$postProcessModule_file")" - printf 'done (%s bytes saved).\n' "$((postProcessModule_preSize - postProcessModule_postSize))" - fi - return $? -} - -# Get the type of the php.ini entry to be used for a PHP extension -# -# Arguments: -# $1: the name of the PHP extension -# -# Output: -# zend_extension or extension -getModuleIniEntryType() { - case "$1" in - ioncube_loader | sourceguardian) - # On PHP 5.5, docker-php-ext-enable fails to detect that ionCube Loader and sourceguardian are Zend extensions - if test $PHP_MAJMIN_VERSION -le 505; then - printf 'zend_extension' - return 0 - fi - ;; - esac - getModuleIniEntryType_file="$(getModuleFullPath "$1")" - if readelf --wide --syms "$getModuleIniEntryType_file" | grep -Eq ' zend_extension_entry$'; then - printf 'zend_extension' - else - printf 'extension' - fi -} - -# Create the contents of a PHP ini file that enables an extension -# -# Arguments: -# $1: the name of the PHP extension -# $2: additional php.ini configuration (optional) -# -# Output: -# The contents of the ini file -buildPhpExtensionIniContent() { - buildPhpExtensionIniContent_type="$(getModuleIniEntryType "$1")" - buildPhpExtensionIniContent_soFile="$(getModuleFullPath "$1")" - buildPhpExtensionIniContent_result="$(printf '%s=%s' "$buildPhpExtensionIniContent_type" "${buildPhpExtensionIniContent_soFile##$PHP_EXTDIR/}")" - if test -n "${2:-}"; then - buildPhpExtensionIniContent_result="$(printf '%s\n%s' "$buildPhpExtensionIniContent_result" "$2")" - fi - printf '%s' "$buildPhpExtensionIniContent_result" -} - -# Check that a PHP module actually works (better to run this check before enabling the extension) -# -# Arguments: -# $1: the name of the PHP extension -# $2: base name (without path and extension) of additional php.ini configuration (optional) -# $3: additional php.ini configuration (optional) -# -# Return: -# 0 (true): if the string is in the list -# 1 (false): if the string is not in the list -checkModuleWorking() { - if test -n "${2:-}"; then - checkModuleWorking_iniFile="$PHP_INI_DIR/conf.d/$2--temp.ini" - else - checkModuleWorking_iniFile="$PHP_INI_DIR/conf.d/docker-php-ext-$1--temp.ini" - fi - checkModuleWorking_iniContent="$(buildPhpExtensionIniContent "$1" "${3:-}")" - printf 'Check if the %s module can be loaded... ' "$1" - checkModuleWorking_errBefore="$(php -r 'return;' 2>&1 || true)" - printf '%s' "$checkModuleWorking_iniContent" >"$checkModuleWorking_iniFile" - checkModuleWorking_errAfter="$(php -r 'return;' 2>&1 || true)" - rm "$checkModuleWorking_iniFile" - if test "$checkModuleWorking_errAfter" != "$checkModuleWorking_errBefore"; then - printf 'Error loading the "%s" extension:\n%s\n' "$1" "$checkModuleWorking_errAfter" >&2 - return 1 - fi - printf 'ok.\n' - return 0 -} - -# Enable a PHP extension -# -# Arguments: -# $1: the name of the PHP extension to be enabled -# $2: base name (without path and extension) of additional php.ini configuration (optional) -# $3: additional php.ini configuration (optional) -enablePhpExtension() { - if test -n "${2:-}"; then - enablePhpExtension_iniFile="$PHP_INI_DIR/conf.d/$2.ini" - else - enablePhpExtension_iniFile="$PHP_INI_DIR/conf.d/docker-php-ext-$1.ini" - fi - enablePhpExtension_iniContent="$(buildPhpExtensionIniContent "$1" "${3:-}")" - case "${IPE_DONT_ENABLE:-}" in - 1 | y* | Y*) - enablePhpExtension_enableCommand="/usr/local/bin/docker-php-ext-enable-$1" - printf '%s' "$enablePhpExtension_iniContent" >"$enablePhpExtension_iniFile-disabled" - printf '\n' >>"$enablePhpExtension_iniFile-disabled" - cat <"$enablePhpExtension_enableCommand" -#!/bin/sh - -if test -f '$enablePhpExtension_iniFile-disabled'; then - echo 'Enabling extension $1' - mv '$enablePhpExtension_iniFile-disabled' '$enablePhpExtension_iniFile' -else - echo 'The extension $1 has already been enabled' -fi -EOT - chmod +x "$enablePhpExtension_enableCommand" - printf '## Extension %s not enabled.\nYou can enable it by running the following command:\n%s\n\n' "$1" "$(basename "$enablePhpExtension_enableCommand")" - ;; - *) - printf '%s' "$enablePhpExtension_iniContent" >"$enablePhpExtension_iniFile" - printf '\n' >>"$enablePhpExtension_iniFile" - ;; - esac -} - -# Mark the pre-installed APT/APK packages as used -# that way they won't be uninstalled by accident -markPreinstalledPackagesAsUsed() { - printf '### MARKING PRE-INSTALLED PACKAGES AS IN-USE ###\n' - case "$DISTRO" in - alpine) - printf '# Packages: %s\n' "$PACKAGES_PERSISTENT_PRE" - apk add $PACKAGES_PERSISTENT_PRE - ;; - debian) - apt-mark manual $PACKAGES_PERSISTENT_PRE - ;; - esac -} - -# Install the required APT/APK packages -# -# Arguments: -# $@: the list of APT/APK packages to be installed -installRequiredPackages() { - printf '### INSTALLING REQUIRED PACKAGES ###\n' - printf '# Packages to be kept after installation: %s\n' "$PACKAGES_PERSISTENT_NEW" - printf '# Packages to be used only for installation: %s\n' "$PACKAGES_VOLATILE" - case "$DISTRO" in - alpine) - apk add $IPE_APK_FLAGS $PACKAGES_PERSISTENT_NEW $PACKAGES_VOLATILE - # https://gitlab.alpinelinux.org/alpine/aports/-/issues/12763#note_172090 - # https://github.com/mlocati/docker-php-extension-installer/issues/385 - # https://github.com/mlocati/docker-php-extension-installer/issues/537#issuecomment-1078748882 - for installRequiredPackages_item in wget; do - if test -n "$(expandInstalledSystemPackageName "$installRequiredPackages_item")"; then - apk add --upgrade "$installRequiredPackages_item" - fi - done - ;; - debian) - apt-get install -qqy --no-install-recommends $PACKAGES_PERSISTENT_NEW $PACKAGES_VOLATILE - ;; - esac -} - -# Get the version of an installed APT/APK package -# -# Arguments: -# $1: the name of the installed package -# -# Output: -# The numeric part of the package version, with from 1 to 3 numbers -# -# Example: -# 1 -# 1.2 -# 1.2.3 -getInstalledPackageVersion() { - case "$DISTRO" in - alpine) - apk info "$1" | head -n1 | cut -c $((${#1} + 2))- | grep -o -E '^[0-9]+(\.[0-9]+){0,2}' - ;; - debian) - dpkg-query --showformat='${Version}' --show "$1" 2>/dev/null | grep -o -E '^[0-9]+(\.[0-9]+){0,2}' - ;; - esac -} - -# Compare two versions -# -# Arguments: -# $1: the first version -# $2: the second version -# -# Output -# -1 if $1 is less than $2 -# 0 if $1 is the same as $2 -# 1 if $1 is greater than $2 -compareVersions() { - compareVersions_v1="$1.0.0" - compareVersions_v2="$2.0.0" - compareVersions_vMin="$(printf '%s\n%s' "$compareVersions_v1" "$compareVersions_v2" | sort -t '.' -n -k1,1 -k2,2 -k3,3 | head -n 1)" - if test "$compareVersions_vMin" != "$compareVersions_v1"; then - echo '1' - elif test "$compareVersions_vMin" = "$compareVersions_v2"; then - echo '0' - else - echo '-1' - fi -} - -# Install Oracle Instant Client & SDK -# -# Set: -# ORACLE_INSTANTCLIENT_LIBPATH -installOracleInstantClient() { - case "${IPE_INSTANTCLIENT_BASIC:-}" in - 1 | y* | Y*) - installOracleInstantClient_handle=basic - ;; - *) - installOracleInstantClient_handle=basiclite - ;; - esac - case $PHP_BITS in - 32) - installOracleInstantClient_client=client - installOracleInstantClient_version='19.9' - installOracleInstantClient_ic=https://download.oracle.com/otn_software/linux/instantclient/199000/instantclient-$installOracleInstantClient_handle-linux-$installOracleInstantClient_version.0.0.0dbru.zip - installOracleInstantClient_sdk=https://download.oracle.com/otn_software/linux/instantclient/199000/instantclient-sdk-linux-$installOracleInstantClient_version.0.0.0dbru.zip - ;; - *) - case $(uname -m) in - aarch64*) - installOracleInstantClient_client=client64 - installOracleInstantClient_version='19.10' - installOracleInstantClient_ic=https://download.oracle.com/otn_software/linux/instantclient/191000/instantclient-$installOracleInstantClient_handle-linux.arm64-$installOracleInstantClient_version.0.0.0dbru.zip - installOracleInstantClient_sdk=https://download.oracle.com/otn_software/linux/instantclient/191000/instantclient-sdk-linux.arm64-$installOracleInstantClient_version.0.0.0dbru.zip - ;; - *) - installOracleInstantClient_client=client64 - installOracleInstantClient_version='21.1' - installOracleInstantClient_ic=https://download.oracle.com/otn_software/linux/instantclient/211000/instantclient-$installOracleInstantClient_handle-linux.x64-$installOracleInstantClient_version.0.0.0.zip - installOracleInstantClient_sdk=https://download.oracle.com/otn_software/linux/instantclient/211000/instantclient-sdk-linux.x64-$installOracleInstantClient_version.0.0.0.zip - ;; - esac - ;; - esac - ORACLE_INSTANTCLIENT_LIBPATH=/usr/lib/oracle/$installOracleInstantClient_version/$installOracleInstantClient_client/lib - if ! test -e "$ORACLE_INSTANTCLIENT_LIBPATH"; then - printf 'Downloading Oracle Instant Client v%s (%s)... ' "$installOracleInstantClient_version" "$installOracleInstantClient_handle" - installOracleInstantClient_src="$(getPackageSource $installOracleInstantClient_ic)" - mkdir -p "/usr/lib/oracle/$installOracleInstantClient_version/$installOracleInstantClient_client" - mv "$installOracleInstantClient_src" "$ORACLE_INSTANTCLIENT_LIBPATH" - echo 'done.' - fi - if ! test -e "$ORACLE_INSTANTCLIENT_LIBPATH/sdk" && ! test -L "$ORACLE_INSTANTCLIENT_LIBPATH/sdk"; then - printf 'Downloading Oracle Instant SDK v%s... ' "$installOracleInstantClient_version" - installOracleInstantClient_src="$(getPackageSource $installOracleInstantClient_sdk)" - ln -sf "$installOracleInstantClient_src/sdk" "$ORACLE_INSTANTCLIENT_LIBPATH/sdk" - UNNEEDED_PACKAGE_LINKS="$UNNEEDED_PACKAGE_LINKS $ORACLE_INSTANTCLIENT_LIBPATH/sdk" - echo 'done.' - fi - case "$DISTRO" in - alpine) - if ! test -e /usr/lib/libresolv.so.2 && test -e /lib/libc.so.6; then - ln -s /lib/libc.so.6 /usr/lib/libresolv.so.2 - fi - installOracleInstantClient_ldconf=/etc/ld-musl-${TARGET_TRIPLET%-alpine-linux-musl}.path - if test -e "$installOracleInstantClient_ldconf"; then - if ! cat "$installOracleInstantClient_ldconf" | grep -q "$ORACLE_INSTANTCLIENT_LIBPATH"; then - cat "$ORACLE_INSTANTCLIENT_LIBPATH" | awk -v suffix=":$ORACLE_INSTANTCLIENT_LIBPATH" '{print NR==1 ? $0suffix : $0}' >"$ORACLE_INSTANTCLIENT_LIBPATH" - fi - else - case $PHP_BITS in - 32) - echo "/lib:/usr/local/lib:/usr/lib:$ORACLE_INSTANTCLIENT_LIBPATH" >"$installOracleInstantClient_ldconf" - ;; - *) - echo "/lib64:/lib:/usr/local/lib:/usr/lib:$ORACLE_INSTANTCLIENT_LIBPATH" >"$installOracleInstantClient_ldconf" - ;; - esac - fi - ;; - debian) - if ! test -e /etc/ld.so.conf.d/oracle-instantclient.conf; then - echo "$ORACLE_INSTANTCLIENT_LIBPATH" >/etc/ld.so.conf.d/oracle-instantclient.conf - ldconfig - fi - ;; - esac -} - -# Check if the Microsoft SQL Server ODBC Driver is installed -# -# Return: -# 0 (true): if the string is in the list -# 1 (false): if the string is not in the list -isMicrosoftSqlServerODBCInstalled() { - test -d /opt/microsoft/msodbcsql*/ -} - -# Install the Microsoft SQL Server ODBC Driver -# see https://learn.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server -installMicrosoftSqlServerODBC() { - printf 'Installing the Microsoft SQL Server ODBC Driver\n' - case "$DISTRO" in - alpine) - rm -rf /tmp/src/msodbcsql.apk - if test $PHP_MAJMIN_VERSION -le 703; then - curl -sSLf -o /tmp/src/msodbcsql.apk https://download.microsoft.com/download/e/4/e/e4e67866-dffd-428c-aac7-8d28ddafb39b/msodbcsql17_17.10.6.1-1_amd64.apk - else - case $(uname -m) in - aarch64 | arm64 | armv8) - installMicrosoftSqlServerODBC_arch=arm64 - ;; - *) - installMicrosoftSqlServerODBC_arch=amd64 - ;; - esac - curl -sSLf -o /tmp/src/msodbcsql.apk https://download.microsoft.com/download/3/5/5/355d7943-a338-41a7-858d-53b259ea33f5/msodbcsql18_18.3.3.1-1_$installMicrosoftSqlServerODBC_arch.apk - fi - printf '\n' | apk add --allow-untrusted /tmp/src/msodbcsql.apk - rm -rf /tmp/src/msodbcsql.apk - ;; - debian) - printf -- '- installing the Microsoft APT key\n' - if test $DISTRO_VERSION_NUMBER -eq 11; then - curl -sSLf -o /etc/apt/trusted.gpg.d/microsoft.asc https://packages.microsoft.com/keys/microsoft.asc - elif test $DISTRO_VERSION_NUMBER -ge 12; then - curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor --yes --output /usr/share/keyrings/microsoft-prod.gpg - else - # apt-key is deprecated - curl -sSLf https://packages.microsoft.com/keys/microsoft.asc | apt-key add - - fi - if ! test -f /etc/apt/sources.list.d/mssql-release.list; then - printf -- '- adding the Microsoft APT source list\n' - curl -sSLf https://packages.microsoft.com/config/debian/$DISTRO_VERSION_NUMBER/prod.list >/etc/apt/sources.list.d/mssql-release.list - invokeAptGetUpdate - fi - printf -- '- installing the APT package\n' - if test $PHP_MAJMIN_VERSION -le 703; then - ACCEPT_EULA=Y apt-get install -qqy --no-install-recommends msodbcsql17 - elif test $DISTRO_VERSION_NUMBER -ge 9 && test $DISTRO_VERSION_NUMBER -le 12; then - # On Debian 9 to 12 we have both msodbcsql17 and msodbcsql18: let's install just one - ACCEPT_EULA=Y apt-get install -qqy --no-install-recommends msodbcsql18 - else - ACCEPT_EULA=Y apt-get install -qqy --no-install-recommends '^msodbcsql[0-9]+$' - fi - ;; - esac -} - -# Check if libaom is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibaomInstalled() { - if ! test -f /usr/local/lib/libaom.so && ! test -f /usr/lib/libaom.so && ! test -f /usr/lib/x86_64*/libaom.so; then - return 1 - fi - if ! test -f /usr/local/include/aom/aom_codec.h && ! test -f /usr/include/aom/aom_codec.h; then - return 1 - fi - return 0 -} - -# Install libaom -installLibaom() { - printf 'Installing libaom\n' - installLibaom_version=3.10.0 - installLibaom_dir="$(getPackageSource https://aomedia.googlesource.com/aom/+archive/v$installLibaom_version.tar.gz)" - mkdir -- "$installLibaom_dir/my.build" - cd -- "$installLibaom_dir/my.build" - cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=1 -DENABLE_DOCS=0 -DENABLE_EXAMPLES=0 -DENABLE_TESTDATA=0 -DENABLE_TESTS=0 -DENABLE_TOOLS=0 -DCMAKE_INSTALL_LIBDIR:PATH=lib .. - ninja -j $(getProcessorCount) install - cd - >/dev/null - ldconfig || true -} - -# Check if libdav1d is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibdav1dInstalled() { - if ! test -f /usr/local/lib/libdav1d.so && ! test -f /usr/lib/libdav1d.so && ! test -f /usr/lib/x86_64*/libdav1d.so; then - return 1 - fi - if ! test -f /usr/local/include/dav1d/dav1d.h && ! test -f /usr/include/dav1d/dav1d.h; then - return 1 - fi - return 0 -} - -# Install libdav1d -installLibdav1d() { - printf 'Installing libdav1d\n' - installLibdav1d_dir="$(getPackageSource https://github.com/videolan/dav1d/archive/refs/tags/1.3.0.tar.gz)" - mkdir -- "$installLibdav1d_dir/build" - cd -- "$installLibdav1d_dir/build" - meson --buildtype release -Dprefix=/usr .. - ninja -j $(getProcessorCount) install - cd - >/dev/null - if test -f /usr/lib/$TARGET_TRIPLET/libdav1d.so && ! test -f /usr/lib/libdav1d.so; then - ln -s /usr/lib/$TARGET_TRIPLET/libdav1d.so /usr/lib/ - fi - ldconfig || true -} - -# Check if libyuv is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibyuvInstalled() { - if ! test -f /usr/local/lib/libyuv.so && ! test -f /usr/lib/libyuv.so && ! test -f /usr/lib/x86_64*/libyuv.so && ! test -f /usr/lib/x86_64*/libyuv.so.*; then - return 1 - fi - if ! test -f /usr/local/include/libyuv.h && ! test -f /usr/include/libyuv.h; then - return 1 - fi - return 0 -} - -# Install libyuv -installLibyuv() { - printf 'Installing libyuv\n' - installLibyuv_dir="$(getPackageSource https://chromium.googlesource.com/libyuv/libyuv/+archive/d359a9f922af840b043535d43cf9d38b220d102e.tar.gz)" - mkdir -- "$installLibyuv_dir/build" - cd -- "$installLibyuv_dir/build" - cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr -B. .. - make -j$(getProcessorCount) install - cd - >/dev/null -} - -# Check if libavif is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibavifInstalled() { - if ! test -f /usr/local/lib/libavif.so && ! test -f /usr/lib/libavif.so && ! test -f /usr/lib/x86_64*/libavif.so; then - return 1 - fi - if ! test -f /usr/local/include/avif/avif.h && ! test -f /usr/include/avif/avif.h; then - return 1 - fi - return 0 -} - -# Install libavif -installLibavif() { - printf 'Installing libavif\n' - installLibavif_dir="$(getPackageSource https://codeload.github.com/AOMediaCodec/libavif/tar.gz/refs/tags/v1.0.3)" - mkdir -- "$installLibavif_dir/build" - cd -- "$installLibavif_dir/build" - cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON -DAVIF_CODEC_AOM=ON -DCMAKE_INSTALL_LIBDIR:PATH=lib - make -j$(getProcessorCount) install - cd - >/dev/null -} - -# Install libmpdec -installLibMPDec() { - installLibMPDec_src="$(getPackageSource https://www.bytereef.org/software/mpdecimal/releases/mpdecimal-2.5.1.tar.gz)" - cd -- "$installLibMPDec_src" - ./configure --disable-cxx - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -# Check if libdatrie is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibDatrieInstalled() { - if ! test -f /usr/local/lib/libdatrie.so && ! test -f /usr/lib/libdatrie.so && ! test -f /usr/lib/x86_64*/libdatrie.so; then - return 1 - fi - if ! test -f /usr/local/include/datrie/trie.h && ! test -f /usr/include/datrie/trie.h; then - return 1 - fi - return 0 -} - -# Install libdatrie -installLibDatrie() { - printf 'Installing libdatrie\n' - installLibDatrie_src="$(getPackageSource https://github.com/tlwg/libdatrie/releases/download/v0.2.13/libdatrie-0.2.13.tar.xz)" - cd -- "$installLibDatrie_src" - ./configure - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -# Check if libdatrie is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibThaiInstalled() { - return 1 - if ! test -f /usr/local/lib/libthai.so && ! test -f /usr/lib/libthai.so && ! test -f /usr/lib/x86_64*/libthai.so; then - return 1 - fi - if ! test -f /usr/local/include/thai/thailib.h && ! test -f /usr/include/thai/thailib.h; then - return 1 - fi - return 0 -} - -# Install libdatrie -installLibThai() { - printf 'Installing libthai\n' - installLibThai_src="$(getPackageSource https://github.com/tlwg/libthai/releases/download/v0.1.29/libthai-0.1.29.tar.xz)" - cd -- "$installLibThai_src" - ./configure - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -isLibTommathInstalled() { - if test -f /usr/local/lib/libtommath.a && test -f /usr/local/include/tommath.h; then - return 0 - fi - return 1 -} - -installLibTommath() { - printf 'Installing libtommath\n' - installLibTommath_src="$(getPackageSource https://github.com/libtom/libtommath/releases/download/v1.3.0/ltm-1.3.0.tar.xz)" - mkdir -p "$installLibTommath_src/build" - cd -- "$installLibTommath_src/build" - CFLAGS='-fPIC' cmake -DCMAKE_BUILD_TYPE=Release .. - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -isLibTomcryptInstalled() { - if test -f /usr/local/lib/libtomcrypt.a && test -f /usr/local/include/tomcrypt.h; then - return 0 - fi - return 1 -} - -installLibTomcrypt() { - printf 'Installing libtomcrypt\n' - installLibTomcrypt_src="$(getPackageSource https://github.com/libtom/libtomcrypt/releases/download/v1.18.2/crypt-1.18.2.tar.xz)" - cd -- "$installLibTomcrypt_src" - CFLAGS='-fPIC' make -j$(getProcessorCount) - make install -} - -isFirebirdInstalled() { - if test -f /usr/lib/libfbclient.so && test -f /usr/include/ibase.h; then - return 0 - fi - if test -d /tmp/src/firebird; then - return 0 - fi - return 1 -} - -installFirebird() { - printf 'Installing firebird\n' - if test $PHP_MAJMIN_VERSION -ge 804; then - installFirebird_src="$(getPackageSource https://github.com/FirebirdSQL/firebird/releases/download/v5.0.2/Firebird-5.0.2.1613-0-source.tar.xz)" - cd -- "$installFirebird_src" - ./configure --enable-client-only - make -j$(getProcessorCount) - cp -Rd gen/Release/firebird/include/* /usr/include - cp -Rd gen/Release/firebird/lib/* /usr/lib - cd - >/dev/null - else - mv "$(getPackageSource https://github.com/FirebirdSQL/firebird/releases/download/R2_5_9/Firebird-2.5.9.27139-0.tar.bz2)" /tmp/src/firebird - cd /tmp/src/firebird - # Patch rwlock.h (this has been fixed in later release of firebird 3.x) - sed -i '194s/.*/#if 0/' src/common/classes/rwlock.h - ./configure --with-system-icu - # -j option can't be used: make targets must be compiled sequentially - make -s btyacc_binary gpre_boot libfbstatic libfbclient - cp gen/firebird/lib/libfbclient.so /usr/lib/ - ln -s /usr/lib/libfbclient.so /usr/lib/libfbclient.so.2 - cd - >/dev/null - fi -} - -isLibXCryptInstalled() { - if ! test -f /usr/local/lib/libcrypt.so && ! test -f /usr/lib/libcrypt.so && ! test -f /usr/lib/x86_64*/libcrypt.so; then - return 1 - fi - return 0 -} - -installLibXCrypt() { - printf 'Installing libxcrypt\n' - installLibXCrypt_version=4.4.36 - installLibXCrypt_src="$(getPackageSource "https://github.com/besser82/libxcrypt/releases/download/v$installLibXCrypt_version/libxcrypt-$installLibXCrypt_version.tar.xz")" - cd -- "$installLibXCrypt_src" - ./configure --prefix /usr - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -isLibenchant1Installed() { - if test -f /usr/lib/libenchant.so || test -f /usr/local/lib/libenchant.so; then - return 0 - fi - return 1 -} - -installLibenchant1() { - printf 'Installing libenchant1\n' - installLibenchant1_src="$(getPackageSource https://github.com/rrthomas/enchant/releases/download/enchant-1-6-1/enchant-1.6.1.tar.gz)" - cd -- "$installLibenchant1_src" - ./configure - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -# Install Composer -installComposer() { - installComposer_version="$(getWantedPHPModuleVersion @composer)" - installComposer_version="${installComposer_version#^}" - if test -z "$installComposer_version"; then - installComposer_fullname=composer - installComposer_flags='' - else - installComposer_fullname="$(printf 'composer v%s' "$installComposer_version")" - if printf '%s' "$installComposer_version" | grep -Eq '^[0-9]+$'; then - installComposer_flags="--$installComposer_version" - else - installComposer_flags="--version=$installComposer_version" - fi - fi - printf '### INSTALLING %s ###\n' "$installComposer_fullname" - actuallyInstallComposer /usr/local/bin composer "$installComposer_flags" -} - -# Actually install composer -# -# Arguments: -# $1: the directory where composer should be installed (required) -# $2: the composer filename (optional, default: composer) -# $3. additional flags for the composer installed (optional) -actuallyInstallComposer() { - actuallyInstallComposer_installer="$(mktemp -p /tmp/src)" - curl -sSLf -o "$actuallyInstallComposer_installer" https://getcomposer.org/installer - actuallyInstallComposer_expectedSignature="$(curl -sSLf https://composer.github.io/installer.sig)" - actuallyInstallComposer_actualSignature="$(php -n -r "echo hash_file('sha384', '$actuallyInstallComposer_installer');")" - if test "$actuallyInstallComposer_expectedSignature" != "$actuallyInstallComposer_actualSignature"; then - printf 'Verification of composer installer failed!\nExpected signature: %s\nActual signature: %s\n' "$actuallyInstallComposer_expectedSignature" "$actuallyInstallComposer_actualSignature" >&2 - exit 1 - fi - actuallyInstallComposer_flags="--install-dir=$1" - if test -n "${2:-}"; then - actuallyInstallComposer_flags="$actuallyInstallComposer_flags --filename=$2" - else - actuallyInstallComposer_flags="$actuallyInstallComposer_flags --filename=composer" - fi - if test -n "${3:-}"; then - actuallyInstallComposer_flags="$actuallyInstallComposer_flags $3" - fi - php "$actuallyInstallComposer_installer" $actuallyInstallComposer_flags - rm -- "$actuallyInstallComposer_installer" -} - -# Install ionCube Loader -installIonCubeLoader() { - installIonCubeLoader_version='' - if test $PHP_MAJMIN_VERSION -lt 804; then - # For 14.4.0 we have a Segmentation Fault - installIonCubeLoader_version=14.0.0 - fi - installIonCubeLoader_versionForUrl='' - installIonCubeLoader_versionForMessage=latest - if test -n "$installIonCubeLoader_version"; then - installIonCubeLoader_versionForUrl="_$installIonCubeLoader_version" - installIonCubeLoader_versionForMessage="v$installIonCubeLoader_version" - fi - # See https://www.ioncube.com/loaders.php - case $PHP_BITS in - 32) - case $(uname -m) in - aarch* | arm*) - installIonCubeLoader_url="https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_armv7l$installIonCubeLoader_versionForUrl.tar.gz" - ;; - *) - installIonCubeLoader_url="https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86$installIonCubeLoader_versionForUrl.tar.gz" - ;; - esac - ;; - *) - case $(uname -m) in - aarch64 | arm64 | armv8) - installIonCubeLoader_url="https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_aarch64$installIonCubeLoader_versionForUrl.tar.gz" - ;; - *) - installIonCubeLoader_url="https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64$installIonCubeLoader_versionForUrl.tar.gz" - ;; - esac - ;; - esac - printf 'Downloading ionCube Loader (%s)... ' "$installIonCubeLoader_versionForMessage" - installIonCubeLoader_dir="$(getPackageSource $installIonCubeLoader_url)" - echo 'done.' - installIonCubeLoader_so=$(php -r "printf('ioncube_loader_lin_%s.%s%s.so', PHP_MAJOR_VERSION, PHP_MINOR_VERSION, ZEND_THREAD_SAFE ? '_ts' : '');") - cp "$installIonCubeLoader_dir/$installIonCubeLoader_so" "$(getPHPExtensionsDir)/ioncube_loader.so" -} - -# Install SourceGuardian Loader -installSourceGuardian() { - # See https://www.sourceguardian.com/loaders.html - case $PHP_BITS in - 32) - installSourceGuardian_url=https://www.sourceguardian.com/loaders/download/loaders.linux-i386.tar.gz - ;; - *) - case $(uname -m) in - aarch64 | arm64 | armv8) - installSourceGuardian_url=https://www.sourceguardian.com/loaders/download/loaders.linux-aarch64.tar.gz - ;; - *) - installSourceGuardian_url=https://www.sourceguardian.com/loaders/download/loaders.linux-x86_64.tar.gz - ;; - esac - ;; - esac - printf 'Downloading SourceGuardian... ' - installSourceGuardian_dir="$(getPackageSource $installSourceGuardian_url)" - printf 'done (version: %s)\n' "$(cat "$installSourceGuardian_dir/version")" - for installSourceGuardian_phpv in $PHP_MAJDOTMINDOTPAT_VERSION $PHP_MAJDOTMIN_VERSION; do - installSourceGuardian_file="$installSourceGuardian_dir/ixed.$PHP_MAJDOTMIN_VERSION" - if test $PHP_THREADSAFE -eq 1; then - installSourceGuardian_file="${installSourceGuardian_file}ts" - fi - installSourceGuardian_file="${installSourceGuardian_file}.lin" - if test -f "$installSourceGuardian_file"; then - mv "$installSourceGuardian_file" "$(getPHPExtensionsDir)/sourceguardian.so" - return - fi - done - printf 'Unable to find a SourceGuardian compatible with PHP %s or PHP %s.\nAvailable SourceGuardian versions:\n' "$PHP_MAJDOTMINDOTPAT_VERSION" "$PHP_MAJDOTMIN_VERSION" >&2 - ls -1 "$installSourceGuardian_dir" | grep -E '^ixed\..*\.lin$' | sed -E 's/^[^0-9]+([0-9]+(\.[0-9]+)*).*$/\1/' | sort | uniq >&2 - exit 1 -} - -# Install Cargo (if not yet installed) -installCargo() { - if command -v cargo >/dev/null; then - return - fi - installCargo_cargoversion= - if ! test -f "$HOME/.cargo/env"; then - printf '# Installing cargo\n' - case "$DISTRO" in - alpine) - # see https://github.com/hyperledger/indy-vdr/issues/69#issuecomment-998104850 - export RUSTFLAGS='-C target-feature=-crt-static' - ;; - esac - curl https://sh.rustup.rs -sSf | sh -s -- -y -q - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -le 310; then - # With version 1.84.0 we have this error: - # Error relocating /root/.rustup/toolchains/stable-x86_64-unknown-linux-musl/bin/cargo: posix_spawn_file_actions_addchdir_np: symbol not found - # See https://github.com/rust-lang/rust/pull/131851#issue-2595663507 - installCargo_cargoversion=1.83.0 - fi - ;; - esac - fi - . "$HOME/.cargo/env" - if test -n "$installCargo_cargoversion"; then - rustup default -- "$installCargo_cargoversion" - fi - if test -z "${IPE_UNINSTALL_CARGO:-}"; then - IPE_UNINSTALL_CARGO=y - fi -} - -installNewRelic() { - printf '# Installing newrelic\n' - # see https://docs.newrelic.com/docs/apm/agents/php-agent/getting-started/php-agent-compatibility-requirements/ - if test $PHP_MAJMIN_VERSION -le 701; then - installNewRelic_baseUrl=https://download.newrelic.com/php_agent/archive/10.21.0.11/ - else - installNewRelic_baseUrl=https://download.newrelic.com/php_agent/release/ - fi - installNewRelic_search='\bnewrelic-php[0-9.]*-[0-9]+(\.[0-9]+)*-linux' - case "$DISTRO" in - alpine) - installNewRelic_search="$installNewRelic_search-musl" - ;; - esac - installNewRelic_file="$(curl -sSLf -o- "$installNewRelic_baseUrl" | sed -E 's/<[^>]*>//g' | grep -Eo "$installNewRelic_search.tar.gz" | sort | head -1)" - installNewRelic_url="$installNewRelic_baseUrl$installNewRelic_file" - installNewRelic_src="$(getPackageSource "$installNewRelic_url")" - cd -- "$installNewRelic_src" - NR_INSTALL_USE_CP_NOT_LN=1 NR_INSTALL_SILENT=1 ./newrelic-install install - case "${IPE_NEWRELIC_DAEMON:-}" in - 1 | y* | Y*) - NR_INSTALL_USE_CP_NOT_LN=1 NR_INSTALL_SILENT=1 ./newrelic-install install_daemon - ;; - esac - case "${IPE_NEWRELIC_KEEPLOG:-}" in - 1 | y* | Y*) ;; - *) - rm -f /tmp/nrinstall-*.tar - ;; - esac - cd - >/dev/null - cat <&2 - fi - if test -n "$(getModuleSourceCodePath "$1")"; then - printf '### WARNING the module "%s" is bundled with PHP, you can NOT specify a source code path for it\n' "$1" >&2 - fi - case "$1" in - dba) - if test -e /usr/lib/$TARGET_TRIPLET/libdb-5.3.so && ! test -e /usr/lib/libdb-5.3.so; then - ln -s /usr/lib/$TARGET_TRIPLET/libdb-5.3.so /usr/lib/ - fi - if test $PHP_MAJMIN_VERSION -le 505; then - docker-php-source extract - patch /usr/src/php/ext/dba/config.m4 </dev/null - ;; - oci8 | pdo_oci) - installOracleInstantClient - if test "$1" = oci8; then - docker-php-ext-configure "$1" "--with-oci8=instantclient,$ORACLE_INSTANTCLIENT_LIBPATH" - elif test "$1" = pdo_oci; then - docker-php-ext-configure "$1" "--with-pdo-oci=instantclient,$ORACLE_INSTANTCLIENT_LIBPATH" - fi - ;; - pdo_odbc) - docker-php-ext-configure pdo_odbc --with-pdo-odbc=unixODBC,/usr - ;; - snmp) - case "$DISTRO" in - alpine) - mkdir -p -m 0755 /var/lib/net-snmp/mib_indexes - ;; - esac - ;; - sockets) - case "$PHP_MAJDOTMINDOTPAT_VERSION" in - 8.0.15 | 8.1.2) - sed -i '70 i #ifndef _GNU_SOURCE' /usr/src/php/ext/sockets/config.m4 - sed -i '71 i #define _GNU_SOURCE' /usr/src/php/ext/sockets/config.m4 - sed -i '72 i #endif' /usr/src/php/ext/sockets/config.m4 - ;; - esac - ;; - sybase_ct) - docker-php-ext-configure sybase_ct --with-sybase-ct=/usr - ;; - tidy) - case "$DISTRO" in - alpine) - if ! test -f /usr/include/buffio.h; then - ln -s /usr/include/tidybuffio.h /usr/include/buffio.h - UNNEEDED_PACKAGE_LINKS="$UNNEEDED_PACKAGE_LINKS /usr/include/buffio.h" - fi - ;; - esac - ;; - zip) - if test $PHP_MAJMIN_VERSION -le 505; then - docker-php-ext-configure zip - elif test $PHP_MAJMIN_VERSION -le 703; then - docker-php-ext-configure zip --with-libzip - else - docker-php-ext-configure zip --with-zip - fi - ;; - esac - installBundledModule_errBefore="$(php -r 'return;' 2>&1 || true)" - docker-php-ext-install -j$(getProcessorCount) "$1" - case "$1" in - imap) - case "$DISTRO_VERSION" in - debian@9) - dpkg -r libc-client2007e-dev - ;; - esac - ;; - esac - case "${IPE_SKIP_CHECK:-}" in - 1 | y* | Y*) ;; - *) - php -r 'return;' >/dev/null 2>/dev/null || true - installBundledModule_errAfter="$(php -r 'return;' 2>&1 || true)" - if test "$installBundledModule_errAfter" != "$installBundledModule_errBefore"; then - printf 'PHP has problems after installing the "%s" extension:\n%s\n' "$1" "$installBundledModule_errAfter" >&2 - rm "$PHP_INI_DIR/conf.d/docker-php-ext-$1.ini" || true - return 1 - fi - ;; - esac -} - -# Fetch a tar.gz file, extract it and returns the path of the extracted folder. -# -# Arguments: -# $1: the URL of the file to be downloaded -# -# Output: -# The path of the extracted directory -getPackageSource() { - mkdir -p /tmp/src - getPackageSource_tempFile=$(mktemp -p /tmp/src) - curl -sSLf -o "$getPackageSource_tempFile" "$1" - getPackageSource_tempDir=$(mktemp -p /tmp/src -d) - cd "$getPackageSource_tempDir" - tar -xzf "$getPackageSource_tempFile" 2>/dev/null || tar -xf "$getPackageSource_tempFile" 2>/dev/null || ( - if command -v bsdtar >/dev/null; then - bsdtar -xf "$getPackageSource_tempFile" - else - unzip -q "$getPackageSource_tempFile" - fi - ) - cd - >/dev/null - unlink "$getPackageSource_tempFile" - getPackageSource_outDir='' - for getPackageSource_i in $(ls "$getPackageSource_tempDir"); do - if test -n "$getPackageSource_outDir" || test -f "$getPackageSource_tempDir/$getPackageSource_i"; then - getPackageSource_outDir='' - break - fi - getPackageSource_outDir="$getPackageSource_tempDir/$getPackageSource_i" - done - if test -n "$getPackageSource_outDir"; then - printf '%s' "$getPackageSource_outDir" - else - printf '%s' "$getPackageSource_tempDir" - fi -} - -# Install a PECL/remote PHP module given its handle -# -# Arguments: -# $1: the handle of the PHP module -installRemoteModule() { - installRemoteModule_module="$1" - printf '### INSTALLING REMOTE MODULE %s ###\n' "$installRemoteModule_module" - installRemoteModule_version="$(resolvePHPModuleVersion "$installRemoteModule_module")" - installRemoteModule_path="$(getModuleSourceCodePath "$installRemoteModule_module")" - rm -rf "$CONFIGURE_FILE" - installRemoteModule_manuallyInstalled=0 - installRemoteModule_cppflags='' - installRemoteModule_ini_basename='' - installRemoteModule_ini_extra='' - case "$installRemoteModule_module" in - amqp) - if test -z "$installRemoteModule_version"; then - if test "$DISTRO_VERSION" = debian@8; then - # in Debian Jessie we have librabbitmq version 0.5.2 - installRemoteModule_version=1.9.3 - elif test $PHP_MAJMIN_VERSION -le 505; then - installRemoteModule_version=1.9.4 - elif test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=1.11.0 - fi - fi - ;; - apcu) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=4.0.11 - fi - fi - ;; - apcu_bc) - # apcu_bc must be loaded after apcu - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - ;; - ast) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=1.0.16 - fi - fi - ;; - bitset) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.0.4 - fi - fi - ;; - blackfire) - case $(uname -m) in - i386 | i686 | x86) - installRemoteModule_tmp1=i386 - ;; - aarch64 | arm64 | armv8) - installRemoteModule_tmp1=arm64 - ;; - *) - installRemoteModule_tmp1=amd64 - ;; - esac - case $DISTRO in - alpine) - installRemoteModule_distro=alpine - ;; - *) - installRemoteModule_distro=linux - ;; - esac - installRemoteModule_tmp2=$(php -r 'echo PHP_MAJOR_VERSION . PHP_MINOR_VERSION . (ZEND_THREAD_SAFE ? "-zts" : "");') - installRemoteModule_tmp="$(mktemp -p /tmp/src -d)" - cd "$installRemoteModule_tmp" - curl -sSLf --user-agent Docker https://blackfire.io/api/v1/releases/probe/php/$installRemoteModule_distro/$installRemoteModule_tmp1/$installRemoteModule_tmp2 | tar xz - mv blackfire-*.so $(getPHPExtensionsDir)/blackfire.so - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - installRemoteModule_ini_extra="$(printf '%sblackfire.agent_socket=tcp://blackfire:8307\n' "$installRemoteModule_ini_extra")" - ;; - cassandra) - installRemoteModule_src="$(getPackageSource https://github.com/nano-interactive/ext-cassandra/tarball/1cf12c5ce49ed43a2c449bee4b7b23ce02a37bf0)" - cd "$installRemoteModule_src/ext" - phpize - ./configure - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - ;; - cmark) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=1.1.0 - fi - fi - if ! test -e /usr/local/lib/libcmark.so && ! test -e /usr/local/lib64/libcmark.so && ! test -e /usr/lib/libcmark.so && ! test -e /usr/lib64/libcmark.so && ! test -e /lib/libcmark.so; then - if test $(compareVersions "$(cmake --version | head -n1 | sed -E 's/^.* //')" '3.7') -lt 0; then - installRemoteModule_tmp=0.29.0 - else - installRemoteModule_tmp=0.31.1 - fi - cd "$(getPackageSource https://github.com/commonmark/cmark/archive/$installRemoteModule_tmp.tar.gz)" - make -s -j$(getProcessorCount) cmake_build - make -s -j$(getProcessorCount) install - cd - >/dev/null - case "$DISTRO" in - alpine) - if test -e /usr/local/lib64/libcmark.so.$installRemoteModule_tmp && ! test -e /usr/local/lib/libcmark.so.$installRemoteModule_tmp; then - ln -s /usr/local/lib64/libcmark.so.$installRemoteModule_tmp /usr/local/lib/ - fi - ;; - *) - ldconfig || true - ;; - esac - fi - ;; - csv) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=0.3.1 - fi - fi - ;; - ddtrace) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=0.75.0 - fi - if test -z "$installRemoteModule_version"; then - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -le 312; then - # cc is not supported due to a memcmp related bug - installRemoteModule_version=1.1.0 - fi - ;; - esac - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 0.75.0) -ge 0; then - installCargo - fi - ;; - decimal) - case "$DISTRO" in - alpine) - if ! test -f /usr/local/lib/libmpdec.so; then - installLibMPDec - fi - ;; - debian) - if test $DISTRO_MAJMIN_VERSION -ge 1200; then - if test -z "$(ldconfig -p | grep -E '\slibmpdec.so\s')"; then - installLibMPDec - fi - fi - ;; - esac - ;; - ds) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 703; then - installRemoteModule_version=1.3.0 - elif test $PHP_MAJMIN_VERSION -lt 704; then - installRemoteModule_version=1.4.0 - fi - fi - ;; - ecma_intl) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=alpha - fi - ;; - ev) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 800; then - installRemoteModule_version=1.1.5 - fi - fi - ;; - event) - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 2.4.0) -ge 0; then - # Enable internal debugging in Event - addConfigureOption enable-event-debug no - # Enable sockets support in Event - if php --ri sockets >/dev/null 2>/dev/null; then - addConfigureOption enable-event-sockets yes - else - addConfigureOption enable-event-sockets no - fi - # libevent installation prefix - addConfigureOption with-event-libevent-dir /usr - # Include libevent's pthreads library and enable thread safety support in Event - addConfigureOption with-event-pthreads yes - # Include libevent protocol-specific functionality support including HTTP, DNS, and RPC - addConfigureOption with-event-extra yes - # Include libevent OpenSSL support - addConfigureOption with-event-openssl yes - # PHP Namespace for all Event classes - if test -n "${IPE_EVENT_NAMESPACE:-}"; then - addConfigureOption with-event-ns "$IPE_EVENT_NAMESPACE" - else - addConfigureOption with-event-ns no - fi - # openssl installation prefix - addConfigureOption with-openssl-dir yes - elif test $(compareVersions "$installRemoteModule_version" 1.7.6) -ge 0; then - # Enable internal debugging in Event - addConfigureOption enable-event-debug no - # Enable sockets support in Event - if php --ri sockets >/dev/null 2>/dev/null; then - addConfigureOption enable-event-sockets yes - else - addConfigureOption enable-event-sockets no - fi - # libevent installation prefix - addConfigureOption with-event-libevent-dir /usr - # Include libevent's pthreads library and enable thread safety support in Event - addConfigureOption with-event-pthreads yes - # Include libevent protocol-specific functionality support including HTTP, DNS, and RPC - addConfigureOption with-event-extra yes - # Include libevent OpenSSL support - addConfigureOption with-event-openssl yes - # openssl installation prefix - addConfigureOption with-openssl-dir no - elif test $(compareVersions "$installRemoteModule_version" 1.3.0) -ge 0; then - # Enable internal debugging in event - addConfigureOption enable-event-debug no - # libevent installation prefix - addConfigureOption with-event-libevent-dir /usr - # Include libevent's pthreads library and enable thread safety support in event - addConfigureOption with-event-pthreads yes - # Include libevent protocol-specific functionality support including HTTP, DNS, and RPC - addConfigureOption with-event-extra yes - # Include libevent OpenSSL support - addConfigureOption with-event-openssl yes - # openssl installation prefix - addConfigureOption with-openssl-dir no - fi - # event must be loaded after sockets - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - ;; - gearman) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.1.2 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=2.1.3 - fi - fi - case "$DISTRO" in - alpine) - if ! test -e /usr/local/include/libgearman/gearman.h || ! test -e /usr/local/lib/libgearman.so; then - installRemoteModule_src="$(getPackageSource https://github.com/gearman/gearmand/releases/download/1.1.21/gearmand-1.1.21.tar.gz)" - cd -- "$installRemoteModule_src" - ./configure - make -j$(getProcessorCount) install-binPROGRAMS - make -j$(getProcessorCount) install-nobase_includeHEADERS - cd - >/dev/null - fi - ;; - esac - ;; - geoip) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=beta - fi - ;; - geos) - if test -z "$installRemoteModule_path"; then - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=0def35611f773c951432f1f06a155471a5cb7611 - fi - installRemoteModule_src="$(getPackageSource https://git.osgeo.org/gitea/geos/php-geos/archive/$installRemoteModule_version.tar.gz)" - cd "$installRemoteModule_src" - ./autogen.sh - ./configure - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - fi - ;; - geospatial) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.2.1 - else - installRemoteModule_version=beta - fi - fi - ;; - gmagick) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.1.7RC3 - else - installRemoteModule_version=beta - fi - fi - ;; - grpc) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.33.1 - else - case "$DISTRO_VERSION" in - debian@8) - installRemoteModule_version=1.46.3 - ;; - alpine@3.7 | alpine@3.8 | debian@9) # With newer version: "This package requires GCC 7 or higher" - installRemoteModule_version=1.52.1 - ;; - esac - fi - fi - if test -z "$installRemoteModule_version" || test "$installRemoteModule_version" = 1.35.0; then - case "$DISTRO_VERSION" in - alpine@3.13) - installRemoteModule_cppflags='-Wno-maybe-uninitialized' - ;; - esac - fi - ;; - http) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.6.0 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=3.2.4 - fi - fi - if test $PHP_MAJMIN_VERSION -ge 700; then - if ! test -e /usr/local/lib/libidnkit.so; then - installRemoteModule_src="$(getPackageSource https://jprs.co.jp/idn/idnkit-2.3.tar.bz2)" - cd -- "$installRemoteModule_src" - CFLAGS=-Wno-incompatible-pointer-types ./configure - make -j$(getProcessorCount) install - cd - >/dev/null - fi - fi - # http must be loaded after raphf and propro - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - ;; - igbinary) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.0.8 - fi - fi - ;; - imap) - # Include Kerberos Support - addConfigureOption with-kerberos yes - # Include SSL Support - addConfigureOption with-imap-ssl yes - ;; - inotify) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.1.6 - fi - fi - ;; - ion) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=alpha - fi - if ! test -f /usr/local/lib/libionc.so || ! test -f /usr/local/include/ionc/ion.h; then - echo 'Installing ion-c... ' - installRemoteModule_src="$(mktemp -p /tmp/src -d)" - git clone -q -c advice.detachedHead=false --depth 1 --branch v1.1.3 https://github.com/amzn/ion-c.git "$installRemoteModule_src/ion" - ( - cd "$installRemoteModule_src/ion" - git submodule init -q - git submodule update -q - mkdir -p build - cd build - CFLAGS='-Wno-incompatible-pointer-types -Wno-stringop-overflow -Wno-discarded-qualifiers' cmake -DCMAKE_BUILD_TYPE=Release .. -Wno-dev - make clean - make -j$(getProcessorCount) install - ) - rm -rf "$installRemoteModule_src" - fi - addConfigureOption with-ion "shared,/usr/local" - ;; - ioncube_loader) - installIonCubeLoader - installRemoteModule_manuallyInstalled=1 - ;; - jsmin) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=2.0.1 - fi - fi - ;; - jsonpath) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 800; then - installRemoteModule_version=1.0.1 - fi - fi - ;; - luasandbox) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 702; then - installRemoteModule_version=3.0.3 - fi - fi - ;; - lz4) - if test -z "$installRemoteModule_path"; then - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=0.4.3 - fi - installRemoteModule_src="$(getPackageSource https://github.com/kjdev/php-ext-lz4/archive/refs/tags/$installRemoteModule_version.tar.gz)" - cd "$installRemoteModule_src" - phpize - ./configure --with-lz4-includedir=/usr - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - fi - ;; - lzf) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 702; then - installRemoteModule_version=1.6.8 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" '1.5.0') -ge 0; then - # Sacrifice speed in favour of compression ratio? - case "${IPE_LZF_BETTERCOMPRESSION:-}" in - 1 | y* | Y*) - addConfigureOption 'enable-lzf-better-compression' 'yes' - ;; - *) - addConfigureOption 'enable-lzf-better-compression' 'no' - ;; - esac - fi - ;; - mailparse) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.1.6 - elif test $PHP_MAJMIN_VERSION -le 702; then - installRemoteModule_version=3.1.3 - fi - fi - ;; - memcache) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.2.7 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=4.0.5.2 - fi - fi - ;; - memcached) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.2.0 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - # Set the path to libmemcached install prefix - addConfigureOption 'with-libmemcached-dir' 'no' - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" '3.0.0') -ge 0; then - # Set the path to ZLIB install prefix - addConfigureOption 'with-zlib-dir' 'no' - # Use system FastLZ library - addConfigureOption 'with-system-fastlz' 'no' - # Enable memcached igbinary serializer support - if php --ri igbinary >/dev/null 2>/dev/null; then - addConfigureOption 'enable-memcached-igbinary' 'yes' - else - addConfigureOption 'enable-memcached-igbinary' 'no' - fi - # Enable memcached msgpack serializer support - if php --ri msgpack >/dev/null 2>/dev/null; then - addConfigureOption 'enable-memcached-msgpack' 'yes' - else - addConfigureOption 'enable-memcached-msgpack' 'no' - fi - # Enable memcached json serializer support - addConfigureOption 'enable-memcached-json' 'yes' - # Enable memcached protocol support - addConfigureOption 'enable-memcached-protocol' 'no' # https://github.com/php-memcached-dev/php-memcached/issues/418#issuecomment-449587972 - # Enable memcached sasl support - addConfigureOption 'enable-memcached-sasl' 'yes' - # Enable memcached session handler support - addConfigureOption 'enable-memcached-session' 'yes' - fi - # memcached must be loaded after msgpack - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - ;; - memprof) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.0.0 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=2.1.0 - fi - fi - ;; - mongo) - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" '1.5.0') -ge 0; then - # Build with Cyrus SASL (MongoDB Enterprise Authentication) support? - addConfigureOption '-with-mongo-sasl' 'yes' - fi - ;; - mongodb) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 505; then - installRemoteModule_version=1.5.5 - elif test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.7.5 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=1.9.2 - elif test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=1.11.1 - elif test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=1.16.2 - elif test $PHP_MAJMIN_VERSION -le 800; then - installRemoteModule_version=1.20.1 - fi - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 1.17.0) -ge 0; then - # Enable developer flags? (yes/no) - addConfigureOption enable-mongodb-developer-flags no - # Enable code coverage? (yes/no) - addConfigureOption enable-mongodb-coverage no - # Use system libraries for libbson, libmongoc, and libmongocrypt? (yes/no) - addConfigureOption with-mongodb-system-libs no - # Enable client-side encryption? (auto/yes/no) - addConfigureOption with-mongodb-client-side-encryption yes - # Enable Snappy for compression? (auto/yes/no) - addConfigureOption with-mongodb-snappy yes - # Enable zlib for compression? (auto/system/bundled/no) - addConfigureOption with-mongodb-zlib yes - # Enable zstd for compression? (auto/yes/no) - addConfigureOption with-mongodb-zstd yes - # Enable SASL for Kerberos authentication? (auto/cyrus/no) - addConfigureOption with-mongodb-sasl yes - # Enable crypto and TLS? (auto/openssl/libressl/darwin/no) - addConfigureOption with-mongodb-ssl yes - # Use system crypto profile (OpenSSL only)? (yes/no) - addConfigureOption enable-mongodb-crypto-system-profile yes - # Use bundled or system utf8proc for SCRAM-SHA-256 SASLprep? (bundled/system) - addConfigureOption with-mongodb-utf8proc bundled - fi - ;; - mosquitto) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=beta - fi - ;; - msgpack) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.5.7 - fi - fi - ;; - newrelic) - installNewRelic - installRemoteModule_manuallyInstalled=2 - ;; - oauth) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.2.3 - fi - fi - ;; - oci8 | pdo_oci) - installOracleInstantClient - if test "$installRemoteModule_module" = oci8; then - addConfigureOption with-oci8 "instantclient,$ORACLE_INSTANTCLIENT_LIBPATH" - elif test "$installRemoteModule_module" = pdo_oci; then - addConfigureOption with-pdo-oci "instantclient,$ORACLE_INSTANTCLIENT_LIBPATH" - fi - ;; - opencensus) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=alpha - fi - ;; - openswoole) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 704; then - installRemoteModule_version=4.10.0 - elif test $PHP_MAJMIN_VERSION -lt 801; then - installRemoteModule_version=22.0.0 - elif test $PHP_MAJMIN_VERSION -lt 802; then - installRemoteModule_version=22.1.2 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if php --ri sockets >/dev/null 2>/dev/null; then - installRemoteModule_sockets=yes - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - else - installRemoteModule_sockets=no - fi - installRemoteModule_openssl=yes - if test -n "$installRemoteModule_version" && test $(compareVersions "$installRemoteModule_version" 22.1.2) -ge 0; then - # enable coroutine sockets? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 protocol? - addConfigureOption enable-http2 yes - # enable coroutine mysqlnd? - addConfigureOption enable-mysqlnd yes - # enable coroutine curl? - addConfigureOption enable-hook-curl yes - # enable coroutine postgres? - addConfigureOption with-postgres yes - elif test $(compareVersions "$installRemoteModule_version" 22.1.1) -ge 0; then - # enable c-ares support? - addConfigureOption enable-cares yes - # enable coroutine sockets? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 protocol? - addConfigureOption enable-http2 yes - # enable coroutine mysqlnd? - addConfigureOption enable-mysqlnd yes - # enable coroutine curl? - addConfigureOption enable-hook-curl yes - # enable coroutine postgres? - addConfigureOption with-postgres yes - elif test $(compareVersions "$installRemoteModule_version" 22.1.0) -ge 0; then - # enable coroutine sockets? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 protocol? - addConfigureOption enable-http2 yes - # enable coroutine mysqlnd? - addConfigureOption enable-mysqlnd yes - # enable coroutine curl? - addConfigureOption enable-hook-curl yes - # enable coroutine postgres? - addConfigureOption with-postgres yes - elif test $(compareVersions "$installRemoteModule_version" 22.0.0) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable hook curl support? - addConfigureOption enable-hook-curl yes - # enable postgres support? - addConfigureOption with-postgres yes - elif test $(compareVersions "$installRemoteModule_version" 4.8.0) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable json support? - addConfigureOption enable-swoole-json yes - # enable curl support? - addConfigureOption enable-swoole-curl yes - # enable postgres support? - addConfigureOption with-postgres yes - else - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable json support? - addConfigureOption enable-swoole-json yes - # enable curl support? - addConfigureOption enable-swoole-curl yes - fi - ;; - operator) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=beta - fi - ;; - parallel) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=0.8.3 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=1.1.4 - fi - fi - ;; - parle) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 704; then - installRemoteModule_version=0.8.3 - else - installRemoteModule_version=beta - fi - fi - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 0.8.4) -ge 0; then - # Enable internal UTF-32 support in parle - addConfigureOption enable-parle-utf32 yes - fi - ;; - pcov) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=0.9.0 - fi - fi - ;; - phalcon) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMINPAT_VERSION -lt 70401; then - installRemoteModule_version=4.1.2 - elif test $PHP_MAJMIN_VERSION -lt 800; then - installRemoteModule_version=5.4.0 - fi - fi - installRemoteModule_cppflags='-Wno-incompatible-pointer-types' - ;; - php_trie) - if ! test -f /usr/local/include/hat-trie/include/tsl/htrie_map.h; then - installRemoteModule_src="$(getPackageSource https://codeload.github.com/Tessil/hat-trie/tar.gz/v0.6.0)" - mkdir -p /usr/local/include/hat-trie - mv "$installRemoteModule_src/include" /usr/local/include/hat-trie - fi - ;; - pq) - # pq must be loaded after raphf - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - ;; - propro) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.0.2 - fi - fi - ;; - protobuf) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=3.12.4 - elif test $PHP_MAJMIN_VERSION -lt 800; then - installRemoteModule_version=3.24.4 - elif test $PHP_MAJMIN_VERSION -lt 801; then - installRemoteModule_version=3.25.3 - fi - fi - ;; - psr) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 506; then - installRemoteModule_version=0.5.1 - elif test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=0.6.1 - elif test $PHP_MAJMIN_VERSION -lt 703; then - installRemoteModule_version=1.1.0 - fi - fi - ;; - pthreads) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.0.10 - fi - fi - ;; - raphf) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.1.2 - fi - fi - ;; - rdkafka) - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version"; then - installRemoteModule_version1='' - if test $PHP_MAJMIN_VERSION -le 505; then - installRemoteModule_version1=3.0.5 - elif test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version1=4.1.2 - fi - installRemoteModule_version2='' - case "$DISTRO" in - alpine) - installRemoteModule_tmp='librdkafka' - ;; - debian) - installRemoteModule_tmp='librdkafka*' - ;; - *) - installRemoteModule_tmp='' - ;; - esac - if test -n "$installRemoteModule_tmp"; then - installRemoteModule_tmp="$(getInstalledPackageVersion "$installRemoteModule_tmp")" - if test -n "$installRemoteModule_tmp" && test $(compareVersions "$installRemoteModule_tmp" '0.11.0') -lt 0; then - installRemoteModule_version2=3.1.3 - fi - fi - if test -z "$installRemoteModule_version1" || test -z "$installRemoteModule_version2"; then - installRemoteModule_version="$installRemoteModule_version1$installRemoteModule_version2" - elif test $(compareVersions "$installRemoteModule_version1" "$installRemoteModule_version2") -le 0; then - installRemoteModule_version="$installRemoteModule_version1" - else - installRemoteModule_version="$installRemoteModule_version2" - fi - fi - ;; - redis) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=4.3.0 - elif test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=5.3.7 - elif test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=6.0.2 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - # Enable igbinary serializer support? - if php --ri igbinary >/dev/null 2>/dev/null; then - addConfigureOption enable-redis-igbinary yes - else - addConfigureOption enable-redis-igbinary no - fi - # Enable lzf compression support? - addConfigureOption enable-redis-lzf yes - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 5.0.0) -ge 0; then - if ! test -e /usr/include/zstd.h || ! test -e /usr/lib/libzstd.so -o -e "/usr/lib/$TARGET_TRIPLET/libzstd.so"; then - installRemoteModule_zstdVersion=1.4.4 - installRemoteModule_zstdVersionMajor=$(echo $installRemoteModule_zstdVersion | cut -d. -f1) - rm -rf /tmp/src/zstd - mv "$(getPackageSource https://github.com/facebook/zstd/releases/download/v$installRemoteModule_zstdVersion/zstd-$installRemoteModule_zstdVersion.tar.gz)" /tmp/src/zstd - cd /tmp/src/zstd - make V=0 -j$(getProcessorCount) lib - cp -f lib/libzstd.so "/usr/lib/$TARGET_TRIPLET/libzstd.so.$installRemoteModule_zstdVersion" - ln -sf "/usr/lib/$TARGET_TRIPLET/libzstd.so.$installRemoteModule_zstdVersion" "/usr/lib/$TARGET_TRIPLET/libzstd.so.$installRemoteModule_zstdVersionMajor" - ln -sf "/usr/lib/$TARGET_TRIPLET/libzstd.so.$installRemoteModule_zstdVersion" "/usr/lib/$TARGET_TRIPLET/libzstd.so" - ln -sf /tmp/src/zstd/lib/zstd.h /usr/include/zstd.h - UNNEEDED_PACKAGE_LINKS="$UNNEEDED_PACKAGE_LINKS /usr/include/zstd.h" - cd - >/dev/null - fi - # Enable zstd compression support? - addConfigureOption enable-redis-zstd yes - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 6.0.0) -ge 0; then - # Enable msgpack serializer support? - if php --ri msgpack >/dev/null 2>/dev/null; then - addConfigureOption enable-redis-msgpack yes - else - addConfigureOption enable-redis-msgpack no - fi - # Enable lz4 compression? - addConfigureOption enable-redis-lz4 yes - # Use system liblz4? - addConfigureOption with-liblz4 yes - fi - fi - ;; - relay) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version="$(curl -sSLf https://builds.r2.relay.so/meta/latest)" - installRemoteModule_version="${installRemoteModule_version#v}" - fi - case $(uname -m) in - aarch64 | arm64 | armv8) - installRemoteModule_hardware=aarch64 - ;; - *) - installRemoteModule_hardware=x86-64 - ;; - esac - installRemoteModule_distro="$DISTRO" - installRemoteModule_flags='' - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -lt 317; then - installRemoteModule_distro=alpine3.9 - else - installRemoteModule_distro=alpine3.17 - fi - ;; - debian) - case "$(dpkg -l 'libssl*' | grep -E '^ii ' | cut -d' ' -f3)" in - libssl3*) - installRemoteModule_flags=+libssl3 - ;; - esac - ;; - esac - # See https://relay.so/builds - installRemoteModule_url="https://builds.r2.relay.so/v${installRemoteModule_version}/relay-v${installRemoteModule_version}-php${PHP_MAJDOTMIN_VERSION}-${installRemoteModule_distro}-${installRemoteModule_hardware}${installRemoteModule_flags}.tar.gz" - printf 'Downloading relay v%s (%s) from %s... ' "$installRemoteModule_version" "$installRemoteModule_hardware" "$installRemoteModule_url" - installRemoteModule_src="$(getPackageSource $installRemoteModule_url)" - echo 'done.' - cp -- "$installRemoteModule_src/relay-pkg.so" "$PHP_EXTDIR/relay.so" - sed -i "s/00000000-0000-0000-0000-000000000000/$(cat /proc/sys/kernel/random/uuid)/" "$PHP_EXTDIR/relay.so" - installRemoteModule_ini_extra="$(grep -vE '^[ \t]*extension[ \t]*=' $installRemoteModule_src/relay.ini)" - installRemoteModule_manuallyInstalled=1 - ;; - saxon) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -ge 800; then - installRemoteModule_version='12.4.2' - else - installRemoteModule_version='12.3' - fi - fi - installRemoteModule_majorVersion="${installRemoteModule_version%%.*}" - if test "$installRemoteModule_majorVersion" -ge 12; then - case $(uname -m) in - aarch64 | arm64 | armv8) - installRemoteModule_url=https://downloads.saxonica.com/SaxonC/EE/${installRemoteModule_majorVersion}/libsaxon-EEC-linux-aarch64-v${installRemoteModule_version}.zip - ;; - *) - installRemoteModule_url=https://downloads.saxonica.com/SaxonC/EE/${installRemoteModule_majorVersion}/libsaxon-EEC-linux-x86_64-v${installRemoteModule_version}.zip - ;; - esac - else - installRemoteModule_url=https://downloads.saxonica.com/SaxonC/EE/${installRemoteModule_majorVersion}/libsaxon-EEC-setup64-v${installRemoteModule_version}.zip - fi - installRemoteModule_dir="$(getPackageSource $installRemoteModule_url)" - if ! test -f /usr/lib/libsaxon-*.so; then - if test "$installRemoteModule_majorVersion" -ge 12; then - cp $installRemoteModule_dir/libs/nix/*.so /usr/lib/ - else - cp $installRemoteModule_dir/*.so /usr/lib/ - fi - ldconfig || true - fi - cd "$installRemoteModule_dir/Saxon.C.API" - phpize - ./configure --enable-saxon - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - ;; - seasclick) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.1.0 - fi - fi - ;; - seaslog) - installRemoteModule_cppflags='-Wno-incompatible-pointer-types' - ;; - smbclient) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.1.1 - elif test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=1.1.2 - fi - fi - ;; - snappy) - if test -z "$installRemoteModule_path"; then - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=0.2.1 - fi - installRemoteModule_src="$(getPackageSource https://github.com/kjdev/php-ext-snappy/archive/refs/tags/$installRemoteModule_version.tar.gz)" - cd "$installRemoteModule_src" - phpize - ./configure --with-snappy-includedir=/usr - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - fi - ;; - snuffleupagus) - if test -z "$installRemoteModule_path"; then - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 800; then - installRemoteModule_version=0.9.0 - elif test $PHP_MAJMIN_VERSION -le 801; then - installRemoteModule_version=0.10.0 - else - installRemoteModule_version=0.11.0 - fi - fi - installRemoteModule_src="$(getPackageSource https://codeload.github.com/jvoisin/snuffleupagus/tar.gz/v$installRemoteModule_version)" - cd "$installRemoteModule_src/src" - phpize - ./configure --enable-snuffleupagus - make -j$(getProcessorCount) install - cd - >/dev/null - cp -a "$installRemoteModule_src/config/default.rules" "$PHP_INI_DIR/conf.d/snuffleupagus.rules" - if test $(compareVersions "$installRemoteModule_version" 0.8.0) -ge 0; then - printf '\n# Disable "PHP version is not officially maintained anymore" message\nsp.global.show_old_php_warning.disable();\n' >>"$PHP_INI_DIR/conf.d/snuffleupagus.rules" - fi - else - if test -f "$installRemoteModule_path/config/default.rules"; then - cp -a "$installRemoteModule_path/config/default.rules" "$PHP_INI_DIR/conf.d/snuffleupagus.rules" - fi - fi - installRemoteModule_ini_extra="$(printf '%ssp.configuration_file=%s\n' "$installRemoteModule_ini_extra" "$PHP_INI_DIR/conf.d/snuffleupagus.rules")" - installRemoteModule_manuallyInstalled=1 - ;; - sodium | libsodium) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=1.0.7 - fi - fi - ;; - solr) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=2.4.0 - elif test $PHP_MAJMIN_VERSION -lt 704; then - installRemoteModule_version=2.6.0 - fi - fi - ;; - sourceguardian) - installSourceGuardian - installRemoteModule_manuallyInstalled=1 - ;; - spx) - if test -z "$installRemoteModule_path"; then - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=v0.4.18 - fi - if test "${installRemoteModule_version%.*}" = "$installRemoteModule_version"; then - installRemoteModule_displayVersion="$installRemoteModule_version" - else - installRemoteModule_displayVersion="git--master-$installRemoteModule_version" - fi - installRemoteModule_src="$(getPackageSource https://codeload.github.com/NoiseByNorthwest/php-spx/tar.gz/$installRemoteModule_version)" - cd -- "$installRemoteModule_src" - phpize - ./configure - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - fi - ;; - sqlsrv | pdo_sqlsrv) - isMicrosoftSqlServerODBCInstalled || installMicrosoftSqlServerODBC - if test -z "$installRemoteModule_version"; then - # https://docs.microsoft.com/it-it/sql/connect/php/system-requirements-for-the-php-sql-driver?view=sql-server-2017 - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=3.0.1 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=5.3.0 - elif test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=5.6.1 - elif test $PHP_MAJMIN_VERSION -le 702; then - installRemoteModule_version=5.8.1 - elif test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=5.9.0 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=5.10.1 - elif test $PHP_MAJMIN_VERSION -le 800; then - installRemoteModule_version=5.11.1 - fi - fi - ;; - ssh2) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.13 - fi - fi - ;; - stomp) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.0.9 - fi - fi - if test "$DISTRO" = debian; then - addConfigureOption with-openssl-dir yes - else - addConfigureOption with-openssl-dir /usr - fi - ;; - swoole) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 502; then - installRemoteModule_version=1.6.10 - elif test $PHP_MAJMIN_VERSION -le 504; then - installRemoteModule_version=2.0.4 - elif test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.0.11 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=4.3.6 - elif test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=4.5.10 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=4.8.11 - elif test $PHP_BITS -eq 32; then - # See https://github.com/swoole/swoole-src/issues/5198#issuecomment-1820162178 - installRemoteModule_version="$(resolvePHPModuleVersion "$installRemoteModule_module" '^5.0')" - else - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -le 312; then - installRemoteModule_version=5.1.2 - fi - ;; - esac - fi - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 800; then - installRemoteModule_version=5.1.3 - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" stable)" - fi - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if php --ri sockets >/dev/null 2>/dev/null; then - installRemoteModule_sockets=yes - else - installRemoteModule_sockets=no - fi - installRemoteModule_openssl=yes - case "$DISTRO_VERSION" in - alpine@3.7 | alpine@3.8) - if test $(compareVersions "$installRemoteModule_version" 4.6.0) -lt 0; then - # see https://github.com/swoole/swoole-src/issues/3934 - installRemoteModule_openssl=no - fi - ;; - esac - if test $PHP_THREADSAFE -eq 1; then - installRemoteModule_zts=yes - else - installRemoteModule_zts=no - fi - installRemoteModule_sqlite=yes - installRemoteModule_iouring=no - installRemoteModule_curl=yes - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -lt 317; then - # we need sqlite3 >= 3.7.7 - installRemoteModule_sqlite=no - fi - case "${IPE_SWOOLE_WITHOUT_IOURING:-}" in - 1 | y* | Y*) ;; - *) - # iouring support in swoole 6 requires liburing 2.5+: available since Alpine 3.19 - # but with Alpine 3.19 we have a "invalid use of incomplete type 'const struct statx'" error - if test $DISTRO_MAJMIN_VERSION -ge 320; then - installRemoteModule_iouring=yes - fi - ;; - esac - ;; - debian) - if test $PHP_MAJMIN_VERSION -ge 800; then - # see https://github.com/swoole/swoole-src/issues/5365 - installRemoteModule_curl=no - fi - if test $DISTRO_MAJMIN_VERSION -lt 1200; then - # we need sqlite3 >= 3.7.7 - installRemoteModule_sqlite=no - fi - case "${IPE_SWOOLE_WITHOUT_IOURING:-}" in - 1 | y* | Y*) ;; - *) - if test $DISTRO_VERSION_NUMBER -ge 13; then - # iouring support in swoole 6 requires liburing 2.5+: available since Debian Trixie (13) - installRemoteModule_iouring=yes - fi - ;; - esac - ;; - esac - installRemoteModule_zstd=yes - case "$DISTRO" in - debian) - if test $DISTRO_VERSION_NUMBER -lt 11; then - # swoole 6 requires libzstd >= 1.4.0, but on debian 10 (buster) we have 1.3.8 - installRemoteModule_zstd=no - fi - ;; - esac - if test $(compareVersions "$installRemoteModule_version" 6.0.0) -ge 0; then - # enable sockets support? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - # enable cares support? - addConfigureOption enable-cares yes - # enable brotli support? - addConfigureOption enable-brotli yes - # enable zstd support? - addConfigureOption enable-zstd $installRemoteModule_zstd - # enable PostgreSQL database support? - addConfigureOption enable-swoole-pgsql yes - # enable ODBC database support? - addConfigureOption with-swoole-odbc no - # enable Oracle database support? - addConfigureOption with-swoole-oracle no - # enable Sqlite database support? - addConfigureOption enable-swoole-sqlite $installRemoteModule_sqlite - # enable swoole thread support (need php zts support)? - addConfigureOption enable-swoole-thread $installRemoteModule_zts - # enable iouring for file async support? - addConfigureOption enable-iouring $installRemoteModule_iouring - elif test $(compareVersions "$installRemoteModule_version" 5.1.0) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - # enable cares support? - addConfigureOption enable-cares yes - # enable brotli support? - addConfigureOption enable-brotli yes - # enable PostgreSQL database support? - addConfigureOption enable-swoole-pgsql yes - # enable ODBC database support? - addConfigureOption with-swoole-odbc no - # enable Oracle database support? - addConfigureOption with-swoole-oracle no - # enable Sqlite database support? - addConfigureOption enable-swoole-sqlite $installRemoteModule_sqlite - elif test $(compareVersions "$installRemoteModule_version" 5.0.1) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - # enable cares support? - addConfigureOption enable-cares yes - # enable brotli support? - addConfigureOption enable-brotli yes - elif test $(compareVersions "$installRemoteModule_version" 5.0.0) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - # enable cares support? - addConfigureOption enable-cares yes - elif test $(compareVersions "$installRemoteModule_version" 4.8.11) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable json support? - addConfigureOption enable-swoole-json yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - # enable cares support? - addConfigureOption enable-cares yes - elif test $(compareVersions "$installRemoteModule_version" 4.6.1) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable json support? - addConfigureOption enable-swoole-json yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - elif test $(compareVersions "$installRemoteModule_version" 4.4.0) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - elif test $(compareVersions "$installRemoteModule_version" 4.2.11) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable postgresql coroutine client support? - addConfigureOption enable-coroutine-postgresql yes - elif test $(compareVersions "$installRemoteModule_version" 4.2.7) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable postgresql coroutine client support? - addConfigureOption enable-coroutine-postgresql yes - # enable kernel debug/trace log? (it will degrade performance) - addConfigureOption enable-debug-log no - elif test $(compareVersions "$installRemoteModule_version" 4.2.6) -ge 0; then - # enable debug/trace log support? - addConfigureOption enable-debug-log no - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable postgresql coroutine client support? - addConfigureOption enable-coroutine-postgresql yes - elif test $(compareVersions "$installRemoteModule_version" 4.2.0) -ge 0; then - # enable debug/trace log support? - addConfigureOption enable-debug-log no - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable async-redis support? - addConfigureOption enable-async-redis yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable postgresql coroutine client support? - addConfigureOption enable-coroutine-postgresql yes - elif test $(compareVersions "$installRemoteModule_version" 2.1.2) -ge 0; then - # enable debug/trace log support? - addConfigureOption enable-swoole-debug no - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable async-redis support? - addConfigureOption enable-async-redis yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable postgresql coroutine client support? - addConfigureOption enable-coroutine-postgresql yes - elif test $(compareVersions "$installRemoteModule_version" 1.10.4) -ge 0 && test $(compareVersions "$installRemoteModule_version" 1.10.5) -le 0; then - # enable debug/trace log support? - addConfigureOption enable-swoole-debug no - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable async-redis support? - addConfigureOption enable-async-redis yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - fi - ;; - tdlib) - if ! test -f /usr/lib/libphpcpp.so || ! test -f /usr/include/phpcpp.h; then - if test $PHP_MAJMIN_VERSION -le 701; then - cd "$(getPackageSource https://codeload.github.com/CopernicaMarketingSoftware/PHP-CPP/tar.gz/v2.1.4)" - elif test $PHP_MAJMIN_VERSION -le 703; then - cd "$(getPackageSource https://codeload.github.com/CopernicaMarketingSoftware/PHP-CPP/tar.gz/v2.2.0)" - else - cd "$(getPackageSource https://codeload.github.com/CopernicaMarketingSoftware/PHP-CPP/tar.gz/444d1f90cf6b7f3cb5178fa0d0b5ab441b0389d0)" - fi - make -j$(getProcessorCount) - make install - cd - >/dev/null - fi - if test -z "$installRemoteModule_path"; then - installRemoteModule_tmp="$(mktemp -p /tmp/src -d)" - git clone --depth=1 --recurse-submodules https://github.com/yaroslavche/phptdlib.git "$installRemoteModule_tmp" - mkdir "$installRemoteModule_tmp/build" - cd "$installRemoteModule_tmp/build" - cmake -D USE_SHARED_PHPCPP:BOOL=ON .. - make - make install - cd - >/dev/null - rm "$PHP_INI_DIR/conf.d/tdlib.ini" - installRemoteModule_manuallyInstalled=1 - fi - ;; - tensor) - installRemoteModule_cppflags='-Wno-incompatible-pointer-types' - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=2.2.3 - fi - fi - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -ge 315 && test $DISTRO_MAJMIN_VERSION -le 317; then - if test -e /usr/lib/liblapacke.so.3 && ! test -e /usr/lib/liblapacke.so; then - ln -s /usr/lib/liblapacke.so.3 /usr/lib/liblapacke.so - fi - fi - ;; - esac - ;; - tideways) - case "$DISTRO" in - alpine) - case $(uname -m) in - aarch64 | arm64 | armv8) - installRemoteModule_architecture=alpine-arm64 - ;; - *) - installRemoteModule_architecture=alpine-x86_64 - ;; - esac - ;; - debian) - case $(uname -m) in - aarch64 | arm64 | armv8) - installRemoteModule_architecture=arm64 - ;; - *) - installRemoteModule_architecture=x86_64 - ;; - esac - ;; - esac - installRemoteModule_url="$(curl -sSLf -o - https://tideways.com/profiler/downloads | grep -Eo "\"[^\"]+/tideways-php-([0-9]+\.[0-9]+\.[0-9]+)-$installRemoteModule_architecture.tar.gz\"" | cut -d'"' -f2)" - if test -z "$installRemoteModule_url"; then - echo 'Failed to find the tideways tarball to be downloaded' - exit 1 - fi - printf 'Downloading tideways from %s\n' "$installRemoteModule_url" - installRemoteModule_src="$(getPackageSource $installRemoteModule_url)" - if test -d "$installRemoteModule_src/dist"; then - installRemoteModule_src="$installRemoteModule_src/dist" - fi - installRemoteModule_src="$installRemoteModule_src/tideways-php" - case "$DISTRO" in - alpine) - installRemoteModule_src="$installRemoteModule_src-alpine" - ;; - esac - installRemoteModule_src="$installRemoteModule_src-$PHP_MAJDOTMIN_VERSION" - if test $PHP_THREADSAFE -eq 1; then - installRemoteModule_src="$installRemoteModule_src-zts" - fi - installRemoteModule_src="$installRemoteModule_src.so" - if ! test -f "$installRemoteModule_src"; then - echo 'tideways does not support the current environment' >&2 - exit 1 - fi - mv "$installRemoteModule_src" $(getPHPExtensionsDir)/tideways.so - installRemoteModule_manuallyInstalled=1 - ;; - uopz) - installRemoteModule_cppflags='-Wno-incompatible-pointer-types' - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.0.7 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=5.0.2 - elif test $PHP_MAJMIN_VERSION -le 740; then - installRemoteModule_version=6.1.2 - fi - fi - ;; - uploadprogress) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=1.1.4 - fi - fi - ;; - uuid) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.0.5 - fi - fi - ;; - uv) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 800; then - installRemoteModule_version=0.2.4 - else - installRemoteModule_version=beta - fi - fi - ;; - vld) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=0.14.0 - else - installRemoteModule_version=beta - fi - fi - ;; - wikidiff2) - case "$DISTRO" in - alpine) - if ! isLibDatrieInstalled; then - installLibDatrie - fi - if ! isLibThaiInstalled; then - installLibThai - fi - ;; - esac - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 702; then - installRemoteModule_version=1.13.0 - else - installRemoteModule_version="$(git -c versionsort.suffix=- ls-remote --tags --refs --quiet --exit-code --sort=version:refname https://github.com/wikimedia/mediawiki-php-wikidiff2.git 'refs/tags/*.*.*' | tail -1 | cut -d/ -f3)" - fi - fi - installRemoteModule_src="$(getPackageSource "https://codeload.github.com/wikimedia/mediawiki-php-wikidiff2/tar.gz/refs/tags/$installRemoteModule_version")" - cd -- "$installRemoteModule_src" - phpize - ./configure - make -j$(getProcessorCount) - make install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - ;; - xdebug) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 500; then - installRemoteModule_version=2.0.5 - elif test $PHP_MAJMIN_VERSION -le 503; then - installRemoteModule_version=2.2.7 - elif test $PHP_MAJMIN_VERSION -le 504; then - installRemoteModule_version=2.4.1 - elif test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.5.5 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=2.6.1 - elif test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=2.9.8 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=3.1.6 - fi - fi - ;; - xdiff) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.5.2 - fi - fi - if ! test -f /usr/local/lib/libxdiff.* && ! test -f /usr/lib/libxdiff.* && ! test -f /usr/lib/x86_64*/libxdiff.*; then - installRemoteModule_src="$(getPackageSource https://raw.githubusercontent.com/mlocati/docker-php-extension-installer/assets/resources/libxdiff-0.23.tar.gz)" - cd -- "$installRemoteModule_src" - ./configure --disable-shared --disable-dependency-tracking --with-pic - make -j$(getProcessorCount) - make install - cd - >/dev/null - fi - ;; - xhprof) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.9.4 - fi - fi - ;; - xlswriter) - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 1.2.7) -ge 0; then - # enable reader supports? - addConfigureOption enable-reader yes - fi - ;; - xmldiff) - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version"; then - case "$DISTRO_VERSION" in - debian@8) - # The gcc version of Debian Jessie is too old => error: 'nullptr' was not declared in this scope - installRemoteModule_version=1.1.4 - ;; - esac - fi - ;; - xmlrpc) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=beta - fi - ;; - yac) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.9.2 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 2.2.0) -ge 0; then - # Enable igbinary serializer support - if php --ri igbinary >/dev/null 2>/dev/null; then - addConfigureOption enable-igbinary yes - else - addConfigureOption enable-igbinary no - fi - # Enable json serializer support - if php --ri json >/dev/null 2>/dev/null; then - addConfigureOption enable-json yes - else - addConfigureOption enable-json no - fi - # Enable msgpack serializer support - if php --ri msgpack >/dev/null 2>/dev/null; then - addConfigureOption enable-msgpack yes - else - addConfigureOption enable-msgpack no - fi - fi - ;; - yaml) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.3.1 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=2.0.4 - fi - fi - ;; - yar) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.2.5 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 1.2.4) -ge 0; then - # Enable Msgpack Supports - if php --ri msgpack >/dev/null 2>/dev/null; then - addConfigureOption enable-msgpack yes - else - addConfigureOption enable-msgpack no - fi - fi - ;; - zmq) - if test -z "$installRemoteModule_version"; then - installRemoteModule_src="$(getPackageSource https://github.com/zeromq/php-zmq/tarball/master)" - cd "$installRemoteModule_src" - phpize - ./configure - make -j$(getProcessorCount) - make install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - fi - ;; - zookeeper) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.5.0 - fi - fi - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - case "$DISTRO" in - alpine) - if ! test -f /usr/local/include/zookeeper/zookeeper.h; then - if test $(compareVersions "$installRemoteModule_version" 1.0.0) -lt 0; then - installRemoteModule_src="$(getPackageSource http://archive.apache.org/dist/zookeeper/zookeeper-3.5.9/apache-zookeeper-3.5.9.tar.gz)" - else - installRemoteModule_tmp="$(curl -sSLf https://downloads.apache.org/zookeeper/stable | sed -E 's/["<>]/\n/g' | grep -E '^(apache-)?zookeeper-[0-9]+\.[0-9]+\.[0-9]+\.(tar\.gz|tgz)$' | head -n1)" - if test -z "$installRemoteModule_tmp"; then - echo 'Failed to detect the zookeeper library URL' >&2 - exit 1 - fi - installRemoteModule_src="$(getPackageSource https://downloads.apache.org/zookeeper/stable/$installRemoteModule_tmp)" - fi - cd -- "$installRemoteModule_src" - if test -d ~/.m2; then - installRemoteModule_delm2=n - else - installRemoteModule_delm2=y - fi - mvn -pl zookeeper-jute compile - cd - >/dev/null - cd -- "$installRemoteModule_src/zookeeper-client/zookeeper-client-c" - autoreconf -if - ./configure --without-cppunit - make -j$(getProcessorCount) CFLAGS='-Wno-stringop-truncation -Wno-format-overflow' - make install - cd - >/dev/null - if test $installRemoteModule_delm2 = y; then - rm -rf ~/.m2 - fi - fi - ;; - esac - ;; - zstd) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.11.0 - fi - fi - ;; - esac - if test $installRemoteModule_manuallyInstalled -eq 0; then - if test -n "$installRemoteModule_path"; then - printf ' (installing version %s from %s)\n' "$installRemoteModule_version" "$installRemoteModule_path" - elif test -n "$installRemoteModule_version"; then - printf ' (installing version %s)\n' "$installRemoteModule_version" - fi - installPeclPackage "$installRemoteModule_module" "$installRemoteModule_version" "$installRemoteModule_cppflags" "$installRemoteModule_path" - fi - postProcessModule "$installRemoteModule_module" - if test $installRemoteModule_manuallyInstalled -lt 2; then - case "${IPE_SKIP_CHECK:-}" in - 1 | y* | Y*) ;; - *) - checkModuleWorking "$installRemoteModule_module" "$installRemoteModule_ini_basename" "$installRemoteModule_ini_extra" - ;; - esac - enablePhpExtension "$installRemoteModule_module" "$installRemoteModule_ini_basename" "$installRemoteModule_ini_extra" - fi -} - -# Check if a module/helper may be installed using the pecl archive -# -# Arguments: -# $1: the name of the module -# -# Return: -# 0: true -# 1: false -moduleMayUsePecl() { - case "$1" in - @composer | @fix_letsencrypt) - return 1 - ;; - blackfire | geos | ioncube_loader | snuffleupagus | sourceguardian | spx | tdlib | tideways) - return 1 - ;; - esac - if test -n "$(getModuleSourceCodePath "$1")"; then - return 1 - fi - if stringInList "$1" "$BUNDLED_MODULES"; then - return 1 - fi - return 0 -} - -# Configure the PECL package installer -# -# Updates: -# PHP_MODULES_TO_INSTALL -# Sets: -# USE_PICKLE 0: no, 1: yes (already downloaded), 2: yes (build it from source) -configureInstaller() { - USE_PICKLE=0 - if ! which pecl >/dev/null; then - for PHP_MODULE_TO_INSTALL in $PHP_MODULES_TO_INSTALL; do - if ! moduleMayUsePecl "$PHP_MODULE_TO_INSTALL"; then - continue - fi - if false && anyStringInList '' "$PHP_MODULES_TO_INSTALL"; then - USE_PICKLE=2 - else - curl -sSLf https://github.com/FriendsOfPHP/pickle/releases/latest/download/pickle.phar -o /tmp/pickle - chmod +x /tmp/pickle - USE_PICKLE=1 - fi - break - done - fi - if test $USE_PICKLE -eq 0; then - if test -z "$(pear config-get http_proxy)"; then - if test -n "${http_proxy:-}"; then - pear config-set http_proxy "$http_proxy" || true - elif test -n "${HTTP_PROXY:-}"; then - pear config-set http_proxy "$HTTP_PROXY" || true - fi - fi - pecl channel-update pecl.php.net || true - fi -} - -buildPickle() { - printf '### BUILDING PICKLE ###\n' - buildPickle_tempDir="$(mktemp -p /tmp/src -d)" - cd -- "$buildPickle_tempDir" - printf 'Downloading... ' - git clone --quiet --depth 1 https://github.com/FriendsOfPHP/pickle.git . - git tag 0.7.0 - printf 'done.\n' - printf 'Installing composer... ' - actuallyInstallComposer . composer '--1 --quiet' - printf 'done.\n' - printf 'Installing composer dependencies... ' - ./composer install --no-dev --no-progress --no-suggest --optimize-autoloader --ignore-platform-reqs --quiet --no-cache - printf 'done.\n' - printf 'Building... ' - php -d phar.readonly=0 box.phar build - mv pickle.phar /tmp/pickle - printf 'done.\n' - cd - >/dev/null -} - -# Add a configure option for the pecl/pickle install command -# -# Arguments: -# $1: the option name -# $2: the option value -addConfigureOption() { - if test $USE_PICKLE -eq 0; then - printf -- '%s\n' "$2" >>"$CONFIGURE_FILE" - else - printf -- '--%s=%s\n' "$1" "$2" >>"$CONFIGURE_FILE" - fi -} - -# Actually installs a PECL package -# -# Arguments: -# $1: the package to be installed -# $2: the package version to be installed (optional) -# $3: the value of the CPPFLAGS variable (optional) -# $4: the path of the local package to be installed (optional, downloaded from PECL if omitted/empty) -installPeclPackage() { - if ! test -f "$CONFIGURE_FILE"; then - printf '\n' >"$CONFIGURE_FILE" - fi - installPeclPackage_name="$(getPeclModuleName "$1")" - if test -z "${2:-}"; then - installPeclPackage_fullname="$installPeclPackage_name" - else - installPeclPackage_fullname="$installPeclPackage_name-$2" - fi - installPeclPackage_path="${4:-}" - if test -z "$installPeclPackage_path"; then - installPeclPackage_path="$installPeclPackage_fullname" - fi - if test $USE_PICKLE -eq 0; then - if test -n "${4:-}"; then - if test -f "$installPeclPackage_path/package2.xml"; then - installPeclPackage_path="$installPeclPackage_path/package2.xml" - else - installPeclPackage_path="$installPeclPackage_path/package.xml" - fi - fi - cat "$CONFIGURE_FILE" | MAKE="make -j$(getCompilationProcessorCount $1)" CPPFLAGS="${3:-}" pecl install "$installPeclPackage_path" - else - MAKEFLAGS="-j$(getCompilationProcessorCount $1)" CPPFLAGS="${3:-}" /tmp/pickle install --tmp-dir=/tmp/pickle.tmp --no-interaction --version-override='' --with-configure-options "$CONFIGURE_FILE" -- "$installPeclPackage_path" - fi -} - -# Check if a string is in a list of space-separated string -# -# Arguments: -# $1: the string to be checked -# $2: the string list -# -# Return: -# 0 (true): if the string is in the list -# 1 (false): if the string is not in the list -stringInList() { - for stringInList_listItem in $2; do - if test "$1" = "$stringInList_listItem"; then - return 0 - fi - done - return 1 -} - -# Check if at least one item in a list is in another list -# -# Arguments: -# $1: the space-separated list of items to be searched -# $2: the space-separated list of reference items -# -# Return: -# 0 (true): at least one of the items in $1 is in $2 -# 1 (false): otherwise -anyStringInList() { - for anyStringInList_item in $1; do - if stringInList "$anyStringInList_item" "$2"; then - return 0 - fi - done - return 1 -} - -# Remove a word from a space-separated list -# -# Arguments: -# $1: the word to be removed -# $2: the string list -# -# Output: -# The list without the word -removeStringFromList() { - removeStringFromList_result='' - for removeStringFromList_listItem in $2; do - if test "$1" != "$removeStringFromList_listItem"; then - if test -z "$removeStringFromList_result"; then - removeStringFromList_result="$removeStringFromList_listItem" - else - removeStringFromList_result="$removeStringFromList_result $removeStringFromList_listItem" - fi - fi - done - printf '%s' "$removeStringFromList_result" -} - -# Invoke apt-get update -invokeAptGetUpdate() { - if test -n "${IPE_APTGETUPDATE_ALREADY:-}"; then - apt-get update -q - return - fi - IPE_APTGETUPDATE_ALREADY=y - if grep -q 'VERSION="8 (jessie)"' /etc/os-release; then - invokeAptGetUpdate_fixdistro=jessie - elif grep -q 'VERSION="9 (stretch)"' /etc/os-release; then - invokeAptGetUpdate_fixdistro=stretch - else - invokeAptGetUpdate - return - fi - # See https://www.debian.org/distrib/archive.en.html for a list of mirrors - if test -z "${IPE_DEB_ARCHIVE:-}"; then - IPE_DEB_ARCHIVE=http://archive.kernel.org/debian-archive - fi - if test -z "${IPE_DEB_ARCHIVE_SECURITY:-}"; then - IPE_DEB_ARCHIVE_SECURITY=http://archive.kernel.org/debian-archive/debian-security - fi - sed -ri "s;^(\s*deb\s+http://(httpredir|deb).debian.org/debian\s+$invokeAptGetUpdate_fixdistro-updates\b.*);#\1;" /etc/apt/sources.list - sed -ri "s;^(\s*deb\s+)http://(httpredir|deb).debian.org;\1$IPE_DEB_ARCHIVE;" /etc/apt/sources.list - sed -ri "s;^(\s*deb\s+)http://security.debian.org/debian-security;\1$IPE_DEB_ARCHIVE_SECURITY;" /etc/apt/sources.list - sed -ri "s;^(\s*deb\s+)http://security.debian.org;\1$IPE_DEB_ARCHIVE_SECURITY;" /etc/apt/sources.list - invokeAptGetUpdate_tmp="$(mktemp)" - apt-get update -q 2>"$invokeAptGetUpdate_tmp" - if test -s "$invokeAptGetUpdate_tmp"; then - cat "$invokeAptGetUpdate_tmp" >&2 - if grep -qE ' KEYEXPIRED [0-9]' "$invokeAptGetUpdate_tmp"; then - echo '############' >&2 - echo '# WARNING! #' >&2 - echo '############' >&2 - echo 'apt packages will be installed without checking authenticity!' >&2 - printf 'APT::Get::AllowUnauthenticated "true";\n' >>/etc/apt/apt.conf.d/99unauthenticated - fi - fi - rm "$invokeAptGetUpdate_tmp" -} - -# Fix the Let's Encrypt CA certificates on old distros -fixLetsEncrypt() { - printf '### FIXING LETS ENCRYPT CA CERTIFICATES ###\n' - case "$DISTRO_VERSION" in - alpine@3.7 | alpine@3.8) - printf -- '- old Alpine Linux detected: we should fix the certificates\n' - ;; - debian@8 | debian@9) - printf -- '- old Debian detected: we should fix the certificates\n' - if ! grep -q 'mozilla/ISRG_Root_X1.crt' /etc/ca-certificates.conf && grep -q 'mozilla/DST_Root_CA_X3.crt' /etc/ca-certificates.conf; then - printf -- '- old ca-certificates package detected\n' - fixCACerts_mustUpdate=1 - if test -d /var/lib/apt/lists; then - for fixCACerts_item in $(ls -1 /var/lib/apt/lists); do - case "$fixCACerts_item" in - partial | lock) ;; - *) - fixCACerts_mustUpdate=0 - break - ;; - esac - done - fi - if test $fixCACerts_mustUpdate -eq 1; then - printf -- '- refreshing the APT package list\n' - invokeAptGetUpdate - fi - printf -- '- installing newer ca-certificates package\n' - apt-get install -qqy --no-install-recommends ca-certificates - fi - ;; - *) - printf -- '- patch not required in this distro version\n' - return - ;; - esac - if grep -Eq '^mozilla/ISRG_Root_X1\.crt$' /etc/ca-certificates.conf && grep -Eq '^mozilla/DST_Root_CA_X3\.crt$' /etc/ca-certificates.conf; then - printf -- '- disabling the DST_Root_CA_X3 certificate\n' - sed -i '/^mozilla\/DST_Root_CA_X3/s/^/!/' /etc/ca-certificates.conf - printf -- '- refreshing the certificates\n' - update-ca-certificates -f - else - printf -- '- DST_Root_CA_X3 certificate not found or already disabled\n' - fi -} - -# Cleanup everything at the end of the execution -cleanup() { - if test "${IPE_UNINSTALL_CARGO:-}" = y; then - if test -f "$HOME/.cargo/env"; then - . "$HOME/.cargo/env" - fi - if command -v rustup >/dev/null; then - rustup self uninstall -y - fi - fi - if test -n "$UNNEEDED_PACKAGE_LINKS"; then - printf '### REMOVING UNNEEDED PACKAGE LINKS ###\n' - for cleanup_link in $UNNEEDED_PACKAGE_LINKS; do - if test -L "$cleanup_link"; then - rm -f "$cleanup_link" - fi - done - fi - case "$DISTRO" in - alpine) - if stringInList icu-libs "${PACKAGES_PERSISTENT_NEW:-}" && stringInList icu-data-en "${PACKAGES_PERSISTENT_NEW:-}"; then - apk del icu-data-en >/dev/null 2>&1 || true - fi - if test -n "$PACKAGES_VOLATILE"; then - printf '### REMOVING UNNEEDED PACKAGES ###\n' - apk del --purge $PACKAGES_VOLATILE - fi - ;; - debian) - if test -n "$PACKAGES_VOLATILE"; then - printf '### REMOVING UNNEEDED PACKAGES ###\n' - apt-get remove --purge -y $PACKAGES_VOLATILE - fi - if test -n "$PACKAGES_PREVIOUS"; then - printf '### RESTORING PREVIOUSLY INSTALLED PACKAGES ###\n' - apt-get install -qqy --no-install-recommends --no-upgrade $PACKAGES_PREVIOUS - fi - ;; - esac - docker-php-source delete - rm -rf /tmp/src - rm -rf /tmp/pickle - rm -rf /tmp/pickle.tmp - rm -rf "$CONFIGURE_FILE" - case "${IPE_KEEP_SYSPKG_CACHE:-}" in - 1 | y* | Y*) ;; - *) - case "$DISTRO" in - alpine) - rm -rf /var/cache/apk/* - ;; - debian) - rm -rf /var/lib/apt/lists/* - ;; - esac - rm -rf /tmp/pear - ;; - esac -} - -DEBIAN_FRONTEND=noninteractive -export DEBIAN_FRONTEND -resetIFS -mkdir -p /tmp/src -mkdir -p /tmp/pickle.tmp -IPE_ERRFLAG_FILE="$(mktemp -p /tmp/src)" -CONFIGURE_FILE=/tmp/configure-options -IPE_APK_FLAGS='' -setDistro -case "$DISTRO_VERSION" in - debian@8) - fixMaxOpenFiles || true - ;; -esac -setPHPVersionVariables -setPHPPreinstalledModules -case "$PHP_MAJMIN_VERSION" in - 505 | 506 | 700 | 701 | 702 | 703 | 704 | 800 | 801 | 802 | 803 | 804) ;; - *) - printf "### ERROR: Unsupported PHP version: %s.%s ###\n" $((PHP_MAJMIN_VERSION / 100)) $((PHP_MAJMIN_VERSION % 100)) - ;; -esac -UNNEEDED_PACKAGE_LINKS='' -processCommandArguments "$@" - -if test -z "$PHP_MODULES_TO_INSTALL"; then - exit 0 -fi - -if stringInList @fix_letsencrypt "$PHP_MODULES_TO_INSTALL"; then - # This must be the very first thing we do - fixLetsEncrypt -fi - -sortModulesToInstall - -docker-php-source extract -BUNDLED_MODULES="$(find /usr/src/php/ext -mindepth 2 -maxdepth 2 -type f -name 'config.m4' | xargs -n1 dirname | xargs -n1 basename | xargs)" -configureInstaller - -buildRequiredPackageLists $PHP_MODULES_TO_INSTALL -if test -n "$PACKAGES_PERSISTENT_PRE"; then - markPreinstalledPackagesAsUsed -fi -if test -n "$PACKAGES_PERSISTENT_NEW$PACKAGES_VOLATILE"; then - installRequiredPackages -fi -if test "$PHP_MODULES_TO_INSTALL" != '@composer'; then - setTargetTriplet -fi -if test $USE_PICKLE -gt 1; then - buildPickle -fi - -compileLibs - -for PHP_MODULE_TO_INSTALL in $PHP_MODULES_TO_INSTALL; do - case "$PHP_MODULE_TO_INSTALL" in - @fix_letsencrypt) - # Already done: it must be the first thing we do - ;; - @composer) - installComposer - ;; - *) - if stringInList "$PHP_MODULE_TO_INSTALL" "$BUNDLED_MODULES"; then - installBundledModule "$PHP_MODULE_TO_INSTALL" - else - installRemoteModule "$PHP_MODULE_TO_INSTALL" - fi - ;; - esac -done -cleanup diff --git a/php7/7.0.33/build/php/extensions/install.sh b/php7/7.0.33/build/php/extensions/install.sh deleted file mode 100644 index c663a07ca..000000000 --- a/php7/7.0.33/build/php/extensions/install.sh +++ /dev/null @@ -1,761 +0,0 @@ -#!/bin/sh - -export MC="-j$(nproc)" - -echo -echo "============================================" -echo "Install extensions from : install.sh" -echo "PHP version : ${PHP_VERSION}" -echo "Extra Extensions : ${PHP_EXTENSIONS}" -echo "Multicore Compilation : ${MC}" -echo "Container package url : ${CONTAINER_PACKAGE_URL}" -echo "Work directory : ${PWD}" -echo "============================================" -echo - - -if [ "${PHP_EXTENSIONS}" != "" ]; then - apk --update add --no-cache --virtual .build-deps autoconf g++ libtool make curl-dev gettext-dev linux-headers git -fi - - -export EXTENSIONS=",${PHP_EXTENSIONS}," - - -# -# Check if current php version is greater than or equal to -# specific version. -# -# For example, to check if current php is greater than or -# equal to PHP 7.0: -# -# isPhpVersionGreaterOrEqual 7 0 -# -# Param 1: Specific PHP Major version -# Param 2: Specific PHP Minor version -# Return : 1 if greater than or equal to, 0 if less than -# -isPhpVersionGreaterOrEqual() - { - local PHP_MAJOR_VERSION=$(php -r "echo PHP_MAJOR_VERSION;") - local PHP_MINOR_VERSION=$(php -r "echo PHP_MINOR_VERSION;") - - if [[ "$PHP_MAJOR_VERSION" -gt "$1" || "$PHP_MAJOR_VERSION" -eq "$1" && "$PHP_MINOR_VERSION" -ge "$2" ]]; then - return 1; - else - return 0; - fi -} - - -# -# Install extension from package file(.tgz), -# For example: -# -# installExtensionFromTgz redis-5.2.2 -# -# Param 1: Package name with version -# Param 2: enable options -# -installExtensionFromTgz() -{ - tgzName=$1 - result="" - extensionName="${tgzName%%-*}" - shift 1 - result=$@ - mkdir ${extensionName} - tar -xf ${tgzName}.tgz -C ${extensionName} --strip-components=1 - ( cd ${extensionName} && phpize && ./configure ${result} && make ${MC} && make install ) - - docker-php-ext-enable ${extensionName} -} - - -# install use install-php-extensions -if [[ -z "${EXTENSIONS##*,ioncube_loader,*}" ]]; then - echo "---------- Install ioncube_loader ----------" - install-php-extensions ioncube_loader -fi - -if [[ -z "${EXTENSIONS##*,imagick,*}" ]]; then - echo "---------- Install imagick ----------" - install-php-extensions imagick -fi - -if [[ -z "${EXTENSIONS##*,sourceguardian,*}" ]]; then - echo "---------- Install sourceguardian ----------" - apk add eudev-libs - install-php-extensions sourceguardian -fi - -if [[ -z "${EXTENSIONS##*,ssh2,*}" ]]; then - echo "---------- Install ssh2 ----------" - install-php-extensions ssh2 -fi - -if [[ -z "${EXTENSIONS##*,maxminddb,*}" ]]; then - echo "---------- Install maxminddb ----------" - install-php-extensions maxminddb -fi - -if [[ -z "${EXTENSIONS##*,zstd,*}" ]]; then - echo "---------- Install zstd ----------" - install-php-extensions zstd -fi - -if [[ -z "${EXTENSIONS##*,grpc,*}" ]]; then - echo "---------- Install grpc ----------" - install-php-extensions grpc - docker-php-ext-enable grpc -fi - -if [[ -z "${EXTENSIONS##*,ftp,*}" ]]; then - echo "---------- Install ftp ----------" - install-php-extensions ftp -fi - -if [[ -z "${EXTENSIONS##*,snuffleupagus,*}" ]]; then - echo "---------- Install snuffleupagus ----------" - install-php-extensions snuffleupagus -fi - -if [[ -z "${EXTENSIONS##*,pdo_oci,*}" ]]; then - echo "---------- Install pdo_oci ----------" - install-php-extensions pdo_oci -fi - -if [[ -z "${EXTENSIONS##*,oci8,*}" ]]; then - echo "---------- Install oci8 ----------" - install-php-extensions oci8 -fi -# end - - -if [[ -z "${EXTENSIONS##*,pdo_mysql,*}" ]]; then - echo "---------- Install pdo_mysql ----------" - docker-php-ext-install ${MC} pdo_mysql -fi - -if [[ -z "${EXTENSIONS##*,pcntl,*}" ]]; then - echo "---------- Install pcntl ----------" - docker-php-ext-install ${MC} pcntl -fi - -if [[ -z "${EXTENSIONS##*,mysqli,*}" ]]; then - echo "---------- Install mysqli ----------" - docker-php-ext-install ${MC} mysqli -fi - -if [[ -z "${EXTENSIONS##*,mbstring,*}" ]]; then - echo "---------- mbstring is installed ----------" -fi - -if [[ -z "${EXTENSIONS##*,exif,*}" ]]; then - echo "---------- Install exif ----------" - docker-php-ext-install ${MC} exif -fi - -if [[ -z "${EXTENSIONS##*,bcmath,*}" ]]; then - echo "---------- Install bcmath ----------" - docker-php-ext-install ${MC} bcmath -fi - -if [[ -z "${EXTENSIONS##*,calendar,*}" ]]; then - echo "---------- Install calendar ----------" - docker-php-ext-install ${MC} calendar -fi - -if [[ -z "${EXTENSIONS##*,zend_test,*}" ]]; then - echo "---------- Install zend_test ----------" - docker-php-ext-install ${MC} zend_test -fi - -if [[ -z "${EXTENSIONS##*,opcache,*}" ]]; then - echo "---------- Install opcache ----------" - docker-php-ext-install opcache -fi - -if [[ -z "${EXTENSIONS##*,sockets,*}" ]]; then - echo "---------- Install sockets ----------" - docker-php-ext-install ${MC} sockets -fi - -if [[ -z "${EXTENSIONS##*,gettext,*}" ]]; then - echo "---------- Install gettext ----------" - apk --no-cache add gettext-dev - docker-php-ext-install ${MC} gettext - -fi - -if [[ -z "${EXTENSIONS##*,shmop,*}" ]]; then - echo "---------- Install shmop ----------" - docker-php-ext-install ${MC} shmop -fi - -if [[ -z "${EXTENSIONS##*,sysvmsg,*}" ]]; then - echo "---------- Install sysvmsg ----------" - docker-php-ext-install ${MC} sysvmsg -fi - -if [[ -z "${EXTENSIONS##*,sysvsem,*}" ]]; then - echo "---------- Install sysvsem ----------" - docker-php-ext-install ${MC} sysvsem -fi - -if [[ -z "${EXTENSIONS##*,sysvshm,*}" ]]; then - echo "---------- Install sysvshm ----------" - docker-php-ext-install ${MC} sysvshm -fi - -if [[ -z "${EXTENSIONS##*,pdo_firebird,*}" ]]; then - echo "---------- Install pdo_firebird ----------" - docker-php-ext-install ${MC} pdo_firebird -fi - -if [[ -z "${EXTENSIONS##*,pdo_dblib,*}" ]]; then - echo "---------- Install pdo_dblib ----------" - docker-php-ext-install ${MC} pdo_dblib -fi - -if [[ -z "${EXTENSIONS##*,pdo_odbc,*}" ]]; then - echo "---------- Install pdo_odbc ----------" - docker-php-ext-install ${MC} pdo_odbc -fi - -if [[ -z "${EXTENSIONS##*,pdo_pgsql,*}" ]]; then - echo "---------- Install pdo_pgsql ----------" - apk --no-cache add postgresql-dev \ - && docker-php-ext-install ${MC} pdo_pgsql -fi - -if [[ -z "${EXTENSIONS##*,pgsql,*}" ]]; then - echo "---------- Install pgsql ----------" - apk --no-cache add postgresql-dev \ - && docker-php-ext-install ${MC} pgsql -fi - -if [[ -z "${EXTENSIONS##*,odbc,*}" ]]; then - echo "---------- Install odbc ----------" - docker-php-ext-install ${MC} odbc -fi - -if [[ -z "${EXTENSIONS##*,dba,*}" ]]; then - echo "---------- Install dba ----------" - docker-php-ext-install ${MC} dba -fi - -if [[ -z "${EXTENSIONS##*,interbase,*}" ]]; then - echo "---------- Install interbase ----------" - echo "Alpine linux do not support interbase/firebird!!!" - #docker-php-ext-install ${MC} interbase -fi - -if [[ -z "${EXTENSIONS##*,hprose,*}" ]]; then - echo "---------- Install hprose ----------" - printf "\n" | pecl install hprose - docker-php-ext-enable hprose -fi - -if [[ -z "${EXTENSIONS##*,gd,*}" ]]; then - echo "---------- Install gd ----------" - isPhpVersionGreaterOrEqual 7 4 - - if [[ "$?" = "1" ]]; then - # "--with-xxx-dir" was removed from php 7.4, - # issue: https://github.com/docker-library/php/issues/912 - options="--with-freetype --with-jpeg --with-webp" - else - options="--with-gd --with-freetype-dir=/usr/include/ --with-png-dir=/usr/include/ --with-jpeg-dir=/usr/include/ --with-webp-dir=/usr/include/" - fi - - apk add --no-cache \ - freetype \ - freetype-dev \ - libpng \ - libpng-dev \ - libjpeg-turbo \ - libjpeg-turbo-dev \ - libwebp-dev \ - && docker-php-ext-configure gd ${options} \ - && docker-php-ext-install ${MC} gd \ - && apk del \ - freetype-dev \ - libpng-dev \ - libjpeg-turbo-dev -fi - -if [[ -z "${EXTENSIONS##*,yaml,*}" ]]; then - echo "---------- Install yaml ----------" - apk add --no-cache yaml-dev - printf "\n" | pecl install yaml - docker-php-ext-enable yaml -fi - -if [[ -z "${EXTENSIONS##*,intl,*}" ]]; then - echo "---------- Install intl ----------" - apk add --no-cache icu-dev - docker-php-ext-install ${MC} intl -fi - -if [[ -z "${EXTENSIONS##*,bz2,*}" ]]; then - echo "---------- Install bz2 ----------" - apk add --no-cache bzip2-dev - docker-php-ext-install ${MC} bz2 -fi - -if [[ -z "${EXTENSIONS##*,soap,*}" ]]; then - echo "---------- Install soap ----------" - apk add --no-cache libxml2-dev - docker-php-ext-install ${MC} soap -fi - -if [[ -z "${EXTENSIONS##*,xsl,*}" ]]; then - echo "---------- Install xsl ----------" - apk add --no-cache libxml2-dev libxslt-dev - docker-php-ext-install ${MC} xsl -fi - -if [[ -z "${EXTENSIONS##*,xmlrpc,*}" ]]; then - echo "---------- Install xmlrpc ----------" - apk add --no-cache libxml2-dev libxslt-dev - docker-php-ext-install ${MC} xmlrpc -fi - -if [[ -z "${EXTENSIONS##*,wddx,*}" ]]; then - echo "---------- Install wddx ----------" - apk add --no-cache libxml2-dev libxslt-dev - docker-php-ext-install ${MC} wddx -fi - -if [[ -z "${EXTENSIONS##*,curl,*}" ]]; then - echo "---------- curl is installed ----------" -fi - -if [[ -z "${EXTENSIONS##*,readline,*}" ]]; then - echo "---------- Install readline ----------" - apk add --no-cache readline-dev - apk add --no-cache libedit-dev - docker-php-ext-install ${MC} readline -fi - -if [[ -z "${EXTENSIONS##*,snmp,*}" ]]; then - echo "---------- Install snmp ----------" - apk add --no-cache net-snmp-dev - docker-php-ext-install ${MC} snmp -fi - -if [[ -z "${EXTENSIONS##*,pspell,*}" ]]; then - echo "---------- Install pspell ----------" - apk add --no-cache aspell-dev - apk add --no-cache aspell-en - docker-php-ext-install ${MC} pspell -fi - -if [[ -z "${EXTENSIONS##*,recode,*}" ]]; then - echo "---------- Install recode ----------" - apk add --no-cache recode-dev - docker-php-ext-install ${MC} recode -fi - -if [[ -z "${EXTENSIONS##*,tidy,*}" ]]; then - echo "---------- Install tidy ----------" - apk add --no-cache tidyhtml-dev - - # Fix: https://github.com/htacg/tidy-html5/issues/235 - ln -s /usr/include/tidybuffio.h /usr/include/buffio.h - - docker-php-ext-install ${MC} tidy -fi - -if [[ -z "${EXTENSIONS##*,gmp,*}" ]]; then - echo "---------- Install gmp ----------" - apk add --no-cache gmp-dev - docker-php-ext-install ${MC} gmp -fi - -if [[ -z "${EXTENSIONS##*,imap,*}" ]]; then - echo "---------- Install imap ----------" - apk add --no-cache imap-dev - docker-php-ext-configure imap --with-imap --with-imap-ssl - docker-php-ext-install ${MC} imap -fi - -if [[ -z "${EXTENSIONS##*,ldap,*}" ]]; then - echo "---------- Install ldap ----------" - apk add --no-cache ldb-dev - apk add --no-cache openldap-dev - docker-php-ext-install ${MC} ldap -fi - -if [[ -z "${EXTENSIONS##*,psr,*}" ]]; then - echo "---------- Install psr ----------" - printf "\n" | pecl install psr - docker-php-ext-enable psr -fi - -if [[ -z "${EXTENSIONS##*,imagick,*}" ]]; then - echo "---------- Install imagick ----------" - apk add --no-cache file-dev - apk add --no-cache imagemagick-dev - printf "\n" | pecl install imagick-3.4.4 - docker-php-ext-enable imagick -fi - -if [[ -z "${EXTENSIONS##*,rar,*}" ]]; then - echo "---------- Install rar ----------" - printf "\n" | pecl install rar - docker-php-ext-enable rar -fi - -if [[ -z "${EXTENSIONS##*,ast,*}" ]]; then - echo "---------- Install ast ----------" - printf "\n" | pecl install ast - docker-php-ext-enable ast -fi - -if [[ -z "${EXTENSIONS##*,msgpack,*}" ]]; then - echo "---------- Install msgpack ----------" - printf "\n" | pecl install msgpack - docker-php-ext-enable msgpack -fi - -if [[ -z "${EXTENSIONS##*,igbinary,*}" ]]; then - echo "---------- Install igbinary ----------" - printf "\n" | pecl install igbinary - docker-php-ext-enable igbinary -fi - - -if [[ -z "${EXTENSIONS##*,protobuf,*}" ]]; then - isPhpVersionGreaterOrEqual 7 0 - if [[ "$?" = "1" ]]; then - echo "---------- Install protobuf ----------" - printf "\n" | pecl install protobuf - docker-php-ext-enable protobuf - else - echo "yar requires PHP >= 7.0.0, installed version is ${PHP_VERSION}" - fi -fi - -if [[ -z "${EXTENSIONS##*,yac,*}" ]]; then - isPhpVersionGreaterOrEqual 7 0 - if [[ "$?" = "1" ]]; then - echo "---------- Install yac ----------" - printf "\n" | pecl install yac-2.0.2 - docker-php-ext-enable yac - else - echo "yar requires PHP >= 7.0.0, installed version is ${PHP_VERSION}" - fi -fi - -if [[ -z "${EXTENSIONS##*,yar,*}" ]]; then - isPhpVersionGreaterOrEqual 7 0 - if [[ "$?" = "1" ]]; then - echo "---------- Install yar ----------" - printf "\n" | pecl install yar - docker-php-ext-enable yar - else - echo "yar requires PHP >= 7.0.0, installed version is ${PHP_VERSION}" - fi - -fi - - - -if [[ -z "${EXTENSIONS##*,yaconf,*}" ]]; then - isPhpVersionGreaterOrEqual 7 0 - if [[ "$?" = "1" ]]; then - echo "---------- Install yaconf ----------" - printf "\n" | pecl install yaconf - docker-php-ext-enable yaconf - else - echo "yar requires PHP >= 7.0.0, installed version is ${PHP_VERSION}" - fi -fi - -if [[ -z "${EXTENSIONS##*,seaslog,*}" ]]; then - echo "---------- Install seaslog ----------" - printf "\n" | pecl install seaslog - docker-php-ext-enable seaslog -fi - -if [[ -z "${EXTENSIONS##*,varnish,*}" ]]; then - echo "---------- Install varnish ----------" - apk add --no-cache varnish-dev - printf "\n" | pecl install varnish - docker-php-ext-enable varnish -fi - -if [[ -z "${EXTENSIONS##*,pdo_sqlsrv,*}" ]]; then - isPhpVersionGreaterOrEqual 7 1 - if [[ "$?" = "1" ]]; then - echo "---------- Install pdo_sqlsrv ----------" - install-php-extensions pdo_sqlsrv - else - echo "pdo_sqlsrv requires PHP >= 7.1.0, installed version is ${PHP_VERSION}" - fi -fi - -if [[ -z "${EXTENSIONS##*,sqlsrv,*}" ]]; then - isPhpVersionGreaterOrEqual 7 1 - if [[ "$?" = "1" ]]; then - echo "---------- Install sqlsrv ----------" - install-php-extensions sqlsrv - else - echo "sqlsrv requires PHP >= 7.1.0, installed version is ${PHP_VERSION}" - fi -fi - -if [[ -z "${EXTENSIONS##*,mcrypt,*}" ]]; then - isPhpVersionGreaterOrEqual 7 0 - if [[ "$?" = "1" ]]; then - echo "---------- Install mcrypt ----------" - apk add --no-cache libmcrypt-dev libmcrypt re2c - printf "\n" |pecl install mcrypt - docker-php-ext-enable mcrypt - else - echo "---------- Install mcrypt ----------" - apk add --no-cache libmcrypt-dev \ - && docker-php-ext-install ${MC} mcrypt - fi -fi - -if [[ -z "${EXTENSIONS##*,mysql,*}" ]]; then - isPhpVersionGreaterOrEqual 7 0 - - if [[ "$?" = "1" ]]; then - echo "---------- mysql was REMOVED from PHP 7.0.0 ----------" - else - echo "---------- Install mysql ----------" - docker-php-ext-install ${MC} mysql - fi -fi - -if [[ -z "${EXTENSIONS##*,sodium,*}" ]]; then - isPhpVersionGreaterOrEqual 7 2 - if [[ "$?" = "1" ]]; then - echo - echo "Sodium is bundled with PHP from PHP 7.2.0" - echo - else - echo "---------- Install sodium ----------" - apk add --no-cache libsodium-dev - docker-php-ext-install ${MC} sodium - fi -fi - -if [[ -z "${EXTENSIONS##*,amqp,*}" ]]; then - echo "---------- Install amqp ----------" - apk add --no-cache rabbitmq-c-dev - installExtensionFromTgz amqp-1.10.2 -fi - -if [[ -z "${EXTENSIONS##*,redis,*}" ]]; then - echo "---------- Install redis ----------" - installExtensionFromTgz redis-5.3.7 -fi - -if [[ -z "${EXTENSIONS##*,apcu,*}" ]]; then - echo "---------- Install apcu ----------" - installExtensionFromTgz apcu-5.1.17 -fi - -if [[ -z "${EXTENSIONS##*,memcached,*}" ]]; then - echo "---------- Install memcached ----------" - apk add --no-cache libmemcached-dev zlib-dev - isPhpVersionGreaterOrEqual 7 0 - - if [[ "$?" = "1" ]]; then - printf "\n" | pecl install memcached-3.1.3 - else - printf "\n" | pecl install memcached-2.2.0 - fi - - docker-php-ext-enable memcached -fi - -if [[ -z "${EXTENSIONS##*,memcache,*}" ]]; then - echo "---------- Install memcache ----------" - isPhpVersionGreaterOrEqual 7 0 - if [[ "$?" = "1" ]]; then - installExtensionFromTgz memcache-4.0.5.2 - else - installExtensionFromTgz memcache-2.2.6 - fi -fi - -if [[ -z "${EXTENSIONS##*,xdebug,*}" ]]; then - echo "---------- Install xdebug ----------" - isPhpVersionGreaterOrEqual 7 0 - - if [[ "$?" = "1" ]]; then - isPhpVersionGreaterOrEqual 7 4 - if [[ "$?" = "1" ]]; then - installExtensionFromTgz xdebug-2.9.2 - else - installExtensionFromTgz xdebug-2.6.1 - fi - else - installExtensionFromTgz xdebug-2.5.5 - fi -fi - -if [[ -z "${EXTENSIONS##*,event,*}" ]]; then - echo "---------- Install event ----------" - apk add --no-cache libevent-dev - export is_sockets_installed=$(php -r "echo extension_loaded('sockets');") - - if [[ "${is_sockets_installed}" = "" ]]; then - echo "---------- event is depend on sockets, install sockets first ----------" - docker-php-ext-install sockets - fi - - echo "---------- Install event again ----------" - mkdir event - tar -xf event-3.0.8.tgz -C event --strip-components=1 - cd event && phpize && ./configure && make && make install - - docker-php-ext-enable --ini-name event.ini event -fi - -if [[ -z "${EXTENSIONS##*,mongodb,*}" ]]; then - echo "---------- Install mongodb ----------" - apk add --no-cache openssl-dev - installExtensionFromTgz mongodb-1.7.4 - docker-php-ext-configure mongodb --with-mongodb-ssl=openssl -fi - -if [[ -z "${EXTENSIONS##*,yaf,*}" ]]; then - echo "---------- Install yaf ----------" - isPhpVersionGreaterOrEqual 7 0 - - if [[ "$?" = "1" ]]; then - printf "\n" | pecl install yaf - docker-php-ext-enable yaf - else - installExtensionFromTgz yaf-2.3.5 - fi -fi - - -if [[ -z "${EXTENSIONS##*,swoole,*}" ]]; then - echo "---------- Install swoole ----------" - # Fix: Refer to the line containing "swoole@alpine)" in file "./install-php-extensions" - apk add --no-cache libstdc++ - - isPhpVersionGreaterOrEqual 7 0 - - if [[ "$?" = "1" ]]; then - installExtensionFromTgz swoole-4.8.11 --enable-openssl - else - installExtensionFromTgz swoole-2.0.11 - fi -fi - -if [[ -z "${EXTENSIONS##*,zip,*}" ]]; then - echo "---------- Install zip ----------" - # Fix: https://github.com/docker-library/php/issues/797 - apk add --no-cache libzip-dev - - isPhpVersionGreaterOrEqual 7 4 - if [[ "$?" != "1" ]]; then - docker-php-ext-configure zip --with-libzip=/usr/include - fi - - docker-php-ext-install ${MC} zip -fi - -if [[ -z "${EXTENSIONS##*,xhprof,*}" ]]; then - echo "---------- Install XHProf ----------" - - isPhpVersionGreaterOrEqual 7 0 - - if [[ "$?" = "1" ]]; then - mkdir xhprof \ - && tar -xf xhprof-2.2.0.tgz -C xhprof --strip-components=1 \ - && ( cd xhprof/extension/ && phpize && ./configure && make ${MC} && make install ) \ - && docker-php-ext-enable xhprof - else - echo "---------- PHP Version>= 7.0----------" - fi - -fi - -if [[ -z "${EXTENSIONS##*,xlswriter,*}" ]]; then - echo "---------- Install xlswriter ----------" - isPhpVersionGreaterOrEqual 7 0 - - if [[ "$?" = "1" ]]; then - printf "\n" | pecl install xlswriter - docker-php-ext-enable xlswriter - else - echo "---------- PHP Version>= 7.0----------" - fi -fi - -if [[ -z "${EXTENSIONS##*,rdkafka,*}" ]]; then - echo "---------- Install rdkafka ----------" - isPhpVersionGreaterOrEqual 5 6 - - if [[ "$?" = "1" ]]; then - apk add librdkafka-dev - printf "\n" | pecl install rdkafka - docker-php-ext-enable rdkafka - else - echo "---------- PHP Version>= 5.6----------" - fi -fi - -if [[ -z "${EXTENSIONS##*,zookeeper,*}" ]]; then - echo "---------- Install zookeeper ----------" - isPhpVersionGreaterOrEqual 7 0 - - if [[ "$?" = "1" ]]; then - apk add re2c - apk add libzookeeper-dev --repository http://${CONTAINER_PACKAGE_URL}/alpine/edge/testing/ - printf "\n" | pecl install zookeeper - docker-php-ext-enable zookeeper - else - echo "---------- PHP Version>= 7.0----------" - fi -fi - -if [[ -z "${EXTENSIONS##*,phalcon,*}" ]]; then - echo "---------- Install phalcon ----------" - isPhpVersionGreaterOrEqual 7 2 - - if [[ "$?" = "1" ]]; then - printf "\n" | pecl install phalcon - docker-php-ext-enable psr - docker-php-ext-enable phalcon - else - echo "---------- PHP Version>= 7.2----------" - fi -fi - -if [[ -z "${EXTENSIONS##*,sdebug,*}" ]]; then - echo "---------- Install sdebug ----------" - isPhpVersionGreaterOrEqual 7 2 - - if [[ "$?" = "1" ]]; then - curl -SL "https://github.com/swoole/sdebug/archive/sdebug_2_9-beta.tar.gz" -o sdebug.tar.gz \ - && mkdir -p sdebug \ - && tar -xf sdebug.tar.gz -C sdebug --strip-components=1 \ - && rm sdebug.tar.gz \ - && ( \ - cd sdebug \ - && phpize \ - && ./configure --enable-xdebug \ - && make clean && make && make install \ - ) \ - && docker-php-ext-enable xdebug - else - echo "---------- PHP Version>= 7.2----------" - fi -fi - -if [ "${PHP_EXTENSIONS}" != "" ]; then - apk del .build-deps \ - && docker-php-source delete -fi diff --git a/php7/7.0.33/build/php/extensions/memcache-2.2.6.tgz b/php7/7.0.33/build/php/extensions/memcache-2.2.6.tgz deleted file mode 100644 index 841d0296e..000000000 Binary files a/php7/7.0.33/build/php/extensions/memcache-2.2.6.tgz and /dev/null differ diff --git a/php7/7.0.33/build/php/extensions/memcache-4.0.5.2.tgz b/php7/7.0.33/build/php/extensions/memcache-4.0.5.2.tgz deleted file mode 100644 index 1f7d370b3..000000000 Binary files a/php7/7.0.33/build/php/extensions/memcache-4.0.5.2.tgz and /dev/null differ diff --git a/php7/7.0.33/build/php/extensions/mongodb-1.7.4.tgz b/php7/7.0.33/build/php/extensions/mongodb-1.7.4.tgz deleted file mode 100644 index 94528560b..000000000 Binary files a/php7/7.0.33/build/php/extensions/mongodb-1.7.4.tgz and /dev/null differ diff --git a/php7/7.0.33/build/php/extensions/redis-5.3.7.tgz b/php7/7.0.33/build/php/extensions/redis-5.3.7.tgz deleted file mode 100644 index db2187b4d..000000000 Binary files a/php7/7.0.33/build/php/extensions/redis-5.3.7.tgz and /dev/null differ diff --git a/php7/7.0.33/build/php/extensions/swoole-2.0.11.tgz b/php7/7.0.33/build/php/extensions/swoole-2.0.11.tgz deleted file mode 100644 index a155450ce..000000000 Binary files a/php7/7.0.33/build/php/extensions/swoole-2.0.11.tgz and /dev/null differ diff --git a/php7/7.0.33/build/php/extensions/swoole-4.8.11.tgz b/php7/7.0.33/build/php/extensions/swoole-4.8.11.tgz deleted file mode 100644 index 01674cdc9..000000000 Binary files a/php7/7.0.33/build/php/extensions/swoole-4.8.11.tgz and /dev/null differ diff --git a/php7/7.0.33/build/php/extensions/xdebug-2.5.5.tgz b/php7/7.0.33/build/php/extensions/xdebug-2.5.5.tgz deleted file mode 100644 index d62c7ff63..000000000 Binary files a/php7/7.0.33/build/php/extensions/xdebug-2.5.5.tgz and /dev/null differ diff --git a/php7/7.0.33/build/php/extensions/xdebug-2.6.1.tgz b/php7/7.0.33/build/php/extensions/xdebug-2.6.1.tgz deleted file mode 100644 index c756fba39..000000000 Binary files a/php7/7.0.33/build/php/extensions/xdebug-2.6.1.tgz and /dev/null differ diff --git a/php7/7.0.33/build/php/extensions/xdebug-2.9.2.tgz b/php7/7.0.33/build/php/extensions/xdebug-2.9.2.tgz deleted file mode 100644 index 8131fff35..000000000 Binary files a/php7/7.0.33/build/php/extensions/xdebug-2.9.2.tgz and /dev/null differ diff --git a/php7/7.0.33/build/php/extensions/xhprof-2.2.0.tgz b/php7/7.0.33/build/php/extensions/xhprof-2.2.0.tgz deleted file mode 100644 index 2614df31a..000000000 Binary files a/php7/7.0.33/build/php/extensions/xhprof-2.2.0.tgz and /dev/null differ diff --git a/php7/7.0.33/build/php/extensions/yaf-2.3.5.tgz b/php7/7.0.33/build/php/extensions/yaf-2.3.5.tgz deleted file mode 100644 index d965a0f19..000000000 Binary files a/php7/7.0.33/build/php/extensions/yaf-2.3.5.tgz and /dev/null differ diff --git a/php7/7.0.33/build/php/php-fpm.conf b/php7/7.0.33/build/php/php-fpm.conf deleted file mode 100644 index 131835891..000000000 --- a/php7/7.0.33/build/php/php-fpm.conf +++ /dev/null @@ -1,423 +0,0 @@ -; Start a new pool named 'www'. -; the variable $pool can be used in any directive and will be replaced by the -; pool name ('www' here) -[www] - -; Per pool prefix -; It only applies on the following directives: -; - 'access.log' -; - 'slowlog' -; - 'listen' (unixsocket) -; - 'chroot' -; - 'chdir' -; - 'php_values' -; - 'php_admin_values' -; When not set, the global prefix (or NONE) applies instead. -; Note: This directive can also be relative to the global prefix. -; Default Value: none -;prefix = /path/to/pools/$pool - -; Unix user/group of processes -; Note: The user is mandatory. If the group is not set, the default user's group -; will be used. -user = www-data -group = www-data - -; The address on which to accept FastCGI requests. -; Valid syntaxes are: -; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on -; a specific port; -; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on -; a specific port; -; 'port' - to listen on a TCP socket to all addresses -; (IPv6 and IPv4-mapped) on a specific port; -; '/path/to/unix/socket' - to listen on a unix socket. -; Note: This value is mandatory. -listen = 127.0.0.1:9000 - -; Set listen(2) backlog. -; Default Value: 511 (-1 on FreeBSD and OpenBSD) -;listen.backlog = 511 - -; Set permissions for unix socket, if one is used. In Linux, read/write -; permissions must be set in order to allow connections from a web server. Many -; BSD-derived systems allow connections regardless of permissions. -; Default Values: user and group are set as the running user -; mode is set to 0660 -;listen.owner = www-data -;listen.group = www-data -;listen.mode = 0660 -; When POSIX Access Control Lists are supported you can set them using -; these options, value is a comma separated list of user/group names. -; When set, listen.owner and listen.group are ignored -;listen.acl_users = -;listen.acl_groups = - -; List of addresses (IPv4/IPv6) of FastCGI clients which are allowed to connect. -; Equivalent to the FCGI_WEB_SERVER_ADDRS environment variable in the original -; PHP FCGI (5.2.2+). Makes sense only with a tcp listening socket. Each address -; must be separated by a comma. If this value is left blank, connections will be -; accepted from any ip address. -; Default Value: any -;listen.allowed_clients = 127.0.0.1 - -; Specify the nice(2) priority to apply to the pool processes (only if set) -; The value can vary from -19 (highest priority) to 20 (lower priority) -; Note: - It will only work if the FPM master process is launched as root -; - The pool processes will inherit the master process priority -; unless it specified otherwise -; Default Value: no set -; process.priority = -19 - -; Set the process dumpable flag (PR_SET_DUMPABLE prctl) even if the process user -; or group is differrent than the master process user. It allows to create process -; core dump and ptrace the process for the pool user. -; Default Value: no -; process.dumpable = yes - -; Choose how the process manager will control the number of child processes. -; Possible Values: -; static - a fixed number (pm.max_children) of child processes; -; dynamic - the number of child processes are set dynamically based on the -; following directives. With this process management, there will be -; always at least 1 children. -; pm.max_children - the maximum number of children that can -; be alive at the same time. -; pm.start_servers - the number of children created on startup. -; pm.min_spare_servers - the minimum number of children in 'idle' -; state (waiting to process). If the number -; of 'idle' processes is less than this -; number then some children will be created. -; pm.max_spare_servers - the maximum number of children in 'idle' -; state (waiting to process). If the number -; of 'idle' processes is greater than this -; number then some children will be killed. -; ondemand - no children are created at startup. Children will be forked when -; new requests will connect. The following parameter are used: -; pm.max_children - the maximum number of children that -; can be alive at the same time. -; pm.process_idle_timeout - The number of seconds after which -; an idle process will be killed. -; Note: This value is mandatory. -pm = dynamic - -; The number of child processes to be created when pm is set to 'static' and the -; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'. -; This value sets the limit on the number of simultaneous requests that will be -; served. Equivalent to the ApacheMaxClients directive with mpm_prefork. -; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP -; CGI. The below defaults are based on a server without much resources. Don't -; forget to tweak pm.* to fit your needs. -; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand' -; Note: This value is mandatory. -pm.max_children = 10 - -; The number of child processes created on startup. -; Note: Used only when pm is set to 'dynamic' -; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2 -pm.start_servers = 2 - -; The desired minimum number of idle server processes. -; Note: Used only when pm is set to 'dynamic' -; Note: Mandatory when pm is set to 'dynamic' -pm.min_spare_servers = 1 - -; The desired maximum number of idle server processes. -; Note: Used only when pm is set to 'dynamic' -; Note: Mandatory when pm is set to 'dynamic' -pm.max_spare_servers = 3 - -; The number of seconds after which an idle process will be killed. -; Note: Used only when pm is set to 'ondemand' -; Default Value: 10s -;pm.process_idle_timeout = 10s; - -; The number of requests each child process should execute before respawning. -; This can be useful to work around memory leaks in 3rd party libraries. For -; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS. -; Default Value: 0 -;pm.max_requests = 500 - -; The URI to view the FPM status page. If this value is not set, no URI will be -; recognized as a status page. It shows the following informations: -; pool - the name of the pool; -; process manager - static, dynamic or ondemand; -; start time - the date and time FPM has started; -; start since - number of seconds since FPM has started; -; accepted conn - the number of request accepted by the pool; -; listen queue - the number of request in the queue of pending -; connections (see backlog in listen(2)); -; max listen queue - the maximum number of requests in the queue -; of pending connections since FPM has started; -; listen queue len - the size of the socket queue of pending connections; -; idle processes - the number of idle processes; -; active processes - the number of active processes; -; total processes - the number of idle + active processes; -; max active processes - the maximum number of active processes since FPM -; has started; -; max children reached - number of times, the process limit has been reached, -; when pm tries to start more children (works only for -; pm 'dynamic' and 'ondemand'); -; Value are updated in real time. -; Example output: -; pool: www -; process manager: static -; start time: 01/Jul/2011:17:53:49 +0200 -; start since: 62636 -; accepted conn: 190460 -; listen queue: 0 -; max listen queue: 1 -; listen queue len: 42 -; idle processes: 4 -; active processes: 11 -; total processes: 15 -; max active processes: 12 -; max children reached: 0 -; -; By default the status page output is formatted as text/plain. Passing either -; 'html', 'xml' or 'json' in the query string will return the corresponding -; output syntax. Example: -; http://www.foo.bar/status -; http://www.foo.bar/status?json -; http://www.foo.bar/status?html -; http://www.foo.bar/status?xml -; -; By default the status page only outputs short status. Passing 'full' in the -; query string will also return status for each pool process. -; Example: -; http://www.foo.bar/status?full -; http://www.foo.bar/status?json&full -; http://www.foo.bar/status?html&full -; http://www.foo.bar/status?xml&full -; The Full status returns for each process: -; pid - the PID of the process; -; state - the state of the process (Idle, Running, ...); -; start time - the date and time the process has started; -; start since - the number of seconds since the process has started; -; requests - the number of requests the process has served; -; request duration - the duration in µs of the requests; -; request method - the request method (GET, POST, ...); -; request URI - the request URI with the query string; -; content length - the content length of the request (only with POST); -; user - the user (PHP_AUTH_USER) (or '-' if not set); -; script - the main script called (or '-' if not set); -; last request cpu - the %cpu the last request consumed -; it's always 0 if the process is not in Idle state -; because CPU calculation is done when the request -; processing has terminated; -; last request memory - the max amount of memory the last request consumed -; it's always 0 if the process is not in Idle state -; because memory calculation is done when the request -; processing has terminated; -; If the process is in Idle state, then informations are related to the -; last request the process has served. Otherwise informations are related to -; the current request being served. -; Example output: -; ************************ -; pid: 31330 -; state: Running -; start time: 01/Jul/2011:17:53:49 +0200 -; start since: 63087 -; requests: 12808 -; request duration: 1250261 -; request method: GET -; request URI: /test_mem.php?N=10000 -; content length: 0 -; user: - -; script: /home/fat/web/docs/php/test_mem.php -; last request cpu: 0.00 -; last request memory: 0 -; -; Note: There is a real-time FPM status monitoring sample web page available -; It's available in: /usr/local/share/php/fpm/status.html -; -; Note: The value must start with a leading slash (/). The value can be -; anything, but it may not be a good idea to use the .php extension or it -; may conflict with a real PHP file. -; Default Value: not set -;pm.status_path = /status - -; The ping URI to call the monitoring page of FPM. If this value is not set, no -; URI will be recognized as a ping page. This could be used to test from outside -; that FPM is alive and responding, or to -; - create a graph of FPM availability (rrd or such); -; - remove a server from a group if it is not responding (load balancing); -; - trigger alerts for the operating team (24/7). -; Note: The value must start with a leading slash (/). The value can be -; anything, but it may not be a good idea to use the .php extension or it -; may conflict with a real PHP file. -; Default Value: not set -;ping.path = /ping - -; This directive may be used to customize the response of a ping request. The -; response is formatted as text/plain with a 200 response code. -; Default Value: pong -;ping.response = pong - -; The access log file -; Default: not set -;access.log = log/$pool.access.log - -; The access log format. -; The following syntax is allowed -; %%: the '%' character -; %C: %CPU used by the request -; it can accept the following format: -; - %{user}C for user CPU only -; - %{system}C for system CPU only -; - %{total}C for user + system CPU (default) -; %d: time taken to serve the request -; it can accept the following format: -; - %{seconds}d (default) -; - %{miliseconds}d -; - %{mili}d -; - %{microseconds}d -; - %{micro}d -; %e: an environment variable (same as $_ENV or $_SERVER) -; it must be associated with embraces to specify the name of the env -; variable. Some exemples: -; - server specifics like: %{REQUEST_METHOD}e or %{SERVER_PROTOCOL}e -; - HTTP headers like: %{HTTP_HOST}e or %{HTTP_USER_AGENT}e -; %f: script filename -; %l: content-length of the request (for POST request only) -; %m: request method -; %M: peak of memory allocated by PHP -; it can accept the following format: -; - %{bytes}M (default) -; - %{kilobytes}M -; - %{kilo}M -; - %{megabytes}M -; - %{mega}M -; %n: pool name -; %o: output header -; it must be associated with embraces to specify the name of the header: -; - %{Content-Type}o -; - %{X-Powered-By}o -; - %{Transfert-Encoding}o -; - .... -; %p: PID of the child that serviced the request -; %P: PID of the parent of the child that serviced the request -; %q: the query string -; %Q: the '?' character if query string exists -; %r: the request URI (without the query string, see %q and %Q) -; %R: remote IP address -; %s: status (response code) -; %t: server time the request was received -; it can accept a strftime(3) format: -; %d/%b/%Y:%H:%M:%S %z (default) -; The strftime(3) format must be encapsuled in a %{}t tag -; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t -; %T: time the log has been written (the request has finished) -; it can accept a strftime(3) format: -; %d/%b/%Y:%H:%M:%S %z (default) -; The strftime(3) format must be encapsuled in a %{}t tag -; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t -; %u: remote user -; -; Default: "%R - %u %t \"%m %r\" %s" -;access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%" - -; The log file for slow requests -; Default Value: not set -; Note: slowlog is mandatory if request_slowlog_timeout is set -slowlog = /var/log/php/fpm.slow.log - -; The timeout for serving a single request after which a PHP backtrace will be -; dumped to the 'slowlog' file. A value of '0s' means 'off'. -; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) -; Default Value: 0 -request_slowlog_timeout = 3 - -; Depth of slow log stack trace. -; Default Value: 20 -;request_slowlog_trace_depth = 20 - -; The timeout for serving a single request after which the worker process will -; be killed. This option should be used when the 'max_execution_time' ini option -; does not stop script execution for some reason. A value of '0' means 'off'. -; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) -; Default Value: 0 -;request_terminate_timeout = 0 - -; Set open file descriptor rlimit. -; Default Value: system defined value -;rlimit_files = 1024 - -; Set max core size rlimit. -; Possible Values: 'unlimited' or an integer greater or equal to 0 -; Default Value: system defined value -;rlimit_core = 0 - -; Chroot to this directory at the start. This value must be defined as an -; absolute path. When this value is not set, chroot is not used. -; Note: you can prefix with '$prefix' to chroot to the pool prefix or one -; of its subdirectories. If the pool prefix is not set, the global prefix -; will be used instead. -; Note: chrooting is a great security feature and should be used whenever -; possible. However, all PHP paths will be relative to the chroot -; (error_log, sessions.save_path, ...). -; Default Value: not set -;chroot = - -; Chdir to this directory at the start. -; Note: relative path can be used. -; Default Value: current directory or / when chroot -;chdir = /var/www - -; Redirect worker stdout and stderr into main error log. If not set, stdout and -; stderr will be redirected to /dev/null according to FastCGI specs. -; Note: on highloaded environement, this can cause some delay in the page -; process time (several ms). -; Default Value: no -catch_workers_output = yes - -; Clear environment in FPM workers -; Prevents arbitrary environment variables from reaching FPM worker processes -; by clearing the environment in workers before env vars specified in this -; pool configuration are added. -; Setting to "no" will make all environment variables available to PHP code -; via getenv(), $_ENV and $_SERVER. -; Default Value: yes -;clear_env = no - -; Limits the extensions of the main script FPM will allow to parse. This can -; prevent configuration mistakes on the web server side. You should only limit -; FPM to .php extensions to prevent malicious users to use other extensions to -; execute php code. -; Note: set an empty value to allow all extensions. -; Default Value: .php -;security.limit_extensions = .php .php3 .php4 .php5 .php7 - -; Pass environment variables like LD_LIBRARY_PATH. All $VARIABLEs are taken from -; the current environment. -; Default Value: clean env -;env[HOSTNAME] = $HOSTNAME -;env[PATH] = /usr/local/bin:/usr/bin:/bin -;env[TMP] = /tmp -;env[TMPDIR] = /tmp -;env[TEMP] = /tmp - -; Additional php.ini defines, specific to this pool of workers. These settings -; overwrite the values previously defined in the php.ini. The directives are the -; same as the PHP SAPI: -; php_value/php_flag - you can set classic ini defines which can -; be overwritten from PHP call 'ini_set'. -; php_admin_value/php_admin_flag - these directives won't be overwritten by -; PHP call 'ini_set' -; For php_*flag, valid values are on, off, 1, 0, true, false, yes or no. - -; Defining 'extension' will load the corresponding shared extension from -; extension_dir. Defining 'disable_functions' or 'disable_classes' will not -; overwrite previously defined php.ini values, but will append the new value -; instead. - -; Note: path INI options can be relative and will be expanded with the prefix -; (pool, global or /usr/local) - -; Default Value: nothing is defined by default except the values in php.ini and -; specified at startup with the -d argument -;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com -;php_flag[display_errors] = off -;php_admin_value[error_log] = /var/log/fpm-php.www.log -;php_admin_flag[log_errors] = on -;php_admin_value[memory_limit] = 32M diff --git a/php7/7.0.33/build/php/php.ini b/php7/7.0.33/build/php/php.ini deleted file mode 100644 index b6b0aee69..000000000 --- a/php7/7.0.33/build/php/php.ini +++ /dev/null @@ -1,1933 +0,0 @@ -[PHP] - -;;;;;;;;;;;;;;;;;;; -; About php.ini ; -;;;;;;;;;;;;;;;;;;; -; PHP's initialization file, generally called php.ini, is responsible for -; configuring many of the aspects of PHP's behavior. - -; PHP attempts to find and load this configuration from a number of locations. -; The following is a summary of its search order: -; 1. SAPI module specific location. -; 2. The PHPRC environment variable. (As of PHP 5.2.0) -; 3. A number of predefined registry keys on Windows (As of PHP 5.2.0) -; 4. Current working directory (except CLI) -; 5. The web server's directory (for SAPI modules), or directory of PHP -; (otherwise in Windows) -; 6. The directory from the --with-config-file-path compile time option, or the -; Windows directory (C:\windows or C:\winnt) -; See the PHP docs for more specific information. -; http://php.net/configuration.file - -; The syntax of the file is extremely simple. Whitespace and lines -; beginning with a semicolon are silently ignored (as you probably guessed). -; Section headers (e.g. [Foo]) are also silently ignored, even though -; they might mean something in the future. - -; Directives following the section heading [PATH=/www/mysite] only -; apply to PHP files in the /www/mysite directory. Directives -; following the section heading [HOST=www.example.com] only apply to -; PHP files served from www.example.com. Directives set in these -; special sections cannot be overridden by user-defined INI files or -; at runtime. Currently, [PATH=] and [HOST=] sections only work under -; CGI/FastCGI. -; http://php.net/ini.sections - -; Directives are specified using the following syntax: -; directive = value -; Directive names are *case sensitive* - foo=bar is different from FOO=bar. -; Directives are variables used to configure PHP or PHP extensions. -; There is no name validation. If PHP can't find an expected -; directive because it is not set or is mistyped, a default value will be used. - -; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one -; of the INI constants (On, Off, True, False, Yes, No and None) or an expression -; (e.g. E_ALL & ~E_NOTICE), a quoted string ("bar"), or a reference to a -; previously set variable or directive (e.g. ${foo}) - -; Expressions in the INI file are limited to bitwise operators and parentheses: -; | bitwise OR -; ^ bitwise XOR -; & bitwise AND -; ~ bitwise NOT -; ! boolean NOT - -; Boolean flags can be turned on using the values 1, On, True or Yes. -; They can be turned off using the values 0, Off, False or No. - -; An empty string can be denoted by simply not writing anything after the equal -; sign, or by using the None keyword: - -; foo = ; sets foo to an empty string -; foo = None ; sets foo to an empty string -; foo = "None" ; sets foo to the string 'None' - -; If you use constants in your value, and these constants belong to a -; dynamically loaded extension (either a PHP extension or a Zend extension), -; you may only use these constants *after* the line that loads the extension. - -;;;;;;;;;;;;;;;;;;; -; About this file ; -;;;;;;;;;;;;;;;;;;; -; PHP comes packaged with two INI files. One that is recommended to be used -; in production environments and one that is recommended to be used in -; development environments. - -; php.ini-production contains settings which hold security, performance and -; best practices at its core. But please be aware, these settings may break -; compatibility with older or less security conscience applications. We -; recommending using the production ini in production and testing environments. - -; php.ini-development is very similar to its production variant, except it is -; much more verbose when it comes to errors. We recommend using the -; development version only in development environments, as errors shown to -; application users can inadvertently leak otherwise secure information. - -; This is php.ini-production INI file. - -;;;;;;;;;;;;;;;;;;; -; Quick Reference ; -;;;;;;;;;;;;;;;;;;; -; The following are all the settings which are different in either the production -; or development versions of the INIs with respect to PHP's default behavior. -; Please see the actual settings later in the document for more details as to why -; we recommend these changes in PHP's behavior. - -; display_errors -; Default Value: On -; Development Value: On -; Production Value: Off - -; display_startup_errors -; Default Value: Off -; Development Value: On -; Production Value: Off - -; error_reporting -; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT - -; html_errors -; Default Value: On -; Development Value: On -; Production value: On - -; log_errors -; Default Value: Off -; Development Value: On -; Production Value: On - -; max_input_time -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) - -; output_buffering -; Default Value: Off -; Development Value: 4096 -; Production Value: 4096 - -; register_argc_argv -; Default Value: On -; Development Value: Off -; Production Value: Off - -; request_order -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" - -; session.gc_divisor -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 - -; session.sid_bits_per_character -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 - -; short_open_tag -; Default Value: On -; Development Value: Off -; Production Value: Off - -; track_errors -; Default Value: Off -; Development Value: On -; Production Value: Off - -; variables_order -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS" - -;;;;;;;;;;;;;;;;;;;; -; php.ini Options ; -;;;;;;;;;;;;;;;;;;;; -; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini" -;user_ini.filename = ".user.ini" - -; To disable this feature set this option to empty value -;user_ini.filename = - -; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes) -;user_ini.cache_ttl = 300 - -;;;;;;;;;;;;;;;;;;;; -; Language Options ; -;;;;;;;;;;;;;;;;;;;; - -; Enable the PHP scripting language engine under Apache. -; http://php.net/engine -engine = On - -; This directive determines whether or not PHP will recognize code between -; tags as PHP source which should be processed as such. It is -; generally recommended that should be used and that this feature -; should be disabled, as enabling it may result in issues when generating XML -; documents, however this remains supported for backward compatibility reasons. -; Note that this directive does not control the would work. -; http://php.net/syntax-highlighting -;highlight.string = #DD0000 -;highlight.comment = #FF9900 -;highlight.keyword = #007700 -;highlight.default = #0000BB -;highlight.html = #000000 - -; If enabled, the request will be allowed to complete even if the user aborts -; the request. Consider enabling it if executing long requests, which may end up -; being interrupted by the user or a browser timing out. PHP's default behavior -; is to disable this feature. -; http://php.net/ignore-user-abort -;ignore_user_abort = On - -; Determines the size of the realpath cache to be used by PHP. This value should -; be increased on systems where PHP opens many files to reflect the quantity of -; the file operations performed. -; http://php.net/realpath-cache-size -;realpath_cache_size = 4096k - -; Duration of time, in seconds for which to cache realpath information for a given -; file or directory. For systems with rarely changing files, consider increasing this -; value. -; http://php.net/realpath-cache-ttl -;realpath_cache_ttl = 120 - -; Enables or disables the circular reference collector. -; http://php.net/zend.enable-gc -zend.enable_gc = On - -; If enabled, scripts may be written in encodings that are incompatible with -; the scanner. CP936, Big5, CP949 and Shift_JIS are the examples of such -; encodings. To use this feature, mbstring extension must be enabled. -; Default: Off -;zend.multibyte = Off - -; Allows to set the default encoding for the scripts. This value will be used -; unless "declare(encoding=...)" directive appears at the top of the script. -; Only affects if zend.multibyte is set. -; Default: "" -;zend.script_encoding = - -;;;;;;;;;;;;;;;;; -; Miscellaneous ; -;;;;;;;;;;;;;;;;; - -; Decides whether PHP may expose the fact that it is installed on the server -; (e.g. by adding its signature to the Web server header). It is no security -; threat in any way, but it makes it possible to determine whether you use PHP -; on your server or not. -; http://php.net/expose-php -expose_php = Off - -;;;;;;;;;;;;;;;;;;; -; Resource Limits ; -;;;;;;;;;;;;;;;;;;; - -; Maximum execution time of each script, in seconds -; http://php.net/max-execution-time -; Note: This directive is hardcoded to 0 for the CLI SAPI -max_execution_time = 30 - -; Maximum amount of time each script may spend parsing request data. It's a good -; idea to limit this time on productions servers in order to eliminate unexpectedly -; long running scripts. -; Note: This directive is hardcoded to -1 for the CLI SAPI -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) -; http://php.net/max-input-time -max_input_time = 60 - -; Maximum input variable nesting level -; http://php.net/max-input-nesting-level -;max_input_nesting_level = 64 - -; How many GET/POST/COOKIE input variables may be accepted -; max_input_vars = 1000 - -; Maximum amount of memory a script may consume (128MB) -; http://php.net/memory-limit -memory_limit = 256M - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; Error handling and logging ; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -; This directive informs PHP of which errors, warnings and notices you would like -; it to take action for. The recommended way of setting values for this -; directive is through the use of the error level constants and bitwise -; operators. The error level constants are below here for convenience as well as -; some common settings and their meanings. -; By default, PHP is set to take action on all errors, notices and warnings EXCEPT -; those related to E_NOTICE and E_STRICT, which together cover best practices and -; recommended coding standards in PHP. For performance reasons, this is the -; recommend error reporting setting. Your production server shouldn't be wasting -; resources complaining about best practices and coding standards. That's what -; development servers and development settings are for. -; Note: The php.ini-development file has this setting as E_ALL. This -; means it pretty much reports everything which is exactly what you want during -; development and early testing. -; -; Error Level Constants: -; E_ALL - All errors and warnings (includes E_STRICT as of PHP 5.4.0) -; E_ERROR - fatal run-time errors -; E_RECOVERABLE_ERROR - almost fatal run-time errors -; E_WARNING - run-time warnings (non-fatal errors) -; E_PARSE - compile-time parse errors -; E_NOTICE - run-time notices (these are warnings which often result -; from a bug in your code, but it's possible that it was -; intentional (e.g., using an uninitialized variable and -; relying on the fact it is automatically initialized to an -; empty string) -; E_STRICT - run-time notices, enable to have PHP suggest changes -; to your code which will ensure the best interoperability -; and forward compatibility of your code -; E_CORE_ERROR - fatal errors that occur during PHP's initial startup -; E_CORE_WARNING - warnings (non-fatal errors) that occur during PHP's -; initial startup -; E_COMPILE_ERROR - fatal compile-time errors -; E_COMPILE_WARNING - compile-time warnings (non-fatal errors) -; E_USER_ERROR - user-generated error message -; E_USER_WARNING - user-generated warning message -; E_USER_NOTICE - user-generated notice message -; E_DEPRECATED - warn about code that will not work in future versions -; of PHP -; E_USER_DEPRECATED - user-generated deprecation warnings -; -; Common Values: -; E_ALL (Show all errors, warnings and notices including coding standards.) -; E_ALL & ~E_NOTICE (Show all errors, except for notices) -; E_ALL & ~E_NOTICE & ~E_STRICT (Show all errors, except for notices and coding standards warnings.) -; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors) -; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT -; http://php.net/error-reporting -error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT - -; This directive controls whether or not and where PHP will output errors, -; notices and warnings too. Error output is very useful during development, but -; it could be very dangerous in production environments. Depending on the code -; which is triggering the error, sensitive information could potentially leak -; out of your application such as database usernames and passwords or worse. -; For production environments, we recommend logging errors rather than -; sending them to STDOUT. -; Possible Values: -; Off = Do not display any errors -; stderr = Display errors to STDERR (affects only CGI/CLI binaries!) -; On or stdout = Display errors to STDOUT -; Default Value: On -; Development Value: On -; Production Value: Off -; http://php.net/display-errors -display_errors = Off - -; The display of errors which occur during PHP's startup sequence are handled -; separately from display_errors. PHP's default behavior is to suppress those -; errors from clients. Turning the display of startup errors on can be useful in -; debugging configuration problems. We strongly recommend you -; set this to 'off' for production servers. -; Default Value: Off -; Development Value: On -; Production Value: Off -; http://php.net/display-startup-errors -display_startup_errors = Off - -; Besides displaying errors, PHP can also log errors to locations such as a -; server-specific log, STDERR, or a location specified by the error_log -; directive found below. While errors should not be displayed on productions -; servers they should still be monitored and logging is a great way to do that. -; Default Value: Off -; Development Value: On -; Production Value: On -; http://php.net/log-errors -log_errors = On - -; Set maximum length of log_errors. In error_log information about the source is -; added. The default is 1024 and 0 allows to not apply any maximum length at all. -; http://php.net/log-errors-max-len -log_errors_max_len = 1024 - -; Do not log repeated messages. Repeated errors must occur in same file on same -; line unless ignore_repeated_source is set true. -; http://php.net/ignore-repeated-errors -ignore_repeated_errors = Off - -; Ignore source of message when ignoring repeated messages. When this setting -; is On you will not log errors with repeated messages from different files or -; source lines. -; http://php.net/ignore-repeated-source -ignore_repeated_source = Off - -; If this parameter is set to Off, then memory leaks will not be shown (on -; stdout or in the log). This has only effect in a debug compile, and if -; error reporting includes E_WARNING in the allowed list -; http://php.net/report-memleaks -report_memleaks = On - -; This setting is on by default. -;report_zend_debug = 0 - -; Store the last error/warning message in $php_errormsg (boolean). Setting this value -; to On can assist in debugging and is appropriate for development servers. It should -; however be disabled on production servers. -; Default Value: Off -; Development Value: On -; Production Value: Off -; http://php.net/track-errors -track_errors = Off - -; Turn off normal error reporting and emit XML-RPC error XML -; http://php.net/xmlrpc-errors -;xmlrpc_errors = 0 - -; An XML-RPC faultCode -;xmlrpc_error_number = 0 - -; When PHP displays or logs an error, it has the capability of formatting the -; error message as HTML for easier reading. This directive controls whether -; the error message is formatted as HTML or not. -; Note: This directive is hardcoded to Off for the CLI SAPI -; Default Value: On -; Development Value: On -; Production value: On -; http://php.net/html-errors -html_errors = On - -; If html_errors is set to On *and* docref_root is not empty, then PHP -; produces clickable error messages that direct to a page describing the error -; or function causing the error in detail. -; You can download a copy of the PHP manual from http://php.net/docs -; and change docref_root to the base URL of your local copy including the -; leading '/'. You must also specify the file extension being used including -; the dot. PHP's default behavior is to leave these settings empty, in which -; case no links to documentation are generated. -; Note: Never use this feature for production boxes. -; http://php.net/docref-root -; Examples -;docref_root = "/phpmanual/" - -; http://php.net/docref-ext -;docref_ext = .html - -; String to output before an error message. PHP's default behavior is to leave -; this setting blank. -; http://php.net/error-prepend-string -; Example: -;error_prepend_string = "" - -; String to output after an error message. PHP's default behavior is to leave -; this setting blank. -; http://php.net/error-append-string -; Example: -;error_append_string = "" - -; Log errors to specified file. PHP's default behavior is to leave this value -; empty. -; http://php.net/error-log -; Example: -;error_log = php_errors.log -; Log errors to syslog (Event Log on Windows). -error_log = /var/log/php/php.error.log - -;windows.show_crt_warning -; Default value: 0 -; Development value: 0 -; Production value: 0 - -;;;;;;;;;;;;;;;;; -; Data Handling ; -;;;;;;;;;;;;;;;;; - -; The separator used in PHP generated URLs to separate arguments. -; PHP's default setting is "&". -; http://php.net/arg-separator.output -; Example: -;arg_separator.output = "&" - -; List of separator(s) used by PHP to parse input URLs into variables. -; PHP's default setting is "&". -; NOTE: Every character in this directive is considered as separator! -; http://php.net/arg-separator.input -; Example: -;arg_separator.input = ";&" - -; This directive determines which super global arrays are registered when PHP -; starts up. G,P,C,E & S are abbreviations for the following respective super -; globals: GET, POST, COOKIE, ENV and SERVER. There is a performance penalty -; paid for the registration of these arrays and because ENV is not as commonly -; used as the others, ENV is not recommended on productions servers. You -; can still get access to the environment variables through getenv() should you -; need to. -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS"; -; http://php.net/variables-order -variables_order = "GPCS" - -; This directive determines which super global data (G,P & C) should be -; registered into the super global array REQUEST. If so, it also determines -; the order in which that data is registered. The values for this directive -; are specified in the same manner as the variables_order directive, -; EXCEPT one. Leaving this value empty will cause PHP to use the value set -; in the variables_order directive. It does not mean it will leave the super -; globals array REQUEST empty. -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" -; http://php.net/request-order -request_order = "GP" - -; This directive determines whether PHP registers $argv & $argc each time it -; runs. $argv contains an array of all the arguments passed to PHP when a script -; is invoked. $argc contains an integer representing the number of arguments -; that were passed when the script was invoked. These arrays are extremely -; useful when running scripts from the command line. When this directive is -; enabled, registering these variables consumes CPU cycles and memory each time -; a script is executed. For performance reasons, this feature should be disabled -; on production servers. -; Note: This directive is hardcoded to On for the CLI SAPI -; Default Value: On -; Development Value: Off -; Production Value: Off -; http://php.net/register-argc-argv -register_argc_argv = Off - -; When enabled, the ENV, REQUEST and SERVER variables are created when they're -; first used (Just In Time) instead of when the script starts. If these -; variables are not used within a script, having this directive on will result -; in a performance gain. The PHP directive register_argc_argv must be disabled -; for this directive to have any affect. -; http://php.net/auto-globals-jit -auto_globals_jit = On - -; Whether PHP will read the POST data. -; This option is enabled by default. -; Most likely, you won't want to disable this option globally. It causes $_POST -; and $_FILES to always be empty; the only way you will be able to read the -; POST data will be through the php://input stream wrapper. This can be useful -; to proxy requests or to process the POST data in a memory efficient fashion. -; http://php.net/enable-post-data-reading -;enable_post_data_reading = Off - -; Maximum size of POST data that PHP will accept. -; Its value may be 0 to disable the limit. It is ignored if POST data reading -; is disabled through enable_post_data_reading. -; http://php.net/post-max-size -post_max_size = 100M - -; Automatically add files before PHP document. -; http://php.net/auto-prepend-file -auto_prepend_file = - -; Automatically add files after PHP document. -; http://php.net/auto-append-file -auto_append_file = - -; By default, PHP will output a media type using the Content-Type header. To -; disable this, simply set it to be empty. -; -; PHP's built-in default media type is set to text/html. -; http://php.net/default-mimetype -default_mimetype = "text/html" - -; PHP's default character set is set to UTF-8. -; http://php.net/default-charset -default_charset = "UTF-8" - -; PHP internal character encoding is set to empty. -; If empty, default_charset is used. -; http://php.net/internal-encoding -;internal_encoding = - -; PHP input character encoding is set to empty. -; If empty, default_charset is used. -; http://php.net/input-encoding -;input_encoding = - -; PHP output character encoding is set to empty. -; If empty, default_charset is used. -; See also output_buffer. -; http://php.net/output-encoding -;output_encoding = - -;;;;;;;;;;;;;;;;;;;;;;;;; -; Paths and Directories ; -;;;;;;;;;;;;;;;;;;;;;;;;; - -; UNIX: "/path1:/path2" -;include_path = ".:/php/includes" -; -; Windows: "\path1;\path2" -;include_path = ".;c:\php\includes" -; -; PHP's default setting for include_path is ".;/path/to/php/pear" -; http://php.net/include-path - -; The root of the PHP pages, used only if nonempty. -; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root -; if you are running php as a CGI under any web server (other than IIS) -; see documentation for security issues. The alternate is to use the -; cgi.force_redirect configuration below -; http://php.net/doc-root -doc_root = - -; The directory under which PHP opens the script using /~username used only -; if nonempty. -; http://php.net/user-dir -user_dir = - -; Directory in which the loadable extensions (modules) reside. -; http://php.net/extension-dir -; extension_dir = "./" -; On windows: -; extension_dir = "ext" - -; Directory where the temporary files should be placed. -; Defaults to the system default (see sys_get_temp_dir) -; sys_temp_dir = "/tmp" - -; Whether or not to enable the dl() function. The dl() function does NOT work -; properly in multithreaded servers, such as IIS or Zeus, and is automatically -; disabled on them. -; http://php.net/enable-dl -enable_dl = Off - -; cgi.force_redirect is necessary to provide security running PHP as a CGI under -; most web servers. Left undefined, PHP turns this on by default. You can -; turn it off here AT YOUR OWN RISK -; **You CAN safely turn this off for IIS, in fact, you MUST.** -; http://php.net/cgi.force-redirect -;cgi.force_redirect = 1 - -; if cgi.nph is enabled it will force cgi to always sent Status: 200 with -; every request. PHP's default behavior is to disable this feature. -;cgi.nph = 1 - -; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape -; (iPlanet) web servers, you MAY need to set an environment variable name that PHP -; will look for to know it is OK to continue execution. Setting this variable MAY -; cause security issues, KNOW WHAT YOU ARE DOING FIRST. -; http://php.net/cgi.redirect-status-env -;cgi.redirect_status_env = - -; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's -; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok -; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting -; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting -; of zero causes PHP to behave as before. Default is 1. You should fix your scripts -; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. -; http://php.net/cgi.fix-pathinfo -;cgi.fix_pathinfo=1 - -; if cgi.discard_path is enabled, the PHP CGI binary can safely be placed outside -; of the web tree and people will not be able to circumvent .htaccess security. -; http://php.net/cgi.dicard-path -;cgi.discard_path=1 - -; FastCGI under IIS (on WINNT based OS) supports the ability to impersonate -; security tokens of the calling client. This allows IIS to define the -; security context that the request runs under. mod_fastcgi under Apache -; does not currently support this feature (03/17/2002) -; Set to 1 if running under IIS. Default is zero. -; http://php.net/fastcgi.impersonate -;fastcgi.impersonate = 1 - -; Disable logging through FastCGI connection. PHP's default behavior is to enable -; this feature. -;fastcgi.logging = 0 - -; cgi.rfc2616_headers configuration option tells PHP what type of headers to -; use when sending HTTP response code. If set to 0, PHP sends Status: header that -; is supported by Apache. When this option is set to 1, PHP will send -; RFC2616 compliant header. -; Default is zero. -; http://php.net/cgi.rfc2616-headers -;cgi.rfc2616_headers = 0 - -; cgi.check_shebang_line controls whether CGI PHP checks for line starting with #! -; (shebang) at the top of the running script. This line might be needed if the -; script support running both as stand-alone script and via PHP CGI<. PHP in CGI -; mode skips this line and ignores its content if this directive is turned on. -; http://php.net/cgi.check-shebang-line -;cgi.check_shebang_line=1 - -;;;;;;;;;;;;;;;; -; File Uploads ; -;;;;;;;;;;;;;;;; - -; Whether to allow HTTP file uploads. -; http://php.net/file-uploads -file_uploads = On - -; Temporary directory for HTTP uploaded files (will use system default if not -; specified). -; http://php.net/upload-tmp-dir -;upload_tmp_dir = - -; Maximum allowed size for uploaded files. -; http://php.net/upload-max-filesize -upload_max_filesize = 50M - -; Maximum number of files that can be uploaded via a single request -max_file_uploads = 20 - -;;;;;;;;;;;;;;;;;; -; Fopen wrappers ; -;;;;;;;;;;;;;;;;;; - -; Whether to allow the treatment of URLs (like http:// or ftp://) as files. -; http://php.net/allow-url-fopen -allow_url_fopen = On - -; Whether to allow include/require to open URLs (like http:// or ftp://) as files. -; http://php.net/allow-url-include -allow_url_include = Off - -; Define the anonymous ftp password (your email address). PHP's default setting -; for this is empty. -; http://php.net/from -;from="john@doe.com" - -; Define the User-Agent string. PHP's default setting for this is empty. -; http://php.net/user-agent -;user_agent="PHP" - -; Default timeout for socket based streams (seconds) -; http://php.net/default-socket-timeout -default_socket_timeout = 60 - -; If your scripts have to deal with files from Macintosh systems, -; or you are running on a Mac and need to deal with files from -; unix or win32 systems, setting this flag will cause PHP to -; automatically detect the EOL character in those files so that -; fgets() and file() will work regardless of the source of the file. -; http://php.net/auto-detect-line-endings -;auto_detect_line_endings = Off - -;;;;;;;;;;;;;;;;;;;;;; -; Dynamic Extensions ; -;;;;;;;;;;;;;;;;;;;;;; - -; If you wish to have an extension loaded automatically, use the following -; syntax: -; -; extension=modulename.extension -; -; For example, on Windows: -; -; extension=mysqli.dll -; -; ... or under UNIX: -; -; extension=mysqli.so -; -; ... or with a path: -; -; extension=/path/to/extension/mysqli.so -; -; If you only provide the name of the extension, PHP will look for it in its -; default extension directory. -; -; Windows Extensions -; Note that ODBC support is built in, so no dll is needed for it. -; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5+) -; extension folders as well as the separate PECL DLL download (PHP 5+). -; Be sure to appropriately set the extension_dir directive. -; -;extension=php_bz2.dll -;extension=php_curl.dll -;extension=php_fileinfo.dll -;extension=php_ftp.dll -;extension=php_gd2.dll -;extension=php_gettext.dll -;extension=php_gmp.dll -;extension=php_intl.dll -;extension=php_imap.dll -;extension=php_interbase.dll -;extension=php_ldap.dll -;extension=php_mbstring.dll -;extension=php_exif.dll ; Must be after mbstring as it depends on it -;extension=php_mysqli.dll -;extension=php_oci8_12c.dll ; Use with Oracle Database 12c Instant Client -;extension=php_openssl.dll -;extension=php_pdo_firebird.dll -;extension=php_pdo_mysql.dll -;extension=php_pdo_oci.dll -;extension=php_pdo_odbc.dll -;extension=php_pdo_pgsql.dll -;extension=php_pdo_sqlite.dll -;extension=php_pgsql.dll -;extension=php_shmop.dll - -; The MIBS data available in the PHP distribution must be installed. -; See http://www.php.net/manual/en/snmp.installation.php -;extension=php_snmp.dll - -;extension=php_soap.dll -;extension=php_sockets.dll -;extension=php_sqlite3.dll -;extension=php_tidy.dll -;extension=php_xmlrpc.dll -;extension=php_xsl.dll - -;;;;;;;;;;;;;;;;;;; -; Module Settings ; -;;;;;;;;;;;;;;;;;;; - -[CLI Server] -; Whether the CLI web server uses ANSI color coding in its terminal output. -cli_server.color = On - -[Date] -; Defines the default timezone used by the date functions -; http://php.net/date.timezone -date.timezone = Asia/Shanghai - -; http://php.net/date.default-latitude -;date.default_latitude = 31.7667 - -; http://php.net/date.default-longitude -;date.default_longitude = 35.2333 - -; http://php.net/date.sunrise-zenith -;date.sunrise_zenith = 90.583333 - -; http://php.net/date.sunset-zenith -;date.sunset_zenith = 90.583333 - -[filter] -; http://php.net/filter.default -;filter.default = unsafe_raw - -; http://php.net/filter.default-flags -;filter.default_flags = - -[iconv] -; Use of this INI entry is deprecated, use global input_encoding instead. -; If empty, default_charset or input_encoding or iconv.input_encoding is used. -; The precedence is: default_charset < intput_encoding < iconv.input_encoding -;iconv.input_encoding = - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;iconv.internal_encoding = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; If empty, default_charset or output_encoding or iconv.output_encoding is used. -; The precedence is: default_charset < output_encoding < iconv.output_encoding -; To use an output encoding conversion, iconv's output handler must be set -; otherwise output encoding conversion cannot be performed. -;iconv.output_encoding = - -[intl] -;intl.default_locale = -; This directive allows you to produce PHP errors when some error -; happens within intl functions. The value is the level of the error produced. -; Default is 0, which does not produce any errors. -;intl.error_level = E_WARNING -;intl.use_exceptions = 0 - -[sqlite3] -;sqlite3.extension_dir = - -[Pcre] -;PCRE library backtracking limit. -; http://php.net/pcre.backtrack-limit -;pcre.backtrack_limit=100000 - -;PCRE library recursion limit. -;Please note that if you set this value to a high number you may consume all -;the available process stack and eventually crash PHP (due to reaching the -;stack size limit imposed by the Operating System). -; http://php.net/pcre.recursion-limit -;pcre.recursion_limit=100000 - -;Enables or disables JIT compilation of patterns. This requires the PCRE -;library to be compiled with JIT support. -;pcre.jit=1 - -[Pdo] -; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off" -; http://php.net/pdo-odbc.connection-pooling -;pdo_odbc.connection_pooling=strict - -;pdo_odbc.db2_instance_name - -[Pdo_mysql] -; If mysqlnd is used: Number of cache slots for the internal result set cache -; http://php.net/pdo_mysql.cache_size -pdo_mysql.cache_size = 2000 - -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -; http://php.net/pdo_mysql.default-socket -pdo_mysql.default_socket= - -[Phar] -; http://php.net/phar.readonly -;phar.readonly = On - -; http://php.net/phar.require-hash -;phar.require_hash = On - -;phar.cache_list = - -[mail function] -; For Win32 only. -; http://php.net/smtp -SMTP = localhost -; http://php.net/smtp-port -smtp_port = 25 - -; For Win32 only. -; http://php.net/sendmail-from -;sendmail_from = me@example.com - -; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). -; http://php.net/sendmail-path -;sendmail_path = - -; Force the addition of the specified parameters to be passed as extra parameters -; to the sendmail binary. These parameters will always replace the value of -; the 5th parameter to mail(). -;mail.force_extra_parameters = - -; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename -mail.add_x_header = On - -; The path to a log file that will log all mail() calls. Log entries include -; the full path of the script, line number, To address and headers. -;mail.log = -; Log mail to syslog (Event Log on Windows). -;mail.log = syslog - -[ODBC] -; http://php.net/odbc.default-db -;odbc.default_db = Not yet implemented - -; http://php.net/odbc.default-user -;odbc.default_user = Not yet implemented - -; http://php.net/odbc.default-pw -;odbc.default_pw = Not yet implemented - -; Controls the ODBC cursor model. -; Default: SQL_CURSOR_STATIC (default). -;odbc.default_cursortype - -; Allow or prevent persistent links. -; http://php.net/odbc.allow-persistent -odbc.allow_persistent = On - -; Check that a connection is still valid before reuse. -; http://php.net/odbc.check-persistent -odbc.check_persistent = On - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/odbc.max-persistent -odbc.max_persistent = -1 - -; Maximum number of links (persistent + non-persistent). -1 means no limit. -; http://php.net/odbc.max-links -odbc.max_links = -1 - -; Handling of LONG fields. Returns number of bytes to variables. 0 means -; passthru. -; http://php.net/odbc.defaultlrl -odbc.defaultlrl = 4096 - -; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char. -; See the documentation on odbc_binmode and odbc_longreadlen for an explanation -; of odbc.defaultlrl and odbc.defaultbinmode -; http://php.net/odbc.defaultbinmode -odbc.defaultbinmode = 1 - -;birdstep.max_links = -1 - -[Interbase] -; Allow or prevent persistent links. -ibase.allow_persistent = 1 - -; Maximum number of persistent links. -1 means no limit. -ibase.max_persistent = -1 - -; Maximum number of links (persistent + non-persistent). -1 means no limit. -ibase.max_links = -1 - -; Default database name for ibase_connect(). -;ibase.default_db = - -; Default username for ibase_connect(). -;ibase.default_user = - -; Default password for ibase_connect(). -;ibase.default_password = - -; Default charset for ibase_connect(). -;ibase.default_charset = - -; Default timestamp format. -ibase.timestampformat = "%Y-%m-%d %H:%M:%S" - -; Default date format. -ibase.dateformat = "%Y-%m-%d" - -; Default time format. -ibase.timeformat = "%H:%M:%S" - -[MySQLi] - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/mysqli.max-persistent -mysqli.max_persistent = -1 - -; Allow accessing, from PHP's perspective, local files with LOAD DATA statements -; http://php.net/mysqli.allow_local_infile -;mysqli.allow_local_infile = On - -; Allow or prevent persistent links. -; http://php.net/mysqli.allow-persistent -mysqli.allow_persistent = On - -; Maximum number of links. -1 means no limit. -; http://php.net/mysqli.max-links -mysqli.max_links = -1 - -; If mysqlnd is used: Number of cache slots for the internal result set cache -; http://php.net/mysqli.cache_size -mysqli.cache_size = 2000 - -; Default port number for mysqli_connect(). If unset, mysqli_connect() will use -; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the -; compile-time value defined MYSQL_PORT (in that order). Win32 will only look -; at MYSQL_PORT. -; http://php.net/mysqli.default-port -mysqli.default_port = 3306 - -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -; http://php.net/mysqli.default-socket -mysqli.default_socket = - -; Default host for mysql_connect() (doesn't apply in safe mode). -; http://php.net/mysqli.default-host -mysqli.default_host = - -; Default user for mysql_connect() (doesn't apply in safe mode). -; http://php.net/mysqli.default-user -mysqli.default_user = - -; Default password for mysqli_connect() (doesn't apply in safe mode). -; Note that this is generally a *bad* idea to store passwords in this file. -; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw") -; and reveal this password! And of course, any users with read access to this -; file will be able to reveal the password as well. -; http://php.net/mysqli.default-pw -mysqli.default_pw = - -; Allow or prevent reconnect -mysqli.reconnect = Off - -[mysqlnd] -; Enable / Disable collection of general statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -; http://php.net/mysqlnd.collect_statistics -mysqlnd.collect_statistics = On - -; Enable / Disable collection of memory usage statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -; http://php.net/mysqlnd.collect_memory_statistics -mysqlnd.collect_memory_statistics = Off - -; Records communication from all extensions using mysqlnd to the specified log -; file. -; http://php.net/mysqlnd.debug -;mysqlnd.debug = - -; Defines which queries will be logged. -; http://php.net/mysqlnd.log_mask -;mysqlnd.log_mask = 0 - -; Default size of the mysqlnd memory pool, which is used by result sets. -; http://php.net/mysqlnd.mempool_default_size -;mysqlnd.mempool_default_size = 16000 - -; Size of a pre-allocated buffer used when sending commands to MySQL in bytes. -; http://php.net/mysqlnd.net_cmd_buffer_size -;mysqlnd.net_cmd_buffer_size = 2048 - -; Size of a pre-allocated buffer used for reading data sent by the server in -; bytes. -; http://php.net/mysqlnd.net_read_buffer_size -;mysqlnd.net_read_buffer_size = 32768 - -; Timeout for network requests in seconds. -; http://php.net/mysqlnd.net_read_timeout -;mysqlnd.net_read_timeout = 31536000 - -; SHA-256 Authentication Plugin related. File with the MySQL server public RSA -; key. -; http://php.net/mysqlnd.sha256_server_public_key -;mysqlnd.sha256_server_public_key = - -[OCI8] - -; Connection: Enables privileged connections using external -; credentials (OCI_SYSOPER, OCI_SYSDBA) -; http://php.net/oci8.privileged-connect -;oci8.privileged_connect = Off - -; Connection: The maximum number of persistent OCI8 connections per -; process. Using -1 means no limit. -; http://php.net/oci8.max-persistent -;oci8.max_persistent = -1 - -; Connection: The maximum number of seconds a process is allowed to -; maintain an idle persistent connection. Using -1 means idle -; persistent connections will be maintained forever. -; http://php.net/oci8.persistent-timeout -;oci8.persistent_timeout = -1 - -; Connection: The number of seconds that must pass before issuing a -; ping during oci_pconnect() to check the connection validity. When -; set to 0, each oci_pconnect() will cause a ping. Using -1 disables -; pings completely. -; http://php.net/oci8.ping-interval -;oci8.ping_interval = 60 - -; Connection: Set this to a user chosen connection class to be used -; for all pooled server requests with Oracle 11g Database Resident -; Connection Pooling (DRCP). To use DRCP, this value should be set to -; the same string for all web servers running the same application, -; the database pool must be configured, and the connection string must -; specify to use a pooled server. -;oci8.connection_class = - -; High Availability: Using On lets PHP receive Fast Application -; Notification (FAN) events generated when a database node fails. The -; database must also be configured to post FAN events. -;oci8.events = Off - -; Tuning: This option enables statement caching, and specifies how -; many statements to cache. Using 0 disables statement caching. -; http://php.net/oci8.statement-cache-size -;oci8.statement_cache_size = 20 - -; Tuning: Enables statement prefetching and sets the default number of -; rows that will be fetched automatically after statement execution. -; http://php.net/oci8.default-prefetch -;oci8.default_prefetch = 100 - -; Compatibility. Using On means oci_close() will not close -; oci_connect() and oci_new_connect() connections. -; http://php.net/oci8.old-oci-close-semantics -;oci8.old_oci_close_semantics = Off - -[PostgreSQL] -; Allow or prevent persistent links. -; http://php.net/pgsql.allow-persistent -pgsql.allow_persistent = On - -; Detect broken persistent links always with pg_pconnect(). -; Auto reset feature requires a little overheads. -; http://php.net/pgsql.auto-reset-persistent -pgsql.auto_reset_persistent = Off - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/pgsql.max-persistent -pgsql.max_persistent = -1 - -; Maximum number of links (persistent+non persistent). -1 means no limit. -; http://php.net/pgsql.max-links -pgsql.max_links = -1 - -; Ignore PostgreSQL backends Notice message or not. -; Notice message logging require a little overheads. -; http://php.net/pgsql.ignore-notice -pgsql.ignore_notice = 0 - -; Log PostgreSQL backends Notice message or not. -; Unless pgsql.ignore_notice=0, module cannot log notice message. -; http://php.net/pgsql.log-notice -pgsql.log_notice = 0 - -[bcmath] -; Number of decimal digits for all bcmath functions. -; http://php.net/bcmath.scale -bcmath.scale = 0 - -[browscap] -; http://php.net/browscap -;browscap = extra/browscap.ini - -[Session] -; Handler used to store/retrieve data. -; http://php.net/session.save-handler -session.save_handler = files - -; Argument passed to save_handler. In the case of files, this is the path -; where data files are stored. Note: Windows users have to change this -; variable in order to use PHP's session functions. -; -; The path can be defined as: -; -; session.save_path = "N;/path" -; -; where N is an integer. Instead of storing all the session files in -; /path, what this will do is use subdirectories N-levels deep, and -; store the session data in those directories. This is useful if -; your OS has problems with many files in one directory, and is -; a more efficient layout for servers that handle many sessions. -; -; NOTE 1: PHP will not create this directory structure automatically. -; You can use the script in the ext/session dir for that purpose. -; NOTE 2: See the section on garbage collection below if you choose to -; use subdirectories for session storage -; -; The file storage module creates files using mode 600 by default. -; You can change that by using -; -; session.save_path = "N;MODE;/path" -; -; where MODE is the octal representation of the mode. Note that this -; does not overwrite the process's umask. -; http://php.net/session.save-path -;session.save_path = "/tmp" - -; Whether to use strict session mode. -; Strict session mode does not accept uninitialized session ID and regenerate -; session ID if browser sends uninitialized session ID. Strict mode protects -; applications from session fixation via session adoption vulnerability. It is -; disabled by default for maximum compatibility, but enabling it is encouraged. -; https://wiki.php.net/rfc/strict_sessions -session.use_strict_mode = 0 - -; Whether to use cookies. -; http://php.net/session.use-cookies -session.use_cookies = 1 - -; http://php.net/session.cookie-secure -;session.cookie_secure = - -; This option forces PHP to fetch and use a cookie for storing and maintaining -; the session id. We encourage this operation as it's very helpful in combating -; session hijacking when not specifying and managing your own session id. It is -; not the be-all and end-all of session hijacking defense, but it's a good start. -; http://php.net/session.use-only-cookies -session.use_only_cookies = 1 - -; Name of the session (used as cookie name). -; http://php.net/session.name -session.name = PHPSESSID - -; Initialize session on request startup. -; http://php.net/session.auto-start -session.auto_start = 0 - -; Lifetime in seconds of cookie or, if 0, until browser is restarted. -; http://php.net/session.cookie-lifetime -session.cookie_lifetime = 0 - -; The path for which the cookie is valid. -; http://php.net/session.cookie-path -session.cookie_path = / - -; The domain for which the cookie is valid. -; http://php.net/session.cookie-domain -session.cookie_domain = - -; Whether or not to add the httpOnly flag to the cookie, which makes it inaccessible to browser scripting languages such as JavaScript. -; http://php.net/session.cookie-httponly -session.cookie_httponly = - -; Handler used to serialize data. php is the standard serializer of PHP. -; http://php.net/session.serialize-handler -session.serialize_handler = php - -; Defines the probability that the 'garbage collection' process is started -; on every session initialization. The probability is calculated by using -; gc_probability/gc_divisor. Where session.gc_probability is the numerator -; and gc_divisor is the denominator in the equation. Setting this value to 1 -; when the session.gc_divisor value is 100 will give you approximately a 1% chance -; the gc will run on any give request. -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; http://php.net/session.gc-probability -session.gc_probability = 1 - -; Defines the probability that the 'garbage collection' process is started on every -; session initialization. The probability is calculated by using the following equation: -; gc_probability/gc_divisor. Where session.gc_probability is the numerator and -; session.gc_divisor is the denominator in the equation. Setting this value to 1 -; when the session.gc_divisor value is 100 will give you approximately a 1% chance -; the gc will run on any give request. Increasing this value to 1000 will give you -; a 0.1% chance the gc will run on any give request. For high volume production servers, -; this is a more efficient approach. -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 -; http://php.net/session.gc-divisor -session.gc_divisor = 1000 - -; After this number of seconds, stored data will be seen as 'garbage' and -; cleaned up by the garbage collection process. -; http://php.net/session.gc-maxlifetime -session.gc_maxlifetime = 1440 - -; NOTE: If you are using the subdirectory option for storing session files -; (see session.save_path above), then garbage collection does *not* -; happen automatically. You will need to do your own garbage -; collection through a shell script, cron entry, or some other method. -; For example, the following script would is the equivalent of -; setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes): -; find /path/to/sessions -cmin +24 -type f | xargs rm - -; Check HTTP Referer to invalidate externally stored URLs containing ids. -; HTTP_REFERER has to contain this substring for the session to be -; considered as valid. -; http://php.net/session.referer-check -session.referer_check = - -; Set to {nocache,private,public,} to determine HTTP caching aspects -; or leave this empty to avoid sending anti-caching headers. -; http://php.net/session.cache-limiter -session.cache_limiter = nocache - -; Document expires after n minutes. -; http://php.net/session.cache-expire -session.cache_expire = 180 - -; trans sid support is disabled by default. -; Use of trans sid may risk your users' security. -; Use this option with caution. -; - User may send URL contains active session ID -; to other person via. email/irc/etc. -; - URL that contains active session ID may be stored -; in publicly accessible computer. -; - User may access your site with the same session ID -; always using URL stored in browser's history or bookmarks. -; http://php.net/session.use-trans-sid -session.use_trans_sid = 0 - -; Set session ID character length. This value could be between 22 to 256. -; Shorter length than default is supported only for compatibility reason. -; Users should use 32 or more chars. -; http://php.net/session.sid-length -; Default Value: 32 -; Development Value: 26 -; Production Value: 26 -session.sid_length = 26 - -; The URL rewriter will look for URLs in a defined set of HTML tags. -; is special; if you include them here, the rewriter will -; add a hidden field with the info which is otherwise appended -; to URLs. tag's action attribute URL will not be modified -; unless it is specified. -; Note that all valid entries require a "=", even if no value follows. -; Default Value: "a=href,area=href,frame=src,form=" -; Development Value: "a=href,area=href,frame=src,form=" -; Production Value: "a=href,area=href,frame=src,form=" -; http://php.net/url-rewriter.tags -session.trans_sid_tags = "a=href,area=href,frame=src,form=" - -; URL rewriter does not rewrite absolute URLs by default. -; To enable rewrites for absolute pathes, target hosts must be specified -; at RUNTIME. i.e. use ini_set() -; tags is special. PHP will check action attribute's URL regardless -; of session.trans_sid_tags setting. -; If no host is defined, HTTP_HOST will be used for allowed host. -; Example value: php.net,www.php.net,wiki.php.net -; Use "," for multiple hosts. No spaces are allowed. -; Default Value: "" -; Development Value: "" -; Production Value: "" -;session.trans_sid_hosts="" - -; Define how many bits are stored in each character when converting -; the binary hash data to something readable. -; Possible values: -; 4 (4 bits: 0-9, a-f) -; 5 (5 bits: 0-9, a-v) -; 6 (6 bits: 0-9, a-z, A-Z, "-", ",") -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 -; http://php.net/session.hash-bits-per-character -session.sid_bits_per_character = 5 - -; Enable upload progress tracking in $_SESSION -; Default Value: On -; Development Value: On -; Production Value: On -; http://php.net/session.upload-progress.enabled -;session.upload_progress.enabled = On - -; Cleanup the progress information as soon as all POST data has been read -; (i.e. upload completed). -; Default Value: On -; Development Value: On -; Production Value: On -; http://php.net/session.upload-progress.cleanup -;session.upload_progress.cleanup = On - -; A prefix used for the upload progress key in $_SESSION -; Default Value: "upload_progress_" -; Development Value: "upload_progress_" -; Production Value: "upload_progress_" -; http://php.net/session.upload-progress.prefix -;session.upload_progress.prefix = "upload_progress_" - -; The index name (concatenated with the prefix) in $_SESSION -; containing the upload progress information -; Default Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Development Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Production Value: "PHP_SESSION_UPLOAD_PROGRESS" -; http://php.net/session.upload-progress.name -;session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS" - -; How frequently the upload progress should be updated. -; Given either in percentages (per-file), or in bytes -; Default Value: "1%" -; Development Value: "1%" -; Production Value: "1%" -; http://php.net/session.upload-progress.freq -;session.upload_progress.freq = "1%" - -; The minimum delay between updates, in seconds -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; http://php.net/session.upload-progress.min-freq -;session.upload_progress.min_freq = "1" - -; Only write session data when session data is changed. Enabled by default. -; http://php.net/session.lazy-write -;session.lazy_write = On - -[Assertion] -; Switch whether to compile assertions at all (to have no overhead at run-time) -; -1: Do not compile at all -; 0: Jump over assertion at run-time -; 1: Execute assertions -; Changing from or to a negative value is only possible in php.ini! (For turning assertions on and off at run-time, see assert.active, when zend.assertions = 1) -; Default Value: 1 -; Development Value: 1 -; Production Value: -1 -; http://php.net/zend.assertions -zend.assertions = -1 - -; Assert(expr); active by default. -; http://php.net/assert.active -;assert.active = On - -; Throw an AssertationException on failed assertions -; http://php.net/assert.exception -;assert.exception = On - -; Issue a PHP warning for each failed assertion. (Overridden by assert.exception if active) -; http://php.net/assert.warning -;assert.warning = On - -; Don't bail out by default. -; http://php.net/assert.bail -;assert.bail = Off - -; User-function to be called if an assertion fails. -; http://php.net/assert.callback -;assert.callback = 0 - -; Eval the expression with current error_reporting(). Set to true if you want -; error_reporting(0) around the eval(). -; http://php.net/assert.quiet-eval -;assert.quiet_eval = 0 - -[COM] -; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs -; http://php.net/com.typelib-file -;com.typelib_file = - -; allow Distributed-COM calls -; http://php.net/com.allow-dcom -;com.allow_dcom = true - -; autoregister constants of a components typlib on com_load() -; http://php.net/com.autoregister-typelib -;com.autoregister_typelib = true - -; register constants casesensitive -; http://php.net/com.autoregister-casesensitive -;com.autoregister_casesensitive = false - -; show warnings on duplicate constant registrations -; http://php.net/com.autoregister-verbose -;com.autoregister_verbose = true - -; The default character set code-page to use when passing strings to and from COM objects. -; Default: system ANSI code page -;com.code_page= - -[mbstring] -; language for internal character representation. -; This affects mb_send_mail() and mbstring.detect_order. -; http://php.net/mbstring.language -;mbstring.language = Japanese - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; internal/script encoding. -; Some encoding cannot work as internal encoding. (e.g. SJIS, BIG5, ISO-2022-*) -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;mbstring.internal_encoding = - -; Use of this INI entry is deprecated, use global input_encoding instead. -; http input encoding. -; mbstring.encoding_traslation = On is needed to use this setting. -; If empty, default_charset or input_encoding or mbstring.input is used. -; The precedence is: default_charset < intput_encoding < mbsting.http_input -; http://php.net/mbstring.http-input -;mbstring.http_input = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; http output encoding. -; mb_output_handler must be registered as output buffer to function. -; If empty, default_charset or output_encoding or mbstring.http_output is used. -; The precedence is: default_charset < output_encoding < mbstring.http_output -; To use an output encoding conversion, mbstring's output handler must be set -; otherwise output encoding conversion cannot be performed. -; http://php.net/mbstring.http-output -;mbstring.http_output = - -; enable automatic encoding translation according to -; mbstring.internal_encoding setting. Input chars are -; converted to internal encoding by setting this to On. -; Note: Do _not_ use automatic encoding translation for -; portable libs/applications. -; http://php.net/mbstring.encoding-translation -;mbstring.encoding_translation = Off - -; automatic encoding detection order. -; "auto" detect order is changed according to mbstring.language -; http://php.net/mbstring.detect-order -;mbstring.detect_order = auto - -; substitute_character used when character cannot be converted -; one from another -; http://php.net/mbstring.substitute-character -;mbstring.substitute_character = none - -; overload(replace) single byte functions by mbstring functions. -; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(), -; etc. Possible values are 0,1,2,4 or combination of them. -; For example, 7 for overload everything. -; 0: No overload -; 1: Overload mail() function -; 2: Overload str*() functions -; 4: Overload ereg*() functions -; http://php.net/mbstring.func-overload -;mbstring.func_overload = 0 - -; enable strict encoding detection. -; Default: Off -;mbstring.strict_detection = On - -; This directive specifies the regex pattern of content types for which mb_output_handler() -; is activated. -; Default: mbstring.http_output_conv_mimetype=^(text/|application/xhtml\+xml) -;mbstring.http_output_conv_mimetype= - -[gd] -; Tell the jpeg decode to ignore warnings and try to create -; a gd image. The warning will then be displayed as notices -; disabled by default -; http://php.net/gd.jpeg-ignore-warning -;gd.jpeg_ignore_warning = 1 - -[exif] -; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS. -; With mbstring support this will automatically be converted into the encoding -; given by corresponding encode setting. When empty mbstring.internal_encoding -; is used. For the decode settings you can distinguish between motorola and -; intel byte order. A decode setting cannot be empty. -; http://php.net/exif.encode-unicode -;exif.encode_unicode = ISO-8859-15 - -; http://php.net/exif.decode-unicode-motorola -;exif.decode_unicode_motorola = UCS-2BE - -; http://php.net/exif.decode-unicode-intel -;exif.decode_unicode_intel = UCS-2LE - -; http://php.net/exif.encode-jis -;exif.encode_jis = - -; http://php.net/exif.decode-jis-motorola -;exif.decode_jis_motorola = JIS - -; http://php.net/exif.decode-jis-intel -;exif.decode_jis_intel = JIS - -[Tidy] -; The path to a default tidy configuration file to use when using tidy -; http://php.net/tidy.default-config -;tidy.default_config = /usr/local/lib/php/default.tcfg - -; Should tidy clean and repair output automatically? -; WARNING: Do not use this option if you are generating non-html content -; such as dynamic images -; http://php.net/tidy.clean-output -tidy.clean_output = Off - -[soap] -; Enables or disables WSDL caching feature. -; http://php.net/soap.wsdl-cache-enabled -soap.wsdl_cache_enabled=1 - -; Sets the directory name where SOAP extension will put cache files. -; http://php.net/soap.wsdl-cache-dir -soap.wsdl_cache_dir="/tmp" - -; (time to live) Sets the number of second while cached file will be used -; instead of original one. -; http://php.net/soap.wsdl-cache-ttl -soap.wsdl_cache_ttl=86400 - -; Sets the size of the cache limit. (Max. number of WSDL files to cache) -soap.wsdl_cache_limit = 5 - -[sysvshm] -; A default size of the shared memory segment -;sysvshm.init_mem = 10000 - -[ldap] -; Sets the maximum number of open links or -1 for unlimited. -ldap.max_links = -1 - -[dba] -;dba.default_handler= - -[opcache] -; Determines if Zend OPCache is enabled -;opcache.enable=1 - -; Determines if Zend OPCache is enabled for the CLI version of PHP -;opcache.enable_cli=1 - -; The OPcache shared memory storage size. -;opcache.memory_consumption=128 - -; The amount of memory for interned strings in Mbytes. -;opcache.interned_strings_buffer=8 - -; The maximum number of keys (scripts) in the OPcache hash table. -; Only numbers between 200 and 1000000 are allowed. -;opcache.max_accelerated_files=10000 - -; The maximum percentage of "wasted" memory until a restart is scheduled. -;opcache.max_wasted_percentage=5 - -; When this directive is enabled, the OPcache appends the current working -; directory to the script key, thus eliminating possible collisions between -; files with the same name (basename). Disabling the directive improves -; performance, but may break existing applications. -;opcache.use_cwd=1 - -; When disabled, you must reset the OPcache manually or restart the -; webserver for changes to the filesystem to take effect. -;opcache.validate_timestamps=1 - -; How often (in seconds) to check file timestamps for changes to the shared -; memory storage allocation. ("1" means validate once per second, but only -; once per request. "0" means always validate) -;opcache.revalidate_freq=2 - -; Enables or disables file search in include_path optimization -;opcache.revalidate_path=0 - -; If disabled, all PHPDoc comments are dropped from the code to reduce the -; size of the optimized code. -;opcache.save_comments=1 - -; If enabled, a fast shutdown sequence is used for the accelerated code -; Depending on the used Memory Manager this may cause some incompatibilities. -;opcache.fast_shutdown=0 - -; Allow file existence override (file_exists, etc.) performance feature. -;opcache.enable_file_override=0 - -; A bitmask, where each bit enables or disables the appropriate OPcache -; passes -;opcache.optimization_level=0xffffffff - -;opcache.inherited_hack=1 -;opcache.dups_fix=0 - -; The location of the OPcache blacklist file (wildcards allowed). -; Each OPcache blacklist file is a text file that holds the names of files -; that should not be accelerated. The file format is to add each filename -; to a new line. The filename may be a full path or just a file prefix -; (i.e., /var/www/x blacklists all the files and directories in /var/www -; that start with 'x'). Line starting with a ; are ignored (comments). -;opcache.blacklist_filename= - -; Allows exclusion of large files from being cached. By default all files -; are cached. -;opcache.max_file_size=0 - -; Check the cache checksum each N requests. -; The default value of "0" means that the checks are disabled. -;opcache.consistency_checks=0 - -; How long to wait (in seconds) for a scheduled restart to begin if the cache -; is not being accessed. -;opcache.force_restart_timeout=180 - -; OPcache error_log file name. Empty string assumes "stderr". -;opcache.error_log= - -; All OPcache errors go to the Web server log. -; By default, only fatal errors (level 0) or errors (level 1) are logged. -; You can also enable warnings (level 2), info messages (level 3) or -; debug messages (level 4). -;opcache.log_verbosity_level=1 - -; Preferred Shared Memory back-end. Leave empty and let the system decide. -;opcache.preferred_memory_model= - -; Protect the shared memory from unexpected writing during script execution. -; Useful for internal debugging only. -;opcache.protect_memory=0 - -; Allows calling OPcache API functions only from PHP scripts which path is -; started from specified string. The default "" means no restriction -;opcache.restrict_api= - -; Mapping base of shared memory segments (for Windows only). All the PHP -; processes have to map shared memory into the same address space. This -; directive allows to manually fix the "Unable to reattach to base address" -; errors. -;opcache.mmap_base= - -; Enables and sets the second level cache directory. -; It should improve performance when SHM memory is full, at server restart or -; SHM reset. The default "" disables file based caching. -;opcache.file_cache= - -; Enables or disables opcode caching in shared memory. -;opcache.file_cache_only=0 - -; Enables or disables checksum validation when script loaded from file cache. -;opcache.file_cache_consistency_checks=1 - -; Implies opcache.file_cache_only=1 for a certain process that failed to -; reattach to the shared memory (for Windows only). Explicitly enabled file -; cache is required. -;opcache.file_cache_fallback=1 - -; Enables or disables copying of PHP code (text segment) into HUGE PAGES. -; This should improve performance, but requires appropriate OS configuration. -;opcache.huge_code_pages=1 - -; Validate cached file permissions. -;opcache.validate_permission=0 - -; Prevent name collisions in chroot'ed environment. -;opcache.validate_root=0 - -[curl] -; A default value for the CURLOPT_CAINFO option. This is required to be an -; absolute path. -;curl.cainfo = - -[openssl] -; The location of a Certificate Authority (CA) file on the local filesystem -; to use when verifying the identity of SSL/TLS peers. Most users should -; not specify a value for this directive as PHP will attempt to use the -; OS-managed cert stores in its absence. If specified, this value may still -; be overridden on a per-stream basis via the "cafile" SSL stream context -; option. -;openssl.cafile= - -; If openssl.cafile is not specified or if the CA file is not found, the -; directory pointed to by openssl.capath is searched for a suitable -; certificate. This value must be a correctly hashed certificate directory. -; Most users should not specify a value for this directive as PHP will -; attempt to use the OS-managed cert stores in its absence. If specified, -; this value may still be overridden on a per-stream basis via the "capath" -; SSL stream context option. -;openssl.capath= - -; Local Variables: -; tab-width: 4 -; End: - -[XDebug] -xdebug.remote_enable = 1 -xdebug.remote_handler = "dbgp" -; Set to host.docker.internal on Mac and Windows, otherwise, set to host real ip -xdebug.remote_host = host.docker.internal -;xdebug.remote_port = 9000 -xdebug.remote_log = /var/log/php/xdebug.log - -SERVER_ENV=develop - -yaf.use_spl_autoload=1 - -[xhprof] -;xhprof.output_dir = /var/log/php/xhprof.log \ No newline at end of file diff --git a/php7/7.0.33/conf/php-fpm.conf b/php7/7.0.33/conf/php-fpm.conf deleted file mode 100644 index 131835891..000000000 --- a/php7/7.0.33/conf/php-fpm.conf +++ /dev/null @@ -1,423 +0,0 @@ -; Start a new pool named 'www'. -; the variable $pool can be used in any directive and will be replaced by the -; pool name ('www' here) -[www] - -; Per pool prefix -; It only applies on the following directives: -; - 'access.log' -; - 'slowlog' -; - 'listen' (unixsocket) -; - 'chroot' -; - 'chdir' -; - 'php_values' -; - 'php_admin_values' -; When not set, the global prefix (or NONE) applies instead. -; Note: This directive can also be relative to the global prefix. -; Default Value: none -;prefix = /path/to/pools/$pool - -; Unix user/group of processes -; Note: The user is mandatory. If the group is not set, the default user's group -; will be used. -user = www-data -group = www-data - -; The address on which to accept FastCGI requests. -; Valid syntaxes are: -; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on -; a specific port; -; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on -; a specific port; -; 'port' - to listen on a TCP socket to all addresses -; (IPv6 and IPv4-mapped) on a specific port; -; '/path/to/unix/socket' - to listen on a unix socket. -; Note: This value is mandatory. -listen = 127.0.0.1:9000 - -; Set listen(2) backlog. -; Default Value: 511 (-1 on FreeBSD and OpenBSD) -;listen.backlog = 511 - -; Set permissions for unix socket, if one is used. In Linux, read/write -; permissions must be set in order to allow connections from a web server. Many -; BSD-derived systems allow connections regardless of permissions. -; Default Values: user and group are set as the running user -; mode is set to 0660 -;listen.owner = www-data -;listen.group = www-data -;listen.mode = 0660 -; When POSIX Access Control Lists are supported you can set them using -; these options, value is a comma separated list of user/group names. -; When set, listen.owner and listen.group are ignored -;listen.acl_users = -;listen.acl_groups = - -; List of addresses (IPv4/IPv6) of FastCGI clients which are allowed to connect. -; Equivalent to the FCGI_WEB_SERVER_ADDRS environment variable in the original -; PHP FCGI (5.2.2+). Makes sense only with a tcp listening socket. Each address -; must be separated by a comma. If this value is left blank, connections will be -; accepted from any ip address. -; Default Value: any -;listen.allowed_clients = 127.0.0.1 - -; Specify the nice(2) priority to apply to the pool processes (only if set) -; The value can vary from -19 (highest priority) to 20 (lower priority) -; Note: - It will only work if the FPM master process is launched as root -; - The pool processes will inherit the master process priority -; unless it specified otherwise -; Default Value: no set -; process.priority = -19 - -; Set the process dumpable flag (PR_SET_DUMPABLE prctl) even if the process user -; or group is differrent than the master process user. It allows to create process -; core dump and ptrace the process for the pool user. -; Default Value: no -; process.dumpable = yes - -; Choose how the process manager will control the number of child processes. -; Possible Values: -; static - a fixed number (pm.max_children) of child processes; -; dynamic - the number of child processes are set dynamically based on the -; following directives. With this process management, there will be -; always at least 1 children. -; pm.max_children - the maximum number of children that can -; be alive at the same time. -; pm.start_servers - the number of children created on startup. -; pm.min_spare_servers - the minimum number of children in 'idle' -; state (waiting to process). If the number -; of 'idle' processes is less than this -; number then some children will be created. -; pm.max_spare_servers - the maximum number of children in 'idle' -; state (waiting to process). If the number -; of 'idle' processes is greater than this -; number then some children will be killed. -; ondemand - no children are created at startup. Children will be forked when -; new requests will connect. The following parameter are used: -; pm.max_children - the maximum number of children that -; can be alive at the same time. -; pm.process_idle_timeout - The number of seconds after which -; an idle process will be killed. -; Note: This value is mandatory. -pm = dynamic - -; The number of child processes to be created when pm is set to 'static' and the -; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'. -; This value sets the limit on the number of simultaneous requests that will be -; served. Equivalent to the ApacheMaxClients directive with mpm_prefork. -; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP -; CGI. The below defaults are based on a server without much resources. Don't -; forget to tweak pm.* to fit your needs. -; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand' -; Note: This value is mandatory. -pm.max_children = 10 - -; The number of child processes created on startup. -; Note: Used only when pm is set to 'dynamic' -; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2 -pm.start_servers = 2 - -; The desired minimum number of idle server processes. -; Note: Used only when pm is set to 'dynamic' -; Note: Mandatory when pm is set to 'dynamic' -pm.min_spare_servers = 1 - -; The desired maximum number of idle server processes. -; Note: Used only when pm is set to 'dynamic' -; Note: Mandatory when pm is set to 'dynamic' -pm.max_spare_servers = 3 - -; The number of seconds after which an idle process will be killed. -; Note: Used only when pm is set to 'ondemand' -; Default Value: 10s -;pm.process_idle_timeout = 10s; - -; The number of requests each child process should execute before respawning. -; This can be useful to work around memory leaks in 3rd party libraries. For -; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS. -; Default Value: 0 -;pm.max_requests = 500 - -; The URI to view the FPM status page. If this value is not set, no URI will be -; recognized as a status page. It shows the following informations: -; pool - the name of the pool; -; process manager - static, dynamic or ondemand; -; start time - the date and time FPM has started; -; start since - number of seconds since FPM has started; -; accepted conn - the number of request accepted by the pool; -; listen queue - the number of request in the queue of pending -; connections (see backlog in listen(2)); -; max listen queue - the maximum number of requests in the queue -; of pending connections since FPM has started; -; listen queue len - the size of the socket queue of pending connections; -; idle processes - the number of idle processes; -; active processes - the number of active processes; -; total processes - the number of idle + active processes; -; max active processes - the maximum number of active processes since FPM -; has started; -; max children reached - number of times, the process limit has been reached, -; when pm tries to start more children (works only for -; pm 'dynamic' and 'ondemand'); -; Value are updated in real time. -; Example output: -; pool: www -; process manager: static -; start time: 01/Jul/2011:17:53:49 +0200 -; start since: 62636 -; accepted conn: 190460 -; listen queue: 0 -; max listen queue: 1 -; listen queue len: 42 -; idle processes: 4 -; active processes: 11 -; total processes: 15 -; max active processes: 12 -; max children reached: 0 -; -; By default the status page output is formatted as text/plain. Passing either -; 'html', 'xml' or 'json' in the query string will return the corresponding -; output syntax. Example: -; http://www.foo.bar/status -; http://www.foo.bar/status?json -; http://www.foo.bar/status?html -; http://www.foo.bar/status?xml -; -; By default the status page only outputs short status. Passing 'full' in the -; query string will also return status for each pool process. -; Example: -; http://www.foo.bar/status?full -; http://www.foo.bar/status?json&full -; http://www.foo.bar/status?html&full -; http://www.foo.bar/status?xml&full -; The Full status returns for each process: -; pid - the PID of the process; -; state - the state of the process (Idle, Running, ...); -; start time - the date and time the process has started; -; start since - the number of seconds since the process has started; -; requests - the number of requests the process has served; -; request duration - the duration in µs of the requests; -; request method - the request method (GET, POST, ...); -; request URI - the request URI with the query string; -; content length - the content length of the request (only with POST); -; user - the user (PHP_AUTH_USER) (or '-' if not set); -; script - the main script called (or '-' if not set); -; last request cpu - the %cpu the last request consumed -; it's always 0 if the process is not in Idle state -; because CPU calculation is done when the request -; processing has terminated; -; last request memory - the max amount of memory the last request consumed -; it's always 0 if the process is not in Idle state -; because memory calculation is done when the request -; processing has terminated; -; If the process is in Idle state, then informations are related to the -; last request the process has served. Otherwise informations are related to -; the current request being served. -; Example output: -; ************************ -; pid: 31330 -; state: Running -; start time: 01/Jul/2011:17:53:49 +0200 -; start since: 63087 -; requests: 12808 -; request duration: 1250261 -; request method: GET -; request URI: /test_mem.php?N=10000 -; content length: 0 -; user: - -; script: /home/fat/web/docs/php/test_mem.php -; last request cpu: 0.00 -; last request memory: 0 -; -; Note: There is a real-time FPM status monitoring sample web page available -; It's available in: /usr/local/share/php/fpm/status.html -; -; Note: The value must start with a leading slash (/). The value can be -; anything, but it may not be a good idea to use the .php extension or it -; may conflict with a real PHP file. -; Default Value: not set -;pm.status_path = /status - -; The ping URI to call the monitoring page of FPM. If this value is not set, no -; URI will be recognized as a ping page. This could be used to test from outside -; that FPM is alive and responding, or to -; - create a graph of FPM availability (rrd or such); -; - remove a server from a group if it is not responding (load balancing); -; - trigger alerts for the operating team (24/7). -; Note: The value must start with a leading slash (/). The value can be -; anything, but it may not be a good idea to use the .php extension or it -; may conflict with a real PHP file. -; Default Value: not set -;ping.path = /ping - -; This directive may be used to customize the response of a ping request. The -; response is formatted as text/plain with a 200 response code. -; Default Value: pong -;ping.response = pong - -; The access log file -; Default: not set -;access.log = log/$pool.access.log - -; The access log format. -; The following syntax is allowed -; %%: the '%' character -; %C: %CPU used by the request -; it can accept the following format: -; - %{user}C for user CPU only -; - %{system}C for system CPU only -; - %{total}C for user + system CPU (default) -; %d: time taken to serve the request -; it can accept the following format: -; - %{seconds}d (default) -; - %{miliseconds}d -; - %{mili}d -; - %{microseconds}d -; - %{micro}d -; %e: an environment variable (same as $_ENV or $_SERVER) -; it must be associated with embraces to specify the name of the env -; variable. Some exemples: -; - server specifics like: %{REQUEST_METHOD}e or %{SERVER_PROTOCOL}e -; - HTTP headers like: %{HTTP_HOST}e or %{HTTP_USER_AGENT}e -; %f: script filename -; %l: content-length of the request (for POST request only) -; %m: request method -; %M: peak of memory allocated by PHP -; it can accept the following format: -; - %{bytes}M (default) -; - %{kilobytes}M -; - %{kilo}M -; - %{megabytes}M -; - %{mega}M -; %n: pool name -; %o: output header -; it must be associated with embraces to specify the name of the header: -; - %{Content-Type}o -; - %{X-Powered-By}o -; - %{Transfert-Encoding}o -; - .... -; %p: PID of the child that serviced the request -; %P: PID of the parent of the child that serviced the request -; %q: the query string -; %Q: the '?' character if query string exists -; %r: the request URI (without the query string, see %q and %Q) -; %R: remote IP address -; %s: status (response code) -; %t: server time the request was received -; it can accept a strftime(3) format: -; %d/%b/%Y:%H:%M:%S %z (default) -; The strftime(3) format must be encapsuled in a %{}t tag -; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t -; %T: time the log has been written (the request has finished) -; it can accept a strftime(3) format: -; %d/%b/%Y:%H:%M:%S %z (default) -; The strftime(3) format must be encapsuled in a %{}t tag -; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t -; %u: remote user -; -; Default: "%R - %u %t \"%m %r\" %s" -;access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%" - -; The log file for slow requests -; Default Value: not set -; Note: slowlog is mandatory if request_slowlog_timeout is set -slowlog = /var/log/php/fpm.slow.log - -; The timeout for serving a single request after which a PHP backtrace will be -; dumped to the 'slowlog' file. A value of '0s' means 'off'. -; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) -; Default Value: 0 -request_slowlog_timeout = 3 - -; Depth of slow log stack trace. -; Default Value: 20 -;request_slowlog_trace_depth = 20 - -; The timeout for serving a single request after which the worker process will -; be killed. This option should be used when the 'max_execution_time' ini option -; does not stop script execution for some reason. A value of '0' means 'off'. -; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) -; Default Value: 0 -;request_terminate_timeout = 0 - -; Set open file descriptor rlimit. -; Default Value: system defined value -;rlimit_files = 1024 - -; Set max core size rlimit. -; Possible Values: 'unlimited' or an integer greater or equal to 0 -; Default Value: system defined value -;rlimit_core = 0 - -; Chroot to this directory at the start. This value must be defined as an -; absolute path. When this value is not set, chroot is not used. -; Note: you can prefix with '$prefix' to chroot to the pool prefix or one -; of its subdirectories. If the pool prefix is not set, the global prefix -; will be used instead. -; Note: chrooting is a great security feature and should be used whenever -; possible. However, all PHP paths will be relative to the chroot -; (error_log, sessions.save_path, ...). -; Default Value: not set -;chroot = - -; Chdir to this directory at the start. -; Note: relative path can be used. -; Default Value: current directory or / when chroot -;chdir = /var/www - -; Redirect worker stdout and stderr into main error log. If not set, stdout and -; stderr will be redirected to /dev/null according to FastCGI specs. -; Note: on highloaded environement, this can cause some delay in the page -; process time (several ms). -; Default Value: no -catch_workers_output = yes - -; Clear environment in FPM workers -; Prevents arbitrary environment variables from reaching FPM worker processes -; by clearing the environment in workers before env vars specified in this -; pool configuration are added. -; Setting to "no" will make all environment variables available to PHP code -; via getenv(), $_ENV and $_SERVER. -; Default Value: yes -;clear_env = no - -; Limits the extensions of the main script FPM will allow to parse. This can -; prevent configuration mistakes on the web server side. You should only limit -; FPM to .php extensions to prevent malicious users to use other extensions to -; execute php code. -; Note: set an empty value to allow all extensions. -; Default Value: .php -;security.limit_extensions = .php .php3 .php4 .php5 .php7 - -; Pass environment variables like LD_LIBRARY_PATH. All $VARIABLEs are taken from -; the current environment. -; Default Value: clean env -;env[HOSTNAME] = $HOSTNAME -;env[PATH] = /usr/local/bin:/usr/bin:/bin -;env[TMP] = /tmp -;env[TMPDIR] = /tmp -;env[TEMP] = /tmp - -; Additional php.ini defines, specific to this pool of workers. These settings -; overwrite the values previously defined in the php.ini. The directives are the -; same as the PHP SAPI: -; php_value/php_flag - you can set classic ini defines which can -; be overwritten from PHP call 'ini_set'. -; php_admin_value/php_admin_flag - these directives won't be overwritten by -; PHP call 'ini_set' -; For php_*flag, valid values are on, off, 1, 0, true, false, yes or no. - -; Defining 'extension' will load the corresponding shared extension from -; extension_dir. Defining 'disable_functions' or 'disable_classes' will not -; overwrite previously defined php.ini values, but will append the new value -; instead. - -; Note: path INI options can be relative and will be expanded with the prefix -; (pool, global or /usr/local) - -; Default Value: nothing is defined by default except the values in php.ini and -; specified at startup with the -d argument -;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com -;php_flag[display_errors] = off -;php_admin_value[error_log] = /var/log/fpm-php.www.log -;php_admin_flag[log_errors] = on -;php_admin_value[memory_limit] = 32M diff --git a/php7/7.0.33/conf/php.ini b/php7/7.0.33/conf/php.ini deleted file mode 100644 index b6b0aee69..000000000 --- a/php7/7.0.33/conf/php.ini +++ /dev/null @@ -1,1933 +0,0 @@ -[PHP] - -;;;;;;;;;;;;;;;;;;; -; About php.ini ; -;;;;;;;;;;;;;;;;;;; -; PHP's initialization file, generally called php.ini, is responsible for -; configuring many of the aspects of PHP's behavior. - -; PHP attempts to find and load this configuration from a number of locations. -; The following is a summary of its search order: -; 1. SAPI module specific location. -; 2. The PHPRC environment variable. (As of PHP 5.2.0) -; 3. A number of predefined registry keys on Windows (As of PHP 5.2.0) -; 4. Current working directory (except CLI) -; 5. The web server's directory (for SAPI modules), or directory of PHP -; (otherwise in Windows) -; 6. The directory from the --with-config-file-path compile time option, or the -; Windows directory (C:\windows or C:\winnt) -; See the PHP docs for more specific information. -; http://php.net/configuration.file - -; The syntax of the file is extremely simple. Whitespace and lines -; beginning with a semicolon are silently ignored (as you probably guessed). -; Section headers (e.g. [Foo]) are also silently ignored, even though -; they might mean something in the future. - -; Directives following the section heading [PATH=/www/mysite] only -; apply to PHP files in the /www/mysite directory. Directives -; following the section heading [HOST=www.example.com] only apply to -; PHP files served from www.example.com. Directives set in these -; special sections cannot be overridden by user-defined INI files or -; at runtime. Currently, [PATH=] and [HOST=] sections only work under -; CGI/FastCGI. -; http://php.net/ini.sections - -; Directives are specified using the following syntax: -; directive = value -; Directive names are *case sensitive* - foo=bar is different from FOO=bar. -; Directives are variables used to configure PHP or PHP extensions. -; There is no name validation. If PHP can't find an expected -; directive because it is not set or is mistyped, a default value will be used. - -; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one -; of the INI constants (On, Off, True, False, Yes, No and None) or an expression -; (e.g. E_ALL & ~E_NOTICE), a quoted string ("bar"), or a reference to a -; previously set variable or directive (e.g. ${foo}) - -; Expressions in the INI file are limited to bitwise operators and parentheses: -; | bitwise OR -; ^ bitwise XOR -; & bitwise AND -; ~ bitwise NOT -; ! boolean NOT - -; Boolean flags can be turned on using the values 1, On, True or Yes. -; They can be turned off using the values 0, Off, False or No. - -; An empty string can be denoted by simply not writing anything after the equal -; sign, or by using the None keyword: - -; foo = ; sets foo to an empty string -; foo = None ; sets foo to an empty string -; foo = "None" ; sets foo to the string 'None' - -; If you use constants in your value, and these constants belong to a -; dynamically loaded extension (either a PHP extension or a Zend extension), -; you may only use these constants *after* the line that loads the extension. - -;;;;;;;;;;;;;;;;;;; -; About this file ; -;;;;;;;;;;;;;;;;;;; -; PHP comes packaged with two INI files. One that is recommended to be used -; in production environments and one that is recommended to be used in -; development environments. - -; php.ini-production contains settings which hold security, performance and -; best practices at its core. But please be aware, these settings may break -; compatibility with older or less security conscience applications. We -; recommending using the production ini in production and testing environments. - -; php.ini-development is very similar to its production variant, except it is -; much more verbose when it comes to errors. We recommend using the -; development version only in development environments, as errors shown to -; application users can inadvertently leak otherwise secure information. - -; This is php.ini-production INI file. - -;;;;;;;;;;;;;;;;;;; -; Quick Reference ; -;;;;;;;;;;;;;;;;;;; -; The following are all the settings which are different in either the production -; or development versions of the INIs with respect to PHP's default behavior. -; Please see the actual settings later in the document for more details as to why -; we recommend these changes in PHP's behavior. - -; display_errors -; Default Value: On -; Development Value: On -; Production Value: Off - -; display_startup_errors -; Default Value: Off -; Development Value: On -; Production Value: Off - -; error_reporting -; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT - -; html_errors -; Default Value: On -; Development Value: On -; Production value: On - -; log_errors -; Default Value: Off -; Development Value: On -; Production Value: On - -; max_input_time -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) - -; output_buffering -; Default Value: Off -; Development Value: 4096 -; Production Value: 4096 - -; register_argc_argv -; Default Value: On -; Development Value: Off -; Production Value: Off - -; request_order -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" - -; session.gc_divisor -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 - -; session.sid_bits_per_character -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 - -; short_open_tag -; Default Value: On -; Development Value: Off -; Production Value: Off - -; track_errors -; Default Value: Off -; Development Value: On -; Production Value: Off - -; variables_order -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS" - -;;;;;;;;;;;;;;;;;;;; -; php.ini Options ; -;;;;;;;;;;;;;;;;;;;; -; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini" -;user_ini.filename = ".user.ini" - -; To disable this feature set this option to empty value -;user_ini.filename = - -; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes) -;user_ini.cache_ttl = 300 - -;;;;;;;;;;;;;;;;;;;; -; Language Options ; -;;;;;;;;;;;;;;;;;;;; - -; Enable the PHP scripting language engine under Apache. -; http://php.net/engine -engine = On - -; This directive determines whether or not PHP will recognize code between -; tags as PHP source which should be processed as such. It is -; generally recommended that should be used and that this feature -; should be disabled, as enabling it may result in issues when generating XML -; documents, however this remains supported for backward compatibility reasons. -; Note that this directive does not control the would work. -; http://php.net/syntax-highlighting -;highlight.string = #DD0000 -;highlight.comment = #FF9900 -;highlight.keyword = #007700 -;highlight.default = #0000BB -;highlight.html = #000000 - -; If enabled, the request will be allowed to complete even if the user aborts -; the request. Consider enabling it if executing long requests, which may end up -; being interrupted by the user or a browser timing out. PHP's default behavior -; is to disable this feature. -; http://php.net/ignore-user-abort -;ignore_user_abort = On - -; Determines the size of the realpath cache to be used by PHP. This value should -; be increased on systems where PHP opens many files to reflect the quantity of -; the file operations performed. -; http://php.net/realpath-cache-size -;realpath_cache_size = 4096k - -; Duration of time, in seconds for which to cache realpath information for a given -; file or directory. For systems with rarely changing files, consider increasing this -; value. -; http://php.net/realpath-cache-ttl -;realpath_cache_ttl = 120 - -; Enables or disables the circular reference collector. -; http://php.net/zend.enable-gc -zend.enable_gc = On - -; If enabled, scripts may be written in encodings that are incompatible with -; the scanner. CP936, Big5, CP949 and Shift_JIS are the examples of such -; encodings. To use this feature, mbstring extension must be enabled. -; Default: Off -;zend.multibyte = Off - -; Allows to set the default encoding for the scripts. This value will be used -; unless "declare(encoding=...)" directive appears at the top of the script. -; Only affects if zend.multibyte is set. -; Default: "" -;zend.script_encoding = - -;;;;;;;;;;;;;;;;; -; Miscellaneous ; -;;;;;;;;;;;;;;;;; - -; Decides whether PHP may expose the fact that it is installed on the server -; (e.g. by adding its signature to the Web server header). It is no security -; threat in any way, but it makes it possible to determine whether you use PHP -; on your server or not. -; http://php.net/expose-php -expose_php = Off - -;;;;;;;;;;;;;;;;;;; -; Resource Limits ; -;;;;;;;;;;;;;;;;;;; - -; Maximum execution time of each script, in seconds -; http://php.net/max-execution-time -; Note: This directive is hardcoded to 0 for the CLI SAPI -max_execution_time = 30 - -; Maximum amount of time each script may spend parsing request data. It's a good -; idea to limit this time on productions servers in order to eliminate unexpectedly -; long running scripts. -; Note: This directive is hardcoded to -1 for the CLI SAPI -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) -; http://php.net/max-input-time -max_input_time = 60 - -; Maximum input variable nesting level -; http://php.net/max-input-nesting-level -;max_input_nesting_level = 64 - -; How many GET/POST/COOKIE input variables may be accepted -; max_input_vars = 1000 - -; Maximum amount of memory a script may consume (128MB) -; http://php.net/memory-limit -memory_limit = 256M - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; Error handling and logging ; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -; This directive informs PHP of which errors, warnings and notices you would like -; it to take action for. The recommended way of setting values for this -; directive is through the use of the error level constants and bitwise -; operators. The error level constants are below here for convenience as well as -; some common settings and their meanings. -; By default, PHP is set to take action on all errors, notices and warnings EXCEPT -; those related to E_NOTICE and E_STRICT, which together cover best practices and -; recommended coding standards in PHP. For performance reasons, this is the -; recommend error reporting setting. Your production server shouldn't be wasting -; resources complaining about best practices and coding standards. That's what -; development servers and development settings are for. -; Note: The php.ini-development file has this setting as E_ALL. This -; means it pretty much reports everything which is exactly what you want during -; development and early testing. -; -; Error Level Constants: -; E_ALL - All errors and warnings (includes E_STRICT as of PHP 5.4.0) -; E_ERROR - fatal run-time errors -; E_RECOVERABLE_ERROR - almost fatal run-time errors -; E_WARNING - run-time warnings (non-fatal errors) -; E_PARSE - compile-time parse errors -; E_NOTICE - run-time notices (these are warnings which often result -; from a bug in your code, but it's possible that it was -; intentional (e.g., using an uninitialized variable and -; relying on the fact it is automatically initialized to an -; empty string) -; E_STRICT - run-time notices, enable to have PHP suggest changes -; to your code which will ensure the best interoperability -; and forward compatibility of your code -; E_CORE_ERROR - fatal errors that occur during PHP's initial startup -; E_CORE_WARNING - warnings (non-fatal errors) that occur during PHP's -; initial startup -; E_COMPILE_ERROR - fatal compile-time errors -; E_COMPILE_WARNING - compile-time warnings (non-fatal errors) -; E_USER_ERROR - user-generated error message -; E_USER_WARNING - user-generated warning message -; E_USER_NOTICE - user-generated notice message -; E_DEPRECATED - warn about code that will not work in future versions -; of PHP -; E_USER_DEPRECATED - user-generated deprecation warnings -; -; Common Values: -; E_ALL (Show all errors, warnings and notices including coding standards.) -; E_ALL & ~E_NOTICE (Show all errors, except for notices) -; E_ALL & ~E_NOTICE & ~E_STRICT (Show all errors, except for notices and coding standards warnings.) -; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors) -; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT -; http://php.net/error-reporting -error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT - -; This directive controls whether or not and where PHP will output errors, -; notices and warnings too. Error output is very useful during development, but -; it could be very dangerous in production environments. Depending on the code -; which is triggering the error, sensitive information could potentially leak -; out of your application such as database usernames and passwords or worse. -; For production environments, we recommend logging errors rather than -; sending them to STDOUT. -; Possible Values: -; Off = Do not display any errors -; stderr = Display errors to STDERR (affects only CGI/CLI binaries!) -; On or stdout = Display errors to STDOUT -; Default Value: On -; Development Value: On -; Production Value: Off -; http://php.net/display-errors -display_errors = Off - -; The display of errors which occur during PHP's startup sequence are handled -; separately from display_errors. PHP's default behavior is to suppress those -; errors from clients. Turning the display of startup errors on can be useful in -; debugging configuration problems. We strongly recommend you -; set this to 'off' for production servers. -; Default Value: Off -; Development Value: On -; Production Value: Off -; http://php.net/display-startup-errors -display_startup_errors = Off - -; Besides displaying errors, PHP can also log errors to locations such as a -; server-specific log, STDERR, or a location specified by the error_log -; directive found below. While errors should not be displayed on productions -; servers they should still be monitored and logging is a great way to do that. -; Default Value: Off -; Development Value: On -; Production Value: On -; http://php.net/log-errors -log_errors = On - -; Set maximum length of log_errors. In error_log information about the source is -; added. The default is 1024 and 0 allows to not apply any maximum length at all. -; http://php.net/log-errors-max-len -log_errors_max_len = 1024 - -; Do not log repeated messages. Repeated errors must occur in same file on same -; line unless ignore_repeated_source is set true. -; http://php.net/ignore-repeated-errors -ignore_repeated_errors = Off - -; Ignore source of message when ignoring repeated messages. When this setting -; is On you will not log errors with repeated messages from different files or -; source lines. -; http://php.net/ignore-repeated-source -ignore_repeated_source = Off - -; If this parameter is set to Off, then memory leaks will not be shown (on -; stdout or in the log). This has only effect in a debug compile, and if -; error reporting includes E_WARNING in the allowed list -; http://php.net/report-memleaks -report_memleaks = On - -; This setting is on by default. -;report_zend_debug = 0 - -; Store the last error/warning message in $php_errormsg (boolean). Setting this value -; to On can assist in debugging and is appropriate for development servers. It should -; however be disabled on production servers. -; Default Value: Off -; Development Value: On -; Production Value: Off -; http://php.net/track-errors -track_errors = Off - -; Turn off normal error reporting and emit XML-RPC error XML -; http://php.net/xmlrpc-errors -;xmlrpc_errors = 0 - -; An XML-RPC faultCode -;xmlrpc_error_number = 0 - -; When PHP displays or logs an error, it has the capability of formatting the -; error message as HTML for easier reading. This directive controls whether -; the error message is formatted as HTML or not. -; Note: This directive is hardcoded to Off for the CLI SAPI -; Default Value: On -; Development Value: On -; Production value: On -; http://php.net/html-errors -html_errors = On - -; If html_errors is set to On *and* docref_root is not empty, then PHP -; produces clickable error messages that direct to a page describing the error -; or function causing the error in detail. -; You can download a copy of the PHP manual from http://php.net/docs -; and change docref_root to the base URL of your local copy including the -; leading '/'. You must also specify the file extension being used including -; the dot. PHP's default behavior is to leave these settings empty, in which -; case no links to documentation are generated. -; Note: Never use this feature for production boxes. -; http://php.net/docref-root -; Examples -;docref_root = "/phpmanual/" - -; http://php.net/docref-ext -;docref_ext = .html - -; String to output before an error message. PHP's default behavior is to leave -; this setting blank. -; http://php.net/error-prepend-string -; Example: -;error_prepend_string = "" - -; String to output after an error message. PHP's default behavior is to leave -; this setting blank. -; http://php.net/error-append-string -; Example: -;error_append_string = "" - -; Log errors to specified file. PHP's default behavior is to leave this value -; empty. -; http://php.net/error-log -; Example: -;error_log = php_errors.log -; Log errors to syslog (Event Log on Windows). -error_log = /var/log/php/php.error.log - -;windows.show_crt_warning -; Default value: 0 -; Development value: 0 -; Production value: 0 - -;;;;;;;;;;;;;;;;; -; Data Handling ; -;;;;;;;;;;;;;;;;; - -; The separator used in PHP generated URLs to separate arguments. -; PHP's default setting is "&". -; http://php.net/arg-separator.output -; Example: -;arg_separator.output = "&" - -; List of separator(s) used by PHP to parse input URLs into variables. -; PHP's default setting is "&". -; NOTE: Every character in this directive is considered as separator! -; http://php.net/arg-separator.input -; Example: -;arg_separator.input = ";&" - -; This directive determines which super global arrays are registered when PHP -; starts up. G,P,C,E & S are abbreviations for the following respective super -; globals: GET, POST, COOKIE, ENV and SERVER. There is a performance penalty -; paid for the registration of these arrays and because ENV is not as commonly -; used as the others, ENV is not recommended on productions servers. You -; can still get access to the environment variables through getenv() should you -; need to. -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS"; -; http://php.net/variables-order -variables_order = "GPCS" - -; This directive determines which super global data (G,P & C) should be -; registered into the super global array REQUEST. If so, it also determines -; the order in which that data is registered. The values for this directive -; are specified in the same manner as the variables_order directive, -; EXCEPT one. Leaving this value empty will cause PHP to use the value set -; in the variables_order directive. It does not mean it will leave the super -; globals array REQUEST empty. -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" -; http://php.net/request-order -request_order = "GP" - -; This directive determines whether PHP registers $argv & $argc each time it -; runs. $argv contains an array of all the arguments passed to PHP when a script -; is invoked. $argc contains an integer representing the number of arguments -; that were passed when the script was invoked. These arrays are extremely -; useful when running scripts from the command line. When this directive is -; enabled, registering these variables consumes CPU cycles and memory each time -; a script is executed. For performance reasons, this feature should be disabled -; on production servers. -; Note: This directive is hardcoded to On for the CLI SAPI -; Default Value: On -; Development Value: Off -; Production Value: Off -; http://php.net/register-argc-argv -register_argc_argv = Off - -; When enabled, the ENV, REQUEST and SERVER variables are created when they're -; first used (Just In Time) instead of when the script starts. If these -; variables are not used within a script, having this directive on will result -; in a performance gain. The PHP directive register_argc_argv must be disabled -; for this directive to have any affect. -; http://php.net/auto-globals-jit -auto_globals_jit = On - -; Whether PHP will read the POST data. -; This option is enabled by default. -; Most likely, you won't want to disable this option globally. It causes $_POST -; and $_FILES to always be empty; the only way you will be able to read the -; POST data will be through the php://input stream wrapper. This can be useful -; to proxy requests or to process the POST data in a memory efficient fashion. -; http://php.net/enable-post-data-reading -;enable_post_data_reading = Off - -; Maximum size of POST data that PHP will accept. -; Its value may be 0 to disable the limit. It is ignored if POST data reading -; is disabled through enable_post_data_reading. -; http://php.net/post-max-size -post_max_size = 100M - -; Automatically add files before PHP document. -; http://php.net/auto-prepend-file -auto_prepend_file = - -; Automatically add files after PHP document. -; http://php.net/auto-append-file -auto_append_file = - -; By default, PHP will output a media type using the Content-Type header. To -; disable this, simply set it to be empty. -; -; PHP's built-in default media type is set to text/html. -; http://php.net/default-mimetype -default_mimetype = "text/html" - -; PHP's default character set is set to UTF-8. -; http://php.net/default-charset -default_charset = "UTF-8" - -; PHP internal character encoding is set to empty. -; If empty, default_charset is used. -; http://php.net/internal-encoding -;internal_encoding = - -; PHP input character encoding is set to empty. -; If empty, default_charset is used. -; http://php.net/input-encoding -;input_encoding = - -; PHP output character encoding is set to empty. -; If empty, default_charset is used. -; See also output_buffer. -; http://php.net/output-encoding -;output_encoding = - -;;;;;;;;;;;;;;;;;;;;;;;;; -; Paths and Directories ; -;;;;;;;;;;;;;;;;;;;;;;;;; - -; UNIX: "/path1:/path2" -;include_path = ".:/php/includes" -; -; Windows: "\path1;\path2" -;include_path = ".;c:\php\includes" -; -; PHP's default setting for include_path is ".;/path/to/php/pear" -; http://php.net/include-path - -; The root of the PHP pages, used only if nonempty. -; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root -; if you are running php as a CGI under any web server (other than IIS) -; see documentation for security issues. The alternate is to use the -; cgi.force_redirect configuration below -; http://php.net/doc-root -doc_root = - -; The directory under which PHP opens the script using /~username used only -; if nonempty. -; http://php.net/user-dir -user_dir = - -; Directory in which the loadable extensions (modules) reside. -; http://php.net/extension-dir -; extension_dir = "./" -; On windows: -; extension_dir = "ext" - -; Directory where the temporary files should be placed. -; Defaults to the system default (see sys_get_temp_dir) -; sys_temp_dir = "/tmp" - -; Whether or not to enable the dl() function. The dl() function does NOT work -; properly in multithreaded servers, such as IIS or Zeus, and is automatically -; disabled on them. -; http://php.net/enable-dl -enable_dl = Off - -; cgi.force_redirect is necessary to provide security running PHP as a CGI under -; most web servers. Left undefined, PHP turns this on by default. You can -; turn it off here AT YOUR OWN RISK -; **You CAN safely turn this off for IIS, in fact, you MUST.** -; http://php.net/cgi.force-redirect -;cgi.force_redirect = 1 - -; if cgi.nph is enabled it will force cgi to always sent Status: 200 with -; every request. PHP's default behavior is to disable this feature. -;cgi.nph = 1 - -; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape -; (iPlanet) web servers, you MAY need to set an environment variable name that PHP -; will look for to know it is OK to continue execution. Setting this variable MAY -; cause security issues, KNOW WHAT YOU ARE DOING FIRST. -; http://php.net/cgi.redirect-status-env -;cgi.redirect_status_env = - -; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's -; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok -; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting -; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting -; of zero causes PHP to behave as before. Default is 1. You should fix your scripts -; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. -; http://php.net/cgi.fix-pathinfo -;cgi.fix_pathinfo=1 - -; if cgi.discard_path is enabled, the PHP CGI binary can safely be placed outside -; of the web tree and people will not be able to circumvent .htaccess security. -; http://php.net/cgi.dicard-path -;cgi.discard_path=1 - -; FastCGI under IIS (on WINNT based OS) supports the ability to impersonate -; security tokens of the calling client. This allows IIS to define the -; security context that the request runs under. mod_fastcgi under Apache -; does not currently support this feature (03/17/2002) -; Set to 1 if running under IIS. Default is zero. -; http://php.net/fastcgi.impersonate -;fastcgi.impersonate = 1 - -; Disable logging through FastCGI connection. PHP's default behavior is to enable -; this feature. -;fastcgi.logging = 0 - -; cgi.rfc2616_headers configuration option tells PHP what type of headers to -; use when sending HTTP response code. If set to 0, PHP sends Status: header that -; is supported by Apache. When this option is set to 1, PHP will send -; RFC2616 compliant header. -; Default is zero. -; http://php.net/cgi.rfc2616-headers -;cgi.rfc2616_headers = 0 - -; cgi.check_shebang_line controls whether CGI PHP checks for line starting with #! -; (shebang) at the top of the running script. This line might be needed if the -; script support running both as stand-alone script and via PHP CGI<. PHP in CGI -; mode skips this line and ignores its content if this directive is turned on. -; http://php.net/cgi.check-shebang-line -;cgi.check_shebang_line=1 - -;;;;;;;;;;;;;;;; -; File Uploads ; -;;;;;;;;;;;;;;;; - -; Whether to allow HTTP file uploads. -; http://php.net/file-uploads -file_uploads = On - -; Temporary directory for HTTP uploaded files (will use system default if not -; specified). -; http://php.net/upload-tmp-dir -;upload_tmp_dir = - -; Maximum allowed size for uploaded files. -; http://php.net/upload-max-filesize -upload_max_filesize = 50M - -; Maximum number of files that can be uploaded via a single request -max_file_uploads = 20 - -;;;;;;;;;;;;;;;;;; -; Fopen wrappers ; -;;;;;;;;;;;;;;;;;; - -; Whether to allow the treatment of URLs (like http:// or ftp://) as files. -; http://php.net/allow-url-fopen -allow_url_fopen = On - -; Whether to allow include/require to open URLs (like http:// or ftp://) as files. -; http://php.net/allow-url-include -allow_url_include = Off - -; Define the anonymous ftp password (your email address). PHP's default setting -; for this is empty. -; http://php.net/from -;from="john@doe.com" - -; Define the User-Agent string. PHP's default setting for this is empty. -; http://php.net/user-agent -;user_agent="PHP" - -; Default timeout for socket based streams (seconds) -; http://php.net/default-socket-timeout -default_socket_timeout = 60 - -; If your scripts have to deal with files from Macintosh systems, -; or you are running on a Mac and need to deal with files from -; unix or win32 systems, setting this flag will cause PHP to -; automatically detect the EOL character in those files so that -; fgets() and file() will work regardless of the source of the file. -; http://php.net/auto-detect-line-endings -;auto_detect_line_endings = Off - -;;;;;;;;;;;;;;;;;;;;;; -; Dynamic Extensions ; -;;;;;;;;;;;;;;;;;;;;;; - -; If you wish to have an extension loaded automatically, use the following -; syntax: -; -; extension=modulename.extension -; -; For example, on Windows: -; -; extension=mysqli.dll -; -; ... or under UNIX: -; -; extension=mysqli.so -; -; ... or with a path: -; -; extension=/path/to/extension/mysqli.so -; -; If you only provide the name of the extension, PHP will look for it in its -; default extension directory. -; -; Windows Extensions -; Note that ODBC support is built in, so no dll is needed for it. -; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5+) -; extension folders as well as the separate PECL DLL download (PHP 5+). -; Be sure to appropriately set the extension_dir directive. -; -;extension=php_bz2.dll -;extension=php_curl.dll -;extension=php_fileinfo.dll -;extension=php_ftp.dll -;extension=php_gd2.dll -;extension=php_gettext.dll -;extension=php_gmp.dll -;extension=php_intl.dll -;extension=php_imap.dll -;extension=php_interbase.dll -;extension=php_ldap.dll -;extension=php_mbstring.dll -;extension=php_exif.dll ; Must be after mbstring as it depends on it -;extension=php_mysqli.dll -;extension=php_oci8_12c.dll ; Use with Oracle Database 12c Instant Client -;extension=php_openssl.dll -;extension=php_pdo_firebird.dll -;extension=php_pdo_mysql.dll -;extension=php_pdo_oci.dll -;extension=php_pdo_odbc.dll -;extension=php_pdo_pgsql.dll -;extension=php_pdo_sqlite.dll -;extension=php_pgsql.dll -;extension=php_shmop.dll - -; The MIBS data available in the PHP distribution must be installed. -; See http://www.php.net/manual/en/snmp.installation.php -;extension=php_snmp.dll - -;extension=php_soap.dll -;extension=php_sockets.dll -;extension=php_sqlite3.dll -;extension=php_tidy.dll -;extension=php_xmlrpc.dll -;extension=php_xsl.dll - -;;;;;;;;;;;;;;;;;;; -; Module Settings ; -;;;;;;;;;;;;;;;;;;; - -[CLI Server] -; Whether the CLI web server uses ANSI color coding in its terminal output. -cli_server.color = On - -[Date] -; Defines the default timezone used by the date functions -; http://php.net/date.timezone -date.timezone = Asia/Shanghai - -; http://php.net/date.default-latitude -;date.default_latitude = 31.7667 - -; http://php.net/date.default-longitude -;date.default_longitude = 35.2333 - -; http://php.net/date.sunrise-zenith -;date.sunrise_zenith = 90.583333 - -; http://php.net/date.sunset-zenith -;date.sunset_zenith = 90.583333 - -[filter] -; http://php.net/filter.default -;filter.default = unsafe_raw - -; http://php.net/filter.default-flags -;filter.default_flags = - -[iconv] -; Use of this INI entry is deprecated, use global input_encoding instead. -; If empty, default_charset or input_encoding or iconv.input_encoding is used. -; The precedence is: default_charset < intput_encoding < iconv.input_encoding -;iconv.input_encoding = - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;iconv.internal_encoding = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; If empty, default_charset or output_encoding or iconv.output_encoding is used. -; The precedence is: default_charset < output_encoding < iconv.output_encoding -; To use an output encoding conversion, iconv's output handler must be set -; otherwise output encoding conversion cannot be performed. -;iconv.output_encoding = - -[intl] -;intl.default_locale = -; This directive allows you to produce PHP errors when some error -; happens within intl functions. The value is the level of the error produced. -; Default is 0, which does not produce any errors. -;intl.error_level = E_WARNING -;intl.use_exceptions = 0 - -[sqlite3] -;sqlite3.extension_dir = - -[Pcre] -;PCRE library backtracking limit. -; http://php.net/pcre.backtrack-limit -;pcre.backtrack_limit=100000 - -;PCRE library recursion limit. -;Please note that if you set this value to a high number you may consume all -;the available process stack and eventually crash PHP (due to reaching the -;stack size limit imposed by the Operating System). -; http://php.net/pcre.recursion-limit -;pcre.recursion_limit=100000 - -;Enables or disables JIT compilation of patterns. This requires the PCRE -;library to be compiled with JIT support. -;pcre.jit=1 - -[Pdo] -; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off" -; http://php.net/pdo-odbc.connection-pooling -;pdo_odbc.connection_pooling=strict - -;pdo_odbc.db2_instance_name - -[Pdo_mysql] -; If mysqlnd is used: Number of cache slots for the internal result set cache -; http://php.net/pdo_mysql.cache_size -pdo_mysql.cache_size = 2000 - -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -; http://php.net/pdo_mysql.default-socket -pdo_mysql.default_socket= - -[Phar] -; http://php.net/phar.readonly -;phar.readonly = On - -; http://php.net/phar.require-hash -;phar.require_hash = On - -;phar.cache_list = - -[mail function] -; For Win32 only. -; http://php.net/smtp -SMTP = localhost -; http://php.net/smtp-port -smtp_port = 25 - -; For Win32 only. -; http://php.net/sendmail-from -;sendmail_from = me@example.com - -; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). -; http://php.net/sendmail-path -;sendmail_path = - -; Force the addition of the specified parameters to be passed as extra parameters -; to the sendmail binary. These parameters will always replace the value of -; the 5th parameter to mail(). -;mail.force_extra_parameters = - -; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename -mail.add_x_header = On - -; The path to a log file that will log all mail() calls. Log entries include -; the full path of the script, line number, To address and headers. -;mail.log = -; Log mail to syslog (Event Log on Windows). -;mail.log = syslog - -[ODBC] -; http://php.net/odbc.default-db -;odbc.default_db = Not yet implemented - -; http://php.net/odbc.default-user -;odbc.default_user = Not yet implemented - -; http://php.net/odbc.default-pw -;odbc.default_pw = Not yet implemented - -; Controls the ODBC cursor model. -; Default: SQL_CURSOR_STATIC (default). -;odbc.default_cursortype - -; Allow or prevent persistent links. -; http://php.net/odbc.allow-persistent -odbc.allow_persistent = On - -; Check that a connection is still valid before reuse. -; http://php.net/odbc.check-persistent -odbc.check_persistent = On - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/odbc.max-persistent -odbc.max_persistent = -1 - -; Maximum number of links (persistent + non-persistent). -1 means no limit. -; http://php.net/odbc.max-links -odbc.max_links = -1 - -; Handling of LONG fields. Returns number of bytes to variables. 0 means -; passthru. -; http://php.net/odbc.defaultlrl -odbc.defaultlrl = 4096 - -; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char. -; See the documentation on odbc_binmode and odbc_longreadlen for an explanation -; of odbc.defaultlrl and odbc.defaultbinmode -; http://php.net/odbc.defaultbinmode -odbc.defaultbinmode = 1 - -;birdstep.max_links = -1 - -[Interbase] -; Allow or prevent persistent links. -ibase.allow_persistent = 1 - -; Maximum number of persistent links. -1 means no limit. -ibase.max_persistent = -1 - -; Maximum number of links (persistent + non-persistent). -1 means no limit. -ibase.max_links = -1 - -; Default database name for ibase_connect(). -;ibase.default_db = - -; Default username for ibase_connect(). -;ibase.default_user = - -; Default password for ibase_connect(). -;ibase.default_password = - -; Default charset for ibase_connect(). -;ibase.default_charset = - -; Default timestamp format. -ibase.timestampformat = "%Y-%m-%d %H:%M:%S" - -; Default date format. -ibase.dateformat = "%Y-%m-%d" - -; Default time format. -ibase.timeformat = "%H:%M:%S" - -[MySQLi] - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/mysqli.max-persistent -mysqli.max_persistent = -1 - -; Allow accessing, from PHP's perspective, local files with LOAD DATA statements -; http://php.net/mysqli.allow_local_infile -;mysqli.allow_local_infile = On - -; Allow or prevent persistent links. -; http://php.net/mysqli.allow-persistent -mysqli.allow_persistent = On - -; Maximum number of links. -1 means no limit. -; http://php.net/mysqli.max-links -mysqli.max_links = -1 - -; If mysqlnd is used: Number of cache slots for the internal result set cache -; http://php.net/mysqli.cache_size -mysqli.cache_size = 2000 - -; Default port number for mysqli_connect(). If unset, mysqli_connect() will use -; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the -; compile-time value defined MYSQL_PORT (in that order). Win32 will only look -; at MYSQL_PORT. -; http://php.net/mysqli.default-port -mysqli.default_port = 3306 - -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -; http://php.net/mysqli.default-socket -mysqli.default_socket = - -; Default host for mysql_connect() (doesn't apply in safe mode). -; http://php.net/mysqli.default-host -mysqli.default_host = - -; Default user for mysql_connect() (doesn't apply in safe mode). -; http://php.net/mysqli.default-user -mysqli.default_user = - -; Default password for mysqli_connect() (doesn't apply in safe mode). -; Note that this is generally a *bad* idea to store passwords in this file. -; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw") -; and reveal this password! And of course, any users with read access to this -; file will be able to reveal the password as well. -; http://php.net/mysqli.default-pw -mysqli.default_pw = - -; Allow or prevent reconnect -mysqli.reconnect = Off - -[mysqlnd] -; Enable / Disable collection of general statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -; http://php.net/mysqlnd.collect_statistics -mysqlnd.collect_statistics = On - -; Enable / Disable collection of memory usage statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -; http://php.net/mysqlnd.collect_memory_statistics -mysqlnd.collect_memory_statistics = Off - -; Records communication from all extensions using mysqlnd to the specified log -; file. -; http://php.net/mysqlnd.debug -;mysqlnd.debug = - -; Defines which queries will be logged. -; http://php.net/mysqlnd.log_mask -;mysqlnd.log_mask = 0 - -; Default size of the mysqlnd memory pool, which is used by result sets. -; http://php.net/mysqlnd.mempool_default_size -;mysqlnd.mempool_default_size = 16000 - -; Size of a pre-allocated buffer used when sending commands to MySQL in bytes. -; http://php.net/mysqlnd.net_cmd_buffer_size -;mysqlnd.net_cmd_buffer_size = 2048 - -; Size of a pre-allocated buffer used for reading data sent by the server in -; bytes. -; http://php.net/mysqlnd.net_read_buffer_size -;mysqlnd.net_read_buffer_size = 32768 - -; Timeout for network requests in seconds. -; http://php.net/mysqlnd.net_read_timeout -;mysqlnd.net_read_timeout = 31536000 - -; SHA-256 Authentication Plugin related. File with the MySQL server public RSA -; key. -; http://php.net/mysqlnd.sha256_server_public_key -;mysqlnd.sha256_server_public_key = - -[OCI8] - -; Connection: Enables privileged connections using external -; credentials (OCI_SYSOPER, OCI_SYSDBA) -; http://php.net/oci8.privileged-connect -;oci8.privileged_connect = Off - -; Connection: The maximum number of persistent OCI8 connections per -; process. Using -1 means no limit. -; http://php.net/oci8.max-persistent -;oci8.max_persistent = -1 - -; Connection: The maximum number of seconds a process is allowed to -; maintain an idle persistent connection. Using -1 means idle -; persistent connections will be maintained forever. -; http://php.net/oci8.persistent-timeout -;oci8.persistent_timeout = -1 - -; Connection: The number of seconds that must pass before issuing a -; ping during oci_pconnect() to check the connection validity. When -; set to 0, each oci_pconnect() will cause a ping. Using -1 disables -; pings completely. -; http://php.net/oci8.ping-interval -;oci8.ping_interval = 60 - -; Connection: Set this to a user chosen connection class to be used -; for all pooled server requests with Oracle 11g Database Resident -; Connection Pooling (DRCP). To use DRCP, this value should be set to -; the same string for all web servers running the same application, -; the database pool must be configured, and the connection string must -; specify to use a pooled server. -;oci8.connection_class = - -; High Availability: Using On lets PHP receive Fast Application -; Notification (FAN) events generated when a database node fails. The -; database must also be configured to post FAN events. -;oci8.events = Off - -; Tuning: This option enables statement caching, and specifies how -; many statements to cache. Using 0 disables statement caching. -; http://php.net/oci8.statement-cache-size -;oci8.statement_cache_size = 20 - -; Tuning: Enables statement prefetching and sets the default number of -; rows that will be fetched automatically after statement execution. -; http://php.net/oci8.default-prefetch -;oci8.default_prefetch = 100 - -; Compatibility. Using On means oci_close() will not close -; oci_connect() and oci_new_connect() connections. -; http://php.net/oci8.old-oci-close-semantics -;oci8.old_oci_close_semantics = Off - -[PostgreSQL] -; Allow or prevent persistent links. -; http://php.net/pgsql.allow-persistent -pgsql.allow_persistent = On - -; Detect broken persistent links always with pg_pconnect(). -; Auto reset feature requires a little overheads. -; http://php.net/pgsql.auto-reset-persistent -pgsql.auto_reset_persistent = Off - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/pgsql.max-persistent -pgsql.max_persistent = -1 - -; Maximum number of links (persistent+non persistent). -1 means no limit. -; http://php.net/pgsql.max-links -pgsql.max_links = -1 - -; Ignore PostgreSQL backends Notice message or not. -; Notice message logging require a little overheads. -; http://php.net/pgsql.ignore-notice -pgsql.ignore_notice = 0 - -; Log PostgreSQL backends Notice message or not. -; Unless pgsql.ignore_notice=0, module cannot log notice message. -; http://php.net/pgsql.log-notice -pgsql.log_notice = 0 - -[bcmath] -; Number of decimal digits for all bcmath functions. -; http://php.net/bcmath.scale -bcmath.scale = 0 - -[browscap] -; http://php.net/browscap -;browscap = extra/browscap.ini - -[Session] -; Handler used to store/retrieve data. -; http://php.net/session.save-handler -session.save_handler = files - -; Argument passed to save_handler. In the case of files, this is the path -; where data files are stored. Note: Windows users have to change this -; variable in order to use PHP's session functions. -; -; The path can be defined as: -; -; session.save_path = "N;/path" -; -; where N is an integer. Instead of storing all the session files in -; /path, what this will do is use subdirectories N-levels deep, and -; store the session data in those directories. This is useful if -; your OS has problems with many files in one directory, and is -; a more efficient layout for servers that handle many sessions. -; -; NOTE 1: PHP will not create this directory structure automatically. -; You can use the script in the ext/session dir for that purpose. -; NOTE 2: See the section on garbage collection below if you choose to -; use subdirectories for session storage -; -; The file storage module creates files using mode 600 by default. -; You can change that by using -; -; session.save_path = "N;MODE;/path" -; -; where MODE is the octal representation of the mode. Note that this -; does not overwrite the process's umask. -; http://php.net/session.save-path -;session.save_path = "/tmp" - -; Whether to use strict session mode. -; Strict session mode does not accept uninitialized session ID and regenerate -; session ID if browser sends uninitialized session ID. Strict mode protects -; applications from session fixation via session adoption vulnerability. It is -; disabled by default for maximum compatibility, but enabling it is encouraged. -; https://wiki.php.net/rfc/strict_sessions -session.use_strict_mode = 0 - -; Whether to use cookies. -; http://php.net/session.use-cookies -session.use_cookies = 1 - -; http://php.net/session.cookie-secure -;session.cookie_secure = - -; This option forces PHP to fetch and use a cookie for storing and maintaining -; the session id. We encourage this operation as it's very helpful in combating -; session hijacking when not specifying and managing your own session id. It is -; not the be-all and end-all of session hijacking defense, but it's a good start. -; http://php.net/session.use-only-cookies -session.use_only_cookies = 1 - -; Name of the session (used as cookie name). -; http://php.net/session.name -session.name = PHPSESSID - -; Initialize session on request startup. -; http://php.net/session.auto-start -session.auto_start = 0 - -; Lifetime in seconds of cookie or, if 0, until browser is restarted. -; http://php.net/session.cookie-lifetime -session.cookie_lifetime = 0 - -; The path for which the cookie is valid. -; http://php.net/session.cookie-path -session.cookie_path = / - -; The domain for which the cookie is valid. -; http://php.net/session.cookie-domain -session.cookie_domain = - -; Whether or not to add the httpOnly flag to the cookie, which makes it inaccessible to browser scripting languages such as JavaScript. -; http://php.net/session.cookie-httponly -session.cookie_httponly = - -; Handler used to serialize data. php is the standard serializer of PHP. -; http://php.net/session.serialize-handler -session.serialize_handler = php - -; Defines the probability that the 'garbage collection' process is started -; on every session initialization. The probability is calculated by using -; gc_probability/gc_divisor. Where session.gc_probability is the numerator -; and gc_divisor is the denominator in the equation. Setting this value to 1 -; when the session.gc_divisor value is 100 will give you approximately a 1% chance -; the gc will run on any give request. -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; http://php.net/session.gc-probability -session.gc_probability = 1 - -; Defines the probability that the 'garbage collection' process is started on every -; session initialization. The probability is calculated by using the following equation: -; gc_probability/gc_divisor. Where session.gc_probability is the numerator and -; session.gc_divisor is the denominator in the equation. Setting this value to 1 -; when the session.gc_divisor value is 100 will give you approximately a 1% chance -; the gc will run on any give request. Increasing this value to 1000 will give you -; a 0.1% chance the gc will run on any give request. For high volume production servers, -; this is a more efficient approach. -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 -; http://php.net/session.gc-divisor -session.gc_divisor = 1000 - -; After this number of seconds, stored data will be seen as 'garbage' and -; cleaned up by the garbage collection process. -; http://php.net/session.gc-maxlifetime -session.gc_maxlifetime = 1440 - -; NOTE: If you are using the subdirectory option for storing session files -; (see session.save_path above), then garbage collection does *not* -; happen automatically. You will need to do your own garbage -; collection through a shell script, cron entry, or some other method. -; For example, the following script would is the equivalent of -; setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes): -; find /path/to/sessions -cmin +24 -type f | xargs rm - -; Check HTTP Referer to invalidate externally stored URLs containing ids. -; HTTP_REFERER has to contain this substring for the session to be -; considered as valid. -; http://php.net/session.referer-check -session.referer_check = - -; Set to {nocache,private,public,} to determine HTTP caching aspects -; or leave this empty to avoid sending anti-caching headers. -; http://php.net/session.cache-limiter -session.cache_limiter = nocache - -; Document expires after n minutes. -; http://php.net/session.cache-expire -session.cache_expire = 180 - -; trans sid support is disabled by default. -; Use of trans sid may risk your users' security. -; Use this option with caution. -; - User may send URL contains active session ID -; to other person via. email/irc/etc. -; - URL that contains active session ID may be stored -; in publicly accessible computer. -; - User may access your site with the same session ID -; always using URL stored in browser's history or bookmarks. -; http://php.net/session.use-trans-sid -session.use_trans_sid = 0 - -; Set session ID character length. This value could be between 22 to 256. -; Shorter length than default is supported only for compatibility reason. -; Users should use 32 or more chars. -; http://php.net/session.sid-length -; Default Value: 32 -; Development Value: 26 -; Production Value: 26 -session.sid_length = 26 - -; The URL rewriter will look for URLs in a defined set of HTML tags. -; is special; if you include them here, the rewriter will -; add a hidden field with the info which is otherwise appended -; to URLs. tag's action attribute URL will not be modified -; unless it is specified. -; Note that all valid entries require a "=", even if no value follows. -; Default Value: "a=href,area=href,frame=src,form=" -; Development Value: "a=href,area=href,frame=src,form=" -; Production Value: "a=href,area=href,frame=src,form=" -; http://php.net/url-rewriter.tags -session.trans_sid_tags = "a=href,area=href,frame=src,form=" - -; URL rewriter does not rewrite absolute URLs by default. -; To enable rewrites for absolute pathes, target hosts must be specified -; at RUNTIME. i.e. use ini_set() -; tags is special. PHP will check action attribute's URL regardless -; of session.trans_sid_tags setting. -; If no host is defined, HTTP_HOST will be used for allowed host. -; Example value: php.net,www.php.net,wiki.php.net -; Use "," for multiple hosts. No spaces are allowed. -; Default Value: "" -; Development Value: "" -; Production Value: "" -;session.trans_sid_hosts="" - -; Define how many bits are stored in each character when converting -; the binary hash data to something readable. -; Possible values: -; 4 (4 bits: 0-9, a-f) -; 5 (5 bits: 0-9, a-v) -; 6 (6 bits: 0-9, a-z, A-Z, "-", ",") -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 -; http://php.net/session.hash-bits-per-character -session.sid_bits_per_character = 5 - -; Enable upload progress tracking in $_SESSION -; Default Value: On -; Development Value: On -; Production Value: On -; http://php.net/session.upload-progress.enabled -;session.upload_progress.enabled = On - -; Cleanup the progress information as soon as all POST data has been read -; (i.e. upload completed). -; Default Value: On -; Development Value: On -; Production Value: On -; http://php.net/session.upload-progress.cleanup -;session.upload_progress.cleanup = On - -; A prefix used for the upload progress key in $_SESSION -; Default Value: "upload_progress_" -; Development Value: "upload_progress_" -; Production Value: "upload_progress_" -; http://php.net/session.upload-progress.prefix -;session.upload_progress.prefix = "upload_progress_" - -; The index name (concatenated with the prefix) in $_SESSION -; containing the upload progress information -; Default Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Development Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Production Value: "PHP_SESSION_UPLOAD_PROGRESS" -; http://php.net/session.upload-progress.name -;session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS" - -; How frequently the upload progress should be updated. -; Given either in percentages (per-file), or in bytes -; Default Value: "1%" -; Development Value: "1%" -; Production Value: "1%" -; http://php.net/session.upload-progress.freq -;session.upload_progress.freq = "1%" - -; The minimum delay between updates, in seconds -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; http://php.net/session.upload-progress.min-freq -;session.upload_progress.min_freq = "1" - -; Only write session data when session data is changed. Enabled by default. -; http://php.net/session.lazy-write -;session.lazy_write = On - -[Assertion] -; Switch whether to compile assertions at all (to have no overhead at run-time) -; -1: Do not compile at all -; 0: Jump over assertion at run-time -; 1: Execute assertions -; Changing from or to a negative value is only possible in php.ini! (For turning assertions on and off at run-time, see assert.active, when zend.assertions = 1) -; Default Value: 1 -; Development Value: 1 -; Production Value: -1 -; http://php.net/zend.assertions -zend.assertions = -1 - -; Assert(expr); active by default. -; http://php.net/assert.active -;assert.active = On - -; Throw an AssertationException on failed assertions -; http://php.net/assert.exception -;assert.exception = On - -; Issue a PHP warning for each failed assertion. (Overridden by assert.exception if active) -; http://php.net/assert.warning -;assert.warning = On - -; Don't bail out by default. -; http://php.net/assert.bail -;assert.bail = Off - -; User-function to be called if an assertion fails. -; http://php.net/assert.callback -;assert.callback = 0 - -; Eval the expression with current error_reporting(). Set to true if you want -; error_reporting(0) around the eval(). -; http://php.net/assert.quiet-eval -;assert.quiet_eval = 0 - -[COM] -; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs -; http://php.net/com.typelib-file -;com.typelib_file = - -; allow Distributed-COM calls -; http://php.net/com.allow-dcom -;com.allow_dcom = true - -; autoregister constants of a components typlib on com_load() -; http://php.net/com.autoregister-typelib -;com.autoregister_typelib = true - -; register constants casesensitive -; http://php.net/com.autoregister-casesensitive -;com.autoregister_casesensitive = false - -; show warnings on duplicate constant registrations -; http://php.net/com.autoregister-verbose -;com.autoregister_verbose = true - -; The default character set code-page to use when passing strings to and from COM objects. -; Default: system ANSI code page -;com.code_page= - -[mbstring] -; language for internal character representation. -; This affects mb_send_mail() and mbstring.detect_order. -; http://php.net/mbstring.language -;mbstring.language = Japanese - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; internal/script encoding. -; Some encoding cannot work as internal encoding. (e.g. SJIS, BIG5, ISO-2022-*) -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;mbstring.internal_encoding = - -; Use of this INI entry is deprecated, use global input_encoding instead. -; http input encoding. -; mbstring.encoding_traslation = On is needed to use this setting. -; If empty, default_charset or input_encoding or mbstring.input is used. -; The precedence is: default_charset < intput_encoding < mbsting.http_input -; http://php.net/mbstring.http-input -;mbstring.http_input = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; http output encoding. -; mb_output_handler must be registered as output buffer to function. -; If empty, default_charset or output_encoding or mbstring.http_output is used. -; The precedence is: default_charset < output_encoding < mbstring.http_output -; To use an output encoding conversion, mbstring's output handler must be set -; otherwise output encoding conversion cannot be performed. -; http://php.net/mbstring.http-output -;mbstring.http_output = - -; enable automatic encoding translation according to -; mbstring.internal_encoding setting. Input chars are -; converted to internal encoding by setting this to On. -; Note: Do _not_ use automatic encoding translation for -; portable libs/applications. -; http://php.net/mbstring.encoding-translation -;mbstring.encoding_translation = Off - -; automatic encoding detection order. -; "auto" detect order is changed according to mbstring.language -; http://php.net/mbstring.detect-order -;mbstring.detect_order = auto - -; substitute_character used when character cannot be converted -; one from another -; http://php.net/mbstring.substitute-character -;mbstring.substitute_character = none - -; overload(replace) single byte functions by mbstring functions. -; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(), -; etc. Possible values are 0,1,2,4 or combination of them. -; For example, 7 for overload everything. -; 0: No overload -; 1: Overload mail() function -; 2: Overload str*() functions -; 4: Overload ereg*() functions -; http://php.net/mbstring.func-overload -;mbstring.func_overload = 0 - -; enable strict encoding detection. -; Default: Off -;mbstring.strict_detection = On - -; This directive specifies the regex pattern of content types for which mb_output_handler() -; is activated. -; Default: mbstring.http_output_conv_mimetype=^(text/|application/xhtml\+xml) -;mbstring.http_output_conv_mimetype= - -[gd] -; Tell the jpeg decode to ignore warnings and try to create -; a gd image. The warning will then be displayed as notices -; disabled by default -; http://php.net/gd.jpeg-ignore-warning -;gd.jpeg_ignore_warning = 1 - -[exif] -; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS. -; With mbstring support this will automatically be converted into the encoding -; given by corresponding encode setting. When empty mbstring.internal_encoding -; is used. For the decode settings you can distinguish between motorola and -; intel byte order. A decode setting cannot be empty. -; http://php.net/exif.encode-unicode -;exif.encode_unicode = ISO-8859-15 - -; http://php.net/exif.decode-unicode-motorola -;exif.decode_unicode_motorola = UCS-2BE - -; http://php.net/exif.decode-unicode-intel -;exif.decode_unicode_intel = UCS-2LE - -; http://php.net/exif.encode-jis -;exif.encode_jis = - -; http://php.net/exif.decode-jis-motorola -;exif.decode_jis_motorola = JIS - -; http://php.net/exif.decode-jis-intel -;exif.decode_jis_intel = JIS - -[Tidy] -; The path to a default tidy configuration file to use when using tidy -; http://php.net/tidy.default-config -;tidy.default_config = /usr/local/lib/php/default.tcfg - -; Should tidy clean and repair output automatically? -; WARNING: Do not use this option if you are generating non-html content -; such as dynamic images -; http://php.net/tidy.clean-output -tidy.clean_output = Off - -[soap] -; Enables or disables WSDL caching feature. -; http://php.net/soap.wsdl-cache-enabled -soap.wsdl_cache_enabled=1 - -; Sets the directory name where SOAP extension will put cache files. -; http://php.net/soap.wsdl-cache-dir -soap.wsdl_cache_dir="/tmp" - -; (time to live) Sets the number of second while cached file will be used -; instead of original one. -; http://php.net/soap.wsdl-cache-ttl -soap.wsdl_cache_ttl=86400 - -; Sets the size of the cache limit. (Max. number of WSDL files to cache) -soap.wsdl_cache_limit = 5 - -[sysvshm] -; A default size of the shared memory segment -;sysvshm.init_mem = 10000 - -[ldap] -; Sets the maximum number of open links or -1 for unlimited. -ldap.max_links = -1 - -[dba] -;dba.default_handler= - -[opcache] -; Determines if Zend OPCache is enabled -;opcache.enable=1 - -; Determines if Zend OPCache is enabled for the CLI version of PHP -;opcache.enable_cli=1 - -; The OPcache shared memory storage size. -;opcache.memory_consumption=128 - -; The amount of memory for interned strings in Mbytes. -;opcache.interned_strings_buffer=8 - -; The maximum number of keys (scripts) in the OPcache hash table. -; Only numbers between 200 and 1000000 are allowed. -;opcache.max_accelerated_files=10000 - -; The maximum percentage of "wasted" memory until a restart is scheduled. -;opcache.max_wasted_percentage=5 - -; When this directive is enabled, the OPcache appends the current working -; directory to the script key, thus eliminating possible collisions between -; files with the same name (basename). Disabling the directive improves -; performance, but may break existing applications. -;opcache.use_cwd=1 - -; When disabled, you must reset the OPcache manually or restart the -; webserver for changes to the filesystem to take effect. -;opcache.validate_timestamps=1 - -; How often (in seconds) to check file timestamps for changes to the shared -; memory storage allocation. ("1" means validate once per second, but only -; once per request. "0" means always validate) -;opcache.revalidate_freq=2 - -; Enables or disables file search in include_path optimization -;opcache.revalidate_path=0 - -; If disabled, all PHPDoc comments are dropped from the code to reduce the -; size of the optimized code. -;opcache.save_comments=1 - -; If enabled, a fast shutdown sequence is used for the accelerated code -; Depending on the used Memory Manager this may cause some incompatibilities. -;opcache.fast_shutdown=0 - -; Allow file existence override (file_exists, etc.) performance feature. -;opcache.enable_file_override=0 - -; A bitmask, where each bit enables or disables the appropriate OPcache -; passes -;opcache.optimization_level=0xffffffff - -;opcache.inherited_hack=1 -;opcache.dups_fix=0 - -; The location of the OPcache blacklist file (wildcards allowed). -; Each OPcache blacklist file is a text file that holds the names of files -; that should not be accelerated. The file format is to add each filename -; to a new line. The filename may be a full path or just a file prefix -; (i.e., /var/www/x blacklists all the files and directories in /var/www -; that start with 'x'). Line starting with a ; are ignored (comments). -;opcache.blacklist_filename= - -; Allows exclusion of large files from being cached. By default all files -; are cached. -;opcache.max_file_size=0 - -; Check the cache checksum each N requests. -; The default value of "0" means that the checks are disabled. -;opcache.consistency_checks=0 - -; How long to wait (in seconds) for a scheduled restart to begin if the cache -; is not being accessed. -;opcache.force_restart_timeout=180 - -; OPcache error_log file name. Empty string assumes "stderr". -;opcache.error_log= - -; All OPcache errors go to the Web server log. -; By default, only fatal errors (level 0) or errors (level 1) are logged. -; You can also enable warnings (level 2), info messages (level 3) or -; debug messages (level 4). -;opcache.log_verbosity_level=1 - -; Preferred Shared Memory back-end. Leave empty and let the system decide. -;opcache.preferred_memory_model= - -; Protect the shared memory from unexpected writing during script execution. -; Useful for internal debugging only. -;opcache.protect_memory=0 - -; Allows calling OPcache API functions only from PHP scripts which path is -; started from specified string. The default "" means no restriction -;opcache.restrict_api= - -; Mapping base of shared memory segments (for Windows only). All the PHP -; processes have to map shared memory into the same address space. This -; directive allows to manually fix the "Unable to reattach to base address" -; errors. -;opcache.mmap_base= - -; Enables and sets the second level cache directory. -; It should improve performance when SHM memory is full, at server restart or -; SHM reset. The default "" disables file based caching. -;opcache.file_cache= - -; Enables or disables opcode caching in shared memory. -;opcache.file_cache_only=0 - -; Enables or disables checksum validation when script loaded from file cache. -;opcache.file_cache_consistency_checks=1 - -; Implies opcache.file_cache_only=1 for a certain process that failed to -; reattach to the shared memory (for Windows only). Explicitly enabled file -; cache is required. -;opcache.file_cache_fallback=1 - -; Enables or disables copying of PHP code (text segment) into HUGE PAGES. -; This should improve performance, but requires appropriate OS configuration. -;opcache.huge_code_pages=1 - -; Validate cached file permissions. -;opcache.validate_permission=0 - -; Prevent name collisions in chroot'ed environment. -;opcache.validate_root=0 - -[curl] -; A default value for the CURLOPT_CAINFO option. This is required to be an -; absolute path. -;curl.cainfo = - -[openssl] -; The location of a Certificate Authority (CA) file on the local filesystem -; to use when verifying the identity of SSL/TLS peers. Most users should -; not specify a value for this directive as PHP will attempt to use the -; OS-managed cert stores in its absence. If specified, this value may still -; be overridden on a per-stream basis via the "cafile" SSL stream context -; option. -;openssl.cafile= - -; If openssl.cafile is not specified or if the CA file is not found, the -; directory pointed to by openssl.capath is searched for a suitable -; certificate. This value must be a correctly hashed certificate directory. -; Most users should not specify a value for this directive as PHP will -; attempt to use the OS-managed cert stores in its absence. If specified, -; this value may still be overridden on a per-stream basis via the "capath" -; SSL stream context option. -;openssl.capath= - -; Local Variables: -; tab-width: 4 -; End: - -[XDebug] -xdebug.remote_enable = 1 -xdebug.remote_handler = "dbgp" -; Set to host.docker.internal on Mac and Windows, otherwise, set to host real ip -xdebug.remote_host = host.docker.internal -;xdebug.remote_port = 9000 -xdebug.remote_log = /var/log/php/xdebug.log - -SERVER_ENV=develop - -yaf.use_spl_autoload=1 - -[xhprof] -;xhprof.output_dir = /var/log/php/xhprof.log \ No newline at end of file diff --git a/php7/7.0.33/data.yml b/php7/7.0.33/data.yml deleted file mode 100755 index deeede5ad..000000000 --- a/php7/7.0.33/data.yml +++ /dev/null @@ -1,18 +0,0 @@ -additionalProperties: - formFields: - - default: 9000 - envKey: PANEL_APP_PORT_HTTP - labelEn: PHP-FPM Port - labelZh: PHP-FPM 端口 - label: - en: PHP-FPM Port - ja: PHP-FPM ポート - ms: Port PHP-FPM - pt-br: Porta PHP-FPM - ru: Порт PHP-FPM - ko: PHP-FPM 포트 - zh-Hant: PHP-FPM 埠 - zh: PHP-FPM 端口 - required: true - rule: paramPort - type: number diff --git a/php7/7.0.33/docker-compose.yml b/php7/7.0.33/docker-compose.yml deleted file mode 100644 index dc530c778..000000000 --- a/php7/7.0.33/docker-compose.yml +++ /dev/null @@ -1,21 +0,0 @@ -services: - php: - image: ${IMAGE_NAME} - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - volumes: - - ${PANEL_WEBSITE_DIR}:/www/ - - ./conf/php.ini:/usr/local/etc/php/php.ini - - ./conf/php-fpm.conf:/usr/local/etc/php-fpm.d/www.conf - - ./log:/var/log/php - - ./composer:/tmp/composer - - ./extensions:/php/extensions - ports: - - 127.0.0.1:${PANEL_APP_PORT_HTTP}:9000 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/php7/7.1.33/build/.env b/php7/7.1.33/build/.env deleted file mode 100644 index 876ff24f8..000000000 --- a/php7/7.1.33/build/.env +++ /dev/null @@ -1,14 +0,0 @@ -CONTAINER_PACKAGE_URL=mirrors.ustc.edu.cn - -PHP_VERSION=7.1.33 -PHP_PHP_CONF_FILE=./php/php.ini -PHP_FPM_CONF_FILE=./php/php-fpm.conf -PHP_LOG_DIR=./logs/php -PHP_EXTENSIONS= - -SOURCE_DIR=./www - -TZ=Asia/Shanghai -DATA_DIR=./data -IMAGE_NAME=1panel-php:7.1.33 -INSTALL_SUPERVISOR=0 \ No newline at end of file diff --git a/php7/7.1.33/build/config.json b/php7/7.1.33/build/config.json deleted file mode 100644 index 28ee3c56b..000000000 --- a/php7/7.1.33/build/config.json +++ /dev/null @@ -1,134 +0,0 @@ -{ - "formFields": [ - { - "type": "select", - "multiple": true, - "labelZh": "扩展", - "labelEn": "Extensions", - "default": ["mysqli","pdo_mysql"], - "values": [ - { - "label": "opcache", - "value": "opcache" - }, - { - "label": "memcached", - "value": "memcached" - }, - { - "label": "memcache", - "value": "memcache" - }, - { - "label": "redis", - "value": "redis" - }, - { - "label": "mcrypt", - "value": "mcrypt" - }, - { - "label": "xdebug", - "value": "xdebug" - }, - { - "label": "imap", - "value": "imap" - }, - { - "label": "exif", - "value": "exif" - }, - { - "label": "intl", - "value": "intl" - }, - { - "label": "swoole", - "value": "swoole" - }, - { - "label": "yaf", - "value": "yaf" - }, - { - "label": "pgsql", - "value": "pgsql" - }, - { - "label": "pdo_pgsql", - "value": "pdo_pgsql" - }, - { - "label": "snmp", - "value": "snmp" - }, { - "label": "ldap", - "value": "ldap" - }, - { - "label": "pspell", - "value": "pspell" - }, - { - "label": "bz2", - "value": "bz2" - }, - { - "label": "sysvshm", - "value": "sysvshm" - }, - { - "label": "calendar", - "value": "calendar" - }, - { - "label": "gmp", - "value": "gmp" - }, - { - "label": "sysvmsg", - "value": "sysvmsg" - }, - { - "label": "igbinary", - "value": "igbinary" - }, - { - "label": "mysqli", - "value": "mysqli" - }, - { - "label": "pdo_mysql", - "value": "pdo_mysql" - }, - { - "label": "mbstring", - "value": "mbstring" - }, - { - "label": "gd", - "value": "gd" - }, - { - "label": "ioncube_loader", - "value": "ioncube_loader" - }, - { - "label": "curl", - "value": "curl" - }, - { - "label": "sg15", - "value": "sourceguardian" - }, - { - "label": "imagick", - "value": "imagick" - } - ], - "envKey": "PHP_EXTENSIONS", - "edit": true - } - ] -} \ No newline at end of file diff --git a/php7/7.1.33/build/docker-compose.yml b/php7/7.1.33/build/docker-compose.yml deleted file mode 100644 index 21e9fa737..000000000 --- a/php7/7.1.33/build/docker-compose.yml +++ /dev/null @@ -1,19 +0,0 @@ -services: - 1panel-php: - build: - context: ./php - args: - PHP_IMAGE: php:${PHP_VERSION}-fpm-alpine - CONTAINER_PACKAGE_URL: ${CONTAINER_PACKAGE_URL} - PHP_EXTENSIONS: ${PHP_EXTENSIONS} - TZ: ${TZ} - image: ${IMAGE_NAME} - volumes: - - ${SOURCE_DIR}:/www/ - - ${PHP_PHP_CONF_FILE}:/usr/local/etc/php/php.ini - - ${PHP_FPM_CONF_FILE}:/usr/local/etc/php-fpm.d/www.conf - - ${PHP_LOG_DIR}:/var/log/php - - ${DATA_DIR}/composer:/tmp/composer - restart: always - cap_add: - - SYS_PTRACE diff --git a/php7/7.1.33/build/php/Dockerfile b/php7/7.1.33/build/php/Dockerfile deleted file mode 100644 index 622c0b79e..000000000 --- a/php7/7.1.33/build/php/Dockerfile +++ /dev/null @@ -1,36 +0,0 @@ -ARG PHP_IMAGE -FROM ${PHP_IMAGE} - -ARG TZ -ARG PHP_EXTENSIONS -ARG CONTAINER_PACKAGE_URL -ARG INSTALL_SUPERVISOR - -RUN if [ $CONTAINER_PACKAGE_URL ] ; then sed -i "s/dl-cdn.alpinelinux.org/${CONTAINER_PACKAGE_URL}/g" /etc/apk/repositories ; fi - -ADD ./extensions/install-php-extensions /usr/local/bin/ -RUN chmod uga+x /usr/local/bin/install-php-extensions - -COPY ./extensions /tmp/extensions -WORKDIR /tmp/extensions -RUN chmod +x install.sh \ - && sh install.sh - -RUN apk --no-cache add tzdata \ - && cp "/usr/share/zoneinfo/$TZ" /etc/localtime \ - && echo "$TZ" > /etc/timezone - -# Fix: https://github.com/docker-library/php/issues/1121 -RUN apk add --no-cache --repository http://${CONTAINER_PACKAGE_URL}/alpine/v3.13/community/ gnu-libiconv=1.15-r3 -ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so php - -# Install composer and change it's cache home -RUN chmod +x install-composer.sh \ - && sh install-composer.sh \ - && rm -rf /tmp/extensions -ENV COMPOSER_HOME=/tmp/composer - -# php image's www-data user uid & gid are 82, change them to 1000 (primary user) -RUN apk --no-cache add shadow && usermod -u 1000 www-data && groupmod -g 1000 www-data - -WORKDIR /www diff --git a/php7/7.1.33/build/php/extensions/amqp-1.10.2.tgz b/php7/7.1.33/build/php/extensions/amqp-1.10.2.tgz deleted file mode 100644 index 7bcd30d03..000000000 Binary files a/php7/7.1.33/build/php/extensions/amqp-1.10.2.tgz and /dev/null differ diff --git a/php7/7.1.33/build/php/extensions/apcu-5.1.17.tgz b/php7/7.1.33/build/php/extensions/apcu-5.1.17.tgz deleted file mode 100644 index c15ca116a..000000000 Binary files a/php7/7.1.33/build/php/extensions/apcu-5.1.17.tgz and /dev/null differ diff --git a/php7/7.1.33/build/php/extensions/event-3.0.8.tgz b/php7/7.1.33/build/php/extensions/event-3.0.8.tgz deleted file mode 100644 index e7a471bbe..000000000 Binary files a/php7/7.1.33/build/php/extensions/event-3.0.8.tgz and /dev/null differ diff --git a/php7/7.1.33/build/php/extensions/install-composer.sh b/php7/7.1.33/build/php/extensions/install-composer.sh deleted file mode 100644 index 34074732d..000000000 --- a/php7/7.1.33/build/php/extensions/install-composer.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/sh - -# The latest mirror's composer version only support for PHP 7.2.5 -# And if your PHP version is lesser than that, will be download supported version. -supportLatest=$(php -r "echo version_compare(PHP_VERSION, '7.2.5', '>');") - -if [ "$supportLatest" -eq "1" ]; then - curl -o /usr/bin/composer https://mirrors.aliyun.com/composer/composer.phar \ - && chmod +x /usr/bin/composer -else - curl -o /tmp/composer-setup.php https://getcomposer.org/installer \ - && php /tmp/composer-setup.php --install-dir=/tmp \ - && mv /tmp/composer.phar /usr/bin/composer \ - && chmod +x /usr/bin/composer \ - && rm -rf /tmp/composer-setup.php -fi \ No newline at end of file diff --git a/php7/7.1.33/build/php/extensions/install-php-extensions b/php7/7.1.33/build/php/extensions/install-php-extensions deleted file mode 100644 index 2ef98bb85..000000000 --- a/php7/7.1.33/build/php/extensions/install-php-extensions +++ /dev/null @@ -1,5154 +0,0 @@ -#!/bin/sh - -# This script wraps docker-php-ext-install, properly configuring the system. -# -# Copyright (c) Michele Locati, 2018-2023 -# -# Source: https://github.com/mlocati/docker-php-extension-installer -# -# License: MIT - see https://github.com/mlocati/docker-php-extension-installer/blob/master/LICENSE - -# Let's set a sane environment -set -o errexit -set -o nounset - -if test "${IPE_DEBUG:-}" = "1"; then - set -x -fi - -if ! which docker-php-ext-configure >/dev/null || ! which docker-php-ext-enable >/dev/null || ! which docker-php-ext-install >/dev/null || ! which docker-php-source >/dev/null; then - printf 'The script %s is meant to be used with official Docker PHP Images - https://hub.docker.com/_/php\n' "$0" >&2 - exit 1 -fi - -IPE_VERSION=2.7.27 - -StandWithUkraine() { - if test -t 1 && ! grep -Eq '^VERSION=.*jessie' /etc/os-release; then - printf '\e[37;44m#StandWith\e[30;43mUkraine\e[0m\n' - else - printf '#StandWithUkraine\n' - fi -} - -if test "$IPE_VERSION" = master && test "${CI:-}" != true; then - cat <&2 - exit 1 - fi - DISTRO="$(cat /etc/os-release | grep -E ^ID= | cut -d = -f 2)" - DISTRO_VERSION_NUMBER="$(cat /etc/os-release | grep -E ^VERSION_ID= | cut -d = -f 2 | cut -d '"' -f 2 | cut -d . -f 1,2)" - DISTRO_VERSION="$(printf '%s@%s' $DISTRO $DISTRO_VERSION_NUMBER)" - DISTRO_MAJMIN_VERSION="$(echo "$DISTRO_VERSION_NUMBER" | awk -F. '{print $1*100+$2}')" -} - -# Set: -# - PHP_MAJMIN_VERSION: Major-Minor version, format MMmm (example 800 for PHP 8.0.1) -# - PHP_MAJDOTMIN_VERSION: Major-Minor version, format M.m (example 8.0 for PHP 8.0.1) -# - PHP_MAJMINPAT_VERSION: Major-Minor-Patch version, format MMmmpp (example 80001 for PHP 8.0.1) variables containing integers value -# - PHP_MAJDOTMINDOTPAT_VERSION: Major-Minor-Patch version, format M.m.p (example 8.0.1 for PHP 8.0.1) -# - PHP_THREADSAFE: 1 if PHP is thread-safe (TS), 0 if not thread-safe (NTS) -# - PHP_DEBUGBUILD: 1 if PHP is debug build (configured with "--enable-debug"), 0 otherwise -# - PHP_BITS: 32 if PHP is compiled for 32-bit, 64 if 64-bit -# - PHP_EXTDIR: the absolute path where the PHP extensions reside -setPHPVersionVariables() { - PHP_MAJDOTMINDOTPAT_VERSION="$(php-config --version)" - PHP_MAJMIN_VERSION=$(printf '%s' "$PHP_MAJDOTMINDOTPAT_VERSION" | awk -F. '{print $1*100+$2}') - PHP_MAJDOTMIN_VERSION=$(printf '%s' "$PHP_MAJDOTMINDOTPAT_VERSION" | cut -d. -f1-2) - PHP_MAJMINPAT_VERSION=$(printf '%s' "$PHP_MAJDOTMINDOTPAT_VERSION" | awk -F. '{print $1*10000+$2*100+$3}') - PHP_THREADSAFE=$(php -n -r 'echo ZEND_THREAD_SAFE ? 1 : 0;') - PHP_DEBUGBUILD=$(php -n -r 'echo ZEND_DEBUG_BUILD ? 1 : 0;') - PHP_BITS=$(php -n -r 'echo PHP_INT_SIZE * 8;') - PHP_EXTDIR="$(php -d display_errors=stderr -r 'echo realpath(ini_get("extension_dir"));')" -} - -# Fix apt-get being very slow on Debian Jessie -# See https://bugs.launchpad.net/ubuntu/+source/apt/+bug/1332440 -fixMaxOpenFiles() { - fixMaxOpenFiles_cur=$(ulimit -n 2>/dev/null || echo 0) - if test "$fixMaxOpenFiles_cur" -gt 10000; then - ulimit -n 10000 - fi -} - -# Get the directory containing the compiled PHP extensions -# -# Output: -# The absolute path of the extensions dir -getPHPExtensionsDir() { - php -i | grep -E '^extension_dir' | head -n1 | tr -s '[:space:]*=>[:space:]*' '|' | cut -d'|' -f2 -} - -# Normalize the name of a PHP extension -# -# Arguments: -# $1: the name of the module to be normalized -# -# Output: -# The normalized module name -normalizePHPModuleName() { - normalizePHPModuleName_name="$1" - case "$normalizePHPModuleName_name" in - *A* | *B* | *C* | *D* | *E* | *F* | *G* | *H* | *I* | *J* | *K* | *L* | *M* | *N* | *O* | *P* | *Q* | *R* | *S* | *T* | *U* | *V* | *W* | *X* | *Y* | *Z*) - normalizePHPModuleName_name="$(LC_CTYPE=C printf '%s' "$normalizePHPModuleName_name" | tr '[:upper:]' '[:lower:]')" - ;; - esac - case "$normalizePHPModuleName_name" in - datadog_trace) - normalizePHPModuleName_name=ddtrace - ;; - ioncube | ioncube\ loader) - normalizePHPModuleName_name='ioncube_loader' - ;; - pecl_http) - normalizePHPModuleName_name='http' - ;; - zend\ opcache) - normalizePHPModuleName_name='opcache' - ;; - libsodium) - if test $PHP_MAJMIN_VERSION -ge 700; then - normalizePHPModuleName_name='sodium' - fi - ;; - sodium) - if test $PHP_MAJMIN_VERSION -lt 700; then - normalizePHPModuleName_name='libsodium' - fi - ;; - *\ *) - printf '### WARNING Unrecognized module name: %s ###\n' "$1" >&2 - ;; - esac - printf '%s' "$normalizePHPModuleName_name" -} - -# Get the PECL name of PHP extension -# -# Arguments: -# $1: the name of the extension -# -# Output: -# The PECL name of the extension -getPeclModuleName() { - normalizePHPModuleName_name="$1" - case "$normalizePHPModuleName_name" in - ddtrace) - normalizePHPModuleName_name=datadog_trace - ;; - http) - normalizePHPModuleName_name=pecl_http - ;; - sodium) - normalizePHPModuleName_name=libsodium - ;; - esac - printf '%s' "$normalizePHPModuleName_name" -} - -# Parse a package.xml (or package2.xml) file and extract the module name and version -# -# Arguments: -# $1: the patho to the XML file -# -# Set these variables: -# - EXTRACTPACKAGEVERSIONFROMXML_NAME -# - EXTRACTPACKAGEVERSIONFROMXML_VERSION -# -# Output: -# Nothing -# -# Return: -# 0 (true): if the string is in the list -# 1 (false): if the string is not in the list -extractPackageVersionFromXML() { - if ! test -f "$1"; then - printf 'Unable to find the file\n%s\n' >&2 - return 1 - fi - extractPackageVersionFromXML_code="$( - cat <<'EOT' -$doc = new DOMDocument(); -if (!$doc->load($argv[1])) { - fwrite(STDERR, "Failed to load XML file\n"); - exit(1); -} -set_error_handler( - static function($errno, $errstr) { - fwrite(STDERR, trim((string) $errstr) . "\n"); - exit(1); - }, - -1 -); -$xpath = new DOMXpath($doc); -$xpath->registerNamespace('v20', 'http://pear.php.net/dtd/package-2.0'); -$xpath->registerNamespace('v21', 'http://pear.php.net/dtd/package-2.1'); -if ($xpath->query('/v20:package/v20:dependencies')->length === 1) { - $ns = 'v20:'; -} elseif ($xpath->query('/v21:package/v21:dependencies')->length === 1) { - $ns = 'v21:'; -} elseif ($xpath->query('/package')->length === 1) { - $ns = ''; -} else { - fwrite(STDERR, "Unsupported namespace of the XML of package version details\n"); -} -$nodes = $xpath->query("/{$ns}package/{$ns}name"); -$name = trim((string) $nodes[0]->nodeValue); -if ($ns === '') { - $nodes = $xpath->query("/{$ns}package/{$ns}version"); -} else { - $nodes = $xpath->query("/{$ns}package/{$ns}version/{$ns}release"); -} -$version = trim((string) $nodes[0]->nodeValue); -echo "EXTRACTPACKAGEVERSIONFROMXML_NAME='{$name}'\n"; -echo "EXTRACTPACKAGEVERSIONFROMXML_VERSION='{$version}'\n"; -exit(0); -EOT - )" - extractPackageVersionFromXML_vars="$(php -n -d display_errors=stderr -r "$extractPackageVersionFromXML_code" "$1")" - if test -z "$extractPackageVersionFromXML_vars"; then - return 1 - fi - eval "$extractPackageVersionFromXML_vars" - return 0 -} - -# Parse a module name (and optionally version) as received via command arguments, extracting the version and normalizing it -# Examples: -# xdebug-2.9.8 -# xdebug-^2 -# xdebug-^2.9 -# -# Arguments: -# $1: the name of the module to be normalized -# -# Set these variables: -# - PROCESSED_PHP_MODULE_ARGUMENT -# -# Optionally set these variables: -# - PHP_WANTEDMODULEVERSION_<...> (where <...> is the normalized module name) -# - PHP_MODULESOURCECODEPATH_<...> (where <...> is the normalized module name) -# -# Output: -# Nothing -processPHPModuleArgument() { - processPHPModuleArgument_arg="$1" - case "$processPHPModuleArgument_arg" in - imagick) - if test $PHP_MAJMIN_VERSION -ge 804; then - processPHPModuleArgument_arg=imagick/imagick@65e27f2bc02e7e8f1bf64e26e359e42a1331fca1 - elif test $PHP_MAJMIN_VERSION -ge 803; then - processPHPModuleArgument_arg=imagick/imagick@28f27044e435a2b203e32675e942eb8de620ee58 - fi - ;; - esac - # Convert GitHub short form to long url, - # for example: from - # php-memcached-dev/php-memcached@8f106564e6bb005ca6100b12ccc89000daafa9d8 - # to - # https://codeload.github.com/php-memcached-dev/php-memcached/tar.gz/8f106564e6bb005ca6100b12ccc89000daafa9d8 - processPHPModuleArgument_arg="$(printf '%s' "$processPHPModuleArgument_arg" | sed -E 's/^([a-zA-Z0-9_.\-]+\/[a-zA-Z0-9_.\-]+)@(.+$)/https:\/\/codeload.github.com\/\1\/tar.gz\/\2/')" - # Let's check if $processPHPModuleArgument_arg is an URL - if printf '%s' "$processPHPModuleArgument_arg" | grep -Eq '^https?://[^ ]+/[^ ]+$'; then - printf 'Downloading source from %s\n' "$processPHPModuleArgument_arg" - processPHPModuleArgument_arg="$(getPackageSource "$processPHPModuleArgument_arg")" - fi - # Let's check if $processPHPModuleArgument_arg the absolute path of an existing directory - if test "$processPHPModuleArgument_arg" != "${processPHPModuleArgument_arg#/}" && test -d "$processPHPModuleArgument_arg"; then - if test -f "$processPHPModuleArgument_arg/package2.xml"; then - printf 'Checking package2.xml of directory %s... ' "$processPHPModuleArgument_arg" - if ! extractPackageVersionFromXML "$processPHPModuleArgument_arg/package2.xml"; then - return 1 - fi - elif test -f "$processPHPModuleArgument_arg/package.xml"; then - printf 'Checking package.xml of directory %s... ' "$processPHPModuleArgument_arg" - if ! extractPackageVersionFromXML "$processPHPModuleArgument_arg/package.xml"; then - return 1 - fi - else - printf 'Unable to find the package.xml file in the directory\n%s\n' "$processPHPModuleArgument_arg" - return 1 - fi - printf 'good (name: %s, version: %s)\n' "$EXTRACTPACKAGEVERSIONFROMXML_NAME" "$EXTRACTPACKAGEVERSIONFROMXML_VERSION" - PROCESSED_PHP_MODULE_ARGUMENT="$(normalizePHPModuleName "$EXTRACTPACKAGEVERSIONFROMXML_NAME")" - processPHPModuleArgument_version="$EXTRACTPACKAGEVERSIONFROMXML_VERSION" - if printf '%s' "$PROCESSED_PHP_MODULE_ARGUMENT" | grep -Eq '^[a-zA-Z0-9_]+$'; then - eval PHP_MODULESOURCECODEPATH_$PROCESSED_PHP_MODULE_ARGUMENT="$processPHPModuleArgument_arg" - else - printf 'Unable to parse the following module name:\n%s\n' "$PROCESSED_PHP_MODULE_ARGUMENT" >&2 - exit 1 - fi - else - PROCESSED_PHP_MODULE_ARGUMENT="${processPHPModuleArgument_arg%%-*}" - if test -n "$PROCESSED_PHP_MODULE_ARGUMENT" && test "$PROCESSED_PHP_MODULE_ARGUMENT" != "$processPHPModuleArgument_arg"; then - processPHPModuleArgument_version="${processPHPModuleArgument_arg#*-}" - else - processPHPModuleArgument_version='' - fi - PROCESSED_PHP_MODULE_ARGUMENT="$(normalizePHPModuleName "$PROCESSED_PHP_MODULE_ARGUMENT")" - fi - if test -n "$processPHPModuleArgument_version"; then - if printf '%s' "$PROCESSED_PHP_MODULE_ARGUMENT" | grep -Eq '^[a-zA-Z0-9_]+$'; then - eval PHP_WANTEDMODULEVERSION_$PROCESSED_PHP_MODULE_ARGUMENT="$processPHPModuleArgument_version" - elif printf '%s' "$PROCESSED_PHP_MODULE_ARGUMENT" | grep -Eq '^@[a-zA-Z0-9_]+$'; then - eval PHP_WANTEDMODULEVERSION__${PROCESSED_PHP_MODULE_ARGUMENT#@}="$processPHPModuleArgument_version" - else - printf 'Unable to parse the following module name:\n%s\n' "$PROCESSED_PHP_MODULE_ARGUMENT" >&2 - fi - fi -} - -# Get the wanted PHP module version, as specified in the command line arguments. -# -# Arguments: -# $1: the name of the module to be normalized -# -# Output: -# The wanted version (if any) -getWantedPHPModuleVersion() { - if printf '%s' "$1" | grep -Eq '^[a-zA-Z0-9_]+$'; then - eval printf '%s' "\${PHP_WANTEDMODULEVERSION_$1:-}" - elif printf '%s' "$1" | grep -Eq '^@[a-zA-Z0-9_]+$'; then - eval printf '%s' "\${PHP_WANTEDMODULEVERSION__${1#@}:-}" - fi -} - -# Get source code path of a PHP module version, as specified in the command line arguments. -# -# Arguments: -# $1: the name of the module to be normalized -# -# Output: -# The wanted version (if any) -getModuleSourceCodePath() { - if printf '%s' "$1" | grep -Eq '^[a-zA-Z0-9_]+$'; then - eval printf '%s' "\${PHP_MODULESOURCECODEPATH_$1:-}" - fi -} - -# Get the actual PHP module version, resolving it if it starts with '^' -# -# Arguments: -# $1: the name of the module -# $2: the wanted version (optional, if omitted we'll use getWantedPHPModuleVersion) -# -# Output: -# The version to be used -resolvePHPModuleVersion() { - resolvePHPModuleVersion_module="$1" - if test $# -lt 2; then - resolvePHPModuleVersion_raw="$(getWantedPHPModuleVersion "$installRemoteModule_module")" - else - resolvePHPModuleVersion_raw="$2" - fi - resolvePHPModuleVersion_afterCaret="${resolvePHPModuleVersion_raw#^}" - if test "$resolvePHPModuleVersion_raw" = "$resolvePHPModuleVersion_afterCaret"; then - printf '%s' "$resolvePHPModuleVersion_raw" - return - fi - case "$resolvePHPModuleVersion_afterCaret" in - ?*@snapshot | ?*@devel | ?*@alpha | ?*@beta | ?*@stable) - resolvePHPModuleVersion_wantedStability="${resolvePHPModuleVersion_afterCaret##*@}" - resolvePHPModuleVersion_wantedVersion="${resolvePHPModuleVersion_afterCaret%@*}" - ;; - *) - resolvePHPModuleVersion_wantedStability='' - resolvePHPModuleVersion_wantedVersion="$resolvePHPModuleVersion_afterCaret" - ;; - esac - resolvePHPModuleVersion_peclModule="$(getPeclModuleName "$resolvePHPModuleVersion_module")" - resolvePHPModuleVersion_xml="$(curl -sSLf "http://pecl.php.net/rest/r/$resolvePHPModuleVersion_peclModule/allreleases.xml")" - # remove line endings, collapse spaces - resolvePHPModuleVersion_versions="$(printf '%s' "$resolvePHPModuleVersion_xml" | tr -s ' \t\r\n' ' ')" - # one line per release (eg 1.2.3stable) - resolvePHPModuleVersion_versions="$(printf '%s' "$resolvePHPModuleVersion_versions" | sed -r 's#$resolvePHPModuleVersion_wantedStability")" - fi - # remove everything's up to '' (included) - resolvePHPModuleVersion_versions="$(printf '%s' "$resolvePHPModuleVersion_versions" | sed 's#^.*##')" - # keep just the versions - resolvePHPModuleVersion_versions="$(printf '%s' "$resolvePHPModuleVersion_versions" | cut -d'<' -f1)" - resetIFS - for resolvePHPModuleVersion_version in $resolvePHPModuleVersion_versions; do - resolvePHPModuleVersion_suffix="${resolvePHPModuleVersion_version#$resolvePHPModuleVersion_wantedVersion}" - if test "$resolvePHPModuleVersion_version" != "${resolvePHPModuleVersion_version#$resolvePHPModuleVersion_wantedVersion.}"; then - # Example: looking for 1.0, found 1.0.1 - printf '%s' "$resolvePHPModuleVersion_version" - return - fi - done - for resolvePHPModuleVersion_version in $resolvePHPModuleVersion_versions; do - resolvePHPModuleVersion_suffix="${resolvePHPModuleVersion_version#$resolvePHPModuleVersion_wantedVersion}" - if test "$resolvePHPModuleVersion_version" = "$resolvePHPModuleVersion_suffix"; then - continue - fi - if test -z "$resolvePHPModuleVersion_suffix"; then - # Example: looking for 1.0, found exactly it - printf '%s' "$resolvePHPModuleVersion_version" - return - fi - case "$resolvePHPModuleVersion_suffix" in - [0-9]) - # Example: looking for 1.1, but this is 1.10 - ;; - *) - # Example: looking for 1.1, this is 1.1rc1 - printf '%s' "$resolvePHPModuleVersion_version" - return - ;; - esac - done - printf 'Unable to find a version of "%s" compatible with "%s"\nAvailable versions are:\n%s\n' "$resolvePHPModuleVersion_module" "$resolvePHPModuleVersion_raw" "$resolvePHPModuleVersion_versions" >&2 - exit 1 -} - -# Get the actual version of a PECL pmodule, resolving 'latest', 'stable', 'beta', 'alpha', 'devel'. -# -# Arguments: -# $1: the module name as known on the PECL archive -# $2: the version to be resolved -# Output: -# $2 itself if $1 is not 'latest', 'stable', 'beta', 'alpha', or 'devel', the actual version otherwise -resolvePeclStabilityVersion() { - case "$2" in - latest | stable | beta | alpha | devel) ;; - *) - printf '%s' "$2" - return - ;; - esac - resolvePeclStabilityVersion_peclModule="$(getPeclModuleName "$1")" - peclStabilityFlagToVersion_url="http://pecl.php.net/rest/r/$resolvePeclStabilityVersion_peclModule/$2.txt" - if ! peclStabilityFlagToVersion_result="$(curl -sSLf "$peclStabilityFlagToVersion_url")"; then - peclStabilityFlagToVersion_result='' - fi - if test -z "$peclStabilityFlagToVersion_result"; then - printf 'Failed to resolve the PECL package version "%s" of %s from %s\n' "$2" "$1" "$peclStabilityFlagToVersion_url" >&2 - exit 1 - fi - printf '%s' "$peclStabilityFlagToVersion_result" -} - -# Set these variables: -# - PHP_PREINSTALLED_MODULES the normalized list of PHP modules installed before running this script -setPHPPreinstalledModules() { - PHP_PREINSTALLED_MODULES='' - IFS=' -' - for getPHPInstalledModules_module in $(php -m); do - getPHPInstalledModules_moduleNormalized='' - case "$getPHPInstalledModules_module" in - \[PHP\ Modules\]) ;; - \[Zend\ Modules\]) - break - ;; - *) - getPHPInstalledModules_moduleNormalized="$(normalizePHPModuleName "$getPHPInstalledModules_module")" - if ! stringInList "$getPHPInstalledModules_moduleNormalized" "$PHP_PREINSTALLED_MODULES"; then - PHP_PREINSTALLED_MODULES="$PHP_PREINSTALLED_MODULES $getPHPInstalledModules_moduleNormalized" - fi - ;; - esac - done - if command -v composer >/dev/null; then - PHP_PREINSTALLED_MODULES="$PHP_PREINSTALLED_MODULES @composer" - fi - resetIFS - PHP_PREINSTALLED_MODULES="${PHP_PREINSTALLED_MODULES# }" -} - -# Get the handles of the modules to be installed -# -# Arguments: -# $@: all module handles -# -# Set: -# PHP_MODULES_TO_INSTALL -# -# Output: -# Nothing -processCommandArguments() { - processCommandArguments_endArgs=0 - PHP_MODULES_TO_INSTALL='' - # Support deprecated flag IPE_FIX_CACERTS - case "${IPE_FIX_CACERTS:-}" in - 1 | y* | Y*) - PHP_MODULES_TO_INSTALL="$PHP_MODULES_TO_INSTALL @fix_letsencrypt" - ;; - esac - while :; do - if test $# -lt 1; then - break - fi - processCommandArguments_skip=0 - if test $processCommandArguments_endArgs -eq 0; then - case "$1" in - --cleanup) - printf '### WARNING the %s option is deprecated (we always cleanup everything) ###\n' "$1" >&2 - processCommandArguments_skip=1 - ;; - --) - processCommandArguments_skip=1 - processCommandArguments_endArgs=1 - ;; - -*) - printf 'Unrecognized option: %s\n' "$1" >&2 - exit 1 - ;; - esac - fi - if test $processCommandArguments_skip -eq 0; then - processPHPModuleArgument "$1" - processCommandArguments_name="$PROCESSED_PHP_MODULE_ARGUMENT" - if stringInList "$processCommandArguments_name" "$PHP_MODULES_TO_INSTALL"; then - printf '### WARNING Duplicated module name specified: %s ###\n' "$processCommandArguments_name" >&2 - elif stringInList "$processCommandArguments_name" "$PHP_PREINSTALLED_MODULES"; then - printf '### WARNING Module already installed: %s ###\n' "$processCommandArguments_name" >&2 - else - PHP_MODULES_TO_INSTALL="$PHP_MODULES_TO_INSTALL $processCommandArguments_name" - fi - fi - shift - done - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL# }" -} - -# Add a module that's required by another module -# -# Arguments: -# $1: module that requires another module -# $2: the required module -# -# Update: -# PHP_MODULES_TO_INSTALL -# -# Output: -# Nothing -checkRequiredModule() { - if ! stringInList "$1" "$PHP_MODULES_TO_INSTALL"; then - return - fi - if stringInList "$2" "$PHP_PREINSTALLED_MODULES"; then - return - fi - PHP_MODULES_TO_INSTALL="$(removeStringFromList "$1" "$PHP_MODULES_TO_INSTALL")" - if ! stringInList "$2" "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$PHP_MODULES_TO_INSTALL $2" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL# }" - fi - PHP_MODULES_TO_INSTALL="$PHP_MODULES_TO_INSTALL $1" -} - -# Sort the modules to be installed, in order to fix dependencies -# -# Update: -# PHP_MODULES_TO_INSTALL -# -# Output: -# Nothing -sortModulesToInstall() { - # apcu_bc requires apcu - checkRequiredModule 'apcu_bc' 'apcu' - # http requires propro (for PHP < 8) and raphf - if test $PHP_MAJMIN_VERSION -le 704; then - checkRequiredModule 'http' 'propro' - fi - checkRequiredModule 'http' 'raphf' - # event requires sockets (for PHP <= 5.6) - if test $PHP_MAJMIN_VERSION -le 506; then - checkRequiredModule event sockets - fi - # relay requires msgpack - checkRequiredModule relay msgpack - # relay requires igbinary - checkRequiredModule relay igbinary - # pq requires raphf - checkRequiredModule pq raphf - # phalcon up to v5.0.0beta3 requires psr - if test $PHP_MAJMINPAT_VERSION -lt 70401; then - checkRequiredModule phalcon psr - fi - # Some module installation may use sockets if available: move it before other modules - if stringInList 'sockets' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'sockets' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="sockets $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # Some module installation may use igbinary if available: move it before other modules - if stringInList 'igbinary' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'igbinary' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="igbinary $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # Some module installation may use msgpack if available: move it before other modules - if stringInList 'msgpack' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'msgpack' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="msgpack $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # Some module installation may use socket if available: move it before other modules - if stringInList 'socket' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'socket' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="socket $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # Some module installation may use apcu if available: move it before other modules - if stringInList 'apcu' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'apcu' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="apcu $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # Some module installation may use raphf if available: move it before other modules - if stringInList 'raphf' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'raphf' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="raphf $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # In any case, first of all, we need to install composer - if stringInList '@composer' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList '@composer' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="@composer $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi -} - -# Expand the IPE_ASPELL_LANGUAGES environment variable into apk/apt package names -expandASpellDictionaries() { - expandASpellDictionaries_languages="${IPE_ASPELL_LANGUAGES:-en}" - expandASpellDictionaries_result='' - resetIFS - for expandASpellDictionaries_language in $expandASpellDictionaries_languages; do - expandASpellDictionaries_result="$expandASpellDictionaries_result aspell-$expandASpellDictionaries_language" - done - printf '%s' "${expandASpellDictionaries_result# }" -} - -# Get the required APT/APK packages for a specific PHP version and for the list of module handles -# -# Arguments: -# $@: the PHP module handles -# -# Set: -# PACKAGES_PERSISTENT_NEW the list of packages required at runtume that must be installed -# PACKAGES_PERSISTENT_PRE the list of packages required at runtume that are already installed -# PACKAGES_VOLATILE the list of packages required at compile time that must be installed -# PACKAGES_PREVIOUS the list of packages (with their version) that are installed right now (calculated only on Debian and only if PACKAGES_PERSISTENT_NEW or PACKAGES_VOLATILE are not empty) -# COMPILE_LIBS -buildRequiredPackageLists() { - buildRequiredPackageLists_persistent='' - buildRequiredPackageLists_volatile='' - COMPILE_LIBS='' - case "$DISTRO" in - alpine) - apk update - ;; - debian) - invokeAptGetUpdate - ;; - esac - case "$DISTRO_VERSION" in - alpine@*) - if test $# -gt 1 || test "${1:-}" != '@composer'; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $PHPIZE_DEPS" - fi - if test -z "$(apk info 2>/dev/null | grep -E ^libssl)"; then - buildRequiredPackageLists_libssl="$(apk search | grep -E '^libssl[0-9]' | head -1 | cut -d- -f1)" - elif test -z "$(apk info 2>/dev/null | grep -E '^libressl.*-libtls')" && test -z "$(apk info 2>/dev/null | grep -E '^libressl.*-libssl')" && test -z "$(apk info 2>/dev/null | grep -E '^libretls-')"; then - buildRequiredPackageLists_libssl=$(apk search -q libressl*-libtls) - else - buildRequiredPackageLists_libssl='' - fi - if test $DISTRO_MAJMIN_VERSION -le 313; then - buildRequiredPackageLists_libssldev='libressl-dev' - else - buildRequiredPackageLists_libssldev='libretls-dev' - fi - buildRequiredPackageLists_icuPersistent='' - if test $DISTRO_MAJMIN_VERSION -ge 316; then - case "${IPE_ICU_EN_ONLY:-}" in - 1 | y* | Y*) ;; - *) - buildRequiredPackageLists_icuPersistent='icu-data-full' - ;; - esac - fi - ;; - debian@9) - buildRequiredPackageLists_libssldev='libssl1.0-dev' - ;; - debian@*) - buildRequiredPackageLists_libssldev='^libssl([0-9]+(\.[0-9]+)*)?-dev$' - ;; - esac - if test $USE_PICKLE -gt 1; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile git" - fi - while :; do - if test $# -lt 1; then - break - fi - case "$1@$DISTRO" in - @composer@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent unzip" - ;; - amqp@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent rabbitmq-c" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile rabbitmq-c-dev" - ;; - amqp@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^librabbitmq[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile librabbitmq-dev libssh-dev" - ;; - bz2@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libbz2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile bzip2-dev" - ;; - bz2@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libbz2-dev" - ;; - cassandra@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent cassandra-cpp-driver gmp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cassandra-cpp-driver-dev gmp-dev" - ;; - cmark@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake" - ;; - cmark@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake" - ;; - ddtrace@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libgcc" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile curl-dev" - ;; - ddtrace@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libcurl4-openssl-dev" - ;; - dba@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent db" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile db-dev" - ;; - dba@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile ^libdb5\.3-dev$" - if test $PHP_MAJMIN_VERSION -le 505; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile patch" - fi - ;; - decimal@debian) - if test $DISTRO_MAJMIN_VERSION -lt 1200; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libmpdec[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmpdec-dev" - fi - ;; - ecma_intl@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent icu-libs $buildRequiredPackageLists_icuPersistent" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev libidn-dev" - ;; - ecma_intl@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libicu[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libicu-dev" - ;; - enchant@alpine) - if test $DISTRO_MAJMIN_VERSION -ge 312; then - if test $PHP_MAJMIN_VERSION -ge 800; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent enchant2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile enchant2-dev" - else - # The system provides libenchant2, supported since PHP 8.0: we need to build libenchant1 on our own - if ! isLibenchant1Installed; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent glib aspell-libs libhunspell" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile glib-dev aspell-dev hunspell-dev" - COMPILE_LIBS="$COMPILE_LIBS libenchant1" - fi - fi - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent enchant" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile enchant-dev" - fi - ;; - enchant@debian) - if test $DISTRO_VERSION_NUMBER -ge 11; then - if test $PHP_MAJMIN_VERSION -ge 800; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libenchant-2-2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libenchant-2-dev" - else - if ! isLibenchant1Installed; then - # The system provides libenchant2, supported since PHP 8.0: we need to build libenchant1 on our own - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent aspell-en libhunspell-1.7-0" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libglib2.0-dev libaspell-dev libhunspell-dev" - COMPILE_LIBS="$COMPILE_LIBS libenchant1" - fi - fi - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libenchant1c2a" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libenchant-dev" - fi - ;; - event@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libevent $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libevent-dev $buildRequiredPackageLists_libssldev" - ;; - event@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libevent[0-9\.\-]*$ ^libevent-openssl[0-9\.\-]*$ ^libevent-extra[0-9\.\-]*$ ^libevent-pthreads[0-9\.\-]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libevent-dev $buildRequiredPackageLists_libssldev" - ;; - ffi@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libffi" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libffi-dev" - ;; - ffi@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libffi-dev" - ;; - ftp@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev" - ;; - ftp@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev" - ;; - gd@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent freetype libjpeg-turbo libpng libxpm" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetype-dev libjpeg-turbo-dev libpng-dev libxpm-dev" - if test $PHP_MAJMIN_VERSION -le 506; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libvpx" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libvpx-dev" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libwebp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libwebp-dev" - if test $PHP_MAJMIN_VERSION -ge 801; then - if test $DISTRO_MAJMIN_VERSION -ge 315; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libavif aom-libs libdav1d" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libavif-dev aom-dev dav1d-dev" - elif isLibaomInstalled && isLibdav1dInstalled && isLibyuvInstalled && isLibavifInstalled; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - else - case "${IPE_GD_WITHOUTAVIF:-}" in - 1 | y* | Y*) ;; - *) - if ! isLibaomInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libaom" - fi - if ! isLibdav1dInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libdav1d" - fi - if ! isLibyuvInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libyuv" - fi - if ! isLibavifInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libavif" - fi - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake nasm meson" - ;; - esac - fi - fi - fi - ;; - gd@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libfreetype6 libjpeg62-turbo ^libpng[0-9]+-[0-9]+$ libxpm4" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libfreetype6-dev libjpeg62-turbo-dev libpng-dev libxpm-dev" - if test $PHP_MAJMIN_VERSION -le 506; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libvpx[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libvpx-dev" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libwebp[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libwebp-dev" - if test $PHP_MAJMIN_VERSION -ge 801; then - if test $DISTRO_VERSION_NUMBER -ge 12; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libavif[0-9]+$ ^libaom[0-9]+$ ^libdav1d[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libavif-dev libaom-dev libdav1d-dev" - elif ! isLibaomInstalled || ! isLibdav1dInstalled || ! isLibyuvInstalled || ! isLibavifInstalled; then - case "${IPE_GD_WITHOUTAVIF:-}" in - 1 | y* | Y*) ;; - *) - if ! isLibaomInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libaom" - fi - if ! isLibdav1dInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libdav1d" - fi - if ! isLibyuvInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libyuv" - fi - if ! isLibavifInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libavif" - fi - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake nasm meson" - ;; - esac - fi - fi - fi - ;; - gearman@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++ libuuid" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile boost-dev gperf libmemcached-dev libevent-dev util-linux-dev" - ;; - gearman@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libgearman[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgearman-dev" - ;; - geoip@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent geoip" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile geoip-dev" - ;; - geoip@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libgeoip1[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgeoip-dev" - ;; - geos@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent geos-dev" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile geos" - ;; - geos@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libgeos-c1(v[0-9]*)?$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgeos-dev" - ;; - gettext@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libintl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile gettext-dev" - ;; - gmagick@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent graphicsmagick libgomp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile graphicsmagick-dev libtool" - ;; - gmagick@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libgraphicsmagick(-q16-)?[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgraphicsmagick1-dev" - ;; - gmp@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gmp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile gmp-dev" - ;; - gmp@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgmp-dev" - ;; - gnupg@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gpgme" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile gpgme-dev" - ;; - gnupg@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libgpgme[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile ^libgpgme[0-9]*-dev$" - ;; - grpc@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev linux-headers" - ;; - grpc@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev" - ;; - http@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libevent" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev curl-dev libevent-dev" - if test $PHP_MAJMIN_VERSION -le 506; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libidn" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libidn-dev" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent icu-libs $buildRequiredPackageLists_icuPersistent libidn" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev libidn-dev" - fi - ;; - http@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libcurl3-gnutls ^libevent[0-9\.\-]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev libgnutls28-dev libcurl4-gnutls-dev libevent-dev" - if test $PHP_MAJMIN_VERSION -le 506; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile ^libidn1[0-9+]-dev$" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libicu[0-9]+$ ^libidn2-[0-9+]$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libicu-dev ^libidn2-[0-9+]-dev$ ^libgcrypt[0-9]+-dev$" - fi - ;; - imagick@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent imagemagick libgomp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile imagemagick-dev" - if [ $DISTRO_MAJMIN_VERSION -ge 319 ]; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ghostscript libheif libjxl libraw librsvg" - fi - ;; - imagick@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libmagickwand-6.q16-[0-9]+$ ^libmagickcore-6.q16-[0-9]+-extra$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmagickwand-dev" - ;; - imap@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent c-client $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile krb5-dev imap-dev $buildRequiredPackageLists_libssldev" - ;; - imap@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libc-client2007e" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libkrb5-dev" - case "$DISTRO_VERSION" in - debian@9) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev comerr-dev krb5-multidev libc-client2007e libgssrpc4 libkadm5clnt-mit11 libkadm5srv-mit11 libkdb5-8 libpam0g-dev libssl-doc mlock" - ;; - *) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libc-client-dev" - ;; - esac - ;; - interbase@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev ncurses-dev" - if ! isFirebirdInstalled; then - COMPILE_LIBS="$COMPILE_LIBS firebird" - fi - ;; - interbase@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libfbclient2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile firebird-dev libib-util" - ;; - intl@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent icu-libs $buildRequiredPackageLists_icuPersistent" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev" - ;; - intl@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libicu[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libicu-dev" - ;; - ion@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake git" - ;; - ion@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake git" - ;; - ldap@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libldap" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile openldap-dev" - ;; - ldap@debian) - if test $DISTRO_VERSION_NUMBER -ge 9; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libldap-common" - fi - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libldap2-dev" - ;; - luasandbox@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lua5.1-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile lua5.1-dev" - ;; - luasandbox@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblua5.1-0" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liblua5.1-0-dev" - ;; - lz4@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lz4-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile lz4-dev" - ;; - lz4@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblz4-1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liblz4-dev" - ;; - maxminddb@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmaxminddb" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmaxminddb-dev" - ;; - maxminddb@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libmaxminddb[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmaxminddb-dev" - ;; - memprof@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent judy" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile judy-dev bsd-compat-headers" - ;; - memprof@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libjudydebian1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libjudy-dev" - ;; - mcrypt@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmcrypt" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmcrypt-dev" - ;; - mcrypt@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmcrypt4" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmcrypt-dev" - ;; - memcache@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev" - ;; - memcache@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev" - ;; - memcached@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmemcached-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmemcached-dev zlib-dev" - ;; - memcached@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmemcachedutil2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmemcached-dev zlib1g-dev" - if test $DISTRO_MAJMIN_VERSION -ge 12; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev" - fi - ;; - mongo@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsasl $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev cyrus-sasl-dev" - ;; - mongo@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev libsasl2-dev" - ;; - mongodb@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent icu-libs $buildRequiredPackageLists_icuPersistent libsasl $buildRequiredPackageLists_libssl snappy" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev cyrus-sasl-dev snappy-dev $buildRequiredPackageLists_libssldev zlib-dev" - if test $PHP_MAJMIN_VERSION -ge 704; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent zstd-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zstd-dev" - fi - ;; - mongodb@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libsnappy[0-9]+(v[0-9]+)?$ ^libicu[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libicu-dev libsasl2-dev libsnappy-dev $buildRequiredPackageLists_libssldev zlib1g-dev" - if test $PHP_MAJMIN_VERSION -ge 704; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libzstd[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libzstd-dev" - fi - ;; - mosquitto@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent mosquitto-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile mosquitto-dev" - ;; - mosquitto@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmosquitto1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmosquitto-dev" - ;; - mssql@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent freetds" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - mssql@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsybdb5" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - oauth@alpine) - if test $PHP_MAJMIN_VERSION -ge 700; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile pcre-dev" - fi - ;; - oauth@debian) - if test $PHP_MAJMIN_VERSION -ge 700; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libpcre3-dev" - fi - ;; - oci8@alpine | pdo_oci@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libaio libc6-compat libnsl" - if test $DISTRO_MAJMIN_VERSION -le 307; then - # The unzip tool of Alpine 3.7 can't extract symlinks from ZIP archives: let's use bsdtar instead - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libarchive-tools" - fi - ;; - oci8@debian | pdo_oci@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libaio[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unzip" - ;; - odbc@alpine | pdo_odbc@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent unixodbc" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unixodbc-dev" - ;; - odbc@debian | pdo_odbc@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libodbc1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unixodbc-dev" - ;; - openswoole@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent postgresql-libs libstdc++ $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile curl-dev postgresql-dev linux-headers $buildRequiredPackageLists_libssldev" - ;; - openswoole@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libcurl3-gnutls libpq5" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev libcurl4-gnutls-dev libpq-dev" - ;; - parle@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - ;; - pdo_dblib@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent freetds" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - pdo_dblib@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsybdb5" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - pdo_firebird@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev ncurses-dev" - if ! isFirebirdInstalled; then - COMPILE_LIBS="$COMPILE_LIBS firebird" - if test $PHP_MAJMIN_VERSION -ge 804; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev" - if ! isLibTommathInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libtommath" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake" - fi - if ! isLibTomcryptInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libtomcrypt" - fi - fi - fi - ;; - pdo_firebird@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libfbclient2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile firebird-dev libib-util" - ;; - pgsql@alpine | pdo_pgsql@alpine | pq@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent postgresql-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile postgresql-dev" - ;; - pgsql@debian | pdo_pgsql@debian | pq@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libpq5" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libpq-dev" - ;; - php_trie@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - ;; - phpy@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent python3" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile python3-dev" - ;; - phpy@debian) - if test $DISTRO_VERSION_NUMBER -ge 12; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libpython3.11" - elif test $DISTRO_VERSION_NUMBER -ge 11; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libpython3.9" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libpython3.7" - fi - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile python3-dev" - ;; - pkcs11@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent softhsm" - ;; - pkcs11@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsofthsm2" - ;; - pspell@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent aspell-libs $(expandASpellDictionaries)" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile aspell-dev" - ;; - pspell@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libaspell15 $(expandASpellDictionaries)" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libpspell-dev" - ;; - rdkafka@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent librdkafka" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile librdkafka-dev" - ;; - rdkafka@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^librdkafka\+*[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile librdkafka-dev" - ;; - recode@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent recode" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile recode-dev" - ;; - recode@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent librecode0" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile librecode-dev" - ;; - redis@alpine) - if test $PHP_MAJMIN_VERSION -ge 700; then - case "$DISTRO_VERSION" in - alpine@3.7) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent zstd" - ;; - *) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent zstd-libs" - ;; - esac - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zstd-dev" - if test $PHP_MAJMIN_VERSION -ge 702; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lz4-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile lz4-dev" - fi - fi - ;; - redis@debian) - if test $PHP_MAJMIN_VERSION -ge 700; then - case "$DISTRO_VERSION" in - debian@8) - ## There's no APT package for libzstd - ;; - debian@9) - ## libzstd is too old (available: 1.1.2, required: 1.3.0+) - ;; - *) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libzstd[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libzstd-dev" - ;; - esac - fi - if test $PHP_MAJMIN_VERSION -ge 702; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblz4-1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liblz4-dev" - fi - ;; - relay@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lz4-libs zstd-libs" - if test $DISTRO_MAJMIN_VERSION -ge 317; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent $buildRequiredPackageLists_libssl" - fi - ;; - saxon@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_volatile unzip" - ;; - seasclick@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - ;; - simdjson@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - ;; - smbclient@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsmbclient" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile samba-dev" - ;; - smbclient@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsmbclient" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsmbclient-dev" - ;; - snappy@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent snappy" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile snappy-dev" - ;; - snappy@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libsnappy1(v[0-9]+)?$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsnappy-dev" - ;; - snmp@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent net-snmp-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile net-snmp-dev" - ;; - snmp@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent snmp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsnmp-dev" - ;; - snuffleupagus@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent pcre" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile pcre-dev" - ;; - snuffleupagus@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libpcre3-dev" - ;; - soap@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - soap@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - sockets@alpine) - if test $PHP_MAJMIN_VERSION -ge 802; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile linux-headers" - fi - ;; - sodium@alpine | libsodium@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsodium" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsodium-dev" - ;; - sodium@debian | libsodium@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libsodium[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsodium-dev" - ;; - solr@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile curl-dev libxml2-dev" - ;; - solr@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libcurl3-gnutls" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libcurl4-gnutls-dev libxml2-dev" - ;; - sourceguardian@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent eudev-libs" - ;; - spx@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev" - ;; - spx@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev" - ;; - sqlsrv@alpine | pdo_sqlsrv@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++ unixodbc" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unixodbc-dev" - ;; - sqlsrv@debian | pdo_sqlsrv@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent unixodbc" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unixodbc-dev" - if ! isMicrosoftSqlServerODBCInstalled; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile gnupg apt-transport-https" - fi - ;; - ssh2@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libssh2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libssh2-dev" - ;; - ssh2@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libssh2-1-dev" - ;; - stomp@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev" - ;; - stomp@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev" - ;; - swoole@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent postgresql-libs libstdc++ $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile curl-dev postgresql-dev linux-headers $buildRequiredPackageLists_libssldev" - if test $PHP_MAJMIN_VERSION -ge 702; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent c-ares" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile c-ares-dev" - if test $PHP_MAJMIN_VERSION -ge 801; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent zstd-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile sqlite-dev zstd-dev" - fi - fi - case "${IPE_SWOOLE_WITHOUT_IOURING:-}" in - 1 | y* | Y*) ;; - *) - # iouring support in swoole 6 requires liburing 2.5+: available since Alpine 3.19 - # but with Alpine 3.19 we have a "invalid use of incomplete type 'const struct statx'" error - if test $DISTRO_MAJMIN_VERSION -ge 320; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liburing" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liburing-dev" - fi - ;; - esac - ;; - swoole@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libcurl3-gnutls libpq5" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev libcurl4-gnutls-dev libpq-dev" - if test $PHP_MAJMIN_VERSION -ge 702; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libc-ares2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libc-ares-dev" - if test $PHP_MAJMIN_VERSION -ge 800; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libbrotli1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev libbrotli-dev" - if test $PHP_MAJMIN_VERSION -ge 801; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsqlite3-dev" - if test $DISTRO_VERSION_NUMBER -ge 11; then - # swoole 6 requires libzstd >= 1.4.0, but on debian 10 (buster) we have 1.3.8 - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libzstd[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libzstd-dev" - fi - fi - fi - fi - if test $DISTRO_VERSION_NUMBER -ge 13; then - # iouring support in swoole 6 requires liburing 2.5+: available since Debian Trixie (13) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liburing2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liburing-dev" - fi - ;; - sybase_ct@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent freetds" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - sybase_ct@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libct4" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - tdlib@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++ $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile git cmake gperf zlib-dev $buildRequiredPackageLists_libssldev linux-headers readline-dev" - ;; - tdlib@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile git cmake gperf zlib1g-dev $buildRequiredPackageLists_libssldev" - ;; - tensor@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent openblas" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile lapack-dev openblas-dev" - if test $DISTRO_MAJMIN_VERSION -le 317; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lapack" - if test $DISTRO_MAJMIN_VERSION -le 316; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libexecinfo" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libexecinfo-dev" - if test $DISTRO_MAJMIN_VERSION -le 310; then - if ! stringInList --force-overwrite "$IPE_APK_FLAGS"; then - IPE_APK_FLAGS="$IPE_APK_FLAGS --force-overwrite" - fi - fi - fi - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblapack" - fi - ;; - tensor@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblapacke" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liblapack-dev libopenblas-dev liblapacke-dev" - if test $DISTRO_VERSION_NUMBER -le 9; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-6 libopenblas-base" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-6-dev" - elif test $DISTRO_VERSION_NUMBER -le 10; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-8 libopenblas-base" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-8-dev" - elif test $DISTRO_VERSION_NUMBER -le 11; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-10 libopenblas-base" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-10-dev" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-12 libopenblas0" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-12-dev" - fi - ;; - tidy@alpine) - if test $DISTRO_MAJMIN_VERSION -ge 315; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent tidyhtml" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent tidyhtml-libs" - fi - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile tidyhtml-dev" - ;; - tidy@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libtidy-?[0-9][0-9.\-]*(deb[0-9])?$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libtidy-dev" - ;; - uuid@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libuuid" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile util-linux-dev" - ;; - uuid@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile uuid-dev" - ;; - uv@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libuv" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libuv-dev" - ;; - uv@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libuv1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libuv1-dev" - ;; - vips@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent vips" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile vips-dev" - ;; - vips@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libvips" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libvips-dev" - ;; - wddx@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - wddx@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - wikidiff2@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile git" - ;; - wikidiff2@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libthai0" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile git libthai-dev" - ;; - xdebug@alpine) - if test $PHP_MAJMIN_VERSION -ge 800; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile linux-headers" - fi - ;; - xlswriter@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev" - ;; - xlswriter@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev" - ;; - xmldiff@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - xmldiff@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - xmlrpc@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - xmlrpc@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - xpass@alpine) - if ! isLibXCryptInstalled; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile linux-headers" - COMPILE_LIBS="$COMPILE_LIBS libxcrypt" - fi - ;; - xsl@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libxslt" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxslt-dev libgcrypt-dev" - ;; - xsl@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libxslt1\.1$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxslt-dev" - ;; - yaml@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent yaml" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile yaml-dev" - ;; - yaml@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libyaml-0-2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libyaml-dev" - ;; - yar@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile curl-dev" - ;; - yar@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libcurl3-gnutls" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libcurl4-gnutls-dev" - ;; - zip@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libzip" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake gnutls-dev libzip-dev $buildRequiredPackageLists_libssldev zlib-dev" - ;; - zip@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libzip[0-9]$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake gnutls-dev $buildRequiredPackageLists_libssldev libzip-dev libbz2-dev zlib1g-dev" - case "$DISTRO_VERSION" in - debian@8) - # Debian Jessie doesn't seem to provide libmbedtls - ;; - *) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libmbedtls[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmbedtls-dev" - ;; - esac - ;; - zmq@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent zeromq-dev" - ;; - zmq@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libzmq3-dev" - ;; - zookeeper@alpine) - if ! test -f /usr/local/include/zookeeper/zookeeper.h; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile maven automake libtool openjdk8" - fi - ;; - zookeeper@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libzookeeper-mt2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libzookeeper-mt-dev" - ;; - esac - shift - done - PACKAGES_PERSISTENT_NEW='' - PACKAGES_PERSISTENT_PRE='' - PACKAGES_VOLATILE='' - PACKAGES_PREVIOUS='' - if test -z "$buildRequiredPackageLists_persistent$buildRequiredPackageLists_volatile"; then - return - fi - if test -n "$buildRequiredPackageLists_persistent"; then - PACKAGES_PERSISTENT_NEW="$(expandPackagesToBeInstalled $buildRequiredPackageLists_persistent)" - if test -s "$IPE_ERRFLAG_FILE"; then - exit 1 - fi - resetIFS - for buildRequiredPackageLists_package in $buildRequiredPackageLists_persistent; do - buildRequiredPackageLists_package="$(expandInstalledSystemPackageName "$buildRequiredPackageLists_package")" - if test -n "$buildRequiredPackageLists_package"; then - PACKAGES_PERSISTENT_PRE="$PACKAGES_PERSISTENT_PRE $buildRequiredPackageLists_package" - fi - done - PACKAGES_PERSISTENT_PRE="${PACKAGES_PERSISTENT_PRE# }" - fi - if test -n "$buildRequiredPackageLists_volatile"; then - buildRequiredPackageLists_packages="$(expandPackagesToBeInstalled $buildRequiredPackageLists_volatile)" - if test -s "$IPE_ERRFLAG_FILE"; then - exit 1 - fi - resetIFS - for buildRequiredPackageLists_package in $buildRequiredPackageLists_packages; do - if ! stringInList "$buildRequiredPackageLists_package" "$PACKAGES_PERSISTENT_NEW"; then - if test "$buildRequiredPackageLists_package" != icu-data-en || ! stringInList icu-data-full "$PACKAGES_PERSISTENT_NEW"; then - PACKAGES_VOLATILE="$PACKAGES_VOLATILE $buildRequiredPackageLists_package" - fi - fi - done - PACKAGES_VOLATILE="${PACKAGES_VOLATILE# }" - fi - if test -n "$PACKAGES_PERSISTENT_NEW$PACKAGES_VOLATILE"; then - case "$DISTRO" in - debian) - PACKAGES_PREVIOUS="$(dpkg --get-selections | grep -E '\sinstall$' | awk '{ print $1 }')" - ;; - esac - fi -} - -# Get the full list of APT/APK packages that will be installed, given the required packages -# -# Arguments: -# $1: the list of required APT/APK packages -# -# Output: -# Space-separated list of every APT/APK packages that will be installed -expandPackagesToBeInstalled() { - expandPackagesToBeInstalled_result='' - case "$DISTRO" in - alpine) - expandPackagesToBeInstalled_log="$(apk add --simulate $@ 2>&1 || printf '\nERROR: apk failed\n')" - if test -n "$(printf '%s' "$expandPackagesToBeInstalled_log" | grep -E '^ERROR:')"; then - printf 'FAILED TO LIST THE WHOLE PACKAGE LIST FOR\n' >&2 - printf '%s ' "$@" >&2 - printf '\n\nCOMMAND OUTPUT:\n%s\n' "$expandPackagesToBeInstalled_log" >&2 - echo 'y' >"$IPE_ERRFLAG_FILE" - exit 1 - fi - IFS=' -' - for expandPackagesToBeInstalled_line in $expandPackagesToBeInstalled_log; do - if test -n "$(printf '%s' "$expandPackagesToBeInstalled_line" | grep -E '^\([0-9]*/[0-9]*) Installing ')"; then - expandPackagesToBeInstalled_result="$expandPackagesToBeInstalled_result $(printf '%s' "$expandPackagesToBeInstalled_line" | cut -d ' ' -f 3)" - fi - done - resetIFS - ;; - debian) - expandPackagesToBeInstalled_log="$(apt-get install -sy --no-install-recommends $@ 2>&1 || printf '\nE: apt-get failed\n')" - if test -n "$(printf '%s' "$expandPackagesToBeInstalled_log" | grep -E '^E:')"; then - printf 'FAILED TO LIST THE WHOLE PACKAGE LIST FOR\n' >&2 - printf '%s ' "$@" >&2 - printf '\n\nCOMMAND OUTPUT:\n%s\n' "$expandPackagesToBeInstalled_log" >&2 - echo 'y' >"$IPE_ERRFLAG_FILE" - exit 1 - fi - expandPackagesToBeInstalled_inNewPackages=0 - IFS=' -' - for expandPackagesToBeInstalled_line in $expandPackagesToBeInstalled_log; do - if test $expandPackagesToBeInstalled_inNewPackages -eq 0; then - if test "$expandPackagesToBeInstalled_line" = 'The following NEW packages will be installed:'; then - expandPackagesToBeInstalled_inNewPackages=1 - fi - elif test "$expandPackagesToBeInstalled_line" = "${expandPackagesToBeInstalled_line# }"; then - break - else - resetIFS - for expandPackagesToBeInstalled_newPackage in $expandPackagesToBeInstalled_line; do - expandPackagesToBeInstalled_result="$expandPackagesToBeInstalled_result $expandPackagesToBeInstalled_newPackage" - done - IFS=' -' - fi - done - resetIFS - ;; - esac - printf '%s' "${expandPackagesToBeInstalled_result# }" -} - -# Check if a system package is installed; if so we prints its name. -# -# Arguments: -# $1: the name of the package to be checked (regular expressions accepted: they must start with a ^) -expandInstalledSystemPackageName() { - if test "$1" = "${1#^}"; then - expandInstalledSystemPackageName_grepflags='-Fx' - else - expandInstalledSystemPackageName_grepflags='-E' - fi - case "$DISTRO" in - alpine) - apk info | grep $expandInstalledSystemPackageName_grepflags -- "$1" || test $? -eq 1 - ;; - debian) - dpkg --get-selections | grep -E '\sinstall$' | awk '{ print $1 }' | cut -d: -f1 | grep $expandInstalledSystemPackageName_grepflags -- "$1" || test $? -eq 1 - ;; - esac -} - -# Retrieve the number of available cores (alternative to nproc if not available) -# -# Output: -# The number of processor cores available -getProcessorCount() { - if test -n "${IPE_PROCESSOR_COUNT:-}"; then - echo $IPE_PROCESSOR_COUNT - return - fi - if command -v nproc >/dev/null 2>&1; then - nproc - else - getProcessorCount_tmp=$(cat /proc/cpuinfo | grep -E '^processor\s*:\s*\d+$' | wc -l) - if test $getProcessorCount_tmp -ge 1; then - echo $getProcessorCount_tmp - else - echo 1 - fi - fi -} - -# Set these variables: -# - TARGET_TRIPLET the build target tripled (eg 'x86_64-linux-gnu', 'x86_64-alpine-linux-musl') -setTargetTriplet() { - TARGET_TRIPLET="$(gcc -print-multiarch 2>/dev/null || true)" - if test -z "$TARGET_TRIPLET"; then - TARGET_TRIPLET="$(gcc -dumpmachine)" - fi -} - -# Retrieve the number of processors to be used when compiling an extension -# -# Arguments: -# $1: the handle of the PHP extension to be compiled -# Output: -# The number of processors to be used -getCompilationProcessorCount() { - case "$1" in - '') - # The above extensions don't support parallel compilation - echo 1 - ;; - *) - # All the other extensions support parallel compilation - getProcessorCount - ;; - esac -} - -# Get the full path of a PHP extension given its name. -# -# Arguments: -# $1: the name of the PHP extension -# -# Output: -# The absolute path of the PHP extension file (or nothing if the file can't be found) -getModuleFullPath() { - case "$1" in - apcu_bc) - getModuleFullPath_path="$PHP_EXTDIR/apc.so" - ;; - seasclick) - getModuleFullPath_path="$PHP_EXTDIR/SeasClick.so" - ;; - *) - getModuleFullPath_path="$PHP_EXTDIR/$1.so" - ;; - esac - if ! test -f "$getModuleFullPath_path"; then - printf 'Unable to find the file of the PHP extension "%s"\n' "$1" >&2 - exit 1 - fi - printf '%s' "$getModuleFullPath_path" -} - -# Post-process a PHP module just compiled and installed in the PHP extension directory -# -# Arguments: -# $1: the name of the PHP extension -# -# Return: -# 0 (true): if suceeded -# non-zero (false): in case of errors -postProcessModule() { - postProcessModule_file="$(getModuleFullPath "$1")" - if test $PHP_DEBUGBUILD -ne 1; then - printf 'Removing symbols from %s... ' "$postProcessModule_file" - postProcessModule_preSize="$(stat -c %s "$postProcessModule_file")" - strip --strip-all "$postProcessModule_file" - postProcessModule_postSize="$(stat -c %s "$postProcessModule_file")" - printf 'done (%s bytes saved).\n' "$((postProcessModule_preSize - postProcessModule_postSize))" - fi - return $? -} - -# Get the type of the php.ini entry to be used for a PHP extension -# -# Arguments: -# $1: the name of the PHP extension -# -# Output: -# zend_extension or extension -getModuleIniEntryType() { - case "$1" in - ioncube_loader | sourceguardian) - # On PHP 5.5, docker-php-ext-enable fails to detect that ionCube Loader and sourceguardian are Zend extensions - if test $PHP_MAJMIN_VERSION -le 505; then - printf 'zend_extension' - return 0 - fi - ;; - esac - getModuleIniEntryType_file="$(getModuleFullPath "$1")" - if readelf --wide --syms "$getModuleIniEntryType_file" | grep -Eq ' zend_extension_entry$'; then - printf 'zend_extension' - else - printf 'extension' - fi -} - -# Create the contents of a PHP ini file that enables an extension -# -# Arguments: -# $1: the name of the PHP extension -# $2: additional php.ini configuration (optional) -# -# Output: -# The contents of the ini file -buildPhpExtensionIniContent() { - buildPhpExtensionIniContent_type="$(getModuleIniEntryType "$1")" - buildPhpExtensionIniContent_soFile="$(getModuleFullPath "$1")" - buildPhpExtensionIniContent_result="$(printf '%s=%s' "$buildPhpExtensionIniContent_type" "${buildPhpExtensionIniContent_soFile##$PHP_EXTDIR/}")" - if test -n "${2:-}"; then - buildPhpExtensionIniContent_result="$(printf '%s\n%s' "$buildPhpExtensionIniContent_result" "$2")" - fi - printf '%s' "$buildPhpExtensionIniContent_result" -} - -# Check that a PHP module actually works (better to run this check before enabling the extension) -# -# Arguments: -# $1: the name of the PHP extension -# $2: base name (without path and extension) of additional php.ini configuration (optional) -# $3: additional php.ini configuration (optional) -# -# Return: -# 0 (true): if the string is in the list -# 1 (false): if the string is not in the list -checkModuleWorking() { - if test -n "${2:-}"; then - checkModuleWorking_iniFile="$PHP_INI_DIR/conf.d/$2--temp.ini" - else - checkModuleWorking_iniFile="$PHP_INI_DIR/conf.d/docker-php-ext-$1--temp.ini" - fi - checkModuleWorking_iniContent="$(buildPhpExtensionIniContent "$1" "${3:-}")" - printf 'Check if the %s module can be loaded... ' "$1" - checkModuleWorking_errBefore="$(php -r 'return;' 2>&1 || true)" - printf '%s' "$checkModuleWorking_iniContent" >"$checkModuleWorking_iniFile" - checkModuleWorking_errAfter="$(php -r 'return;' 2>&1 || true)" - rm "$checkModuleWorking_iniFile" - if test "$checkModuleWorking_errAfter" != "$checkModuleWorking_errBefore"; then - printf 'Error loading the "%s" extension:\n%s\n' "$1" "$checkModuleWorking_errAfter" >&2 - return 1 - fi - printf 'ok.\n' - return 0 -} - -# Enable a PHP extension -# -# Arguments: -# $1: the name of the PHP extension to be enabled -# $2: base name (without path and extension) of additional php.ini configuration (optional) -# $3: additional php.ini configuration (optional) -enablePhpExtension() { - if test -n "${2:-}"; then - enablePhpExtension_iniFile="$PHP_INI_DIR/conf.d/$2.ini" - else - enablePhpExtension_iniFile="$PHP_INI_DIR/conf.d/docker-php-ext-$1.ini" - fi - enablePhpExtension_iniContent="$(buildPhpExtensionIniContent "$1" "${3:-}")" - case "${IPE_DONT_ENABLE:-}" in - 1 | y* | Y*) - enablePhpExtension_enableCommand="/usr/local/bin/docker-php-ext-enable-$1" - printf '%s' "$enablePhpExtension_iniContent" >"$enablePhpExtension_iniFile-disabled" - printf '\n' >>"$enablePhpExtension_iniFile-disabled" - cat <"$enablePhpExtension_enableCommand" -#!/bin/sh - -if test -f '$enablePhpExtension_iniFile-disabled'; then - echo 'Enabling extension $1' - mv '$enablePhpExtension_iniFile-disabled' '$enablePhpExtension_iniFile' -else - echo 'The extension $1 has already been enabled' -fi -EOT - chmod +x "$enablePhpExtension_enableCommand" - printf '## Extension %s not enabled.\nYou can enable it by running the following command:\n%s\n\n' "$1" "$(basename "$enablePhpExtension_enableCommand")" - ;; - *) - printf '%s' "$enablePhpExtension_iniContent" >"$enablePhpExtension_iniFile" - printf '\n' >>"$enablePhpExtension_iniFile" - ;; - esac -} - -# Mark the pre-installed APT/APK packages as used -# that way they won't be uninstalled by accident -markPreinstalledPackagesAsUsed() { - printf '### MARKING PRE-INSTALLED PACKAGES AS IN-USE ###\n' - case "$DISTRO" in - alpine) - printf '# Packages: %s\n' "$PACKAGES_PERSISTENT_PRE" - apk add $PACKAGES_PERSISTENT_PRE - ;; - debian) - apt-mark manual $PACKAGES_PERSISTENT_PRE - ;; - esac -} - -# Install the required APT/APK packages -# -# Arguments: -# $@: the list of APT/APK packages to be installed -installRequiredPackages() { - printf '### INSTALLING REQUIRED PACKAGES ###\n' - printf '# Packages to be kept after installation: %s\n' "$PACKAGES_PERSISTENT_NEW" - printf '# Packages to be used only for installation: %s\n' "$PACKAGES_VOLATILE" - case "$DISTRO" in - alpine) - apk add $IPE_APK_FLAGS $PACKAGES_PERSISTENT_NEW $PACKAGES_VOLATILE - # https://gitlab.alpinelinux.org/alpine/aports/-/issues/12763#note_172090 - # https://github.com/mlocati/docker-php-extension-installer/issues/385 - # https://github.com/mlocati/docker-php-extension-installer/issues/537#issuecomment-1078748882 - for installRequiredPackages_item in wget; do - if test -n "$(expandInstalledSystemPackageName "$installRequiredPackages_item")"; then - apk add --upgrade "$installRequiredPackages_item" - fi - done - ;; - debian) - apt-get install -qqy --no-install-recommends $PACKAGES_PERSISTENT_NEW $PACKAGES_VOLATILE - ;; - esac -} - -# Get the version of an installed APT/APK package -# -# Arguments: -# $1: the name of the installed package -# -# Output: -# The numeric part of the package version, with from 1 to 3 numbers -# -# Example: -# 1 -# 1.2 -# 1.2.3 -getInstalledPackageVersion() { - case "$DISTRO" in - alpine) - apk info "$1" | head -n1 | cut -c $((${#1} + 2))- | grep -o -E '^[0-9]+(\.[0-9]+){0,2}' - ;; - debian) - dpkg-query --showformat='${Version}' --show "$1" 2>/dev/null | grep -o -E '^[0-9]+(\.[0-9]+){0,2}' - ;; - esac -} - -# Compare two versions -# -# Arguments: -# $1: the first version -# $2: the second version -# -# Output -# -1 if $1 is less than $2 -# 0 if $1 is the same as $2 -# 1 if $1 is greater than $2 -compareVersions() { - compareVersions_v1="$1.0.0" - compareVersions_v2="$2.0.0" - compareVersions_vMin="$(printf '%s\n%s' "$compareVersions_v1" "$compareVersions_v2" | sort -t '.' -n -k1,1 -k2,2 -k3,3 | head -n 1)" - if test "$compareVersions_vMin" != "$compareVersions_v1"; then - echo '1' - elif test "$compareVersions_vMin" = "$compareVersions_v2"; then - echo '0' - else - echo '-1' - fi -} - -# Install Oracle Instant Client & SDK -# -# Set: -# ORACLE_INSTANTCLIENT_LIBPATH -installOracleInstantClient() { - case "${IPE_INSTANTCLIENT_BASIC:-}" in - 1 | y* | Y*) - installOracleInstantClient_handle=basic - ;; - *) - installOracleInstantClient_handle=basiclite - ;; - esac - case $PHP_BITS in - 32) - installOracleInstantClient_client=client - installOracleInstantClient_version='19.9' - installOracleInstantClient_ic=https://download.oracle.com/otn_software/linux/instantclient/199000/instantclient-$installOracleInstantClient_handle-linux-$installOracleInstantClient_version.0.0.0dbru.zip - installOracleInstantClient_sdk=https://download.oracle.com/otn_software/linux/instantclient/199000/instantclient-sdk-linux-$installOracleInstantClient_version.0.0.0dbru.zip - ;; - *) - case $(uname -m) in - aarch64*) - installOracleInstantClient_client=client64 - installOracleInstantClient_version='19.10' - installOracleInstantClient_ic=https://download.oracle.com/otn_software/linux/instantclient/191000/instantclient-$installOracleInstantClient_handle-linux.arm64-$installOracleInstantClient_version.0.0.0dbru.zip - installOracleInstantClient_sdk=https://download.oracle.com/otn_software/linux/instantclient/191000/instantclient-sdk-linux.arm64-$installOracleInstantClient_version.0.0.0dbru.zip - ;; - *) - installOracleInstantClient_client=client64 - installOracleInstantClient_version='21.1' - installOracleInstantClient_ic=https://download.oracle.com/otn_software/linux/instantclient/211000/instantclient-$installOracleInstantClient_handle-linux.x64-$installOracleInstantClient_version.0.0.0.zip - installOracleInstantClient_sdk=https://download.oracle.com/otn_software/linux/instantclient/211000/instantclient-sdk-linux.x64-$installOracleInstantClient_version.0.0.0.zip - ;; - esac - ;; - esac - ORACLE_INSTANTCLIENT_LIBPATH=/usr/lib/oracle/$installOracleInstantClient_version/$installOracleInstantClient_client/lib - if ! test -e "$ORACLE_INSTANTCLIENT_LIBPATH"; then - printf 'Downloading Oracle Instant Client v%s (%s)... ' "$installOracleInstantClient_version" "$installOracleInstantClient_handle" - installOracleInstantClient_src="$(getPackageSource $installOracleInstantClient_ic)" - mkdir -p "/usr/lib/oracle/$installOracleInstantClient_version/$installOracleInstantClient_client" - mv "$installOracleInstantClient_src" "$ORACLE_INSTANTCLIENT_LIBPATH" - echo 'done.' - fi - if ! test -e "$ORACLE_INSTANTCLIENT_LIBPATH/sdk" && ! test -L "$ORACLE_INSTANTCLIENT_LIBPATH/sdk"; then - printf 'Downloading Oracle Instant SDK v%s... ' "$installOracleInstantClient_version" - installOracleInstantClient_src="$(getPackageSource $installOracleInstantClient_sdk)" - ln -sf "$installOracleInstantClient_src/sdk" "$ORACLE_INSTANTCLIENT_LIBPATH/sdk" - UNNEEDED_PACKAGE_LINKS="$UNNEEDED_PACKAGE_LINKS $ORACLE_INSTANTCLIENT_LIBPATH/sdk" - echo 'done.' - fi - case "$DISTRO" in - alpine) - if ! test -e /usr/lib/libresolv.so.2 && test -e /lib/libc.so.6; then - ln -s /lib/libc.so.6 /usr/lib/libresolv.so.2 - fi - installOracleInstantClient_ldconf=/etc/ld-musl-${TARGET_TRIPLET%-alpine-linux-musl}.path - if test -e "$installOracleInstantClient_ldconf"; then - if ! cat "$installOracleInstantClient_ldconf" | grep -q "$ORACLE_INSTANTCLIENT_LIBPATH"; then - cat "$ORACLE_INSTANTCLIENT_LIBPATH" | awk -v suffix=":$ORACLE_INSTANTCLIENT_LIBPATH" '{print NR==1 ? $0suffix : $0}' >"$ORACLE_INSTANTCLIENT_LIBPATH" - fi - else - case $PHP_BITS in - 32) - echo "/lib:/usr/local/lib:/usr/lib:$ORACLE_INSTANTCLIENT_LIBPATH" >"$installOracleInstantClient_ldconf" - ;; - *) - echo "/lib64:/lib:/usr/local/lib:/usr/lib:$ORACLE_INSTANTCLIENT_LIBPATH" >"$installOracleInstantClient_ldconf" - ;; - esac - fi - ;; - debian) - if ! test -e /etc/ld.so.conf.d/oracle-instantclient.conf; then - echo "$ORACLE_INSTANTCLIENT_LIBPATH" >/etc/ld.so.conf.d/oracle-instantclient.conf - ldconfig - fi - ;; - esac -} - -# Check if the Microsoft SQL Server ODBC Driver is installed -# -# Return: -# 0 (true): if the string is in the list -# 1 (false): if the string is not in the list -isMicrosoftSqlServerODBCInstalled() { - test -d /opt/microsoft/msodbcsql*/ -} - -# Install the Microsoft SQL Server ODBC Driver -# see https://learn.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server -installMicrosoftSqlServerODBC() { - printf 'Installing the Microsoft SQL Server ODBC Driver\n' - case "$DISTRO" in - alpine) - rm -rf /tmp/src/msodbcsql.apk - if test $PHP_MAJMIN_VERSION -le 703; then - curl -sSLf -o /tmp/src/msodbcsql.apk https://download.microsoft.com/download/e/4/e/e4e67866-dffd-428c-aac7-8d28ddafb39b/msodbcsql17_17.10.6.1-1_amd64.apk - else - case $(uname -m) in - aarch64 | arm64 | armv8) - installMicrosoftSqlServerODBC_arch=arm64 - ;; - *) - installMicrosoftSqlServerODBC_arch=amd64 - ;; - esac - curl -sSLf -o /tmp/src/msodbcsql.apk https://download.microsoft.com/download/3/5/5/355d7943-a338-41a7-858d-53b259ea33f5/msodbcsql18_18.3.3.1-1_$installMicrosoftSqlServerODBC_arch.apk - fi - printf '\n' | apk add --allow-untrusted /tmp/src/msodbcsql.apk - rm -rf /tmp/src/msodbcsql.apk - ;; - debian) - printf -- '- installing the Microsoft APT key\n' - if test $DISTRO_VERSION_NUMBER -eq 11; then - curl -sSLf -o /etc/apt/trusted.gpg.d/microsoft.asc https://packages.microsoft.com/keys/microsoft.asc - elif test $DISTRO_VERSION_NUMBER -ge 12; then - curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor --yes --output /usr/share/keyrings/microsoft-prod.gpg - else - # apt-key is deprecated - curl -sSLf https://packages.microsoft.com/keys/microsoft.asc | apt-key add - - fi - if ! test -f /etc/apt/sources.list.d/mssql-release.list; then - printf -- '- adding the Microsoft APT source list\n' - curl -sSLf https://packages.microsoft.com/config/debian/$DISTRO_VERSION_NUMBER/prod.list >/etc/apt/sources.list.d/mssql-release.list - invokeAptGetUpdate - fi - printf -- '- installing the APT package\n' - if test $PHP_MAJMIN_VERSION -le 703; then - ACCEPT_EULA=Y apt-get install -qqy --no-install-recommends msodbcsql17 - elif test $DISTRO_VERSION_NUMBER -ge 9 && test $DISTRO_VERSION_NUMBER -le 12; then - # On Debian 9 to 12 we have both msodbcsql17 and msodbcsql18: let's install just one - ACCEPT_EULA=Y apt-get install -qqy --no-install-recommends msodbcsql18 - else - ACCEPT_EULA=Y apt-get install -qqy --no-install-recommends '^msodbcsql[0-9]+$' - fi - ;; - esac -} - -# Check if libaom is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibaomInstalled() { - if ! test -f /usr/local/lib/libaom.so && ! test -f /usr/lib/libaom.so && ! test -f /usr/lib/x86_64*/libaom.so; then - return 1 - fi - if ! test -f /usr/local/include/aom/aom_codec.h && ! test -f /usr/include/aom/aom_codec.h; then - return 1 - fi - return 0 -} - -# Install libaom -installLibaom() { - printf 'Installing libaom\n' - installLibaom_version=3.10.0 - installLibaom_dir="$(getPackageSource https://aomedia.googlesource.com/aom/+archive/v$installLibaom_version.tar.gz)" - mkdir -- "$installLibaom_dir/my.build" - cd -- "$installLibaom_dir/my.build" - cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=1 -DENABLE_DOCS=0 -DENABLE_EXAMPLES=0 -DENABLE_TESTDATA=0 -DENABLE_TESTS=0 -DENABLE_TOOLS=0 -DCMAKE_INSTALL_LIBDIR:PATH=lib .. - ninja -j $(getProcessorCount) install - cd - >/dev/null - ldconfig || true -} - -# Check if libdav1d is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibdav1dInstalled() { - if ! test -f /usr/local/lib/libdav1d.so && ! test -f /usr/lib/libdav1d.so && ! test -f /usr/lib/x86_64*/libdav1d.so; then - return 1 - fi - if ! test -f /usr/local/include/dav1d/dav1d.h && ! test -f /usr/include/dav1d/dav1d.h; then - return 1 - fi - return 0 -} - -# Install libdav1d -installLibdav1d() { - printf 'Installing libdav1d\n' - installLibdav1d_dir="$(getPackageSource https://github.com/videolan/dav1d/archive/refs/tags/1.3.0.tar.gz)" - mkdir -- "$installLibdav1d_dir/build" - cd -- "$installLibdav1d_dir/build" - meson --buildtype release -Dprefix=/usr .. - ninja -j $(getProcessorCount) install - cd - >/dev/null - if test -f /usr/lib/$TARGET_TRIPLET/libdav1d.so && ! test -f /usr/lib/libdav1d.so; then - ln -s /usr/lib/$TARGET_TRIPLET/libdav1d.so /usr/lib/ - fi - ldconfig || true -} - -# Check if libyuv is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibyuvInstalled() { - if ! test -f /usr/local/lib/libyuv.so && ! test -f /usr/lib/libyuv.so && ! test -f /usr/lib/x86_64*/libyuv.so && ! test -f /usr/lib/x86_64*/libyuv.so.*; then - return 1 - fi - if ! test -f /usr/local/include/libyuv.h && ! test -f /usr/include/libyuv.h; then - return 1 - fi - return 0 -} - -# Install libyuv -installLibyuv() { - printf 'Installing libyuv\n' - installLibyuv_dir="$(getPackageSource https://chromium.googlesource.com/libyuv/libyuv/+archive/d359a9f922af840b043535d43cf9d38b220d102e.tar.gz)" - mkdir -- "$installLibyuv_dir/build" - cd -- "$installLibyuv_dir/build" - cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr -B. .. - make -j$(getProcessorCount) install - cd - >/dev/null -} - -# Check if libavif is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibavifInstalled() { - if ! test -f /usr/local/lib/libavif.so && ! test -f /usr/lib/libavif.so && ! test -f /usr/lib/x86_64*/libavif.so; then - return 1 - fi - if ! test -f /usr/local/include/avif/avif.h && ! test -f /usr/include/avif/avif.h; then - return 1 - fi - return 0 -} - -# Install libavif -installLibavif() { - printf 'Installing libavif\n' - installLibavif_dir="$(getPackageSource https://codeload.github.com/AOMediaCodec/libavif/tar.gz/refs/tags/v1.0.3)" - mkdir -- "$installLibavif_dir/build" - cd -- "$installLibavif_dir/build" - cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON -DAVIF_CODEC_AOM=ON -DCMAKE_INSTALL_LIBDIR:PATH=lib - make -j$(getProcessorCount) install - cd - >/dev/null -} - -# Install libmpdec -installLibMPDec() { - installLibMPDec_src="$(getPackageSource https://www.bytereef.org/software/mpdecimal/releases/mpdecimal-2.5.1.tar.gz)" - cd -- "$installLibMPDec_src" - ./configure --disable-cxx - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -# Check if libdatrie is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibDatrieInstalled() { - if ! test -f /usr/local/lib/libdatrie.so && ! test -f /usr/lib/libdatrie.so && ! test -f /usr/lib/x86_64*/libdatrie.so; then - return 1 - fi - if ! test -f /usr/local/include/datrie/trie.h && ! test -f /usr/include/datrie/trie.h; then - return 1 - fi - return 0 -} - -# Install libdatrie -installLibDatrie() { - printf 'Installing libdatrie\n' - installLibDatrie_src="$(getPackageSource https://github.com/tlwg/libdatrie/releases/download/v0.2.13/libdatrie-0.2.13.tar.xz)" - cd -- "$installLibDatrie_src" - ./configure - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -# Check if libdatrie is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibThaiInstalled() { - return 1 - if ! test -f /usr/local/lib/libthai.so && ! test -f /usr/lib/libthai.so && ! test -f /usr/lib/x86_64*/libthai.so; then - return 1 - fi - if ! test -f /usr/local/include/thai/thailib.h && ! test -f /usr/include/thai/thailib.h; then - return 1 - fi - return 0 -} - -# Install libdatrie -installLibThai() { - printf 'Installing libthai\n' - installLibThai_src="$(getPackageSource https://github.com/tlwg/libthai/releases/download/v0.1.29/libthai-0.1.29.tar.xz)" - cd -- "$installLibThai_src" - ./configure - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -isLibTommathInstalled() { - if test -f /usr/local/lib/libtommath.a && test -f /usr/local/include/tommath.h; then - return 0 - fi - return 1 -} - -installLibTommath() { - printf 'Installing libtommath\n' - installLibTommath_src="$(getPackageSource https://github.com/libtom/libtommath/releases/download/v1.3.0/ltm-1.3.0.tar.xz)" - mkdir -p "$installLibTommath_src/build" - cd -- "$installLibTommath_src/build" - CFLAGS='-fPIC' cmake -DCMAKE_BUILD_TYPE=Release .. - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -isLibTomcryptInstalled() { - if test -f /usr/local/lib/libtomcrypt.a && test -f /usr/local/include/tomcrypt.h; then - return 0 - fi - return 1 -} - -installLibTomcrypt() { - printf 'Installing libtomcrypt\n' - installLibTomcrypt_src="$(getPackageSource https://github.com/libtom/libtomcrypt/releases/download/v1.18.2/crypt-1.18.2.tar.xz)" - cd -- "$installLibTomcrypt_src" - CFLAGS='-fPIC' make -j$(getProcessorCount) - make install -} - -isFirebirdInstalled() { - if test -f /usr/lib/libfbclient.so && test -f /usr/include/ibase.h; then - return 0 - fi - if test -d /tmp/src/firebird; then - return 0 - fi - return 1 -} - -installFirebird() { - printf 'Installing firebird\n' - if test $PHP_MAJMIN_VERSION -ge 804; then - installFirebird_src="$(getPackageSource https://github.com/FirebirdSQL/firebird/releases/download/v5.0.2/Firebird-5.0.2.1613-0-source.tar.xz)" - cd -- "$installFirebird_src" - ./configure --enable-client-only - make -j$(getProcessorCount) - cp -Rd gen/Release/firebird/include/* /usr/include - cp -Rd gen/Release/firebird/lib/* /usr/lib - cd - >/dev/null - else - mv "$(getPackageSource https://github.com/FirebirdSQL/firebird/releases/download/R2_5_9/Firebird-2.5.9.27139-0.tar.bz2)" /tmp/src/firebird - cd /tmp/src/firebird - # Patch rwlock.h (this has been fixed in later release of firebird 3.x) - sed -i '194s/.*/#if 0/' src/common/classes/rwlock.h - ./configure --with-system-icu - # -j option can't be used: make targets must be compiled sequentially - make -s btyacc_binary gpre_boot libfbstatic libfbclient - cp gen/firebird/lib/libfbclient.so /usr/lib/ - ln -s /usr/lib/libfbclient.so /usr/lib/libfbclient.so.2 - cd - >/dev/null - fi -} - -isLibXCryptInstalled() { - if ! test -f /usr/local/lib/libcrypt.so && ! test -f /usr/lib/libcrypt.so && ! test -f /usr/lib/x86_64*/libcrypt.so; then - return 1 - fi - return 0 -} - -installLibXCrypt() { - printf 'Installing libxcrypt\n' - installLibXCrypt_version=4.4.36 - installLibXCrypt_src="$(getPackageSource "https://github.com/besser82/libxcrypt/releases/download/v$installLibXCrypt_version/libxcrypt-$installLibXCrypt_version.tar.xz")" - cd -- "$installLibXCrypt_src" - ./configure --prefix /usr - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -isLibenchant1Installed() { - if test -f /usr/lib/libenchant.so || test -f /usr/local/lib/libenchant.so; then - return 0 - fi - return 1 -} - -installLibenchant1() { - printf 'Installing libenchant1\n' - installLibenchant1_src="$(getPackageSource https://github.com/rrthomas/enchant/releases/download/enchant-1-6-1/enchant-1.6.1.tar.gz)" - cd -- "$installLibenchant1_src" - ./configure - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -# Install Composer -installComposer() { - installComposer_version="$(getWantedPHPModuleVersion @composer)" - installComposer_version="${installComposer_version#^}" - if test -z "$installComposer_version"; then - installComposer_fullname=composer - installComposer_flags='' - else - installComposer_fullname="$(printf 'composer v%s' "$installComposer_version")" - if printf '%s' "$installComposer_version" | grep -Eq '^[0-9]+$'; then - installComposer_flags="--$installComposer_version" - else - installComposer_flags="--version=$installComposer_version" - fi - fi - printf '### INSTALLING %s ###\n' "$installComposer_fullname" - actuallyInstallComposer /usr/local/bin composer "$installComposer_flags" -} - -# Actually install composer -# -# Arguments: -# $1: the directory where composer should be installed (required) -# $2: the composer filename (optional, default: composer) -# $3. additional flags for the composer installed (optional) -actuallyInstallComposer() { - actuallyInstallComposer_installer="$(mktemp -p /tmp/src)" - curl -sSLf -o "$actuallyInstallComposer_installer" https://getcomposer.org/installer - actuallyInstallComposer_expectedSignature="$(curl -sSLf https://composer.github.io/installer.sig)" - actuallyInstallComposer_actualSignature="$(php -n -r "echo hash_file('sha384', '$actuallyInstallComposer_installer');")" - if test "$actuallyInstallComposer_expectedSignature" != "$actuallyInstallComposer_actualSignature"; then - printf 'Verification of composer installer failed!\nExpected signature: %s\nActual signature: %s\n' "$actuallyInstallComposer_expectedSignature" "$actuallyInstallComposer_actualSignature" >&2 - exit 1 - fi - actuallyInstallComposer_flags="--install-dir=$1" - if test -n "${2:-}"; then - actuallyInstallComposer_flags="$actuallyInstallComposer_flags --filename=$2" - else - actuallyInstallComposer_flags="$actuallyInstallComposer_flags --filename=composer" - fi - if test -n "${3:-}"; then - actuallyInstallComposer_flags="$actuallyInstallComposer_flags $3" - fi - php "$actuallyInstallComposer_installer" $actuallyInstallComposer_flags - rm -- "$actuallyInstallComposer_installer" -} - -# Install ionCube Loader -installIonCubeLoader() { - installIonCubeLoader_version='' - if test $PHP_MAJMIN_VERSION -lt 804; then - # For 14.4.0 we have a Segmentation Fault - installIonCubeLoader_version=14.0.0 - fi - installIonCubeLoader_versionForUrl='' - installIonCubeLoader_versionForMessage=latest - if test -n "$installIonCubeLoader_version"; then - installIonCubeLoader_versionForUrl="_$installIonCubeLoader_version" - installIonCubeLoader_versionForMessage="v$installIonCubeLoader_version" - fi - # See https://www.ioncube.com/loaders.php - case $PHP_BITS in - 32) - case $(uname -m) in - aarch* | arm*) - installIonCubeLoader_url="https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_armv7l$installIonCubeLoader_versionForUrl.tar.gz" - ;; - *) - installIonCubeLoader_url="https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86$installIonCubeLoader_versionForUrl.tar.gz" - ;; - esac - ;; - *) - case $(uname -m) in - aarch64 | arm64 | armv8) - installIonCubeLoader_url="https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_aarch64$installIonCubeLoader_versionForUrl.tar.gz" - ;; - *) - installIonCubeLoader_url="https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64$installIonCubeLoader_versionForUrl.tar.gz" - ;; - esac - ;; - esac - printf 'Downloading ionCube Loader (%s)... ' "$installIonCubeLoader_versionForMessage" - installIonCubeLoader_dir="$(getPackageSource $installIonCubeLoader_url)" - echo 'done.' - installIonCubeLoader_so=$(php -r "printf('ioncube_loader_lin_%s.%s%s.so', PHP_MAJOR_VERSION, PHP_MINOR_VERSION, ZEND_THREAD_SAFE ? '_ts' : '');") - cp "$installIonCubeLoader_dir/$installIonCubeLoader_so" "$(getPHPExtensionsDir)/ioncube_loader.so" -} - -# Install SourceGuardian Loader -installSourceGuardian() { - # See https://www.sourceguardian.com/loaders.html - case $PHP_BITS in - 32) - installSourceGuardian_url=https://www.sourceguardian.com/loaders/download/loaders.linux-i386.tar.gz - ;; - *) - case $(uname -m) in - aarch64 | arm64 | armv8) - installSourceGuardian_url=https://www.sourceguardian.com/loaders/download/loaders.linux-aarch64.tar.gz - ;; - *) - installSourceGuardian_url=https://www.sourceguardian.com/loaders/download/loaders.linux-x86_64.tar.gz - ;; - esac - ;; - esac - printf 'Downloading SourceGuardian... ' - installSourceGuardian_dir="$(getPackageSource $installSourceGuardian_url)" - printf 'done (version: %s)\n' "$(cat "$installSourceGuardian_dir/version")" - for installSourceGuardian_phpv in $PHP_MAJDOTMINDOTPAT_VERSION $PHP_MAJDOTMIN_VERSION; do - installSourceGuardian_file="$installSourceGuardian_dir/ixed.$PHP_MAJDOTMIN_VERSION" - if test $PHP_THREADSAFE -eq 1; then - installSourceGuardian_file="${installSourceGuardian_file}ts" - fi - installSourceGuardian_file="${installSourceGuardian_file}.lin" - if test -f "$installSourceGuardian_file"; then - mv "$installSourceGuardian_file" "$(getPHPExtensionsDir)/sourceguardian.so" - return - fi - done - printf 'Unable to find a SourceGuardian compatible with PHP %s or PHP %s.\nAvailable SourceGuardian versions:\n' "$PHP_MAJDOTMINDOTPAT_VERSION" "$PHP_MAJDOTMIN_VERSION" >&2 - ls -1 "$installSourceGuardian_dir" | grep -E '^ixed\..*\.lin$' | sed -E 's/^[^0-9]+([0-9]+(\.[0-9]+)*).*$/\1/' | sort | uniq >&2 - exit 1 -} - -# Install Cargo (if not yet installed) -installCargo() { - if command -v cargo >/dev/null; then - return - fi - installCargo_cargoversion= - if ! test -f "$HOME/.cargo/env"; then - printf '# Installing cargo\n' - case "$DISTRO" in - alpine) - # see https://github.com/hyperledger/indy-vdr/issues/69#issuecomment-998104850 - export RUSTFLAGS='-C target-feature=-crt-static' - ;; - esac - curl https://sh.rustup.rs -sSf | sh -s -- -y -q - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -le 310; then - # With version 1.84.0 we have this error: - # Error relocating /root/.rustup/toolchains/stable-x86_64-unknown-linux-musl/bin/cargo: posix_spawn_file_actions_addchdir_np: symbol not found - # See https://github.com/rust-lang/rust/pull/131851#issue-2595663507 - installCargo_cargoversion=1.83.0 - fi - ;; - esac - fi - . "$HOME/.cargo/env" - if test -n "$installCargo_cargoversion"; then - rustup default -- "$installCargo_cargoversion" - fi - if test -z "${IPE_UNINSTALL_CARGO:-}"; then - IPE_UNINSTALL_CARGO=y - fi -} - -installNewRelic() { - printf '# Installing newrelic\n' - # see https://docs.newrelic.com/docs/apm/agents/php-agent/getting-started/php-agent-compatibility-requirements/ - if test $PHP_MAJMIN_VERSION -le 701; then - installNewRelic_baseUrl=https://download.newrelic.com/php_agent/archive/10.21.0.11/ - else - installNewRelic_baseUrl=https://download.newrelic.com/php_agent/release/ - fi - installNewRelic_search='\bnewrelic-php[0-9.]*-[0-9]+(\.[0-9]+)*-linux' - case "$DISTRO" in - alpine) - installNewRelic_search="$installNewRelic_search-musl" - ;; - esac - installNewRelic_file="$(curl -sSLf -o- "$installNewRelic_baseUrl" | sed -E 's/<[^>]*>//g' | grep -Eo "$installNewRelic_search.tar.gz" | sort | head -1)" - installNewRelic_url="$installNewRelic_baseUrl$installNewRelic_file" - installNewRelic_src="$(getPackageSource "$installNewRelic_url")" - cd -- "$installNewRelic_src" - NR_INSTALL_USE_CP_NOT_LN=1 NR_INSTALL_SILENT=1 ./newrelic-install install - case "${IPE_NEWRELIC_DAEMON:-}" in - 1 | y* | Y*) - NR_INSTALL_USE_CP_NOT_LN=1 NR_INSTALL_SILENT=1 ./newrelic-install install_daemon - ;; - esac - case "${IPE_NEWRELIC_KEEPLOG:-}" in - 1 | y* | Y*) ;; - *) - rm -f /tmp/nrinstall-*.tar - ;; - esac - cd - >/dev/null - cat <&2 - fi - if test -n "$(getModuleSourceCodePath "$1")"; then - printf '### WARNING the module "%s" is bundled with PHP, you can NOT specify a source code path for it\n' "$1" >&2 - fi - case "$1" in - dba) - if test -e /usr/lib/$TARGET_TRIPLET/libdb-5.3.so && ! test -e /usr/lib/libdb-5.3.so; then - ln -s /usr/lib/$TARGET_TRIPLET/libdb-5.3.so /usr/lib/ - fi - if test $PHP_MAJMIN_VERSION -le 505; then - docker-php-source extract - patch /usr/src/php/ext/dba/config.m4 </dev/null - ;; - oci8 | pdo_oci) - installOracleInstantClient - if test "$1" = oci8; then - docker-php-ext-configure "$1" "--with-oci8=instantclient,$ORACLE_INSTANTCLIENT_LIBPATH" - elif test "$1" = pdo_oci; then - docker-php-ext-configure "$1" "--with-pdo-oci=instantclient,$ORACLE_INSTANTCLIENT_LIBPATH" - fi - ;; - pdo_odbc) - docker-php-ext-configure pdo_odbc --with-pdo-odbc=unixODBC,/usr - ;; - snmp) - case "$DISTRO" in - alpine) - mkdir -p -m 0755 /var/lib/net-snmp/mib_indexes - ;; - esac - ;; - sockets) - case "$PHP_MAJDOTMINDOTPAT_VERSION" in - 8.0.15 | 8.1.2) - sed -i '70 i #ifndef _GNU_SOURCE' /usr/src/php/ext/sockets/config.m4 - sed -i '71 i #define _GNU_SOURCE' /usr/src/php/ext/sockets/config.m4 - sed -i '72 i #endif' /usr/src/php/ext/sockets/config.m4 - ;; - esac - ;; - sybase_ct) - docker-php-ext-configure sybase_ct --with-sybase-ct=/usr - ;; - tidy) - case "$DISTRO" in - alpine) - if ! test -f /usr/include/buffio.h; then - ln -s /usr/include/tidybuffio.h /usr/include/buffio.h - UNNEEDED_PACKAGE_LINKS="$UNNEEDED_PACKAGE_LINKS /usr/include/buffio.h" - fi - ;; - esac - ;; - zip) - if test $PHP_MAJMIN_VERSION -le 505; then - docker-php-ext-configure zip - elif test $PHP_MAJMIN_VERSION -le 703; then - docker-php-ext-configure zip --with-libzip - else - docker-php-ext-configure zip --with-zip - fi - ;; - esac - installBundledModule_errBefore="$(php -r 'return;' 2>&1 || true)" - docker-php-ext-install -j$(getProcessorCount) "$1" - case "$1" in - imap) - case "$DISTRO_VERSION" in - debian@9) - dpkg -r libc-client2007e-dev - ;; - esac - ;; - esac - case "${IPE_SKIP_CHECK:-}" in - 1 | y* | Y*) ;; - *) - php -r 'return;' >/dev/null 2>/dev/null || true - installBundledModule_errAfter="$(php -r 'return;' 2>&1 || true)" - if test "$installBundledModule_errAfter" != "$installBundledModule_errBefore"; then - printf 'PHP has problems after installing the "%s" extension:\n%s\n' "$1" "$installBundledModule_errAfter" >&2 - rm "$PHP_INI_DIR/conf.d/docker-php-ext-$1.ini" || true - return 1 - fi - ;; - esac -} - -# Fetch a tar.gz file, extract it and returns the path of the extracted folder. -# -# Arguments: -# $1: the URL of the file to be downloaded -# -# Output: -# The path of the extracted directory -getPackageSource() { - mkdir -p /tmp/src - getPackageSource_tempFile=$(mktemp -p /tmp/src) - curl -sSLf -o "$getPackageSource_tempFile" "$1" - getPackageSource_tempDir=$(mktemp -p /tmp/src -d) - cd "$getPackageSource_tempDir" - tar -xzf "$getPackageSource_tempFile" 2>/dev/null || tar -xf "$getPackageSource_tempFile" 2>/dev/null || ( - if command -v bsdtar >/dev/null; then - bsdtar -xf "$getPackageSource_tempFile" - else - unzip -q "$getPackageSource_tempFile" - fi - ) - cd - >/dev/null - unlink "$getPackageSource_tempFile" - getPackageSource_outDir='' - for getPackageSource_i in $(ls "$getPackageSource_tempDir"); do - if test -n "$getPackageSource_outDir" || test -f "$getPackageSource_tempDir/$getPackageSource_i"; then - getPackageSource_outDir='' - break - fi - getPackageSource_outDir="$getPackageSource_tempDir/$getPackageSource_i" - done - if test -n "$getPackageSource_outDir"; then - printf '%s' "$getPackageSource_outDir" - else - printf '%s' "$getPackageSource_tempDir" - fi -} - -# Install a PECL/remote PHP module given its handle -# -# Arguments: -# $1: the handle of the PHP module -installRemoteModule() { - installRemoteModule_module="$1" - printf '### INSTALLING REMOTE MODULE %s ###\n' "$installRemoteModule_module" - installRemoteModule_version="$(resolvePHPModuleVersion "$installRemoteModule_module")" - installRemoteModule_path="$(getModuleSourceCodePath "$installRemoteModule_module")" - rm -rf "$CONFIGURE_FILE" - installRemoteModule_manuallyInstalled=0 - installRemoteModule_cppflags='' - installRemoteModule_ini_basename='' - installRemoteModule_ini_extra='' - case "$installRemoteModule_module" in - amqp) - if test -z "$installRemoteModule_version"; then - if test "$DISTRO_VERSION" = debian@8; then - # in Debian Jessie we have librabbitmq version 0.5.2 - installRemoteModule_version=1.9.3 - elif test $PHP_MAJMIN_VERSION -le 505; then - installRemoteModule_version=1.9.4 - elif test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=1.11.0 - fi - fi - ;; - apcu) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=4.0.11 - fi - fi - ;; - apcu_bc) - # apcu_bc must be loaded after apcu - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - ;; - ast) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=1.0.16 - fi - fi - ;; - bitset) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.0.4 - fi - fi - ;; - blackfire) - case $(uname -m) in - i386 | i686 | x86) - installRemoteModule_tmp1=i386 - ;; - aarch64 | arm64 | armv8) - installRemoteModule_tmp1=arm64 - ;; - *) - installRemoteModule_tmp1=amd64 - ;; - esac - case $DISTRO in - alpine) - installRemoteModule_distro=alpine - ;; - *) - installRemoteModule_distro=linux - ;; - esac - installRemoteModule_tmp2=$(php -r 'echo PHP_MAJOR_VERSION . PHP_MINOR_VERSION . (ZEND_THREAD_SAFE ? "-zts" : "");') - installRemoteModule_tmp="$(mktemp -p /tmp/src -d)" - cd "$installRemoteModule_tmp" - curl -sSLf --user-agent Docker https://blackfire.io/api/v1/releases/probe/php/$installRemoteModule_distro/$installRemoteModule_tmp1/$installRemoteModule_tmp2 | tar xz - mv blackfire-*.so $(getPHPExtensionsDir)/blackfire.so - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - installRemoteModule_ini_extra="$(printf '%sblackfire.agent_socket=tcp://blackfire:8307\n' "$installRemoteModule_ini_extra")" - ;; - cassandra) - installRemoteModule_src="$(getPackageSource https://github.com/nano-interactive/ext-cassandra/tarball/1cf12c5ce49ed43a2c449bee4b7b23ce02a37bf0)" - cd "$installRemoteModule_src/ext" - phpize - ./configure - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - ;; - cmark) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=1.1.0 - fi - fi - if ! test -e /usr/local/lib/libcmark.so && ! test -e /usr/local/lib64/libcmark.so && ! test -e /usr/lib/libcmark.so && ! test -e /usr/lib64/libcmark.so && ! test -e /lib/libcmark.so; then - if test $(compareVersions "$(cmake --version | head -n1 | sed -E 's/^.* //')" '3.7') -lt 0; then - installRemoteModule_tmp=0.29.0 - else - installRemoteModule_tmp=0.31.1 - fi - cd "$(getPackageSource https://github.com/commonmark/cmark/archive/$installRemoteModule_tmp.tar.gz)" - make -s -j$(getProcessorCount) cmake_build - make -s -j$(getProcessorCount) install - cd - >/dev/null - case "$DISTRO" in - alpine) - if test -e /usr/local/lib64/libcmark.so.$installRemoteModule_tmp && ! test -e /usr/local/lib/libcmark.so.$installRemoteModule_tmp; then - ln -s /usr/local/lib64/libcmark.so.$installRemoteModule_tmp /usr/local/lib/ - fi - ;; - *) - ldconfig || true - ;; - esac - fi - ;; - csv) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=0.3.1 - fi - fi - ;; - ddtrace) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=0.75.0 - fi - if test -z "$installRemoteModule_version"; then - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -le 312; then - # cc is not supported due to a memcmp related bug - installRemoteModule_version=1.1.0 - fi - ;; - esac - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 0.75.0) -ge 0; then - installCargo - fi - ;; - decimal) - case "$DISTRO" in - alpine) - if ! test -f /usr/local/lib/libmpdec.so; then - installLibMPDec - fi - ;; - debian) - if test $DISTRO_MAJMIN_VERSION -ge 1200; then - if test -z "$(ldconfig -p | grep -E '\slibmpdec.so\s')"; then - installLibMPDec - fi - fi - ;; - esac - ;; - ds) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 703; then - installRemoteModule_version=1.3.0 - elif test $PHP_MAJMIN_VERSION -lt 704; then - installRemoteModule_version=1.4.0 - fi - fi - ;; - ecma_intl) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=alpha - fi - ;; - ev) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 800; then - installRemoteModule_version=1.1.5 - fi - fi - ;; - event) - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 2.4.0) -ge 0; then - # Enable internal debugging in Event - addConfigureOption enable-event-debug no - # Enable sockets support in Event - if php --ri sockets >/dev/null 2>/dev/null; then - addConfigureOption enable-event-sockets yes - else - addConfigureOption enable-event-sockets no - fi - # libevent installation prefix - addConfigureOption with-event-libevent-dir /usr - # Include libevent's pthreads library and enable thread safety support in Event - addConfigureOption with-event-pthreads yes - # Include libevent protocol-specific functionality support including HTTP, DNS, and RPC - addConfigureOption with-event-extra yes - # Include libevent OpenSSL support - addConfigureOption with-event-openssl yes - # PHP Namespace for all Event classes - if test -n "${IPE_EVENT_NAMESPACE:-}"; then - addConfigureOption with-event-ns "$IPE_EVENT_NAMESPACE" - else - addConfigureOption with-event-ns no - fi - # openssl installation prefix - addConfigureOption with-openssl-dir yes - elif test $(compareVersions "$installRemoteModule_version" 1.7.6) -ge 0; then - # Enable internal debugging in Event - addConfigureOption enable-event-debug no - # Enable sockets support in Event - if php --ri sockets >/dev/null 2>/dev/null; then - addConfigureOption enable-event-sockets yes - else - addConfigureOption enable-event-sockets no - fi - # libevent installation prefix - addConfigureOption with-event-libevent-dir /usr - # Include libevent's pthreads library and enable thread safety support in Event - addConfigureOption with-event-pthreads yes - # Include libevent protocol-specific functionality support including HTTP, DNS, and RPC - addConfigureOption with-event-extra yes - # Include libevent OpenSSL support - addConfigureOption with-event-openssl yes - # openssl installation prefix - addConfigureOption with-openssl-dir no - elif test $(compareVersions "$installRemoteModule_version" 1.3.0) -ge 0; then - # Enable internal debugging in event - addConfigureOption enable-event-debug no - # libevent installation prefix - addConfigureOption with-event-libevent-dir /usr - # Include libevent's pthreads library and enable thread safety support in event - addConfigureOption with-event-pthreads yes - # Include libevent protocol-specific functionality support including HTTP, DNS, and RPC - addConfigureOption with-event-extra yes - # Include libevent OpenSSL support - addConfigureOption with-event-openssl yes - # openssl installation prefix - addConfigureOption with-openssl-dir no - fi - # event must be loaded after sockets - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - ;; - gearman) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.1.2 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=2.1.3 - fi - fi - case "$DISTRO" in - alpine) - if ! test -e /usr/local/include/libgearman/gearman.h || ! test -e /usr/local/lib/libgearman.so; then - installRemoteModule_src="$(getPackageSource https://github.com/gearman/gearmand/releases/download/1.1.21/gearmand-1.1.21.tar.gz)" - cd -- "$installRemoteModule_src" - ./configure - make -j$(getProcessorCount) install-binPROGRAMS - make -j$(getProcessorCount) install-nobase_includeHEADERS - cd - >/dev/null - fi - ;; - esac - ;; - geoip) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=beta - fi - ;; - geos) - if test -z "$installRemoteModule_path"; then - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=0def35611f773c951432f1f06a155471a5cb7611 - fi - installRemoteModule_src="$(getPackageSource https://git.osgeo.org/gitea/geos/php-geos/archive/$installRemoteModule_version.tar.gz)" - cd "$installRemoteModule_src" - ./autogen.sh - ./configure - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - fi - ;; - geospatial) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.2.1 - else - installRemoteModule_version=beta - fi - fi - ;; - gmagick) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.1.7RC3 - else - installRemoteModule_version=beta - fi - fi - ;; - grpc) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.33.1 - else - case "$DISTRO_VERSION" in - debian@8) - installRemoteModule_version=1.46.3 - ;; - alpine@3.7 | alpine@3.8 | debian@9) # With newer version: "This package requires GCC 7 or higher" - installRemoteModule_version=1.52.1 - ;; - esac - fi - fi - if test -z "$installRemoteModule_version" || test "$installRemoteModule_version" = 1.35.0; then - case "$DISTRO_VERSION" in - alpine@3.13) - installRemoteModule_cppflags='-Wno-maybe-uninitialized' - ;; - esac - fi - ;; - http) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.6.0 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=3.2.4 - fi - fi - if test $PHP_MAJMIN_VERSION -ge 700; then - if ! test -e /usr/local/lib/libidnkit.so; then - installRemoteModule_src="$(getPackageSource https://jprs.co.jp/idn/idnkit-2.3.tar.bz2)" - cd -- "$installRemoteModule_src" - CFLAGS=-Wno-incompatible-pointer-types ./configure - make -j$(getProcessorCount) install - cd - >/dev/null - fi - fi - # http must be loaded after raphf and propro - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - ;; - igbinary) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.0.8 - fi - fi - ;; - imap) - # Include Kerberos Support - addConfigureOption with-kerberos yes - # Include SSL Support - addConfigureOption with-imap-ssl yes - ;; - inotify) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.1.6 - fi - fi - ;; - ion) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=alpha - fi - if ! test -f /usr/local/lib/libionc.so || ! test -f /usr/local/include/ionc/ion.h; then - echo 'Installing ion-c... ' - installRemoteModule_src="$(mktemp -p /tmp/src -d)" - git clone -q -c advice.detachedHead=false --depth 1 --branch v1.1.3 https://github.com/amzn/ion-c.git "$installRemoteModule_src/ion" - ( - cd "$installRemoteModule_src/ion" - git submodule init -q - git submodule update -q - mkdir -p build - cd build - CFLAGS='-Wno-incompatible-pointer-types -Wno-stringop-overflow -Wno-discarded-qualifiers' cmake -DCMAKE_BUILD_TYPE=Release .. -Wno-dev - make clean - make -j$(getProcessorCount) install - ) - rm -rf "$installRemoteModule_src" - fi - addConfigureOption with-ion "shared,/usr/local" - ;; - ioncube_loader) - installIonCubeLoader - installRemoteModule_manuallyInstalled=1 - ;; - jsmin) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=2.0.1 - fi - fi - ;; - jsonpath) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 800; then - installRemoteModule_version=1.0.1 - fi - fi - ;; - luasandbox) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 702; then - installRemoteModule_version=3.0.3 - fi - fi - ;; - lz4) - if test -z "$installRemoteModule_path"; then - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=0.4.3 - fi - installRemoteModule_src="$(getPackageSource https://github.com/kjdev/php-ext-lz4/archive/refs/tags/$installRemoteModule_version.tar.gz)" - cd "$installRemoteModule_src" - phpize - ./configure --with-lz4-includedir=/usr - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - fi - ;; - lzf) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 702; then - installRemoteModule_version=1.6.8 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" '1.5.0') -ge 0; then - # Sacrifice speed in favour of compression ratio? - case "${IPE_LZF_BETTERCOMPRESSION:-}" in - 1 | y* | Y*) - addConfigureOption 'enable-lzf-better-compression' 'yes' - ;; - *) - addConfigureOption 'enable-lzf-better-compression' 'no' - ;; - esac - fi - ;; - mailparse) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.1.6 - elif test $PHP_MAJMIN_VERSION -le 702; then - installRemoteModule_version=3.1.3 - fi - fi - ;; - memcache) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.2.7 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=4.0.5.2 - fi - fi - ;; - memcached) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.2.0 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - # Set the path to libmemcached install prefix - addConfigureOption 'with-libmemcached-dir' 'no' - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" '3.0.0') -ge 0; then - # Set the path to ZLIB install prefix - addConfigureOption 'with-zlib-dir' 'no' - # Use system FastLZ library - addConfigureOption 'with-system-fastlz' 'no' - # Enable memcached igbinary serializer support - if php --ri igbinary >/dev/null 2>/dev/null; then - addConfigureOption 'enable-memcached-igbinary' 'yes' - else - addConfigureOption 'enable-memcached-igbinary' 'no' - fi - # Enable memcached msgpack serializer support - if php --ri msgpack >/dev/null 2>/dev/null; then - addConfigureOption 'enable-memcached-msgpack' 'yes' - else - addConfigureOption 'enable-memcached-msgpack' 'no' - fi - # Enable memcached json serializer support - addConfigureOption 'enable-memcached-json' 'yes' - # Enable memcached protocol support - addConfigureOption 'enable-memcached-protocol' 'no' # https://github.com/php-memcached-dev/php-memcached/issues/418#issuecomment-449587972 - # Enable memcached sasl support - addConfigureOption 'enable-memcached-sasl' 'yes' - # Enable memcached session handler support - addConfigureOption 'enable-memcached-session' 'yes' - fi - # memcached must be loaded after msgpack - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - ;; - memprof) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.0.0 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=2.1.0 - fi - fi - ;; - mongo) - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" '1.5.0') -ge 0; then - # Build with Cyrus SASL (MongoDB Enterprise Authentication) support? - addConfigureOption '-with-mongo-sasl' 'yes' - fi - ;; - mongodb) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 505; then - installRemoteModule_version=1.5.5 - elif test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.7.5 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=1.9.2 - elif test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=1.11.1 - elif test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=1.16.2 - elif test $PHP_MAJMIN_VERSION -le 800; then - installRemoteModule_version=1.20.1 - fi - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 1.17.0) -ge 0; then - # Enable developer flags? (yes/no) - addConfigureOption enable-mongodb-developer-flags no - # Enable code coverage? (yes/no) - addConfigureOption enable-mongodb-coverage no - # Use system libraries for libbson, libmongoc, and libmongocrypt? (yes/no) - addConfigureOption with-mongodb-system-libs no - # Enable client-side encryption? (auto/yes/no) - addConfigureOption with-mongodb-client-side-encryption yes - # Enable Snappy for compression? (auto/yes/no) - addConfigureOption with-mongodb-snappy yes - # Enable zlib for compression? (auto/system/bundled/no) - addConfigureOption with-mongodb-zlib yes - # Enable zstd for compression? (auto/yes/no) - addConfigureOption with-mongodb-zstd yes - # Enable SASL for Kerberos authentication? (auto/cyrus/no) - addConfigureOption with-mongodb-sasl yes - # Enable crypto and TLS? (auto/openssl/libressl/darwin/no) - addConfigureOption with-mongodb-ssl yes - # Use system crypto profile (OpenSSL only)? (yes/no) - addConfigureOption enable-mongodb-crypto-system-profile yes - # Use bundled or system utf8proc for SCRAM-SHA-256 SASLprep? (bundled/system) - addConfigureOption with-mongodb-utf8proc bundled - fi - ;; - mosquitto) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=beta - fi - ;; - msgpack) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.5.7 - fi - fi - ;; - newrelic) - installNewRelic - installRemoteModule_manuallyInstalled=2 - ;; - oauth) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.2.3 - fi - fi - ;; - oci8 | pdo_oci) - installOracleInstantClient - if test "$installRemoteModule_module" = oci8; then - addConfigureOption with-oci8 "instantclient,$ORACLE_INSTANTCLIENT_LIBPATH" - elif test "$installRemoteModule_module" = pdo_oci; then - addConfigureOption with-pdo-oci "instantclient,$ORACLE_INSTANTCLIENT_LIBPATH" - fi - ;; - opencensus) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=alpha - fi - ;; - openswoole) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 704; then - installRemoteModule_version=4.10.0 - elif test $PHP_MAJMIN_VERSION -lt 801; then - installRemoteModule_version=22.0.0 - elif test $PHP_MAJMIN_VERSION -lt 802; then - installRemoteModule_version=22.1.2 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if php --ri sockets >/dev/null 2>/dev/null; then - installRemoteModule_sockets=yes - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - else - installRemoteModule_sockets=no - fi - installRemoteModule_openssl=yes - if test -n "$installRemoteModule_version" && test $(compareVersions "$installRemoteModule_version" 22.1.2) -ge 0; then - # enable coroutine sockets? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 protocol? - addConfigureOption enable-http2 yes - # enable coroutine mysqlnd? - addConfigureOption enable-mysqlnd yes - # enable coroutine curl? - addConfigureOption enable-hook-curl yes - # enable coroutine postgres? - addConfigureOption with-postgres yes - elif test $(compareVersions "$installRemoteModule_version" 22.1.1) -ge 0; then - # enable c-ares support? - addConfigureOption enable-cares yes - # enable coroutine sockets? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 protocol? - addConfigureOption enable-http2 yes - # enable coroutine mysqlnd? - addConfigureOption enable-mysqlnd yes - # enable coroutine curl? - addConfigureOption enable-hook-curl yes - # enable coroutine postgres? - addConfigureOption with-postgres yes - elif test $(compareVersions "$installRemoteModule_version" 22.1.0) -ge 0; then - # enable coroutine sockets? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 protocol? - addConfigureOption enable-http2 yes - # enable coroutine mysqlnd? - addConfigureOption enable-mysqlnd yes - # enable coroutine curl? - addConfigureOption enable-hook-curl yes - # enable coroutine postgres? - addConfigureOption with-postgres yes - elif test $(compareVersions "$installRemoteModule_version" 22.0.0) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable hook curl support? - addConfigureOption enable-hook-curl yes - # enable postgres support? - addConfigureOption with-postgres yes - elif test $(compareVersions "$installRemoteModule_version" 4.8.0) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable json support? - addConfigureOption enable-swoole-json yes - # enable curl support? - addConfigureOption enable-swoole-curl yes - # enable postgres support? - addConfigureOption with-postgres yes - else - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable json support? - addConfigureOption enable-swoole-json yes - # enable curl support? - addConfigureOption enable-swoole-curl yes - fi - ;; - operator) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=beta - fi - ;; - parallel) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=0.8.3 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=1.1.4 - fi - fi - ;; - parle) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 704; then - installRemoteModule_version=0.8.3 - else - installRemoteModule_version=beta - fi - fi - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 0.8.4) -ge 0; then - # Enable internal UTF-32 support in parle - addConfigureOption enable-parle-utf32 yes - fi - ;; - pcov) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=0.9.0 - fi - fi - ;; - phalcon) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMINPAT_VERSION -lt 70401; then - installRemoteModule_version=4.1.2 - elif test $PHP_MAJMIN_VERSION -lt 800; then - installRemoteModule_version=5.4.0 - fi - fi - installRemoteModule_cppflags='-Wno-incompatible-pointer-types' - ;; - php_trie) - if ! test -f /usr/local/include/hat-trie/include/tsl/htrie_map.h; then - installRemoteModule_src="$(getPackageSource https://codeload.github.com/Tessil/hat-trie/tar.gz/v0.6.0)" - mkdir -p /usr/local/include/hat-trie - mv "$installRemoteModule_src/include" /usr/local/include/hat-trie - fi - ;; - pq) - # pq must be loaded after raphf - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - ;; - propro) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.0.2 - fi - fi - ;; - protobuf) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=3.12.4 - elif test $PHP_MAJMIN_VERSION -lt 800; then - installRemoteModule_version=3.24.4 - elif test $PHP_MAJMIN_VERSION -lt 801; then - installRemoteModule_version=3.25.3 - fi - fi - ;; - psr) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 506; then - installRemoteModule_version=0.5.1 - elif test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=0.6.1 - elif test $PHP_MAJMIN_VERSION -lt 703; then - installRemoteModule_version=1.1.0 - fi - fi - ;; - pthreads) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.0.10 - fi - fi - ;; - raphf) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.1.2 - fi - fi - ;; - rdkafka) - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version"; then - installRemoteModule_version1='' - if test $PHP_MAJMIN_VERSION -le 505; then - installRemoteModule_version1=3.0.5 - elif test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version1=4.1.2 - fi - installRemoteModule_version2='' - case "$DISTRO" in - alpine) - installRemoteModule_tmp='librdkafka' - ;; - debian) - installRemoteModule_tmp='librdkafka*' - ;; - *) - installRemoteModule_tmp='' - ;; - esac - if test -n "$installRemoteModule_tmp"; then - installRemoteModule_tmp="$(getInstalledPackageVersion "$installRemoteModule_tmp")" - if test -n "$installRemoteModule_tmp" && test $(compareVersions "$installRemoteModule_tmp" '0.11.0') -lt 0; then - installRemoteModule_version2=3.1.3 - fi - fi - if test -z "$installRemoteModule_version1" || test -z "$installRemoteModule_version2"; then - installRemoteModule_version="$installRemoteModule_version1$installRemoteModule_version2" - elif test $(compareVersions "$installRemoteModule_version1" "$installRemoteModule_version2") -le 0; then - installRemoteModule_version="$installRemoteModule_version1" - else - installRemoteModule_version="$installRemoteModule_version2" - fi - fi - ;; - redis) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=4.3.0 - elif test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=5.3.7 - elif test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=6.0.2 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - # Enable igbinary serializer support? - if php --ri igbinary >/dev/null 2>/dev/null; then - addConfigureOption enable-redis-igbinary yes - else - addConfigureOption enable-redis-igbinary no - fi - # Enable lzf compression support? - addConfigureOption enable-redis-lzf yes - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 5.0.0) -ge 0; then - if ! test -e /usr/include/zstd.h || ! test -e /usr/lib/libzstd.so -o -e "/usr/lib/$TARGET_TRIPLET/libzstd.so"; then - installRemoteModule_zstdVersion=1.4.4 - installRemoteModule_zstdVersionMajor=$(echo $installRemoteModule_zstdVersion | cut -d. -f1) - rm -rf /tmp/src/zstd - mv "$(getPackageSource https://github.com/facebook/zstd/releases/download/v$installRemoteModule_zstdVersion/zstd-$installRemoteModule_zstdVersion.tar.gz)" /tmp/src/zstd - cd /tmp/src/zstd - make V=0 -j$(getProcessorCount) lib - cp -f lib/libzstd.so "/usr/lib/$TARGET_TRIPLET/libzstd.so.$installRemoteModule_zstdVersion" - ln -sf "/usr/lib/$TARGET_TRIPLET/libzstd.so.$installRemoteModule_zstdVersion" "/usr/lib/$TARGET_TRIPLET/libzstd.so.$installRemoteModule_zstdVersionMajor" - ln -sf "/usr/lib/$TARGET_TRIPLET/libzstd.so.$installRemoteModule_zstdVersion" "/usr/lib/$TARGET_TRIPLET/libzstd.so" - ln -sf /tmp/src/zstd/lib/zstd.h /usr/include/zstd.h - UNNEEDED_PACKAGE_LINKS="$UNNEEDED_PACKAGE_LINKS /usr/include/zstd.h" - cd - >/dev/null - fi - # Enable zstd compression support? - addConfigureOption enable-redis-zstd yes - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 6.0.0) -ge 0; then - # Enable msgpack serializer support? - if php --ri msgpack >/dev/null 2>/dev/null; then - addConfigureOption enable-redis-msgpack yes - else - addConfigureOption enable-redis-msgpack no - fi - # Enable lz4 compression? - addConfigureOption enable-redis-lz4 yes - # Use system liblz4? - addConfigureOption with-liblz4 yes - fi - fi - ;; - relay) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version="$(curl -sSLf https://builds.r2.relay.so/meta/latest)" - installRemoteModule_version="${installRemoteModule_version#v}" - fi - case $(uname -m) in - aarch64 | arm64 | armv8) - installRemoteModule_hardware=aarch64 - ;; - *) - installRemoteModule_hardware=x86-64 - ;; - esac - installRemoteModule_distro="$DISTRO" - installRemoteModule_flags='' - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -lt 317; then - installRemoteModule_distro=alpine3.9 - else - installRemoteModule_distro=alpine3.17 - fi - ;; - debian) - case "$(dpkg -l 'libssl*' | grep -E '^ii ' | cut -d' ' -f3)" in - libssl3*) - installRemoteModule_flags=+libssl3 - ;; - esac - ;; - esac - # See https://relay.so/builds - installRemoteModule_url="https://builds.r2.relay.so/v${installRemoteModule_version}/relay-v${installRemoteModule_version}-php${PHP_MAJDOTMIN_VERSION}-${installRemoteModule_distro}-${installRemoteModule_hardware}${installRemoteModule_flags}.tar.gz" - printf 'Downloading relay v%s (%s) from %s... ' "$installRemoteModule_version" "$installRemoteModule_hardware" "$installRemoteModule_url" - installRemoteModule_src="$(getPackageSource $installRemoteModule_url)" - echo 'done.' - cp -- "$installRemoteModule_src/relay-pkg.so" "$PHP_EXTDIR/relay.so" - sed -i "s/00000000-0000-0000-0000-000000000000/$(cat /proc/sys/kernel/random/uuid)/" "$PHP_EXTDIR/relay.so" - installRemoteModule_ini_extra="$(grep -vE '^[ \t]*extension[ \t]*=' $installRemoteModule_src/relay.ini)" - installRemoteModule_manuallyInstalled=1 - ;; - saxon) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -ge 800; then - installRemoteModule_version='12.4.2' - else - installRemoteModule_version='12.3' - fi - fi - installRemoteModule_majorVersion="${installRemoteModule_version%%.*}" - if test "$installRemoteModule_majorVersion" -ge 12; then - case $(uname -m) in - aarch64 | arm64 | armv8) - installRemoteModule_url=https://downloads.saxonica.com/SaxonC/EE/${installRemoteModule_majorVersion}/libsaxon-EEC-linux-aarch64-v${installRemoteModule_version}.zip - ;; - *) - installRemoteModule_url=https://downloads.saxonica.com/SaxonC/EE/${installRemoteModule_majorVersion}/libsaxon-EEC-linux-x86_64-v${installRemoteModule_version}.zip - ;; - esac - else - installRemoteModule_url=https://downloads.saxonica.com/SaxonC/EE/${installRemoteModule_majorVersion}/libsaxon-EEC-setup64-v${installRemoteModule_version}.zip - fi - installRemoteModule_dir="$(getPackageSource $installRemoteModule_url)" - if ! test -f /usr/lib/libsaxon-*.so; then - if test "$installRemoteModule_majorVersion" -ge 12; then - cp $installRemoteModule_dir/libs/nix/*.so /usr/lib/ - else - cp $installRemoteModule_dir/*.so /usr/lib/ - fi - ldconfig || true - fi - cd "$installRemoteModule_dir/Saxon.C.API" - phpize - ./configure --enable-saxon - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - ;; - seasclick) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.1.0 - fi - fi - ;; - seaslog) - installRemoteModule_cppflags='-Wno-incompatible-pointer-types' - ;; - smbclient) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.1.1 - elif test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=1.1.2 - fi - fi - ;; - snappy) - if test -z "$installRemoteModule_path"; then - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=0.2.1 - fi - installRemoteModule_src="$(getPackageSource https://github.com/kjdev/php-ext-snappy/archive/refs/tags/$installRemoteModule_version.tar.gz)" - cd "$installRemoteModule_src" - phpize - ./configure --with-snappy-includedir=/usr - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - fi - ;; - snuffleupagus) - if test -z "$installRemoteModule_path"; then - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 800; then - installRemoteModule_version=0.9.0 - elif test $PHP_MAJMIN_VERSION -le 801; then - installRemoteModule_version=0.10.0 - else - installRemoteModule_version=0.11.0 - fi - fi - installRemoteModule_src="$(getPackageSource https://codeload.github.com/jvoisin/snuffleupagus/tar.gz/v$installRemoteModule_version)" - cd "$installRemoteModule_src/src" - phpize - ./configure --enable-snuffleupagus - make -j$(getProcessorCount) install - cd - >/dev/null - cp -a "$installRemoteModule_src/config/default.rules" "$PHP_INI_DIR/conf.d/snuffleupagus.rules" - if test $(compareVersions "$installRemoteModule_version" 0.8.0) -ge 0; then - printf '\n# Disable "PHP version is not officially maintained anymore" message\nsp.global.show_old_php_warning.disable();\n' >>"$PHP_INI_DIR/conf.d/snuffleupagus.rules" - fi - else - if test -f "$installRemoteModule_path/config/default.rules"; then - cp -a "$installRemoteModule_path/config/default.rules" "$PHP_INI_DIR/conf.d/snuffleupagus.rules" - fi - fi - installRemoteModule_ini_extra="$(printf '%ssp.configuration_file=%s\n' "$installRemoteModule_ini_extra" "$PHP_INI_DIR/conf.d/snuffleupagus.rules")" - installRemoteModule_manuallyInstalled=1 - ;; - sodium | libsodium) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=1.0.7 - fi - fi - ;; - solr) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=2.4.0 - elif test $PHP_MAJMIN_VERSION -lt 704; then - installRemoteModule_version=2.6.0 - fi - fi - ;; - sourceguardian) - installSourceGuardian - installRemoteModule_manuallyInstalled=1 - ;; - spx) - if test -z "$installRemoteModule_path"; then - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=v0.4.18 - fi - if test "${installRemoteModule_version%.*}" = "$installRemoteModule_version"; then - installRemoteModule_displayVersion="$installRemoteModule_version" - else - installRemoteModule_displayVersion="git--master-$installRemoteModule_version" - fi - installRemoteModule_src="$(getPackageSource https://codeload.github.com/NoiseByNorthwest/php-spx/tar.gz/$installRemoteModule_version)" - cd -- "$installRemoteModule_src" - phpize - ./configure - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - fi - ;; - sqlsrv | pdo_sqlsrv) - isMicrosoftSqlServerODBCInstalled || installMicrosoftSqlServerODBC - if test -z "$installRemoteModule_version"; then - # https://docs.microsoft.com/it-it/sql/connect/php/system-requirements-for-the-php-sql-driver?view=sql-server-2017 - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=3.0.1 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=5.3.0 - elif test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=5.6.1 - elif test $PHP_MAJMIN_VERSION -le 702; then - installRemoteModule_version=5.8.1 - elif test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=5.9.0 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=5.10.1 - elif test $PHP_MAJMIN_VERSION -le 800; then - installRemoteModule_version=5.11.1 - fi - fi - ;; - ssh2) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.13 - fi - fi - ;; - stomp) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.0.9 - fi - fi - if test "$DISTRO" = debian; then - addConfigureOption with-openssl-dir yes - else - addConfigureOption with-openssl-dir /usr - fi - ;; - swoole) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 502; then - installRemoteModule_version=1.6.10 - elif test $PHP_MAJMIN_VERSION -le 504; then - installRemoteModule_version=2.0.4 - elif test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.0.11 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=4.3.6 - elif test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=4.5.10 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=4.8.11 - elif test $PHP_BITS -eq 32; then - # See https://github.com/swoole/swoole-src/issues/5198#issuecomment-1820162178 - installRemoteModule_version="$(resolvePHPModuleVersion "$installRemoteModule_module" '^5.0')" - else - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -le 312; then - installRemoteModule_version=5.1.2 - fi - ;; - esac - fi - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 800; then - installRemoteModule_version=5.1.3 - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" stable)" - fi - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if php --ri sockets >/dev/null 2>/dev/null; then - installRemoteModule_sockets=yes - else - installRemoteModule_sockets=no - fi - installRemoteModule_openssl=yes - case "$DISTRO_VERSION" in - alpine@3.7 | alpine@3.8) - if test $(compareVersions "$installRemoteModule_version" 4.6.0) -lt 0; then - # see https://github.com/swoole/swoole-src/issues/3934 - installRemoteModule_openssl=no - fi - ;; - esac - if test $PHP_THREADSAFE -eq 1; then - installRemoteModule_zts=yes - else - installRemoteModule_zts=no - fi - installRemoteModule_sqlite=yes - installRemoteModule_iouring=no - installRemoteModule_curl=yes - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -lt 317; then - # we need sqlite3 >= 3.7.7 - installRemoteModule_sqlite=no - fi - case "${IPE_SWOOLE_WITHOUT_IOURING:-}" in - 1 | y* | Y*) ;; - *) - # iouring support in swoole 6 requires liburing 2.5+: available since Alpine 3.19 - # but with Alpine 3.19 we have a "invalid use of incomplete type 'const struct statx'" error - if test $DISTRO_MAJMIN_VERSION -ge 320; then - installRemoteModule_iouring=yes - fi - ;; - esac - ;; - debian) - if test $PHP_MAJMIN_VERSION -ge 800; then - # see https://github.com/swoole/swoole-src/issues/5365 - installRemoteModule_curl=no - fi - if test $DISTRO_MAJMIN_VERSION -lt 1200; then - # we need sqlite3 >= 3.7.7 - installRemoteModule_sqlite=no - fi - case "${IPE_SWOOLE_WITHOUT_IOURING:-}" in - 1 | y* | Y*) ;; - *) - if test $DISTRO_VERSION_NUMBER -ge 13; then - # iouring support in swoole 6 requires liburing 2.5+: available since Debian Trixie (13) - installRemoteModule_iouring=yes - fi - ;; - esac - ;; - esac - installRemoteModule_zstd=yes - case "$DISTRO" in - debian) - if test $DISTRO_VERSION_NUMBER -lt 11; then - # swoole 6 requires libzstd >= 1.4.0, but on debian 10 (buster) we have 1.3.8 - installRemoteModule_zstd=no - fi - ;; - esac - if test $(compareVersions "$installRemoteModule_version" 6.0.0) -ge 0; then - # enable sockets support? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - # enable cares support? - addConfigureOption enable-cares yes - # enable brotli support? - addConfigureOption enable-brotli yes - # enable zstd support? - addConfigureOption enable-zstd $installRemoteModule_zstd - # enable PostgreSQL database support? - addConfigureOption enable-swoole-pgsql yes - # enable ODBC database support? - addConfigureOption with-swoole-odbc no - # enable Oracle database support? - addConfigureOption with-swoole-oracle no - # enable Sqlite database support? - addConfigureOption enable-swoole-sqlite $installRemoteModule_sqlite - # enable swoole thread support (need php zts support)? - addConfigureOption enable-swoole-thread $installRemoteModule_zts - # enable iouring for file async support? - addConfigureOption enable-iouring $installRemoteModule_iouring - elif test $(compareVersions "$installRemoteModule_version" 5.1.0) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - # enable cares support? - addConfigureOption enable-cares yes - # enable brotli support? - addConfigureOption enable-brotli yes - # enable PostgreSQL database support? - addConfigureOption enable-swoole-pgsql yes - # enable ODBC database support? - addConfigureOption with-swoole-odbc no - # enable Oracle database support? - addConfigureOption with-swoole-oracle no - # enable Sqlite database support? - addConfigureOption enable-swoole-sqlite $installRemoteModule_sqlite - elif test $(compareVersions "$installRemoteModule_version" 5.0.1) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - # enable cares support? - addConfigureOption enable-cares yes - # enable brotli support? - addConfigureOption enable-brotli yes - elif test $(compareVersions "$installRemoteModule_version" 5.0.0) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - # enable cares support? - addConfigureOption enable-cares yes - elif test $(compareVersions "$installRemoteModule_version" 4.8.11) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable json support? - addConfigureOption enable-swoole-json yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - # enable cares support? - addConfigureOption enable-cares yes - elif test $(compareVersions "$installRemoteModule_version" 4.6.1) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable json support? - addConfigureOption enable-swoole-json yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - elif test $(compareVersions "$installRemoteModule_version" 4.4.0) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - elif test $(compareVersions "$installRemoteModule_version" 4.2.11) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable postgresql coroutine client support? - addConfigureOption enable-coroutine-postgresql yes - elif test $(compareVersions "$installRemoteModule_version" 4.2.7) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable postgresql coroutine client support? - addConfigureOption enable-coroutine-postgresql yes - # enable kernel debug/trace log? (it will degrade performance) - addConfigureOption enable-debug-log no - elif test $(compareVersions "$installRemoteModule_version" 4.2.6) -ge 0; then - # enable debug/trace log support? - addConfigureOption enable-debug-log no - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable postgresql coroutine client support? - addConfigureOption enable-coroutine-postgresql yes - elif test $(compareVersions "$installRemoteModule_version" 4.2.0) -ge 0; then - # enable debug/trace log support? - addConfigureOption enable-debug-log no - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable async-redis support? - addConfigureOption enable-async-redis yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable postgresql coroutine client support? - addConfigureOption enable-coroutine-postgresql yes - elif test $(compareVersions "$installRemoteModule_version" 2.1.2) -ge 0; then - # enable debug/trace log support? - addConfigureOption enable-swoole-debug no - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable async-redis support? - addConfigureOption enable-async-redis yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable postgresql coroutine client support? - addConfigureOption enable-coroutine-postgresql yes - elif test $(compareVersions "$installRemoteModule_version" 1.10.4) -ge 0 && test $(compareVersions "$installRemoteModule_version" 1.10.5) -le 0; then - # enable debug/trace log support? - addConfigureOption enable-swoole-debug no - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable async-redis support? - addConfigureOption enable-async-redis yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - fi - ;; - tdlib) - if ! test -f /usr/lib/libphpcpp.so || ! test -f /usr/include/phpcpp.h; then - if test $PHP_MAJMIN_VERSION -le 701; then - cd "$(getPackageSource https://codeload.github.com/CopernicaMarketingSoftware/PHP-CPP/tar.gz/v2.1.4)" - elif test $PHP_MAJMIN_VERSION -le 703; then - cd "$(getPackageSource https://codeload.github.com/CopernicaMarketingSoftware/PHP-CPP/tar.gz/v2.2.0)" - else - cd "$(getPackageSource https://codeload.github.com/CopernicaMarketingSoftware/PHP-CPP/tar.gz/444d1f90cf6b7f3cb5178fa0d0b5ab441b0389d0)" - fi - make -j$(getProcessorCount) - make install - cd - >/dev/null - fi - if test -z "$installRemoteModule_path"; then - installRemoteModule_tmp="$(mktemp -p /tmp/src -d)" - git clone --depth=1 --recurse-submodules https://github.com/yaroslavche/phptdlib.git "$installRemoteModule_tmp" - mkdir "$installRemoteModule_tmp/build" - cd "$installRemoteModule_tmp/build" - cmake -D USE_SHARED_PHPCPP:BOOL=ON .. - make - make install - cd - >/dev/null - rm "$PHP_INI_DIR/conf.d/tdlib.ini" - installRemoteModule_manuallyInstalled=1 - fi - ;; - tensor) - installRemoteModule_cppflags='-Wno-incompatible-pointer-types' - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=2.2.3 - fi - fi - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -ge 315 && test $DISTRO_MAJMIN_VERSION -le 317; then - if test -e /usr/lib/liblapacke.so.3 && ! test -e /usr/lib/liblapacke.so; then - ln -s /usr/lib/liblapacke.so.3 /usr/lib/liblapacke.so - fi - fi - ;; - esac - ;; - tideways) - case "$DISTRO" in - alpine) - case $(uname -m) in - aarch64 | arm64 | armv8) - installRemoteModule_architecture=alpine-arm64 - ;; - *) - installRemoteModule_architecture=alpine-x86_64 - ;; - esac - ;; - debian) - case $(uname -m) in - aarch64 | arm64 | armv8) - installRemoteModule_architecture=arm64 - ;; - *) - installRemoteModule_architecture=x86_64 - ;; - esac - ;; - esac - installRemoteModule_url="$(curl -sSLf -o - https://tideways.com/profiler/downloads | grep -Eo "\"[^\"]+/tideways-php-([0-9]+\.[0-9]+\.[0-9]+)-$installRemoteModule_architecture.tar.gz\"" | cut -d'"' -f2)" - if test -z "$installRemoteModule_url"; then - echo 'Failed to find the tideways tarball to be downloaded' - exit 1 - fi - printf 'Downloading tideways from %s\n' "$installRemoteModule_url" - installRemoteModule_src="$(getPackageSource $installRemoteModule_url)" - if test -d "$installRemoteModule_src/dist"; then - installRemoteModule_src="$installRemoteModule_src/dist" - fi - installRemoteModule_src="$installRemoteModule_src/tideways-php" - case "$DISTRO" in - alpine) - installRemoteModule_src="$installRemoteModule_src-alpine" - ;; - esac - installRemoteModule_src="$installRemoteModule_src-$PHP_MAJDOTMIN_VERSION" - if test $PHP_THREADSAFE -eq 1; then - installRemoteModule_src="$installRemoteModule_src-zts" - fi - installRemoteModule_src="$installRemoteModule_src.so" - if ! test -f "$installRemoteModule_src"; then - echo 'tideways does not support the current environment' >&2 - exit 1 - fi - mv "$installRemoteModule_src" $(getPHPExtensionsDir)/tideways.so - installRemoteModule_manuallyInstalled=1 - ;; - uopz) - installRemoteModule_cppflags='-Wno-incompatible-pointer-types' - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.0.7 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=5.0.2 - elif test $PHP_MAJMIN_VERSION -le 740; then - installRemoteModule_version=6.1.2 - fi - fi - ;; - uploadprogress) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=1.1.4 - fi - fi - ;; - uuid) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.0.5 - fi - fi - ;; - uv) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 800; then - installRemoteModule_version=0.2.4 - else - installRemoteModule_version=beta - fi - fi - ;; - vld) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=0.14.0 - else - installRemoteModule_version=beta - fi - fi - ;; - wikidiff2) - case "$DISTRO" in - alpine) - if ! isLibDatrieInstalled; then - installLibDatrie - fi - if ! isLibThaiInstalled; then - installLibThai - fi - ;; - esac - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 702; then - installRemoteModule_version=1.13.0 - else - installRemoteModule_version="$(git -c versionsort.suffix=- ls-remote --tags --refs --quiet --exit-code --sort=version:refname https://github.com/wikimedia/mediawiki-php-wikidiff2.git 'refs/tags/*.*.*' | tail -1 | cut -d/ -f3)" - fi - fi - installRemoteModule_src="$(getPackageSource "https://codeload.github.com/wikimedia/mediawiki-php-wikidiff2/tar.gz/refs/tags/$installRemoteModule_version")" - cd -- "$installRemoteModule_src" - phpize - ./configure - make -j$(getProcessorCount) - make install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - ;; - xdebug) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 500; then - installRemoteModule_version=2.0.5 - elif test $PHP_MAJMIN_VERSION -le 503; then - installRemoteModule_version=2.2.7 - elif test $PHP_MAJMIN_VERSION -le 504; then - installRemoteModule_version=2.4.1 - elif test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.5.5 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=2.6.1 - elif test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=2.9.8 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=3.1.6 - fi - fi - ;; - xdiff) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.5.2 - fi - fi - if ! test -f /usr/local/lib/libxdiff.* && ! test -f /usr/lib/libxdiff.* && ! test -f /usr/lib/x86_64*/libxdiff.*; then - installRemoteModule_src="$(getPackageSource https://raw.githubusercontent.com/mlocati/docker-php-extension-installer/assets/resources/libxdiff-0.23.tar.gz)" - cd -- "$installRemoteModule_src" - ./configure --disable-shared --disable-dependency-tracking --with-pic - make -j$(getProcessorCount) - make install - cd - >/dev/null - fi - ;; - xhprof) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.9.4 - fi - fi - ;; - xlswriter) - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 1.2.7) -ge 0; then - # enable reader supports? - addConfigureOption enable-reader yes - fi - ;; - xmldiff) - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version"; then - case "$DISTRO_VERSION" in - debian@8) - # The gcc version of Debian Jessie is too old => error: 'nullptr' was not declared in this scope - installRemoteModule_version=1.1.4 - ;; - esac - fi - ;; - xmlrpc) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=beta - fi - ;; - yac) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.9.2 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 2.2.0) -ge 0; then - # Enable igbinary serializer support - if php --ri igbinary >/dev/null 2>/dev/null; then - addConfigureOption enable-igbinary yes - else - addConfigureOption enable-igbinary no - fi - # Enable json serializer support - if php --ri json >/dev/null 2>/dev/null; then - addConfigureOption enable-json yes - else - addConfigureOption enable-json no - fi - # Enable msgpack serializer support - if php --ri msgpack >/dev/null 2>/dev/null; then - addConfigureOption enable-msgpack yes - else - addConfigureOption enable-msgpack no - fi - fi - ;; - yaml) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.3.1 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=2.0.4 - fi - fi - ;; - yar) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.2.5 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 1.2.4) -ge 0; then - # Enable Msgpack Supports - if php --ri msgpack >/dev/null 2>/dev/null; then - addConfigureOption enable-msgpack yes - else - addConfigureOption enable-msgpack no - fi - fi - ;; - zmq) - if test -z "$installRemoteModule_version"; then - installRemoteModule_src="$(getPackageSource https://github.com/zeromq/php-zmq/tarball/master)" - cd "$installRemoteModule_src" - phpize - ./configure - make -j$(getProcessorCount) - make install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - fi - ;; - zookeeper) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.5.0 - fi - fi - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - case "$DISTRO" in - alpine) - if ! test -f /usr/local/include/zookeeper/zookeeper.h; then - if test $(compareVersions "$installRemoteModule_version" 1.0.0) -lt 0; then - installRemoteModule_src="$(getPackageSource http://archive.apache.org/dist/zookeeper/zookeeper-3.5.9/apache-zookeeper-3.5.9.tar.gz)" - else - installRemoteModule_tmp="$(curl -sSLf https://downloads.apache.org/zookeeper/stable | sed -E 's/["<>]/\n/g' | grep -E '^(apache-)?zookeeper-[0-9]+\.[0-9]+\.[0-9]+\.(tar\.gz|tgz)$' | head -n1)" - if test -z "$installRemoteModule_tmp"; then - echo 'Failed to detect the zookeeper library URL' >&2 - exit 1 - fi - installRemoteModule_src="$(getPackageSource https://downloads.apache.org/zookeeper/stable/$installRemoteModule_tmp)" - fi - cd -- "$installRemoteModule_src" - if test -d ~/.m2; then - installRemoteModule_delm2=n - else - installRemoteModule_delm2=y - fi - mvn -pl zookeeper-jute compile - cd - >/dev/null - cd -- "$installRemoteModule_src/zookeeper-client/zookeeper-client-c" - autoreconf -if - ./configure --without-cppunit - make -j$(getProcessorCount) CFLAGS='-Wno-stringop-truncation -Wno-format-overflow' - make install - cd - >/dev/null - if test $installRemoteModule_delm2 = y; then - rm -rf ~/.m2 - fi - fi - ;; - esac - ;; - zstd) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.11.0 - fi - fi - ;; - esac - if test $installRemoteModule_manuallyInstalled -eq 0; then - if test -n "$installRemoteModule_path"; then - printf ' (installing version %s from %s)\n' "$installRemoteModule_version" "$installRemoteModule_path" - elif test -n "$installRemoteModule_version"; then - printf ' (installing version %s)\n' "$installRemoteModule_version" - fi - installPeclPackage "$installRemoteModule_module" "$installRemoteModule_version" "$installRemoteModule_cppflags" "$installRemoteModule_path" - fi - postProcessModule "$installRemoteModule_module" - if test $installRemoteModule_manuallyInstalled -lt 2; then - case "${IPE_SKIP_CHECK:-}" in - 1 | y* | Y*) ;; - *) - checkModuleWorking "$installRemoteModule_module" "$installRemoteModule_ini_basename" "$installRemoteModule_ini_extra" - ;; - esac - enablePhpExtension "$installRemoteModule_module" "$installRemoteModule_ini_basename" "$installRemoteModule_ini_extra" - fi -} - -# Check if a module/helper may be installed using the pecl archive -# -# Arguments: -# $1: the name of the module -# -# Return: -# 0: true -# 1: false -moduleMayUsePecl() { - case "$1" in - @composer | @fix_letsencrypt) - return 1 - ;; - blackfire | geos | ioncube_loader | snuffleupagus | sourceguardian | spx | tdlib | tideways) - return 1 - ;; - esac - if test -n "$(getModuleSourceCodePath "$1")"; then - return 1 - fi - if stringInList "$1" "$BUNDLED_MODULES"; then - return 1 - fi - return 0 -} - -# Configure the PECL package installer -# -# Updates: -# PHP_MODULES_TO_INSTALL -# Sets: -# USE_PICKLE 0: no, 1: yes (already downloaded), 2: yes (build it from source) -configureInstaller() { - USE_PICKLE=0 - if ! which pecl >/dev/null; then - for PHP_MODULE_TO_INSTALL in $PHP_MODULES_TO_INSTALL; do - if ! moduleMayUsePecl "$PHP_MODULE_TO_INSTALL"; then - continue - fi - if false && anyStringInList '' "$PHP_MODULES_TO_INSTALL"; then - USE_PICKLE=2 - else - curl -sSLf https://github.com/FriendsOfPHP/pickle/releases/latest/download/pickle.phar -o /tmp/pickle - chmod +x /tmp/pickle - USE_PICKLE=1 - fi - break - done - fi - if test $USE_PICKLE -eq 0; then - if test -z "$(pear config-get http_proxy)"; then - if test -n "${http_proxy:-}"; then - pear config-set http_proxy "$http_proxy" || true - elif test -n "${HTTP_PROXY:-}"; then - pear config-set http_proxy "$HTTP_PROXY" || true - fi - fi - pecl channel-update pecl.php.net || true - fi -} - -buildPickle() { - printf '### BUILDING PICKLE ###\n' - buildPickle_tempDir="$(mktemp -p /tmp/src -d)" - cd -- "$buildPickle_tempDir" - printf 'Downloading... ' - git clone --quiet --depth 1 https://github.com/FriendsOfPHP/pickle.git . - git tag 0.7.0 - printf 'done.\n' - printf 'Installing composer... ' - actuallyInstallComposer . composer '--1 --quiet' - printf 'done.\n' - printf 'Installing composer dependencies... ' - ./composer install --no-dev --no-progress --no-suggest --optimize-autoloader --ignore-platform-reqs --quiet --no-cache - printf 'done.\n' - printf 'Building... ' - php -d phar.readonly=0 box.phar build - mv pickle.phar /tmp/pickle - printf 'done.\n' - cd - >/dev/null -} - -# Add a configure option for the pecl/pickle install command -# -# Arguments: -# $1: the option name -# $2: the option value -addConfigureOption() { - if test $USE_PICKLE -eq 0; then - printf -- '%s\n' "$2" >>"$CONFIGURE_FILE" - else - printf -- '--%s=%s\n' "$1" "$2" >>"$CONFIGURE_FILE" - fi -} - -# Actually installs a PECL package -# -# Arguments: -# $1: the package to be installed -# $2: the package version to be installed (optional) -# $3: the value of the CPPFLAGS variable (optional) -# $4: the path of the local package to be installed (optional, downloaded from PECL if omitted/empty) -installPeclPackage() { - if ! test -f "$CONFIGURE_FILE"; then - printf '\n' >"$CONFIGURE_FILE" - fi - installPeclPackage_name="$(getPeclModuleName "$1")" - if test -z "${2:-}"; then - installPeclPackage_fullname="$installPeclPackage_name" - else - installPeclPackage_fullname="$installPeclPackage_name-$2" - fi - installPeclPackage_path="${4:-}" - if test -z "$installPeclPackage_path"; then - installPeclPackage_path="$installPeclPackage_fullname" - fi - if test $USE_PICKLE -eq 0; then - if test -n "${4:-}"; then - if test -f "$installPeclPackage_path/package2.xml"; then - installPeclPackage_path="$installPeclPackage_path/package2.xml" - else - installPeclPackage_path="$installPeclPackage_path/package.xml" - fi - fi - cat "$CONFIGURE_FILE" | MAKE="make -j$(getCompilationProcessorCount $1)" CPPFLAGS="${3:-}" pecl install "$installPeclPackage_path" - else - MAKEFLAGS="-j$(getCompilationProcessorCount $1)" CPPFLAGS="${3:-}" /tmp/pickle install --tmp-dir=/tmp/pickle.tmp --no-interaction --version-override='' --with-configure-options "$CONFIGURE_FILE" -- "$installPeclPackage_path" - fi -} - -# Check if a string is in a list of space-separated string -# -# Arguments: -# $1: the string to be checked -# $2: the string list -# -# Return: -# 0 (true): if the string is in the list -# 1 (false): if the string is not in the list -stringInList() { - for stringInList_listItem in $2; do - if test "$1" = "$stringInList_listItem"; then - return 0 - fi - done - return 1 -} - -# Check if at least one item in a list is in another list -# -# Arguments: -# $1: the space-separated list of items to be searched -# $2: the space-separated list of reference items -# -# Return: -# 0 (true): at least one of the items in $1 is in $2 -# 1 (false): otherwise -anyStringInList() { - for anyStringInList_item in $1; do - if stringInList "$anyStringInList_item" "$2"; then - return 0 - fi - done - return 1 -} - -# Remove a word from a space-separated list -# -# Arguments: -# $1: the word to be removed -# $2: the string list -# -# Output: -# The list without the word -removeStringFromList() { - removeStringFromList_result='' - for removeStringFromList_listItem in $2; do - if test "$1" != "$removeStringFromList_listItem"; then - if test -z "$removeStringFromList_result"; then - removeStringFromList_result="$removeStringFromList_listItem" - else - removeStringFromList_result="$removeStringFromList_result $removeStringFromList_listItem" - fi - fi - done - printf '%s' "$removeStringFromList_result" -} - -# Invoke apt-get update -invokeAptGetUpdate() { - if test -n "${IPE_APTGETUPDATE_ALREADY:-}"; then - apt-get update -q - return - fi - IPE_APTGETUPDATE_ALREADY=y - if grep -q 'VERSION="8 (jessie)"' /etc/os-release; then - invokeAptGetUpdate_fixdistro=jessie - elif grep -q 'VERSION="9 (stretch)"' /etc/os-release; then - invokeAptGetUpdate_fixdistro=stretch - else - invokeAptGetUpdate - return - fi - # See https://www.debian.org/distrib/archive.en.html for a list of mirrors - if test -z "${IPE_DEB_ARCHIVE:-}"; then - IPE_DEB_ARCHIVE=http://archive.kernel.org/debian-archive - fi - if test -z "${IPE_DEB_ARCHIVE_SECURITY:-}"; then - IPE_DEB_ARCHIVE_SECURITY=http://archive.kernel.org/debian-archive/debian-security - fi - sed -ri "s;^(\s*deb\s+http://(httpredir|deb).debian.org/debian\s+$invokeAptGetUpdate_fixdistro-updates\b.*);#\1;" /etc/apt/sources.list - sed -ri "s;^(\s*deb\s+)http://(httpredir|deb).debian.org;\1$IPE_DEB_ARCHIVE;" /etc/apt/sources.list - sed -ri "s;^(\s*deb\s+)http://security.debian.org/debian-security;\1$IPE_DEB_ARCHIVE_SECURITY;" /etc/apt/sources.list - sed -ri "s;^(\s*deb\s+)http://security.debian.org;\1$IPE_DEB_ARCHIVE_SECURITY;" /etc/apt/sources.list - invokeAptGetUpdate_tmp="$(mktemp)" - apt-get update -q 2>"$invokeAptGetUpdate_tmp" - if test -s "$invokeAptGetUpdate_tmp"; then - cat "$invokeAptGetUpdate_tmp" >&2 - if grep -qE ' KEYEXPIRED [0-9]' "$invokeAptGetUpdate_tmp"; then - echo '############' >&2 - echo '# WARNING! #' >&2 - echo '############' >&2 - echo 'apt packages will be installed without checking authenticity!' >&2 - printf 'APT::Get::AllowUnauthenticated "true";\n' >>/etc/apt/apt.conf.d/99unauthenticated - fi - fi - rm "$invokeAptGetUpdate_tmp" -} - -# Fix the Let's Encrypt CA certificates on old distros -fixLetsEncrypt() { - printf '### FIXING LETS ENCRYPT CA CERTIFICATES ###\n' - case "$DISTRO_VERSION" in - alpine@3.7 | alpine@3.8) - printf -- '- old Alpine Linux detected: we should fix the certificates\n' - ;; - debian@8 | debian@9) - printf -- '- old Debian detected: we should fix the certificates\n' - if ! grep -q 'mozilla/ISRG_Root_X1.crt' /etc/ca-certificates.conf && grep -q 'mozilla/DST_Root_CA_X3.crt' /etc/ca-certificates.conf; then - printf -- '- old ca-certificates package detected\n' - fixCACerts_mustUpdate=1 - if test -d /var/lib/apt/lists; then - for fixCACerts_item in $(ls -1 /var/lib/apt/lists); do - case "$fixCACerts_item" in - partial | lock) ;; - *) - fixCACerts_mustUpdate=0 - break - ;; - esac - done - fi - if test $fixCACerts_mustUpdate -eq 1; then - printf -- '- refreshing the APT package list\n' - invokeAptGetUpdate - fi - printf -- '- installing newer ca-certificates package\n' - apt-get install -qqy --no-install-recommends ca-certificates - fi - ;; - *) - printf -- '- patch not required in this distro version\n' - return - ;; - esac - if grep -Eq '^mozilla/ISRG_Root_X1\.crt$' /etc/ca-certificates.conf && grep -Eq '^mozilla/DST_Root_CA_X3\.crt$' /etc/ca-certificates.conf; then - printf -- '- disabling the DST_Root_CA_X3 certificate\n' - sed -i '/^mozilla\/DST_Root_CA_X3/s/^/!/' /etc/ca-certificates.conf - printf -- '- refreshing the certificates\n' - update-ca-certificates -f - else - printf -- '- DST_Root_CA_X3 certificate not found or already disabled\n' - fi -} - -# Cleanup everything at the end of the execution -cleanup() { - if test "${IPE_UNINSTALL_CARGO:-}" = y; then - if test -f "$HOME/.cargo/env"; then - . "$HOME/.cargo/env" - fi - if command -v rustup >/dev/null; then - rustup self uninstall -y - fi - fi - if test -n "$UNNEEDED_PACKAGE_LINKS"; then - printf '### REMOVING UNNEEDED PACKAGE LINKS ###\n' - for cleanup_link in $UNNEEDED_PACKAGE_LINKS; do - if test -L "$cleanup_link"; then - rm -f "$cleanup_link" - fi - done - fi - case "$DISTRO" in - alpine) - if stringInList icu-libs "${PACKAGES_PERSISTENT_NEW:-}" && stringInList icu-data-en "${PACKAGES_PERSISTENT_NEW:-}"; then - apk del icu-data-en >/dev/null 2>&1 || true - fi - if test -n "$PACKAGES_VOLATILE"; then - printf '### REMOVING UNNEEDED PACKAGES ###\n' - apk del --purge $PACKAGES_VOLATILE - fi - ;; - debian) - if test -n "$PACKAGES_VOLATILE"; then - printf '### REMOVING UNNEEDED PACKAGES ###\n' - apt-get remove --purge -y $PACKAGES_VOLATILE - fi - if test -n "$PACKAGES_PREVIOUS"; then - printf '### RESTORING PREVIOUSLY INSTALLED PACKAGES ###\n' - apt-get install -qqy --no-install-recommends --no-upgrade $PACKAGES_PREVIOUS - fi - ;; - esac - docker-php-source delete - rm -rf /tmp/src - rm -rf /tmp/pickle - rm -rf /tmp/pickle.tmp - rm -rf "$CONFIGURE_FILE" - case "${IPE_KEEP_SYSPKG_CACHE:-}" in - 1 | y* | Y*) ;; - *) - case "$DISTRO" in - alpine) - rm -rf /var/cache/apk/* - ;; - debian) - rm -rf /var/lib/apt/lists/* - ;; - esac - rm -rf /tmp/pear - ;; - esac -} - -DEBIAN_FRONTEND=noninteractive -export DEBIAN_FRONTEND -resetIFS -mkdir -p /tmp/src -mkdir -p /tmp/pickle.tmp -IPE_ERRFLAG_FILE="$(mktemp -p /tmp/src)" -CONFIGURE_FILE=/tmp/configure-options -IPE_APK_FLAGS='' -setDistro -case "$DISTRO_VERSION" in - debian@8) - fixMaxOpenFiles || true - ;; -esac -setPHPVersionVariables -setPHPPreinstalledModules -case "$PHP_MAJMIN_VERSION" in - 505 | 506 | 700 | 701 | 702 | 703 | 704 | 800 | 801 | 802 | 803 | 804) ;; - *) - printf "### ERROR: Unsupported PHP version: %s.%s ###\n" $((PHP_MAJMIN_VERSION / 100)) $((PHP_MAJMIN_VERSION % 100)) - ;; -esac -UNNEEDED_PACKAGE_LINKS='' -processCommandArguments "$@" - -if test -z "$PHP_MODULES_TO_INSTALL"; then - exit 0 -fi - -if stringInList @fix_letsencrypt "$PHP_MODULES_TO_INSTALL"; then - # This must be the very first thing we do - fixLetsEncrypt -fi - -sortModulesToInstall - -docker-php-source extract -BUNDLED_MODULES="$(find /usr/src/php/ext -mindepth 2 -maxdepth 2 -type f -name 'config.m4' | xargs -n1 dirname | xargs -n1 basename | xargs)" -configureInstaller - -buildRequiredPackageLists $PHP_MODULES_TO_INSTALL -if test -n "$PACKAGES_PERSISTENT_PRE"; then - markPreinstalledPackagesAsUsed -fi -if test -n "$PACKAGES_PERSISTENT_NEW$PACKAGES_VOLATILE"; then - installRequiredPackages -fi -if test "$PHP_MODULES_TO_INSTALL" != '@composer'; then - setTargetTriplet -fi -if test $USE_PICKLE -gt 1; then - buildPickle -fi - -compileLibs - -for PHP_MODULE_TO_INSTALL in $PHP_MODULES_TO_INSTALL; do - case "$PHP_MODULE_TO_INSTALL" in - @fix_letsencrypt) - # Already done: it must be the first thing we do - ;; - @composer) - installComposer - ;; - *) - if stringInList "$PHP_MODULE_TO_INSTALL" "$BUNDLED_MODULES"; then - installBundledModule "$PHP_MODULE_TO_INSTALL" - else - installRemoteModule "$PHP_MODULE_TO_INSTALL" - fi - ;; - esac -done -cleanup diff --git a/php7/7.1.33/build/php/extensions/install.sh b/php7/7.1.33/build/php/extensions/install.sh deleted file mode 100644 index c663a07ca..000000000 --- a/php7/7.1.33/build/php/extensions/install.sh +++ /dev/null @@ -1,761 +0,0 @@ -#!/bin/sh - -export MC="-j$(nproc)" - -echo -echo "============================================" -echo "Install extensions from : install.sh" -echo "PHP version : ${PHP_VERSION}" -echo "Extra Extensions : ${PHP_EXTENSIONS}" -echo "Multicore Compilation : ${MC}" -echo "Container package url : ${CONTAINER_PACKAGE_URL}" -echo "Work directory : ${PWD}" -echo "============================================" -echo - - -if [ "${PHP_EXTENSIONS}" != "" ]; then - apk --update add --no-cache --virtual .build-deps autoconf g++ libtool make curl-dev gettext-dev linux-headers git -fi - - -export EXTENSIONS=",${PHP_EXTENSIONS}," - - -# -# Check if current php version is greater than or equal to -# specific version. -# -# For example, to check if current php is greater than or -# equal to PHP 7.0: -# -# isPhpVersionGreaterOrEqual 7 0 -# -# Param 1: Specific PHP Major version -# Param 2: Specific PHP Minor version -# Return : 1 if greater than or equal to, 0 if less than -# -isPhpVersionGreaterOrEqual() - { - local PHP_MAJOR_VERSION=$(php -r "echo PHP_MAJOR_VERSION;") - local PHP_MINOR_VERSION=$(php -r "echo PHP_MINOR_VERSION;") - - if [[ "$PHP_MAJOR_VERSION" -gt "$1" || "$PHP_MAJOR_VERSION" -eq "$1" && "$PHP_MINOR_VERSION" -ge "$2" ]]; then - return 1; - else - return 0; - fi -} - - -# -# Install extension from package file(.tgz), -# For example: -# -# installExtensionFromTgz redis-5.2.2 -# -# Param 1: Package name with version -# Param 2: enable options -# -installExtensionFromTgz() -{ - tgzName=$1 - result="" - extensionName="${tgzName%%-*}" - shift 1 - result=$@ - mkdir ${extensionName} - tar -xf ${tgzName}.tgz -C ${extensionName} --strip-components=1 - ( cd ${extensionName} && phpize && ./configure ${result} && make ${MC} && make install ) - - docker-php-ext-enable ${extensionName} -} - - -# install use install-php-extensions -if [[ -z "${EXTENSIONS##*,ioncube_loader,*}" ]]; then - echo "---------- Install ioncube_loader ----------" - install-php-extensions ioncube_loader -fi - -if [[ -z "${EXTENSIONS##*,imagick,*}" ]]; then - echo "---------- Install imagick ----------" - install-php-extensions imagick -fi - -if [[ -z "${EXTENSIONS##*,sourceguardian,*}" ]]; then - echo "---------- Install sourceguardian ----------" - apk add eudev-libs - install-php-extensions sourceguardian -fi - -if [[ -z "${EXTENSIONS##*,ssh2,*}" ]]; then - echo "---------- Install ssh2 ----------" - install-php-extensions ssh2 -fi - -if [[ -z "${EXTENSIONS##*,maxminddb,*}" ]]; then - echo "---------- Install maxminddb ----------" - install-php-extensions maxminddb -fi - -if [[ -z "${EXTENSIONS##*,zstd,*}" ]]; then - echo "---------- Install zstd ----------" - install-php-extensions zstd -fi - -if [[ -z "${EXTENSIONS##*,grpc,*}" ]]; then - echo "---------- Install grpc ----------" - install-php-extensions grpc - docker-php-ext-enable grpc -fi - -if [[ -z "${EXTENSIONS##*,ftp,*}" ]]; then - echo "---------- Install ftp ----------" - install-php-extensions ftp -fi - -if [[ -z "${EXTENSIONS##*,snuffleupagus,*}" ]]; then - echo "---------- Install snuffleupagus ----------" - install-php-extensions snuffleupagus -fi - -if [[ -z "${EXTENSIONS##*,pdo_oci,*}" ]]; then - echo "---------- Install pdo_oci ----------" - install-php-extensions pdo_oci -fi - -if [[ -z "${EXTENSIONS##*,oci8,*}" ]]; then - echo "---------- Install oci8 ----------" - install-php-extensions oci8 -fi -# end - - -if [[ -z "${EXTENSIONS##*,pdo_mysql,*}" ]]; then - echo "---------- Install pdo_mysql ----------" - docker-php-ext-install ${MC} pdo_mysql -fi - -if [[ -z "${EXTENSIONS##*,pcntl,*}" ]]; then - echo "---------- Install pcntl ----------" - docker-php-ext-install ${MC} pcntl -fi - -if [[ -z "${EXTENSIONS##*,mysqli,*}" ]]; then - echo "---------- Install mysqli ----------" - docker-php-ext-install ${MC} mysqli -fi - -if [[ -z "${EXTENSIONS##*,mbstring,*}" ]]; then - echo "---------- mbstring is installed ----------" -fi - -if [[ -z "${EXTENSIONS##*,exif,*}" ]]; then - echo "---------- Install exif ----------" - docker-php-ext-install ${MC} exif -fi - -if [[ -z "${EXTENSIONS##*,bcmath,*}" ]]; then - echo "---------- Install bcmath ----------" - docker-php-ext-install ${MC} bcmath -fi - -if [[ -z "${EXTENSIONS##*,calendar,*}" ]]; then - echo "---------- Install calendar ----------" - docker-php-ext-install ${MC} calendar -fi - -if [[ -z "${EXTENSIONS##*,zend_test,*}" ]]; then - echo "---------- Install zend_test ----------" - docker-php-ext-install ${MC} zend_test -fi - -if [[ -z "${EXTENSIONS##*,opcache,*}" ]]; then - echo "---------- Install opcache ----------" - docker-php-ext-install opcache -fi - -if [[ -z "${EXTENSIONS##*,sockets,*}" ]]; then - echo "---------- Install sockets ----------" - docker-php-ext-install ${MC} sockets -fi - -if [[ -z "${EXTENSIONS##*,gettext,*}" ]]; then - echo "---------- Install gettext ----------" - apk --no-cache add gettext-dev - docker-php-ext-install ${MC} gettext - -fi - -if [[ -z "${EXTENSIONS##*,shmop,*}" ]]; then - echo "---------- Install shmop ----------" - docker-php-ext-install ${MC} shmop -fi - -if [[ -z "${EXTENSIONS##*,sysvmsg,*}" ]]; then - echo "---------- Install sysvmsg ----------" - docker-php-ext-install ${MC} sysvmsg -fi - -if [[ -z "${EXTENSIONS##*,sysvsem,*}" ]]; then - echo "---------- Install sysvsem ----------" - docker-php-ext-install ${MC} sysvsem -fi - -if [[ -z "${EXTENSIONS##*,sysvshm,*}" ]]; then - echo "---------- Install sysvshm ----------" - docker-php-ext-install ${MC} sysvshm -fi - -if [[ -z "${EXTENSIONS##*,pdo_firebird,*}" ]]; then - echo "---------- Install pdo_firebird ----------" - docker-php-ext-install ${MC} pdo_firebird -fi - -if [[ -z "${EXTENSIONS##*,pdo_dblib,*}" ]]; then - echo "---------- Install pdo_dblib ----------" - docker-php-ext-install ${MC} pdo_dblib -fi - -if [[ -z "${EXTENSIONS##*,pdo_odbc,*}" ]]; then - echo "---------- Install pdo_odbc ----------" - docker-php-ext-install ${MC} pdo_odbc -fi - -if [[ -z "${EXTENSIONS##*,pdo_pgsql,*}" ]]; then - echo "---------- Install pdo_pgsql ----------" - apk --no-cache add postgresql-dev \ - && docker-php-ext-install ${MC} pdo_pgsql -fi - -if [[ -z "${EXTENSIONS##*,pgsql,*}" ]]; then - echo "---------- Install pgsql ----------" - apk --no-cache add postgresql-dev \ - && docker-php-ext-install ${MC} pgsql -fi - -if [[ -z "${EXTENSIONS##*,odbc,*}" ]]; then - echo "---------- Install odbc ----------" - docker-php-ext-install ${MC} odbc -fi - -if [[ -z "${EXTENSIONS##*,dba,*}" ]]; then - echo "---------- Install dba ----------" - docker-php-ext-install ${MC} dba -fi - -if [[ -z "${EXTENSIONS##*,interbase,*}" ]]; then - echo "---------- Install interbase ----------" - echo "Alpine linux do not support interbase/firebird!!!" - #docker-php-ext-install ${MC} interbase -fi - -if [[ -z "${EXTENSIONS##*,hprose,*}" ]]; then - echo "---------- Install hprose ----------" - printf "\n" | pecl install hprose - docker-php-ext-enable hprose -fi - -if [[ -z "${EXTENSIONS##*,gd,*}" ]]; then - echo "---------- Install gd ----------" - isPhpVersionGreaterOrEqual 7 4 - - if [[ "$?" = "1" ]]; then - # "--with-xxx-dir" was removed from php 7.4, - # issue: https://github.com/docker-library/php/issues/912 - options="--with-freetype --with-jpeg --with-webp" - else - options="--with-gd --with-freetype-dir=/usr/include/ --with-png-dir=/usr/include/ --with-jpeg-dir=/usr/include/ --with-webp-dir=/usr/include/" - fi - - apk add --no-cache \ - freetype \ - freetype-dev \ - libpng \ - libpng-dev \ - libjpeg-turbo \ - libjpeg-turbo-dev \ - libwebp-dev \ - && docker-php-ext-configure gd ${options} \ - && docker-php-ext-install ${MC} gd \ - && apk del \ - freetype-dev \ - libpng-dev \ - libjpeg-turbo-dev -fi - -if [[ -z "${EXTENSIONS##*,yaml,*}" ]]; then - echo "---------- Install yaml ----------" - apk add --no-cache yaml-dev - printf "\n" | pecl install yaml - docker-php-ext-enable yaml -fi - -if [[ -z "${EXTENSIONS##*,intl,*}" ]]; then - echo "---------- Install intl ----------" - apk add --no-cache icu-dev - docker-php-ext-install ${MC} intl -fi - -if [[ -z "${EXTENSIONS##*,bz2,*}" ]]; then - echo "---------- Install bz2 ----------" - apk add --no-cache bzip2-dev - docker-php-ext-install ${MC} bz2 -fi - -if [[ -z "${EXTENSIONS##*,soap,*}" ]]; then - echo "---------- Install soap ----------" - apk add --no-cache libxml2-dev - docker-php-ext-install ${MC} soap -fi - -if [[ -z "${EXTENSIONS##*,xsl,*}" ]]; then - echo "---------- Install xsl ----------" - apk add --no-cache libxml2-dev libxslt-dev - docker-php-ext-install ${MC} xsl -fi - -if [[ -z "${EXTENSIONS##*,xmlrpc,*}" ]]; then - echo "---------- Install xmlrpc ----------" - apk add --no-cache libxml2-dev libxslt-dev - docker-php-ext-install ${MC} xmlrpc -fi - -if [[ -z "${EXTENSIONS##*,wddx,*}" ]]; then - echo "---------- Install wddx ----------" - apk add --no-cache libxml2-dev libxslt-dev - docker-php-ext-install ${MC} wddx -fi - -if [[ -z "${EXTENSIONS##*,curl,*}" ]]; then - echo "---------- curl is installed ----------" -fi - -if [[ -z "${EXTENSIONS##*,readline,*}" ]]; then - echo "---------- Install readline ----------" - apk add --no-cache readline-dev - apk add --no-cache libedit-dev - docker-php-ext-install ${MC} readline -fi - -if [[ -z "${EXTENSIONS##*,snmp,*}" ]]; then - echo "---------- Install snmp ----------" - apk add --no-cache net-snmp-dev - docker-php-ext-install ${MC} snmp -fi - -if [[ -z "${EXTENSIONS##*,pspell,*}" ]]; then - echo "---------- Install pspell ----------" - apk add --no-cache aspell-dev - apk add --no-cache aspell-en - docker-php-ext-install ${MC} pspell -fi - -if [[ -z "${EXTENSIONS##*,recode,*}" ]]; then - echo "---------- Install recode ----------" - apk add --no-cache recode-dev - docker-php-ext-install ${MC} recode -fi - -if [[ -z "${EXTENSIONS##*,tidy,*}" ]]; then - echo "---------- Install tidy ----------" - apk add --no-cache tidyhtml-dev - - # Fix: https://github.com/htacg/tidy-html5/issues/235 - ln -s /usr/include/tidybuffio.h /usr/include/buffio.h - - docker-php-ext-install ${MC} tidy -fi - -if [[ -z "${EXTENSIONS##*,gmp,*}" ]]; then - echo "---------- Install gmp ----------" - apk add --no-cache gmp-dev - docker-php-ext-install ${MC} gmp -fi - -if [[ -z "${EXTENSIONS##*,imap,*}" ]]; then - echo "---------- Install imap ----------" - apk add --no-cache imap-dev - docker-php-ext-configure imap --with-imap --with-imap-ssl - docker-php-ext-install ${MC} imap -fi - -if [[ -z "${EXTENSIONS##*,ldap,*}" ]]; then - echo "---------- Install ldap ----------" - apk add --no-cache ldb-dev - apk add --no-cache openldap-dev - docker-php-ext-install ${MC} ldap -fi - -if [[ -z "${EXTENSIONS##*,psr,*}" ]]; then - echo "---------- Install psr ----------" - printf "\n" | pecl install psr - docker-php-ext-enable psr -fi - -if [[ -z "${EXTENSIONS##*,imagick,*}" ]]; then - echo "---------- Install imagick ----------" - apk add --no-cache file-dev - apk add --no-cache imagemagick-dev - printf "\n" | pecl install imagick-3.4.4 - docker-php-ext-enable imagick -fi - -if [[ -z "${EXTENSIONS##*,rar,*}" ]]; then - echo "---------- Install rar ----------" - printf "\n" | pecl install rar - docker-php-ext-enable rar -fi - -if [[ -z "${EXTENSIONS##*,ast,*}" ]]; then - echo "---------- Install ast ----------" - printf "\n" | pecl install ast - docker-php-ext-enable ast -fi - -if [[ -z "${EXTENSIONS##*,msgpack,*}" ]]; then - echo "---------- Install msgpack ----------" - printf "\n" | pecl install msgpack - docker-php-ext-enable msgpack -fi - -if [[ -z "${EXTENSIONS##*,igbinary,*}" ]]; then - echo "---------- Install igbinary ----------" - printf "\n" | pecl install igbinary - docker-php-ext-enable igbinary -fi - - -if [[ -z "${EXTENSIONS##*,protobuf,*}" ]]; then - isPhpVersionGreaterOrEqual 7 0 - if [[ "$?" = "1" ]]; then - echo "---------- Install protobuf ----------" - printf "\n" | pecl install protobuf - docker-php-ext-enable protobuf - else - echo "yar requires PHP >= 7.0.0, installed version is ${PHP_VERSION}" - fi -fi - -if [[ -z "${EXTENSIONS##*,yac,*}" ]]; then - isPhpVersionGreaterOrEqual 7 0 - if [[ "$?" = "1" ]]; then - echo "---------- Install yac ----------" - printf "\n" | pecl install yac-2.0.2 - docker-php-ext-enable yac - else - echo "yar requires PHP >= 7.0.0, installed version is ${PHP_VERSION}" - fi -fi - -if [[ -z "${EXTENSIONS##*,yar,*}" ]]; then - isPhpVersionGreaterOrEqual 7 0 - if [[ "$?" = "1" ]]; then - echo "---------- Install yar ----------" - printf "\n" | pecl install yar - docker-php-ext-enable yar - else - echo "yar requires PHP >= 7.0.0, installed version is ${PHP_VERSION}" - fi - -fi - - - -if [[ -z "${EXTENSIONS##*,yaconf,*}" ]]; then - isPhpVersionGreaterOrEqual 7 0 - if [[ "$?" = "1" ]]; then - echo "---------- Install yaconf ----------" - printf "\n" | pecl install yaconf - docker-php-ext-enable yaconf - else - echo "yar requires PHP >= 7.0.0, installed version is ${PHP_VERSION}" - fi -fi - -if [[ -z "${EXTENSIONS##*,seaslog,*}" ]]; then - echo "---------- Install seaslog ----------" - printf "\n" | pecl install seaslog - docker-php-ext-enable seaslog -fi - -if [[ -z "${EXTENSIONS##*,varnish,*}" ]]; then - echo "---------- Install varnish ----------" - apk add --no-cache varnish-dev - printf "\n" | pecl install varnish - docker-php-ext-enable varnish -fi - -if [[ -z "${EXTENSIONS##*,pdo_sqlsrv,*}" ]]; then - isPhpVersionGreaterOrEqual 7 1 - if [[ "$?" = "1" ]]; then - echo "---------- Install pdo_sqlsrv ----------" - install-php-extensions pdo_sqlsrv - else - echo "pdo_sqlsrv requires PHP >= 7.1.0, installed version is ${PHP_VERSION}" - fi -fi - -if [[ -z "${EXTENSIONS##*,sqlsrv,*}" ]]; then - isPhpVersionGreaterOrEqual 7 1 - if [[ "$?" = "1" ]]; then - echo "---------- Install sqlsrv ----------" - install-php-extensions sqlsrv - else - echo "sqlsrv requires PHP >= 7.1.0, installed version is ${PHP_VERSION}" - fi -fi - -if [[ -z "${EXTENSIONS##*,mcrypt,*}" ]]; then - isPhpVersionGreaterOrEqual 7 0 - if [[ "$?" = "1" ]]; then - echo "---------- Install mcrypt ----------" - apk add --no-cache libmcrypt-dev libmcrypt re2c - printf "\n" |pecl install mcrypt - docker-php-ext-enable mcrypt - else - echo "---------- Install mcrypt ----------" - apk add --no-cache libmcrypt-dev \ - && docker-php-ext-install ${MC} mcrypt - fi -fi - -if [[ -z "${EXTENSIONS##*,mysql,*}" ]]; then - isPhpVersionGreaterOrEqual 7 0 - - if [[ "$?" = "1" ]]; then - echo "---------- mysql was REMOVED from PHP 7.0.0 ----------" - else - echo "---------- Install mysql ----------" - docker-php-ext-install ${MC} mysql - fi -fi - -if [[ -z "${EXTENSIONS##*,sodium,*}" ]]; then - isPhpVersionGreaterOrEqual 7 2 - if [[ "$?" = "1" ]]; then - echo - echo "Sodium is bundled with PHP from PHP 7.2.0" - echo - else - echo "---------- Install sodium ----------" - apk add --no-cache libsodium-dev - docker-php-ext-install ${MC} sodium - fi -fi - -if [[ -z "${EXTENSIONS##*,amqp,*}" ]]; then - echo "---------- Install amqp ----------" - apk add --no-cache rabbitmq-c-dev - installExtensionFromTgz amqp-1.10.2 -fi - -if [[ -z "${EXTENSIONS##*,redis,*}" ]]; then - echo "---------- Install redis ----------" - installExtensionFromTgz redis-5.3.7 -fi - -if [[ -z "${EXTENSIONS##*,apcu,*}" ]]; then - echo "---------- Install apcu ----------" - installExtensionFromTgz apcu-5.1.17 -fi - -if [[ -z "${EXTENSIONS##*,memcached,*}" ]]; then - echo "---------- Install memcached ----------" - apk add --no-cache libmemcached-dev zlib-dev - isPhpVersionGreaterOrEqual 7 0 - - if [[ "$?" = "1" ]]; then - printf "\n" | pecl install memcached-3.1.3 - else - printf "\n" | pecl install memcached-2.2.0 - fi - - docker-php-ext-enable memcached -fi - -if [[ -z "${EXTENSIONS##*,memcache,*}" ]]; then - echo "---------- Install memcache ----------" - isPhpVersionGreaterOrEqual 7 0 - if [[ "$?" = "1" ]]; then - installExtensionFromTgz memcache-4.0.5.2 - else - installExtensionFromTgz memcache-2.2.6 - fi -fi - -if [[ -z "${EXTENSIONS##*,xdebug,*}" ]]; then - echo "---------- Install xdebug ----------" - isPhpVersionGreaterOrEqual 7 0 - - if [[ "$?" = "1" ]]; then - isPhpVersionGreaterOrEqual 7 4 - if [[ "$?" = "1" ]]; then - installExtensionFromTgz xdebug-2.9.2 - else - installExtensionFromTgz xdebug-2.6.1 - fi - else - installExtensionFromTgz xdebug-2.5.5 - fi -fi - -if [[ -z "${EXTENSIONS##*,event,*}" ]]; then - echo "---------- Install event ----------" - apk add --no-cache libevent-dev - export is_sockets_installed=$(php -r "echo extension_loaded('sockets');") - - if [[ "${is_sockets_installed}" = "" ]]; then - echo "---------- event is depend on sockets, install sockets first ----------" - docker-php-ext-install sockets - fi - - echo "---------- Install event again ----------" - mkdir event - tar -xf event-3.0.8.tgz -C event --strip-components=1 - cd event && phpize && ./configure && make && make install - - docker-php-ext-enable --ini-name event.ini event -fi - -if [[ -z "${EXTENSIONS##*,mongodb,*}" ]]; then - echo "---------- Install mongodb ----------" - apk add --no-cache openssl-dev - installExtensionFromTgz mongodb-1.7.4 - docker-php-ext-configure mongodb --with-mongodb-ssl=openssl -fi - -if [[ -z "${EXTENSIONS##*,yaf,*}" ]]; then - echo "---------- Install yaf ----------" - isPhpVersionGreaterOrEqual 7 0 - - if [[ "$?" = "1" ]]; then - printf "\n" | pecl install yaf - docker-php-ext-enable yaf - else - installExtensionFromTgz yaf-2.3.5 - fi -fi - - -if [[ -z "${EXTENSIONS##*,swoole,*}" ]]; then - echo "---------- Install swoole ----------" - # Fix: Refer to the line containing "swoole@alpine)" in file "./install-php-extensions" - apk add --no-cache libstdc++ - - isPhpVersionGreaterOrEqual 7 0 - - if [[ "$?" = "1" ]]; then - installExtensionFromTgz swoole-4.8.11 --enable-openssl - else - installExtensionFromTgz swoole-2.0.11 - fi -fi - -if [[ -z "${EXTENSIONS##*,zip,*}" ]]; then - echo "---------- Install zip ----------" - # Fix: https://github.com/docker-library/php/issues/797 - apk add --no-cache libzip-dev - - isPhpVersionGreaterOrEqual 7 4 - if [[ "$?" != "1" ]]; then - docker-php-ext-configure zip --with-libzip=/usr/include - fi - - docker-php-ext-install ${MC} zip -fi - -if [[ -z "${EXTENSIONS##*,xhprof,*}" ]]; then - echo "---------- Install XHProf ----------" - - isPhpVersionGreaterOrEqual 7 0 - - if [[ "$?" = "1" ]]; then - mkdir xhprof \ - && tar -xf xhprof-2.2.0.tgz -C xhprof --strip-components=1 \ - && ( cd xhprof/extension/ && phpize && ./configure && make ${MC} && make install ) \ - && docker-php-ext-enable xhprof - else - echo "---------- PHP Version>= 7.0----------" - fi - -fi - -if [[ -z "${EXTENSIONS##*,xlswriter,*}" ]]; then - echo "---------- Install xlswriter ----------" - isPhpVersionGreaterOrEqual 7 0 - - if [[ "$?" = "1" ]]; then - printf "\n" | pecl install xlswriter - docker-php-ext-enable xlswriter - else - echo "---------- PHP Version>= 7.0----------" - fi -fi - -if [[ -z "${EXTENSIONS##*,rdkafka,*}" ]]; then - echo "---------- Install rdkafka ----------" - isPhpVersionGreaterOrEqual 5 6 - - if [[ "$?" = "1" ]]; then - apk add librdkafka-dev - printf "\n" | pecl install rdkafka - docker-php-ext-enable rdkafka - else - echo "---------- PHP Version>= 5.6----------" - fi -fi - -if [[ -z "${EXTENSIONS##*,zookeeper,*}" ]]; then - echo "---------- Install zookeeper ----------" - isPhpVersionGreaterOrEqual 7 0 - - if [[ "$?" = "1" ]]; then - apk add re2c - apk add libzookeeper-dev --repository http://${CONTAINER_PACKAGE_URL}/alpine/edge/testing/ - printf "\n" | pecl install zookeeper - docker-php-ext-enable zookeeper - else - echo "---------- PHP Version>= 7.0----------" - fi -fi - -if [[ -z "${EXTENSIONS##*,phalcon,*}" ]]; then - echo "---------- Install phalcon ----------" - isPhpVersionGreaterOrEqual 7 2 - - if [[ "$?" = "1" ]]; then - printf "\n" | pecl install phalcon - docker-php-ext-enable psr - docker-php-ext-enable phalcon - else - echo "---------- PHP Version>= 7.2----------" - fi -fi - -if [[ -z "${EXTENSIONS##*,sdebug,*}" ]]; then - echo "---------- Install sdebug ----------" - isPhpVersionGreaterOrEqual 7 2 - - if [[ "$?" = "1" ]]; then - curl -SL "https://github.com/swoole/sdebug/archive/sdebug_2_9-beta.tar.gz" -o sdebug.tar.gz \ - && mkdir -p sdebug \ - && tar -xf sdebug.tar.gz -C sdebug --strip-components=1 \ - && rm sdebug.tar.gz \ - && ( \ - cd sdebug \ - && phpize \ - && ./configure --enable-xdebug \ - && make clean && make && make install \ - ) \ - && docker-php-ext-enable xdebug - else - echo "---------- PHP Version>= 7.2----------" - fi -fi - -if [ "${PHP_EXTENSIONS}" != "" ]; then - apk del .build-deps \ - && docker-php-source delete -fi diff --git a/php7/7.1.33/build/php/extensions/memcache-2.2.6.tgz b/php7/7.1.33/build/php/extensions/memcache-2.2.6.tgz deleted file mode 100644 index 841d0296e..000000000 Binary files a/php7/7.1.33/build/php/extensions/memcache-2.2.6.tgz and /dev/null differ diff --git a/php7/7.1.33/build/php/extensions/memcache-4.0.5.2.tgz b/php7/7.1.33/build/php/extensions/memcache-4.0.5.2.tgz deleted file mode 100644 index 1f7d370b3..000000000 Binary files a/php7/7.1.33/build/php/extensions/memcache-4.0.5.2.tgz and /dev/null differ diff --git a/php7/7.1.33/build/php/extensions/mongodb-1.7.4.tgz b/php7/7.1.33/build/php/extensions/mongodb-1.7.4.tgz deleted file mode 100644 index 94528560b..000000000 Binary files a/php7/7.1.33/build/php/extensions/mongodb-1.7.4.tgz and /dev/null differ diff --git a/php7/7.1.33/build/php/extensions/redis-5.3.7.tgz b/php7/7.1.33/build/php/extensions/redis-5.3.7.tgz deleted file mode 100644 index db2187b4d..000000000 Binary files a/php7/7.1.33/build/php/extensions/redis-5.3.7.tgz and /dev/null differ diff --git a/php7/7.1.33/build/php/extensions/swoole-2.0.11.tgz b/php7/7.1.33/build/php/extensions/swoole-2.0.11.tgz deleted file mode 100644 index a155450ce..000000000 Binary files a/php7/7.1.33/build/php/extensions/swoole-2.0.11.tgz and /dev/null differ diff --git a/php7/7.1.33/build/php/extensions/swoole-4.8.11.tgz b/php7/7.1.33/build/php/extensions/swoole-4.8.11.tgz deleted file mode 100644 index 01674cdc9..000000000 Binary files a/php7/7.1.33/build/php/extensions/swoole-4.8.11.tgz and /dev/null differ diff --git a/php7/7.1.33/build/php/extensions/xdebug-2.5.5.tgz b/php7/7.1.33/build/php/extensions/xdebug-2.5.5.tgz deleted file mode 100644 index d62c7ff63..000000000 Binary files a/php7/7.1.33/build/php/extensions/xdebug-2.5.5.tgz and /dev/null differ diff --git a/php7/7.1.33/build/php/extensions/xdebug-2.6.1.tgz b/php7/7.1.33/build/php/extensions/xdebug-2.6.1.tgz deleted file mode 100644 index c756fba39..000000000 Binary files a/php7/7.1.33/build/php/extensions/xdebug-2.6.1.tgz and /dev/null differ diff --git a/php7/7.1.33/build/php/extensions/xdebug-2.9.2.tgz b/php7/7.1.33/build/php/extensions/xdebug-2.9.2.tgz deleted file mode 100644 index 8131fff35..000000000 Binary files a/php7/7.1.33/build/php/extensions/xdebug-2.9.2.tgz and /dev/null differ diff --git a/php7/7.1.33/build/php/extensions/xhprof-2.2.0.tgz b/php7/7.1.33/build/php/extensions/xhprof-2.2.0.tgz deleted file mode 100644 index 2614df31a..000000000 Binary files a/php7/7.1.33/build/php/extensions/xhprof-2.2.0.tgz and /dev/null differ diff --git a/php7/7.1.33/build/php/extensions/yaf-2.3.5.tgz b/php7/7.1.33/build/php/extensions/yaf-2.3.5.tgz deleted file mode 100644 index d965a0f19..000000000 Binary files a/php7/7.1.33/build/php/extensions/yaf-2.3.5.tgz and /dev/null differ diff --git a/php7/7.1.33/build/php/php-fpm.conf b/php7/7.1.33/build/php/php-fpm.conf deleted file mode 100644 index 131835891..000000000 --- a/php7/7.1.33/build/php/php-fpm.conf +++ /dev/null @@ -1,423 +0,0 @@ -; Start a new pool named 'www'. -; the variable $pool can be used in any directive and will be replaced by the -; pool name ('www' here) -[www] - -; Per pool prefix -; It only applies on the following directives: -; - 'access.log' -; - 'slowlog' -; - 'listen' (unixsocket) -; - 'chroot' -; - 'chdir' -; - 'php_values' -; - 'php_admin_values' -; When not set, the global prefix (or NONE) applies instead. -; Note: This directive can also be relative to the global prefix. -; Default Value: none -;prefix = /path/to/pools/$pool - -; Unix user/group of processes -; Note: The user is mandatory. If the group is not set, the default user's group -; will be used. -user = www-data -group = www-data - -; The address on which to accept FastCGI requests. -; Valid syntaxes are: -; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on -; a specific port; -; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on -; a specific port; -; 'port' - to listen on a TCP socket to all addresses -; (IPv6 and IPv4-mapped) on a specific port; -; '/path/to/unix/socket' - to listen on a unix socket. -; Note: This value is mandatory. -listen = 127.0.0.1:9000 - -; Set listen(2) backlog. -; Default Value: 511 (-1 on FreeBSD and OpenBSD) -;listen.backlog = 511 - -; Set permissions for unix socket, if one is used. In Linux, read/write -; permissions must be set in order to allow connections from a web server. Many -; BSD-derived systems allow connections regardless of permissions. -; Default Values: user and group are set as the running user -; mode is set to 0660 -;listen.owner = www-data -;listen.group = www-data -;listen.mode = 0660 -; When POSIX Access Control Lists are supported you can set them using -; these options, value is a comma separated list of user/group names. -; When set, listen.owner and listen.group are ignored -;listen.acl_users = -;listen.acl_groups = - -; List of addresses (IPv4/IPv6) of FastCGI clients which are allowed to connect. -; Equivalent to the FCGI_WEB_SERVER_ADDRS environment variable in the original -; PHP FCGI (5.2.2+). Makes sense only with a tcp listening socket. Each address -; must be separated by a comma. If this value is left blank, connections will be -; accepted from any ip address. -; Default Value: any -;listen.allowed_clients = 127.0.0.1 - -; Specify the nice(2) priority to apply to the pool processes (only if set) -; The value can vary from -19 (highest priority) to 20 (lower priority) -; Note: - It will only work if the FPM master process is launched as root -; - The pool processes will inherit the master process priority -; unless it specified otherwise -; Default Value: no set -; process.priority = -19 - -; Set the process dumpable flag (PR_SET_DUMPABLE prctl) even if the process user -; or group is differrent than the master process user. It allows to create process -; core dump and ptrace the process for the pool user. -; Default Value: no -; process.dumpable = yes - -; Choose how the process manager will control the number of child processes. -; Possible Values: -; static - a fixed number (pm.max_children) of child processes; -; dynamic - the number of child processes are set dynamically based on the -; following directives. With this process management, there will be -; always at least 1 children. -; pm.max_children - the maximum number of children that can -; be alive at the same time. -; pm.start_servers - the number of children created on startup. -; pm.min_spare_servers - the minimum number of children in 'idle' -; state (waiting to process). If the number -; of 'idle' processes is less than this -; number then some children will be created. -; pm.max_spare_servers - the maximum number of children in 'idle' -; state (waiting to process). If the number -; of 'idle' processes is greater than this -; number then some children will be killed. -; ondemand - no children are created at startup. Children will be forked when -; new requests will connect. The following parameter are used: -; pm.max_children - the maximum number of children that -; can be alive at the same time. -; pm.process_idle_timeout - The number of seconds after which -; an idle process will be killed. -; Note: This value is mandatory. -pm = dynamic - -; The number of child processes to be created when pm is set to 'static' and the -; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'. -; This value sets the limit on the number of simultaneous requests that will be -; served. Equivalent to the ApacheMaxClients directive with mpm_prefork. -; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP -; CGI. The below defaults are based on a server without much resources. Don't -; forget to tweak pm.* to fit your needs. -; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand' -; Note: This value is mandatory. -pm.max_children = 10 - -; The number of child processes created on startup. -; Note: Used only when pm is set to 'dynamic' -; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2 -pm.start_servers = 2 - -; The desired minimum number of idle server processes. -; Note: Used only when pm is set to 'dynamic' -; Note: Mandatory when pm is set to 'dynamic' -pm.min_spare_servers = 1 - -; The desired maximum number of idle server processes. -; Note: Used only when pm is set to 'dynamic' -; Note: Mandatory when pm is set to 'dynamic' -pm.max_spare_servers = 3 - -; The number of seconds after which an idle process will be killed. -; Note: Used only when pm is set to 'ondemand' -; Default Value: 10s -;pm.process_idle_timeout = 10s; - -; The number of requests each child process should execute before respawning. -; This can be useful to work around memory leaks in 3rd party libraries. For -; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS. -; Default Value: 0 -;pm.max_requests = 500 - -; The URI to view the FPM status page. If this value is not set, no URI will be -; recognized as a status page. It shows the following informations: -; pool - the name of the pool; -; process manager - static, dynamic or ondemand; -; start time - the date and time FPM has started; -; start since - number of seconds since FPM has started; -; accepted conn - the number of request accepted by the pool; -; listen queue - the number of request in the queue of pending -; connections (see backlog in listen(2)); -; max listen queue - the maximum number of requests in the queue -; of pending connections since FPM has started; -; listen queue len - the size of the socket queue of pending connections; -; idle processes - the number of idle processes; -; active processes - the number of active processes; -; total processes - the number of idle + active processes; -; max active processes - the maximum number of active processes since FPM -; has started; -; max children reached - number of times, the process limit has been reached, -; when pm tries to start more children (works only for -; pm 'dynamic' and 'ondemand'); -; Value are updated in real time. -; Example output: -; pool: www -; process manager: static -; start time: 01/Jul/2011:17:53:49 +0200 -; start since: 62636 -; accepted conn: 190460 -; listen queue: 0 -; max listen queue: 1 -; listen queue len: 42 -; idle processes: 4 -; active processes: 11 -; total processes: 15 -; max active processes: 12 -; max children reached: 0 -; -; By default the status page output is formatted as text/plain. Passing either -; 'html', 'xml' or 'json' in the query string will return the corresponding -; output syntax. Example: -; http://www.foo.bar/status -; http://www.foo.bar/status?json -; http://www.foo.bar/status?html -; http://www.foo.bar/status?xml -; -; By default the status page only outputs short status. Passing 'full' in the -; query string will also return status for each pool process. -; Example: -; http://www.foo.bar/status?full -; http://www.foo.bar/status?json&full -; http://www.foo.bar/status?html&full -; http://www.foo.bar/status?xml&full -; The Full status returns for each process: -; pid - the PID of the process; -; state - the state of the process (Idle, Running, ...); -; start time - the date and time the process has started; -; start since - the number of seconds since the process has started; -; requests - the number of requests the process has served; -; request duration - the duration in µs of the requests; -; request method - the request method (GET, POST, ...); -; request URI - the request URI with the query string; -; content length - the content length of the request (only with POST); -; user - the user (PHP_AUTH_USER) (or '-' if not set); -; script - the main script called (or '-' if not set); -; last request cpu - the %cpu the last request consumed -; it's always 0 if the process is not in Idle state -; because CPU calculation is done when the request -; processing has terminated; -; last request memory - the max amount of memory the last request consumed -; it's always 0 if the process is not in Idle state -; because memory calculation is done when the request -; processing has terminated; -; If the process is in Idle state, then informations are related to the -; last request the process has served. Otherwise informations are related to -; the current request being served. -; Example output: -; ************************ -; pid: 31330 -; state: Running -; start time: 01/Jul/2011:17:53:49 +0200 -; start since: 63087 -; requests: 12808 -; request duration: 1250261 -; request method: GET -; request URI: /test_mem.php?N=10000 -; content length: 0 -; user: - -; script: /home/fat/web/docs/php/test_mem.php -; last request cpu: 0.00 -; last request memory: 0 -; -; Note: There is a real-time FPM status monitoring sample web page available -; It's available in: /usr/local/share/php/fpm/status.html -; -; Note: The value must start with a leading slash (/). The value can be -; anything, but it may not be a good idea to use the .php extension or it -; may conflict with a real PHP file. -; Default Value: not set -;pm.status_path = /status - -; The ping URI to call the monitoring page of FPM. If this value is not set, no -; URI will be recognized as a ping page. This could be used to test from outside -; that FPM is alive and responding, or to -; - create a graph of FPM availability (rrd or such); -; - remove a server from a group if it is not responding (load balancing); -; - trigger alerts for the operating team (24/7). -; Note: The value must start with a leading slash (/). The value can be -; anything, but it may not be a good idea to use the .php extension or it -; may conflict with a real PHP file. -; Default Value: not set -;ping.path = /ping - -; This directive may be used to customize the response of a ping request. The -; response is formatted as text/plain with a 200 response code. -; Default Value: pong -;ping.response = pong - -; The access log file -; Default: not set -;access.log = log/$pool.access.log - -; The access log format. -; The following syntax is allowed -; %%: the '%' character -; %C: %CPU used by the request -; it can accept the following format: -; - %{user}C for user CPU only -; - %{system}C for system CPU only -; - %{total}C for user + system CPU (default) -; %d: time taken to serve the request -; it can accept the following format: -; - %{seconds}d (default) -; - %{miliseconds}d -; - %{mili}d -; - %{microseconds}d -; - %{micro}d -; %e: an environment variable (same as $_ENV or $_SERVER) -; it must be associated with embraces to specify the name of the env -; variable. Some exemples: -; - server specifics like: %{REQUEST_METHOD}e or %{SERVER_PROTOCOL}e -; - HTTP headers like: %{HTTP_HOST}e or %{HTTP_USER_AGENT}e -; %f: script filename -; %l: content-length of the request (for POST request only) -; %m: request method -; %M: peak of memory allocated by PHP -; it can accept the following format: -; - %{bytes}M (default) -; - %{kilobytes}M -; - %{kilo}M -; - %{megabytes}M -; - %{mega}M -; %n: pool name -; %o: output header -; it must be associated with embraces to specify the name of the header: -; - %{Content-Type}o -; - %{X-Powered-By}o -; - %{Transfert-Encoding}o -; - .... -; %p: PID of the child that serviced the request -; %P: PID of the parent of the child that serviced the request -; %q: the query string -; %Q: the '?' character if query string exists -; %r: the request URI (without the query string, see %q and %Q) -; %R: remote IP address -; %s: status (response code) -; %t: server time the request was received -; it can accept a strftime(3) format: -; %d/%b/%Y:%H:%M:%S %z (default) -; The strftime(3) format must be encapsuled in a %{}t tag -; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t -; %T: time the log has been written (the request has finished) -; it can accept a strftime(3) format: -; %d/%b/%Y:%H:%M:%S %z (default) -; The strftime(3) format must be encapsuled in a %{}t tag -; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t -; %u: remote user -; -; Default: "%R - %u %t \"%m %r\" %s" -;access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%" - -; The log file for slow requests -; Default Value: not set -; Note: slowlog is mandatory if request_slowlog_timeout is set -slowlog = /var/log/php/fpm.slow.log - -; The timeout for serving a single request after which a PHP backtrace will be -; dumped to the 'slowlog' file. A value of '0s' means 'off'. -; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) -; Default Value: 0 -request_slowlog_timeout = 3 - -; Depth of slow log stack trace. -; Default Value: 20 -;request_slowlog_trace_depth = 20 - -; The timeout for serving a single request after which the worker process will -; be killed. This option should be used when the 'max_execution_time' ini option -; does not stop script execution for some reason. A value of '0' means 'off'. -; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) -; Default Value: 0 -;request_terminate_timeout = 0 - -; Set open file descriptor rlimit. -; Default Value: system defined value -;rlimit_files = 1024 - -; Set max core size rlimit. -; Possible Values: 'unlimited' or an integer greater or equal to 0 -; Default Value: system defined value -;rlimit_core = 0 - -; Chroot to this directory at the start. This value must be defined as an -; absolute path. When this value is not set, chroot is not used. -; Note: you can prefix with '$prefix' to chroot to the pool prefix or one -; of its subdirectories. If the pool prefix is not set, the global prefix -; will be used instead. -; Note: chrooting is a great security feature and should be used whenever -; possible. However, all PHP paths will be relative to the chroot -; (error_log, sessions.save_path, ...). -; Default Value: not set -;chroot = - -; Chdir to this directory at the start. -; Note: relative path can be used. -; Default Value: current directory or / when chroot -;chdir = /var/www - -; Redirect worker stdout and stderr into main error log. If not set, stdout and -; stderr will be redirected to /dev/null according to FastCGI specs. -; Note: on highloaded environement, this can cause some delay in the page -; process time (several ms). -; Default Value: no -catch_workers_output = yes - -; Clear environment in FPM workers -; Prevents arbitrary environment variables from reaching FPM worker processes -; by clearing the environment in workers before env vars specified in this -; pool configuration are added. -; Setting to "no" will make all environment variables available to PHP code -; via getenv(), $_ENV and $_SERVER. -; Default Value: yes -;clear_env = no - -; Limits the extensions of the main script FPM will allow to parse. This can -; prevent configuration mistakes on the web server side. You should only limit -; FPM to .php extensions to prevent malicious users to use other extensions to -; execute php code. -; Note: set an empty value to allow all extensions. -; Default Value: .php -;security.limit_extensions = .php .php3 .php4 .php5 .php7 - -; Pass environment variables like LD_LIBRARY_PATH. All $VARIABLEs are taken from -; the current environment. -; Default Value: clean env -;env[HOSTNAME] = $HOSTNAME -;env[PATH] = /usr/local/bin:/usr/bin:/bin -;env[TMP] = /tmp -;env[TMPDIR] = /tmp -;env[TEMP] = /tmp - -; Additional php.ini defines, specific to this pool of workers. These settings -; overwrite the values previously defined in the php.ini. The directives are the -; same as the PHP SAPI: -; php_value/php_flag - you can set classic ini defines which can -; be overwritten from PHP call 'ini_set'. -; php_admin_value/php_admin_flag - these directives won't be overwritten by -; PHP call 'ini_set' -; For php_*flag, valid values are on, off, 1, 0, true, false, yes or no. - -; Defining 'extension' will load the corresponding shared extension from -; extension_dir. Defining 'disable_functions' or 'disable_classes' will not -; overwrite previously defined php.ini values, but will append the new value -; instead. - -; Note: path INI options can be relative and will be expanded with the prefix -; (pool, global or /usr/local) - -; Default Value: nothing is defined by default except the values in php.ini and -; specified at startup with the -d argument -;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com -;php_flag[display_errors] = off -;php_admin_value[error_log] = /var/log/fpm-php.www.log -;php_admin_flag[log_errors] = on -;php_admin_value[memory_limit] = 32M diff --git a/php7/7.1.33/build/php/php.ini b/php7/7.1.33/build/php/php.ini deleted file mode 100644 index b6b0aee69..000000000 --- a/php7/7.1.33/build/php/php.ini +++ /dev/null @@ -1,1933 +0,0 @@ -[PHP] - -;;;;;;;;;;;;;;;;;;; -; About php.ini ; -;;;;;;;;;;;;;;;;;;; -; PHP's initialization file, generally called php.ini, is responsible for -; configuring many of the aspects of PHP's behavior. - -; PHP attempts to find and load this configuration from a number of locations. -; The following is a summary of its search order: -; 1. SAPI module specific location. -; 2. The PHPRC environment variable. (As of PHP 5.2.0) -; 3. A number of predefined registry keys on Windows (As of PHP 5.2.0) -; 4. Current working directory (except CLI) -; 5. The web server's directory (for SAPI modules), or directory of PHP -; (otherwise in Windows) -; 6. The directory from the --with-config-file-path compile time option, or the -; Windows directory (C:\windows or C:\winnt) -; See the PHP docs for more specific information. -; http://php.net/configuration.file - -; The syntax of the file is extremely simple. Whitespace and lines -; beginning with a semicolon are silently ignored (as you probably guessed). -; Section headers (e.g. [Foo]) are also silently ignored, even though -; they might mean something in the future. - -; Directives following the section heading [PATH=/www/mysite] only -; apply to PHP files in the /www/mysite directory. Directives -; following the section heading [HOST=www.example.com] only apply to -; PHP files served from www.example.com. Directives set in these -; special sections cannot be overridden by user-defined INI files or -; at runtime. Currently, [PATH=] and [HOST=] sections only work under -; CGI/FastCGI. -; http://php.net/ini.sections - -; Directives are specified using the following syntax: -; directive = value -; Directive names are *case sensitive* - foo=bar is different from FOO=bar. -; Directives are variables used to configure PHP or PHP extensions. -; There is no name validation. If PHP can't find an expected -; directive because it is not set or is mistyped, a default value will be used. - -; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one -; of the INI constants (On, Off, True, False, Yes, No and None) or an expression -; (e.g. E_ALL & ~E_NOTICE), a quoted string ("bar"), or a reference to a -; previously set variable or directive (e.g. ${foo}) - -; Expressions in the INI file are limited to bitwise operators and parentheses: -; | bitwise OR -; ^ bitwise XOR -; & bitwise AND -; ~ bitwise NOT -; ! boolean NOT - -; Boolean flags can be turned on using the values 1, On, True or Yes. -; They can be turned off using the values 0, Off, False or No. - -; An empty string can be denoted by simply not writing anything after the equal -; sign, or by using the None keyword: - -; foo = ; sets foo to an empty string -; foo = None ; sets foo to an empty string -; foo = "None" ; sets foo to the string 'None' - -; If you use constants in your value, and these constants belong to a -; dynamically loaded extension (either a PHP extension or a Zend extension), -; you may only use these constants *after* the line that loads the extension. - -;;;;;;;;;;;;;;;;;;; -; About this file ; -;;;;;;;;;;;;;;;;;;; -; PHP comes packaged with two INI files. One that is recommended to be used -; in production environments and one that is recommended to be used in -; development environments. - -; php.ini-production contains settings which hold security, performance and -; best practices at its core. But please be aware, these settings may break -; compatibility with older or less security conscience applications. We -; recommending using the production ini in production and testing environments. - -; php.ini-development is very similar to its production variant, except it is -; much more verbose when it comes to errors. We recommend using the -; development version only in development environments, as errors shown to -; application users can inadvertently leak otherwise secure information. - -; This is php.ini-production INI file. - -;;;;;;;;;;;;;;;;;;; -; Quick Reference ; -;;;;;;;;;;;;;;;;;;; -; The following are all the settings which are different in either the production -; or development versions of the INIs with respect to PHP's default behavior. -; Please see the actual settings later in the document for more details as to why -; we recommend these changes in PHP's behavior. - -; display_errors -; Default Value: On -; Development Value: On -; Production Value: Off - -; display_startup_errors -; Default Value: Off -; Development Value: On -; Production Value: Off - -; error_reporting -; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT - -; html_errors -; Default Value: On -; Development Value: On -; Production value: On - -; log_errors -; Default Value: Off -; Development Value: On -; Production Value: On - -; max_input_time -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) - -; output_buffering -; Default Value: Off -; Development Value: 4096 -; Production Value: 4096 - -; register_argc_argv -; Default Value: On -; Development Value: Off -; Production Value: Off - -; request_order -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" - -; session.gc_divisor -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 - -; session.sid_bits_per_character -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 - -; short_open_tag -; Default Value: On -; Development Value: Off -; Production Value: Off - -; track_errors -; Default Value: Off -; Development Value: On -; Production Value: Off - -; variables_order -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS" - -;;;;;;;;;;;;;;;;;;;; -; php.ini Options ; -;;;;;;;;;;;;;;;;;;;; -; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini" -;user_ini.filename = ".user.ini" - -; To disable this feature set this option to empty value -;user_ini.filename = - -; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes) -;user_ini.cache_ttl = 300 - -;;;;;;;;;;;;;;;;;;;; -; Language Options ; -;;;;;;;;;;;;;;;;;;;; - -; Enable the PHP scripting language engine under Apache. -; http://php.net/engine -engine = On - -; This directive determines whether or not PHP will recognize code between -; tags as PHP source which should be processed as such. It is -; generally recommended that should be used and that this feature -; should be disabled, as enabling it may result in issues when generating XML -; documents, however this remains supported for backward compatibility reasons. -; Note that this directive does not control the would work. -; http://php.net/syntax-highlighting -;highlight.string = #DD0000 -;highlight.comment = #FF9900 -;highlight.keyword = #007700 -;highlight.default = #0000BB -;highlight.html = #000000 - -; If enabled, the request will be allowed to complete even if the user aborts -; the request. Consider enabling it if executing long requests, which may end up -; being interrupted by the user or a browser timing out. PHP's default behavior -; is to disable this feature. -; http://php.net/ignore-user-abort -;ignore_user_abort = On - -; Determines the size of the realpath cache to be used by PHP. This value should -; be increased on systems where PHP opens many files to reflect the quantity of -; the file operations performed. -; http://php.net/realpath-cache-size -;realpath_cache_size = 4096k - -; Duration of time, in seconds for which to cache realpath information for a given -; file or directory. For systems with rarely changing files, consider increasing this -; value. -; http://php.net/realpath-cache-ttl -;realpath_cache_ttl = 120 - -; Enables or disables the circular reference collector. -; http://php.net/zend.enable-gc -zend.enable_gc = On - -; If enabled, scripts may be written in encodings that are incompatible with -; the scanner. CP936, Big5, CP949 and Shift_JIS are the examples of such -; encodings. To use this feature, mbstring extension must be enabled. -; Default: Off -;zend.multibyte = Off - -; Allows to set the default encoding for the scripts. This value will be used -; unless "declare(encoding=...)" directive appears at the top of the script. -; Only affects if zend.multibyte is set. -; Default: "" -;zend.script_encoding = - -;;;;;;;;;;;;;;;;; -; Miscellaneous ; -;;;;;;;;;;;;;;;;; - -; Decides whether PHP may expose the fact that it is installed on the server -; (e.g. by adding its signature to the Web server header). It is no security -; threat in any way, but it makes it possible to determine whether you use PHP -; on your server or not. -; http://php.net/expose-php -expose_php = Off - -;;;;;;;;;;;;;;;;;;; -; Resource Limits ; -;;;;;;;;;;;;;;;;;;; - -; Maximum execution time of each script, in seconds -; http://php.net/max-execution-time -; Note: This directive is hardcoded to 0 for the CLI SAPI -max_execution_time = 30 - -; Maximum amount of time each script may spend parsing request data. It's a good -; idea to limit this time on productions servers in order to eliminate unexpectedly -; long running scripts. -; Note: This directive is hardcoded to -1 for the CLI SAPI -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) -; http://php.net/max-input-time -max_input_time = 60 - -; Maximum input variable nesting level -; http://php.net/max-input-nesting-level -;max_input_nesting_level = 64 - -; How many GET/POST/COOKIE input variables may be accepted -; max_input_vars = 1000 - -; Maximum amount of memory a script may consume (128MB) -; http://php.net/memory-limit -memory_limit = 256M - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; Error handling and logging ; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -; This directive informs PHP of which errors, warnings and notices you would like -; it to take action for. The recommended way of setting values for this -; directive is through the use of the error level constants and bitwise -; operators. The error level constants are below here for convenience as well as -; some common settings and their meanings. -; By default, PHP is set to take action on all errors, notices and warnings EXCEPT -; those related to E_NOTICE and E_STRICT, which together cover best practices and -; recommended coding standards in PHP. For performance reasons, this is the -; recommend error reporting setting. Your production server shouldn't be wasting -; resources complaining about best practices and coding standards. That's what -; development servers and development settings are for. -; Note: The php.ini-development file has this setting as E_ALL. This -; means it pretty much reports everything which is exactly what you want during -; development and early testing. -; -; Error Level Constants: -; E_ALL - All errors and warnings (includes E_STRICT as of PHP 5.4.0) -; E_ERROR - fatal run-time errors -; E_RECOVERABLE_ERROR - almost fatal run-time errors -; E_WARNING - run-time warnings (non-fatal errors) -; E_PARSE - compile-time parse errors -; E_NOTICE - run-time notices (these are warnings which often result -; from a bug in your code, but it's possible that it was -; intentional (e.g., using an uninitialized variable and -; relying on the fact it is automatically initialized to an -; empty string) -; E_STRICT - run-time notices, enable to have PHP suggest changes -; to your code which will ensure the best interoperability -; and forward compatibility of your code -; E_CORE_ERROR - fatal errors that occur during PHP's initial startup -; E_CORE_WARNING - warnings (non-fatal errors) that occur during PHP's -; initial startup -; E_COMPILE_ERROR - fatal compile-time errors -; E_COMPILE_WARNING - compile-time warnings (non-fatal errors) -; E_USER_ERROR - user-generated error message -; E_USER_WARNING - user-generated warning message -; E_USER_NOTICE - user-generated notice message -; E_DEPRECATED - warn about code that will not work in future versions -; of PHP -; E_USER_DEPRECATED - user-generated deprecation warnings -; -; Common Values: -; E_ALL (Show all errors, warnings and notices including coding standards.) -; E_ALL & ~E_NOTICE (Show all errors, except for notices) -; E_ALL & ~E_NOTICE & ~E_STRICT (Show all errors, except for notices and coding standards warnings.) -; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors) -; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT -; http://php.net/error-reporting -error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT - -; This directive controls whether or not and where PHP will output errors, -; notices and warnings too. Error output is very useful during development, but -; it could be very dangerous in production environments. Depending on the code -; which is triggering the error, sensitive information could potentially leak -; out of your application such as database usernames and passwords or worse. -; For production environments, we recommend logging errors rather than -; sending them to STDOUT. -; Possible Values: -; Off = Do not display any errors -; stderr = Display errors to STDERR (affects only CGI/CLI binaries!) -; On or stdout = Display errors to STDOUT -; Default Value: On -; Development Value: On -; Production Value: Off -; http://php.net/display-errors -display_errors = Off - -; The display of errors which occur during PHP's startup sequence are handled -; separately from display_errors. PHP's default behavior is to suppress those -; errors from clients. Turning the display of startup errors on can be useful in -; debugging configuration problems. We strongly recommend you -; set this to 'off' for production servers. -; Default Value: Off -; Development Value: On -; Production Value: Off -; http://php.net/display-startup-errors -display_startup_errors = Off - -; Besides displaying errors, PHP can also log errors to locations such as a -; server-specific log, STDERR, or a location specified by the error_log -; directive found below. While errors should not be displayed on productions -; servers they should still be monitored and logging is a great way to do that. -; Default Value: Off -; Development Value: On -; Production Value: On -; http://php.net/log-errors -log_errors = On - -; Set maximum length of log_errors. In error_log information about the source is -; added. The default is 1024 and 0 allows to not apply any maximum length at all. -; http://php.net/log-errors-max-len -log_errors_max_len = 1024 - -; Do not log repeated messages. Repeated errors must occur in same file on same -; line unless ignore_repeated_source is set true. -; http://php.net/ignore-repeated-errors -ignore_repeated_errors = Off - -; Ignore source of message when ignoring repeated messages. When this setting -; is On you will not log errors with repeated messages from different files or -; source lines. -; http://php.net/ignore-repeated-source -ignore_repeated_source = Off - -; If this parameter is set to Off, then memory leaks will not be shown (on -; stdout or in the log). This has only effect in a debug compile, and if -; error reporting includes E_WARNING in the allowed list -; http://php.net/report-memleaks -report_memleaks = On - -; This setting is on by default. -;report_zend_debug = 0 - -; Store the last error/warning message in $php_errormsg (boolean). Setting this value -; to On can assist in debugging and is appropriate for development servers. It should -; however be disabled on production servers. -; Default Value: Off -; Development Value: On -; Production Value: Off -; http://php.net/track-errors -track_errors = Off - -; Turn off normal error reporting and emit XML-RPC error XML -; http://php.net/xmlrpc-errors -;xmlrpc_errors = 0 - -; An XML-RPC faultCode -;xmlrpc_error_number = 0 - -; When PHP displays or logs an error, it has the capability of formatting the -; error message as HTML for easier reading. This directive controls whether -; the error message is formatted as HTML or not. -; Note: This directive is hardcoded to Off for the CLI SAPI -; Default Value: On -; Development Value: On -; Production value: On -; http://php.net/html-errors -html_errors = On - -; If html_errors is set to On *and* docref_root is not empty, then PHP -; produces clickable error messages that direct to a page describing the error -; or function causing the error in detail. -; You can download a copy of the PHP manual from http://php.net/docs -; and change docref_root to the base URL of your local copy including the -; leading '/'. You must also specify the file extension being used including -; the dot. PHP's default behavior is to leave these settings empty, in which -; case no links to documentation are generated. -; Note: Never use this feature for production boxes. -; http://php.net/docref-root -; Examples -;docref_root = "/phpmanual/" - -; http://php.net/docref-ext -;docref_ext = .html - -; String to output before an error message. PHP's default behavior is to leave -; this setting blank. -; http://php.net/error-prepend-string -; Example: -;error_prepend_string = "" - -; String to output after an error message. PHP's default behavior is to leave -; this setting blank. -; http://php.net/error-append-string -; Example: -;error_append_string = "" - -; Log errors to specified file. PHP's default behavior is to leave this value -; empty. -; http://php.net/error-log -; Example: -;error_log = php_errors.log -; Log errors to syslog (Event Log on Windows). -error_log = /var/log/php/php.error.log - -;windows.show_crt_warning -; Default value: 0 -; Development value: 0 -; Production value: 0 - -;;;;;;;;;;;;;;;;; -; Data Handling ; -;;;;;;;;;;;;;;;;; - -; The separator used in PHP generated URLs to separate arguments. -; PHP's default setting is "&". -; http://php.net/arg-separator.output -; Example: -;arg_separator.output = "&" - -; List of separator(s) used by PHP to parse input URLs into variables. -; PHP's default setting is "&". -; NOTE: Every character in this directive is considered as separator! -; http://php.net/arg-separator.input -; Example: -;arg_separator.input = ";&" - -; This directive determines which super global arrays are registered when PHP -; starts up. G,P,C,E & S are abbreviations for the following respective super -; globals: GET, POST, COOKIE, ENV and SERVER. There is a performance penalty -; paid for the registration of these arrays and because ENV is not as commonly -; used as the others, ENV is not recommended on productions servers. You -; can still get access to the environment variables through getenv() should you -; need to. -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS"; -; http://php.net/variables-order -variables_order = "GPCS" - -; This directive determines which super global data (G,P & C) should be -; registered into the super global array REQUEST. If so, it also determines -; the order in which that data is registered. The values for this directive -; are specified in the same manner as the variables_order directive, -; EXCEPT one. Leaving this value empty will cause PHP to use the value set -; in the variables_order directive. It does not mean it will leave the super -; globals array REQUEST empty. -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" -; http://php.net/request-order -request_order = "GP" - -; This directive determines whether PHP registers $argv & $argc each time it -; runs. $argv contains an array of all the arguments passed to PHP when a script -; is invoked. $argc contains an integer representing the number of arguments -; that were passed when the script was invoked. These arrays are extremely -; useful when running scripts from the command line. When this directive is -; enabled, registering these variables consumes CPU cycles and memory each time -; a script is executed. For performance reasons, this feature should be disabled -; on production servers. -; Note: This directive is hardcoded to On for the CLI SAPI -; Default Value: On -; Development Value: Off -; Production Value: Off -; http://php.net/register-argc-argv -register_argc_argv = Off - -; When enabled, the ENV, REQUEST and SERVER variables are created when they're -; first used (Just In Time) instead of when the script starts. If these -; variables are not used within a script, having this directive on will result -; in a performance gain. The PHP directive register_argc_argv must be disabled -; for this directive to have any affect. -; http://php.net/auto-globals-jit -auto_globals_jit = On - -; Whether PHP will read the POST data. -; This option is enabled by default. -; Most likely, you won't want to disable this option globally. It causes $_POST -; and $_FILES to always be empty; the only way you will be able to read the -; POST data will be through the php://input stream wrapper. This can be useful -; to proxy requests or to process the POST data in a memory efficient fashion. -; http://php.net/enable-post-data-reading -;enable_post_data_reading = Off - -; Maximum size of POST data that PHP will accept. -; Its value may be 0 to disable the limit. It is ignored if POST data reading -; is disabled through enable_post_data_reading. -; http://php.net/post-max-size -post_max_size = 100M - -; Automatically add files before PHP document. -; http://php.net/auto-prepend-file -auto_prepend_file = - -; Automatically add files after PHP document. -; http://php.net/auto-append-file -auto_append_file = - -; By default, PHP will output a media type using the Content-Type header. To -; disable this, simply set it to be empty. -; -; PHP's built-in default media type is set to text/html. -; http://php.net/default-mimetype -default_mimetype = "text/html" - -; PHP's default character set is set to UTF-8. -; http://php.net/default-charset -default_charset = "UTF-8" - -; PHP internal character encoding is set to empty. -; If empty, default_charset is used. -; http://php.net/internal-encoding -;internal_encoding = - -; PHP input character encoding is set to empty. -; If empty, default_charset is used. -; http://php.net/input-encoding -;input_encoding = - -; PHP output character encoding is set to empty. -; If empty, default_charset is used. -; See also output_buffer. -; http://php.net/output-encoding -;output_encoding = - -;;;;;;;;;;;;;;;;;;;;;;;;; -; Paths and Directories ; -;;;;;;;;;;;;;;;;;;;;;;;;; - -; UNIX: "/path1:/path2" -;include_path = ".:/php/includes" -; -; Windows: "\path1;\path2" -;include_path = ".;c:\php\includes" -; -; PHP's default setting for include_path is ".;/path/to/php/pear" -; http://php.net/include-path - -; The root of the PHP pages, used only if nonempty. -; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root -; if you are running php as a CGI under any web server (other than IIS) -; see documentation for security issues. The alternate is to use the -; cgi.force_redirect configuration below -; http://php.net/doc-root -doc_root = - -; The directory under which PHP opens the script using /~username used only -; if nonempty. -; http://php.net/user-dir -user_dir = - -; Directory in which the loadable extensions (modules) reside. -; http://php.net/extension-dir -; extension_dir = "./" -; On windows: -; extension_dir = "ext" - -; Directory where the temporary files should be placed. -; Defaults to the system default (see sys_get_temp_dir) -; sys_temp_dir = "/tmp" - -; Whether or not to enable the dl() function. The dl() function does NOT work -; properly in multithreaded servers, such as IIS or Zeus, and is automatically -; disabled on them. -; http://php.net/enable-dl -enable_dl = Off - -; cgi.force_redirect is necessary to provide security running PHP as a CGI under -; most web servers. Left undefined, PHP turns this on by default. You can -; turn it off here AT YOUR OWN RISK -; **You CAN safely turn this off for IIS, in fact, you MUST.** -; http://php.net/cgi.force-redirect -;cgi.force_redirect = 1 - -; if cgi.nph is enabled it will force cgi to always sent Status: 200 with -; every request. PHP's default behavior is to disable this feature. -;cgi.nph = 1 - -; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape -; (iPlanet) web servers, you MAY need to set an environment variable name that PHP -; will look for to know it is OK to continue execution. Setting this variable MAY -; cause security issues, KNOW WHAT YOU ARE DOING FIRST. -; http://php.net/cgi.redirect-status-env -;cgi.redirect_status_env = - -; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's -; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok -; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting -; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting -; of zero causes PHP to behave as before. Default is 1. You should fix your scripts -; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. -; http://php.net/cgi.fix-pathinfo -;cgi.fix_pathinfo=1 - -; if cgi.discard_path is enabled, the PHP CGI binary can safely be placed outside -; of the web tree and people will not be able to circumvent .htaccess security. -; http://php.net/cgi.dicard-path -;cgi.discard_path=1 - -; FastCGI under IIS (on WINNT based OS) supports the ability to impersonate -; security tokens of the calling client. This allows IIS to define the -; security context that the request runs under. mod_fastcgi under Apache -; does not currently support this feature (03/17/2002) -; Set to 1 if running under IIS. Default is zero. -; http://php.net/fastcgi.impersonate -;fastcgi.impersonate = 1 - -; Disable logging through FastCGI connection. PHP's default behavior is to enable -; this feature. -;fastcgi.logging = 0 - -; cgi.rfc2616_headers configuration option tells PHP what type of headers to -; use when sending HTTP response code. If set to 0, PHP sends Status: header that -; is supported by Apache. When this option is set to 1, PHP will send -; RFC2616 compliant header. -; Default is zero. -; http://php.net/cgi.rfc2616-headers -;cgi.rfc2616_headers = 0 - -; cgi.check_shebang_line controls whether CGI PHP checks for line starting with #! -; (shebang) at the top of the running script. This line might be needed if the -; script support running both as stand-alone script and via PHP CGI<. PHP in CGI -; mode skips this line and ignores its content if this directive is turned on. -; http://php.net/cgi.check-shebang-line -;cgi.check_shebang_line=1 - -;;;;;;;;;;;;;;;; -; File Uploads ; -;;;;;;;;;;;;;;;; - -; Whether to allow HTTP file uploads. -; http://php.net/file-uploads -file_uploads = On - -; Temporary directory for HTTP uploaded files (will use system default if not -; specified). -; http://php.net/upload-tmp-dir -;upload_tmp_dir = - -; Maximum allowed size for uploaded files. -; http://php.net/upload-max-filesize -upload_max_filesize = 50M - -; Maximum number of files that can be uploaded via a single request -max_file_uploads = 20 - -;;;;;;;;;;;;;;;;;; -; Fopen wrappers ; -;;;;;;;;;;;;;;;;;; - -; Whether to allow the treatment of URLs (like http:// or ftp://) as files. -; http://php.net/allow-url-fopen -allow_url_fopen = On - -; Whether to allow include/require to open URLs (like http:// or ftp://) as files. -; http://php.net/allow-url-include -allow_url_include = Off - -; Define the anonymous ftp password (your email address). PHP's default setting -; for this is empty. -; http://php.net/from -;from="john@doe.com" - -; Define the User-Agent string. PHP's default setting for this is empty. -; http://php.net/user-agent -;user_agent="PHP" - -; Default timeout for socket based streams (seconds) -; http://php.net/default-socket-timeout -default_socket_timeout = 60 - -; If your scripts have to deal with files from Macintosh systems, -; or you are running on a Mac and need to deal with files from -; unix or win32 systems, setting this flag will cause PHP to -; automatically detect the EOL character in those files so that -; fgets() and file() will work regardless of the source of the file. -; http://php.net/auto-detect-line-endings -;auto_detect_line_endings = Off - -;;;;;;;;;;;;;;;;;;;;;; -; Dynamic Extensions ; -;;;;;;;;;;;;;;;;;;;;;; - -; If you wish to have an extension loaded automatically, use the following -; syntax: -; -; extension=modulename.extension -; -; For example, on Windows: -; -; extension=mysqli.dll -; -; ... or under UNIX: -; -; extension=mysqli.so -; -; ... or with a path: -; -; extension=/path/to/extension/mysqli.so -; -; If you only provide the name of the extension, PHP will look for it in its -; default extension directory. -; -; Windows Extensions -; Note that ODBC support is built in, so no dll is needed for it. -; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5+) -; extension folders as well as the separate PECL DLL download (PHP 5+). -; Be sure to appropriately set the extension_dir directive. -; -;extension=php_bz2.dll -;extension=php_curl.dll -;extension=php_fileinfo.dll -;extension=php_ftp.dll -;extension=php_gd2.dll -;extension=php_gettext.dll -;extension=php_gmp.dll -;extension=php_intl.dll -;extension=php_imap.dll -;extension=php_interbase.dll -;extension=php_ldap.dll -;extension=php_mbstring.dll -;extension=php_exif.dll ; Must be after mbstring as it depends on it -;extension=php_mysqli.dll -;extension=php_oci8_12c.dll ; Use with Oracle Database 12c Instant Client -;extension=php_openssl.dll -;extension=php_pdo_firebird.dll -;extension=php_pdo_mysql.dll -;extension=php_pdo_oci.dll -;extension=php_pdo_odbc.dll -;extension=php_pdo_pgsql.dll -;extension=php_pdo_sqlite.dll -;extension=php_pgsql.dll -;extension=php_shmop.dll - -; The MIBS data available in the PHP distribution must be installed. -; See http://www.php.net/manual/en/snmp.installation.php -;extension=php_snmp.dll - -;extension=php_soap.dll -;extension=php_sockets.dll -;extension=php_sqlite3.dll -;extension=php_tidy.dll -;extension=php_xmlrpc.dll -;extension=php_xsl.dll - -;;;;;;;;;;;;;;;;;;; -; Module Settings ; -;;;;;;;;;;;;;;;;;;; - -[CLI Server] -; Whether the CLI web server uses ANSI color coding in its terminal output. -cli_server.color = On - -[Date] -; Defines the default timezone used by the date functions -; http://php.net/date.timezone -date.timezone = Asia/Shanghai - -; http://php.net/date.default-latitude -;date.default_latitude = 31.7667 - -; http://php.net/date.default-longitude -;date.default_longitude = 35.2333 - -; http://php.net/date.sunrise-zenith -;date.sunrise_zenith = 90.583333 - -; http://php.net/date.sunset-zenith -;date.sunset_zenith = 90.583333 - -[filter] -; http://php.net/filter.default -;filter.default = unsafe_raw - -; http://php.net/filter.default-flags -;filter.default_flags = - -[iconv] -; Use of this INI entry is deprecated, use global input_encoding instead. -; If empty, default_charset or input_encoding or iconv.input_encoding is used. -; The precedence is: default_charset < intput_encoding < iconv.input_encoding -;iconv.input_encoding = - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;iconv.internal_encoding = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; If empty, default_charset or output_encoding or iconv.output_encoding is used. -; The precedence is: default_charset < output_encoding < iconv.output_encoding -; To use an output encoding conversion, iconv's output handler must be set -; otherwise output encoding conversion cannot be performed. -;iconv.output_encoding = - -[intl] -;intl.default_locale = -; This directive allows you to produce PHP errors when some error -; happens within intl functions. The value is the level of the error produced. -; Default is 0, which does not produce any errors. -;intl.error_level = E_WARNING -;intl.use_exceptions = 0 - -[sqlite3] -;sqlite3.extension_dir = - -[Pcre] -;PCRE library backtracking limit. -; http://php.net/pcre.backtrack-limit -;pcre.backtrack_limit=100000 - -;PCRE library recursion limit. -;Please note that if you set this value to a high number you may consume all -;the available process stack and eventually crash PHP (due to reaching the -;stack size limit imposed by the Operating System). -; http://php.net/pcre.recursion-limit -;pcre.recursion_limit=100000 - -;Enables or disables JIT compilation of patterns. This requires the PCRE -;library to be compiled with JIT support. -;pcre.jit=1 - -[Pdo] -; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off" -; http://php.net/pdo-odbc.connection-pooling -;pdo_odbc.connection_pooling=strict - -;pdo_odbc.db2_instance_name - -[Pdo_mysql] -; If mysqlnd is used: Number of cache slots for the internal result set cache -; http://php.net/pdo_mysql.cache_size -pdo_mysql.cache_size = 2000 - -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -; http://php.net/pdo_mysql.default-socket -pdo_mysql.default_socket= - -[Phar] -; http://php.net/phar.readonly -;phar.readonly = On - -; http://php.net/phar.require-hash -;phar.require_hash = On - -;phar.cache_list = - -[mail function] -; For Win32 only. -; http://php.net/smtp -SMTP = localhost -; http://php.net/smtp-port -smtp_port = 25 - -; For Win32 only. -; http://php.net/sendmail-from -;sendmail_from = me@example.com - -; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). -; http://php.net/sendmail-path -;sendmail_path = - -; Force the addition of the specified parameters to be passed as extra parameters -; to the sendmail binary. These parameters will always replace the value of -; the 5th parameter to mail(). -;mail.force_extra_parameters = - -; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename -mail.add_x_header = On - -; The path to a log file that will log all mail() calls. Log entries include -; the full path of the script, line number, To address and headers. -;mail.log = -; Log mail to syslog (Event Log on Windows). -;mail.log = syslog - -[ODBC] -; http://php.net/odbc.default-db -;odbc.default_db = Not yet implemented - -; http://php.net/odbc.default-user -;odbc.default_user = Not yet implemented - -; http://php.net/odbc.default-pw -;odbc.default_pw = Not yet implemented - -; Controls the ODBC cursor model. -; Default: SQL_CURSOR_STATIC (default). -;odbc.default_cursortype - -; Allow or prevent persistent links. -; http://php.net/odbc.allow-persistent -odbc.allow_persistent = On - -; Check that a connection is still valid before reuse. -; http://php.net/odbc.check-persistent -odbc.check_persistent = On - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/odbc.max-persistent -odbc.max_persistent = -1 - -; Maximum number of links (persistent + non-persistent). -1 means no limit. -; http://php.net/odbc.max-links -odbc.max_links = -1 - -; Handling of LONG fields. Returns number of bytes to variables. 0 means -; passthru. -; http://php.net/odbc.defaultlrl -odbc.defaultlrl = 4096 - -; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char. -; See the documentation on odbc_binmode and odbc_longreadlen for an explanation -; of odbc.defaultlrl and odbc.defaultbinmode -; http://php.net/odbc.defaultbinmode -odbc.defaultbinmode = 1 - -;birdstep.max_links = -1 - -[Interbase] -; Allow or prevent persistent links. -ibase.allow_persistent = 1 - -; Maximum number of persistent links. -1 means no limit. -ibase.max_persistent = -1 - -; Maximum number of links (persistent + non-persistent). -1 means no limit. -ibase.max_links = -1 - -; Default database name for ibase_connect(). -;ibase.default_db = - -; Default username for ibase_connect(). -;ibase.default_user = - -; Default password for ibase_connect(). -;ibase.default_password = - -; Default charset for ibase_connect(). -;ibase.default_charset = - -; Default timestamp format. -ibase.timestampformat = "%Y-%m-%d %H:%M:%S" - -; Default date format. -ibase.dateformat = "%Y-%m-%d" - -; Default time format. -ibase.timeformat = "%H:%M:%S" - -[MySQLi] - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/mysqli.max-persistent -mysqli.max_persistent = -1 - -; Allow accessing, from PHP's perspective, local files with LOAD DATA statements -; http://php.net/mysqli.allow_local_infile -;mysqli.allow_local_infile = On - -; Allow or prevent persistent links. -; http://php.net/mysqli.allow-persistent -mysqli.allow_persistent = On - -; Maximum number of links. -1 means no limit. -; http://php.net/mysqli.max-links -mysqli.max_links = -1 - -; If mysqlnd is used: Number of cache slots for the internal result set cache -; http://php.net/mysqli.cache_size -mysqli.cache_size = 2000 - -; Default port number for mysqli_connect(). If unset, mysqli_connect() will use -; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the -; compile-time value defined MYSQL_PORT (in that order). Win32 will only look -; at MYSQL_PORT. -; http://php.net/mysqli.default-port -mysqli.default_port = 3306 - -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -; http://php.net/mysqli.default-socket -mysqli.default_socket = - -; Default host for mysql_connect() (doesn't apply in safe mode). -; http://php.net/mysqli.default-host -mysqli.default_host = - -; Default user for mysql_connect() (doesn't apply in safe mode). -; http://php.net/mysqli.default-user -mysqli.default_user = - -; Default password for mysqli_connect() (doesn't apply in safe mode). -; Note that this is generally a *bad* idea to store passwords in this file. -; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw") -; and reveal this password! And of course, any users with read access to this -; file will be able to reveal the password as well. -; http://php.net/mysqli.default-pw -mysqli.default_pw = - -; Allow or prevent reconnect -mysqli.reconnect = Off - -[mysqlnd] -; Enable / Disable collection of general statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -; http://php.net/mysqlnd.collect_statistics -mysqlnd.collect_statistics = On - -; Enable / Disable collection of memory usage statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -; http://php.net/mysqlnd.collect_memory_statistics -mysqlnd.collect_memory_statistics = Off - -; Records communication from all extensions using mysqlnd to the specified log -; file. -; http://php.net/mysqlnd.debug -;mysqlnd.debug = - -; Defines which queries will be logged. -; http://php.net/mysqlnd.log_mask -;mysqlnd.log_mask = 0 - -; Default size of the mysqlnd memory pool, which is used by result sets. -; http://php.net/mysqlnd.mempool_default_size -;mysqlnd.mempool_default_size = 16000 - -; Size of a pre-allocated buffer used when sending commands to MySQL in bytes. -; http://php.net/mysqlnd.net_cmd_buffer_size -;mysqlnd.net_cmd_buffer_size = 2048 - -; Size of a pre-allocated buffer used for reading data sent by the server in -; bytes. -; http://php.net/mysqlnd.net_read_buffer_size -;mysqlnd.net_read_buffer_size = 32768 - -; Timeout for network requests in seconds. -; http://php.net/mysqlnd.net_read_timeout -;mysqlnd.net_read_timeout = 31536000 - -; SHA-256 Authentication Plugin related. File with the MySQL server public RSA -; key. -; http://php.net/mysqlnd.sha256_server_public_key -;mysqlnd.sha256_server_public_key = - -[OCI8] - -; Connection: Enables privileged connections using external -; credentials (OCI_SYSOPER, OCI_SYSDBA) -; http://php.net/oci8.privileged-connect -;oci8.privileged_connect = Off - -; Connection: The maximum number of persistent OCI8 connections per -; process. Using -1 means no limit. -; http://php.net/oci8.max-persistent -;oci8.max_persistent = -1 - -; Connection: The maximum number of seconds a process is allowed to -; maintain an idle persistent connection. Using -1 means idle -; persistent connections will be maintained forever. -; http://php.net/oci8.persistent-timeout -;oci8.persistent_timeout = -1 - -; Connection: The number of seconds that must pass before issuing a -; ping during oci_pconnect() to check the connection validity. When -; set to 0, each oci_pconnect() will cause a ping. Using -1 disables -; pings completely. -; http://php.net/oci8.ping-interval -;oci8.ping_interval = 60 - -; Connection: Set this to a user chosen connection class to be used -; for all pooled server requests with Oracle 11g Database Resident -; Connection Pooling (DRCP). To use DRCP, this value should be set to -; the same string for all web servers running the same application, -; the database pool must be configured, and the connection string must -; specify to use a pooled server. -;oci8.connection_class = - -; High Availability: Using On lets PHP receive Fast Application -; Notification (FAN) events generated when a database node fails. The -; database must also be configured to post FAN events. -;oci8.events = Off - -; Tuning: This option enables statement caching, and specifies how -; many statements to cache. Using 0 disables statement caching. -; http://php.net/oci8.statement-cache-size -;oci8.statement_cache_size = 20 - -; Tuning: Enables statement prefetching and sets the default number of -; rows that will be fetched automatically after statement execution. -; http://php.net/oci8.default-prefetch -;oci8.default_prefetch = 100 - -; Compatibility. Using On means oci_close() will not close -; oci_connect() and oci_new_connect() connections. -; http://php.net/oci8.old-oci-close-semantics -;oci8.old_oci_close_semantics = Off - -[PostgreSQL] -; Allow or prevent persistent links. -; http://php.net/pgsql.allow-persistent -pgsql.allow_persistent = On - -; Detect broken persistent links always with pg_pconnect(). -; Auto reset feature requires a little overheads. -; http://php.net/pgsql.auto-reset-persistent -pgsql.auto_reset_persistent = Off - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/pgsql.max-persistent -pgsql.max_persistent = -1 - -; Maximum number of links (persistent+non persistent). -1 means no limit. -; http://php.net/pgsql.max-links -pgsql.max_links = -1 - -; Ignore PostgreSQL backends Notice message or not. -; Notice message logging require a little overheads. -; http://php.net/pgsql.ignore-notice -pgsql.ignore_notice = 0 - -; Log PostgreSQL backends Notice message or not. -; Unless pgsql.ignore_notice=0, module cannot log notice message. -; http://php.net/pgsql.log-notice -pgsql.log_notice = 0 - -[bcmath] -; Number of decimal digits for all bcmath functions. -; http://php.net/bcmath.scale -bcmath.scale = 0 - -[browscap] -; http://php.net/browscap -;browscap = extra/browscap.ini - -[Session] -; Handler used to store/retrieve data. -; http://php.net/session.save-handler -session.save_handler = files - -; Argument passed to save_handler. In the case of files, this is the path -; where data files are stored. Note: Windows users have to change this -; variable in order to use PHP's session functions. -; -; The path can be defined as: -; -; session.save_path = "N;/path" -; -; where N is an integer. Instead of storing all the session files in -; /path, what this will do is use subdirectories N-levels deep, and -; store the session data in those directories. This is useful if -; your OS has problems with many files in one directory, and is -; a more efficient layout for servers that handle many sessions. -; -; NOTE 1: PHP will not create this directory structure automatically. -; You can use the script in the ext/session dir for that purpose. -; NOTE 2: See the section on garbage collection below if you choose to -; use subdirectories for session storage -; -; The file storage module creates files using mode 600 by default. -; You can change that by using -; -; session.save_path = "N;MODE;/path" -; -; where MODE is the octal representation of the mode. Note that this -; does not overwrite the process's umask. -; http://php.net/session.save-path -;session.save_path = "/tmp" - -; Whether to use strict session mode. -; Strict session mode does not accept uninitialized session ID and regenerate -; session ID if browser sends uninitialized session ID. Strict mode protects -; applications from session fixation via session adoption vulnerability. It is -; disabled by default for maximum compatibility, but enabling it is encouraged. -; https://wiki.php.net/rfc/strict_sessions -session.use_strict_mode = 0 - -; Whether to use cookies. -; http://php.net/session.use-cookies -session.use_cookies = 1 - -; http://php.net/session.cookie-secure -;session.cookie_secure = - -; This option forces PHP to fetch and use a cookie for storing and maintaining -; the session id. We encourage this operation as it's very helpful in combating -; session hijacking when not specifying and managing your own session id. It is -; not the be-all and end-all of session hijacking defense, but it's a good start. -; http://php.net/session.use-only-cookies -session.use_only_cookies = 1 - -; Name of the session (used as cookie name). -; http://php.net/session.name -session.name = PHPSESSID - -; Initialize session on request startup. -; http://php.net/session.auto-start -session.auto_start = 0 - -; Lifetime in seconds of cookie or, if 0, until browser is restarted. -; http://php.net/session.cookie-lifetime -session.cookie_lifetime = 0 - -; The path for which the cookie is valid. -; http://php.net/session.cookie-path -session.cookie_path = / - -; The domain for which the cookie is valid. -; http://php.net/session.cookie-domain -session.cookie_domain = - -; Whether or not to add the httpOnly flag to the cookie, which makes it inaccessible to browser scripting languages such as JavaScript. -; http://php.net/session.cookie-httponly -session.cookie_httponly = - -; Handler used to serialize data. php is the standard serializer of PHP. -; http://php.net/session.serialize-handler -session.serialize_handler = php - -; Defines the probability that the 'garbage collection' process is started -; on every session initialization. The probability is calculated by using -; gc_probability/gc_divisor. Where session.gc_probability is the numerator -; and gc_divisor is the denominator in the equation. Setting this value to 1 -; when the session.gc_divisor value is 100 will give you approximately a 1% chance -; the gc will run on any give request. -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; http://php.net/session.gc-probability -session.gc_probability = 1 - -; Defines the probability that the 'garbage collection' process is started on every -; session initialization. The probability is calculated by using the following equation: -; gc_probability/gc_divisor. Where session.gc_probability is the numerator and -; session.gc_divisor is the denominator in the equation. Setting this value to 1 -; when the session.gc_divisor value is 100 will give you approximately a 1% chance -; the gc will run on any give request. Increasing this value to 1000 will give you -; a 0.1% chance the gc will run on any give request. For high volume production servers, -; this is a more efficient approach. -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 -; http://php.net/session.gc-divisor -session.gc_divisor = 1000 - -; After this number of seconds, stored data will be seen as 'garbage' and -; cleaned up by the garbage collection process. -; http://php.net/session.gc-maxlifetime -session.gc_maxlifetime = 1440 - -; NOTE: If you are using the subdirectory option for storing session files -; (see session.save_path above), then garbage collection does *not* -; happen automatically. You will need to do your own garbage -; collection through a shell script, cron entry, or some other method. -; For example, the following script would is the equivalent of -; setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes): -; find /path/to/sessions -cmin +24 -type f | xargs rm - -; Check HTTP Referer to invalidate externally stored URLs containing ids. -; HTTP_REFERER has to contain this substring for the session to be -; considered as valid. -; http://php.net/session.referer-check -session.referer_check = - -; Set to {nocache,private,public,} to determine HTTP caching aspects -; or leave this empty to avoid sending anti-caching headers. -; http://php.net/session.cache-limiter -session.cache_limiter = nocache - -; Document expires after n minutes. -; http://php.net/session.cache-expire -session.cache_expire = 180 - -; trans sid support is disabled by default. -; Use of trans sid may risk your users' security. -; Use this option with caution. -; - User may send URL contains active session ID -; to other person via. email/irc/etc. -; - URL that contains active session ID may be stored -; in publicly accessible computer. -; - User may access your site with the same session ID -; always using URL stored in browser's history or bookmarks. -; http://php.net/session.use-trans-sid -session.use_trans_sid = 0 - -; Set session ID character length. This value could be between 22 to 256. -; Shorter length than default is supported only for compatibility reason. -; Users should use 32 or more chars. -; http://php.net/session.sid-length -; Default Value: 32 -; Development Value: 26 -; Production Value: 26 -session.sid_length = 26 - -; The URL rewriter will look for URLs in a defined set of HTML tags. -; is special; if you include them here, the rewriter will -; add a hidden field with the info which is otherwise appended -; to URLs. tag's action attribute URL will not be modified -; unless it is specified. -; Note that all valid entries require a "=", even if no value follows. -; Default Value: "a=href,area=href,frame=src,form=" -; Development Value: "a=href,area=href,frame=src,form=" -; Production Value: "a=href,area=href,frame=src,form=" -; http://php.net/url-rewriter.tags -session.trans_sid_tags = "a=href,area=href,frame=src,form=" - -; URL rewriter does not rewrite absolute URLs by default. -; To enable rewrites for absolute pathes, target hosts must be specified -; at RUNTIME. i.e. use ini_set() -; tags is special. PHP will check action attribute's URL regardless -; of session.trans_sid_tags setting. -; If no host is defined, HTTP_HOST will be used for allowed host. -; Example value: php.net,www.php.net,wiki.php.net -; Use "," for multiple hosts. No spaces are allowed. -; Default Value: "" -; Development Value: "" -; Production Value: "" -;session.trans_sid_hosts="" - -; Define how many bits are stored in each character when converting -; the binary hash data to something readable. -; Possible values: -; 4 (4 bits: 0-9, a-f) -; 5 (5 bits: 0-9, a-v) -; 6 (6 bits: 0-9, a-z, A-Z, "-", ",") -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 -; http://php.net/session.hash-bits-per-character -session.sid_bits_per_character = 5 - -; Enable upload progress tracking in $_SESSION -; Default Value: On -; Development Value: On -; Production Value: On -; http://php.net/session.upload-progress.enabled -;session.upload_progress.enabled = On - -; Cleanup the progress information as soon as all POST data has been read -; (i.e. upload completed). -; Default Value: On -; Development Value: On -; Production Value: On -; http://php.net/session.upload-progress.cleanup -;session.upload_progress.cleanup = On - -; A prefix used for the upload progress key in $_SESSION -; Default Value: "upload_progress_" -; Development Value: "upload_progress_" -; Production Value: "upload_progress_" -; http://php.net/session.upload-progress.prefix -;session.upload_progress.prefix = "upload_progress_" - -; The index name (concatenated with the prefix) in $_SESSION -; containing the upload progress information -; Default Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Development Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Production Value: "PHP_SESSION_UPLOAD_PROGRESS" -; http://php.net/session.upload-progress.name -;session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS" - -; How frequently the upload progress should be updated. -; Given either in percentages (per-file), or in bytes -; Default Value: "1%" -; Development Value: "1%" -; Production Value: "1%" -; http://php.net/session.upload-progress.freq -;session.upload_progress.freq = "1%" - -; The minimum delay between updates, in seconds -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; http://php.net/session.upload-progress.min-freq -;session.upload_progress.min_freq = "1" - -; Only write session data when session data is changed. Enabled by default. -; http://php.net/session.lazy-write -;session.lazy_write = On - -[Assertion] -; Switch whether to compile assertions at all (to have no overhead at run-time) -; -1: Do not compile at all -; 0: Jump over assertion at run-time -; 1: Execute assertions -; Changing from or to a negative value is only possible in php.ini! (For turning assertions on and off at run-time, see assert.active, when zend.assertions = 1) -; Default Value: 1 -; Development Value: 1 -; Production Value: -1 -; http://php.net/zend.assertions -zend.assertions = -1 - -; Assert(expr); active by default. -; http://php.net/assert.active -;assert.active = On - -; Throw an AssertationException on failed assertions -; http://php.net/assert.exception -;assert.exception = On - -; Issue a PHP warning for each failed assertion. (Overridden by assert.exception if active) -; http://php.net/assert.warning -;assert.warning = On - -; Don't bail out by default. -; http://php.net/assert.bail -;assert.bail = Off - -; User-function to be called if an assertion fails. -; http://php.net/assert.callback -;assert.callback = 0 - -; Eval the expression with current error_reporting(). Set to true if you want -; error_reporting(0) around the eval(). -; http://php.net/assert.quiet-eval -;assert.quiet_eval = 0 - -[COM] -; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs -; http://php.net/com.typelib-file -;com.typelib_file = - -; allow Distributed-COM calls -; http://php.net/com.allow-dcom -;com.allow_dcom = true - -; autoregister constants of a components typlib on com_load() -; http://php.net/com.autoregister-typelib -;com.autoregister_typelib = true - -; register constants casesensitive -; http://php.net/com.autoregister-casesensitive -;com.autoregister_casesensitive = false - -; show warnings on duplicate constant registrations -; http://php.net/com.autoregister-verbose -;com.autoregister_verbose = true - -; The default character set code-page to use when passing strings to and from COM objects. -; Default: system ANSI code page -;com.code_page= - -[mbstring] -; language for internal character representation. -; This affects mb_send_mail() and mbstring.detect_order. -; http://php.net/mbstring.language -;mbstring.language = Japanese - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; internal/script encoding. -; Some encoding cannot work as internal encoding. (e.g. SJIS, BIG5, ISO-2022-*) -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;mbstring.internal_encoding = - -; Use of this INI entry is deprecated, use global input_encoding instead. -; http input encoding. -; mbstring.encoding_traslation = On is needed to use this setting. -; If empty, default_charset or input_encoding or mbstring.input is used. -; The precedence is: default_charset < intput_encoding < mbsting.http_input -; http://php.net/mbstring.http-input -;mbstring.http_input = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; http output encoding. -; mb_output_handler must be registered as output buffer to function. -; If empty, default_charset or output_encoding or mbstring.http_output is used. -; The precedence is: default_charset < output_encoding < mbstring.http_output -; To use an output encoding conversion, mbstring's output handler must be set -; otherwise output encoding conversion cannot be performed. -; http://php.net/mbstring.http-output -;mbstring.http_output = - -; enable automatic encoding translation according to -; mbstring.internal_encoding setting. Input chars are -; converted to internal encoding by setting this to On. -; Note: Do _not_ use automatic encoding translation for -; portable libs/applications. -; http://php.net/mbstring.encoding-translation -;mbstring.encoding_translation = Off - -; automatic encoding detection order. -; "auto" detect order is changed according to mbstring.language -; http://php.net/mbstring.detect-order -;mbstring.detect_order = auto - -; substitute_character used when character cannot be converted -; one from another -; http://php.net/mbstring.substitute-character -;mbstring.substitute_character = none - -; overload(replace) single byte functions by mbstring functions. -; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(), -; etc. Possible values are 0,1,2,4 or combination of them. -; For example, 7 for overload everything. -; 0: No overload -; 1: Overload mail() function -; 2: Overload str*() functions -; 4: Overload ereg*() functions -; http://php.net/mbstring.func-overload -;mbstring.func_overload = 0 - -; enable strict encoding detection. -; Default: Off -;mbstring.strict_detection = On - -; This directive specifies the regex pattern of content types for which mb_output_handler() -; is activated. -; Default: mbstring.http_output_conv_mimetype=^(text/|application/xhtml\+xml) -;mbstring.http_output_conv_mimetype= - -[gd] -; Tell the jpeg decode to ignore warnings and try to create -; a gd image. The warning will then be displayed as notices -; disabled by default -; http://php.net/gd.jpeg-ignore-warning -;gd.jpeg_ignore_warning = 1 - -[exif] -; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS. -; With mbstring support this will automatically be converted into the encoding -; given by corresponding encode setting. When empty mbstring.internal_encoding -; is used. For the decode settings you can distinguish between motorola and -; intel byte order. A decode setting cannot be empty. -; http://php.net/exif.encode-unicode -;exif.encode_unicode = ISO-8859-15 - -; http://php.net/exif.decode-unicode-motorola -;exif.decode_unicode_motorola = UCS-2BE - -; http://php.net/exif.decode-unicode-intel -;exif.decode_unicode_intel = UCS-2LE - -; http://php.net/exif.encode-jis -;exif.encode_jis = - -; http://php.net/exif.decode-jis-motorola -;exif.decode_jis_motorola = JIS - -; http://php.net/exif.decode-jis-intel -;exif.decode_jis_intel = JIS - -[Tidy] -; The path to a default tidy configuration file to use when using tidy -; http://php.net/tidy.default-config -;tidy.default_config = /usr/local/lib/php/default.tcfg - -; Should tidy clean and repair output automatically? -; WARNING: Do not use this option if you are generating non-html content -; such as dynamic images -; http://php.net/tidy.clean-output -tidy.clean_output = Off - -[soap] -; Enables or disables WSDL caching feature. -; http://php.net/soap.wsdl-cache-enabled -soap.wsdl_cache_enabled=1 - -; Sets the directory name where SOAP extension will put cache files. -; http://php.net/soap.wsdl-cache-dir -soap.wsdl_cache_dir="/tmp" - -; (time to live) Sets the number of second while cached file will be used -; instead of original one. -; http://php.net/soap.wsdl-cache-ttl -soap.wsdl_cache_ttl=86400 - -; Sets the size of the cache limit. (Max. number of WSDL files to cache) -soap.wsdl_cache_limit = 5 - -[sysvshm] -; A default size of the shared memory segment -;sysvshm.init_mem = 10000 - -[ldap] -; Sets the maximum number of open links or -1 for unlimited. -ldap.max_links = -1 - -[dba] -;dba.default_handler= - -[opcache] -; Determines if Zend OPCache is enabled -;opcache.enable=1 - -; Determines if Zend OPCache is enabled for the CLI version of PHP -;opcache.enable_cli=1 - -; The OPcache shared memory storage size. -;opcache.memory_consumption=128 - -; The amount of memory for interned strings in Mbytes. -;opcache.interned_strings_buffer=8 - -; The maximum number of keys (scripts) in the OPcache hash table. -; Only numbers between 200 and 1000000 are allowed. -;opcache.max_accelerated_files=10000 - -; The maximum percentage of "wasted" memory until a restart is scheduled. -;opcache.max_wasted_percentage=5 - -; When this directive is enabled, the OPcache appends the current working -; directory to the script key, thus eliminating possible collisions between -; files with the same name (basename). Disabling the directive improves -; performance, but may break existing applications. -;opcache.use_cwd=1 - -; When disabled, you must reset the OPcache manually or restart the -; webserver for changes to the filesystem to take effect. -;opcache.validate_timestamps=1 - -; How often (in seconds) to check file timestamps for changes to the shared -; memory storage allocation. ("1" means validate once per second, but only -; once per request. "0" means always validate) -;opcache.revalidate_freq=2 - -; Enables or disables file search in include_path optimization -;opcache.revalidate_path=0 - -; If disabled, all PHPDoc comments are dropped from the code to reduce the -; size of the optimized code. -;opcache.save_comments=1 - -; If enabled, a fast shutdown sequence is used for the accelerated code -; Depending on the used Memory Manager this may cause some incompatibilities. -;opcache.fast_shutdown=0 - -; Allow file existence override (file_exists, etc.) performance feature. -;opcache.enable_file_override=0 - -; A bitmask, where each bit enables or disables the appropriate OPcache -; passes -;opcache.optimization_level=0xffffffff - -;opcache.inherited_hack=1 -;opcache.dups_fix=0 - -; The location of the OPcache blacklist file (wildcards allowed). -; Each OPcache blacklist file is a text file that holds the names of files -; that should not be accelerated. The file format is to add each filename -; to a new line. The filename may be a full path or just a file prefix -; (i.e., /var/www/x blacklists all the files and directories in /var/www -; that start with 'x'). Line starting with a ; are ignored (comments). -;opcache.blacklist_filename= - -; Allows exclusion of large files from being cached. By default all files -; are cached. -;opcache.max_file_size=0 - -; Check the cache checksum each N requests. -; The default value of "0" means that the checks are disabled. -;opcache.consistency_checks=0 - -; How long to wait (in seconds) for a scheduled restart to begin if the cache -; is not being accessed. -;opcache.force_restart_timeout=180 - -; OPcache error_log file name. Empty string assumes "stderr". -;opcache.error_log= - -; All OPcache errors go to the Web server log. -; By default, only fatal errors (level 0) or errors (level 1) are logged. -; You can also enable warnings (level 2), info messages (level 3) or -; debug messages (level 4). -;opcache.log_verbosity_level=1 - -; Preferred Shared Memory back-end. Leave empty and let the system decide. -;opcache.preferred_memory_model= - -; Protect the shared memory from unexpected writing during script execution. -; Useful for internal debugging only. -;opcache.protect_memory=0 - -; Allows calling OPcache API functions only from PHP scripts which path is -; started from specified string. The default "" means no restriction -;opcache.restrict_api= - -; Mapping base of shared memory segments (for Windows only). All the PHP -; processes have to map shared memory into the same address space. This -; directive allows to manually fix the "Unable to reattach to base address" -; errors. -;opcache.mmap_base= - -; Enables and sets the second level cache directory. -; It should improve performance when SHM memory is full, at server restart or -; SHM reset. The default "" disables file based caching. -;opcache.file_cache= - -; Enables or disables opcode caching in shared memory. -;opcache.file_cache_only=0 - -; Enables or disables checksum validation when script loaded from file cache. -;opcache.file_cache_consistency_checks=1 - -; Implies opcache.file_cache_only=1 for a certain process that failed to -; reattach to the shared memory (for Windows only). Explicitly enabled file -; cache is required. -;opcache.file_cache_fallback=1 - -; Enables or disables copying of PHP code (text segment) into HUGE PAGES. -; This should improve performance, but requires appropriate OS configuration. -;opcache.huge_code_pages=1 - -; Validate cached file permissions. -;opcache.validate_permission=0 - -; Prevent name collisions in chroot'ed environment. -;opcache.validate_root=0 - -[curl] -; A default value for the CURLOPT_CAINFO option. This is required to be an -; absolute path. -;curl.cainfo = - -[openssl] -; The location of a Certificate Authority (CA) file on the local filesystem -; to use when verifying the identity of SSL/TLS peers. Most users should -; not specify a value for this directive as PHP will attempt to use the -; OS-managed cert stores in its absence. If specified, this value may still -; be overridden on a per-stream basis via the "cafile" SSL stream context -; option. -;openssl.cafile= - -; If openssl.cafile is not specified or if the CA file is not found, the -; directory pointed to by openssl.capath is searched for a suitable -; certificate. This value must be a correctly hashed certificate directory. -; Most users should not specify a value for this directive as PHP will -; attempt to use the OS-managed cert stores in its absence. If specified, -; this value may still be overridden on a per-stream basis via the "capath" -; SSL stream context option. -;openssl.capath= - -; Local Variables: -; tab-width: 4 -; End: - -[XDebug] -xdebug.remote_enable = 1 -xdebug.remote_handler = "dbgp" -; Set to host.docker.internal on Mac and Windows, otherwise, set to host real ip -xdebug.remote_host = host.docker.internal -;xdebug.remote_port = 9000 -xdebug.remote_log = /var/log/php/xdebug.log - -SERVER_ENV=develop - -yaf.use_spl_autoload=1 - -[xhprof] -;xhprof.output_dir = /var/log/php/xhprof.log \ No newline at end of file diff --git a/php7/7.1.33/conf/php-fpm.conf b/php7/7.1.33/conf/php-fpm.conf deleted file mode 100644 index 131835891..000000000 --- a/php7/7.1.33/conf/php-fpm.conf +++ /dev/null @@ -1,423 +0,0 @@ -; Start a new pool named 'www'. -; the variable $pool can be used in any directive and will be replaced by the -; pool name ('www' here) -[www] - -; Per pool prefix -; It only applies on the following directives: -; - 'access.log' -; - 'slowlog' -; - 'listen' (unixsocket) -; - 'chroot' -; - 'chdir' -; - 'php_values' -; - 'php_admin_values' -; When not set, the global prefix (or NONE) applies instead. -; Note: This directive can also be relative to the global prefix. -; Default Value: none -;prefix = /path/to/pools/$pool - -; Unix user/group of processes -; Note: The user is mandatory. If the group is not set, the default user's group -; will be used. -user = www-data -group = www-data - -; The address on which to accept FastCGI requests. -; Valid syntaxes are: -; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on -; a specific port; -; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on -; a specific port; -; 'port' - to listen on a TCP socket to all addresses -; (IPv6 and IPv4-mapped) on a specific port; -; '/path/to/unix/socket' - to listen on a unix socket. -; Note: This value is mandatory. -listen = 127.0.0.1:9000 - -; Set listen(2) backlog. -; Default Value: 511 (-1 on FreeBSD and OpenBSD) -;listen.backlog = 511 - -; Set permissions for unix socket, if one is used. In Linux, read/write -; permissions must be set in order to allow connections from a web server. Many -; BSD-derived systems allow connections regardless of permissions. -; Default Values: user and group are set as the running user -; mode is set to 0660 -;listen.owner = www-data -;listen.group = www-data -;listen.mode = 0660 -; When POSIX Access Control Lists are supported you can set them using -; these options, value is a comma separated list of user/group names. -; When set, listen.owner and listen.group are ignored -;listen.acl_users = -;listen.acl_groups = - -; List of addresses (IPv4/IPv6) of FastCGI clients which are allowed to connect. -; Equivalent to the FCGI_WEB_SERVER_ADDRS environment variable in the original -; PHP FCGI (5.2.2+). Makes sense only with a tcp listening socket. Each address -; must be separated by a comma. If this value is left blank, connections will be -; accepted from any ip address. -; Default Value: any -;listen.allowed_clients = 127.0.0.1 - -; Specify the nice(2) priority to apply to the pool processes (only if set) -; The value can vary from -19 (highest priority) to 20 (lower priority) -; Note: - It will only work if the FPM master process is launched as root -; - The pool processes will inherit the master process priority -; unless it specified otherwise -; Default Value: no set -; process.priority = -19 - -; Set the process dumpable flag (PR_SET_DUMPABLE prctl) even if the process user -; or group is differrent than the master process user. It allows to create process -; core dump and ptrace the process for the pool user. -; Default Value: no -; process.dumpable = yes - -; Choose how the process manager will control the number of child processes. -; Possible Values: -; static - a fixed number (pm.max_children) of child processes; -; dynamic - the number of child processes are set dynamically based on the -; following directives. With this process management, there will be -; always at least 1 children. -; pm.max_children - the maximum number of children that can -; be alive at the same time. -; pm.start_servers - the number of children created on startup. -; pm.min_spare_servers - the minimum number of children in 'idle' -; state (waiting to process). If the number -; of 'idle' processes is less than this -; number then some children will be created. -; pm.max_spare_servers - the maximum number of children in 'idle' -; state (waiting to process). If the number -; of 'idle' processes is greater than this -; number then some children will be killed. -; ondemand - no children are created at startup. Children will be forked when -; new requests will connect. The following parameter are used: -; pm.max_children - the maximum number of children that -; can be alive at the same time. -; pm.process_idle_timeout - The number of seconds after which -; an idle process will be killed. -; Note: This value is mandatory. -pm = dynamic - -; The number of child processes to be created when pm is set to 'static' and the -; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'. -; This value sets the limit on the number of simultaneous requests that will be -; served. Equivalent to the ApacheMaxClients directive with mpm_prefork. -; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP -; CGI. The below defaults are based on a server without much resources. Don't -; forget to tweak pm.* to fit your needs. -; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand' -; Note: This value is mandatory. -pm.max_children = 10 - -; The number of child processes created on startup. -; Note: Used only when pm is set to 'dynamic' -; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2 -pm.start_servers = 2 - -; The desired minimum number of idle server processes. -; Note: Used only when pm is set to 'dynamic' -; Note: Mandatory when pm is set to 'dynamic' -pm.min_spare_servers = 1 - -; The desired maximum number of idle server processes. -; Note: Used only when pm is set to 'dynamic' -; Note: Mandatory when pm is set to 'dynamic' -pm.max_spare_servers = 3 - -; The number of seconds after which an idle process will be killed. -; Note: Used only when pm is set to 'ondemand' -; Default Value: 10s -;pm.process_idle_timeout = 10s; - -; The number of requests each child process should execute before respawning. -; This can be useful to work around memory leaks in 3rd party libraries. For -; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS. -; Default Value: 0 -;pm.max_requests = 500 - -; The URI to view the FPM status page. If this value is not set, no URI will be -; recognized as a status page. It shows the following informations: -; pool - the name of the pool; -; process manager - static, dynamic or ondemand; -; start time - the date and time FPM has started; -; start since - number of seconds since FPM has started; -; accepted conn - the number of request accepted by the pool; -; listen queue - the number of request in the queue of pending -; connections (see backlog in listen(2)); -; max listen queue - the maximum number of requests in the queue -; of pending connections since FPM has started; -; listen queue len - the size of the socket queue of pending connections; -; idle processes - the number of idle processes; -; active processes - the number of active processes; -; total processes - the number of idle + active processes; -; max active processes - the maximum number of active processes since FPM -; has started; -; max children reached - number of times, the process limit has been reached, -; when pm tries to start more children (works only for -; pm 'dynamic' and 'ondemand'); -; Value are updated in real time. -; Example output: -; pool: www -; process manager: static -; start time: 01/Jul/2011:17:53:49 +0200 -; start since: 62636 -; accepted conn: 190460 -; listen queue: 0 -; max listen queue: 1 -; listen queue len: 42 -; idle processes: 4 -; active processes: 11 -; total processes: 15 -; max active processes: 12 -; max children reached: 0 -; -; By default the status page output is formatted as text/plain. Passing either -; 'html', 'xml' or 'json' in the query string will return the corresponding -; output syntax. Example: -; http://www.foo.bar/status -; http://www.foo.bar/status?json -; http://www.foo.bar/status?html -; http://www.foo.bar/status?xml -; -; By default the status page only outputs short status. Passing 'full' in the -; query string will also return status for each pool process. -; Example: -; http://www.foo.bar/status?full -; http://www.foo.bar/status?json&full -; http://www.foo.bar/status?html&full -; http://www.foo.bar/status?xml&full -; The Full status returns for each process: -; pid - the PID of the process; -; state - the state of the process (Idle, Running, ...); -; start time - the date and time the process has started; -; start since - the number of seconds since the process has started; -; requests - the number of requests the process has served; -; request duration - the duration in µs of the requests; -; request method - the request method (GET, POST, ...); -; request URI - the request URI with the query string; -; content length - the content length of the request (only with POST); -; user - the user (PHP_AUTH_USER) (or '-' if not set); -; script - the main script called (or '-' if not set); -; last request cpu - the %cpu the last request consumed -; it's always 0 if the process is not in Idle state -; because CPU calculation is done when the request -; processing has terminated; -; last request memory - the max amount of memory the last request consumed -; it's always 0 if the process is not in Idle state -; because memory calculation is done when the request -; processing has terminated; -; If the process is in Idle state, then informations are related to the -; last request the process has served. Otherwise informations are related to -; the current request being served. -; Example output: -; ************************ -; pid: 31330 -; state: Running -; start time: 01/Jul/2011:17:53:49 +0200 -; start since: 63087 -; requests: 12808 -; request duration: 1250261 -; request method: GET -; request URI: /test_mem.php?N=10000 -; content length: 0 -; user: - -; script: /home/fat/web/docs/php/test_mem.php -; last request cpu: 0.00 -; last request memory: 0 -; -; Note: There is a real-time FPM status monitoring sample web page available -; It's available in: /usr/local/share/php/fpm/status.html -; -; Note: The value must start with a leading slash (/). The value can be -; anything, but it may not be a good idea to use the .php extension or it -; may conflict with a real PHP file. -; Default Value: not set -;pm.status_path = /status - -; The ping URI to call the monitoring page of FPM. If this value is not set, no -; URI will be recognized as a ping page. This could be used to test from outside -; that FPM is alive and responding, or to -; - create a graph of FPM availability (rrd or such); -; - remove a server from a group if it is not responding (load balancing); -; - trigger alerts for the operating team (24/7). -; Note: The value must start with a leading slash (/). The value can be -; anything, but it may not be a good idea to use the .php extension or it -; may conflict with a real PHP file. -; Default Value: not set -;ping.path = /ping - -; This directive may be used to customize the response of a ping request. The -; response is formatted as text/plain with a 200 response code. -; Default Value: pong -;ping.response = pong - -; The access log file -; Default: not set -;access.log = log/$pool.access.log - -; The access log format. -; The following syntax is allowed -; %%: the '%' character -; %C: %CPU used by the request -; it can accept the following format: -; - %{user}C for user CPU only -; - %{system}C for system CPU only -; - %{total}C for user + system CPU (default) -; %d: time taken to serve the request -; it can accept the following format: -; - %{seconds}d (default) -; - %{miliseconds}d -; - %{mili}d -; - %{microseconds}d -; - %{micro}d -; %e: an environment variable (same as $_ENV or $_SERVER) -; it must be associated with embraces to specify the name of the env -; variable. Some exemples: -; - server specifics like: %{REQUEST_METHOD}e or %{SERVER_PROTOCOL}e -; - HTTP headers like: %{HTTP_HOST}e or %{HTTP_USER_AGENT}e -; %f: script filename -; %l: content-length of the request (for POST request only) -; %m: request method -; %M: peak of memory allocated by PHP -; it can accept the following format: -; - %{bytes}M (default) -; - %{kilobytes}M -; - %{kilo}M -; - %{megabytes}M -; - %{mega}M -; %n: pool name -; %o: output header -; it must be associated with embraces to specify the name of the header: -; - %{Content-Type}o -; - %{X-Powered-By}o -; - %{Transfert-Encoding}o -; - .... -; %p: PID of the child that serviced the request -; %P: PID of the parent of the child that serviced the request -; %q: the query string -; %Q: the '?' character if query string exists -; %r: the request URI (without the query string, see %q and %Q) -; %R: remote IP address -; %s: status (response code) -; %t: server time the request was received -; it can accept a strftime(3) format: -; %d/%b/%Y:%H:%M:%S %z (default) -; The strftime(3) format must be encapsuled in a %{}t tag -; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t -; %T: time the log has been written (the request has finished) -; it can accept a strftime(3) format: -; %d/%b/%Y:%H:%M:%S %z (default) -; The strftime(3) format must be encapsuled in a %{}t tag -; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t -; %u: remote user -; -; Default: "%R - %u %t \"%m %r\" %s" -;access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%" - -; The log file for slow requests -; Default Value: not set -; Note: slowlog is mandatory if request_slowlog_timeout is set -slowlog = /var/log/php/fpm.slow.log - -; The timeout for serving a single request after which a PHP backtrace will be -; dumped to the 'slowlog' file. A value of '0s' means 'off'. -; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) -; Default Value: 0 -request_slowlog_timeout = 3 - -; Depth of slow log stack trace. -; Default Value: 20 -;request_slowlog_trace_depth = 20 - -; The timeout for serving a single request after which the worker process will -; be killed. This option should be used when the 'max_execution_time' ini option -; does not stop script execution for some reason. A value of '0' means 'off'. -; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) -; Default Value: 0 -;request_terminate_timeout = 0 - -; Set open file descriptor rlimit. -; Default Value: system defined value -;rlimit_files = 1024 - -; Set max core size rlimit. -; Possible Values: 'unlimited' or an integer greater or equal to 0 -; Default Value: system defined value -;rlimit_core = 0 - -; Chroot to this directory at the start. This value must be defined as an -; absolute path. When this value is not set, chroot is not used. -; Note: you can prefix with '$prefix' to chroot to the pool prefix or one -; of its subdirectories. If the pool prefix is not set, the global prefix -; will be used instead. -; Note: chrooting is a great security feature and should be used whenever -; possible. However, all PHP paths will be relative to the chroot -; (error_log, sessions.save_path, ...). -; Default Value: not set -;chroot = - -; Chdir to this directory at the start. -; Note: relative path can be used. -; Default Value: current directory or / when chroot -;chdir = /var/www - -; Redirect worker stdout and stderr into main error log. If not set, stdout and -; stderr will be redirected to /dev/null according to FastCGI specs. -; Note: on highloaded environement, this can cause some delay in the page -; process time (several ms). -; Default Value: no -catch_workers_output = yes - -; Clear environment in FPM workers -; Prevents arbitrary environment variables from reaching FPM worker processes -; by clearing the environment in workers before env vars specified in this -; pool configuration are added. -; Setting to "no" will make all environment variables available to PHP code -; via getenv(), $_ENV and $_SERVER. -; Default Value: yes -;clear_env = no - -; Limits the extensions of the main script FPM will allow to parse. This can -; prevent configuration mistakes on the web server side. You should only limit -; FPM to .php extensions to prevent malicious users to use other extensions to -; execute php code. -; Note: set an empty value to allow all extensions. -; Default Value: .php -;security.limit_extensions = .php .php3 .php4 .php5 .php7 - -; Pass environment variables like LD_LIBRARY_PATH. All $VARIABLEs are taken from -; the current environment. -; Default Value: clean env -;env[HOSTNAME] = $HOSTNAME -;env[PATH] = /usr/local/bin:/usr/bin:/bin -;env[TMP] = /tmp -;env[TMPDIR] = /tmp -;env[TEMP] = /tmp - -; Additional php.ini defines, specific to this pool of workers. These settings -; overwrite the values previously defined in the php.ini. The directives are the -; same as the PHP SAPI: -; php_value/php_flag - you can set classic ini defines which can -; be overwritten from PHP call 'ini_set'. -; php_admin_value/php_admin_flag - these directives won't be overwritten by -; PHP call 'ini_set' -; For php_*flag, valid values are on, off, 1, 0, true, false, yes or no. - -; Defining 'extension' will load the corresponding shared extension from -; extension_dir. Defining 'disable_functions' or 'disable_classes' will not -; overwrite previously defined php.ini values, but will append the new value -; instead. - -; Note: path INI options can be relative and will be expanded with the prefix -; (pool, global or /usr/local) - -; Default Value: nothing is defined by default except the values in php.ini and -; specified at startup with the -d argument -;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com -;php_flag[display_errors] = off -;php_admin_value[error_log] = /var/log/fpm-php.www.log -;php_admin_flag[log_errors] = on -;php_admin_value[memory_limit] = 32M diff --git a/php7/7.1.33/conf/php.ini b/php7/7.1.33/conf/php.ini deleted file mode 100644 index b6b0aee69..000000000 --- a/php7/7.1.33/conf/php.ini +++ /dev/null @@ -1,1933 +0,0 @@ -[PHP] - -;;;;;;;;;;;;;;;;;;; -; About php.ini ; -;;;;;;;;;;;;;;;;;;; -; PHP's initialization file, generally called php.ini, is responsible for -; configuring many of the aspects of PHP's behavior. - -; PHP attempts to find and load this configuration from a number of locations. -; The following is a summary of its search order: -; 1. SAPI module specific location. -; 2. The PHPRC environment variable. (As of PHP 5.2.0) -; 3. A number of predefined registry keys on Windows (As of PHP 5.2.0) -; 4. Current working directory (except CLI) -; 5. The web server's directory (for SAPI modules), or directory of PHP -; (otherwise in Windows) -; 6. The directory from the --with-config-file-path compile time option, or the -; Windows directory (C:\windows or C:\winnt) -; See the PHP docs for more specific information. -; http://php.net/configuration.file - -; The syntax of the file is extremely simple. Whitespace and lines -; beginning with a semicolon are silently ignored (as you probably guessed). -; Section headers (e.g. [Foo]) are also silently ignored, even though -; they might mean something in the future. - -; Directives following the section heading [PATH=/www/mysite] only -; apply to PHP files in the /www/mysite directory. Directives -; following the section heading [HOST=www.example.com] only apply to -; PHP files served from www.example.com. Directives set in these -; special sections cannot be overridden by user-defined INI files or -; at runtime. Currently, [PATH=] and [HOST=] sections only work under -; CGI/FastCGI. -; http://php.net/ini.sections - -; Directives are specified using the following syntax: -; directive = value -; Directive names are *case sensitive* - foo=bar is different from FOO=bar. -; Directives are variables used to configure PHP or PHP extensions. -; There is no name validation. If PHP can't find an expected -; directive because it is not set or is mistyped, a default value will be used. - -; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one -; of the INI constants (On, Off, True, False, Yes, No and None) or an expression -; (e.g. E_ALL & ~E_NOTICE), a quoted string ("bar"), or a reference to a -; previously set variable or directive (e.g. ${foo}) - -; Expressions in the INI file are limited to bitwise operators and parentheses: -; | bitwise OR -; ^ bitwise XOR -; & bitwise AND -; ~ bitwise NOT -; ! boolean NOT - -; Boolean flags can be turned on using the values 1, On, True or Yes. -; They can be turned off using the values 0, Off, False or No. - -; An empty string can be denoted by simply not writing anything after the equal -; sign, or by using the None keyword: - -; foo = ; sets foo to an empty string -; foo = None ; sets foo to an empty string -; foo = "None" ; sets foo to the string 'None' - -; If you use constants in your value, and these constants belong to a -; dynamically loaded extension (either a PHP extension or a Zend extension), -; you may only use these constants *after* the line that loads the extension. - -;;;;;;;;;;;;;;;;;;; -; About this file ; -;;;;;;;;;;;;;;;;;;; -; PHP comes packaged with two INI files. One that is recommended to be used -; in production environments and one that is recommended to be used in -; development environments. - -; php.ini-production contains settings which hold security, performance and -; best practices at its core. But please be aware, these settings may break -; compatibility with older or less security conscience applications. We -; recommending using the production ini in production and testing environments. - -; php.ini-development is very similar to its production variant, except it is -; much more verbose when it comes to errors. We recommend using the -; development version only in development environments, as errors shown to -; application users can inadvertently leak otherwise secure information. - -; This is php.ini-production INI file. - -;;;;;;;;;;;;;;;;;;; -; Quick Reference ; -;;;;;;;;;;;;;;;;;;; -; The following are all the settings which are different in either the production -; or development versions of the INIs with respect to PHP's default behavior. -; Please see the actual settings later in the document for more details as to why -; we recommend these changes in PHP's behavior. - -; display_errors -; Default Value: On -; Development Value: On -; Production Value: Off - -; display_startup_errors -; Default Value: Off -; Development Value: On -; Production Value: Off - -; error_reporting -; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT - -; html_errors -; Default Value: On -; Development Value: On -; Production value: On - -; log_errors -; Default Value: Off -; Development Value: On -; Production Value: On - -; max_input_time -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) - -; output_buffering -; Default Value: Off -; Development Value: 4096 -; Production Value: 4096 - -; register_argc_argv -; Default Value: On -; Development Value: Off -; Production Value: Off - -; request_order -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" - -; session.gc_divisor -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 - -; session.sid_bits_per_character -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 - -; short_open_tag -; Default Value: On -; Development Value: Off -; Production Value: Off - -; track_errors -; Default Value: Off -; Development Value: On -; Production Value: Off - -; variables_order -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS" - -;;;;;;;;;;;;;;;;;;;; -; php.ini Options ; -;;;;;;;;;;;;;;;;;;;; -; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini" -;user_ini.filename = ".user.ini" - -; To disable this feature set this option to empty value -;user_ini.filename = - -; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes) -;user_ini.cache_ttl = 300 - -;;;;;;;;;;;;;;;;;;;; -; Language Options ; -;;;;;;;;;;;;;;;;;;;; - -; Enable the PHP scripting language engine under Apache. -; http://php.net/engine -engine = On - -; This directive determines whether or not PHP will recognize code between -; tags as PHP source which should be processed as such. It is -; generally recommended that should be used and that this feature -; should be disabled, as enabling it may result in issues when generating XML -; documents, however this remains supported for backward compatibility reasons. -; Note that this directive does not control the would work. -; http://php.net/syntax-highlighting -;highlight.string = #DD0000 -;highlight.comment = #FF9900 -;highlight.keyword = #007700 -;highlight.default = #0000BB -;highlight.html = #000000 - -; If enabled, the request will be allowed to complete even if the user aborts -; the request. Consider enabling it if executing long requests, which may end up -; being interrupted by the user or a browser timing out. PHP's default behavior -; is to disable this feature. -; http://php.net/ignore-user-abort -;ignore_user_abort = On - -; Determines the size of the realpath cache to be used by PHP. This value should -; be increased on systems where PHP opens many files to reflect the quantity of -; the file operations performed. -; http://php.net/realpath-cache-size -;realpath_cache_size = 4096k - -; Duration of time, in seconds for which to cache realpath information for a given -; file or directory. For systems with rarely changing files, consider increasing this -; value. -; http://php.net/realpath-cache-ttl -;realpath_cache_ttl = 120 - -; Enables or disables the circular reference collector. -; http://php.net/zend.enable-gc -zend.enable_gc = On - -; If enabled, scripts may be written in encodings that are incompatible with -; the scanner. CP936, Big5, CP949 and Shift_JIS are the examples of such -; encodings. To use this feature, mbstring extension must be enabled. -; Default: Off -;zend.multibyte = Off - -; Allows to set the default encoding for the scripts. This value will be used -; unless "declare(encoding=...)" directive appears at the top of the script. -; Only affects if zend.multibyte is set. -; Default: "" -;zend.script_encoding = - -;;;;;;;;;;;;;;;;; -; Miscellaneous ; -;;;;;;;;;;;;;;;;; - -; Decides whether PHP may expose the fact that it is installed on the server -; (e.g. by adding its signature to the Web server header). It is no security -; threat in any way, but it makes it possible to determine whether you use PHP -; on your server or not. -; http://php.net/expose-php -expose_php = Off - -;;;;;;;;;;;;;;;;;;; -; Resource Limits ; -;;;;;;;;;;;;;;;;;;; - -; Maximum execution time of each script, in seconds -; http://php.net/max-execution-time -; Note: This directive is hardcoded to 0 for the CLI SAPI -max_execution_time = 30 - -; Maximum amount of time each script may spend parsing request data. It's a good -; idea to limit this time on productions servers in order to eliminate unexpectedly -; long running scripts. -; Note: This directive is hardcoded to -1 for the CLI SAPI -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) -; http://php.net/max-input-time -max_input_time = 60 - -; Maximum input variable nesting level -; http://php.net/max-input-nesting-level -;max_input_nesting_level = 64 - -; How many GET/POST/COOKIE input variables may be accepted -; max_input_vars = 1000 - -; Maximum amount of memory a script may consume (128MB) -; http://php.net/memory-limit -memory_limit = 256M - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; Error handling and logging ; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -; This directive informs PHP of which errors, warnings and notices you would like -; it to take action for. The recommended way of setting values for this -; directive is through the use of the error level constants and bitwise -; operators. The error level constants are below here for convenience as well as -; some common settings and their meanings. -; By default, PHP is set to take action on all errors, notices and warnings EXCEPT -; those related to E_NOTICE and E_STRICT, which together cover best practices and -; recommended coding standards in PHP. For performance reasons, this is the -; recommend error reporting setting. Your production server shouldn't be wasting -; resources complaining about best practices and coding standards. That's what -; development servers and development settings are for. -; Note: The php.ini-development file has this setting as E_ALL. This -; means it pretty much reports everything which is exactly what you want during -; development and early testing. -; -; Error Level Constants: -; E_ALL - All errors and warnings (includes E_STRICT as of PHP 5.4.0) -; E_ERROR - fatal run-time errors -; E_RECOVERABLE_ERROR - almost fatal run-time errors -; E_WARNING - run-time warnings (non-fatal errors) -; E_PARSE - compile-time parse errors -; E_NOTICE - run-time notices (these are warnings which often result -; from a bug in your code, but it's possible that it was -; intentional (e.g., using an uninitialized variable and -; relying on the fact it is automatically initialized to an -; empty string) -; E_STRICT - run-time notices, enable to have PHP suggest changes -; to your code which will ensure the best interoperability -; and forward compatibility of your code -; E_CORE_ERROR - fatal errors that occur during PHP's initial startup -; E_CORE_WARNING - warnings (non-fatal errors) that occur during PHP's -; initial startup -; E_COMPILE_ERROR - fatal compile-time errors -; E_COMPILE_WARNING - compile-time warnings (non-fatal errors) -; E_USER_ERROR - user-generated error message -; E_USER_WARNING - user-generated warning message -; E_USER_NOTICE - user-generated notice message -; E_DEPRECATED - warn about code that will not work in future versions -; of PHP -; E_USER_DEPRECATED - user-generated deprecation warnings -; -; Common Values: -; E_ALL (Show all errors, warnings and notices including coding standards.) -; E_ALL & ~E_NOTICE (Show all errors, except for notices) -; E_ALL & ~E_NOTICE & ~E_STRICT (Show all errors, except for notices and coding standards warnings.) -; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors) -; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT -; http://php.net/error-reporting -error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT - -; This directive controls whether or not and where PHP will output errors, -; notices and warnings too. Error output is very useful during development, but -; it could be very dangerous in production environments. Depending on the code -; which is triggering the error, sensitive information could potentially leak -; out of your application such as database usernames and passwords or worse. -; For production environments, we recommend logging errors rather than -; sending them to STDOUT. -; Possible Values: -; Off = Do not display any errors -; stderr = Display errors to STDERR (affects only CGI/CLI binaries!) -; On or stdout = Display errors to STDOUT -; Default Value: On -; Development Value: On -; Production Value: Off -; http://php.net/display-errors -display_errors = Off - -; The display of errors which occur during PHP's startup sequence are handled -; separately from display_errors. PHP's default behavior is to suppress those -; errors from clients. Turning the display of startup errors on can be useful in -; debugging configuration problems. We strongly recommend you -; set this to 'off' for production servers. -; Default Value: Off -; Development Value: On -; Production Value: Off -; http://php.net/display-startup-errors -display_startup_errors = Off - -; Besides displaying errors, PHP can also log errors to locations such as a -; server-specific log, STDERR, or a location specified by the error_log -; directive found below. While errors should not be displayed on productions -; servers they should still be monitored and logging is a great way to do that. -; Default Value: Off -; Development Value: On -; Production Value: On -; http://php.net/log-errors -log_errors = On - -; Set maximum length of log_errors. In error_log information about the source is -; added. The default is 1024 and 0 allows to not apply any maximum length at all. -; http://php.net/log-errors-max-len -log_errors_max_len = 1024 - -; Do not log repeated messages. Repeated errors must occur in same file on same -; line unless ignore_repeated_source is set true. -; http://php.net/ignore-repeated-errors -ignore_repeated_errors = Off - -; Ignore source of message when ignoring repeated messages. When this setting -; is On you will not log errors with repeated messages from different files or -; source lines. -; http://php.net/ignore-repeated-source -ignore_repeated_source = Off - -; If this parameter is set to Off, then memory leaks will not be shown (on -; stdout or in the log). This has only effect in a debug compile, and if -; error reporting includes E_WARNING in the allowed list -; http://php.net/report-memleaks -report_memleaks = On - -; This setting is on by default. -;report_zend_debug = 0 - -; Store the last error/warning message in $php_errormsg (boolean). Setting this value -; to On can assist in debugging and is appropriate for development servers. It should -; however be disabled on production servers. -; Default Value: Off -; Development Value: On -; Production Value: Off -; http://php.net/track-errors -track_errors = Off - -; Turn off normal error reporting and emit XML-RPC error XML -; http://php.net/xmlrpc-errors -;xmlrpc_errors = 0 - -; An XML-RPC faultCode -;xmlrpc_error_number = 0 - -; When PHP displays or logs an error, it has the capability of formatting the -; error message as HTML for easier reading. This directive controls whether -; the error message is formatted as HTML or not. -; Note: This directive is hardcoded to Off for the CLI SAPI -; Default Value: On -; Development Value: On -; Production value: On -; http://php.net/html-errors -html_errors = On - -; If html_errors is set to On *and* docref_root is not empty, then PHP -; produces clickable error messages that direct to a page describing the error -; or function causing the error in detail. -; You can download a copy of the PHP manual from http://php.net/docs -; and change docref_root to the base URL of your local copy including the -; leading '/'. You must also specify the file extension being used including -; the dot. PHP's default behavior is to leave these settings empty, in which -; case no links to documentation are generated. -; Note: Never use this feature for production boxes. -; http://php.net/docref-root -; Examples -;docref_root = "/phpmanual/" - -; http://php.net/docref-ext -;docref_ext = .html - -; String to output before an error message. PHP's default behavior is to leave -; this setting blank. -; http://php.net/error-prepend-string -; Example: -;error_prepend_string = "" - -; String to output after an error message. PHP's default behavior is to leave -; this setting blank. -; http://php.net/error-append-string -; Example: -;error_append_string = "" - -; Log errors to specified file. PHP's default behavior is to leave this value -; empty. -; http://php.net/error-log -; Example: -;error_log = php_errors.log -; Log errors to syslog (Event Log on Windows). -error_log = /var/log/php/php.error.log - -;windows.show_crt_warning -; Default value: 0 -; Development value: 0 -; Production value: 0 - -;;;;;;;;;;;;;;;;; -; Data Handling ; -;;;;;;;;;;;;;;;;; - -; The separator used in PHP generated URLs to separate arguments. -; PHP's default setting is "&". -; http://php.net/arg-separator.output -; Example: -;arg_separator.output = "&" - -; List of separator(s) used by PHP to parse input URLs into variables. -; PHP's default setting is "&". -; NOTE: Every character in this directive is considered as separator! -; http://php.net/arg-separator.input -; Example: -;arg_separator.input = ";&" - -; This directive determines which super global arrays are registered when PHP -; starts up. G,P,C,E & S are abbreviations for the following respective super -; globals: GET, POST, COOKIE, ENV and SERVER. There is a performance penalty -; paid for the registration of these arrays and because ENV is not as commonly -; used as the others, ENV is not recommended on productions servers. You -; can still get access to the environment variables through getenv() should you -; need to. -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS"; -; http://php.net/variables-order -variables_order = "GPCS" - -; This directive determines which super global data (G,P & C) should be -; registered into the super global array REQUEST. If so, it also determines -; the order in which that data is registered. The values for this directive -; are specified in the same manner as the variables_order directive, -; EXCEPT one. Leaving this value empty will cause PHP to use the value set -; in the variables_order directive. It does not mean it will leave the super -; globals array REQUEST empty. -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" -; http://php.net/request-order -request_order = "GP" - -; This directive determines whether PHP registers $argv & $argc each time it -; runs. $argv contains an array of all the arguments passed to PHP when a script -; is invoked. $argc contains an integer representing the number of arguments -; that were passed when the script was invoked. These arrays are extremely -; useful when running scripts from the command line. When this directive is -; enabled, registering these variables consumes CPU cycles and memory each time -; a script is executed. For performance reasons, this feature should be disabled -; on production servers. -; Note: This directive is hardcoded to On for the CLI SAPI -; Default Value: On -; Development Value: Off -; Production Value: Off -; http://php.net/register-argc-argv -register_argc_argv = Off - -; When enabled, the ENV, REQUEST and SERVER variables are created when they're -; first used (Just In Time) instead of when the script starts. If these -; variables are not used within a script, having this directive on will result -; in a performance gain. The PHP directive register_argc_argv must be disabled -; for this directive to have any affect. -; http://php.net/auto-globals-jit -auto_globals_jit = On - -; Whether PHP will read the POST data. -; This option is enabled by default. -; Most likely, you won't want to disable this option globally. It causes $_POST -; and $_FILES to always be empty; the only way you will be able to read the -; POST data will be through the php://input stream wrapper. This can be useful -; to proxy requests or to process the POST data in a memory efficient fashion. -; http://php.net/enable-post-data-reading -;enable_post_data_reading = Off - -; Maximum size of POST data that PHP will accept. -; Its value may be 0 to disable the limit. It is ignored if POST data reading -; is disabled through enable_post_data_reading. -; http://php.net/post-max-size -post_max_size = 100M - -; Automatically add files before PHP document. -; http://php.net/auto-prepend-file -auto_prepend_file = - -; Automatically add files after PHP document. -; http://php.net/auto-append-file -auto_append_file = - -; By default, PHP will output a media type using the Content-Type header. To -; disable this, simply set it to be empty. -; -; PHP's built-in default media type is set to text/html. -; http://php.net/default-mimetype -default_mimetype = "text/html" - -; PHP's default character set is set to UTF-8. -; http://php.net/default-charset -default_charset = "UTF-8" - -; PHP internal character encoding is set to empty. -; If empty, default_charset is used. -; http://php.net/internal-encoding -;internal_encoding = - -; PHP input character encoding is set to empty. -; If empty, default_charset is used. -; http://php.net/input-encoding -;input_encoding = - -; PHP output character encoding is set to empty. -; If empty, default_charset is used. -; See also output_buffer. -; http://php.net/output-encoding -;output_encoding = - -;;;;;;;;;;;;;;;;;;;;;;;;; -; Paths and Directories ; -;;;;;;;;;;;;;;;;;;;;;;;;; - -; UNIX: "/path1:/path2" -;include_path = ".:/php/includes" -; -; Windows: "\path1;\path2" -;include_path = ".;c:\php\includes" -; -; PHP's default setting for include_path is ".;/path/to/php/pear" -; http://php.net/include-path - -; The root of the PHP pages, used only if nonempty. -; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root -; if you are running php as a CGI under any web server (other than IIS) -; see documentation for security issues. The alternate is to use the -; cgi.force_redirect configuration below -; http://php.net/doc-root -doc_root = - -; The directory under which PHP opens the script using /~username used only -; if nonempty. -; http://php.net/user-dir -user_dir = - -; Directory in which the loadable extensions (modules) reside. -; http://php.net/extension-dir -; extension_dir = "./" -; On windows: -; extension_dir = "ext" - -; Directory where the temporary files should be placed. -; Defaults to the system default (see sys_get_temp_dir) -; sys_temp_dir = "/tmp" - -; Whether or not to enable the dl() function. The dl() function does NOT work -; properly in multithreaded servers, such as IIS or Zeus, and is automatically -; disabled on them. -; http://php.net/enable-dl -enable_dl = Off - -; cgi.force_redirect is necessary to provide security running PHP as a CGI under -; most web servers. Left undefined, PHP turns this on by default. You can -; turn it off here AT YOUR OWN RISK -; **You CAN safely turn this off for IIS, in fact, you MUST.** -; http://php.net/cgi.force-redirect -;cgi.force_redirect = 1 - -; if cgi.nph is enabled it will force cgi to always sent Status: 200 with -; every request. PHP's default behavior is to disable this feature. -;cgi.nph = 1 - -; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape -; (iPlanet) web servers, you MAY need to set an environment variable name that PHP -; will look for to know it is OK to continue execution. Setting this variable MAY -; cause security issues, KNOW WHAT YOU ARE DOING FIRST. -; http://php.net/cgi.redirect-status-env -;cgi.redirect_status_env = - -; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's -; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok -; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting -; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting -; of zero causes PHP to behave as before. Default is 1. You should fix your scripts -; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. -; http://php.net/cgi.fix-pathinfo -;cgi.fix_pathinfo=1 - -; if cgi.discard_path is enabled, the PHP CGI binary can safely be placed outside -; of the web tree and people will not be able to circumvent .htaccess security. -; http://php.net/cgi.dicard-path -;cgi.discard_path=1 - -; FastCGI under IIS (on WINNT based OS) supports the ability to impersonate -; security tokens of the calling client. This allows IIS to define the -; security context that the request runs under. mod_fastcgi under Apache -; does not currently support this feature (03/17/2002) -; Set to 1 if running under IIS. Default is zero. -; http://php.net/fastcgi.impersonate -;fastcgi.impersonate = 1 - -; Disable logging through FastCGI connection. PHP's default behavior is to enable -; this feature. -;fastcgi.logging = 0 - -; cgi.rfc2616_headers configuration option tells PHP what type of headers to -; use when sending HTTP response code. If set to 0, PHP sends Status: header that -; is supported by Apache. When this option is set to 1, PHP will send -; RFC2616 compliant header. -; Default is zero. -; http://php.net/cgi.rfc2616-headers -;cgi.rfc2616_headers = 0 - -; cgi.check_shebang_line controls whether CGI PHP checks for line starting with #! -; (shebang) at the top of the running script. This line might be needed if the -; script support running both as stand-alone script and via PHP CGI<. PHP in CGI -; mode skips this line and ignores its content if this directive is turned on. -; http://php.net/cgi.check-shebang-line -;cgi.check_shebang_line=1 - -;;;;;;;;;;;;;;;; -; File Uploads ; -;;;;;;;;;;;;;;;; - -; Whether to allow HTTP file uploads. -; http://php.net/file-uploads -file_uploads = On - -; Temporary directory for HTTP uploaded files (will use system default if not -; specified). -; http://php.net/upload-tmp-dir -;upload_tmp_dir = - -; Maximum allowed size for uploaded files. -; http://php.net/upload-max-filesize -upload_max_filesize = 50M - -; Maximum number of files that can be uploaded via a single request -max_file_uploads = 20 - -;;;;;;;;;;;;;;;;;; -; Fopen wrappers ; -;;;;;;;;;;;;;;;;;; - -; Whether to allow the treatment of URLs (like http:// or ftp://) as files. -; http://php.net/allow-url-fopen -allow_url_fopen = On - -; Whether to allow include/require to open URLs (like http:// or ftp://) as files. -; http://php.net/allow-url-include -allow_url_include = Off - -; Define the anonymous ftp password (your email address). PHP's default setting -; for this is empty. -; http://php.net/from -;from="john@doe.com" - -; Define the User-Agent string. PHP's default setting for this is empty. -; http://php.net/user-agent -;user_agent="PHP" - -; Default timeout for socket based streams (seconds) -; http://php.net/default-socket-timeout -default_socket_timeout = 60 - -; If your scripts have to deal with files from Macintosh systems, -; or you are running on a Mac and need to deal with files from -; unix or win32 systems, setting this flag will cause PHP to -; automatically detect the EOL character in those files so that -; fgets() and file() will work regardless of the source of the file. -; http://php.net/auto-detect-line-endings -;auto_detect_line_endings = Off - -;;;;;;;;;;;;;;;;;;;;;; -; Dynamic Extensions ; -;;;;;;;;;;;;;;;;;;;;;; - -; If you wish to have an extension loaded automatically, use the following -; syntax: -; -; extension=modulename.extension -; -; For example, on Windows: -; -; extension=mysqli.dll -; -; ... or under UNIX: -; -; extension=mysqli.so -; -; ... or with a path: -; -; extension=/path/to/extension/mysqli.so -; -; If you only provide the name of the extension, PHP will look for it in its -; default extension directory. -; -; Windows Extensions -; Note that ODBC support is built in, so no dll is needed for it. -; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5+) -; extension folders as well as the separate PECL DLL download (PHP 5+). -; Be sure to appropriately set the extension_dir directive. -; -;extension=php_bz2.dll -;extension=php_curl.dll -;extension=php_fileinfo.dll -;extension=php_ftp.dll -;extension=php_gd2.dll -;extension=php_gettext.dll -;extension=php_gmp.dll -;extension=php_intl.dll -;extension=php_imap.dll -;extension=php_interbase.dll -;extension=php_ldap.dll -;extension=php_mbstring.dll -;extension=php_exif.dll ; Must be after mbstring as it depends on it -;extension=php_mysqli.dll -;extension=php_oci8_12c.dll ; Use with Oracle Database 12c Instant Client -;extension=php_openssl.dll -;extension=php_pdo_firebird.dll -;extension=php_pdo_mysql.dll -;extension=php_pdo_oci.dll -;extension=php_pdo_odbc.dll -;extension=php_pdo_pgsql.dll -;extension=php_pdo_sqlite.dll -;extension=php_pgsql.dll -;extension=php_shmop.dll - -; The MIBS data available in the PHP distribution must be installed. -; See http://www.php.net/manual/en/snmp.installation.php -;extension=php_snmp.dll - -;extension=php_soap.dll -;extension=php_sockets.dll -;extension=php_sqlite3.dll -;extension=php_tidy.dll -;extension=php_xmlrpc.dll -;extension=php_xsl.dll - -;;;;;;;;;;;;;;;;;;; -; Module Settings ; -;;;;;;;;;;;;;;;;;;; - -[CLI Server] -; Whether the CLI web server uses ANSI color coding in its terminal output. -cli_server.color = On - -[Date] -; Defines the default timezone used by the date functions -; http://php.net/date.timezone -date.timezone = Asia/Shanghai - -; http://php.net/date.default-latitude -;date.default_latitude = 31.7667 - -; http://php.net/date.default-longitude -;date.default_longitude = 35.2333 - -; http://php.net/date.sunrise-zenith -;date.sunrise_zenith = 90.583333 - -; http://php.net/date.sunset-zenith -;date.sunset_zenith = 90.583333 - -[filter] -; http://php.net/filter.default -;filter.default = unsafe_raw - -; http://php.net/filter.default-flags -;filter.default_flags = - -[iconv] -; Use of this INI entry is deprecated, use global input_encoding instead. -; If empty, default_charset or input_encoding or iconv.input_encoding is used. -; The precedence is: default_charset < intput_encoding < iconv.input_encoding -;iconv.input_encoding = - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;iconv.internal_encoding = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; If empty, default_charset or output_encoding or iconv.output_encoding is used. -; The precedence is: default_charset < output_encoding < iconv.output_encoding -; To use an output encoding conversion, iconv's output handler must be set -; otherwise output encoding conversion cannot be performed. -;iconv.output_encoding = - -[intl] -;intl.default_locale = -; This directive allows you to produce PHP errors when some error -; happens within intl functions. The value is the level of the error produced. -; Default is 0, which does not produce any errors. -;intl.error_level = E_WARNING -;intl.use_exceptions = 0 - -[sqlite3] -;sqlite3.extension_dir = - -[Pcre] -;PCRE library backtracking limit. -; http://php.net/pcre.backtrack-limit -;pcre.backtrack_limit=100000 - -;PCRE library recursion limit. -;Please note that if you set this value to a high number you may consume all -;the available process stack and eventually crash PHP (due to reaching the -;stack size limit imposed by the Operating System). -; http://php.net/pcre.recursion-limit -;pcre.recursion_limit=100000 - -;Enables or disables JIT compilation of patterns. This requires the PCRE -;library to be compiled with JIT support. -;pcre.jit=1 - -[Pdo] -; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off" -; http://php.net/pdo-odbc.connection-pooling -;pdo_odbc.connection_pooling=strict - -;pdo_odbc.db2_instance_name - -[Pdo_mysql] -; If mysqlnd is used: Number of cache slots for the internal result set cache -; http://php.net/pdo_mysql.cache_size -pdo_mysql.cache_size = 2000 - -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -; http://php.net/pdo_mysql.default-socket -pdo_mysql.default_socket= - -[Phar] -; http://php.net/phar.readonly -;phar.readonly = On - -; http://php.net/phar.require-hash -;phar.require_hash = On - -;phar.cache_list = - -[mail function] -; For Win32 only. -; http://php.net/smtp -SMTP = localhost -; http://php.net/smtp-port -smtp_port = 25 - -; For Win32 only. -; http://php.net/sendmail-from -;sendmail_from = me@example.com - -; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). -; http://php.net/sendmail-path -;sendmail_path = - -; Force the addition of the specified parameters to be passed as extra parameters -; to the sendmail binary. These parameters will always replace the value of -; the 5th parameter to mail(). -;mail.force_extra_parameters = - -; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename -mail.add_x_header = On - -; The path to a log file that will log all mail() calls. Log entries include -; the full path of the script, line number, To address and headers. -;mail.log = -; Log mail to syslog (Event Log on Windows). -;mail.log = syslog - -[ODBC] -; http://php.net/odbc.default-db -;odbc.default_db = Not yet implemented - -; http://php.net/odbc.default-user -;odbc.default_user = Not yet implemented - -; http://php.net/odbc.default-pw -;odbc.default_pw = Not yet implemented - -; Controls the ODBC cursor model. -; Default: SQL_CURSOR_STATIC (default). -;odbc.default_cursortype - -; Allow or prevent persistent links. -; http://php.net/odbc.allow-persistent -odbc.allow_persistent = On - -; Check that a connection is still valid before reuse. -; http://php.net/odbc.check-persistent -odbc.check_persistent = On - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/odbc.max-persistent -odbc.max_persistent = -1 - -; Maximum number of links (persistent + non-persistent). -1 means no limit. -; http://php.net/odbc.max-links -odbc.max_links = -1 - -; Handling of LONG fields. Returns number of bytes to variables. 0 means -; passthru. -; http://php.net/odbc.defaultlrl -odbc.defaultlrl = 4096 - -; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char. -; See the documentation on odbc_binmode and odbc_longreadlen for an explanation -; of odbc.defaultlrl and odbc.defaultbinmode -; http://php.net/odbc.defaultbinmode -odbc.defaultbinmode = 1 - -;birdstep.max_links = -1 - -[Interbase] -; Allow or prevent persistent links. -ibase.allow_persistent = 1 - -; Maximum number of persistent links. -1 means no limit. -ibase.max_persistent = -1 - -; Maximum number of links (persistent + non-persistent). -1 means no limit. -ibase.max_links = -1 - -; Default database name for ibase_connect(). -;ibase.default_db = - -; Default username for ibase_connect(). -;ibase.default_user = - -; Default password for ibase_connect(). -;ibase.default_password = - -; Default charset for ibase_connect(). -;ibase.default_charset = - -; Default timestamp format. -ibase.timestampformat = "%Y-%m-%d %H:%M:%S" - -; Default date format. -ibase.dateformat = "%Y-%m-%d" - -; Default time format. -ibase.timeformat = "%H:%M:%S" - -[MySQLi] - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/mysqli.max-persistent -mysqli.max_persistent = -1 - -; Allow accessing, from PHP's perspective, local files with LOAD DATA statements -; http://php.net/mysqli.allow_local_infile -;mysqli.allow_local_infile = On - -; Allow or prevent persistent links. -; http://php.net/mysqli.allow-persistent -mysqli.allow_persistent = On - -; Maximum number of links. -1 means no limit. -; http://php.net/mysqli.max-links -mysqli.max_links = -1 - -; If mysqlnd is used: Number of cache slots for the internal result set cache -; http://php.net/mysqli.cache_size -mysqli.cache_size = 2000 - -; Default port number for mysqli_connect(). If unset, mysqli_connect() will use -; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the -; compile-time value defined MYSQL_PORT (in that order). Win32 will only look -; at MYSQL_PORT. -; http://php.net/mysqli.default-port -mysqli.default_port = 3306 - -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -; http://php.net/mysqli.default-socket -mysqli.default_socket = - -; Default host for mysql_connect() (doesn't apply in safe mode). -; http://php.net/mysqli.default-host -mysqli.default_host = - -; Default user for mysql_connect() (doesn't apply in safe mode). -; http://php.net/mysqli.default-user -mysqli.default_user = - -; Default password for mysqli_connect() (doesn't apply in safe mode). -; Note that this is generally a *bad* idea to store passwords in this file. -; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw") -; and reveal this password! And of course, any users with read access to this -; file will be able to reveal the password as well. -; http://php.net/mysqli.default-pw -mysqli.default_pw = - -; Allow or prevent reconnect -mysqli.reconnect = Off - -[mysqlnd] -; Enable / Disable collection of general statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -; http://php.net/mysqlnd.collect_statistics -mysqlnd.collect_statistics = On - -; Enable / Disable collection of memory usage statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -; http://php.net/mysqlnd.collect_memory_statistics -mysqlnd.collect_memory_statistics = Off - -; Records communication from all extensions using mysqlnd to the specified log -; file. -; http://php.net/mysqlnd.debug -;mysqlnd.debug = - -; Defines which queries will be logged. -; http://php.net/mysqlnd.log_mask -;mysqlnd.log_mask = 0 - -; Default size of the mysqlnd memory pool, which is used by result sets. -; http://php.net/mysqlnd.mempool_default_size -;mysqlnd.mempool_default_size = 16000 - -; Size of a pre-allocated buffer used when sending commands to MySQL in bytes. -; http://php.net/mysqlnd.net_cmd_buffer_size -;mysqlnd.net_cmd_buffer_size = 2048 - -; Size of a pre-allocated buffer used for reading data sent by the server in -; bytes. -; http://php.net/mysqlnd.net_read_buffer_size -;mysqlnd.net_read_buffer_size = 32768 - -; Timeout for network requests in seconds. -; http://php.net/mysqlnd.net_read_timeout -;mysqlnd.net_read_timeout = 31536000 - -; SHA-256 Authentication Plugin related. File with the MySQL server public RSA -; key. -; http://php.net/mysqlnd.sha256_server_public_key -;mysqlnd.sha256_server_public_key = - -[OCI8] - -; Connection: Enables privileged connections using external -; credentials (OCI_SYSOPER, OCI_SYSDBA) -; http://php.net/oci8.privileged-connect -;oci8.privileged_connect = Off - -; Connection: The maximum number of persistent OCI8 connections per -; process. Using -1 means no limit. -; http://php.net/oci8.max-persistent -;oci8.max_persistent = -1 - -; Connection: The maximum number of seconds a process is allowed to -; maintain an idle persistent connection. Using -1 means idle -; persistent connections will be maintained forever. -; http://php.net/oci8.persistent-timeout -;oci8.persistent_timeout = -1 - -; Connection: The number of seconds that must pass before issuing a -; ping during oci_pconnect() to check the connection validity. When -; set to 0, each oci_pconnect() will cause a ping. Using -1 disables -; pings completely. -; http://php.net/oci8.ping-interval -;oci8.ping_interval = 60 - -; Connection: Set this to a user chosen connection class to be used -; for all pooled server requests with Oracle 11g Database Resident -; Connection Pooling (DRCP). To use DRCP, this value should be set to -; the same string for all web servers running the same application, -; the database pool must be configured, and the connection string must -; specify to use a pooled server. -;oci8.connection_class = - -; High Availability: Using On lets PHP receive Fast Application -; Notification (FAN) events generated when a database node fails. The -; database must also be configured to post FAN events. -;oci8.events = Off - -; Tuning: This option enables statement caching, and specifies how -; many statements to cache. Using 0 disables statement caching. -; http://php.net/oci8.statement-cache-size -;oci8.statement_cache_size = 20 - -; Tuning: Enables statement prefetching and sets the default number of -; rows that will be fetched automatically after statement execution. -; http://php.net/oci8.default-prefetch -;oci8.default_prefetch = 100 - -; Compatibility. Using On means oci_close() will not close -; oci_connect() and oci_new_connect() connections. -; http://php.net/oci8.old-oci-close-semantics -;oci8.old_oci_close_semantics = Off - -[PostgreSQL] -; Allow or prevent persistent links. -; http://php.net/pgsql.allow-persistent -pgsql.allow_persistent = On - -; Detect broken persistent links always with pg_pconnect(). -; Auto reset feature requires a little overheads. -; http://php.net/pgsql.auto-reset-persistent -pgsql.auto_reset_persistent = Off - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/pgsql.max-persistent -pgsql.max_persistent = -1 - -; Maximum number of links (persistent+non persistent). -1 means no limit. -; http://php.net/pgsql.max-links -pgsql.max_links = -1 - -; Ignore PostgreSQL backends Notice message or not. -; Notice message logging require a little overheads. -; http://php.net/pgsql.ignore-notice -pgsql.ignore_notice = 0 - -; Log PostgreSQL backends Notice message or not. -; Unless pgsql.ignore_notice=0, module cannot log notice message. -; http://php.net/pgsql.log-notice -pgsql.log_notice = 0 - -[bcmath] -; Number of decimal digits for all bcmath functions. -; http://php.net/bcmath.scale -bcmath.scale = 0 - -[browscap] -; http://php.net/browscap -;browscap = extra/browscap.ini - -[Session] -; Handler used to store/retrieve data. -; http://php.net/session.save-handler -session.save_handler = files - -; Argument passed to save_handler. In the case of files, this is the path -; where data files are stored. Note: Windows users have to change this -; variable in order to use PHP's session functions. -; -; The path can be defined as: -; -; session.save_path = "N;/path" -; -; where N is an integer. Instead of storing all the session files in -; /path, what this will do is use subdirectories N-levels deep, and -; store the session data in those directories. This is useful if -; your OS has problems with many files in one directory, and is -; a more efficient layout for servers that handle many sessions. -; -; NOTE 1: PHP will not create this directory structure automatically. -; You can use the script in the ext/session dir for that purpose. -; NOTE 2: See the section on garbage collection below if you choose to -; use subdirectories for session storage -; -; The file storage module creates files using mode 600 by default. -; You can change that by using -; -; session.save_path = "N;MODE;/path" -; -; where MODE is the octal representation of the mode. Note that this -; does not overwrite the process's umask. -; http://php.net/session.save-path -;session.save_path = "/tmp" - -; Whether to use strict session mode. -; Strict session mode does not accept uninitialized session ID and regenerate -; session ID if browser sends uninitialized session ID. Strict mode protects -; applications from session fixation via session adoption vulnerability. It is -; disabled by default for maximum compatibility, but enabling it is encouraged. -; https://wiki.php.net/rfc/strict_sessions -session.use_strict_mode = 0 - -; Whether to use cookies. -; http://php.net/session.use-cookies -session.use_cookies = 1 - -; http://php.net/session.cookie-secure -;session.cookie_secure = - -; This option forces PHP to fetch and use a cookie for storing and maintaining -; the session id. We encourage this operation as it's very helpful in combating -; session hijacking when not specifying and managing your own session id. It is -; not the be-all and end-all of session hijacking defense, but it's a good start. -; http://php.net/session.use-only-cookies -session.use_only_cookies = 1 - -; Name of the session (used as cookie name). -; http://php.net/session.name -session.name = PHPSESSID - -; Initialize session on request startup. -; http://php.net/session.auto-start -session.auto_start = 0 - -; Lifetime in seconds of cookie or, if 0, until browser is restarted. -; http://php.net/session.cookie-lifetime -session.cookie_lifetime = 0 - -; The path for which the cookie is valid. -; http://php.net/session.cookie-path -session.cookie_path = / - -; The domain for which the cookie is valid. -; http://php.net/session.cookie-domain -session.cookie_domain = - -; Whether or not to add the httpOnly flag to the cookie, which makes it inaccessible to browser scripting languages such as JavaScript. -; http://php.net/session.cookie-httponly -session.cookie_httponly = - -; Handler used to serialize data. php is the standard serializer of PHP. -; http://php.net/session.serialize-handler -session.serialize_handler = php - -; Defines the probability that the 'garbage collection' process is started -; on every session initialization. The probability is calculated by using -; gc_probability/gc_divisor. Where session.gc_probability is the numerator -; and gc_divisor is the denominator in the equation. Setting this value to 1 -; when the session.gc_divisor value is 100 will give you approximately a 1% chance -; the gc will run on any give request. -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; http://php.net/session.gc-probability -session.gc_probability = 1 - -; Defines the probability that the 'garbage collection' process is started on every -; session initialization. The probability is calculated by using the following equation: -; gc_probability/gc_divisor. Where session.gc_probability is the numerator and -; session.gc_divisor is the denominator in the equation. Setting this value to 1 -; when the session.gc_divisor value is 100 will give you approximately a 1% chance -; the gc will run on any give request. Increasing this value to 1000 will give you -; a 0.1% chance the gc will run on any give request. For high volume production servers, -; this is a more efficient approach. -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 -; http://php.net/session.gc-divisor -session.gc_divisor = 1000 - -; After this number of seconds, stored data will be seen as 'garbage' and -; cleaned up by the garbage collection process. -; http://php.net/session.gc-maxlifetime -session.gc_maxlifetime = 1440 - -; NOTE: If you are using the subdirectory option for storing session files -; (see session.save_path above), then garbage collection does *not* -; happen automatically. You will need to do your own garbage -; collection through a shell script, cron entry, or some other method. -; For example, the following script would is the equivalent of -; setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes): -; find /path/to/sessions -cmin +24 -type f | xargs rm - -; Check HTTP Referer to invalidate externally stored URLs containing ids. -; HTTP_REFERER has to contain this substring for the session to be -; considered as valid. -; http://php.net/session.referer-check -session.referer_check = - -; Set to {nocache,private,public,} to determine HTTP caching aspects -; or leave this empty to avoid sending anti-caching headers. -; http://php.net/session.cache-limiter -session.cache_limiter = nocache - -; Document expires after n minutes. -; http://php.net/session.cache-expire -session.cache_expire = 180 - -; trans sid support is disabled by default. -; Use of trans sid may risk your users' security. -; Use this option with caution. -; - User may send URL contains active session ID -; to other person via. email/irc/etc. -; - URL that contains active session ID may be stored -; in publicly accessible computer. -; - User may access your site with the same session ID -; always using URL stored in browser's history or bookmarks. -; http://php.net/session.use-trans-sid -session.use_trans_sid = 0 - -; Set session ID character length. This value could be between 22 to 256. -; Shorter length than default is supported only for compatibility reason. -; Users should use 32 or more chars. -; http://php.net/session.sid-length -; Default Value: 32 -; Development Value: 26 -; Production Value: 26 -session.sid_length = 26 - -; The URL rewriter will look for URLs in a defined set of HTML tags. -; is special; if you include them here, the rewriter will -; add a hidden field with the info which is otherwise appended -; to URLs. tag's action attribute URL will not be modified -; unless it is specified. -; Note that all valid entries require a "=", even if no value follows. -; Default Value: "a=href,area=href,frame=src,form=" -; Development Value: "a=href,area=href,frame=src,form=" -; Production Value: "a=href,area=href,frame=src,form=" -; http://php.net/url-rewriter.tags -session.trans_sid_tags = "a=href,area=href,frame=src,form=" - -; URL rewriter does not rewrite absolute URLs by default. -; To enable rewrites for absolute pathes, target hosts must be specified -; at RUNTIME. i.e. use ini_set() -; tags is special. PHP will check action attribute's URL regardless -; of session.trans_sid_tags setting. -; If no host is defined, HTTP_HOST will be used for allowed host. -; Example value: php.net,www.php.net,wiki.php.net -; Use "," for multiple hosts. No spaces are allowed. -; Default Value: "" -; Development Value: "" -; Production Value: "" -;session.trans_sid_hosts="" - -; Define how many bits are stored in each character when converting -; the binary hash data to something readable. -; Possible values: -; 4 (4 bits: 0-9, a-f) -; 5 (5 bits: 0-9, a-v) -; 6 (6 bits: 0-9, a-z, A-Z, "-", ",") -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 -; http://php.net/session.hash-bits-per-character -session.sid_bits_per_character = 5 - -; Enable upload progress tracking in $_SESSION -; Default Value: On -; Development Value: On -; Production Value: On -; http://php.net/session.upload-progress.enabled -;session.upload_progress.enabled = On - -; Cleanup the progress information as soon as all POST data has been read -; (i.e. upload completed). -; Default Value: On -; Development Value: On -; Production Value: On -; http://php.net/session.upload-progress.cleanup -;session.upload_progress.cleanup = On - -; A prefix used for the upload progress key in $_SESSION -; Default Value: "upload_progress_" -; Development Value: "upload_progress_" -; Production Value: "upload_progress_" -; http://php.net/session.upload-progress.prefix -;session.upload_progress.prefix = "upload_progress_" - -; The index name (concatenated with the prefix) in $_SESSION -; containing the upload progress information -; Default Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Development Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Production Value: "PHP_SESSION_UPLOAD_PROGRESS" -; http://php.net/session.upload-progress.name -;session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS" - -; How frequently the upload progress should be updated. -; Given either in percentages (per-file), or in bytes -; Default Value: "1%" -; Development Value: "1%" -; Production Value: "1%" -; http://php.net/session.upload-progress.freq -;session.upload_progress.freq = "1%" - -; The minimum delay between updates, in seconds -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; http://php.net/session.upload-progress.min-freq -;session.upload_progress.min_freq = "1" - -; Only write session data when session data is changed. Enabled by default. -; http://php.net/session.lazy-write -;session.lazy_write = On - -[Assertion] -; Switch whether to compile assertions at all (to have no overhead at run-time) -; -1: Do not compile at all -; 0: Jump over assertion at run-time -; 1: Execute assertions -; Changing from or to a negative value is only possible in php.ini! (For turning assertions on and off at run-time, see assert.active, when zend.assertions = 1) -; Default Value: 1 -; Development Value: 1 -; Production Value: -1 -; http://php.net/zend.assertions -zend.assertions = -1 - -; Assert(expr); active by default. -; http://php.net/assert.active -;assert.active = On - -; Throw an AssertationException on failed assertions -; http://php.net/assert.exception -;assert.exception = On - -; Issue a PHP warning for each failed assertion. (Overridden by assert.exception if active) -; http://php.net/assert.warning -;assert.warning = On - -; Don't bail out by default. -; http://php.net/assert.bail -;assert.bail = Off - -; User-function to be called if an assertion fails. -; http://php.net/assert.callback -;assert.callback = 0 - -; Eval the expression with current error_reporting(). Set to true if you want -; error_reporting(0) around the eval(). -; http://php.net/assert.quiet-eval -;assert.quiet_eval = 0 - -[COM] -; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs -; http://php.net/com.typelib-file -;com.typelib_file = - -; allow Distributed-COM calls -; http://php.net/com.allow-dcom -;com.allow_dcom = true - -; autoregister constants of a components typlib on com_load() -; http://php.net/com.autoregister-typelib -;com.autoregister_typelib = true - -; register constants casesensitive -; http://php.net/com.autoregister-casesensitive -;com.autoregister_casesensitive = false - -; show warnings on duplicate constant registrations -; http://php.net/com.autoregister-verbose -;com.autoregister_verbose = true - -; The default character set code-page to use when passing strings to and from COM objects. -; Default: system ANSI code page -;com.code_page= - -[mbstring] -; language for internal character representation. -; This affects mb_send_mail() and mbstring.detect_order. -; http://php.net/mbstring.language -;mbstring.language = Japanese - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; internal/script encoding. -; Some encoding cannot work as internal encoding. (e.g. SJIS, BIG5, ISO-2022-*) -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;mbstring.internal_encoding = - -; Use of this INI entry is deprecated, use global input_encoding instead. -; http input encoding. -; mbstring.encoding_traslation = On is needed to use this setting. -; If empty, default_charset or input_encoding or mbstring.input is used. -; The precedence is: default_charset < intput_encoding < mbsting.http_input -; http://php.net/mbstring.http-input -;mbstring.http_input = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; http output encoding. -; mb_output_handler must be registered as output buffer to function. -; If empty, default_charset or output_encoding or mbstring.http_output is used. -; The precedence is: default_charset < output_encoding < mbstring.http_output -; To use an output encoding conversion, mbstring's output handler must be set -; otherwise output encoding conversion cannot be performed. -; http://php.net/mbstring.http-output -;mbstring.http_output = - -; enable automatic encoding translation according to -; mbstring.internal_encoding setting. Input chars are -; converted to internal encoding by setting this to On. -; Note: Do _not_ use automatic encoding translation for -; portable libs/applications. -; http://php.net/mbstring.encoding-translation -;mbstring.encoding_translation = Off - -; automatic encoding detection order. -; "auto" detect order is changed according to mbstring.language -; http://php.net/mbstring.detect-order -;mbstring.detect_order = auto - -; substitute_character used when character cannot be converted -; one from another -; http://php.net/mbstring.substitute-character -;mbstring.substitute_character = none - -; overload(replace) single byte functions by mbstring functions. -; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(), -; etc. Possible values are 0,1,2,4 or combination of them. -; For example, 7 for overload everything. -; 0: No overload -; 1: Overload mail() function -; 2: Overload str*() functions -; 4: Overload ereg*() functions -; http://php.net/mbstring.func-overload -;mbstring.func_overload = 0 - -; enable strict encoding detection. -; Default: Off -;mbstring.strict_detection = On - -; This directive specifies the regex pattern of content types for which mb_output_handler() -; is activated. -; Default: mbstring.http_output_conv_mimetype=^(text/|application/xhtml\+xml) -;mbstring.http_output_conv_mimetype= - -[gd] -; Tell the jpeg decode to ignore warnings and try to create -; a gd image. The warning will then be displayed as notices -; disabled by default -; http://php.net/gd.jpeg-ignore-warning -;gd.jpeg_ignore_warning = 1 - -[exif] -; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS. -; With mbstring support this will automatically be converted into the encoding -; given by corresponding encode setting. When empty mbstring.internal_encoding -; is used. For the decode settings you can distinguish between motorola and -; intel byte order. A decode setting cannot be empty. -; http://php.net/exif.encode-unicode -;exif.encode_unicode = ISO-8859-15 - -; http://php.net/exif.decode-unicode-motorola -;exif.decode_unicode_motorola = UCS-2BE - -; http://php.net/exif.decode-unicode-intel -;exif.decode_unicode_intel = UCS-2LE - -; http://php.net/exif.encode-jis -;exif.encode_jis = - -; http://php.net/exif.decode-jis-motorola -;exif.decode_jis_motorola = JIS - -; http://php.net/exif.decode-jis-intel -;exif.decode_jis_intel = JIS - -[Tidy] -; The path to a default tidy configuration file to use when using tidy -; http://php.net/tidy.default-config -;tidy.default_config = /usr/local/lib/php/default.tcfg - -; Should tidy clean and repair output automatically? -; WARNING: Do not use this option if you are generating non-html content -; such as dynamic images -; http://php.net/tidy.clean-output -tidy.clean_output = Off - -[soap] -; Enables or disables WSDL caching feature. -; http://php.net/soap.wsdl-cache-enabled -soap.wsdl_cache_enabled=1 - -; Sets the directory name where SOAP extension will put cache files. -; http://php.net/soap.wsdl-cache-dir -soap.wsdl_cache_dir="/tmp" - -; (time to live) Sets the number of second while cached file will be used -; instead of original one. -; http://php.net/soap.wsdl-cache-ttl -soap.wsdl_cache_ttl=86400 - -; Sets the size of the cache limit. (Max. number of WSDL files to cache) -soap.wsdl_cache_limit = 5 - -[sysvshm] -; A default size of the shared memory segment -;sysvshm.init_mem = 10000 - -[ldap] -; Sets the maximum number of open links or -1 for unlimited. -ldap.max_links = -1 - -[dba] -;dba.default_handler= - -[opcache] -; Determines if Zend OPCache is enabled -;opcache.enable=1 - -; Determines if Zend OPCache is enabled for the CLI version of PHP -;opcache.enable_cli=1 - -; The OPcache shared memory storage size. -;opcache.memory_consumption=128 - -; The amount of memory for interned strings in Mbytes. -;opcache.interned_strings_buffer=8 - -; The maximum number of keys (scripts) in the OPcache hash table. -; Only numbers between 200 and 1000000 are allowed. -;opcache.max_accelerated_files=10000 - -; The maximum percentage of "wasted" memory until a restart is scheduled. -;opcache.max_wasted_percentage=5 - -; When this directive is enabled, the OPcache appends the current working -; directory to the script key, thus eliminating possible collisions between -; files with the same name (basename). Disabling the directive improves -; performance, but may break existing applications. -;opcache.use_cwd=1 - -; When disabled, you must reset the OPcache manually or restart the -; webserver for changes to the filesystem to take effect. -;opcache.validate_timestamps=1 - -; How often (in seconds) to check file timestamps for changes to the shared -; memory storage allocation. ("1" means validate once per second, but only -; once per request. "0" means always validate) -;opcache.revalidate_freq=2 - -; Enables or disables file search in include_path optimization -;opcache.revalidate_path=0 - -; If disabled, all PHPDoc comments are dropped from the code to reduce the -; size of the optimized code. -;opcache.save_comments=1 - -; If enabled, a fast shutdown sequence is used for the accelerated code -; Depending on the used Memory Manager this may cause some incompatibilities. -;opcache.fast_shutdown=0 - -; Allow file existence override (file_exists, etc.) performance feature. -;opcache.enable_file_override=0 - -; A bitmask, where each bit enables or disables the appropriate OPcache -; passes -;opcache.optimization_level=0xffffffff - -;opcache.inherited_hack=1 -;opcache.dups_fix=0 - -; The location of the OPcache blacklist file (wildcards allowed). -; Each OPcache blacklist file is a text file that holds the names of files -; that should not be accelerated. The file format is to add each filename -; to a new line. The filename may be a full path or just a file prefix -; (i.e., /var/www/x blacklists all the files and directories in /var/www -; that start with 'x'). Line starting with a ; are ignored (comments). -;opcache.blacklist_filename= - -; Allows exclusion of large files from being cached. By default all files -; are cached. -;opcache.max_file_size=0 - -; Check the cache checksum each N requests. -; The default value of "0" means that the checks are disabled. -;opcache.consistency_checks=0 - -; How long to wait (in seconds) for a scheduled restart to begin if the cache -; is not being accessed. -;opcache.force_restart_timeout=180 - -; OPcache error_log file name. Empty string assumes "stderr". -;opcache.error_log= - -; All OPcache errors go to the Web server log. -; By default, only fatal errors (level 0) or errors (level 1) are logged. -; You can also enable warnings (level 2), info messages (level 3) or -; debug messages (level 4). -;opcache.log_verbosity_level=1 - -; Preferred Shared Memory back-end. Leave empty and let the system decide. -;opcache.preferred_memory_model= - -; Protect the shared memory from unexpected writing during script execution. -; Useful for internal debugging only. -;opcache.protect_memory=0 - -; Allows calling OPcache API functions only from PHP scripts which path is -; started from specified string. The default "" means no restriction -;opcache.restrict_api= - -; Mapping base of shared memory segments (for Windows only). All the PHP -; processes have to map shared memory into the same address space. This -; directive allows to manually fix the "Unable to reattach to base address" -; errors. -;opcache.mmap_base= - -; Enables and sets the second level cache directory. -; It should improve performance when SHM memory is full, at server restart or -; SHM reset. The default "" disables file based caching. -;opcache.file_cache= - -; Enables or disables opcode caching in shared memory. -;opcache.file_cache_only=0 - -; Enables or disables checksum validation when script loaded from file cache. -;opcache.file_cache_consistency_checks=1 - -; Implies opcache.file_cache_only=1 for a certain process that failed to -; reattach to the shared memory (for Windows only). Explicitly enabled file -; cache is required. -;opcache.file_cache_fallback=1 - -; Enables or disables copying of PHP code (text segment) into HUGE PAGES. -; This should improve performance, but requires appropriate OS configuration. -;opcache.huge_code_pages=1 - -; Validate cached file permissions. -;opcache.validate_permission=0 - -; Prevent name collisions in chroot'ed environment. -;opcache.validate_root=0 - -[curl] -; A default value for the CURLOPT_CAINFO option. This is required to be an -; absolute path. -;curl.cainfo = - -[openssl] -; The location of a Certificate Authority (CA) file on the local filesystem -; to use when verifying the identity of SSL/TLS peers. Most users should -; not specify a value for this directive as PHP will attempt to use the -; OS-managed cert stores in its absence. If specified, this value may still -; be overridden on a per-stream basis via the "cafile" SSL stream context -; option. -;openssl.cafile= - -; If openssl.cafile is not specified or if the CA file is not found, the -; directory pointed to by openssl.capath is searched for a suitable -; certificate. This value must be a correctly hashed certificate directory. -; Most users should not specify a value for this directive as PHP will -; attempt to use the OS-managed cert stores in its absence. If specified, -; this value may still be overridden on a per-stream basis via the "capath" -; SSL stream context option. -;openssl.capath= - -; Local Variables: -; tab-width: 4 -; End: - -[XDebug] -xdebug.remote_enable = 1 -xdebug.remote_handler = "dbgp" -; Set to host.docker.internal on Mac and Windows, otherwise, set to host real ip -xdebug.remote_host = host.docker.internal -;xdebug.remote_port = 9000 -xdebug.remote_log = /var/log/php/xdebug.log - -SERVER_ENV=develop - -yaf.use_spl_autoload=1 - -[xhprof] -;xhprof.output_dir = /var/log/php/xhprof.log \ No newline at end of file diff --git a/php7/7.1.33/data.yml b/php7/7.1.33/data.yml deleted file mode 100755 index deeede5ad..000000000 --- a/php7/7.1.33/data.yml +++ /dev/null @@ -1,18 +0,0 @@ -additionalProperties: - formFields: - - default: 9000 - envKey: PANEL_APP_PORT_HTTP - labelEn: PHP-FPM Port - labelZh: PHP-FPM 端口 - label: - en: PHP-FPM Port - ja: PHP-FPM ポート - ms: Port PHP-FPM - pt-br: Porta PHP-FPM - ru: Порт PHP-FPM - ko: PHP-FPM 포트 - zh-Hant: PHP-FPM 埠 - zh: PHP-FPM 端口 - required: true - rule: paramPort - type: number diff --git a/php7/7.1.33/docker-compose.yml b/php7/7.1.33/docker-compose.yml deleted file mode 100644 index dc530c778..000000000 --- a/php7/7.1.33/docker-compose.yml +++ /dev/null @@ -1,21 +0,0 @@ -services: - php: - image: ${IMAGE_NAME} - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - volumes: - - ${PANEL_WEBSITE_DIR}:/www/ - - ./conf/php.ini:/usr/local/etc/php/php.ini - - ./conf/php-fpm.conf:/usr/local/etc/php-fpm.d/www.conf - - ./log:/var/log/php - - ./composer:/tmp/composer - - ./extensions:/php/extensions - ports: - - 127.0.0.1:${PANEL_APP_PORT_HTTP}:9000 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/php7/7.2.34/build/.env b/php7/7.2.34/build/.env deleted file mode 100644 index 6e53ecc0a..000000000 --- a/php7/7.2.34/build/.env +++ /dev/null @@ -1,14 +0,0 @@ -CONTAINER_PACKAGE_URL=mirrors.ustc.edu.cn - -PHP_VERSION=7.2.34 -PHP_PHP_CONF_FILE=./php/php.ini -PHP_FPM_CONF_FILE=./php/php-fpm.conf -PHP_LOG_DIR=./logs/php -PHP_EXTENSIONS= - -SOURCE_DIR=./www - -TZ=Asia/Shanghai -DATA_DIR=./data -IMAGE_NAME=1panel-php:7.2.34 -INSTALL_SUPERVISOR=0 \ No newline at end of file diff --git a/php7/7.2.34/build/config.json b/php7/7.2.34/build/config.json deleted file mode 100644 index 28ee3c56b..000000000 --- a/php7/7.2.34/build/config.json +++ /dev/null @@ -1,134 +0,0 @@ -{ - "formFields": [ - { - "type": "select", - "multiple": true, - "labelZh": "扩展", - "labelEn": "Extensions", - "default": ["mysqli","pdo_mysql"], - "values": [ - { - "label": "opcache", - "value": "opcache" - }, - { - "label": "memcached", - "value": "memcached" - }, - { - "label": "memcache", - "value": "memcache" - }, - { - "label": "redis", - "value": "redis" - }, - { - "label": "mcrypt", - "value": "mcrypt" - }, - { - "label": "xdebug", - "value": "xdebug" - }, - { - "label": "imap", - "value": "imap" - }, - { - "label": "exif", - "value": "exif" - }, - { - "label": "intl", - "value": "intl" - }, - { - "label": "swoole", - "value": "swoole" - }, - { - "label": "yaf", - "value": "yaf" - }, - { - "label": "pgsql", - "value": "pgsql" - }, - { - "label": "pdo_pgsql", - "value": "pdo_pgsql" - }, - { - "label": "snmp", - "value": "snmp" - }, { - "label": "ldap", - "value": "ldap" - }, - { - "label": "pspell", - "value": "pspell" - }, - { - "label": "bz2", - "value": "bz2" - }, - { - "label": "sysvshm", - "value": "sysvshm" - }, - { - "label": "calendar", - "value": "calendar" - }, - { - "label": "gmp", - "value": "gmp" - }, - { - "label": "sysvmsg", - "value": "sysvmsg" - }, - { - "label": "igbinary", - "value": "igbinary" - }, - { - "label": "mysqli", - "value": "mysqli" - }, - { - "label": "pdo_mysql", - "value": "pdo_mysql" - }, - { - "label": "mbstring", - "value": "mbstring" - }, - { - "label": "gd", - "value": "gd" - }, - { - "label": "ioncube_loader", - "value": "ioncube_loader" - }, - { - "label": "curl", - "value": "curl" - }, - { - "label": "sg15", - "value": "sourceguardian" - }, - { - "label": "imagick", - "value": "imagick" - } - ], - "envKey": "PHP_EXTENSIONS", - "edit": true - } - ] -} \ No newline at end of file diff --git a/php7/7.2.34/build/docker-compose.yml b/php7/7.2.34/build/docker-compose.yml deleted file mode 100644 index 21e9fa737..000000000 --- a/php7/7.2.34/build/docker-compose.yml +++ /dev/null @@ -1,19 +0,0 @@ -services: - 1panel-php: - build: - context: ./php - args: - PHP_IMAGE: php:${PHP_VERSION}-fpm-alpine - CONTAINER_PACKAGE_URL: ${CONTAINER_PACKAGE_URL} - PHP_EXTENSIONS: ${PHP_EXTENSIONS} - TZ: ${TZ} - image: ${IMAGE_NAME} - volumes: - - ${SOURCE_DIR}:/www/ - - ${PHP_PHP_CONF_FILE}:/usr/local/etc/php/php.ini - - ${PHP_FPM_CONF_FILE}:/usr/local/etc/php-fpm.d/www.conf - - ${PHP_LOG_DIR}:/var/log/php - - ${DATA_DIR}/composer:/tmp/composer - restart: always - cap_add: - - SYS_PTRACE diff --git a/php7/7.2.34/build/php/Dockerfile b/php7/7.2.34/build/php/Dockerfile deleted file mode 100644 index 622c0b79e..000000000 --- a/php7/7.2.34/build/php/Dockerfile +++ /dev/null @@ -1,36 +0,0 @@ -ARG PHP_IMAGE -FROM ${PHP_IMAGE} - -ARG TZ -ARG PHP_EXTENSIONS -ARG CONTAINER_PACKAGE_URL -ARG INSTALL_SUPERVISOR - -RUN if [ $CONTAINER_PACKAGE_URL ] ; then sed -i "s/dl-cdn.alpinelinux.org/${CONTAINER_PACKAGE_URL}/g" /etc/apk/repositories ; fi - -ADD ./extensions/install-php-extensions /usr/local/bin/ -RUN chmod uga+x /usr/local/bin/install-php-extensions - -COPY ./extensions /tmp/extensions -WORKDIR /tmp/extensions -RUN chmod +x install.sh \ - && sh install.sh - -RUN apk --no-cache add tzdata \ - && cp "/usr/share/zoneinfo/$TZ" /etc/localtime \ - && echo "$TZ" > /etc/timezone - -# Fix: https://github.com/docker-library/php/issues/1121 -RUN apk add --no-cache --repository http://${CONTAINER_PACKAGE_URL}/alpine/v3.13/community/ gnu-libiconv=1.15-r3 -ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so php - -# Install composer and change it's cache home -RUN chmod +x install-composer.sh \ - && sh install-composer.sh \ - && rm -rf /tmp/extensions -ENV COMPOSER_HOME=/tmp/composer - -# php image's www-data user uid & gid are 82, change them to 1000 (primary user) -RUN apk --no-cache add shadow && usermod -u 1000 www-data && groupmod -g 1000 www-data - -WORKDIR /www diff --git a/php7/7.2.34/build/php/extensions/amqp-1.10.2.tgz b/php7/7.2.34/build/php/extensions/amqp-1.10.2.tgz deleted file mode 100644 index 7bcd30d03..000000000 Binary files a/php7/7.2.34/build/php/extensions/amqp-1.10.2.tgz and /dev/null differ diff --git a/php7/7.2.34/build/php/extensions/apcu-5.1.17.tgz b/php7/7.2.34/build/php/extensions/apcu-5.1.17.tgz deleted file mode 100644 index c15ca116a..000000000 Binary files a/php7/7.2.34/build/php/extensions/apcu-5.1.17.tgz and /dev/null differ diff --git a/php7/7.2.34/build/php/extensions/event-3.0.8.tgz b/php7/7.2.34/build/php/extensions/event-3.0.8.tgz deleted file mode 100644 index e7a471bbe..000000000 Binary files a/php7/7.2.34/build/php/extensions/event-3.0.8.tgz and /dev/null differ diff --git a/php7/7.2.34/build/php/extensions/install-composer.sh b/php7/7.2.34/build/php/extensions/install-composer.sh deleted file mode 100644 index 34074732d..000000000 --- a/php7/7.2.34/build/php/extensions/install-composer.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/sh - -# The latest mirror's composer version only support for PHP 7.2.5 -# And if your PHP version is lesser than that, will be download supported version. -supportLatest=$(php -r "echo version_compare(PHP_VERSION, '7.2.5', '>');") - -if [ "$supportLatest" -eq "1" ]; then - curl -o /usr/bin/composer https://mirrors.aliyun.com/composer/composer.phar \ - && chmod +x /usr/bin/composer -else - curl -o /tmp/composer-setup.php https://getcomposer.org/installer \ - && php /tmp/composer-setup.php --install-dir=/tmp \ - && mv /tmp/composer.phar /usr/bin/composer \ - && chmod +x /usr/bin/composer \ - && rm -rf /tmp/composer-setup.php -fi \ No newline at end of file diff --git a/php7/7.2.34/build/php/extensions/install-php-extensions b/php7/7.2.34/build/php/extensions/install-php-extensions deleted file mode 100644 index 2ef98bb85..000000000 --- a/php7/7.2.34/build/php/extensions/install-php-extensions +++ /dev/null @@ -1,5154 +0,0 @@ -#!/bin/sh - -# This script wraps docker-php-ext-install, properly configuring the system. -# -# Copyright (c) Michele Locati, 2018-2023 -# -# Source: https://github.com/mlocati/docker-php-extension-installer -# -# License: MIT - see https://github.com/mlocati/docker-php-extension-installer/blob/master/LICENSE - -# Let's set a sane environment -set -o errexit -set -o nounset - -if test "${IPE_DEBUG:-}" = "1"; then - set -x -fi - -if ! which docker-php-ext-configure >/dev/null || ! which docker-php-ext-enable >/dev/null || ! which docker-php-ext-install >/dev/null || ! which docker-php-source >/dev/null; then - printf 'The script %s is meant to be used with official Docker PHP Images - https://hub.docker.com/_/php\n' "$0" >&2 - exit 1 -fi - -IPE_VERSION=2.7.27 - -StandWithUkraine() { - if test -t 1 && ! grep -Eq '^VERSION=.*jessie' /etc/os-release; then - printf '\e[37;44m#StandWith\e[30;43mUkraine\e[0m\n' - else - printf '#StandWithUkraine\n' - fi -} - -if test "$IPE_VERSION" = master && test "${CI:-}" != true; then - cat <&2 - exit 1 - fi - DISTRO="$(cat /etc/os-release | grep -E ^ID= | cut -d = -f 2)" - DISTRO_VERSION_NUMBER="$(cat /etc/os-release | grep -E ^VERSION_ID= | cut -d = -f 2 | cut -d '"' -f 2 | cut -d . -f 1,2)" - DISTRO_VERSION="$(printf '%s@%s' $DISTRO $DISTRO_VERSION_NUMBER)" - DISTRO_MAJMIN_VERSION="$(echo "$DISTRO_VERSION_NUMBER" | awk -F. '{print $1*100+$2}')" -} - -# Set: -# - PHP_MAJMIN_VERSION: Major-Minor version, format MMmm (example 800 for PHP 8.0.1) -# - PHP_MAJDOTMIN_VERSION: Major-Minor version, format M.m (example 8.0 for PHP 8.0.1) -# - PHP_MAJMINPAT_VERSION: Major-Minor-Patch version, format MMmmpp (example 80001 for PHP 8.0.1) variables containing integers value -# - PHP_MAJDOTMINDOTPAT_VERSION: Major-Minor-Patch version, format M.m.p (example 8.0.1 for PHP 8.0.1) -# - PHP_THREADSAFE: 1 if PHP is thread-safe (TS), 0 if not thread-safe (NTS) -# - PHP_DEBUGBUILD: 1 if PHP is debug build (configured with "--enable-debug"), 0 otherwise -# - PHP_BITS: 32 if PHP is compiled for 32-bit, 64 if 64-bit -# - PHP_EXTDIR: the absolute path where the PHP extensions reside -setPHPVersionVariables() { - PHP_MAJDOTMINDOTPAT_VERSION="$(php-config --version)" - PHP_MAJMIN_VERSION=$(printf '%s' "$PHP_MAJDOTMINDOTPAT_VERSION" | awk -F. '{print $1*100+$2}') - PHP_MAJDOTMIN_VERSION=$(printf '%s' "$PHP_MAJDOTMINDOTPAT_VERSION" | cut -d. -f1-2) - PHP_MAJMINPAT_VERSION=$(printf '%s' "$PHP_MAJDOTMINDOTPAT_VERSION" | awk -F. '{print $1*10000+$2*100+$3}') - PHP_THREADSAFE=$(php -n -r 'echo ZEND_THREAD_SAFE ? 1 : 0;') - PHP_DEBUGBUILD=$(php -n -r 'echo ZEND_DEBUG_BUILD ? 1 : 0;') - PHP_BITS=$(php -n -r 'echo PHP_INT_SIZE * 8;') - PHP_EXTDIR="$(php -d display_errors=stderr -r 'echo realpath(ini_get("extension_dir"));')" -} - -# Fix apt-get being very slow on Debian Jessie -# See https://bugs.launchpad.net/ubuntu/+source/apt/+bug/1332440 -fixMaxOpenFiles() { - fixMaxOpenFiles_cur=$(ulimit -n 2>/dev/null || echo 0) - if test "$fixMaxOpenFiles_cur" -gt 10000; then - ulimit -n 10000 - fi -} - -# Get the directory containing the compiled PHP extensions -# -# Output: -# The absolute path of the extensions dir -getPHPExtensionsDir() { - php -i | grep -E '^extension_dir' | head -n1 | tr -s '[:space:]*=>[:space:]*' '|' | cut -d'|' -f2 -} - -# Normalize the name of a PHP extension -# -# Arguments: -# $1: the name of the module to be normalized -# -# Output: -# The normalized module name -normalizePHPModuleName() { - normalizePHPModuleName_name="$1" - case "$normalizePHPModuleName_name" in - *A* | *B* | *C* | *D* | *E* | *F* | *G* | *H* | *I* | *J* | *K* | *L* | *M* | *N* | *O* | *P* | *Q* | *R* | *S* | *T* | *U* | *V* | *W* | *X* | *Y* | *Z*) - normalizePHPModuleName_name="$(LC_CTYPE=C printf '%s' "$normalizePHPModuleName_name" | tr '[:upper:]' '[:lower:]')" - ;; - esac - case "$normalizePHPModuleName_name" in - datadog_trace) - normalizePHPModuleName_name=ddtrace - ;; - ioncube | ioncube\ loader) - normalizePHPModuleName_name='ioncube_loader' - ;; - pecl_http) - normalizePHPModuleName_name='http' - ;; - zend\ opcache) - normalizePHPModuleName_name='opcache' - ;; - libsodium) - if test $PHP_MAJMIN_VERSION -ge 700; then - normalizePHPModuleName_name='sodium' - fi - ;; - sodium) - if test $PHP_MAJMIN_VERSION -lt 700; then - normalizePHPModuleName_name='libsodium' - fi - ;; - *\ *) - printf '### WARNING Unrecognized module name: %s ###\n' "$1" >&2 - ;; - esac - printf '%s' "$normalizePHPModuleName_name" -} - -# Get the PECL name of PHP extension -# -# Arguments: -# $1: the name of the extension -# -# Output: -# The PECL name of the extension -getPeclModuleName() { - normalizePHPModuleName_name="$1" - case "$normalizePHPModuleName_name" in - ddtrace) - normalizePHPModuleName_name=datadog_trace - ;; - http) - normalizePHPModuleName_name=pecl_http - ;; - sodium) - normalizePHPModuleName_name=libsodium - ;; - esac - printf '%s' "$normalizePHPModuleName_name" -} - -# Parse a package.xml (or package2.xml) file and extract the module name and version -# -# Arguments: -# $1: the patho to the XML file -# -# Set these variables: -# - EXTRACTPACKAGEVERSIONFROMXML_NAME -# - EXTRACTPACKAGEVERSIONFROMXML_VERSION -# -# Output: -# Nothing -# -# Return: -# 0 (true): if the string is in the list -# 1 (false): if the string is not in the list -extractPackageVersionFromXML() { - if ! test -f "$1"; then - printf 'Unable to find the file\n%s\n' >&2 - return 1 - fi - extractPackageVersionFromXML_code="$( - cat <<'EOT' -$doc = new DOMDocument(); -if (!$doc->load($argv[1])) { - fwrite(STDERR, "Failed to load XML file\n"); - exit(1); -} -set_error_handler( - static function($errno, $errstr) { - fwrite(STDERR, trim((string) $errstr) . "\n"); - exit(1); - }, - -1 -); -$xpath = new DOMXpath($doc); -$xpath->registerNamespace('v20', 'http://pear.php.net/dtd/package-2.0'); -$xpath->registerNamespace('v21', 'http://pear.php.net/dtd/package-2.1'); -if ($xpath->query('/v20:package/v20:dependencies')->length === 1) { - $ns = 'v20:'; -} elseif ($xpath->query('/v21:package/v21:dependencies')->length === 1) { - $ns = 'v21:'; -} elseif ($xpath->query('/package')->length === 1) { - $ns = ''; -} else { - fwrite(STDERR, "Unsupported namespace of the XML of package version details\n"); -} -$nodes = $xpath->query("/{$ns}package/{$ns}name"); -$name = trim((string) $nodes[0]->nodeValue); -if ($ns === '') { - $nodes = $xpath->query("/{$ns}package/{$ns}version"); -} else { - $nodes = $xpath->query("/{$ns}package/{$ns}version/{$ns}release"); -} -$version = trim((string) $nodes[0]->nodeValue); -echo "EXTRACTPACKAGEVERSIONFROMXML_NAME='{$name}'\n"; -echo "EXTRACTPACKAGEVERSIONFROMXML_VERSION='{$version}'\n"; -exit(0); -EOT - )" - extractPackageVersionFromXML_vars="$(php -n -d display_errors=stderr -r "$extractPackageVersionFromXML_code" "$1")" - if test -z "$extractPackageVersionFromXML_vars"; then - return 1 - fi - eval "$extractPackageVersionFromXML_vars" - return 0 -} - -# Parse a module name (and optionally version) as received via command arguments, extracting the version and normalizing it -# Examples: -# xdebug-2.9.8 -# xdebug-^2 -# xdebug-^2.9 -# -# Arguments: -# $1: the name of the module to be normalized -# -# Set these variables: -# - PROCESSED_PHP_MODULE_ARGUMENT -# -# Optionally set these variables: -# - PHP_WANTEDMODULEVERSION_<...> (where <...> is the normalized module name) -# - PHP_MODULESOURCECODEPATH_<...> (where <...> is the normalized module name) -# -# Output: -# Nothing -processPHPModuleArgument() { - processPHPModuleArgument_arg="$1" - case "$processPHPModuleArgument_arg" in - imagick) - if test $PHP_MAJMIN_VERSION -ge 804; then - processPHPModuleArgument_arg=imagick/imagick@65e27f2bc02e7e8f1bf64e26e359e42a1331fca1 - elif test $PHP_MAJMIN_VERSION -ge 803; then - processPHPModuleArgument_arg=imagick/imagick@28f27044e435a2b203e32675e942eb8de620ee58 - fi - ;; - esac - # Convert GitHub short form to long url, - # for example: from - # php-memcached-dev/php-memcached@8f106564e6bb005ca6100b12ccc89000daafa9d8 - # to - # https://codeload.github.com/php-memcached-dev/php-memcached/tar.gz/8f106564e6bb005ca6100b12ccc89000daafa9d8 - processPHPModuleArgument_arg="$(printf '%s' "$processPHPModuleArgument_arg" | sed -E 's/^([a-zA-Z0-9_.\-]+\/[a-zA-Z0-9_.\-]+)@(.+$)/https:\/\/codeload.github.com\/\1\/tar.gz\/\2/')" - # Let's check if $processPHPModuleArgument_arg is an URL - if printf '%s' "$processPHPModuleArgument_arg" | grep -Eq '^https?://[^ ]+/[^ ]+$'; then - printf 'Downloading source from %s\n' "$processPHPModuleArgument_arg" - processPHPModuleArgument_arg="$(getPackageSource "$processPHPModuleArgument_arg")" - fi - # Let's check if $processPHPModuleArgument_arg the absolute path of an existing directory - if test "$processPHPModuleArgument_arg" != "${processPHPModuleArgument_arg#/}" && test -d "$processPHPModuleArgument_arg"; then - if test -f "$processPHPModuleArgument_arg/package2.xml"; then - printf 'Checking package2.xml of directory %s... ' "$processPHPModuleArgument_arg" - if ! extractPackageVersionFromXML "$processPHPModuleArgument_arg/package2.xml"; then - return 1 - fi - elif test -f "$processPHPModuleArgument_arg/package.xml"; then - printf 'Checking package.xml of directory %s... ' "$processPHPModuleArgument_arg" - if ! extractPackageVersionFromXML "$processPHPModuleArgument_arg/package.xml"; then - return 1 - fi - else - printf 'Unable to find the package.xml file in the directory\n%s\n' "$processPHPModuleArgument_arg" - return 1 - fi - printf 'good (name: %s, version: %s)\n' "$EXTRACTPACKAGEVERSIONFROMXML_NAME" "$EXTRACTPACKAGEVERSIONFROMXML_VERSION" - PROCESSED_PHP_MODULE_ARGUMENT="$(normalizePHPModuleName "$EXTRACTPACKAGEVERSIONFROMXML_NAME")" - processPHPModuleArgument_version="$EXTRACTPACKAGEVERSIONFROMXML_VERSION" - if printf '%s' "$PROCESSED_PHP_MODULE_ARGUMENT" | grep -Eq '^[a-zA-Z0-9_]+$'; then - eval PHP_MODULESOURCECODEPATH_$PROCESSED_PHP_MODULE_ARGUMENT="$processPHPModuleArgument_arg" - else - printf 'Unable to parse the following module name:\n%s\n' "$PROCESSED_PHP_MODULE_ARGUMENT" >&2 - exit 1 - fi - else - PROCESSED_PHP_MODULE_ARGUMENT="${processPHPModuleArgument_arg%%-*}" - if test -n "$PROCESSED_PHP_MODULE_ARGUMENT" && test "$PROCESSED_PHP_MODULE_ARGUMENT" != "$processPHPModuleArgument_arg"; then - processPHPModuleArgument_version="${processPHPModuleArgument_arg#*-}" - else - processPHPModuleArgument_version='' - fi - PROCESSED_PHP_MODULE_ARGUMENT="$(normalizePHPModuleName "$PROCESSED_PHP_MODULE_ARGUMENT")" - fi - if test -n "$processPHPModuleArgument_version"; then - if printf '%s' "$PROCESSED_PHP_MODULE_ARGUMENT" | grep -Eq '^[a-zA-Z0-9_]+$'; then - eval PHP_WANTEDMODULEVERSION_$PROCESSED_PHP_MODULE_ARGUMENT="$processPHPModuleArgument_version" - elif printf '%s' "$PROCESSED_PHP_MODULE_ARGUMENT" | grep -Eq '^@[a-zA-Z0-9_]+$'; then - eval PHP_WANTEDMODULEVERSION__${PROCESSED_PHP_MODULE_ARGUMENT#@}="$processPHPModuleArgument_version" - else - printf 'Unable to parse the following module name:\n%s\n' "$PROCESSED_PHP_MODULE_ARGUMENT" >&2 - fi - fi -} - -# Get the wanted PHP module version, as specified in the command line arguments. -# -# Arguments: -# $1: the name of the module to be normalized -# -# Output: -# The wanted version (if any) -getWantedPHPModuleVersion() { - if printf '%s' "$1" | grep -Eq '^[a-zA-Z0-9_]+$'; then - eval printf '%s' "\${PHP_WANTEDMODULEVERSION_$1:-}" - elif printf '%s' "$1" | grep -Eq '^@[a-zA-Z0-9_]+$'; then - eval printf '%s' "\${PHP_WANTEDMODULEVERSION__${1#@}:-}" - fi -} - -# Get source code path of a PHP module version, as specified in the command line arguments. -# -# Arguments: -# $1: the name of the module to be normalized -# -# Output: -# The wanted version (if any) -getModuleSourceCodePath() { - if printf '%s' "$1" | grep -Eq '^[a-zA-Z0-9_]+$'; then - eval printf '%s' "\${PHP_MODULESOURCECODEPATH_$1:-}" - fi -} - -# Get the actual PHP module version, resolving it if it starts with '^' -# -# Arguments: -# $1: the name of the module -# $2: the wanted version (optional, if omitted we'll use getWantedPHPModuleVersion) -# -# Output: -# The version to be used -resolvePHPModuleVersion() { - resolvePHPModuleVersion_module="$1" - if test $# -lt 2; then - resolvePHPModuleVersion_raw="$(getWantedPHPModuleVersion "$installRemoteModule_module")" - else - resolvePHPModuleVersion_raw="$2" - fi - resolvePHPModuleVersion_afterCaret="${resolvePHPModuleVersion_raw#^}" - if test "$resolvePHPModuleVersion_raw" = "$resolvePHPModuleVersion_afterCaret"; then - printf '%s' "$resolvePHPModuleVersion_raw" - return - fi - case "$resolvePHPModuleVersion_afterCaret" in - ?*@snapshot | ?*@devel | ?*@alpha | ?*@beta | ?*@stable) - resolvePHPModuleVersion_wantedStability="${resolvePHPModuleVersion_afterCaret##*@}" - resolvePHPModuleVersion_wantedVersion="${resolvePHPModuleVersion_afterCaret%@*}" - ;; - *) - resolvePHPModuleVersion_wantedStability='' - resolvePHPModuleVersion_wantedVersion="$resolvePHPModuleVersion_afterCaret" - ;; - esac - resolvePHPModuleVersion_peclModule="$(getPeclModuleName "$resolvePHPModuleVersion_module")" - resolvePHPModuleVersion_xml="$(curl -sSLf "http://pecl.php.net/rest/r/$resolvePHPModuleVersion_peclModule/allreleases.xml")" - # remove line endings, collapse spaces - resolvePHPModuleVersion_versions="$(printf '%s' "$resolvePHPModuleVersion_xml" | tr -s ' \t\r\n' ' ')" - # one line per release (eg 1.2.3stable) - resolvePHPModuleVersion_versions="$(printf '%s' "$resolvePHPModuleVersion_versions" | sed -r 's#$resolvePHPModuleVersion_wantedStability")" - fi - # remove everything's up to '' (included) - resolvePHPModuleVersion_versions="$(printf '%s' "$resolvePHPModuleVersion_versions" | sed 's#^.*##')" - # keep just the versions - resolvePHPModuleVersion_versions="$(printf '%s' "$resolvePHPModuleVersion_versions" | cut -d'<' -f1)" - resetIFS - for resolvePHPModuleVersion_version in $resolvePHPModuleVersion_versions; do - resolvePHPModuleVersion_suffix="${resolvePHPModuleVersion_version#$resolvePHPModuleVersion_wantedVersion}" - if test "$resolvePHPModuleVersion_version" != "${resolvePHPModuleVersion_version#$resolvePHPModuleVersion_wantedVersion.}"; then - # Example: looking for 1.0, found 1.0.1 - printf '%s' "$resolvePHPModuleVersion_version" - return - fi - done - for resolvePHPModuleVersion_version in $resolvePHPModuleVersion_versions; do - resolvePHPModuleVersion_suffix="${resolvePHPModuleVersion_version#$resolvePHPModuleVersion_wantedVersion}" - if test "$resolvePHPModuleVersion_version" = "$resolvePHPModuleVersion_suffix"; then - continue - fi - if test -z "$resolvePHPModuleVersion_suffix"; then - # Example: looking for 1.0, found exactly it - printf '%s' "$resolvePHPModuleVersion_version" - return - fi - case "$resolvePHPModuleVersion_suffix" in - [0-9]) - # Example: looking for 1.1, but this is 1.10 - ;; - *) - # Example: looking for 1.1, this is 1.1rc1 - printf '%s' "$resolvePHPModuleVersion_version" - return - ;; - esac - done - printf 'Unable to find a version of "%s" compatible with "%s"\nAvailable versions are:\n%s\n' "$resolvePHPModuleVersion_module" "$resolvePHPModuleVersion_raw" "$resolvePHPModuleVersion_versions" >&2 - exit 1 -} - -# Get the actual version of a PECL pmodule, resolving 'latest', 'stable', 'beta', 'alpha', 'devel'. -# -# Arguments: -# $1: the module name as known on the PECL archive -# $2: the version to be resolved -# Output: -# $2 itself if $1 is not 'latest', 'stable', 'beta', 'alpha', or 'devel', the actual version otherwise -resolvePeclStabilityVersion() { - case "$2" in - latest | stable | beta | alpha | devel) ;; - *) - printf '%s' "$2" - return - ;; - esac - resolvePeclStabilityVersion_peclModule="$(getPeclModuleName "$1")" - peclStabilityFlagToVersion_url="http://pecl.php.net/rest/r/$resolvePeclStabilityVersion_peclModule/$2.txt" - if ! peclStabilityFlagToVersion_result="$(curl -sSLf "$peclStabilityFlagToVersion_url")"; then - peclStabilityFlagToVersion_result='' - fi - if test -z "$peclStabilityFlagToVersion_result"; then - printf 'Failed to resolve the PECL package version "%s" of %s from %s\n' "$2" "$1" "$peclStabilityFlagToVersion_url" >&2 - exit 1 - fi - printf '%s' "$peclStabilityFlagToVersion_result" -} - -# Set these variables: -# - PHP_PREINSTALLED_MODULES the normalized list of PHP modules installed before running this script -setPHPPreinstalledModules() { - PHP_PREINSTALLED_MODULES='' - IFS=' -' - for getPHPInstalledModules_module in $(php -m); do - getPHPInstalledModules_moduleNormalized='' - case "$getPHPInstalledModules_module" in - \[PHP\ Modules\]) ;; - \[Zend\ Modules\]) - break - ;; - *) - getPHPInstalledModules_moduleNormalized="$(normalizePHPModuleName "$getPHPInstalledModules_module")" - if ! stringInList "$getPHPInstalledModules_moduleNormalized" "$PHP_PREINSTALLED_MODULES"; then - PHP_PREINSTALLED_MODULES="$PHP_PREINSTALLED_MODULES $getPHPInstalledModules_moduleNormalized" - fi - ;; - esac - done - if command -v composer >/dev/null; then - PHP_PREINSTALLED_MODULES="$PHP_PREINSTALLED_MODULES @composer" - fi - resetIFS - PHP_PREINSTALLED_MODULES="${PHP_PREINSTALLED_MODULES# }" -} - -# Get the handles of the modules to be installed -# -# Arguments: -# $@: all module handles -# -# Set: -# PHP_MODULES_TO_INSTALL -# -# Output: -# Nothing -processCommandArguments() { - processCommandArguments_endArgs=0 - PHP_MODULES_TO_INSTALL='' - # Support deprecated flag IPE_FIX_CACERTS - case "${IPE_FIX_CACERTS:-}" in - 1 | y* | Y*) - PHP_MODULES_TO_INSTALL="$PHP_MODULES_TO_INSTALL @fix_letsencrypt" - ;; - esac - while :; do - if test $# -lt 1; then - break - fi - processCommandArguments_skip=0 - if test $processCommandArguments_endArgs -eq 0; then - case "$1" in - --cleanup) - printf '### WARNING the %s option is deprecated (we always cleanup everything) ###\n' "$1" >&2 - processCommandArguments_skip=1 - ;; - --) - processCommandArguments_skip=1 - processCommandArguments_endArgs=1 - ;; - -*) - printf 'Unrecognized option: %s\n' "$1" >&2 - exit 1 - ;; - esac - fi - if test $processCommandArguments_skip -eq 0; then - processPHPModuleArgument "$1" - processCommandArguments_name="$PROCESSED_PHP_MODULE_ARGUMENT" - if stringInList "$processCommandArguments_name" "$PHP_MODULES_TO_INSTALL"; then - printf '### WARNING Duplicated module name specified: %s ###\n' "$processCommandArguments_name" >&2 - elif stringInList "$processCommandArguments_name" "$PHP_PREINSTALLED_MODULES"; then - printf '### WARNING Module already installed: %s ###\n' "$processCommandArguments_name" >&2 - else - PHP_MODULES_TO_INSTALL="$PHP_MODULES_TO_INSTALL $processCommandArguments_name" - fi - fi - shift - done - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL# }" -} - -# Add a module that's required by another module -# -# Arguments: -# $1: module that requires another module -# $2: the required module -# -# Update: -# PHP_MODULES_TO_INSTALL -# -# Output: -# Nothing -checkRequiredModule() { - if ! stringInList "$1" "$PHP_MODULES_TO_INSTALL"; then - return - fi - if stringInList "$2" "$PHP_PREINSTALLED_MODULES"; then - return - fi - PHP_MODULES_TO_INSTALL="$(removeStringFromList "$1" "$PHP_MODULES_TO_INSTALL")" - if ! stringInList "$2" "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$PHP_MODULES_TO_INSTALL $2" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL# }" - fi - PHP_MODULES_TO_INSTALL="$PHP_MODULES_TO_INSTALL $1" -} - -# Sort the modules to be installed, in order to fix dependencies -# -# Update: -# PHP_MODULES_TO_INSTALL -# -# Output: -# Nothing -sortModulesToInstall() { - # apcu_bc requires apcu - checkRequiredModule 'apcu_bc' 'apcu' - # http requires propro (for PHP < 8) and raphf - if test $PHP_MAJMIN_VERSION -le 704; then - checkRequiredModule 'http' 'propro' - fi - checkRequiredModule 'http' 'raphf' - # event requires sockets (for PHP <= 5.6) - if test $PHP_MAJMIN_VERSION -le 506; then - checkRequiredModule event sockets - fi - # relay requires msgpack - checkRequiredModule relay msgpack - # relay requires igbinary - checkRequiredModule relay igbinary - # pq requires raphf - checkRequiredModule pq raphf - # phalcon up to v5.0.0beta3 requires psr - if test $PHP_MAJMINPAT_VERSION -lt 70401; then - checkRequiredModule phalcon psr - fi - # Some module installation may use sockets if available: move it before other modules - if stringInList 'sockets' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'sockets' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="sockets $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # Some module installation may use igbinary if available: move it before other modules - if stringInList 'igbinary' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'igbinary' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="igbinary $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # Some module installation may use msgpack if available: move it before other modules - if stringInList 'msgpack' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'msgpack' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="msgpack $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # Some module installation may use socket if available: move it before other modules - if stringInList 'socket' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'socket' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="socket $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # Some module installation may use apcu if available: move it before other modules - if stringInList 'apcu' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'apcu' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="apcu $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # Some module installation may use raphf if available: move it before other modules - if stringInList 'raphf' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'raphf' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="raphf $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # In any case, first of all, we need to install composer - if stringInList '@composer' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList '@composer' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="@composer $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi -} - -# Expand the IPE_ASPELL_LANGUAGES environment variable into apk/apt package names -expandASpellDictionaries() { - expandASpellDictionaries_languages="${IPE_ASPELL_LANGUAGES:-en}" - expandASpellDictionaries_result='' - resetIFS - for expandASpellDictionaries_language in $expandASpellDictionaries_languages; do - expandASpellDictionaries_result="$expandASpellDictionaries_result aspell-$expandASpellDictionaries_language" - done - printf '%s' "${expandASpellDictionaries_result# }" -} - -# Get the required APT/APK packages for a specific PHP version and for the list of module handles -# -# Arguments: -# $@: the PHP module handles -# -# Set: -# PACKAGES_PERSISTENT_NEW the list of packages required at runtume that must be installed -# PACKAGES_PERSISTENT_PRE the list of packages required at runtume that are already installed -# PACKAGES_VOLATILE the list of packages required at compile time that must be installed -# PACKAGES_PREVIOUS the list of packages (with their version) that are installed right now (calculated only on Debian and only if PACKAGES_PERSISTENT_NEW or PACKAGES_VOLATILE are not empty) -# COMPILE_LIBS -buildRequiredPackageLists() { - buildRequiredPackageLists_persistent='' - buildRequiredPackageLists_volatile='' - COMPILE_LIBS='' - case "$DISTRO" in - alpine) - apk update - ;; - debian) - invokeAptGetUpdate - ;; - esac - case "$DISTRO_VERSION" in - alpine@*) - if test $# -gt 1 || test "${1:-}" != '@composer'; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $PHPIZE_DEPS" - fi - if test -z "$(apk info 2>/dev/null | grep -E ^libssl)"; then - buildRequiredPackageLists_libssl="$(apk search | grep -E '^libssl[0-9]' | head -1 | cut -d- -f1)" - elif test -z "$(apk info 2>/dev/null | grep -E '^libressl.*-libtls')" && test -z "$(apk info 2>/dev/null | grep -E '^libressl.*-libssl')" && test -z "$(apk info 2>/dev/null | grep -E '^libretls-')"; then - buildRequiredPackageLists_libssl=$(apk search -q libressl*-libtls) - else - buildRequiredPackageLists_libssl='' - fi - if test $DISTRO_MAJMIN_VERSION -le 313; then - buildRequiredPackageLists_libssldev='libressl-dev' - else - buildRequiredPackageLists_libssldev='libretls-dev' - fi - buildRequiredPackageLists_icuPersistent='' - if test $DISTRO_MAJMIN_VERSION -ge 316; then - case "${IPE_ICU_EN_ONLY:-}" in - 1 | y* | Y*) ;; - *) - buildRequiredPackageLists_icuPersistent='icu-data-full' - ;; - esac - fi - ;; - debian@9) - buildRequiredPackageLists_libssldev='libssl1.0-dev' - ;; - debian@*) - buildRequiredPackageLists_libssldev='^libssl([0-9]+(\.[0-9]+)*)?-dev$' - ;; - esac - if test $USE_PICKLE -gt 1; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile git" - fi - while :; do - if test $# -lt 1; then - break - fi - case "$1@$DISTRO" in - @composer@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent unzip" - ;; - amqp@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent rabbitmq-c" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile rabbitmq-c-dev" - ;; - amqp@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^librabbitmq[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile librabbitmq-dev libssh-dev" - ;; - bz2@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libbz2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile bzip2-dev" - ;; - bz2@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libbz2-dev" - ;; - cassandra@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent cassandra-cpp-driver gmp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cassandra-cpp-driver-dev gmp-dev" - ;; - cmark@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake" - ;; - cmark@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake" - ;; - ddtrace@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libgcc" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile curl-dev" - ;; - ddtrace@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libcurl4-openssl-dev" - ;; - dba@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent db" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile db-dev" - ;; - dba@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile ^libdb5\.3-dev$" - if test $PHP_MAJMIN_VERSION -le 505; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile patch" - fi - ;; - decimal@debian) - if test $DISTRO_MAJMIN_VERSION -lt 1200; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libmpdec[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmpdec-dev" - fi - ;; - ecma_intl@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent icu-libs $buildRequiredPackageLists_icuPersistent" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev libidn-dev" - ;; - ecma_intl@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libicu[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libicu-dev" - ;; - enchant@alpine) - if test $DISTRO_MAJMIN_VERSION -ge 312; then - if test $PHP_MAJMIN_VERSION -ge 800; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent enchant2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile enchant2-dev" - else - # The system provides libenchant2, supported since PHP 8.0: we need to build libenchant1 on our own - if ! isLibenchant1Installed; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent glib aspell-libs libhunspell" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile glib-dev aspell-dev hunspell-dev" - COMPILE_LIBS="$COMPILE_LIBS libenchant1" - fi - fi - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent enchant" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile enchant-dev" - fi - ;; - enchant@debian) - if test $DISTRO_VERSION_NUMBER -ge 11; then - if test $PHP_MAJMIN_VERSION -ge 800; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libenchant-2-2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libenchant-2-dev" - else - if ! isLibenchant1Installed; then - # The system provides libenchant2, supported since PHP 8.0: we need to build libenchant1 on our own - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent aspell-en libhunspell-1.7-0" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libglib2.0-dev libaspell-dev libhunspell-dev" - COMPILE_LIBS="$COMPILE_LIBS libenchant1" - fi - fi - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libenchant1c2a" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libenchant-dev" - fi - ;; - event@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libevent $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libevent-dev $buildRequiredPackageLists_libssldev" - ;; - event@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libevent[0-9\.\-]*$ ^libevent-openssl[0-9\.\-]*$ ^libevent-extra[0-9\.\-]*$ ^libevent-pthreads[0-9\.\-]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libevent-dev $buildRequiredPackageLists_libssldev" - ;; - ffi@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libffi" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libffi-dev" - ;; - ffi@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libffi-dev" - ;; - ftp@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev" - ;; - ftp@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev" - ;; - gd@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent freetype libjpeg-turbo libpng libxpm" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetype-dev libjpeg-turbo-dev libpng-dev libxpm-dev" - if test $PHP_MAJMIN_VERSION -le 506; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libvpx" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libvpx-dev" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libwebp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libwebp-dev" - if test $PHP_MAJMIN_VERSION -ge 801; then - if test $DISTRO_MAJMIN_VERSION -ge 315; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libavif aom-libs libdav1d" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libavif-dev aom-dev dav1d-dev" - elif isLibaomInstalled && isLibdav1dInstalled && isLibyuvInstalled && isLibavifInstalled; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - else - case "${IPE_GD_WITHOUTAVIF:-}" in - 1 | y* | Y*) ;; - *) - if ! isLibaomInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libaom" - fi - if ! isLibdav1dInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libdav1d" - fi - if ! isLibyuvInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libyuv" - fi - if ! isLibavifInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libavif" - fi - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake nasm meson" - ;; - esac - fi - fi - fi - ;; - gd@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libfreetype6 libjpeg62-turbo ^libpng[0-9]+-[0-9]+$ libxpm4" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libfreetype6-dev libjpeg62-turbo-dev libpng-dev libxpm-dev" - if test $PHP_MAJMIN_VERSION -le 506; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libvpx[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libvpx-dev" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libwebp[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libwebp-dev" - if test $PHP_MAJMIN_VERSION -ge 801; then - if test $DISTRO_VERSION_NUMBER -ge 12; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libavif[0-9]+$ ^libaom[0-9]+$ ^libdav1d[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libavif-dev libaom-dev libdav1d-dev" - elif ! isLibaomInstalled || ! isLibdav1dInstalled || ! isLibyuvInstalled || ! isLibavifInstalled; then - case "${IPE_GD_WITHOUTAVIF:-}" in - 1 | y* | Y*) ;; - *) - if ! isLibaomInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libaom" - fi - if ! isLibdav1dInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libdav1d" - fi - if ! isLibyuvInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libyuv" - fi - if ! isLibavifInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libavif" - fi - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake nasm meson" - ;; - esac - fi - fi - fi - ;; - gearman@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++ libuuid" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile boost-dev gperf libmemcached-dev libevent-dev util-linux-dev" - ;; - gearman@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libgearman[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgearman-dev" - ;; - geoip@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent geoip" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile geoip-dev" - ;; - geoip@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libgeoip1[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgeoip-dev" - ;; - geos@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent geos-dev" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile geos" - ;; - geos@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libgeos-c1(v[0-9]*)?$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgeos-dev" - ;; - gettext@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libintl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile gettext-dev" - ;; - gmagick@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent graphicsmagick libgomp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile graphicsmagick-dev libtool" - ;; - gmagick@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libgraphicsmagick(-q16-)?[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgraphicsmagick1-dev" - ;; - gmp@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gmp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile gmp-dev" - ;; - gmp@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgmp-dev" - ;; - gnupg@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gpgme" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile gpgme-dev" - ;; - gnupg@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libgpgme[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile ^libgpgme[0-9]*-dev$" - ;; - grpc@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev linux-headers" - ;; - grpc@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev" - ;; - http@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libevent" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev curl-dev libevent-dev" - if test $PHP_MAJMIN_VERSION -le 506; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libidn" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libidn-dev" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent icu-libs $buildRequiredPackageLists_icuPersistent libidn" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev libidn-dev" - fi - ;; - http@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libcurl3-gnutls ^libevent[0-9\.\-]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev libgnutls28-dev libcurl4-gnutls-dev libevent-dev" - if test $PHP_MAJMIN_VERSION -le 506; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile ^libidn1[0-9+]-dev$" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libicu[0-9]+$ ^libidn2-[0-9+]$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libicu-dev ^libidn2-[0-9+]-dev$ ^libgcrypt[0-9]+-dev$" - fi - ;; - imagick@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent imagemagick libgomp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile imagemagick-dev" - if [ $DISTRO_MAJMIN_VERSION -ge 319 ]; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ghostscript libheif libjxl libraw librsvg" - fi - ;; - imagick@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libmagickwand-6.q16-[0-9]+$ ^libmagickcore-6.q16-[0-9]+-extra$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmagickwand-dev" - ;; - imap@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent c-client $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile krb5-dev imap-dev $buildRequiredPackageLists_libssldev" - ;; - imap@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libc-client2007e" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libkrb5-dev" - case "$DISTRO_VERSION" in - debian@9) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev comerr-dev krb5-multidev libc-client2007e libgssrpc4 libkadm5clnt-mit11 libkadm5srv-mit11 libkdb5-8 libpam0g-dev libssl-doc mlock" - ;; - *) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libc-client-dev" - ;; - esac - ;; - interbase@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev ncurses-dev" - if ! isFirebirdInstalled; then - COMPILE_LIBS="$COMPILE_LIBS firebird" - fi - ;; - interbase@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libfbclient2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile firebird-dev libib-util" - ;; - intl@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent icu-libs $buildRequiredPackageLists_icuPersistent" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev" - ;; - intl@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libicu[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libicu-dev" - ;; - ion@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake git" - ;; - ion@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake git" - ;; - ldap@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libldap" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile openldap-dev" - ;; - ldap@debian) - if test $DISTRO_VERSION_NUMBER -ge 9; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libldap-common" - fi - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libldap2-dev" - ;; - luasandbox@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lua5.1-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile lua5.1-dev" - ;; - luasandbox@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblua5.1-0" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liblua5.1-0-dev" - ;; - lz4@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lz4-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile lz4-dev" - ;; - lz4@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblz4-1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liblz4-dev" - ;; - maxminddb@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmaxminddb" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmaxminddb-dev" - ;; - maxminddb@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libmaxminddb[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmaxminddb-dev" - ;; - memprof@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent judy" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile judy-dev bsd-compat-headers" - ;; - memprof@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libjudydebian1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libjudy-dev" - ;; - mcrypt@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmcrypt" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmcrypt-dev" - ;; - mcrypt@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmcrypt4" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmcrypt-dev" - ;; - memcache@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev" - ;; - memcache@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev" - ;; - memcached@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmemcached-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmemcached-dev zlib-dev" - ;; - memcached@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmemcachedutil2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmemcached-dev zlib1g-dev" - if test $DISTRO_MAJMIN_VERSION -ge 12; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev" - fi - ;; - mongo@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsasl $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev cyrus-sasl-dev" - ;; - mongo@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev libsasl2-dev" - ;; - mongodb@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent icu-libs $buildRequiredPackageLists_icuPersistent libsasl $buildRequiredPackageLists_libssl snappy" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev cyrus-sasl-dev snappy-dev $buildRequiredPackageLists_libssldev zlib-dev" - if test $PHP_MAJMIN_VERSION -ge 704; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent zstd-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zstd-dev" - fi - ;; - mongodb@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libsnappy[0-9]+(v[0-9]+)?$ ^libicu[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libicu-dev libsasl2-dev libsnappy-dev $buildRequiredPackageLists_libssldev zlib1g-dev" - if test $PHP_MAJMIN_VERSION -ge 704; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libzstd[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libzstd-dev" - fi - ;; - mosquitto@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent mosquitto-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile mosquitto-dev" - ;; - mosquitto@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmosquitto1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmosquitto-dev" - ;; - mssql@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent freetds" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - mssql@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsybdb5" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - oauth@alpine) - if test $PHP_MAJMIN_VERSION -ge 700; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile pcre-dev" - fi - ;; - oauth@debian) - if test $PHP_MAJMIN_VERSION -ge 700; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libpcre3-dev" - fi - ;; - oci8@alpine | pdo_oci@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libaio libc6-compat libnsl" - if test $DISTRO_MAJMIN_VERSION -le 307; then - # The unzip tool of Alpine 3.7 can't extract symlinks from ZIP archives: let's use bsdtar instead - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libarchive-tools" - fi - ;; - oci8@debian | pdo_oci@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libaio[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unzip" - ;; - odbc@alpine | pdo_odbc@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent unixodbc" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unixodbc-dev" - ;; - odbc@debian | pdo_odbc@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libodbc1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unixodbc-dev" - ;; - openswoole@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent postgresql-libs libstdc++ $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile curl-dev postgresql-dev linux-headers $buildRequiredPackageLists_libssldev" - ;; - openswoole@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libcurl3-gnutls libpq5" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev libcurl4-gnutls-dev libpq-dev" - ;; - parle@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - ;; - pdo_dblib@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent freetds" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - pdo_dblib@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsybdb5" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - pdo_firebird@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev ncurses-dev" - if ! isFirebirdInstalled; then - COMPILE_LIBS="$COMPILE_LIBS firebird" - if test $PHP_MAJMIN_VERSION -ge 804; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev" - if ! isLibTommathInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libtommath" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake" - fi - if ! isLibTomcryptInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libtomcrypt" - fi - fi - fi - ;; - pdo_firebird@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libfbclient2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile firebird-dev libib-util" - ;; - pgsql@alpine | pdo_pgsql@alpine | pq@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent postgresql-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile postgresql-dev" - ;; - pgsql@debian | pdo_pgsql@debian | pq@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libpq5" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libpq-dev" - ;; - php_trie@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - ;; - phpy@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent python3" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile python3-dev" - ;; - phpy@debian) - if test $DISTRO_VERSION_NUMBER -ge 12; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libpython3.11" - elif test $DISTRO_VERSION_NUMBER -ge 11; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libpython3.9" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libpython3.7" - fi - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile python3-dev" - ;; - pkcs11@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent softhsm" - ;; - pkcs11@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsofthsm2" - ;; - pspell@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent aspell-libs $(expandASpellDictionaries)" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile aspell-dev" - ;; - pspell@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libaspell15 $(expandASpellDictionaries)" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libpspell-dev" - ;; - rdkafka@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent librdkafka" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile librdkafka-dev" - ;; - rdkafka@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^librdkafka\+*[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile librdkafka-dev" - ;; - recode@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent recode" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile recode-dev" - ;; - recode@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent librecode0" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile librecode-dev" - ;; - redis@alpine) - if test $PHP_MAJMIN_VERSION -ge 700; then - case "$DISTRO_VERSION" in - alpine@3.7) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent zstd" - ;; - *) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent zstd-libs" - ;; - esac - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zstd-dev" - if test $PHP_MAJMIN_VERSION -ge 702; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lz4-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile lz4-dev" - fi - fi - ;; - redis@debian) - if test $PHP_MAJMIN_VERSION -ge 700; then - case "$DISTRO_VERSION" in - debian@8) - ## There's no APT package for libzstd - ;; - debian@9) - ## libzstd is too old (available: 1.1.2, required: 1.3.0+) - ;; - *) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libzstd[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libzstd-dev" - ;; - esac - fi - if test $PHP_MAJMIN_VERSION -ge 702; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblz4-1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liblz4-dev" - fi - ;; - relay@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lz4-libs zstd-libs" - if test $DISTRO_MAJMIN_VERSION -ge 317; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent $buildRequiredPackageLists_libssl" - fi - ;; - saxon@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_volatile unzip" - ;; - seasclick@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - ;; - simdjson@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - ;; - smbclient@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsmbclient" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile samba-dev" - ;; - smbclient@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsmbclient" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsmbclient-dev" - ;; - snappy@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent snappy" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile snappy-dev" - ;; - snappy@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libsnappy1(v[0-9]+)?$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsnappy-dev" - ;; - snmp@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent net-snmp-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile net-snmp-dev" - ;; - snmp@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent snmp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsnmp-dev" - ;; - snuffleupagus@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent pcre" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile pcre-dev" - ;; - snuffleupagus@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libpcre3-dev" - ;; - soap@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - soap@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - sockets@alpine) - if test $PHP_MAJMIN_VERSION -ge 802; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile linux-headers" - fi - ;; - sodium@alpine | libsodium@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsodium" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsodium-dev" - ;; - sodium@debian | libsodium@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libsodium[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsodium-dev" - ;; - solr@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile curl-dev libxml2-dev" - ;; - solr@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libcurl3-gnutls" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libcurl4-gnutls-dev libxml2-dev" - ;; - sourceguardian@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent eudev-libs" - ;; - spx@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev" - ;; - spx@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev" - ;; - sqlsrv@alpine | pdo_sqlsrv@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++ unixodbc" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unixodbc-dev" - ;; - sqlsrv@debian | pdo_sqlsrv@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent unixodbc" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unixodbc-dev" - if ! isMicrosoftSqlServerODBCInstalled; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile gnupg apt-transport-https" - fi - ;; - ssh2@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libssh2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libssh2-dev" - ;; - ssh2@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libssh2-1-dev" - ;; - stomp@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev" - ;; - stomp@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev" - ;; - swoole@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent postgresql-libs libstdc++ $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile curl-dev postgresql-dev linux-headers $buildRequiredPackageLists_libssldev" - if test $PHP_MAJMIN_VERSION -ge 702; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent c-ares" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile c-ares-dev" - if test $PHP_MAJMIN_VERSION -ge 801; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent zstd-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile sqlite-dev zstd-dev" - fi - fi - case "${IPE_SWOOLE_WITHOUT_IOURING:-}" in - 1 | y* | Y*) ;; - *) - # iouring support in swoole 6 requires liburing 2.5+: available since Alpine 3.19 - # but with Alpine 3.19 we have a "invalid use of incomplete type 'const struct statx'" error - if test $DISTRO_MAJMIN_VERSION -ge 320; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liburing" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liburing-dev" - fi - ;; - esac - ;; - swoole@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libcurl3-gnutls libpq5" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev libcurl4-gnutls-dev libpq-dev" - if test $PHP_MAJMIN_VERSION -ge 702; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libc-ares2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libc-ares-dev" - if test $PHP_MAJMIN_VERSION -ge 800; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libbrotli1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev libbrotli-dev" - if test $PHP_MAJMIN_VERSION -ge 801; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsqlite3-dev" - if test $DISTRO_VERSION_NUMBER -ge 11; then - # swoole 6 requires libzstd >= 1.4.0, but on debian 10 (buster) we have 1.3.8 - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libzstd[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libzstd-dev" - fi - fi - fi - fi - if test $DISTRO_VERSION_NUMBER -ge 13; then - # iouring support in swoole 6 requires liburing 2.5+: available since Debian Trixie (13) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liburing2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liburing-dev" - fi - ;; - sybase_ct@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent freetds" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - sybase_ct@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libct4" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - tdlib@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++ $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile git cmake gperf zlib-dev $buildRequiredPackageLists_libssldev linux-headers readline-dev" - ;; - tdlib@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile git cmake gperf zlib1g-dev $buildRequiredPackageLists_libssldev" - ;; - tensor@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent openblas" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile lapack-dev openblas-dev" - if test $DISTRO_MAJMIN_VERSION -le 317; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lapack" - if test $DISTRO_MAJMIN_VERSION -le 316; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libexecinfo" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libexecinfo-dev" - if test $DISTRO_MAJMIN_VERSION -le 310; then - if ! stringInList --force-overwrite "$IPE_APK_FLAGS"; then - IPE_APK_FLAGS="$IPE_APK_FLAGS --force-overwrite" - fi - fi - fi - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblapack" - fi - ;; - tensor@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblapacke" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liblapack-dev libopenblas-dev liblapacke-dev" - if test $DISTRO_VERSION_NUMBER -le 9; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-6 libopenblas-base" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-6-dev" - elif test $DISTRO_VERSION_NUMBER -le 10; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-8 libopenblas-base" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-8-dev" - elif test $DISTRO_VERSION_NUMBER -le 11; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-10 libopenblas-base" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-10-dev" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-12 libopenblas0" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-12-dev" - fi - ;; - tidy@alpine) - if test $DISTRO_MAJMIN_VERSION -ge 315; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent tidyhtml" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent tidyhtml-libs" - fi - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile tidyhtml-dev" - ;; - tidy@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libtidy-?[0-9][0-9.\-]*(deb[0-9])?$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libtidy-dev" - ;; - uuid@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libuuid" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile util-linux-dev" - ;; - uuid@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile uuid-dev" - ;; - uv@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libuv" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libuv-dev" - ;; - uv@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libuv1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libuv1-dev" - ;; - vips@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent vips" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile vips-dev" - ;; - vips@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libvips" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libvips-dev" - ;; - wddx@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - wddx@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - wikidiff2@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile git" - ;; - wikidiff2@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libthai0" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile git libthai-dev" - ;; - xdebug@alpine) - if test $PHP_MAJMIN_VERSION -ge 800; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile linux-headers" - fi - ;; - xlswriter@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev" - ;; - xlswriter@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev" - ;; - xmldiff@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - xmldiff@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - xmlrpc@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - xmlrpc@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - xpass@alpine) - if ! isLibXCryptInstalled; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile linux-headers" - COMPILE_LIBS="$COMPILE_LIBS libxcrypt" - fi - ;; - xsl@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libxslt" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxslt-dev libgcrypt-dev" - ;; - xsl@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libxslt1\.1$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxslt-dev" - ;; - yaml@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent yaml" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile yaml-dev" - ;; - yaml@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libyaml-0-2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libyaml-dev" - ;; - yar@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile curl-dev" - ;; - yar@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libcurl3-gnutls" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libcurl4-gnutls-dev" - ;; - zip@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libzip" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake gnutls-dev libzip-dev $buildRequiredPackageLists_libssldev zlib-dev" - ;; - zip@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libzip[0-9]$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake gnutls-dev $buildRequiredPackageLists_libssldev libzip-dev libbz2-dev zlib1g-dev" - case "$DISTRO_VERSION" in - debian@8) - # Debian Jessie doesn't seem to provide libmbedtls - ;; - *) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libmbedtls[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmbedtls-dev" - ;; - esac - ;; - zmq@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent zeromq-dev" - ;; - zmq@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libzmq3-dev" - ;; - zookeeper@alpine) - if ! test -f /usr/local/include/zookeeper/zookeeper.h; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile maven automake libtool openjdk8" - fi - ;; - zookeeper@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libzookeeper-mt2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libzookeeper-mt-dev" - ;; - esac - shift - done - PACKAGES_PERSISTENT_NEW='' - PACKAGES_PERSISTENT_PRE='' - PACKAGES_VOLATILE='' - PACKAGES_PREVIOUS='' - if test -z "$buildRequiredPackageLists_persistent$buildRequiredPackageLists_volatile"; then - return - fi - if test -n "$buildRequiredPackageLists_persistent"; then - PACKAGES_PERSISTENT_NEW="$(expandPackagesToBeInstalled $buildRequiredPackageLists_persistent)" - if test -s "$IPE_ERRFLAG_FILE"; then - exit 1 - fi - resetIFS - for buildRequiredPackageLists_package in $buildRequiredPackageLists_persistent; do - buildRequiredPackageLists_package="$(expandInstalledSystemPackageName "$buildRequiredPackageLists_package")" - if test -n "$buildRequiredPackageLists_package"; then - PACKAGES_PERSISTENT_PRE="$PACKAGES_PERSISTENT_PRE $buildRequiredPackageLists_package" - fi - done - PACKAGES_PERSISTENT_PRE="${PACKAGES_PERSISTENT_PRE# }" - fi - if test -n "$buildRequiredPackageLists_volatile"; then - buildRequiredPackageLists_packages="$(expandPackagesToBeInstalled $buildRequiredPackageLists_volatile)" - if test -s "$IPE_ERRFLAG_FILE"; then - exit 1 - fi - resetIFS - for buildRequiredPackageLists_package in $buildRequiredPackageLists_packages; do - if ! stringInList "$buildRequiredPackageLists_package" "$PACKAGES_PERSISTENT_NEW"; then - if test "$buildRequiredPackageLists_package" != icu-data-en || ! stringInList icu-data-full "$PACKAGES_PERSISTENT_NEW"; then - PACKAGES_VOLATILE="$PACKAGES_VOLATILE $buildRequiredPackageLists_package" - fi - fi - done - PACKAGES_VOLATILE="${PACKAGES_VOLATILE# }" - fi - if test -n "$PACKAGES_PERSISTENT_NEW$PACKAGES_VOLATILE"; then - case "$DISTRO" in - debian) - PACKAGES_PREVIOUS="$(dpkg --get-selections | grep -E '\sinstall$' | awk '{ print $1 }')" - ;; - esac - fi -} - -# Get the full list of APT/APK packages that will be installed, given the required packages -# -# Arguments: -# $1: the list of required APT/APK packages -# -# Output: -# Space-separated list of every APT/APK packages that will be installed -expandPackagesToBeInstalled() { - expandPackagesToBeInstalled_result='' - case "$DISTRO" in - alpine) - expandPackagesToBeInstalled_log="$(apk add --simulate $@ 2>&1 || printf '\nERROR: apk failed\n')" - if test -n "$(printf '%s' "$expandPackagesToBeInstalled_log" | grep -E '^ERROR:')"; then - printf 'FAILED TO LIST THE WHOLE PACKAGE LIST FOR\n' >&2 - printf '%s ' "$@" >&2 - printf '\n\nCOMMAND OUTPUT:\n%s\n' "$expandPackagesToBeInstalled_log" >&2 - echo 'y' >"$IPE_ERRFLAG_FILE" - exit 1 - fi - IFS=' -' - for expandPackagesToBeInstalled_line in $expandPackagesToBeInstalled_log; do - if test -n "$(printf '%s' "$expandPackagesToBeInstalled_line" | grep -E '^\([0-9]*/[0-9]*) Installing ')"; then - expandPackagesToBeInstalled_result="$expandPackagesToBeInstalled_result $(printf '%s' "$expandPackagesToBeInstalled_line" | cut -d ' ' -f 3)" - fi - done - resetIFS - ;; - debian) - expandPackagesToBeInstalled_log="$(apt-get install -sy --no-install-recommends $@ 2>&1 || printf '\nE: apt-get failed\n')" - if test -n "$(printf '%s' "$expandPackagesToBeInstalled_log" | grep -E '^E:')"; then - printf 'FAILED TO LIST THE WHOLE PACKAGE LIST FOR\n' >&2 - printf '%s ' "$@" >&2 - printf '\n\nCOMMAND OUTPUT:\n%s\n' "$expandPackagesToBeInstalled_log" >&2 - echo 'y' >"$IPE_ERRFLAG_FILE" - exit 1 - fi - expandPackagesToBeInstalled_inNewPackages=0 - IFS=' -' - for expandPackagesToBeInstalled_line in $expandPackagesToBeInstalled_log; do - if test $expandPackagesToBeInstalled_inNewPackages -eq 0; then - if test "$expandPackagesToBeInstalled_line" = 'The following NEW packages will be installed:'; then - expandPackagesToBeInstalled_inNewPackages=1 - fi - elif test "$expandPackagesToBeInstalled_line" = "${expandPackagesToBeInstalled_line# }"; then - break - else - resetIFS - for expandPackagesToBeInstalled_newPackage in $expandPackagesToBeInstalled_line; do - expandPackagesToBeInstalled_result="$expandPackagesToBeInstalled_result $expandPackagesToBeInstalled_newPackage" - done - IFS=' -' - fi - done - resetIFS - ;; - esac - printf '%s' "${expandPackagesToBeInstalled_result# }" -} - -# Check if a system package is installed; if so we prints its name. -# -# Arguments: -# $1: the name of the package to be checked (regular expressions accepted: they must start with a ^) -expandInstalledSystemPackageName() { - if test "$1" = "${1#^}"; then - expandInstalledSystemPackageName_grepflags='-Fx' - else - expandInstalledSystemPackageName_grepflags='-E' - fi - case "$DISTRO" in - alpine) - apk info | grep $expandInstalledSystemPackageName_grepflags -- "$1" || test $? -eq 1 - ;; - debian) - dpkg --get-selections | grep -E '\sinstall$' | awk '{ print $1 }' | cut -d: -f1 | grep $expandInstalledSystemPackageName_grepflags -- "$1" || test $? -eq 1 - ;; - esac -} - -# Retrieve the number of available cores (alternative to nproc if not available) -# -# Output: -# The number of processor cores available -getProcessorCount() { - if test -n "${IPE_PROCESSOR_COUNT:-}"; then - echo $IPE_PROCESSOR_COUNT - return - fi - if command -v nproc >/dev/null 2>&1; then - nproc - else - getProcessorCount_tmp=$(cat /proc/cpuinfo | grep -E '^processor\s*:\s*\d+$' | wc -l) - if test $getProcessorCount_tmp -ge 1; then - echo $getProcessorCount_tmp - else - echo 1 - fi - fi -} - -# Set these variables: -# - TARGET_TRIPLET the build target tripled (eg 'x86_64-linux-gnu', 'x86_64-alpine-linux-musl') -setTargetTriplet() { - TARGET_TRIPLET="$(gcc -print-multiarch 2>/dev/null || true)" - if test -z "$TARGET_TRIPLET"; then - TARGET_TRIPLET="$(gcc -dumpmachine)" - fi -} - -# Retrieve the number of processors to be used when compiling an extension -# -# Arguments: -# $1: the handle of the PHP extension to be compiled -# Output: -# The number of processors to be used -getCompilationProcessorCount() { - case "$1" in - '') - # The above extensions don't support parallel compilation - echo 1 - ;; - *) - # All the other extensions support parallel compilation - getProcessorCount - ;; - esac -} - -# Get the full path of a PHP extension given its name. -# -# Arguments: -# $1: the name of the PHP extension -# -# Output: -# The absolute path of the PHP extension file (or nothing if the file can't be found) -getModuleFullPath() { - case "$1" in - apcu_bc) - getModuleFullPath_path="$PHP_EXTDIR/apc.so" - ;; - seasclick) - getModuleFullPath_path="$PHP_EXTDIR/SeasClick.so" - ;; - *) - getModuleFullPath_path="$PHP_EXTDIR/$1.so" - ;; - esac - if ! test -f "$getModuleFullPath_path"; then - printf 'Unable to find the file of the PHP extension "%s"\n' "$1" >&2 - exit 1 - fi - printf '%s' "$getModuleFullPath_path" -} - -# Post-process a PHP module just compiled and installed in the PHP extension directory -# -# Arguments: -# $1: the name of the PHP extension -# -# Return: -# 0 (true): if suceeded -# non-zero (false): in case of errors -postProcessModule() { - postProcessModule_file="$(getModuleFullPath "$1")" - if test $PHP_DEBUGBUILD -ne 1; then - printf 'Removing symbols from %s... ' "$postProcessModule_file" - postProcessModule_preSize="$(stat -c %s "$postProcessModule_file")" - strip --strip-all "$postProcessModule_file" - postProcessModule_postSize="$(stat -c %s "$postProcessModule_file")" - printf 'done (%s bytes saved).\n' "$((postProcessModule_preSize - postProcessModule_postSize))" - fi - return $? -} - -# Get the type of the php.ini entry to be used for a PHP extension -# -# Arguments: -# $1: the name of the PHP extension -# -# Output: -# zend_extension or extension -getModuleIniEntryType() { - case "$1" in - ioncube_loader | sourceguardian) - # On PHP 5.5, docker-php-ext-enable fails to detect that ionCube Loader and sourceguardian are Zend extensions - if test $PHP_MAJMIN_VERSION -le 505; then - printf 'zend_extension' - return 0 - fi - ;; - esac - getModuleIniEntryType_file="$(getModuleFullPath "$1")" - if readelf --wide --syms "$getModuleIniEntryType_file" | grep -Eq ' zend_extension_entry$'; then - printf 'zend_extension' - else - printf 'extension' - fi -} - -# Create the contents of a PHP ini file that enables an extension -# -# Arguments: -# $1: the name of the PHP extension -# $2: additional php.ini configuration (optional) -# -# Output: -# The contents of the ini file -buildPhpExtensionIniContent() { - buildPhpExtensionIniContent_type="$(getModuleIniEntryType "$1")" - buildPhpExtensionIniContent_soFile="$(getModuleFullPath "$1")" - buildPhpExtensionIniContent_result="$(printf '%s=%s' "$buildPhpExtensionIniContent_type" "${buildPhpExtensionIniContent_soFile##$PHP_EXTDIR/}")" - if test -n "${2:-}"; then - buildPhpExtensionIniContent_result="$(printf '%s\n%s' "$buildPhpExtensionIniContent_result" "$2")" - fi - printf '%s' "$buildPhpExtensionIniContent_result" -} - -# Check that a PHP module actually works (better to run this check before enabling the extension) -# -# Arguments: -# $1: the name of the PHP extension -# $2: base name (without path and extension) of additional php.ini configuration (optional) -# $3: additional php.ini configuration (optional) -# -# Return: -# 0 (true): if the string is in the list -# 1 (false): if the string is not in the list -checkModuleWorking() { - if test -n "${2:-}"; then - checkModuleWorking_iniFile="$PHP_INI_DIR/conf.d/$2--temp.ini" - else - checkModuleWorking_iniFile="$PHP_INI_DIR/conf.d/docker-php-ext-$1--temp.ini" - fi - checkModuleWorking_iniContent="$(buildPhpExtensionIniContent "$1" "${3:-}")" - printf 'Check if the %s module can be loaded... ' "$1" - checkModuleWorking_errBefore="$(php -r 'return;' 2>&1 || true)" - printf '%s' "$checkModuleWorking_iniContent" >"$checkModuleWorking_iniFile" - checkModuleWorking_errAfter="$(php -r 'return;' 2>&1 || true)" - rm "$checkModuleWorking_iniFile" - if test "$checkModuleWorking_errAfter" != "$checkModuleWorking_errBefore"; then - printf 'Error loading the "%s" extension:\n%s\n' "$1" "$checkModuleWorking_errAfter" >&2 - return 1 - fi - printf 'ok.\n' - return 0 -} - -# Enable a PHP extension -# -# Arguments: -# $1: the name of the PHP extension to be enabled -# $2: base name (without path and extension) of additional php.ini configuration (optional) -# $3: additional php.ini configuration (optional) -enablePhpExtension() { - if test -n "${2:-}"; then - enablePhpExtension_iniFile="$PHP_INI_DIR/conf.d/$2.ini" - else - enablePhpExtension_iniFile="$PHP_INI_DIR/conf.d/docker-php-ext-$1.ini" - fi - enablePhpExtension_iniContent="$(buildPhpExtensionIniContent "$1" "${3:-}")" - case "${IPE_DONT_ENABLE:-}" in - 1 | y* | Y*) - enablePhpExtension_enableCommand="/usr/local/bin/docker-php-ext-enable-$1" - printf '%s' "$enablePhpExtension_iniContent" >"$enablePhpExtension_iniFile-disabled" - printf '\n' >>"$enablePhpExtension_iniFile-disabled" - cat <"$enablePhpExtension_enableCommand" -#!/bin/sh - -if test -f '$enablePhpExtension_iniFile-disabled'; then - echo 'Enabling extension $1' - mv '$enablePhpExtension_iniFile-disabled' '$enablePhpExtension_iniFile' -else - echo 'The extension $1 has already been enabled' -fi -EOT - chmod +x "$enablePhpExtension_enableCommand" - printf '## Extension %s not enabled.\nYou can enable it by running the following command:\n%s\n\n' "$1" "$(basename "$enablePhpExtension_enableCommand")" - ;; - *) - printf '%s' "$enablePhpExtension_iniContent" >"$enablePhpExtension_iniFile" - printf '\n' >>"$enablePhpExtension_iniFile" - ;; - esac -} - -# Mark the pre-installed APT/APK packages as used -# that way they won't be uninstalled by accident -markPreinstalledPackagesAsUsed() { - printf '### MARKING PRE-INSTALLED PACKAGES AS IN-USE ###\n' - case "$DISTRO" in - alpine) - printf '# Packages: %s\n' "$PACKAGES_PERSISTENT_PRE" - apk add $PACKAGES_PERSISTENT_PRE - ;; - debian) - apt-mark manual $PACKAGES_PERSISTENT_PRE - ;; - esac -} - -# Install the required APT/APK packages -# -# Arguments: -# $@: the list of APT/APK packages to be installed -installRequiredPackages() { - printf '### INSTALLING REQUIRED PACKAGES ###\n' - printf '# Packages to be kept after installation: %s\n' "$PACKAGES_PERSISTENT_NEW" - printf '# Packages to be used only for installation: %s\n' "$PACKAGES_VOLATILE" - case "$DISTRO" in - alpine) - apk add $IPE_APK_FLAGS $PACKAGES_PERSISTENT_NEW $PACKAGES_VOLATILE - # https://gitlab.alpinelinux.org/alpine/aports/-/issues/12763#note_172090 - # https://github.com/mlocati/docker-php-extension-installer/issues/385 - # https://github.com/mlocati/docker-php-extension-installer/issues/537#issuecomment-1078748882 - for installRequiredPackages_item in wget; do - if test -n "$(expandInstalledSystemPackageName "$installRequiredPackages_item")"; then - apk add --upgrade "$installRequiredPackages_item" - fi - done - ;; - debian) - apt-get install -qqy --no-install-recommends $PACKAGES_PERSISTENT_NEW $PACKAGES_VOLATILE - ;; - esac -} - -# Get the version of an installed APT/APK package -# -# Arguments: -# $1: the name of the installed package -# -# Output: -# The numeric part of the package version, with from 1 to 3 numbers -# -# Example: -# 1 -# 1.2 -# 1.2.3 -getInstalledPackageVersion() { - case "$DISTRO" in - alpine) - apk info "$1" | head -n1 | cut -c $((${#1} + 2))- | grep -o -E '^[0-9]+(\.[0-9]+){0,2}' - ;; - debian) - dpkg-query --showformat='${Version}' --show "$1" 2>/dev/null | grep -o -E '^[0-9]+(\.[0-9]+){0,2}' - ;; - esac -} - -# Compare two versions -# -# Arguments: -# $1: the first version -# $2: the second version -# -# Output -# -1 if $1 is less than $2 -# 0 if $1 is the same as $2 -# 1 if $1 is greater than $2 -compareVersions() { - compareVersions_v1="$1.0.0" - compareVersions_v2="$2.0.0" - compareVersions_vMin="$(printf '%s\n%s' "$compareVersions_v1" "$compareVersions_v2" | sort -t '.' -n -k1,1 -k2,2 -k3,3 | head -n 1)" - if test "$compareVersions_vMin" != "$compareVersions_v1"; then - echo '1' - elif test "$compareVersions_vMin" = "$compareVersions_v2"; then - echo '0' - else - echo '-1' - fi -} - -# Install Oracle Instant Client & SDK -# -# Set: -# ORACLE_INSTANTCLIENT_LIBPATH -installOracleInstantClient() { - case "${IPE_INSTANTCLIENT_BASIC:-}" in - 1 | y* | Y*) - installOracleInstantClient_handle=basic - ;; - *) - installOracleInstantClient_handle=basiclite - ;; - esac - case $PHP_BITS in - 32) - installOracleInstantClient_client=client - installOracleInstantClient_version='19.9' - installOracleInstantClient_ic=https://download.oracle.com/otn_software/linux/instantclient/199000/instantclient-$installOracleInstantClient_handle-linux-$installOracleInstantClient_version.0.0.0dbru.zip - installOracleInstantClient_sdk=https://download.oracle.com/otn_software/linux/instantclient/199000/instantclient-sdk-linux-$installOracleInstantClient_version.0.0.0dbru.zip - ;; - *) - case $(uname -m) in - aarch64*) - installOracleInstantClient_client=client64 - installOracleInstantClient_version='19.10' - installOracleInstantClient_ic=https://download.oracle.com/otn_software/linux/instantclient/191000/instantclient-$installOracleInstantClient_handle-linux.arm64-$installOracleInstantClient_version.0.0.0dbru.zip - installOracleInstantClient_sdk=https://download.oracle.com/otn_software/linux/instantclient/191000/instantclient-sdk-linux.arm64-$installOracleInstantClient_version.0.0.0dbru.zip - ;; - *) - installOracleInstantClient_client=client64 - installOracleInstantClient_version='21.1' - installOracleInstantClient_ic=https://download.oracle.com/otn_software/linux/instantclient/211000/instantclient-$installOracleInstantClient_handle-linux.x64-$installOracleInstantClient_version.0.0.0.zip - installOracleInstantClient_sdk=https://download.oracle.com/otn_software/linux/instantclient/211000/instantclient-sdk-linux.x64-$installOracleInstantClient_version.0.0.0.zip - ;; - esac - ;; - esac - ORACLE_INSTANTCLIENT_LIBPATH=/usr/lib/oracle/$installOracleInstantClient_version/$installOracleInstantClient_client/lib - if ! test -e "$ORACLE_INSTANTCLIENT_LIBPATH"; then - printf 'Downloading Oracle Instant Client v%s (%s)... ' "$installOracleInstantClient_version" "$installOracleInstantClient_handle" - installOracleInstantClient_src="$(getPackageSource $installOracleInstantClient_ic)" - mkdir -p "/usr/lib/oracle/$installOracleInstantClient_version/$installOracleInstantClient_client" - mv "$installOracleInstantClient_src" "$ORACLE_INSTANTCLIENT_LIBPATH" - echo 'done.' - fi - if ! test -e "$ORACLE_INSTANTCLIENT_LIBPATH/sdk" && ! test -L "$ORACLE_INSTANTCLIENT_LIBPATH/sdk"; then - printf 'Downloading Oracle Instant SDK v%s... ' "$installOracleInstantClient_version" - installOracleInstantClient_src="$(getPackageSource $installOracleInstantClient_sdk)" - ln -sf "$installOracleInstantClient_src/sdk" "$ORACLE_INSTANTCLIENT_LIBPATH/sdk" - UNNEEDED_PACKAGE_LINKS="$UNNEEDED_PACKAGE_LINKS $ORACLE_INSTANTCLIENT_LIBPATH/sdk" - echo 'done.' - fi - case "$DISTRO" in - alpine) - if ! test -e /usr/lib/libresolv.so.2 && test -e /lib/libc.so.6; then - ln -s /lib/libc.so.6 /usr/lib/libresolv.so.2 - fi - installOracleInstantClient_ldconf=/etc/ld-musl-${TARGET_TRIPLET%-alpine-linux-musl}.path - if test -e "$installOracleInstantClient_ldconf"; then - if ! cat "$installOracleInstantClient_ldconf" | grep -q "$ORACLE_INSTANTCLIENT_LIBPATH"; then - cat "$ORACLE_INSTANTCLIENT_LIBPATH" | awk -v suffix=":$ORACLE_INSTANTCLIENT_LIBPATH" '{print NR==1 ? $0suffix : $0}' >"$ORACLE_INSTANTCLIENT_LIBPATH" - fi - else - case $PHP_BITS in - 32) - echo "/lib:/usr/local/lib:/usr/lib:$ORACLE_INSTANTCLIENT_LIBPATH" >"$installOracleInstantClient_ldconf" - ;; - *) - echo "/lib64:/lib:/usr/local/lib:/usr/lib:$ORACLE_INSTANTCLIENT_LIBPATH" >"$installOracleInstantClient_ldconf" - ;; - esac - fi - ;; - debian) - if ! test -e /etc/ld.so.conf.d/oracle-instantclient.conf; then - echo "$ORACLE_INSTANTCLIENT_LIBPATH" >/etc/ld.so.conf.d/oracle-instantclient.conf - ldconfig - fi - ;; - esac -} - -# Check if the Microsoft SQL Server ODBC Driver is installed -# -# Return: -# 0 (true): if the string is in the list -# 1 (false): if the string is not in the list -isMicrosoftSqlServerODBCInstalled() { - test -d /opt/microsoft/msodbcsql*/ -} - -# Install the Microsoft SQL Server ODBC Driver -# see https://learn.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server -installMicrosoftSqlServerODBC() { - printf 'Installing the Microsoft SQL Server ODBC Driver\n' - case "$DISTRO" in - alpine) - rm -rf /tmp/src/msodbcsql.apk - if test $PHP_MAJMIN_VERSION -le 703; then - curl -sSLf -o /tmp/src/msodbcsql.apk https://download.microsoft.com/download/e/4/e/e4e67866-dffd-428c-aac7-8d28ddafb39b/msodbcsql17_17.10.6.1-1_amd64.apk - else - case $(uname -m) in - aarch64 | arm64 | armv8) - installMicrosoftSqlServerODBC_arch=arm64 - ;; - *) - installMicrosoftSqlServerODBC_arch=amd64 - ;; - esac - curl -sSLf -o /tmp/src/msodbcsql.apk https://download.microsoft.com/download/3/5/5/355d7943-a338-41a7-858d-53b259ea33f5/msodbcsql18_18.3.3.1-1_$installMicrosoftSqlServerODBC_arch.apk - fi - printf '\n' | apk add --allow-untrusted /tmp/src/msodbcsql.apk - rm -rf /tmp/src/msodbcsql.apk - ;; - debian) - printf -- '- installing the Microsoft APT key\n' - if test $DISTRO_VERSION_NUMBER -eq 11; then - curl -sSLf -o /etc/apt/trusted.gpg.d/microsoft.asc https://packages.microsoft.com/keys/microsoft.asc - elif test $DISTRO_VERSION_NUMBER -ge 12; then - curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor --yes --output /usr/share/keyrings/microsoft-prod.gpg - else - # apt-key is deprecated - curl -sSLf https://packages.microsoft.com/keys/microsoft.asc | apt-key add - - fi - if ! test -f /etc/apt/sources.list.d/mssql-release.list; then - printf -- '- adding the Microsoft APT source list\n' - curl -sSLf https://packages.microsoft.com/config/debian/$DISTRO_VERSION_NUMBER/prod.list >/etc/apt/sources.list.d/mssql-release.list - invokeAptGetUpdate - fi - printf -- '- installing the APT package\n' - if test $PHP_MAJMIN_VERSION -le 703; then - ACCEPT_EULA=Y apt-get install -qqy --no-install-recommends msodbcsql17 - elif test $DISTRO_VERSION_NUMBER -ge 9 && test $DISTRO_VERSION_NUMBER -le 12; then - # On Debian 9 to 12 we have both msodbcsql17 and msodbcsql18: let's install just one - ACCEPT_EULA=Y apt-get install -qqy --no-install-recommends msodbcsql18 - else - ACCEPT_EULA=Y apt-get install -qqy --no-install-recommends '^msodbcsql[0-9]+$' - fi - ;; - esac -} - -# Check if libaom is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibaomInstalled() { - if ! test -f /usr/local/lib/libaom.so && ! test -f /usr/lib/libaom.so && ! test -f /usr/lib/x86_64*/libaom.so; then - return 1 - fi - if ! test -f /usr/local/include/aom/aom_codec.h && ! test -f /usr/include/aom/aom_codec.h; then - return 1 - fi - return 0 -} - -# Install libaom -installLibaom() { - printf 'Installing libaom\n' - installLibaom_version=3.10.0 - installLibaom_dir="$(getPackageSource https://aomedia.googlesource.com/aom/+archive/v$installLibaom_version.tar.gz)" - mkdir -- "$installLibaom_dir/my.build" - cd -- "$installLibaom_dir/my.build" - cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=1 -DENABLE_DOCS=0 -DENABLE_EXAMPLES=0 -DENABLE_TESTDATA=0 -DENABLE_TESTS=0 -DENABLE_TOOLS=0 -DCMAKE_INSTALL_LIBDIR:PATH=lib .. - ninja -j $(getProcessorCount) install - cd - >/dev/null - ldconfig || true -} - -# Check if libdav1d is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibdav1dInstalled() { - if ! test -f /usr/local/lib/libdav1d.so && ! test -f /usr/lib/libdav1d.so && ! test -f /usr/lib/x86_64*/libdav1d.so; then - return 1 - fi - if ! test -f /usr/local/include/dav1d/dav1d.h && ! test -f /usr/include/dav1d/dav1d.h; then - return 1 - fi - return 0 -} - -# Install libdav1d -installLibdav1d() { - printf 'Installing libdav1d\n' - installLibdav1d_dir="$(getPackageSource https://github.com/videolan/dav1d/archive/refs/tags/1.3.0.tar.gz)" - mkdir -- "$installLibdav1d_dir/build" - cd -- "$installLibdav1d_dir/build" - meson --buildtype release -Dprefix=/usr .. - ninja -j $(getProcessorCount) install - cd - >/dev/null - if test -f /usr/lib/$TARGET_TRIPLET/libdav1d.so && ! test -f /usr/lib/libdav1d.so; then - ln -s /usr/lib/$TARGET_TRIPLET/libdav1d.so /usr/lib/ - fi - ldconfig || true -} - -# Check if libyuv is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibyuvInstalled() { - if ! test -f /usr/local/lib/libyuv.so && ! test -f /usr/lib/libyuv.so && ! test -f /usr/lib/x86_64*/libyuv.so && ! test -f /usr/lib/x86_64*/libyuv.so.*; then - return 1 - fi - if ! test -f /usr/local/include/libyuv.h && ! test -f /usr/include/libyuv.h; then - return 1 - fi - return 0 -} - -# Install libyuv -installLibyuv() { - printf 'Installing libyuv\n' - installLibyuv_dir="$(getPackageSource https://chromium.googlesource.com/libyuv/libyuv/+archive/d359a9f922af840b043535d43cf9d38b220d102e.tar.gz)" - mkdir -- "$installLibyuv_dir/build" - cd -- "$installLibyuv_dir/build" - cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr -B. .. - make -j$(getProcessorCount) install - cd - >/dev/null -} - -# Check if libavif is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibavifInstalled() { - if ! test -f /usr/local/lib/libavif.so && ! test -f /usr/lib/libavif.so && ! test -f /usr/lib/x86_64*/libavif.so; then - return 1 - fi - if ! test -f /usr/local/include/avif/avif.h && ! test -f /usr/include/avif/avif.h; then - return 1 - fi - return 0 -} - -# Install libavif -installLibavif() { - printf 'Installing libavif\n' - installLibavif_dir="$(getPackageSource https://codeload.github.com/AOMediaCodec/libavif/tar.gz/refs/tags/v1.0.3)" - mkdir -- "$installLibavif_dir/build" - cd -- "$installLibavif_dir/build" - cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON -DAVIF_CODEC_AOM=ON -DCMAKE_INSTALL_LIBDIR:PATH=lib - make -j$(getProcessorCount) install - cd - >/dev/null -} - -# Install libmpdec -installLibMPDec() { - installLibMPDec_src="$(getPackageSource https://www.bytereef.org/software/mpdecimal/releases/mpdecimal-2.5.1.tar.gz)" - cd -- "$installLibMPDec_src" - ./configure --disable-cxx - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -# Check if libdatrie is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibDatrieInstalled() { - if ! test -f /usr/local/lib/libdatrie.so && ! test -f /usr/lib/libdatrie.so && ! test -f /usr/lib/x86_64*/libdatrie.so; then - return 1 - fi - if ! test -f /usr/local/include/datrie/trie.h && ! test -f /usr/include/datrie/trie.h; then - return 1 - fi - return 0 -} - -# Install libdatrie -installLibDatrie() { - printf 'Installing libdatrie\n' - installLibDatrie_src="$(getPackageSource https://github.com/tlwg/libdatrie/releases/download/v0.2.13/libdatrie-0.2.13.tar.xz)" - cd -- "$installLibDatrie_src" - ./configure - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -# Check if libdatrie is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibThaiInstalled() { - return 1 - if ! test -f /usr/local/lib/libthai.so && ! test -f /usr/lib/libthai.so && ! test -f /usr/lib/x86_64*/libthai.so; then - return 1 - fi - if ! test -f /usr/local/include/thai/thailib.h && ! test -f /usr/include/thai/thailib.h; then - return 1 - fi - return 0 -} - -# Install libdatrie -installLibThai() { - printf 'Installing libthai\n' - installLibThai_src="$(getPackageSource https://github.com/tlwg/libthai/releases/download/v0.1.29/libthai-0.1.29.tar.xz)" - cd -- "$installLibThai_src" - ./configure - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -isLibTommathInstalled() { - if test -f /usr/local/lib/libtommath.a && test -f /usr/local/include/tommath.h; then - return 0 - fi - return 1 -} - -installLibTommath() { - printf 'Installing libtommath\n' - installLibTommath_src="$(getPackageSource https://github.com/libtom/libtommath/releases/download/v1.3.0/ltm-1.3.0.tar.xz)" - mkdir -p "$installLibTommath_src/build" - cd -- "$installLibTommath_src/build" - CFLAGS='-fPIC' cmake -DCMAKE_BUILD_TYPE=Release .. - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -isLibTomcryptInstalled() { - if test -f /usr/local/lib/libtomcrypt.a && test -f /usr/local/include/tomcrypt.h; then - return 0 - fi - return 1 -} - -installLibTomcrypt() { - printf 'Installing libtomcrypt\n' - installLibTomcrypt_src="$(getPackageSource https://github.com/libtom/libtomcrypt/releases/download/v1.18.2/crypt-1.18.2.tar.xz)" - cd -- "$installLibTomcrypt_src" - CFLAGS='-fPIC' make -j$(getProcessorCount) - make install -} - -isFirebirdInstalled() { - if test -f /usr/lib/libfbclient.so && test -f /usr/include/ibase.h; then - return 0 - fi - if test -d /tmp/src/firebird; then - return 0 - fi - return 1 -} - -installFirebird() { - printf 'Installing firebird\n' - if test $PHP_MAJMIN_VERSION -ge 804; then - installFirebird_src="$(getPackageSource https://github.com/FirebirdSQL/firebird/releases/download/v5.0.2/Firebird-5.0.2.1613-0-source.tar.xz)" - cd -- "$installFirebird_src" - ./configure --enable-client-only - make -j$(getProcessorCount) - cp -Rd gen/Release/firebird/include/* /usr/include - cp -Rd gen/Release/firebird/lib/* /usr/lib - cd - >/dev/null - else - mv "$(getPackageSource https://github.com/FirebirdSQL/firebird/releases/download/R2_5_9/Firebird-2.5.9.27139-0.tar.bz2)" /tmp/src/firebird - cd /tmp/src/firebird - # Patch rwlock.h (this has been fixed in later release of firebird 3.x) - sed -i '194s/.*/#if 0/' src/common/classes/rwlock.h - ./configure --with-system-icu - # -j option can't be used: make targets must be compiled sequentially - make -s btyacc_binary gpre_boot libfbstatic libfbclient - cp gen/firebird/lib/libfbclient.so /usr/lib/ - ln -s /usr/lib/libfbclient.so /usr/lib/libfbclient.so.2 - cd - >/dev/null - fi -} - -isLibXCryptInstalled() { - if ! test -f /usr/local/lib/libcrypt.so && ! test -f /usr/lib/libcrypt.so && ! test -f /usr/lib/x86_64*/libcrypt.so; then - return 1 - fi - return 0 -} - -installLibXCrypt() { - printf 'Installing libxcrypt\n' - installLibXCrypt_version=4.4.36 - installLibXCrypt_src="$(getPackageSource "https://github.com/besser82/libxcrypt/releases/download/v$installLibXCrypt_version/libxcrypt-$installLibXCrypt_version.tar.xz")" - cd -- "$installLibXCrypt_src" - ./configure --prefix /usr - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -isLibenchant1Installed() { - if test -f /usr/lib/libenchant.so || test -f /usr/local/lib/libenchant.so; then - return 0 - fi - return 1 -} - -installLibenchant1() { - printf 'Installing libenchant1\n' - installLibenchant1_src="$(getPackageSource https://github.com/rrthomas/enchant/releases/download/enchant-1-6-1/enchant-1.6.1.tar.gz)" - cd -- "$installLibenchant1_src" - ./configure - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -# Install Composer -installComposer() { - installComposer_version="$(getWantedPHPModuleVersion @composer)" - installComposer_version="${installComposer_version#^}" - if test -z "$installComposer_version"; then - installComposer_fullname=composer - installComposer_flags='' - else - installComposer_fullname="$(printf 'composer v%s' "$installComposer_version")" - if printf '%s' "$installComposer_version" | grep -Eq '^[0-9]+$'; then - installComposer_flags="--$installComposer_version" - else - installComposer_flags="--version=$installComposer_version" - fi - fi - printf '### INSTALLING %s ###\n' "$installComposer_fullname" - actuallyInstallComposer /usr/local/bin composer "$installComposer_flags" -} - -# Actually install composer -# -# Arguments: -# $1: the directory where composer should be installed (required) -# $2: the composer filename (optional, default: composer) -# $3. additional flags for the composer installed (optional) -actuallyInstallComposer() { - actuallyInstallComposer_installer="$(mktemp -p /tmp/src)" - curl -sSLf -o "$actuallyInstallComposer_installer" https://getcomposer.org/installer - actuallyInstallComposer_expectedSignature="$(curl -sSLf https://composer.github.io/installer.sig)" - actuallyInstallComposer_actualSignature="$(php -n -r "echo hash_file('sha384', '$actuallyInstallComposer_installer');")" - if test "$actuallyInstallComposer_expectedSignature" != "$actuallyInstallComposer_actualSignature"; then - printf 'Verification of composer installer failed!\nExpected signature: %s\nActual signature: %s\n' "$actuallyInstallComposer_expectedSignature" "$actuallyInstallComposer_actualSignature" >&2 - exit 1 - fi - actuallyInstallComposer_flags="--install-dir=$1" - if test -n "${2:-}"; then - actuallyInstallComposer_flags="$actuallyInstallComposer_flags --filename=$2" - else - actuallyInstallComposer_flags="$actuallyInstallComposer_flags --filename=composer" - fi - if test -n "${3:-}"; then - actuallyInstallComposer_flags="$actuallyInstallComposer_flags $3" - fi - php "$actuallyInstallComposer_installer" $actuallyInstallComposer_flags - rm -- "$actuallyInstallComposer_installer" -} - -# Install ionCube Loader -installIonCubeLoader() { - installIonCubeLoader_version='' - if test $PHP_MAJMIN_VERSION -lt 804; then - # For 14.4.0 we have a Segmentation Fault - installIonCubeLoader_version=14.0.0 - fi - installIonCubeLoader_versionForUrl='' - installIonCubeLoader_versionForMessage=latest - if test -n "$installIonCubeLoader_version"; then - installIonCubeLoader_versionForUrl="_$installIonCubeLoader_version" - installIonCubeLoader_versionForMessage="v$installIonCubeLoader_version" - fi - # See https://www.ioncube.com/loaders.php - case $PHP_BITS in - 32) - case $(uname -m) in - aarch* | arm*) - installIonCubeLoader_url="https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_armv7l$installIonCubeLoader_versionForUrl.tar.gz" - ;; - *) - installIonCubeLoader_url="https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86$installIonCubeLoader_versionForUrl.tar.gz" - ;; - esac - ;; - *) - case $(uname -m) in - aarch64 | arm64 | armv8) - installIonCubeLoader_url="https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_aarch64$installIonCubeLoader_versionForUrl.tar.gz" - ;; - *) - installIonCubeLoader_url="https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64$installIonCubeLoader_versionForUrl.tar.gz" - ;; - esac - ;; - esac - printf 'Downloading ionCube Loader (%s)... ' "$installIonCubeLoader_versionForMessage" - installIonCubeLoader_dir="$(getPackageSource $installIonCubeLoader_url)" - echo 'done.' - installIonCubeLoader_so=$(php -r "printf('ioncube_loader_lin_%s.%s%s.so', PHP_MAJOR_VERSION, PHP_MINOR_VERSION, ZEND_THREAD_SAFE ? '_ts' : '');") - cp "$installIonCubeLoader_dir/$installIonCubeLoader_so" "$(getPHPExtensionsDir)/ioncube_loader.so" -} - -# Install SourceGuardian Loader -installSourceGuardian() { - # See https://www.sourceguardian.com/loaders.html - case $PHP_BITS in - 32) - installSourceGuardian_url=https://www.sourceguardian.com/loaders/download/loaders.linux-i386.tar.gz - ;; - *) - case $(uname -m) in - aarch64 | arm64 | armv8) - installSourceGuardian_url=https://www.sourceguardian.com/loaders/download/loaders.linux-aarch64.tar.gz - ;; - *) - installSourceGuardian_url=https://www.sourceguardian.com/loaders/download/loaders.linux-x86_64.tar.gz - ;; - esac - ;; - esac - printf 'Downloading SourceGuardian... ' - installSourceGuardian_dir="$(getPackageSource $installSourceGuardian_url)" - printf 'done (version: %s)\n' "$(cat "$installSourceGuardian_dir/version")" - for installSourceGuardian_phpv in $PHP_MAJDOTMINDOTPAT_VERSION $PHP_MAJDOTMIN_VERSION; do - installSourceGuardian_file="$installSourceGuardian_dir/ixed.$PHP_MAJDOTMIN_VERSION" - if test $PHP_THREADSAFE -eq 1; then - installSourceGuardian_file="${installSourceGuardian_file}ts" - fi - installSourceGuardian_file="${installSourceGuardian_file}.lin" - if test -f "$installSourceGuardian_file"; then - mv "$installSourceGuardian_file" "$(getPHPExtensionsDir)/sourceguardian.so" - return - fi - done - printf 'Unable to find a SourceGuardian compatible with PHP %s or PHP %s.\nAvailable SourceGuardian versions:\n' "$PHP_MAJDOTMINDOTPAT_VERSION" "$PHP_MAJDOTMIN_VERSION" >&2 - ls -1 "$installSourceGuardian_dir" | grep -E '^ixed\..*\.lin$' | sed -E 's/^[^0-9]+([0-9]+(\.[0-9]+)*).*$/\1/' | sort | uniq >&2 - exit 1 -} - -# Install Cargo (if not yet installed) -installCargo() { - if command -v cargo >/dev/null; then - return - fi - installCargo_cargoversion= - if ! test -f "$HOME/.cargo/env"; then - printf '# Installing cargo\n' - case "$DISTRO" in - alpine) - # see https://github.com/hyperledger/indy-vdr/issues/69#issuecomment-998104850 - export RUSTFLAGS='-C target-feature=-crt-static' - ;; - esac - curl https://sh.rustup.rs -sSf | sh -s -- -y -q - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -le 310; then - # With version 1.84.0 we have this error: - # Error relocating /root/.rustup/toolchains/stable-x86_64-unknown-linux-musl/bin/cargo: posix_spawn_file_actions_addchdir_np: symbol not found - # See https://github.com/rust-lang/rust/pull/131851#issue-2595663507 - installCargo_cargoversion=1.83.0 - fi - ;; - esac - fi - . "$HOME/.cargo/env" - if test -n "$installCargo_cargoversion"; then - rustup default -- "$installCargo_cargoversion" - fi - if test -z "${IPE_UNINSTALL_CARGO:-}"; then - IPE_UNINSTALL_CARGO=y - fi -} - -installNewRelic() { - printf '# Installing newrelic\n' - # see https://docs.newrelic.com/docs/apm/agents/php-agent/getting-started/php-agent-compatibility-requirements/ - if test $PHP_MAJMIN_VERSION -le 701; then - installNewRelic_baseUrl=https://download.newrelic.com/php_agent/archive/10.21.0.11/ - else - installNewRelic_baseUrl=https://download.newrelic.com/php_agent/release/ - fi - installNewRelic_search='\bnewrelic-php[0-9.]*-[0-9]+(\.[0-9]+)*-linux' - case "$DISTRO" in - alpine) - installNewRelic_search="$installNewRelic_search-musl" - ;; - esac - installNewRelic_file="$(curl -sSLf -o- "$installNewRelic_baseUrl" | sed -E 's/<[^>]*>//g' | grep -Eo "$installNewRelic_search.tar.gz" | sort | head -1)" - installNewRelic_url="$installNewRelic_baseUrl$installNewRelic_file" - installNewRelic_src="$(getPackageSource "$installNewRelic_url")" - cd -- "$installNewRelic_src" - NR_INSTALL_USE_CP_NOT_LN=1 NR_INSTALL_SILENT=1 ./newrelic-install install - case "${IPE_NEWRELIC_DAEMON:-}" in - 1 | y* | Y*) - NR_INSTALL_USE_CP_NOT_LN=1 NR_INSTALL_SILENT=1 ./newrelic-install install_daemon - ;; - esac - case "${IPE_NEWRELIC_KEEPLOG:-}" in - 1 | y* | Y*) ;; - *) - rm -f /tmp/nrinstall-*.tar - ;; - esac - cd - >/dev/null - cat <&2 - fi - if test -n "$(getModuleSourceCodePath "$1")"; then - printf '### WARNING the module "%s" is bundled with PHP, you can NOT specify a source code path for it\n' "$1" >&2 - fi - case "$1" in - dba) - if test -e /usr/lib/$TARGET_TRIPLET/libdb-5.3.so && ! test -e /usr/lib/libdb-5.3.so; then - ln -s /usr/lib/$TARGET_TRIPLET/libdb-5.3.so /usr/lib/ - fi - if test $PHP_MAJMIN_VERSION -le 505; then - docker-php-source extract - patch /usr/src/php/ext/dba/config.m4 </dev/null - ;; - oci8 | pdo_oci) - installOracleInstantClient - if test "$1" = oci8; then - docker-php-ext-configure "$1" "--with-oci8=instantclient,$ORACLE_INSTANTCLIENT_LIBPATH" - elif test "$1" = pdo_oci; then - docker-php-ext-configure "$1" "--with-pdo-oci=instantclient,$ORACLE_INSTANTCLIENT_LIBPATH" - fi - ;; - pdo_odbc) - docker-php-ext-configure pdo_odbc --with-pdo-odbc=unixODBC,/usr - ;; - snmp) - case "$DISTRO" in - alpine) - mkdir -p -m 0755 /var/lib/net-snmp/mib_indexes - ;; - esac - ;; - sockets) - case "$PHP_MAJDOTMINDOTPAT_VERSION" in - 8.0.15 | 8.1.2) - sed -i '70 i #ifndef _GNU_SOURCE' /usr/src/php/ext/sockets/config.m4 - sed -i '71 i #define _GNU_SOURCE' /usr/src/php/ext/sockets/config.m4 - sed -i '72 i #endif' /usr/src/php/ext/sockets/config.m4 - ;; - esac - ;; - sybase_ct) - docker-php-ext-configure sybase_ct --with-sybase-ct=/usr - ;; - tidy) - case "$DISTRO" in - alpine) - if ! test -f /usr/include/buffio.h; then - ln -s /usr/include/tidybuffio.h /usr/include/buffio.h - UNNEEDED_PACKAGE_LINKS="$UNNEEDED_PACKAGE_LINKS /usr/include/buffio.h" - fi - ;; - esac - ;; - zip) - if test $PHP_MAJMIN_VERSION -le 505; then - docker-php-ext-configure zip - elif test $PHP_MAJMIN_VERSION -le 703; then - docker-php-ext-configure zip --with-libzip - else - docker-php-ext-configure zip --with-zip - fi - ;; - esac - installBundledModule_errBefore="$(php -r 'return;' 2>&1 || true)" - docker-php-ext-install -j$(getProcessorCount) "$1" - case "$1" in - imap) - case "$DISTRO_VERSION" in - debian@9) - dpkg -r libc-client2007e-dev - ;; - esac - ;; - esac - case "${IPE_SKIP_CHECK:-}" in - 1 | y* | Y*) ;; - *) - php -r 'return;' >/dev/null 2>/dev/null || true - installBundledModule_errAfter="$(php -r 'return;' 2>&1 || true)" - if test "$installBundledModule_errAfter" != "$installBundledModule_errBefore"; then - printf 'PHP has problems after installing the "%s" extension:\n%s\n' "$1" "$installBundledModule_errAfter" >&2 - rm "$PHP_INI_DIR/conf.d/docker-php-ext-$1.ini" || true - return 1 - fi - ;; - esac -} - -# Fetch a tar.gz file, extract it and returns the path of the extracted folder. -# -# Arguments: -# $1: the URL of the file to be downloaded -# -# Output: -# The path of the extracted directory -getPackageSource() { - mkdir -p /tmp/src - getPackageSource_tempFile=$(mktemp -p /tmp/src) - curl -sSLf -o "$getPackageSource_tempFile" "$1" - getPackageSource_tempDir=$(mktemp -p /tmp/src -d) - cd "$getPackageSource_tempDir" - tar -xzf "$getPackageSource_tempFile" 2>/dev/null || tar -xf "$getPackageSource_tempFile" 2>/dev/null || ( - if command -v bsdtar >/dev/null; then - bsdtar -xf "$getPackageSource_tempFile" - else - unzip -q "$getPackageSource_tempFile" - fi - ) - cd - >/dev/null - unlink "$getPackageSource_tempFile" - getPackageSource_outDir='' - for getPackageSource_i in $(ls "$getPackageSource_tempDir"); do - if test -n "$getPackageSource_outDir" || test -f "$getPackageSource_tempDir/$getPackageSource_i"; then - getPackageSource_outDir='' - break - fi - getPackageSource_outDir="$getPackageSource_tempDir/$getPackageSource_i" - done - if test -n "$getPackageSource_outDir"; then - printf '%s' "$getPackageSource_outDir" - else - printf '%s' "$getPackageSource_tempDir" - fi -} - -# Install a PECL/remote PHP module given its handle -# -# Arguments: -# $1: the handle of the PHP module -installRemoteModule() { - installRemoteModule_module="$1" - printf '### INSTALLING REMOTE MODULE %s ###\n' "$installRemoteModule_module" - installRemoteModule_version="$(resolvePHPModuleVersion "$installRemoteModule_module")" - installRemoteModule_path="$(getModuleSourceCodePath "$installRemoteModule_module")" - rm -rf "$CONFIGURE_FILE" - installRemoteModule_manuallyInstalled=0 - installRemoteModule_cppflags='' - installRemoteModule_ini_basename='' - installRemoteModule_ini_extra='' - case "$installRemoteModule_module" in - amqp) - if test -z "$installRemoteModule_version"; then - if test "$DISTRO_VERSION" = debian@8; then - # in Debian Jessie we have librabbitmq version 0.5.2 - installRemoteModule_version=1.9.3 - elif test $PHP_MAJMIN_VERSION -le 505; then - installRemoteModule_version=1.9.4 - elif test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=1.11.0 - fi - fi - ;; - apcu) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=4.0.11 - fi - fi - ;; - apcu_bc) - # apcu_bc must be loaded after apcu - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - ;; - ast) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=1.0.16 - fi - fi - ;; - bitset) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.0.4 - fi - fi - ;; - blackfire) - case $(uname -m) in - i386 | i686 | x86) - installRemoteModule_tmp1=i386 - ;; - aarch64 | arm64 | armv8) - installRemoteModule_tmp1=arm64 - ;; - *) - installRemoteModule_tmp1=amd64 - ;; - esac - case $DISTRO in - alpine) - installRemoteModule_distro=alpine - ;; - *) - installRemoteModule_distro=linux - ;; - esac - installRemoteModule_tmp2=$(php -r 'echo PHP_MAJOR_VERSION . PHP_MINOR_VERSION . (ZEND_THREAD_SAFE ? "-zts" : "");') - installRemoteModule_tmp="$(mktemp -p /tmp/src -d)" - cd "$installRemoteModule_tmp" - curl -sSLf --user-agent Docker https://blackfire.io/api/v1/releases/probe/php/$installRemoteModule_distro/$installRemoteModule_tmp1/$installRemoteModule_tmp2 | tar xz - mv blackfire-*.so $(getPHPExtensionsDir)/blackfire.so - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - installRemoteModule_ini_extra="$(printf '%sblackfire.agent_socket=tcp://blackfire:8307\n' "$installRemoteModule_ini_extra")" - ;; - cassandra) - installRemoteModule_src="$(getPackageSource https://github.com/nano-interactive/ext-cassandra/tarball/1cf12c5ce49ed43a2c449bee4b7b23ce02a37bf0)" - cd "$installRemoteModule_src/ext" - phpize - ./configure - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - ;; - cmark) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=1.1.0 - fi - fi - if ! test -e /usr/local/lib/libcmark.so && ! test -e /usr/local/lib64/libcmark.so && ! test -e /usr/lib/libcmark.so && ! test -e /usr/lib64/libcmark.so && ! test -e /lib/libcmark.so; then - if test $(compareVersions "$(cmake --version | head -n1 | sed -E 's/^.* //')" '3.7') -lt 0; then - installRemoteModule_tmp=0.29.0 - else - installRemoteModule_tmp=0.31.1 - fi - cd "$(getPackageSource https://github.com/commonmark/cmark/archive/$installRemoteModule_tmp.tar.gz)" - make -s -j$(getProcessorCount) cmake_build - make -s -j$(getProcessorCount) install - cd - >/dev/null - case "$DISTRO" in - alpine) - if test -e /usr/local/lib64/libcmark.so.$installRemoteModule_tmp && ! test -e /usr/local/lib/libcmark.so.$installRemoteModule_tmp; then - ln -s /usr/local/lib64/libcmark.so.$installRemoteModule_tmp /usr/local/lib/ - fi - ;; - *) - ldconfig || true - ;; - esac - fi - ;; - csv) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=0.3.1 - fi - fi - ;; - ddtrace) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=0.75.0 - fi - if test -z "$installRemoteModule_version"; then - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -le 312; then - # cc is not supported due to a memcmp related bug - installRemoteModule_version=1.1.0 - fi - ;; - esac - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 0.75.0) -ge 0; then - installCargo - fi - ;; - decimal) - case "$DISTRO" in - alpine) - if ! test -f /usr/local/lib/libmpdec.so; then - installLibMPDec - fi - ;; - debian) - if test $DISTRO_MAJMIN_VERSION -ge 1200; then - if test -z "$(ldconfig -p | grep -E '\slibmpdec.so\s')"; then - installLibMPDec - fi - fi - ;; - esac - ;; - ds) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 703; then - installRemoteModule_version=1.3.0 - elif test $PHP_MAJMIN_VERSION -lt 704; then - installRemoteModule_version=1.4.0 - fi - fi - ;; - ecma_intl) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=alpha - fi - ;; - ev) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 800; then - installRemoteModule_version=1.1.5 - fi - fi - ;; - event) - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 2.4.0) -ge 0; then - # Enable internal debugging in Event - addConfigureOption enable-event-debug no - # Enable sockets support in Event - if php --ri sockets >/dev/null 2>/dev/null; then - addConfigureOption enable-event-sockets yes - else - addConfigureOption enable-event-sockets no - fi - # libevent installation prefix - addConfigureOption with-event-libevent-dir /usr - # Include libevent's pthreads library and enable thread safety support in Event - addConfigureOption with-event-pthreads yes - # Include libevent protocol-specific functionality support including HTTP, DNS, and RPC - addConfigureOption with-event-extra yes - # Include libevent OpenSSL support - addConfigureOption with-event-openssl yes - # PHP Namespace for all Event classes - if test -n "${IPE_EVENT_NAMESPACE:-}"; then - addConfigureOption with-event-ns "$IPE_EVENT_NAMESPACE" - else - addConfigureOption with-event-ns no - fi - # openssl installation prefix - addConfigureOption with-openssl-dir yes - elif test $(compareVersions "$installRemoteModule_version" 1.7.6) -ge 0; then - # Enable internal debugging in Event - addConfigureOption enable-event-debug no - # Enable sockets support in Event - if php --ri sockets >/dev/null 2>/dev/null; then - addConfigureOption enable-event-sockets yes - else - addConfigureOption enable-event-sockets no - fi - # libevent installation prefix - addConfigureOption with-event-libevent-dir /usr - # Include libevent's pthreads library and enable thread safety support in Event - addConfigureOption with-event-pthreads yes - # Include libevent protocol-specific functionality support including HTTP, DNS, and RPC - addConfigureOption with-event-extra yes - # Include libevent OpenSSL support - addConfigureOption with-event-openssl yes - # openssl installation prefix - addConfigureOption with-openssl-dir no - elif test $(compareVersions "$installRemoteModule_version" 1.3.0) -ge 0; then - # Enable internal debugging in event - addConfigureOption enable-event-debug no - # libevent installation prefix - addConfigureOption with-event-libevent-dir /usr - # Include libevent's pthreads library and enable thread safety support in event - addConfigureOption with-event-pthreads yes - # Include libevent protocol-specific functionality support including HTTP, DNS, and RPC - addConfigureOption with-event-extra yes - # Include libevent OpenSSL support - addConfigureOption with-event-openssl yes - # openssl installation prefix - addConfigureOption with-openssl-dir no - fi - # event must be loaded after sockets - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - ;; - gearman) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.1.2 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=2.1.3 - fi - fi - case "$DISTRO" in - alpine) - if ! test -e /usr/local/include/libgearman/gearman.h || ! test -e /usr/local/lib/libgearman.so; then - installRemoteModule_src="$(getPackageSource https://github.com/gearman/gearmand/releases/download/1.1.21/gearmand-1.1.21.tar.gz)" - cd -- "$installRemoteModule_src" - ./configure - make -j$(getProcessorCount) install-binPROGRAMS - make -j$(getProcessorCount) install-nobase_includeHEADERS - cd - >/dev/null - fi - ;; - esac - ;; - geoip) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=beta - fi - ;; - geos) - if test -z "$installRemoteModule_path"; then - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=0def35611f773c951432f1f06a155471a5cb7611 - fi - installRemoteModule_src="$(getPackageSource https://git.osgeo.org/gitea/geos/php-geos/archive/$installRemoteModule_version.tar.gz)" - cd "$installRemoteModule_src" - ./autogen.sh - ./configure - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - fi - ;; - geospatial) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.2.1 - else - installRemoteModule_version=beta - fi - fi - ;; - gmagick) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.1.7RC3 - else - installRemoteModule_version=beta - fi - fi - ;; - grpc) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.33.1 - else - case "$DISTRO_VERSION" in - debian@8) - installRemoteModule_version=1.46.3 - ;; - alpine@3.7 | alpine@3.8 | debian@9) # With newer version: "This package requires GCC 7 or higher" - installRemoteModule_version=1.52.1 - ;; - esac - fi - fi - if test -z "$installRemoteModule_version" || test "$installRemoteModule_version" = 1.35.0; then - case "$DISTRO_VERSION" in - alpine@3.13) - installRemoteModule_cppflags='-Wno-maybe-uninitialized' - ;; - esac - fi - ;; - http) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.6.0 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=3.2.4 - fi - fi - if test $PHP_MAJMIN_VERSION -ge 700; then - if ! test -e /usr/local/lib/libidnkit.so; then - installRemoteModule_src="$(getPackageSource https://jprs.co.jp/idn/idnkit-2.3.tar.bz2)" - cd -- "$installRemoteModule_src" - CFLAGS=-Wno-incompatible-pointer-types ./configure - make -j$(getProcessorCount) install - cd - >/dev/null - fi - fi - # http must be loaded after raphf and propro - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - ;; - igbinary) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.0.8 - fi - fi - ;; - imap) - # Include Kerberos Support - addConfigureOption with-kerberos yes - # Include SSL Support - addConfigureOption with-imap-ssl yes - ;; - inotify) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.1.6 - fi - fi - ;; - ion) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=alpha - fi - if ! test -f /usr/local/lib/libionc.so || ! test -f /usr/local/include/ionc/ion.h; then - echo 'Installing ion-c... ' - installRemoteModule_src="$(mktemp -p /tmp/src -d)" - git clone -q -c advice.detachedHead=false --depth 1 --branch v1.1.3 https://github.com/amzn/ion-c.git "$installRemoteModule_src/ion" - ( - cd "$installRemoteModule_src/ion" - git submodule init -q - git submodule update -q - mkdir -p build - cd build - CFLAGS='-Wno-incompatible-pointer-types -Wno-stringop-overflow -Wno-discarded-qualifiers' cmake -DCMAKE_BUILD_TYPE=Release .. -Wno-dev - make clean - make -j$(getProcessorCount) install - ) - rm -rf "$installRemoteModule_src" - fi - addConfigureOption with-ion "shared,/usr/local" - ;; - ioncube_loader) - installIonCubeLoader - installRemoteModule_manuallyInstalled=1 - ;; - jsmin) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=2.0.1 - fi - fi - ;; - jsonpath) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 800; then - installRemoteModule_version=1.0.1 - fi - fi - ;; - luasandbox) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 702; then - installRemoteModule_version=3.0.3 - fi - fi - ;; - lz4) - if test -z "$installRemoteModule_path"; then - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=0.4.3 - fi - installRemoteModule_src="$(getPackageSource https://github.com/kjdev/php-ext-lz4/archive/refs/tags/$installRemoteModule_version.tar.gz)" - cd "$installRemoteModule_src" - phpize - ./configure --with-lz4-includedir=/usr - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - fi - ;; - lzf) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 702; then - installRemoteModule_version=1.6.8 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" '1.5.0') -ge 0; then - # Sacrifice speed in favour of compression ratio? - case "${IPE_LZF_BETTERCOMPRESSION:-}" in - 1 | y* | Y*) - addConfigureOption 'enable-lzf-better-compression' 'yes' - ;; - *) - addConfigureOption 'enable-lzf-better-compression' 'no' - ;; - esac - fi - ;; - mailparse) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.1.6 - elif test $PHP_MAJMIN_VERSION -le 702; then - installRemoteModule_version=3.1.3 - fi - fi - ;; - memcache) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.2.7 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=4.0.5.2 - fi - fi - ;; - memcached) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.2.0 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - # Set the path to libmemcached install prefix - addConfigureOption 'with-libmemcached-dir' 'no' - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" '3.0.0') -ge 0; then - # Set the path to ZLIB install prefix - addConfigureOption 'with-zlib-dir' 'no' - # Use system FastLZ library - addConfigureOption 'with-system-fastlz' 'no' - # Enable memcached igbinary serializer support - if php --ri igbinary >/dev/null 2>/dev/null; then - addConfigureOption 'enable-memcached-igbinary' 'yes' - else - addConfigureOption 'enable-memcached-igbinary' 'no' - fi - # Enable memcached msgpack serializer support - if php --ri msgpack >/dev/null 2>/dev/null; then - addConfigureOption 'enable-memcached-msgpack' 'yes' - else - addConfigureOption 'enable-memcached-msgpack' 'no' - fi - # Enable memcached json serializer support - addConfigureOption 'enable-memcached-json' 'yes' - # Enable memcached protocol support - addConfigureOption 'enable-memcached-protocol' 'no' # https://github.com/php-memcached-dev/php-memcached/issues/418#issuecomment-449587972 - # Enable memcached sasl support - addConfigureOption 'enable-memcached-sasl' 'yes' - # Enable memcached session handler support - addConfigureOption 'enable-memcached-session' 'yes' - fi - # memcached must be loaded after msgpack - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - ;; - memprof) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.0.0 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=2.1.0 - fi - fi - ;; - mongo) - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" '1.5.0') -ge 0; then - # Build with Cyrus SASL (MongoDB Enterprise Authentication) support? - addConfigureOption '-with-mongo-sasl' 'yes' - fi - ;; - mongodb) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 505; then - installRemoteModule_version=1.5.5 - elif test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.7.5 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=1.9.2 - elif test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=1.11.1 - elif test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=1.16.2 - elif test $PHP_MAJMIN_VERSION -le 800; then - installRemoteModule_version=1.20.1 - fi - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 1.17.0) -ge 0; then - # Enable developer flags? (yes/no) - addConfigureOption enable-mongodb-developer-flags no - # Enable code coverage? (yes/no) - addConfigureOption enable-mongodb-coverage no - # Use system libraries for libbson, libmongoc, and libmongocrypt? (yes/no) - addConfigureOption with-mongodb-system-libs no - # Enable client-side encryption? (auto/yes/no) - addConfigureOption with-mongodb-client-side-encryption yes - # Enable Snappy for compression? (auto/yes/no) - addConfigureOption with-mongodb-snappy yes - # Enable zlib for compression? (auto/system/bundled/no) - addConfigureOption with-mongodb-zlib yes - # Enable zstd for compression? (auto/yes/no) - addConfigureOption with-mongodb-zstd yes - # Enable SASL for Kerberos authentication? (auto/cyrus/no) - addConfigureOption with-mongodb-sasl yes - # Enable crypto and TLS? (auto/openssl/libressl/darwin/no) - addConfigureOption with-mongodb-ssl yes - # Use system crypto profile (OpenSSL only)? (yes/no) - addConfigureOption enable-mongodb-crypto-system-profile yes - # Use bundled or system utf8proc for SCRAM-SHA-256 SASLprep? (bundled/system) - addConfigureOption with-mongodb-utf8proc bundled - fi - ;; - mosquitto) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=beta - fi - ;; - msgpack) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.5.7 - fi - fi - ;; - newrelic) - installNewRelic - installRemoteModule_manuallyInstalled=2 - ;; - oauth) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.2.3 - fi - fi - ;; - oci8 | pdo_oci) - installOracleInstantClient - if test "$installRemoteModule_module" = oci8; then - addConfigureOption with-oci8 "instantclient,$ORACLE_INSTANTCLIENT_LIBPATH" - elif test "$installRemoteModule_module" = pdo_oci; then - addConfigureOption with-pdo-oci "instantclient,$ORACLE_INSTANTCLIENT_LIBPATH" - fi - ;; - opencensus) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=alpha - fi - ;; - openswoole) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 704; then - installRemoteModule_version=4.10.0 - elif test $PHP_MAJMIN_VERSION -lt 801; then - installRemoteModule_version=22.0.0 - elif test $PHP_MAJMIN_VERSION -lt 802; then - installRemoteModule_version=22.1.2 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if php --ri sockets >/dev/null 2>/dev/null; then - installRemoteModule_sockets=yes - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - else - installRemoteModule_sockets=no - fi - installRemoteModule_openssl=yes - if test -n "$installRemoteModule_version" && test $(compareVersions "$installRemoteModule_version" 22.1.2) -ge 0; then - # enable coroutine sockets? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 protocol? - addConfigureOption enable-http2 yes - # enable coroutine mysqlnd? - addConfigureOption enable-mysqlnd yes - # enable coroutine curl? - addConfigureOption enable-hook-curl yes - # enable coroutine postgres? - addConfigureOption with-postgres yes - elif test $(compareVersions "$installRemoteModule_version" 22.1.1) -ge 0; then - # enable c-ares support? - addConfigureOption enable-cares yes - # enable coroutine sockets? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 protocol? - addConfigureOption enable-http2 yes - # enable coroutine mysqlnd? - addConfigureOption enable-mysqlnd yes - # enable coroutine curl? - addConfigureOption enable-hook-curl yes - # enable coroutine postgres? - addConfigureOption with-postgres yes - elif test $(compareVersions "$installRemoteModule_version" 22.1.0) -ge 0; then - # enable coroutine sockets? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 protocol? - addConfigureOption enable-http2 yes - # enable coroutine mysqlnd? - addConfigureOption enable-mysqlnd yes - # enable coroutine curl? - addConfigureOption enable-hook-curl yes - # enable coroutine postgres? - addConfigureOption with-postgres yes - elif test $(compareVersions "$installRemoteModule_version" 22.0.0) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable hook curl support? - addConfigureOption enable-hook-curl yes - # enable postgres support? - addConfigureOption with-postgres yes - elif test $(compareVersions "$installRemoteModule_version" 4.8.0) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable json support? - addConfigureOption enable-swoole-json yes - # enable curl support? - addConfigureOption enable-swoole-curl yes - # enable postgres support? - addConfigureOption with-postgres yes - else - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable json support? - addConfigureOption enable-swoole-json yes - # enable curl support? - addConfigureOption enable-swoole-curl yes - fi - ;; - operator) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=beta - fi - ;; - parallel) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=0.8.3 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=1.1.4 - fi - fi - ;; - parle) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 704; then - installRemoteModule_version=0.8.3 - else - installRemoteModule_version=beta - fi - fi - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 0.8.4) -ge 0; then - # Enable internal UTF-32 support in parle - addConfigureOption enable-parle-utf32 yes - fi - ;; - pcov) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=0.9.0 - fi - fi - ;; - phalcon) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMINPAT_VERSION -lt 70401; then - installRemoteModule_version=4.1.2 - elif test $PHP_MAJMIN_VERSION -lt 800; then - installRemoteModule_version=5.4.0 - fi - fi - installRemoteModule_cppflags='-Wno-incompatible-pointer-types' - ;; - php_trie) - if ! test -f /usr/local/include/hat-trie/include/tsl/htrie_map.h; then - installRemoteModule_src="$(getPackageSource https://codeload.github.com/Tessil/hat-trie/tar.gz/v0.6.0)" - mkdir -p /usr/local/include/hat-trie - mv "$installRemoteModule_src/include" /usr/local/include/hat-trie - fi - ;; - pq) - # pq must be loaded after raphf - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - ;; - propro) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.0.2 - fi - fi - ;; - protobuf) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=3.12.4 - elif test $PHP_MAJMIN_VERSION -lt 800; then - installRemoteModule_version=3.24.4 - elif test $PHP_MAJMIN_VERSION -lt 801; then - installRemoteModule_version=3.25.3 - fi - fi - ;; - psr) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 506; then - installRemoteModule_version=0.5.1 - elif test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=0.6.1 - elif test $PHP_MAJMIN_VERSION -lt 703; then - installRemoteModule_version=1.1.0 - fi - fi - ;; - pthreads) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.0.10 - fi - fi - ;; - raphf) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.1.2 - fi - fi - ;; - rdkafka) - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version"; then - installRemoteModule_version1='' - if test $PHP_MAJMIN_VERSION -le 505; then - installRemoteModule_version1=3.0.5 - elif test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version1=4.1.2 - fi - installRemoteModule_version2='' - case "$DISTRO" in - alpine) - installRemoteModule_tmp='librdkafka' - ;; - debian) - installRemoteModule_tmp='librdkafka*' - ;; - *) - installRemoteModule_tmp='' - ;; - esac - if test -n "$installRemoteModule_tmp"; then - installRemoteModule_tmp="$(getInstalledPackageVersion "$installRemoteModule_tmp")" - if test -n "$installRemoteModule_tmp" && test $(compareVersions "$installRemoteModule_tmp" '0.11.0') -lt 0; then - installRemoteModule_version2=3.1.3 - fi - fi - if test -z "$installRemoteModule_version1" || test -z "$installRemoteModule_version2"; then - installRemoteModule_version="$installRemoteModule_version1$installRemoteModule_version2" - elif test $(compareVersions "$installRemoteModule_version1" "$installRemoteModule_version2") -le 0; then - installRemoteModule_version="$installRemoteModule_version1" - else - installRemoteModule_version="$installRemoteModule_version2" - fi - fi - ;; - redis) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=4.3.0 - elif test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=5.3.7 - elif test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=6.0.2 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - # Enable igbinary serializer support? - if php --ri igbinary >/dev/null 2>/dev/null; then - addConfigureOption enable-redis-igbinary yes - else - addConfigureOption enable-redis-igbinary no - fi - # Enable lzf compression support? - addConfigureOption enable-redis-lzf yes - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 5.0.0) -ge 0; then - if ! test -e /usr/include/zstd.h || ! test -e /usr/lib/libzstd.so -o -e "/usr/lib/$TARGET_TRIPLET/libzstd.so"; then - installRemoteModule_zstdVersion=1.4.4 - installRemoteModule_zstdVersionMajor=$(echo $installRemoteModule_zstdVersion | cut -d. -f1) - rm -rf /tmp/src/zstd - mv "$(getPackageSource https://github.com/facebook/zstd/releases/download/v$installRemoteModule_zstdVersion/zstd-$installRemoteModule_zstdVersion.tar.gz)" /tmp/src/zstd - cd /tmp/src/zstd - make V=0 -j$(getProcessorCount) lib - cp -f lib/libzstd.so "/usr/lib/$TARGET_TRIPLET/libzstd.so.$installRemoteModule_zstdVersion" - ln -sf "/usr/lib/$TARGET_TRIPLET/libzstd.so.$installRemoteModule_zstdVersion" "/usr/lib/$TARGET_TRIPLET/libzstd.so.$installRemoteModule_zstdVersionMajor" - ln -sf "/usr/lib/$TARGET_TRIPLET/libzstd.so.$installRemoteModule_zstdVersion" "/usr/lib/$TARGET_TRIPLET/libzstd.so" - ln -sf /tmp/src/zstd/lib/zstd.h /usr/include/zstd.h - UNNEEDED_PACKAGE_LINKS="$UNNEEDED_PACKAGE_LINKS /usr/include/zstd.h" - cd - >/dev/null - fi - # Enable zstd compression support? - addConfigureOption enable-redis-zstd yes - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 6.0.0) -ge 0; then - # Enable msgpack serializer support? - if php --ri msgpack >/dev/null 2>/dev/null; then - addConfigureOption enable-redis-msgpack yes - else - addConfigureOption enable-redis-msgpack no - fi - # Enable lz4 compression? - addConfigureOption enable-redis-lz4 yes - # Use system liblz4? - addConfigureOption with-liblz4 yes - fi - fi - ;; - relay) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version="$(curl -sSLf https://builds.r2.relay.so/meta/latest)" - installRemoteModule_version="${installRemoteModule_version#v}" - fi - case $(uname -m) in - aarch64 | arm64 | armv8) - installRemoteModule_hardware=aarch64 - ;; - *) - installRemoteModule_hardware=x86-64 - ;; - esac - installRemoteModule_distro="$DISTRO" - installRemoteModule_flags='' - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -lt 317; then - installRemoteModule_distro=alpine3.9 - else - installRemoteModule_distro=alpine3.17 - fi - ;; - debian) - case "$(dpkg -l 'libssl*' | grep -E '^ii ' | cut -d' ' -f3)" in - libssl3*) - installRemoteModule_flags=+libssl3 - ;; - esac - ;; - esac - # See https://relay.so/builds - installRemoteModule_url="https://builds.r2.relay.so/v${installRemoteModule_version}/relay-v${installRemoteModule_version}-php${PHP_MAJDOTMIN_VERSION}-${installRemoteModule_distro}-${installRemoteModule_hardware}${installRemoteModule_flags}.tar.gz" - printf 'Downloading relay v%s (%s) from %s... ' "$installRemoteModule_version" "$installRemoteModule_hardware" "$installRemoteModule_url" - installRemoteModule_src="$(getPackageSource $installRemoteModule_url)" - echo 'done.' - cp -- "$installRemoteModule_src/relay-pkg.so" "$PHP_EXTDIR/relay.so" - sed -i "s/00000000-0000-0000-0000-000000000000/$(cat /proc/sys/kernel/random/uuid)/" "$PHP_EXTDIR/relay.so" - installRemoteModule_ini_extra="$(grep -vE '^[ \t]*extension[ \t]*=' $installRemoteModule_src/relay.ini)" - installRemoteModule_manuallyInstalled=1 - ;; - saxon) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -ge 800; then - installRemoteModule_version='12.4.2' - else - installRemoteModule_version='12.3' - fi - fi - installRemoteModule_majorVersion="${installRemoteModule_version%%.*}" - if test "$installRemoteModule_majorVersion" -ge 12; then - case $(uname -m) in - aarch64 | arm64 | armv8) - installRemoteModule_url=https://downloads.saxonica.com/SaxonC/EE/${installRemoteModule_majorVersion}/libsaxon-EEC-linux-aarch64-v${installRemoteModule_version}.zip - ;; - *) - installRemoteModule_url=https://downloads.saxonica.com/SaxonC/EE/${installRemoteModule_majorVersion}/libsaxon-EEC-linux-x86_64-v${installRemoteModule_version}.zip - ;; - esac - else - installRemoteModule_url=https://downloads.saxonica.com/SaxonC/EE/${installRemoteModule_majorVersion}/libsaxon-EEC-setup64-v${installRemoteModule_version}.zip - fi - installRemoteModule_dir="$(getPackageSource $installRemoteModule_url)" - if ! test -f /usr/lib/libsaxon-*.so; then - if test "$installRemoteModule_majorVersion" -ge 12; then - cp $installRemoteModule_dir/libs/nix/*.so /usr/lib/ - else - cp $installRemoteModule_dir/*.so /usr/lib/ - fi - ldconfig || true - fi - cd "$installRemoteModule_dir/Saxon.C.API" - phpize - ./configure --enable-saxon - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - ;; - seasclick) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.1.0 - fi - fi - ;; - seaslog) - installRemoteModule_cppflags='-Wno-incompatible-pointer-types' - ;; - smbclient) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.1.1 - elif test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=1.1.2 - fi - fi - ;; - snappy) - if test -z "$installRemoteModule_path"; then - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=0.2.1 - fi - installRemoteModule_src="$(getPackageSource https://github.com/kjdev/php-ext-snappy/archive/refs/tags/$installRemoteModule_version.tar.gz)" - cd "$installRemoteModule_src" - phpize - ./configure --with-snappy-includedir=/usr - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - fi - ;; - snuffleupagus) - if test -z "$installRemoteModule_path"; then - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 800; then - installRemoteModule_version=0.9.0 - elif test $PHP_MAJMIN_VERSION -le 801; then - installRemoteModule_version=0.10.0 - else - installRemoteModule_version=0.11.0 - fi - fi - installRemoteModule_src="$(getPackageSource https://codeload.github.com/jvoisin/snuffleupagus/tar.gz/v$installRemoteModule_version)" - cd "$installRemoteModule_src/src" - phpize - ./configure --enable-snuffleupagus - make -j$(getProcessorCount) install - cd - >/dev/null - cp -a "$installRemoteModule_src/config/default.rules" "$PHP_INI_DIR/conf.d/snuffleupagus.rules" - if test $(compareVersions "$installRemoteModule_version" 0.8.0) -ge 0; then - printf '\n# Disable "PHP version is not officially maintained anymore" message\nsp.global.show_old_php_warning.disable();\n' >>"$PHP_INI_DIR/conf.d/snuffleupagus.rules" - fi - else - if test -f "$installRemoteModule_path/config/default.rules"; then - cp -a "$installRemoteModule_path/config/default.rules" "$PHP_INI_DIR/conf.d/snuffleupagus.rules" - fi - fi - installRemoteModule_ini_extra="$(printf '%ssp.configuration_file=%s\n' "$installRemoteModule_ini_extra" "$PHP_INI_DIR/conf.d/snuffleupagus.rules")" - installRemoteModule_manuallyInstalled=1 - ;; - sodium | libsodium) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=1.0.7 - fi - fi - ;; - solr) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=2.4.0 - elif test $PHP_MAJMIN_VERSION -lt 704; then - installRemoteModule_version=2.6.0 - fi - fi - ;; - sourceguardian) - installSourceGuardian - installRemoteModule_manuallyInstalled=1 - ;; - spx) - if test -z "$installRemoteModule_path"; then - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=v0.4.18 - fi - if test "${installRemoteModule_version%.*}" = "$installRemoteModule_version"; then - installRemoteModule_displayVersion="$installRemoteModule_version" - else - installRemoteModule_displayVersion="git--master-$installRemoteModule_version" - fi - installRemoteModule_src="$(getPackageSource https://codeload.github.com/NoiseByNorthwest/php-spx/tar.gz/$installRemoteModule_version)" - cd -- "$installRemoteModule_src" - phpize - ./configure - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - fi - ;; - sqlsrv | pdo_sqlsrv) - isMicrosoftSqlServerODBCInstalled || installMicrosoftSqlServerODBC - if test -z "$installRemoteModule_version"; then - # https://docs.microsoft.com/it-it/sql/connect/php/system-requirements-for-the-php-sql-driver?view=sql-server-2017 - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=3.0.1 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=5.3.0 - elif test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=5.6.1 - elif test $PHP_MAJMIN_VERSION -le 702; then - installRemoteModule_version=5.8.1 - elif test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=5.9.0 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=5.10.1 - elif test $PHP_MAJMIN_VERSION -le 800; then - installRemoteModule_version=5.11.1 - fi - fi - ;; - ssh2) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.13 - fi - fi - ;; - stomp) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.0.9 - fi - fi - if test "$DISTRO" = debian; then - addConfigureOption with-openssl-dir yes - else - addConfigureOption with-openssl-dir /usr - fi - ;; - swoole) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 502; then - installRemoteModule_version=1.6.10 - elif test $PHP_MAJMIN_VERSION -le 504; then - installRemoteModule_version=2.0.4 - elif test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.0.11 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=4.3.6 - elif test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=4.5.10 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=4.8.11 - elif test $PHP_BITS -eq 32; then - # See https://github.com/swoole/swoole-src/issues/5198#issuecomment-1820162178 - installRemoteModule_version="$(resolvePHPModuleVersion "$installRemoteModule_module" '^5.0')" - else - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -le 312; then - installRemoteModule_version=5.1.2 - fi - ;; - esac - fi - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 800; then - installRemoteModule_version=5.1.3 - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" stable)" - fi - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if php --ri sockets >/dev/null 2>/dev/null; then - installRemoteModule_sockets=yes - else - installRemoteModule_sockets=no - fi - installRemoteModule_openssl=yes - case "$DISTRO_VERSION" in - alpine@3.7 | alpine@3.8) - if test $(compareVersions "$installRemoteModule_version" 4.6.0) -lt 0; then - # see https://github.com/swoole/swoole-src/issues/3934 - installRemoteModule_openssl=no - fi - ;; - esac - if test $PHP_THREADSAFE -eq 1; then - installRemoteModule_zts=yes - else - installRemoteModule_zts=no - fi - installRemoteModule_sqlite=yes - installRemoteModule_iouring=no - installRemoteModule_curl=yes - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -lt 317; then - # we need sqlite3 >= 3.7.7 - installRemoteModule_sqlite=no - fi - case "${IPE_SWOOLE_WITHOUT_IOURING:-}" in - 1 | y* | Y*) ;; - *) - # iouring support in swoole 6 requires liburing 2.5+: available since Alpine 3.19 - # but with Alpine 3.19 we have a "invalid use of incomplete type 'const struct statx'" error - if test $DISTRO_MAJMIN_VERSION -ge 320; then - installRemoteModule_iouring=yes - fi - ;; - esac - ;; - debian) - if test $PHP_MAJMIN_VERSION -ge 800; then - # see https://github.com/swoole/swoole-src/issues/5365 - installRemoteModule_curl=no - fi - if test $DISTRO_MAJMIN_VERSION -lt 1200; then - # we need sqlite3 >= 3.7.7 - installRemoteModule_sqlite=no - fi - case "${IPE_SWOOLE_WITHOUT_IOURING:-}" in - 1 | y* | Y*) ;; - *) - if test $DISTRO_VERSION_NUMBER -ge 13; then - # iouring support in swoole 6 requires liburing 2.5+: available since Debian Trixie (13) - installRemoteModule_iouring=yes - fi - ;; - esac - ;; - esac - installRemoteModule_zstd=yes - case "$DISTRO" in - debian) - if test $DISTRO_VERSION_NUMBER -lt 11; then - # swoole 6 requires libzstd >= 1.4.0, but on debian 10 (buster) we have 1.3.8 - installRemoteModule_zstd=no - fi - ;; - esac - if test $(compareVersions "$installRemoteModule_version" 6.0.0) -ge 0; then - # enable sockets support? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - # enable cares support? - addConfigureOption enable-cares yes - # enable brotli support? - addConfigureOption enable-brotli yes - # enable zstd support? - addConfigureOption enable-zstd $installRemoteModule_zstd - # enable PostgreSQL database support? - addConfigureOption enable-swoole-pgsql yes - # enable ODBC database support? - addConfigureOption with-swoole-odbc no - # enable Oracle database support? - addConfigureOption with-swoole-oracle no - # enable Sqlite database support? - addConfigureOption enable-swoole-sqlite $installRemoteModule_sqlite - # enable swoole thread support (need php zts support)? - addConfigureOption enable-swoole-thread $installRemoteModule_zts - # enable iouring for file async support? - addConfigureOption enable-iouring $installRemoteModule_iouring - elif test $(compareVersions "$installRemoteModule_version" 5.1.0) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - # enable cares support? - addConfigureOption enable-cares yes - # enable brotli support? - addConfigureOption enable-brotli yes - # enable PostgreSQL database support? - addConfigureOption enable-swoole-pgsql yes - # enable ODBC database support? - addConfigureOption with-swoole-odbc no - # enable Oracle database support? - addConfigureOption with-swoole-oracle no - # enable Sqlite database support? - addConfigureOption enable-swoole-sqlite $installRemoteModule_sqlite - elif test $(compareVersions "$installRemoteModule_version" 5.0.1) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - # enable cares support? - addConfigureOption enable-cares yes - # enable brotli support? - addConfigureOption enable-brotli yes - elif test $(compareVersions "$installRemoteModule_version" 5.0.0) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - # enable cares support? - addConfigureOption enable-cares yes - elif test $(compareVersions "$installRemoteModule_version" 4.8.11) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable json support? - addConfigureOption enable-swoole-json yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - # enable cares support? - addConfigureOption enable-cares yes - elif test $(compareVersions "$installRemoteModule_version" 4.6.1) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable json support? - addConfigureOption enable-swoole-json yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - elif test $(compareVersions "$installRemoteModule_version" 4.4.0) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - elif test $(compareVersions "$installRemoteModule_version" 4.2.11) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable postgresql coroutine client support? - addConfigureOption enable-coroutine-postgresql yes - elif test $(compareVersions "$installRemoteModule_version" 4.2.7) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable postgresql coroutine client support? - addConfigureOption enable-coroutine-postgresql yes - # enable kernel debug/trace log? (it will degrade performance) - addConfigureOption enable-debug-log no - elif test $(compareVersions "$installRemoteModule_version" 4.2.6) -ge 0; then - # enable debug/trace log support? - addConfigureOption enable-debug-log no - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable postgresql coroutine client support? - addConfigureOption enable-coroutine-postgresql yes - elif test $(compareVersions "$installRemoteModule_version" 4.2.0) -ge 0; then - # enable debug/trace log support? - addConfigureOption enable-debug-log no - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable async-redis support? - addConfigureOption enable-async-redis yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable postgresql coroutine client support? - addConfigureOption enable-coroutine-postgresql yes - elif test $(compareVersions "$installRemoteModule_version" 2.1.2) -ge 0; then - # enable debug/trace log support? - addConfigureOption enable-swoole-debug no - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable async-redis support? - addConfigureOption enable-async-redis yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable postgresql coroutine client support? - addConfigureOption enable-coroutine-postgresql yes - elif test $(compareVersions "$installRemoteModule_version" 1.10.4) -ge 0 && test $(compareVersions "$installRemoteModule_version" 1.10.5) -le 0; then - # enable debug/trace log support? - addConfigureOption enable-swoole-debug no - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable async-redis support? - addConfigureOption enable-async-redis yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - fi - ;; - tdlib) - if ! test -f /usr/lib/libphpcpp.so || ! test -f /usr/include/phpcpp.h; then - if test $PHP_MAJMIN_VERSION -le 701; then - cd "$(getPackageSource https://codeload.github.com/CopernicaMarketingSoftware/PHP-CPP/tar.gz/v2.1.4)" - elif test $PHP_MAJMIN_VERSION -le 703; then - cd "$(getPackageSource https://codeload.github.com/CopernicaMarketingSoftware/PHP-CPP/tar.gz/v2.2.0)" - else - cd "$(getPackageSource https://codeload.github.com/CopernicaMarketingSoftware/PHP-CPP/tar.gz/444d1f90cf6b7f3cb5178fa0d0b5ab441b0389d0)" - fi - make -j$(getProcessorCount) - make install - cd - >/dev/null - fi - if test -z "$installRemoteModule_path"; then - installRemoteModule_tmp="$(mktemp -p /tmp/src -d)" - git clone --depth=1 --recurse-submodules https://github.com/yaroslavche/phptdlib.git "$installRemoteModule_tmp" - mkdir "$installRemoteModule_tmp/build" - cd "$installRemoteModule_tmp/build" - cmake -D USE_SHARED_PHPCPP:BOOL=ON .. - make - make install - cd - >/dev/null - rm "$PHP_INI_DIR/conf.d/tdlib.ini" - installRemoteModule_manuallyInstalled=1 - fi - ;; - tensor) - installRemoteModule_cppflags='-Wno-incompatible-pointer-types' - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=2.2.3 - fi - fi - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -ge 315 && test $DISTRO_MAJMIN_VERSION -le 317; then - if test -e /usr/lib/liblapacke.so.3 && ! test -e /usr/lib/liblapacke.so; then - ln -s /usr/lib/liblapacke.so.3 /usr/lib/liblapacke.so - fi - fi - ;; - esac - ;; - tideways) - case "$DISTRO" in - alpine) - case $(uname -m) in - aarch64 | arm64 | armv8) - installRemoteModule_architecture=alpine-arm64 - ;; - *) - installRemoteModule_architecture=alpine-x86_64 - ;; - esac - ;; - debian) - case $(uname -m) in - aarch64 | arm64 | armv8) - installRemoteModule_architecture=arm64 - ;; - *) - installRemoteModule_architecture=x86_64 - ;; - esac - ;; - esac - installRemoteModule_url="$(curl -sSLf -o - https://tideways.com/profiler/downloads | grep -Eo "\"[^\"]+/tideways-php-([0-9]+\.[0-9]+\.[0-9]+)-$installRemoteModule_architecture.tar.gz\"" | cut -d'"' -f2)" - if test -z "$installRemoteModule_url"; then - echo 'Failed to find the tideways tarball to be downloaded' - exit 1 - fi - printf 'Downloading tideways from %s\n' "$installRemoteModule_url" - installRemoteModule_src="$(getPackageSource $installRemoteModule_url)" - if test -d "$installRemoteModule_src/dist"; then - installRemoteModule_src="$installRemoteModule_src/dist" - fi - installRemoteModule_src="$installRemoteModule_src/tideways-php" - case "$DISTRO" in - alpine) - installRemoteModule_src="$installRemoteModule_src-alpine" - ;; - esac - installRemoteModule_src="$installRemoteModule_src-$PHP_MAJDOTMIN_VERSION" - if test $PHP_THREADSAFE -eq 1; then - installRemoteModule_src="$installRemoteModule_src-zts" - fi - installRemoteModule_src="$installRemoteModule_src.so" - if ! test -f "$installRemoteModule_src"; then - echo 'tideways does not support the current environment' >&2 - exit 1 - fi - mv "$installRemoteModule_src" $(getPHPExtensionsDir)/tideways.so - installRemoteModule_manuallyInstalled=1 - ;; - uopz) - installRemoteModule_cppflags='-Wno-incompatible-pointer-types' - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.0.7 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=5.0.2 - elif test $PHP_MAJMIN_VERSION -le 740; then - installRemoteModule_version=6.1.2 - fi - fi - ;; - uploadprogress) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=1.1.4 - fi - fi - ;; - uuid) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.0.5 - fi - fi - ;; - uv) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 800; then - installRemoteModule_version=0.2.4 - else - installRemoteModule_version=beta - fi - fi - ;; - vld) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=0.14.0 - else - installRemoteModule_version=beta - fi - fi - ;; - wikidiff2) - case "$DISTRO" in - alpine) - if ! isLibDatrieInstalled; then - installLibDatrie - fi - if ! isLibThaiInstalled; then - installLibThai - fi - ;; - esac - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 702; then - installRemoteModule_version=1.13.0 - else - installRemoteModule_version="$(git -c versionsort.suffix=- ls-remote --tags --refs --quiet --exit-code --sort=version:refname https://github.com/wikimedia/mediawiki-php-wikidiff2.git 'refs/tags/*.*.*' | tail -1 | cut -d/ -f3)" - fi - fi - installRemoteModule_src="$(getPackageSource "https://codeload.github.com/wikimedia/mediawiki-php-wikidiff2/tar.gz/refs/tags/$installRemoteModule_version")" - cd -- "$installRemoteModule_src" - phpize - ./configure - make -j$(getProcessorCount) - make install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - ;; - xdebug) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 500; then - installRemoteModule_version=2.0.5 - elif test $PHP_MAJMIN_VERSION -le 503; then - installRemoteModule_version=2.2.7 - elif test $PHP_MAJMIN_VERSION -le 504; then - installRemoteModule_version=2.4.1 - elif test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.5.5 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=2.6.1 - elif test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=2.9.8 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=3.1.6 - fi - fi - ;; - xdiff) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.5.2 - fi - fi - if ! test -f /usr/local/lib/libxdiff.* && ! test -f /usr/lib/libxdiff.* && ! test -f /usr/lib/x86_64*/libxdiff.*; then - installRemoteModule_src="$(getPackageSource https://raw.githubusercontent.com/mlocati/docker-php-extension-installer/assets/resources/libxdiff-0.23.tar.gz)" - cd -- "$installRemoteModule_src" - ./configure --disable-shared --disable-dependency-tracking --with-pic - make -j$(getProcessorCount) - make install - cd - >/dev/null - fi - ;; - xhprof) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.9.4 - fi - fi - ;; - xlswriter) - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 1.2.7) -ge 0; then - # enable reader supports? - addConfigureOption enable-reader yes - fi - ;; - xmldiff) - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version"; then - case "$DISTRO_VERSION" in - debian@8) - # The gcc version of Debian Jessie is too old => error: 'nullptr' was not declared in this scope - installRemoteModule_version=1.1.4 - ;; - esac - fi - ;; - xmlrpc) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=beta - fi - ;; - yac) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.9.2 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 2.2.0) -ge 0; then - # Enable igbinary serializer support - if php --ri igbinary >/dev/null 2>/dev/null; then - addConfigureOption enable-igbinary yes - else - addConfigureOption enable-igbinary no - fi - # Enable json serializer support - if php --ri json >/dev/null 2>/dev/null; then - addConfigureOption enable-json yes - else - addConfigureOption enable-json no - fi - # Enable msgpack serializer support - if php --ri msgpack >/dev/null 2>/dev/null; then - addConfigureOption enable-msgpack yes - else - addConfigureOption enable-msgpack no - fi - fi - ;; - yaml) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.3.1 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=2.0.4 - fi - fi - ;; - yar) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.2.5 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 1.2.4) -ge 0; then - # Enable Msgpack Supports - if php --ri msgpack >/dev/null 2>/dev/null; then - addConfigureOption enable-msgpack yes - else - addConfigureOption enable-msgpack no - fi - fi - ;; - zmq) - if test -z "$installRemoteModule_version"; then - installRemoteModule_src="$(getPackageSource https://github.com/zeromq/php-zmq/tarball/master)" - cd "$installRemoteModule_src" - phpize - ./configure - make -j$(getProcessorCount) - make install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - fi - ;; - zookeeper) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.5.0 - fi - fi - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - case "$DISTRO" in - alpine) - if ! test -f /usr/local/include/zookeeper/zookeeper.h; then - if test $(compareVersions "$installRemoteModule_version" 1.0.0) -lt 0; then - installRemoteModule_src="$(getPackageSource http://archive.apache.org/dist/zookeeper/zookeeper-3.5.9/apache-zookeeper-3.5.9.tar.gz)" - else - installRemoteModule_tmp="$(curl -sSLf https://downloads.apache.org/zookeeper/stable | sed -E 's/["<>]/\n/g' | grep -E '^(apache-)?zookeeper-[0-9]+\.[0-9]+\.[0-9]+\.(tar\.gz|tgz)$' | head -n1)" - if test -z "$installRemoteModule_tmp"; then - echo 'Failed to detect the zookeeper library URL' >&2 - exit 1 - fi - installRemoteModule_src="$(getPackageSource https://downloads.apache.org/zookeeper/stable/$installRemoteModule_tmp)" - fi - cd -- "$installRemoteModule_src" - if test -d ~/.m2; then - installRemoteModule_delm2=n - else - installRemoteModule_delm2=y - fi - mvn -pl zookeeper-jute compile - cd - >/dev/null - cd -- "$installRemoteModule_src/zookeeper-client/zookeeper-client-c" - autoreconf -if - ./configure --without-cppunit - make -j$(getProcessorCount) CFLAGS='-Wno-stringop-truncation -Wno-format-overflow' - make install - cd - >/dev/null - if test $installRemoteModule_delm2 = y; then - rm -rf ~/.m2 - fi - fi - ;; - esac - ;; - zstd) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.11.0 - fi - fi - ;; - esac - if test $installRemoteModule_manuallyInstalled -eq 0; then - if test -n "$installRemoteModule_path"; then - printf ' (installing version %s from %s)\n' "$installRemoteModule_version" "$installRemoteModule_path" - elif test -n "$installRemoteModule_version"; then - printf ' (installing version %s)\n' "$installRemoteModule_version" - fi - installPeclPackage "$installRemoteModule_module" "$installRemoteModule_version" "$installRemoteModule_cppflags" "$installRemoteModule_path" - fi - postProcessModule "$installRemoteModule_module" - if test $installRemoteModule_manuallyInstalled -lt 2; then - case "${IPE_SKIP_CHECK:-}" in - 1 | y* | Y*) ;; - *) - checkModuleWorking "$installRemoteModule_module" "$installRemoteModule_ini_basename" "$installRemoteModule_ini_extra" - ;; - esac - enablePhpExtension "$installRemoteModule_module" "$installRemoteModule_ini_basename" "$installRemoteModule_ini_extra" - fi -} - -# Check if a module/helper may be installed using the pecl archive -# -# Arguments: -# $1: the name of the module -# -# Return: -# 0: true -# 1: false -moduleMayUsePecl() { - case "$1" in - @composer | @fix_letsencrypt) - return 1 - ;; - blackfire | geos | ioncube_loader | snuffleupagus | sourceguardian | spx | tdlib | tideways) - return 1 - ;; - esac - if test -n "$(getModuleSourceCodePath "$1")"; then - return 1 - fi - if stringInList "$1" "$BUNDLED_MODULES"; then - return 1 - fi - return 0 -} - -# Configure the PECL package installer -# -# Updates: -# PHP_MODULES_TO_INSTALL -# Sets: -# USE_PICKLE 0: no, 1: yes (already downloaded), 2: yes (build it from source) -configureInstaller() { - USE_PICKLE=0 - if ! which pecl >/dev/null; then - for PHP_MODULE_TO_INSTALL in $PHP_MODULES_TO_INSTALL; do - if ! moduleMayUsePecl "$PHP_MODULE_TO_INSTALL"; then - continue - fi - if false && anyStringInList '' "$PHP_MODULES_TO_INSTALL"; then - USE_PICKLE=2 - else - curl -sSLf https://github.com/FriendsOfPHP/pickle/releases/latest/download/pickle.phar -o /tmp/pickle - chmod +x /tmp/pickle - USE_PICKLE=1 - fi - break - done - fi - if test $USE_PICKLE -eq 0; then - if test -z "$(pear config-get http_proxy)"; then - if test -n "${http_proxy:-}"; then - pear config-set http_proxy "$http_proxy" || true - elif test -n "${HTTP_PROXY:-}"; then - pear config-set http_proxy "$HTTP_PROXY" || true - fi - fi - pecl channel-update pecl.php.net || true - fi -} - -buildPickle() { - printf '### BUILDING PICKLE ###\n' - buildPickle_tempDir="$(mktemp -p /tmp/src -d)" - cd -- "$buildPickle_tempDir" - printf 'Downloading... ' - git clone --quiet --depth 1 https://github.com/FriendsOfPHP/pickle.git . - git tag 0.7.0 - printf 'done.\n' - printf 'Installing composer... ' - actuallyInstallComposer . composer '--1 --quiet' - printf 'done.\n' - printf 'Installing composer dependencies... ' - ./composer install --no-dev --no-progress --no-suggest --optimize-autoloader --ignore-platform-reqs --quiet --no-cache - printf 'done.\n' - printf 'Building... ' - php -d phar.readonly=0 box.phar build - mv pickle.phar /tmp/pickle - printf 'done.\n' - cd - >/dev/null -} - -# Add a configure option for the pecl/pickle install command -# -# Arguments: -# $1: the option name -# $2: the option value -addConfigureOption() { - if test $USE_PICKLE -eq 0; then - printf -- '%s\n' "$2" >>"$CONFIGURE_FILE" - else - printf -- '--%s=%s\n' "$1" "$2" >>"$CONFIGURE_FILE" - fi -} - -# Actually installs a PECL package -# -# Arguments: -# $1: the package to be installed -# $2: the package version to be installed (optional) -# $3: the value of the CPPFLAGS variable (optional) -# $4: the path of the local package to be installed (optional, downloaded from PECL if omitted/empty) -installPeclPackage() { - if ! test -f "$CONFIGURE_FILE"; then - printf '\n' >"$CONFIGURE_FILE" - fi - installPeclPackage_name="$(getPeclModuleName "$1")" - if test -z "${2:-}"; then - installPeclPackage_fullname="$installPeclPackage_name" - else - installPeclPackage_fullname="$installPeclPackage_name-$2" - fi - installPeclPackage_path="${4:-}" - if test -z "$installPeclPackage_path"; then - installPeclPackage_path="$installPeclPackage_fullname" - fi - if test $USE_PICKLE -eq 0; then - if test -n "${4:-}"; then - if test -f "$installPeclPackage_path/package2.xml"; then - installPeclPackage_path="$installPeclPackage_path/package2.xml" - else - installPeclPackage_path="$installPeclPackage_path/package.xml" - fi - fi - cat "$CONFIGURE_FILE" | MAKE="make -j$(getCompilationProcessorCount $1)" CPPFLAGS="${3:-}" pecl install "$installPeclPackage_path" - else - MAKEFLAGS="-j$(getCompilationProcessorCount $1)" CPPFLAGS="${3:-}" /tmp/pickle install --tmp-dir=/tmp/pickle.tmp --no-interaction --version-override='' --with-configure-options "$CONFIGURE_FILE" -- "$installPeclPackage_path" - fi -} - -# Check if a string is in a list of space-separated string -# -# Arguments: -# $1: the string to be checked -# $2: the string list -# -# Return: -# 0 (true): if the string is in the list -# 1 (false): if the string is not in the list -stringInList() { - for stringInList_listItem in $2; do - if test "$1" = "$stringInList_listItem"; then - return 0 - fi - done - return 1 -} - -# Check if at least one item in a list is in another list -# -# Arguments: -# $1: the space-separated list of items to be searched -# $2: the space-separated list of reference items -# -# Return: -# 0 (true): at least one of the items in $1 is in $2 -# 1 (false): otherwise -anyStringInList() { - for anyStringInList_item in $1; do - if stringInList "$anyStringInList_item" "$2"; then - return 0 - fi - done - return 1 -} - -# Remove a word from a space-separated list -# -# Arguments: -# $1: the word to be removed -# $2: the string list -# -# Output: -# The list without the word -removeStringFromList() { - removeStringFromList_result='' - for removeStringFromList_listItem in $2; do - if test "$1" != "$removeStringFromList_listItem"; then - if test -z "$removeStringFromList_result"; then - removeStringFromList_result="$removeStringFromList_listItem" - else - removeStringFromList_result="$removeStringFromList_result $removeStringFromList_listItem" - fi - fi - done - printf '%s' "$removeStringFromList_result" -} - -# Invoke apt-get update -invokeAptGetUpdate() { - if test -n "${IPE_APTGETUPDATE_ALREADY:-}"; then - apt-get update -q - return - fi - IPE_APTGETUPDATE_ALREADY=y - if grep -q 'VERSION="8 (jessie)"' /etc/os-release; then - invokeAptGetUpdate_fixdistro=jessie - elif grep -q 'VERSION="9 (stretch)"' /etc/os-release; then - invokeAptGetUpdate_fixdistro=stretch - else - invokeAptGetUpdate - return - fi - # See https://www.debian.org/distrib/archive.en.html for a list of mirrors - if test -z "${IPE_DEB_ARCHIVE:-}"; then - IPE_DEB_ARCHIVE=http://archive.kernel.org/debian-archive - fi - if test -z "${IPE_DEB_ARCHIVE_SECURITY:-}"; then - IPE_DEB_ARCHIVE_SECURITY=http://archive.kernel.org/debian-archive/debian-security - fi - sed -ri "s;^(\s*deb\s+http://(httpredir|deb).debian.org/debian\s+$invokeAptGetUpdate_fixdistro-updates\b.*);#\1;" /etc/apt/sources.list - sed -ri "s;^(\s*deb\s+)http://(httpredir|deb).debian.org;\1$IPE_DEB_ARCHIVE;" /etc/apt/sources.list - sed -ri "s;^(\s*deb\s+)http://security.debian.org/debian-security;\1$IPE_DEB_ARCHIVE_SECURITY;" /etc/apt/sources.list - sed -ri "s;^(\s*deb\s+)http://security.debian.org;\1$IPE_DEB_ARCHIVE_SECURITY;" /etc/apt/sources.list - invokeAptGetUpdate_tmp="$(mktemp)" - apt-get update -q 2>"$invokeAptGetUpdate_tmp" - if test -s "$invokeAptGetUpdate_tmp"; then - cat "$invokeAptGetUpdate_tmp" >&2 - if grep -qE ' KEYEXPIRED [0-9]' "$invokeAptGetUpdate_tmp"; then - echo '############' >&2 - echo '# WARNING! #' >&2 - echo '############' >&2 - echo 'apt packages will be installed without checking authenticity!' >&2 - printf 'APT::Get::AllowUnauthenticated "true";\n' >>/etc/apt/apt.conf.d/99unauthenticated - fi - fi - rm "$invokeAptGetUpdate_tmp" -} - -# Fix the Let's Encrypt CA certificates on old distros -fixLetsEncrypt() { - printf '### FIXING LETS ENCRYPT CA CERTIFICATES ###\n' - case "$DISTRO_VERSION" in - alpine@3.7 | alpine@3.8) - printf -- '- old Alpine Linux detected: we should fix the certificates\n' - ;; - debian@8 | debian@9) - printf -- '- old Debian detected: we should fix the certificates\n' - if ! grep -q 'mozilla/ISRG_Root_X1.crt' /etc/ca-certificates.conf && grep -q 'mozilla/DST_Root_CA_X3.crt' /etc/ca-certificates.conf; then - printf -- '- old ca-certificates package detected\n' - fixCACerts_mustUpdate=1 - if test -d /var/lib/apt/lists; then - for fixCACerts_item in $(ls -1 /var/lib/apt/lists); do - case "$fixCACerts_item" in - partial | lock) ;; - *) - fixCACerts_mustUpdate=0 - break - ;; - esac - done - fi - if test $fixCACerts_mustUpdate -eq 1; then - printf -- '- refreshing the APT package list\n' - invokeAptGetUpdate - fi - printf -- '- installing newer ca-certificates package\n' - apt-get install -qqy --no-install-recommends ca-certificates - fi - ;; - *) - printf -- '- patch not required in this distro version\n' - return - ;; - esac - if grep -Eq '^mozilla/ISRG_Root_X1\.crt$' /etc/ca-certificates.conf && grep -Eq '^mozilla/DST_Root_CA_X3\.crt$' /etc/ca-certificates.conf; then - printf -- '- disabling the DST_Root_CA_X3 certificate\n' - sed -i '/^mozilla\/DST_Root_CA_X3/s/^/!/' /etc/ca-certificates.conf - printf -- '- refreshing the certificates\n' - update-ca-certificates -f - else - printf -- '- DST_Root_CA_X3 certificate not found or already disabled\n' - fi -} - -# Cleanup everything at the end of the execution -cleanup() { - if test "${IPE_UNINSTALL_CARGO:-}" = y; then - if test -f "$HOME/.cargo/env"; then - . "$HOME/.cargo/env" - fi - if command -v rustup >/dev/null; then - rustup self uninstall -y - fi - fi - if test -n "$UNNEEDED_PACKAGE_LINKS"; then - printf '### REMOVING UNNEEDED PACKAGE LINKS ###\n' - for cleanup_link in $UNNEEDED_PACKAGE_LINKS; do - if test -L "$cleanup_link"; then - rm -f "$cleanup_link" - fi - done - fi - case "$DISTRO" in - alpine) - if stringInList icu-libs "${PACKAGES_PERSISTENT_NEW:-}" && stringInList icu-data-en "${PACKAGES_PERSISTENT_NEW:-}"; then - apk del icu-data-en >/dev/null 2>&1 || true - fi - if test -n "$PACKAGES_VOLATILE"; then - printf '### REMOVING UNNEEDED PACKAGES ###\n' - apk del --purge $PACKAGES_VOLATILE - fi - ;; - debian) - if test -n "$PACKAGES_VOLATILE"; then - printf '### REMOVING UNNEEDED PACKAGES ###\n' - apt-get remove --purge -y $PACKAGES_VOLATILE - fi - if test -n "$PACKAGES_PREVIOUS"; then - printf '### RESTORING PREVIOUSLY INSTALLED PACKAGES ###\n' - apt-get install -qqy --no-install-recommends --no-upgrade $PACKAGES_PREVIOUS - fi - ;; - esac - docker-php-source delete - rm -rf /tmp/src - rm -rf /tmp/pickle - rm -rf /tmp/pickle.tmp - rm -rf "$CONFIGURE_FILE" - case "${IPE_KEEP_SYSPKG_CACHE:-}" in - 1 | y* | Y*) ;; - *) - case "$DISTRO" in - alpine) - rm -rf /var/cache/apk/* - ;; - debian) - rm -rf /var/lib/apt/lists/* - ;; - esac - rm -rf /tmp/pear - ;; - esac -} - -DEBIAN_FRONTEND=noninteractive -export DEBIAN_FRONTEND -resetIFS -mkdir -p /tmp/src -mkdir -p /tmp/pickle.tmp -IPE_ERRFLAG_FILE="$(mktemp -p /tmp/src)" -CONFIGURE_FILE=/tmp/configure-options -IPE_APK_FLAGS='' -setDistro -case "$DISTRO_VERSION" in - debian@8) - fixMaxOpenFiles || true - ;; -esac -setPHPVersionVariables -setPHPPreinstalledModules -case "$PHP_MAJMIN_VERSION" in - 505 | 506 | 700 | 701 | 702 | 703 | 704 | 800 | 801 | 802 | 803 | 804) ;; - *) - printf "### ERROR: Unsupported PHP version: %s.%s ###\n" $((PHP_MAJMIN_VERSION / 100)) $((PHP_MAJMIN_VERSION % 100)) - ;; -esac -UNNEEDED_PACKAGE_LINKS='' -processCommandArguments "$@" - -if test -z "$PHP_MODULES_TO_INSTALL"; then - exit 0 -fi - -if stringInList @fix_letsencrypt "$PHP_MODULES_TO_INSTALL"; then - # This must be the very first thing we do - fixLetsEncrypt -fi - -sortModulesToInstall - -docker-php-source extract -BUNDLED_MODULES="$(find /usr/src/php/ext -mindepth 2 -maxdepth 2 -type f -name 'config.m4' | xargs -n1 dirname | xargs -n1 basename | xargs)" -configureInstaller - -buildRequiredPackageLists $PHP_MODULES_TO_INSTALL -if test -n "$PACKAGES_PERSISTENT_PRE"; then - markPreinstalledPackagesAsUsed -fi -if test -n "$PACKAGES_PERSISTENT_NEW$PACKAGES_VOLATILE"; then - installRequiredPackages -fi -if test "$PHP_MODULES_TO_INSTALL" != '@composer'; then - setTargetTriplet -fi -if test $USE_PICKLE -gt 1; then - buildPickle -fi - -compileLibs - -for PHP_MODULE_TO_INSTALL in $PHP_MODULES_TO_INSTALL; do - case "$PHP_MODULE_TO_INSTALL" in - @fix_letsencrypt) - # Already done: it must be the first thing we do - ;; - @composer) - installComposer - ;; - *) - if stringInList "$PHP_MODULE_TO_INSTALL" "$BUNDLED_MODULES"; then - installBundledModule "$PHP_MODULE_TO_INSTALL" - else - installRemoteModule "$PHP_MODULE_TO_INSTALL" - fi - ;; - esac -done -cleanup diff --git a/php7/7.2.34/build/php/extensions/install.sh b/php7/7.2.34/build/php/extensions/install.sh deleted file mode 100644 index c663a07ca..000000000 --- a/php7/7.2.34/build/php/extensions/install.sh +++ /dev/null @@ -1,761 +0,0 @@ -#!/bin/sh - -export MC="-j$(nproc)" - -echo -echo "============================================" -echo "Install extensions from : install.sh" -echo "PHP version : ${PHP_VERSION}" -echo "Extra Extensions : ${PHP_EXTENSIONS}" -echo "Multicore Compilation : ${MC}" -echo "Container package url : ${CONTAINER_PACKAGE_URL}" -echo "Work directory : ${PWD}" -echo "============================================" -echo - - -if [ "${PHP_EXTENSIONS}" != "" ]; then - apk --update add --no-cache --virtual .build-deps autoconf g++ libtool make curl-dev gettext-dev linux-headers git -fi - - -export EXTENSIONS=",${PHP_EXTENSIONS}," - - -# -# Check if current php version is greater than or equal to -# specific version. -# -# For example, to check if current php is greater than or -# equal to PHP 7.0: -# -# isPhpVersionGreaterOrEqual 7 0 -# -# Param 1: Specific PHP Major version -# Param 2: Specific PHP Minor version -# Return : 1 if greater than or equal to, 0 if less than -# -isPhpVersionGreaterOrEqual() - { - local PHP_MAJOR_VERSION=$(php -r "echo PHP_MAJOR_VERSION;") - local PHP_MINOR_VERSION=$(php -r "echo PHP_MINOR_VERSION;") - - if [[ "$PHP_MAJOR_VERSION" -gt "$1" || "$PHP_MAJOR_VERSION" -eq "$1" && "$PHP_MINOR_VERSION" -ge "$2" ]]; then - return 1; - else - return 0; - fi -} - - -# -# Install extension from package file(.tgz), -# For example: -# -# installExtensionFromTgz redis-5.2.2 -# -# Param 1: Package name with version -# Param 2: enable options -# -installExtensionFromTgz() -{ - tgzName=$1 - result="" - extensionName="${tgzName%%-*}" - shift 1 - result=$@ - mkdir ${extensionName} - tar -xf ${tgzName}.tgz -C ${extensionName} --strip-components=1 - ( cd ${extensionName} && phpize && ./configure ${result} && make ${MC} && make install ) - - docker-php-ext-enable ${extensionName} -} - - -# install use install-php-extensions -if [[ -z "${EXTENSIONS##*,ioncube_loader,*}" ]]; then - echo "---------- Install ioncube_loader ----------" - install-php-extensions ioncube_loader -fi - -if [[ -z "${EXTENSIONS##*,imagick,*}" ]]; then - echo "---------- Install imagick ----------" - install-php-extensions imagick -fi - -if [[ -z "${EXTENSIONS##*,sourceguardian,*}" ]]; then - echo "---------- Install sourceguardian ----------" - apk add eudev-libs - install-php-extensions sourceguardian -fi - -if [[ -z "${EXTENSIONS##*,ssh2,*}" ]]; then - echo "---------- Install ssh2 ----------" - install-php-extensions ssh2 -fi - -if [[ -z "${EXTENSIONS##*,maxminddb,*}" ]]; then - echo "---------- Install maxminddb ----------" - install-php-extensions maxminddb -fi - -if [[ -z "${EXTENSIONS##*,zstd,*}" ]]; then - echo "---------- Install zstd ----------" - install-php-extensions zstd -fi - -if [[ -z "${EXTENSIONS##*,grpc,*}" ]]; then - echo "---------- Install grpc ----------" - install-php-extensions grpc - docker-php-ext-enable grpc -fi - -if [[ -z "${EXTENSIONS##*,ftp,*}" ]]; then - echo "---------- Install ftp ----------" - install-php-extensions ftp -fi - -if [[ -z "${EXTENSIONS##*,snuffleupagus,*}" ]]; then - echo "---------- Install snuffleupagus ----------" - install-php-extensions snuffleupagus -fi - -if [[ -z "${EXTENSIONS##*,pdo_oci,*}" ]]; then - echo "---------- Install pdo_oci ----------" - install-php-extensions pdo_oci -fi - -if [[ -z "${EXTENSIONS##*,oci8,*}" ]]; then - echo "---------- Install oci8 ----------" - install-php-extensions oci8 -fi -# end - - -if [[ -z "${EXTENSIONS##*,pdo_mysql,*}" ]]; then - echo "---------- Install pdo_mysql ----------" - docker-php-ext-install ${MC} pdo_mysql -fi - -if [[ -z "${EXTENSIONS##*,pcntl,*}" ]]; then - echo "---------- Install pcntl ----------" - docker-php-ext-install ${MC} pcntl -fi - -if [[ -z "${EXTENSIONS##*,mysqli,*}" ]]; then - echo "---------- Install mysqli ----------" - docker-php-ext-install ${MC} mysqli -fi - -if [[ -z "${EXTENSIONS##*,mbstring,*}" ]]; then - echo "---------- mbstring is installed ----------" -fi - -if [[ -z "${EXTENSIONS##*,exif,*}" ]]; then - echo "---------- Install exif ----------" - docker-php-ext-install ${MC} exif -fi - -if [[ -z "${EXTENSIONS##*,bcmath,*}" ]]; then - echo "---------- Install bcmath ----------" - docker-php-ext-install ${MC} bcmath -fi - -if [[ -z "${EXTENSIONS##*,calendar,*}" ]]; then - echo "---------- Install calendar ----------" - docker-php-ext-install ${MC} calendar -fi - -if [[ -z "${EXTENSIONS##*,zend_test,*}" ]]; then - echo "---------- Install zend_test ----------" - docker-php-ext-install ${MC} zend_test -fi - -if [[ -z "${EXTENSIONS##*,opcache,*}" ]]; then - echo "---------- Install opcache ----------" - docker-php-ext-install opcache -fi - -if [[ -z "${EXTENSIONS##*,sockets,*}" ]]; then - echo "---------- Install sockets ----------" - docker-php-ext-install ${MC} sockets -fi - -if [[ -z "${EXTENSIONS##*,gettext,*}" ]]; then - echo "---------- Install gettext ----------" - apk --no-cache add gettext-dev - docker-php-ext-install ${MC} gettext - -fi - -if [[ -z "${EXTENSIONS##*,shmop,*}" ]]; then - echo "---------- Install shmop ----------" - docker-php-ext-install ${MC} shmop -fi - -if [[ -z "${EXTENSIONS##*,sysvmsg,*}" ]]; then - echo "---------- Install sysvmsg ----------" - docker-php-ext-install ${MC} sysvmsg -fi - -if [[ -z "${EXTENSIONS##*,sysvsem,*}" ]]; then - echo "---------- Install sysvsem ----------" - docker-php-ext-install ${MC} sysvsem -fi - -if [[ -z "${EXTENSIONS##*,sysvshm,*}" ]]; then - echo "---------- Install sysvshm ----------" - docker-php-ext-install ${MC} sysvshm -fi - -if [[ -z "${EXTENSIONS##*,pdo_firebird,*}" ]]; then - echo "---------- Install pdo_firebird ----------" - docker-php-ext-install ${MC} pdo_firebird -fi - -if [[ -z "${EXTENSIONS##*,pdo_dblib,*}" ]]; then - echo "---------- Install pdo_dblib ----------" - docker-php-ext-install ${MC} pdo_dblib -fi - -if [[ -z "${EXTENSIONS##*,pdo_odbc,*}" ]]; then - echo "---------- Install pdo_odbc ----------" - docker-php-ext-install ${MC} pdo_odbc -fi - -if [[ -z "${EXTENSIONS##*,pdo_pgsql,*}" ]]; then - echo "---------- Install pdo_pgsql ----------" - apk --no-cache add postgresql-dev \ - && docker-php-ext-install ${MC} pdo_pgsql -fi - -if [[ -z "${EXTENSIONS##*,pgsql,*}" ]]; then - echo "---------- Install pgsql ----------" - apk --no-cache add postgresql-dev \ - && docker-php-ext-install ${MC} pgsql -fi - -if [[ -z "${EXTENSIONS##*,odbc,*}" ]]; then - echo "---------- Install odbc ----------" - docker-php-ext-install ${MC} odbc -fi - -if [[ -z "${EXTENSIONS##*,dba,*}" ]]; then - echo "---------- Install dba ----------" - docker-php-ext-install ${MC} dba -fi - -if [[ -z "${EXTENSIONS##*,interbase,*}" ]]; then - echo "---------- Install interbase ----------" - echo "Alpine linux do not support interbase/firebird!!!" - #docker-php-ext-install ${MC} interbase -fi - -if [[ -z "${EXTENSIONS##*,hprose,*}" ]]; then - echo "---------- Install hprose ----------" - printf "\n" | pecl install hprose - docker-php-ext-enable hprose -fi - -if [[ -z "${EXTENSIONS##*,gd,*}" ]]; then - echo "---------- Install gd ----------" - isPhpVersionGreaterOrEqual 7 4 - - if [[ "$?" = "1" ]]; then - # "--with-xxx-dir" was removed from php 7.4, - # issue: https://github.com/docker-library/php/issues/912 - options="--with-freetype --with-jpeg --with-webp" - else - options="--with-gd --with-freetype-dir=/usr/include/ --with-png-dir=/usr/include/ --with-jpeg-dir=/usr/include/ --with-webp-dir=/usr/include/" - fi - - apk add --no-cache \ - freetype \ - freetype-dev \ - libpng \ - libpng-dev \ - libjpeg-turbo \ - libjpeg-turbo-dev \ - libwebp-dev \ - && docker-php-ext-configure gd ${options} \ - && docker-php-ext-install ${MC} gd \ - && apk del \ - freetype-dev \ - libpng-dev \ - libjpeg-turbo-dev -fi - -if [[ -z "${EXTENSIONS##*,yaml,*}" ]]; then - echo "---------- Install yaml ----------" - apk add --no-cache yaml-dev - printf "\n" | pecl install yaml - docker-php-ext-enable yaml -fi - -if [[ -z "${EXTENSIONS##*,intl,*}" ]]; then - echo "---------- Install intl ----------" - apk add --no-cache icu-dev - docker-php-ext-install ${MC} intl -fi - -if [[ -z "${EXTENSIONS##*,bz2,*}" ]]; then - echo "---------- Install bz2 ----------" - apk add --no-cache bzip2-dev - docker-php-ext-install ${MC} bz2 -fi - -if [[ -z "${EXTENSIONS##*,soap,*}" ]]; then - echo "---------- Install soap ----------" - apk add --no-cache libxml2-dev - docker-php-ext-install ${MC} soap -fi - -if [[ -z "${EXTENSIONS##*,xsl,*}" ]]; then - echo "---------- Install xsl ----------" - apk add --no-cache libxml2-dev libxslt-dev - docker-php-ext-install ${MC} xsl -fi - -if [[ -z "${EXTENSIONS##*,xmlrpc,*}" ]]; then - echo "---------- Install xmlrpc ----------" - apk add --no-cache libxml2-dev libxslt-dev - docker-php-ext-install ${MC} xmlrpc -fi - -if [[ -z "${EXTENSIONS##*,wddx,*}" ]]; then - echo "---------- Install wddx ----------" - apk add --no-cache libxml2-dev libxslt-dev - docker-php-ext-install ${MC} wddx -fi - -if [[ -z "${EXTENSIONS##*,curl,*}" ]]; then - echo "---------- curl is installed ----------" -fi - -if [[ -z "${EXTENSIONS##*,readline,*}" ]]; then - echo "---------- Install readline ----------" - apk add --no-cache readline-dev - apk add --no-cache libedit-dev - docker-php-ext-install ${MC} readline -fi - -if [[ -z "${EXTENSIONS##*,snmp,*}" ]]; then - echo "---------- Install snmp ----------" - apk add --no-cache net-snmp-dev - docker-php-ext-install ${MC} snmp -fi - -if [[ -z "${EXTENSIONS##*,pspell,*}" ]]; then - echo "---------- Install pspell ----------" - apk add --no-cache aspell-dev - apk add --no-cache aspell-en - docker-php-ext-install ${MC} pspell -fi - -if [[ -z "${EXTENSIONS##*,recode,*}" ]]; then - echo "---------- Install recode ----------" - apk add --no-cache recode-dev - docker-php-ext-install ${MC} recode -fi - -if [[ -z "${EXTENSIONS##*,tidy,*}" ]]; then - echo "---------- Install tidy ----------" - apk add --no-cache tidyhtml-dev - - # Fix: https://github.com/htacg/tidy-html5/issues/235 - ln -s /usr/include/tidybuffio.h /usr/include/buffio.h - - docker-php-ext-install ${MC} tidy -fi - -if [[ -z "${EXTENSIONS##*,gmp,*}" ]]; then - echo "---------- Install gmp ----------" - apk add --no-cache gmp-dev - docker-php-ext-install ${MC} gmp -fi - -if [[ -z "${EXTENSIONS##*,imap,*}" ]]; then - echo "---------- Install imap ----------" - apk add --no-cache imap-dev - docker-php-ext-configure imap --with-imap --with-imap-ssl - docker-php-ext-install ${MC} imap -fi - -if [[ -z "${EXTENSIONS##*,ldap,*}" ]]; then - echo "---------- Install ldap ----------" - apk add --no-cache ldb-dev - apk add --no-cache openldap-dev - docker-php-ext-install ${MC} ldap -fi - -if [[ -z "${EXTENSIONS##*,psr,*}" ]]; then - echo "---------- Install psr ----------" - printf "\n" | pecl install psr - docker-php-ext-enable psr -fi - -if [[ -z "${EXTENSIONS##*,imagick,*}" ]]; then - echo "---------- Install imagick ----------" - apk add --no-cache file-dev - apk add --no-cache imagemagick-dev - printf "\n" | pecl install imagick-3.4.4 - docker-php-ext-enable imagick -fi - -if [[ -z "${EXTENSIONS##*,rar,*}" ]]; then - echo "---------- Install rar ----------" - printf "\n" | pecl install rar - docker-php-ext-enable rar -fi - -if [[ -z "${EXTENSIONS##*,ast,*}" ]]; then - echo "---------- Install ast ----------" - printf "\n" | pecl install ast - docker-php-ext-enable ast -fi - -if [[ -z "${EXTENSIONS##*,msgpack,*}" ]]; then - echo "---------- Install msgpack ----------" - printf "\n" | pecl install msgpack - docker-php-ext-enable msgpack -fi - -if [[ -z "${EXTENSIONS##*,igbinary,*}" ]]; then - echo "---------- Install igbinary ----------" - printf "\n" | pecl install igbinary - docker-php-ext-enable igbinary -fi - - -if [[ -z "${EXTENSIONS##*,protobuf,*}" ]]; then - isPhpVersionGreaterOrEqual 7 0 - if [[ "$?" = "1" ]]; then - echo "---------- Install protobuf ----------" - printf "\n" | pecl install protobuf - docker-php-ext-enable protobuf - else - echo "yar requires PHP >= 7.0.0, installed version is ${PHP_VERSION}" - fi -fi - -if [[ -z "${EXTENSIONS##*,yac,*}" ]]; then - isPhpVersionGreaterOrEqual 7 0 - if [[ "$?" = "1" ]]; then - echo "---------- Install yac ----------" - printf "\n" | pecl install yac-2.0.2 - docker-php-ext-enable yac - else - echo "yar requires PHP >= 7.0.0, installed version is ${PHP_VERSION}" - fi -fi - -if [[ -z "${EXTENSIONS##*,yar,*}" ]]; then - isPhpVersionGreaterOrEqual 7 0 - if [[ "$?" = "1" ]]; then - echo "---------- Install yar ----------" - printf "\n" | pecl install yar - docker-php-ext-enable yar - else - echo "yar requires PHP >= 7.0.0, installed version is ${PHP_VERSION}" - fi - -fi - - - -if [[ -z "${EXTENSIONS##*,yaconf,*}" ]]; then - isPhpVersionGreaterOrEqual 7 0 - if [[ "$?" = "1" ]]; then - echo "---------- Install yaconf ----------" - printf "\n" | pecl install yaconf - docker-php-ext-enable yaconf - else - echo "yar requires PHP >= 7.0.0, installed version is ${PHP_VERSION}" - fi -fi - -if [[ -z "${EXTENSIONS##*,seaslog,*}" ]]; then - echo "---------- Install seaslog ----------" - printf "\n" | pecl install seaslog - docker-php-ext-enable seaslog -fi - -if [[ -z "${EXTENSIONS##*,varnish,*}" ]]; then - echo "---------- Install varnish ----------" - apk add --no-cache varnish-dev - printf "\n" | pecl install varnish - docker-php-ext-enable varnish -fi - -if [[ -z "${EXTENSIONS##*,pdo_sqlsrv,*}" ]]; then - isPhpVersionGreaterOrEqual 7 1 - if [[ "$?" = "1" ]]; then - echo "---------- Install pdo_sqlsrv ----------" - install-php-extensions pdo_sqlsrv - else - echo "pdo_sqlsrv requires PHP >= 7.1.0, installed version is ${PHP_VERSION}" - fi -fi - -if [[ -z "${EXTENSIONS##*,sqlsrv,*}" ]]; then - isPhpVersionGreaterOrEqual 7 1 - if [[ "$?" = "1" ]]; then - echo "---------- Install sqlsrv ----------" - install-php-extensions sqlsrv - else - echo "sqlsrv requires PHP >= 7.1.0, installed version is ${PHP_VERSION}" - fi -fi - -if [[ -z "${EXTENSIONS##*,mcrypt,*}" ]]; then - isPhpVersionGreaterOrEqual 7 0 - if [[ "$?" = "1" ]]; then - echo "---------- Install mcrypt ----------" - apk add --no-cache libmcrypt-dev libmcrypt re2c - printf "\n" |pecl install mcrypt - docker-php-ext-enable mcrypt - else - echo "---------- Install mcrypt ----------" - apk add --no-cache libmcrypt-dev \ - && docker-php-ext-install ${MC} mcrypt - fi -fi - -if [[ -z "${EXTENSIONS##*,mysql,*}" ]]; then - isPhpVersionGreaterOrEqual 7 0 - - if [[ "$?" = "1" ]]; then - echo "---------- mysql was REMOVED from PHP 7.0.0 ----------" - else - echo "---------- Install mysql ----------" - docker-php-ext-install ${MC} mysql - fi -fi - -if [[ -z "${EXTENSIONS##*,sodium,*}" ]]; then - isPhpVersionGreaterOrEqual 7 2 - if [[ "$?" = "1" ]]; then - echo - echo "Sodium is bundled with PHP from PHP 7.2.0" - echo - else - echo "---------- Install sodium ----------" - apk add --no-cache libsodium-dev - docker-php-ext-install ${MC} sodium - fi -fi - -if [[ -z "${EXTENSIONS##*,amqp,*}" ]]; then - echo "---------- Install amqp ----------" - apk add --no-cache rabbitmq-c-dev - installExtensionFromTgz amqp-1.10.2 -fi - -if [[ -z "${EXTENSIONS##*,redis,*}" ]]; then - echo "---------- Install redis ----------" - installExtensionFromTgz redis-5.3.7 -fi - -if [[ -z "${EXTENSIONS##*,apcu,*}" ]]; then - echo "---------- Install apcu ----------" - installExtensionFromTgz apcu-5.1.17 -fi - -if [[ -z "${EXTENSIONS##*,memcached,*}" ]]; then - echo "---------- Install memcached ----------" - apk add --no-cache libmemcached-dev zlib-dev - isPhpVersionGreaterOrEqual 7 0 - - if [[ "$?" = "1" ]]; then - printf "\n" | pecl install memcached-3.1.3 - else - printf "\n" | pecl install memcached-2.2.0 - fi - - docker-php-ext-enable memcached -fi - -if [[ -z "${EXTENSIONS##*,memcache,*}" ]]; then - echo "---------- Install memcache ----------" - isPhpVersionGreaterOrEqual 7 0 - if [[ "$?" = "1" ]]; then - installExtensionFromTgz memcache-4.0.5.2 - else - installExtensionFromTgz memcache-2.2.6 - fi -fi - -if [[ -z "${EXTENSIONS##*,xdebug,*}" ]]; then - echo "---------- Install xdebug ----------" - isPhpVersionGreaterOrEqual 7 0 - - if [[ "$?" = "1" ]]; then - isPhpVersionGreaterOrEqual 7 4 - if [[ "$?" = "1" ]]; then - installExtensionFromTgz xdebug-2.9.2 - else - installExtensionFromTgz xdebug-2.6.1 - fi - else - installExtensionFromTgz xdebug-2.5.5 - fi -fi - -if [[ -z "${EXTENSIONS##*,event,*}" ]]; then - echo "---------- Install event ----------" - apk add --no-cache libevent-dev - export is_sockets_installed=$(php -r "echo extension_loaded('sockets');") - - if [[ "${is_sockets_installed}" = "" ]]; then - echo "---------- event is depend on sockets, install sockets first ----------" - docker-php-ext-install sockets - fi - - echo "---------- Install event again ----------" - mkdir event - tar -xf event-3.0.8.tgz -C event --strip-components=1 - cd event && phpize && ./configure && make && make install - - docker-php-ext-enable --ini-name event.ini event -fi - -if [[ -z "${EXTENSIONS##*,mongodb,*}" ]]; then - echo "---------- Install mongodb ----------" - apk add --no-cache openssl-dev - installExtensionFromTgz mongodb-1.7.4 - docker-php-ext-configure mongodb --with-mongodb-ssl=openssl -fi - -if [[ -z "${EXTENSIONS##*,yaf,*}" ]]; then - echo "---------- Install yaf ----------" - isPhpVersionGreaterOrEqual 7 0 - - if [[ "$?" = "1" ]]; then - printf "\n" | pecl install yaf - docker-php-ext-enable yaf - else - installExtensionFromTgz yaf-2.3.5 - fi -fi - - -if [[ -z "${EXTENSIONS##*,swoole,*}" ]]; then - echo "---------- Install swoole ----------" - # Fix: Refer to the line containing "swoole@alpine)" in file "./install-php-extensions" - apk add --no-cache libstdc++ - - isPhpVersionGreaterOrEqual 7 0 - - if [[ "$?" = "1" ]]; then - installExtensionFromTgz swoole-4.8.11 --enable-openssl - else - installExtensionFromTgz swoole-2.0.11 - fi -fi - -if [[ -z "${EXTENSIONS##*,zip,*}" ]]; then - echo "---------- Install zip ----------" - # Fix: https://github.com/docker-library/php/issues/797 - apk add --no-cache libzip-dev - - isPhpVersionGreaterOrEqual 7 4 - if [[ "$?" != "1" ]]; then - docker-php-ext-configure zip --with-libzip=/usr/include - fi - - docker-php-ext-install ${MC} zip -fi - -if [[ -z "${EXTENSIONS##*,xhprof,*}" ]]; then - echo "---------- Install XHProf ----------" - - isPhpVersionGreaterOrEqual 7 0 - - if [[ "$?" = "1" ]]; then - mkdir xhprof \ - && tar -xf xhprof-2.2.0.tgz -C xhprof --strip-components=1 \ - && ( cd xhprof/extension/ && phpize && ./configure && make ${MC} && make install ) \ - && docker-php-ext-enable xhprof - else - echo "---------- PHP Version>= 7.0----------" - fi - -fi - -if [[ -z "${EXTENSIONS##*,xlswriter,*}" ]]; then - echo "---------- Install xlswriter ----------" - isPhpVersionGreaterOrEqual 7 0 - - if [[ "$?" = "1" ]]; then - printf "\n" | pecl install xlswriter - docker-php-ext-enable xlswriter - else - echo "---------- PHP Version>= 7.0----------" - fi -fi - -if [[ -z "${EXTENSIONS##*,rdkafka,*}" ]]; then - echo "---------- Install rdkafka ----------" - isPhpVersionGreaterOrEqual 5 6 - - if [[ "$?" = "1" ]]; then - apk add librdkafka-dev - printf "\n" | pecl install rdkafka - docker-php-ext-enable rdkafka - else - echo "---------- PHP Version>= 5.6----------" - fi -fi - -if [[ -z "${EXTENSIONS##*,zookeeper,*}" ]]; then - echo "---------- Install zookeeper ----------" - isPhpVersionGreaterOrEqual 7 0 - - if [[ "$?" = "1" ]]; then - apk add re2c - apk add libzookeeper-dev --repository http://${CONTAINER_PACKAGE_URL}/alpine/edge/testing/ - printf "\n" | pecl install zookeeper - docker-php-ext-enable zookeeper - else - echo "---------- PHP Version>= 7.0----------" - fi -fi - -if [[ -z "${EXTENSIONS##*,phalcon,*}" ]]; then - echo "---------- Install phalcon ----------" - isPhpVersionGreaterOrEqual 7 2 - - if [[ "$?" = "1" ]]; then - printf "\n" | pecl install phalcon - docker-php-ext-enable psr - docker-php-ext-enable phalcon - else - echo "---------- PHP Version>= 7.2----------" - fi -fi - -if [[ -z "${EXTENSIONS##*,sdebug,*}" ]]; then - echo "---------- Install sdebug ----------" - isPhpVersionGreaterOrEqual 7 2 - - if [[ "$?" = "1" ]]; then - curl -SL "https://github.com/swoole/sdebug/archive/sdebug_2_9-beta.tar.gz" -o sdebug.tar.gz \ - && mkdir -p sdebug \ - && tar -xf sdebug.tar.gz -C sdebug --strip-components=1 \ - && rm sdebug.tar.gz \ - && ( \ - cd sdebug \ - && phpize \ - && ./configure --enable-xdebug \ - && make clean && make && make install \ - ) \ - && docker-php-ext-enable xdebug - else - echo "---------- PHP Version>= 7.2----------" - fi -fi - -if [ "${PHP_EXTENSIONS}" != "" ]; then - apk del .build-deps \ - && docker-php-source delete -fi diff --git a/php7/7.2.34/build/php/extensions/memcache-2.2.6.tgz b/php7/7.2.34/build/php/extensions/memcache-2.2.6.tgz deleted file mode 100644 index 841d0296e..000000000 Binary files a/php7/7.2.34/build/php/extensions/memcache-2.2.6.tgz and /dev/null differ diff --git a/php7/7.2.34/build/php/extensions/memcache-4.0.5.2.tgz b/php7/7.2.34/build/php/extensions/memcache-4.0.5.2.tgz deleted file mode 100644 index 1f7d370b3..000000000 Binary files a/php7/7.2.34/build/php/extensions/memcache-4.0.5.2.tgz and /dev/null differ diff --git a/php7/7.2.34/build/php/extensions/mongodb-1.7.4.tgz b/php7/7.2.34/build/php/extensions/mongodb-1.7.4.tgz deleted file mode 100644 index 94528560b..000000000 Binary files a/php7/7.2.34/build/php/extensions/mongodb-1.7.4.tgz and /dev/null differ diff --git a/php7/7.2.34/build/php/extensions/redis-5.3.7.tgz b/php7/7.2.34/build/php/extensions/redis-5.3.7.tgz deleted file mode 100644 index db2187b4d..000000000 Binary files a/php7/7.2.34/build/php/extensions/redis-5.3.7.tgz and /dev/null differ diff --git a/php7/7.2.34/build/php/extensions/swoole-2.0.11.tgz b/php7/7.2.34/build/php/extensions/swoole-2.0.11.tgz deleted file mode 100644 index a155450ce..000000000 Binary files a/php7/7.2.34/build/php/extensions/swoole-2.0.11.tgz and /dev/null differ diff --git a/php7/7.2.34/build/php/extensions/swoole-4.8.11.tgz b/php7/7.2.34/build/php/extensions/swoole-4.8.11.tgz deleted file mode 100644 index 01674cdc9..000000000 Binary files a/php7/7.2.34/build/php/extensions/swoole-4.8.11.tgz and /dev/null differ diff --git a/php7/7.2.34/build/php/extensions/xdebug-2.5.5.tgz b/php7/7.2.34/build/php/extensions/xdebug-2.5.5.tgz deleted file mode 100644 index d62c7ff63..000000000 Binary files a/php7/7.2.34/build/php/extensions/xdebug-2.5.5.tgz and /dev/null differ diff --git a/php7/7.2.34/build/php/extensions/xdebug-2.6.1.tgz b/php7/7.2.34/build/php/extensions/xdebug-2.6.1.tgz deleted file mode 100644 index c756fba39..000000000 Binary files a/php7/7.2.34/build/php/extensions/xdebug-2.6.1.tgz and /dev/null differ diff --git a/php7/7.2.34/build/php/extensions/xdebug-2.9.2.tgz b/php7/7.2.34/build/php/extensions/xdebug-2.9.2.tgz deleted file mode 100644 index 8131fff35..000000000 Binary files a/php7/7.2.34/build/php/extensions/xdebug-2.9.2.tgz and /dev/null differ diff --git a/php7/7.2.34/build/php/extensions/xhprof-2.2.0.tgz b/php7/7.2.34/build/php/extensions/xhprof-2.2.0.tgz deleted file mode 100644 index 2614df31a..000000000 Binary files a/php7/7.2.34/build/php/extensions/xhprof-2.2.0.tgz and /dev/null differ diff --git a/php7/7.2.34/build/php/extensions/yaf-2.3.5.tgz b/php7/7.2.34/build/php/extensions/yaf-2.3.5.tgz deleted file mode 100644 index d965a0f19..000000000 Binary files a/php7/7.2.34/build/php/extensions/yaf-2.3.5.tgz and /dev/null differ diff --git a/php7/7.2.34/build/php/php-fpm.conf b/php7/7.2.34/build/php/php-fpm.conf deleted file mode 100644 index 131835891..000000000 --- a/php7/7.2.34/build/php/php-fpm.conf +++ /dev/null @@ -1,423 +0,0 @@ -; Start a new pool named 'www'. -; the variable $pool can be used in any directive and will be replaced by the -; pool name ('www' here) -[www] - -; Per pool prefix -; It only applies on the following directives: -; - 'access.log' -; - 'slowlog' -; - 'listen' (unixsocket) -; - 'chroot' -; - 'chdir' -; - 'php_values' -; - 'php_admin_values' -; When not set, the global prefix (or NONE) applies instead. -; Note: This directive can also be relative to the global prefix. -; Default Value: none -;prefix = /path/to/pools/$pool - -; Unix user/group of processes -; Note: The user is mandatory. If the group is not set, the default user's group -; will be used. -user = www-data -group = www-data - -; The address on which to accept FastCGI requests. -; Valid syntaxes are: -; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on -; a specific port; -; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on -; a specific port; -; 'port' - to listen on a TCP socket to all addresses -; (IPv6 and IPv4-mapped) on a specific port; -; '/path/to/unix/socket' - to listen on a unix socket. -; Note: This value is mandatory. -listen = 127.0.0.1:9000 - -; Set listen(2) backlog. -; Default Value: 511 (-1 on FreeBSD and OpenBSD) -;listen.backlog = 511 - -; Set permissions for unix socket, if one is used. In Linux, read/write -; permissions must be set in order to allow connections from a web server. Many -; BSD-derived systems allow connections regardless of permissions. -; Default Values: user and group are set as the running user -; mode is set to 0660 -;listen.owner = www-data -;listen.group = www-data -;listen.mode = 0660 -; When POSIX Access Control Lists are supported you can set them using -; these options, value is a comma separated list of user/group names. -; When set, listen.owner and listen.group are ignored -;listen.acl_users = -;listen.acl_groups = - -; List of addresses (IPv4/IPv6) of FastCGI clients which are allowed to connect. -; Equivalent to the FCGI_WEB_SERVER_ADDRS environment variable in the original -; PHP FCGI (5.2.2+). Makes sense only with a tcp listening socket. Each address -; must be separated by a comma. If this value is left blank, connections will be -; accepted from any ip address. -; Default Value: any -;listen.allowed_clients = 127.0.0.1 - -; Specify the nice(2) priority to apply to the pool processes (only if set) -; The value can vary from -19 (highest priority) to 20 (lower priority) -; Note: - It will only work if the FPM master process is launched as root -; - The pool processes will inherit the master process priority -; unless it specified otherwise -; Default Value: no set -; process.priority = -19 - -; Set the process dumpable flag (PR_SET_DUMPABLE prctl) even if the process user -; or group is differrent than the master process user. It allows to create process -; core dump and ptrace the process for the pool user. -; Default Value: no -; process.dumpable = yes - -; Choose how the process manager will control the number of child processes. -; Possible Values: -; static - a fixed number (pm.max_children) of child processes; -; dynamic - the number of child processes are set dynamically based on the -; following directives. With this process management, there will be -; always at least 1 children. -; pm.max_children - the maximum number of children that can -; be alive at the same time. -; pm.start_servers - the number of children created on startup. -; pm.min_spare_servers - the minimum number of children in 'idle' -; state (waiting to process). If the number -; of 'idle' processes is less than this -; number then some children will be created. -; pm.max_spare_servers - the maximum number of children in 'idle' -; state (waiting to process). If the number -; of 'idle' processes is greater than this -; number then some children will be killed. -; ondemand - no children are created at startup. Children will be forked when -; new requests will connect. The following parameter are used: -; pm.max_children - the maximum number of children that -; can be alive at the same time. -; pm.process_idle_timeout - The number of seconds after which -; an idle process will be killed. -; Note: This value is mandatory. -pm = dynamic - -; The number of child processes to be created when pm is set to 'static' and the -; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'. -; This value sets the limit on the number of simultaneous requests that will be -; served. Equivalent to the ApacheMaxClients directive with mpm_prefork. -; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP -; CGI. The below defaults are based on a server without much resources. Don't -; forget to tweak pm.* to fit your needs. -; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand' -; Note: This value is mandatory. -pm.max_children = 10 - -; The number of child processes created on startup. -; Note: Used only when pm is set to 'dynamic' -; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2 -pm.start_servers = 2 - -; The desired minimum number of idle server processes. -; Note: Used only when pm is set to 'dynamic' -; Note: Mandatory when pm is set to 'dynamic' -pm.min_spare_servers = 1 - -; The desired maximum number of idle server processes. -; Note: Used only when pm is set to 'dynamic' -; Note: Mandatory when pm is set to 'dynamic' -pm.max_spare_servers = 3 - -; The number of seconds after which an idle process will be killed. -; Note: Used only when pm is set to 'ondemand' -; Default Value: 10s -;pm.process_idle_timeout = 10s; - -; The number of requests each child process should execute before respawning. -; This can be useful to work around memory leaks in 3rd party libraries. For -; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS. -; Default Value: 0 -;pm.max_requests = 500 - -; The URI to view the FPM status page. If this value is not set, no URI will be -; recognized as a status page. It shows the following informations: -; pool - the name of the pool; -; process manager - static, dynamic or ondemand; -; start time - the date and time FPM has started; -; start since - number of seconds since FPM has started; -; accepted conn - the number of request accepted by the pool; -; listen queue - the number of request in the queue of pending -; connections (see backlog in listen(2)); -; max listen queue - the maximum number of requests in the queue -; of pending connections since FPM has started; -; listen queue len - the size of the socket queue of pending connections; -; idle processes - the number of idle processes; -; active processes - the number of active processes; -; total processes - the number of idle + active processes; -; max active processes - the maximum number of active processes since FPM -; has started; -; max children reached - number of times, the process limit has been reached, -; when pm tries to start more children (works only for -; pm 'dynamic' and 'ondemand'); -; Value are updated in real time. -; Example output: -; pool: www -; process manager: static -; start time: 01/Jul/2011:17:53:49 +0200 -; start since: 62636 -; accepted conn: 190460 -; listen queue: 0 -; max listen queue: 1 -; listen queue len: 42 -; idle processes: 4 -; active processes: 11 -; total processes: 15 -; max active processes: 12 -; max children reached: 0 -; -; By default the status page output is formatted as text/plain. Passing either -; 'html', 'xml' or 'json' in the query string will return the corresponding -; output syntax. Example: -; http://www.foo.bar/status -; http://www.foo.bar/status?json -; http://www.foo.bar/status?html -; http://www.foo.bar/status?xml -; -; By default the status page only outputs short status. Passing 'full' in the -; query string will also return status for each pool process. -; Example: -; http://www.foo.bar/status?full -; http://www.foo.bar/status?json&full -; http://www.foo.bar/status?html&full -; http://www.foo.bar/status?xml&full -; The Full status returns for each process: -; pid - the PID of the process; -; state - the state of the process (Idle, Running, ...); -; start time - the date and time the process has started; -; start since - the number of seconds since the process has started; -; requests - the number of requests the process has served; -; request duration - the duration in µs of the requests; -; request method - the request method (GET, POST, ...); -; request URI - the request URI with the query string; -; content length - the content length of the request (only with POST); -; user - the user (PHP_AUTH_USER) (or '-' if not set); -; script - the main script called (or '-' if not set); -; last request cpu - the %cpu the last request consumed -; it's always 0 if the process is not in Idle state -; because CPU calculation is done when the request -; processing has terminated; -; last request memory - the max amount of memory the last request consumed -; it's always 0 if the process is not in Idle state -; because memory calculation is done when the request -; processing has terminated; -; If the process is in Idle state, then informations are related to the -; last request the process has served. Otherwise informations are related to -; the current request being served. -; Example output: -; ************************ -; pid: 31330 -; state: Running -; start time: 01/Jul/2011:17:53:49 +0200 -; start since: 63087 -; requests: 12808 -; request duration: 1250261 -; request method: GET -; request URI: /test_mem.php?N=10000 -; content length: 0 -; user: - -; script: /home/fat/web/docs/php/test_mem.php -; last request cpu: 0.00 -; last request memory: 0 -; -; Note: There is a real-time FPM status monitoring sample web page available -; It's available in: /usr/local/share/php/fpm/status.html -; -; Note: The value must start with a leading slash (/). The value can be -; anything, but it may not be a good idea to use the .php extension or it -; may conflict with a real PHP file. -; Default Value: not set -;pm.status_path = /status - -; The ping URI to call the monitoring page of FPM. If this value is not set, no -; URI will be recognized as a ping page. This could be used to test from outside -; that FPM is alive and responding, or to -; - create a graph of FPM availability (rrd or such); -; - remove a server from a group if it is not responding (load balancing); -; - trigger alerts for the operating team (24/7). -; Note: The value must start with a leading slash (/). The value can be -; anything, but it may not be a good idea to use the .php extension or it -; may conflict with a real PHP file. -; Default Value: not set -;ping.path = /ping - -; This directive may be used to customize the response of a ping request. The -; response is formatted as text/plain with a 200 response code. -; Default Value: pong -;ping.response = pong - -; The access log file -; Default: not set -;access.log = log/$pool.access.log - -; The access log format. -; The following syntax is allowed -; %%: the '%' character -; %C: %CPU used by the request -; it can accept the following format: -; - %{user}C for user CPU only -; - %{system}C for system CPU only -; - %{total}C for user + system CPU (default) -; %d: time taken to serve the request -; it can accept the following format: -; - %{seconds}d (default) -; - %{miliseconds}d -; - %{mili}d -; - %{microseconds}d -; - %{micro}d -; %e: an environment variable (same as $_ENV or $_SERVER) -; it must be associated with embraces to specify the name of the env -; variable. Some exemples: -; - server specifics like: %{REQUEST_METHOD}e or %{SERVER_PROTOCOL}e -; - HTTP headers like: %{HTTP_HOST}e or %{HTTP_USER_AGENT}e -; %f: script filename -; %l: content-length of the request (for POST request only) -; %m: request method -; %M: peak of memory allocated by PHP -; it can accept the following format: -; - %{bytes}M (default) -; - %{kilobytes}M -; - %{kilo}M -; - %{megabytes}M -; - %{mega}M -; %n: pool name -; %o: output header -; it must be associated with embraces to specify the name of the header: -; - %{Content-Type}o -; - %{X-Powered-By}o -; - %{Transfert-Encoding}o -; - .... -; %p: PID of the child that serviced the request -; %P: PID of the parent of the child that serviced the request -; %q: the query string -; %Q: the '?' character if query string exists -; %r: the request URI (without the query string, see %q and %Q) -; %R: remote IP address -; %s: status (response code) -; %t: server time the request was received -; it can accept a strftime(3) format: -; %d/%b/%Y:%H:%M:%S %z (default) -; The strftime(3) format must be encapsuled in a %{}t tag -; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t -; %T: time the log has been written (the request has finished) -; it can accept a strftime(3) format: -; %d/%b/%Y:%H:%M:%S %z (default) -; The strftime(3) format must be encapsuled in a %{}t tag -; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t -; %u: remote user -; -; Default: "%R - %u %t \"%m %r\" %s" -;access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%" - -; The log file for slow requests -; Default Value: not set -; Note: slowlog is mandatory if request_slowlog_timeout is set -slowlog = /var/log/php/fpm.slow.log - -; The timeout for serving a single request after which a PHP backtrace will be -; dumped to the 'slowlog' file. A value of '0s' means 'off'. -; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) -; Default Value: 0 -request_slowlog_timeout = 3 - -; Depth of slow log stack trace. -; Default Value: 20 -;request_slowlog_trace_depth = 20 - -; The timeout for serving a single request after which the worker process will -; be killed. This option should be used when the 'max_execution_time' ini option -; does not stop script execution for some reason. A value of '0' means 'off'. -; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) -; Default Value: 0 -;request_terminate_timeout = 0 - -; Set open file descriptor rlimit. -; Default Value: system defined value -;rlimit_files = 1024 - -; Set max core size rlimit. -; Possible Values: 'unlimited' or an integer greater or equal to 0 -; Default Value: system defined value -;rlimit_core = 0 - -; Chroot to this directory at the start. This value must be defined as an -; absolute path. When this value is not set, chroot is not used. -; Note: you can prefix with '$prefix' to chroot to the pool prefix or one -; of its subdirectories. If the pool prefix is not set, the global prefix -; will be used instead. -; Note: chrooting is a great security feature and should be used whenever -; possible. However, all PHP paths will be relative to the chroot -; (error_log, sessions.save_path, ...). -; Default Value: not set -;chroot = - -; Chdir to this directory at the start. -; Note: relative path can be used. -; Default Value: current directory or / when chroot -;chdir = /var/www - -; Redirect worker stdout and stderr into main error log. If not set, stdout and -; stderr will be redirected to /dev/null according to FastCGI specs. -; Note: on highloaded environement, this can cause some delay in the page -; process time (several ms). -; Default Value: no -catch_workers_output = yes - -; Clear environment in FPM workers -; Prevents arbitrary environment variables from reaching FPM worker processes -; by clearing the environment in workers before env vars specified in this -; pool configuration are added. -; Setting to "no" will make all environment variables available to PHP code -; via getenv(), $_ENV and $_SERVER. -; Default Value: yes -;clear_env = no - -; Limits the extensions of the main script FPM will allow to parse. This can -; prevent configuration mistakes on the web server side. You should only limit -; FPM to .php extensions to prevent malicious users to use other extensions to -; execute php code. -; Note: set an empty value to allow all extensions. -; Default Value: .php -;security.limit_extensions = .php .php3 .php4 .php5 .php7 - -; Pass environment variables like LD_LIBRARY_PATH. All $VARIABLEs are taken from -; the current environment. -; Default Value: clean env -;env[HOSTNAME] = $HOSTNAME -;env[PATH] = /usr/local/bin:/usr/bin:/bin -;env[TMP] = /tmp -;env[TMPDIR] = /tmp -;env[TEMP] = /tmp - -; Additional php.ini defines, specific to this pool of workers. These settings -; overwrite the values previously defined in the php.ini. The directives are the -; same as the PHP SAPI: -; php_value/php_flag - you can set classic ini defines which can -; be overwritten from PHP call 'ini_set'. -; php_admin_value/php_admin_flag - these directives won't be overwritten by -; PHP call 'ini_set' -; For php_*flag, valid values are on, off, 1, 0, true, false, yes or no. - -; Defining 'extension' will load the corresponding shared extension from -; extension_dir. Defining 'disable_functions' or 'disable_classes' will not -; overwrite previously defined php.ini values, but will append the new value -; instead. - -; Note: path INI options can be relative and will be expanded with the prefix -; (pool, global or /usr/local) - -; Default Value: nothing is defined by default except the values in php.ini and -; specified at startup with the -d argument -;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com -;php_flag[display_errors] = off -;php_admin_value[error_log] = /var/log/fpm-php.www.log -;php_admin_flag[log_errors] = on -;php_admin_value[memory_limit] = 32M diff --git a/php7/7.2.34/build/php/php.ini b/php7/7.2.34/build/php/php.ini deleted file mode 100644 index b6b0aee69..000000000 --- a/php7/7.2.34/build/php/php.ini +++ /dev/null @@ -1,1933 +0,0 @@ -[PHP] - -;;;;;;;;;;;;;;;;;;; -; About php.ini ; -;;;;;;;;;;;;;;;;;;; -; PHP's initialization file, generally called php.ini, is responsible for -; configuring many of the aspects of PHP's behavior. - -; PHP attempts to find and load this configuration from a number of locations. -; The following is a summary of its search order: -; 1. SAPI module specific location. -; 2. The PHPRC environment variable. (As of PHP 5.2.0) -; 3. A number of predefined registry keys on Windows (As of PHP 5.2.0) -; 4. Current working directory (except CLI) -; 5. The web server's directory (for SAPI modules), or directory of PHP -; (otherwise in Windows) -; 6. The directory from the --with-config-file-path compile time option, or the -; Windows directory (C:\windows or C:\winnt) -; See the PHP docs for more specific information. -; http://php.net/configuration.file - -; The syntax of the file is extremely simple. Whitespace and lines -; beginning with a semicolon are silently ignored (as you probably guessed). -; Section headers (e.g. [Foo]) are also silently ignored, even though -; they might mean something in the future. - -; Directives following the section heading [PATH=/www/mysite] only -; apply to PHP files in the /www/mysite directory. Directives -; following the section heading [HOST=www.example.com] only apply to -; PHP files served from www.example.com. Directives set in these -; special sections cannot be overridden by user-defined INI files or -; at runtime. Currently, [PATH=] and [HOST=] sections only work under -; CGI/FastCGI. -; http://php.net/ini.sections - -; Directives are specified using the following syntax: -; directive = value -; Directive names are *case sensitive* - foo=bar is different from FOO=bar. -; Directives are variables used to configure PHP or PHP extensions. -; There is no name validation. If PHP can't find an expected -; directive because it is not set or is mistyped, a default value will be used. - -; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one -; of the INI constants (On, Off, True, False, Yes, No and None) or an expression -; (e.g. E_ALL & ~E_NOTICE), a quoted string ("bar"), or a reference to a -; previously set variable or directive (e.g. ${foo}) - -; Expressions in the INI file are limited to bitwise operators and parentheses: -; | bitwise OR -; ^ bitwise XOR -; & bitwise AND -; ~ bitwise NOT -; ! boolean NOT - -; Boolean flags can be turned on using the values 1, On, True or Yes. -; They can be turned off using the values 0, Off, False or No. - -; An empty string can be denoted by simply not writing anything after the equal -; sign, or by using the None keyword: - -; foo = ; sets foo to an empty string -; foo = None ; sets foo to an empty string -; foo = "None" ; sets foo to the string 'None' - -; If you use constants in your value, and these constants belong to a -; dynamically loaded extension (either a PHP extension or a Zend extension), -; you may only use these constants *after* the line that loads the extension. - -;;;;;;;;;;;;;;;;;;; -; About this file ; -;;;;;;;;;;;;;;;;;;; -; PHP comes packaged with two INI files. One that is recommended to be used -; in production environments and one that is recommended to be used in -; development environments. - -; php.ini-production contains settings which hold security, performance and -; best practices at its core. But please be aware, these settings may break -; compatibility with older or less security conscience applications. We -; recommending using the production ini in production and testing environments. - -; php.ini-development is very similar to its production variant, except it is -; much more verbose when it comes to errors. We recommend using the -; development version only in development environments, as errors shown to -; application users can inadvertently leak otherwise secure information. - -; This is php.ini-production INI file. - -;;;;;;;;;;;;;;;;;;; -; Quick Reference ; -;;;;;;;;;;;;;;;;;;; -; The following are all the settings which are different in either the production -; or development versions of the INIs with respect to PHP's default behavior. -; Please see the actual settings later in the document for more details as to why -; we recommend these changes in PHP's behavior. - -; display_errors -; Default Value: On -; Development Value: On -; Production Value: Off - -; display_startup_errors -; Default Value: Off -; Development Value: On -; Production Value: Off - -; error_reporting -; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT - -; html_errors -; Default Value: On -; Development Value: On -; Production value: On - -; log_errors -; Default Value: Off -; Development Value: On -; Production Value: On - -; max_input_time -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) - -; output_buffering -; Default Value: Off -; Development Value: 4096 -; Production Value: 4096 - -; register_argc_argv -; Default Value: On -; Development Value: Off -; Production Value: Off - -; request_order -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" - -; session.gc_divisor -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 - -; session.sid_bits_per_character -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 - -; short_open_tag -; Default Value: On -; Development Value: Off -; Production Value: Off - -; track_errors -; Default Value: Off -; Development Value: On -; Production Value: Off - -; variables_order -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS" - -;;;;;;;;;;;;;;;;;;;; -; php.ini Options ; -;;;;;;;;;;;;;;;;;;;; -; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini" -;user_ini.filename = ".user.ini" - -; To disable this feature set this option to empty value -;user_ini.filename = - -; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes) -;user_ini.cache_ttl = 300 - -;;;;;;;;;;;;;;;;;;;; -; Language Options ; -;;;;;;;;;;;;;;;;;;;; - -; Enable the PHP scripting language engine under Apache. -; http://php.net/engine -engine = On - -; This directive determines whether or not PHP will recognize code between -; tags as PHP source which should be processed as such. It is -; generally recommended that should be used and that this feature -; should be disabled, as enabling it may result in issues when generating XML -; documents, however this remains supported for backward compatibility reasons. -; Note that this directive does not control the would work. -; http://php.net/syntax-highlighting -;highlight.string = #DD0000 -;highlight.comment = #FF9900 -;highlight.keyword = #007700 -;highlight.default = #0000BB -;highlight.html = #000000 - -; If enabled, the request will be allowed to complete even if the user aborts -; the request. Consider enabling it if executing long requests, which may end up -; being interrupted by the user or a browser timing out. PHP's default behavior -; is to disable this feature. -; http://php.net/ignore-user-abort -;ignore_user_abort = On - -; Determines the size of the realpath cache to be used by PHP. This value should -; be increased on systems where PHP opens many files to reflect the quantity of -; the file operations performed. -; http://php.net/realpath-cache-size -;realpath_cache_size = 4096k - -; Duration of time, in seconds for which to cache realpath information for a given -; file or directory. For systems with rarely changing files, consider increasing this -; value. -; http://php.net/realpath-cache-ttl -;realpath_cache_ttl = 120 - -; Enables or disables the circular reference collector. -; http://php.net/zend.enable-gc -zend.enable_gc = On - -; If enabled, scripts may be written in encodings that are incompatible with -; the scanner. CP936, Big5, CP949 and Shift_JIS are the examples of such -; encodings. To use this feature, mbstring extension must be enabled. -; Default: Off -;zend.multibyte = Off - -; Allows to set the default encoding for the scripts. This value will be used -; unless "declare(encoding=...)" directive appears at the top of the script. -; Only affects if zend.multibyte is set. -; Default: "" -;zend.script_encoding = - -;;;;;;;;;;;;;;;;; -; Miscellaneous ; -;;;;;;;;;;;;;;;;; - -; Decides whether PHP may expose the fact that it is installed on the server -; (e.g. by adding its signature to the Web server header). It is no security -; threat in any way, but it makes it possible to determine whether you use PHP -; on your server or not. -; http://php.net/expose-php -expose_php = Off - -;;;;;;;;;;;;;;;;;;; -; Resource Limits ; -;;;;;;;;;;;;;;;;;;; - -; Maximum execution time of each script, in seconds -; http://php.net/max-execution-time -; Note: This directive is hardcoded to 0 for the CLI SAPI -max_execution_time = 30 - -; Maximum amount of time each script may spend parsing request data. It's a good -; idea to limit this time on productions servers in order to eliminate unexpectedly -; long running scripts. -; Note: This directive is hardcoded to -1 for the CLI SAPI -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) -; http://php.net/max-input-time -max_input_time = 60 - -; Maximum input variable nesting level -; http://php.net/max-input-nesting-level -;max_input_nesting_level = 64 - -; How many GET/POST/COOKIE input variables may be accepted -; max_input_vars = 1000 - -; Maximum amount of memory a script may consume (128MB) -; http://php.net/memory-limit -memory_limit = 256M - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; Error handling and logging ; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -; This directive informs PHP of which errors, warnings and notices you would like -; it to take action for. The recommended way of setting values for this -; directive is through the use of the error level constants and bitwise -; operators. The error level constants are below here for convenience as well as -; some common settings and their meanings. -; By default, PHP is set to take action on all errors, notices and warnings EXCEPT -; those related to E_NOTICE and E_STRICT, which together cover best practices and -; recommended coding standards in PHP. For performance reasons, this is the -; recommend error reporting setting. Your production server shouldn't be wasting -; resources complaining about best practices and coding standards. That's what -; development servers and development settings are for. -; Note: The php.ini-development file has this setting as E_ALL. This -; means it pretty much reports everything which is exactly what you want during -; development and early testing. -; -; Error Level Constants: -; E_ALL - All errors and warnings (includes E_STRICT as of PHP 5.4.0) -; E_ERROR - fatal run-time errors -; E_RECOVERABLE_ERROR - almost fatal run-time errors -; E_WARNING - run-time warnings (non-fatal errors) -; E_PARSE - compile-time parse errors -; E_NOTICE - run-time notices (these are warnings which often result -; from a bug in your code, but it's possible that it was -; intentional (e.g., using an uninitialized variable and -; relying on the fact it is automatically initialized to an -; empty string) -; E_STRICT - run-time notices, enable to have PHP suggest changes -; to your code which will ensure the best interoperability -; and forward compatibility of your code -; E_CORE_ERROR - fatal errors that occur during PHP's initial startup -; E_CORE_WARNING - warnings (non-fatal errors) that occur during PHP's -; initial startup -; E_COMPILE_ERROR - fatal compile-time errors -; E_COMPILE_WARNING - compile-time warnings (non-fatal errors) -; E_USER_ERROR - user-generated error message -; E_USER_WARNING - user-generated warning message -; E_USER_NOTICE - user-generated notice message -; E_DEPRECATED - warn about code that will not work in future versions -; of PHP -; E_USER_DEPRECATED - user-generated deprecation warnings -; -; Common Values: -; E_ALL (Show all errors, warnings and notices including coding standards.) -; E_ALL & ~E_NOTICE (Show all errors, except for notices) -; E_ALL & ~E_NOTICE & ~E_STRICT (Show all errors, except for notices and coding standards warnings.) -; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors) -; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT -; http://php.net/error-reporting -error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT - -; This directive controls whether or not and where PHP will output errors, -; notices and warnings too. Error output is very useful during development, but -; it could be very dangerous in production environments. Depending on the code -; which is triggering the error, sensitive information could potentially leak -; out of your application such as database usernames and passwords or worse. -; For production environments, we recommend logging errors rather than -; sending them to STDOUT. -; Possible Values: -; Off = Do not display any errors -; stderr = Display errors to STDERR (affects only CGI/CLI binaries!) -; On or stdout = Display errors to STDOUT -; Default Value: On -; Development Value: On -; Production Value: Off -; http://php.net/display-errors -display_errors = Off - -; The display of errors which occur during PHP's startup sequence are handled -; separately from display_errors. PHP's default behavior is to suppress those -; errors from clients. Turning the display of startup errors on can be useful in -; debugging configuration problems. We strongly recommend you -; set this to 'off' for production servers. -; Default Value: Off -; Development Value: On -; Production Value: Off -; http://php.net/display-startup-errors -display_startup_errors = Off - -; Besides displaying errors, PHP can also log errors to locations such as a -; server-specific log, STDERR, or a location specified by the error_log -; directive found below. While errors should not be displayed on productions -; servers they should still be monitored and logging is a great way to do that. -; Default Value: Off -; Development Value: On -; Production Value: On -; http://php.net/log-errors -log_errors = On - -; Set maximum length of log_errors. In error_log information about the source is -; added. The default is 1024 and 0 allows to not apply any maximum length at all. -; http://php.net/log-errors-max-len -log_errors_max_len = 1024 - -; Do not log repeated messages. Repeated errors must occur in same file on same -; line unless ignore_repeated_source is set true. -; http://php.net/ignore-repeated-errors -ignore_repeated_errors = Off - -; Ignore source of message when ignoring repeated messages. When this setting -; is On you will not log errors with repeated messages from different files or -; source lines. -; http://php.net/ignore-repeated-source -ignore_repeated_source = Off - -; If this parameter is set to Off, then memory leaks will not be shown (on -; stdout or in the log). This has only effect in a debug compile, and if -; error reporting includes E_WARNING in the allowed list -; http://php.net/report-memleaks -report_memleaks = On - -; This setting is on by default. -;report_zend_debug = 0 - -; Store the last error/warning message in $php_errormsg (boolean). Setting this value -; to On can assist in debugging and is appropriate for development servers. It should -; however be disabled on production servers. -; Default Value: Off -; Development Value: On -; Production Value: Off -; http://php.net/track-errors -track_errors = Off - -; Turn off normal error reporting and emit XML-RPC error XML -; http://php.net/xmlrpc-errors -;xmlrpc_errors = 0 - -; An XML-RPC faultCode -;xmlrpc_error_number = 0 - -; When PHP displays or logs an error, it has the capability of formatting the -; error message as HTML for easier reading. This directive controls whether -; the error message is formatted as HTML or not. -; Note: This directive is hardcoded to Off for the CLI SAPI -; Default Value: On -; Development Value: On -; Production value: On -; http://php.net/html-errors -html_errors = On - -; If html_errors is set to On *and* docref_root is not empty, then PHP -; produces clickable error messages that direct to a page describing the error -; or function causing the error in detail. -; You can download a copy of the PHP manual from http://php.net/docs -; and change docref_root to the base URL of your local copy including the -; leading '/'. You must also specify the file extension being used including -; the dot. PHP's default behavior is to leave these settings empty, in which -; case no links to documentation are generated. -; Note: Never use this feature for production boxes. -; http://php.net/docref-root -; Examples -;docref_root = "/phpmanual/" - -; http://php.net/docref-ext -;docref_ext = .html - -; String to output before an error message. PHP's default behavior is to leave -; this setting blank. -; http://php.net/error-prepend-string -; Example: -;error_prepend_string = "" - -; String to output after an error message. PHP's default behavior is to leave -; this setting blank. -; http://php.net/error-append-string -; Example: -;error_append_string = "" - -; Log errors to specified file. PHP's default behavior is to leave this value -; empty. -; http://php.net/error-log -; Example: -;error_log = php_errors.log -; Log errors to syslog (Event Log on Windows). -error_log = /var/log/php/php.error.log - -;windows.show_crt_warning -; Default value: 0 -; Development value: 0 -; Production value: 0 - -;;;;;;;;;;;;;;;;; -; Data Handling ; -;;;;;;;;;;;;;;;;; - -; The separator used in PHP generated URLs to separate arguments. -; PHP's default setting is "&". -; http://php.net/arg-separator.output -; Example: -;arg_separator.output = "&" - -; List of separator(s) used by PHP to parse input URLs into variables. -; PHP's default setting is "&". -; NOTE: Every character in this directive is considered as separator! -; http://php.net/arg-separator.input -; Example: -;arg_separator.input = ";&" - -; This directive determines which super global arrays are registered when PHP -; starts up. G,P,C,E & S are abbreviations for the following respective super -; globals: GET, POST, COOKIE, ENV and SERVER. There is a performance penalty -; paid for the registration of these arrays and because ENV is not as commonly -; used as the others, ENV is not recommended on productions servers. You -; can still get access to the environment variables through getenv() should you -; need to. -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS"; -; http://php.net/variables-order -variables_order = "GPCS" - -; This directive determines which super global data (G,P & C) should be -; registered into the super global array REQUEST. If so, it also determines -; the order in which that data is registered. The values for this directive -; are specified in the same manner as the variables_order directive, -; EXCEPT one. Leaving this value empty will cause PHP to use the value set -; in the variables_order directive. It does not mean it will leave the super -; globals array REQUEST empty. -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" -; http://php.net/request-order -request_order = "GP" - -; This directive determines whether PHP registers $argv & $argc each time it -; runs. $argv contains an array of all the arguments passed to PHP when a script -; is invoked. $argc contains an integer representing the number of arguments -; that were passed when the script was invoked. These arrays are extremely -; useful when running scripts from the command line. When this directive is -; enabled, registering these variables consumes CPU cycles and memory each time -; a script is executed. For performance reasons, this feature should be disabled -; on production servers. -; Note: This directive is hardcoded to On for the CLI SAPI -; Default Value: On -; Development Value: Off -; Production Value: Off -; http://php.net/register-argc-argv -register_argc_argv = Off - -; When enabled, the ENV, REQUEST and SERVER variables are created when they're -; first used (Just In Time) instead of when the script starts. If these -; variables are not used within a script, having this directive on will result -; in a performance gain. The PHP directive register_argc_argv must be disabled -; for this directive to have any affect. -; http://php.net/auto-globals-jit -auto_globals_jit = On - -; Whether PHP will read the POST data. -; This option is enabled by default. -; Most likely, you won't want to disable this option globally. It causes $_POST -; and $_FILES to always be empty; the only way you will be able to read the -; POST data will be through the php://input stream wrapper. This can be useful -; to proxy requests or to process the POST data in a memory efficient fashion. -; http://php.net/enable-post-data-reading -;enable_post_data_reading = Off - -; Maximum size of POST data that PHP will accept. -; Its value may be 0 to disable the limit. It is ignored if POST data reading -; is disabled through enable_post_data_reading. -; http://php.net/post-max-size -post_max_size = 100M - -; Automatically add files before PHP document. -; http://php.net/auto-prepend-file -auto_prepend_file = - -; Automatically add files after PHP document. -; http://php.net/auto-append-file -auto_append_file = - -; By default, PHP will output a media type using the Content-Type header. To -; disable this, simply set it to be empty. -; -; PHP's built-in default media type is set to text/html. -; http://php.net/default-mimetype -default_mimetype = "text/html" - -; PHP's default character set is set to UTF-8. -; http://php.net/default-charset -default_charset = "UTF-8" - -; PHP internal character encoding is set to empty. -; If empty, default_charset is used. -; http://php.net/internal-encoding -;internal_encoding = - -; PHP input character encoding is set to empty. -; If empty, default_charset is used. -; http://php.net/input-encoding -;input_encoding = - -; PHP output character encoding is set to empty. -; If empty, default_charset is used. -; See also output_buffer. -; http://php.net/output-encoding -;output_encoding = - -;;;;;;;;;;;;;;;;;;;;;;;;; -; Paths and Directories ; -;;;;;;;;;;;;;;;;;;;;;;;;; - -; UNIX: "/path1:/path2" -;include_path = ".:/php/includes" -; -; Windows: "\path1;\path2" -;include_path = ".;c:\php\includes" -; -; PHP's default setting for include_path is ".;/path/to/php/pear" -; http://php.net/include-path - -; The root of the PHP pages, used only if nonempty. -; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root -; if you are running php as a CGI under any web server (other than IIS) -; see documentation for security issues. The alternate is to use the -; cgi.force_redirect configuration below -; http://php.net/doc-root -doc_root = - -; The directory under which PHP opens the script using /~username used only -; if nonempty. -; http://php.net/user-dir -user_dir = - -; Directory in which the loadable extensions (modules) reside. -; http://php.net/extension-dir -; extension_dir = "./" -; On windows: -; extension_dir = "ext" - -; Directory where the temporary files should be placed. -; Defaults to the system default (see sys_get_temp_dir) -; sys_temp_dir = "/tmp" - -; Whether or not to enable the dl() function. The dl() function does NOT work -; properly in multithreaded servers, such as IIS or Zeus, and is automatically -; disabled on them. -; http://php.net/enable-dl -enable_dl = Off - -; cgi.force_redirect is necessary to provide security running PHP as a CGI under -; most web servers. Left undefined, PHP turns this on by default. You can -; turn it off here AT YOUR OWN RISK -; **You CAN safely turn this off for IIS, in fact, you MUST.** -; http://php.net/cgi.force-redirect -;cgi.force_redirect = 1 - -; if cgi.nph is enabled it will force cgi to always sent Status: 200 with -; every request. PHP's default behavior is to disable this feature. -;cgi.nph = 1 - -; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape -; (iPlanet) web servers, you MAY need to set an environment variable name that PHP -; will look for to know it is OK to continue execution. Setting this variable MAY -; cause security issues, KNOW WHAT YOU ARE DOING FIRST. -; http://php.net/cgi.redirect-status-env -;cgi.redirect_status_env = - -; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's -; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok -; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting -; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting -; of zero causes PHP to behave as before. Default is 1. You should fix your scripts -; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. -; http://php.net/cgi.fix-pathinfo -;cgi.fix_pathinfo=1 - -; if cgi.discard_path is enabled, the PHP CGI binary can safely be placed outside -; of the web tree and people will not be able to circumvent .htaccess security. -; http://php.net/cgi.dicard-path -;cgi.discard_path=1 - -; FastCGI under IIS (on WINNT based OS) supports the ability to impersonate -; security tokens of the calling client. This allows IIS to define the -; security context that the request runs under. mod_fastcgi under Apache -; does not currently support this feature (03/17/2002) -; Set to 1 if running under IIS. Default is zero. -; http://php.net/fastcgi.impersonate -;fastcgi.impersonate = 1 - -; Disable logging through FastCGI connection. PHP's default behavior is to enable -; this feature. -;fastcgi.logging = 0 - -; cgi.rfc2616_headers configuration option tells PHP what type of headers to -; use when sending HTTP response code. If set to 0, PHP sends Status: header that -; is supported by Apache. When this option is set to 1, PHP will send -; RFC2616 compliant header. -; Default is zero. -; http://php.net/cgi.rfc2616-headers -;cgi.rfc2616_headers = 0 - -; cgi.check_shebang_line controls whether CGI PHP checks for line starting with #! -; (shebang) at the top of the running script. This line might be needed if the -; script support running both as stand-alone script and via PHP CGI<. PHP in CGI -; mode skips this line and ignores its content if this directive is turned on. -; http://php.net/cgi.check-shebang-line -;cgi.check_shebang_line=1 - -;;;;;;;;;;;;;;;; -; File Uploads ; -;;;;;;;;;;;;;;;; - -; Whether to allow HTTP file uploads. -; http://php.net/file-uploads -file_uploads = On - -; Temporary directory for HTTP uploaded files (will use system default if not -; specified). -; http://php.net/upload-tmp-dir -;upload_tmp_dir = - -; Maximum allowed size for uploaded files. -; http://php.net/upload-max-filesize -upload_max_filesize = 50M - -; Maximum number of files that can be uploaded via a single request -max_file_uploads = 20 - -;;;;;;;;;;;;;;;;;; -; Fopen wrappers ; -;;;;;;;;;;;;;;;;;; - -; Whether to allow the treatment of URLs (like http:// or ftp://) as files. -; http://php.net/allow-url-fopen -allow_url_fopen = On - -; Whether to allow include/require to open URLs (like http:// or ftp://) as files. -; http://php.net/allow-url-include -allow_url_include = Off - -; Define the anonymous ftp password (your email address). PHP's default setting -; for this is empty. -; http://php.net/from -;from="john@doe.com" - -; Define the User-Agent string. PHP's default setting for this is empty. -; http://php.net/user-agent -;user_agent="PHP" - -; Default timeout for socket based streams (seconds) -; http://php.net/default-socket-timeout -default_socket_timeout = 60 - -; If your scripts have to deal with files from Macintosh systems, -; or you are running on a Mac and need to deal with files from -; unix or win32 systems, setting this flag will cause PHP to -; automatically detect the EOL character in those files so that -; fgets() and file() will work regardless of the source of the file. -; http://php.net/auto-detect-line-endings -;auto_detect_line_endings = Off - -;;;;;;;;;;;;;;;;;;;;;; -; Dynamic Extensions ; -;;;;;;;;;;;;;;;;;;;;;; - -; If you wish to have an extension loaded automatically, use the following -; syntax: -; -; extension=modulename.extension -; -; For example, on Windows: -; -; extension=mysqli.dll -; -; ... or under UNIX: -; -; extension=mysqli.so -; -; ... or with a path: -; -; extension=/path/to/extension/mysqli.so -; -; If you only provide the name of the extension, PHP will look for it in its -; default extension directory. -; -; Windows Extensions -; Note that ODBC support is built in, so no dll is needed for it. -; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5+) -; extension folders as well as the separate PECL DLL download (PHP 5+). -; Be sure to appropriately set the extension_dir directive. -; -;extension=php_bz2.dll -;extension=php_curl.dll -;extension=php_fileinfo.dll -;extension=php_ftp.dll -;extension=php_gd2.dll -;extension=php_gettext.dll -;extension=php_gmp.dll -;extension=php_intl.dll -;extension=php_imap.dll -;extension=php_interbase.dll -;extension=php_ldap.dll -;extension=php_mbstring.dll -;extension=php_exif.dll ; Must be after mbstring as it depends on it -;extension=php_mysqli.dll -;extension=php_oci8_12c.dll ; Use with Oracle Database 12c Instant Client -;extension=php_openssl.dll -;extension=php_pdo_firebird.dll -;extension=php_pdo_mysql.dll -;extension=php_pdo_oci.dll -;extension=php_pdo_odbc.dll -;extension=php_pdo_pgsql.dll -;extension=php_pdo_sqlite.dll -;extension=php_pgsql.dll -;extension=php_shmop.dll - -; The MIBS data available in the PHP distribution must be installed. -; See http://www.php.net/manual/en/snmp.installation.php -;extension=php_snmp.dll - -;extension=php_soap.dll -;extension=php_sockets.dll -;extension=php_sqlite3.dll -;extension=php_tidy.dll -;extension=php_xmlrpc.dll -;extension=php_xsl.dll - -;;;;;;;;;;;;;;;;;;; -; Module Settings ; -;;;;;;;;;;;;;;;;;;; - -[CLI Server] -; Whether the CLI web server uses ANSI color coding in its terminal output. -cli_server.color = On - -[Date] -; Defines the default timezone used by the date functions -; http://php.net/date.timezone -date.timezone = Asia/Shanghai - -; http://php.net/date.default-latitude -;date.default_latitude = 31.7667 - -; http://php.net/date.default-longitude -;date.default_longitude = 35.2333 - -; http://php.net/date.sunrise-zenith -;date.sunrise_zenith = 90.583333 - -; http://php.net/date.sunset-zenith -;date.sunset_zenith = 90.583333 - -[filter] -; http://php.net/filter.default -;filter.default = unsafe_raw - -; http://php.net/filter.default-flags -;filter.default_flags = - -[iconv] -; Use of this INI entry is deprecated, use global input_encoding instead. -; If empty, default_charset or input_encoding or iconv.input_encoding is used. -; The precedence is: default_charset < intput_encoding < iconv.input_encoding -;iconv.input_encoding = - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;iconv.internal_encoding = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; If empty, default_charset or output_encoding or iconv.output_encoding is used. -; The precedence is: default_charset < output_encoding < iconv.output_encoding -; To use an output encoding conversion, iconv's output handler must be set -; otherwise output encoding conversion cannot be performed. -;iconv.output_encoding = - -[intl] -;intl.default_locale = -; This directive allows you to produce PHP errors when some error -; happens within intl functions. The value is the level of the error produced. -; Default is 0, which does not produce any errors. -;intl.error_level = E_WARNING -;intl.use_exceptions = 0 - -[sqlite3] -;sqlite3.extension_dir = - -[Pcre] -;PCRE library backtracking limit. -; http://php.net/pcre.backtrack-limit -;pcre.backtrack_limit=100000 - -;PCRE library recursion limit. -;Please note that if you set this value to a high number you may consume all -;the available process stack and eventually crash PHP (due to reaching the -;stack size limit imposed by the Operating System). -; http://php.net/pcre.recursion-limit -;pcre.recursion_limit=100000 - -;Enables or disables JIT compilation of patterns. This requires the PCRE -;library to be compiled with JIT support. -;pcre.jit=1 - -[Pdo] -; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off" -; http://php.net/pdo-odbc.connection-pooling -;pdo_odbc.connection_pooling=strict - -;pdo_odbc.db2_instance_name - -[Pdo_mysql] -; If mysqlnd is used: Number of cache slots for the internal result set cache -; http://php.net/pdo_mysql.cache_size -pdo_mysql.cache_size = 2000 - -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -; http://php.net/pdo_mysql.default-socket -pdo_mysql.default_socket= - -[Phar] -; http://php.net/phar.readonly -;phar.readonly = On - -; http://php.net/phar.require-hash -;phar.require_hash = On - -;phar.cache_list = - -[mail function] -; For Win32 only. -; http://php.net/smtp -SMTP = localhost -; http://php.net/smtp-port -smtp_port = 25 - -; For Win32 only. -; http://php.net/sendmail-from -;sendmail_from = me@example.com - -; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). -; http://php.net/sendmail-path -;sendmail_path = - -; Force the addition of the specified parameters to be passed as extra parameters -; to the sendmail binary. These parameters will always replace the value of -; the 5th parameter to mail(). -;mail.force_extra_parameters = - -; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename -mail.add_x_header = On - -; The path to a log file that will log all mail() calls. Log entries include -; the full path of the script, line number, To address and headers. -;mail.log = -; Log mail to syslog (Event Log on Windows). -;mail.log = syslog - -[ODBC] -; http://php.net/odbc.default-db -;odbc.default_db = Not yet implemented - -; http://php.net/odbc.default-user -;odbc.default_user = Not yet implemented - -; http://php.net/odbc.default-pw -;odbc.default_pw = Not yet implemented - -; Controls the ODBC cursor model. -; Default: SQL_CURSOR_STATIC (default). -;odbc.default_cursortype - -; Allow or prevent persistent links. -; http://php.net/odbc.allow-persistent -odbc.allow_persistent = On - -; Check that a connection is still valid before reuse. -; http://php.net/odbc.check-persistent -odbc.check_persistent = On - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/odbc.max-persistent -odbc.max_persistent = -1 - -; Maximum number of links (persistent + non-persistent). -1 means no limit. -; http://php.net/odbc.max-links -odbc.max_links = -1 - -; Handling of LONG fields. Returns number of bytes to variables. 0 means -; passthru. -; http://php.net/odbc.defaultlrl -odbc.defaultlrl = 4096 - -; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char. -; See the documentation on odbc_binmode and odbc_longreadlen for an explanation -; of odbc.defaultlrl and odbc.defaultbinmode -; http://php.net/odbc.defaultbinmode -odbc.defaultbinmode = 1 - -;birdstep.max_links = -1 - -[Interbase] -; Allow or prevent persistent links. -ibase.allow_persistent = 1 - -; Maximum number of persistent links. -1 means no limit. -ibase.max_persistent = -1 - -; Maximum number of links (persistent + non-persistent). -1 means no limit. -ibase.max_links = -1 - -; Default database name for ibase_connect(). -;ibase.default_db = - -; Default username for ibase_connect(). -;ibase.default_user = - -; Default password for ibase_connect(). -;ibase.default_password = - -; Default charset for ibase_connect(). -;ibase.default_charset = - -; Default timestamp format. -ibase.timestampformat = "%Y-%m-%d %H:%M:%S" - -; Default date format. -ibase.dateformat = "%Y-%m-%d" - -; Default time format. -ibase.timeformat = "%H:%M:%S" - -[MySQLi] - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/mysqli.max-persistent -mysqli.max_persistent = -1 - -; Allow accessing, from PHP's perspective, local files with LOAD DATA statements -; http://php.net/mysqli.allow_local_infile -;mysqli.allow_local_infile = On - -; Allow or prevent persistent links. -; http://php.net/mysqli.allow-persistent -mysqli.allow_persistent = On - -; Maximum number of links. -1 means no limit. -; http://php.net/mysqli.max-links -mysqli.max_links = -1 - -; If mysqlnd is used: Number of cache slots for the internal result set cache -; http://php.net/mysqli.cache_size -mysqli.cache_size = 2000 - -; Default port number for mysqli_connect(). If unset, mysqli_connect() will use -; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the -; compile-time value defined MYSQL_PORT (in that order). Win32 will only look -; at MYSQL_PORT. -; http://php.net/mysqli.default-port -mysqli.default_port = 3306 - -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -; http://php.net/mysqli.default-socket -mysqli.default_socket = - -; Default host for mysql_connect() (doesn't apply in safe mode). -; http://php.net/mysqli.default-host -mysqli.default_host = - -; Default user for mysql_connect() (doesn't apply in safe mode). -; http://php.net/mysqli.default-user -mysqli.default_user = - -; Default password for mysqli_connect() (doesn't apply in safe mode). -; Note that this is generally a *bad* idea to store passwords in this file. -; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw") -; and reveal this password! And of course, any users with read access to this -; file will be able to reveal the password as well. -; http://php.net/mysqli.default-pw -mysqli.default_pw = - -; Allow or prevent reconnect -mysqli.reconnect = Off - -[mysqlnd] -; Enable / Disable collection of general statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -; http://php.net/mysqlnd.collect_statistics -mysqlnd.collect_statistics = On - -; Enable / Disable collection of memory usage statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -; http://php.net/mysqlnd.collect_memory_statistics -mysqlnd.collect_memory_statistics = Off - -; Records communication from all extensions using mysqlnd to the specified log -; file. -; http://php.net/mysqlnd.debug -;mysqlnd.debug = - -; Defines which queries will be logged. -; http://php.net/mysqlnd.log_mask -;mysqlnd.log_mask = 0 - -; Default size of the mysqlnd memory pool, which is used by result sets. -; http://php.net/mysqlnd.mempool_default_size -;mysqlnd.mempool_default_size = 16000 - -; Size of a pre-allocated buffer used when sending commands to MySQL in bytes. -; http://php.net/mysqlnd.net_cmd_buffer_size -;mysqlnd.net_cmd_buffer_size = 2048 - -; Size of a pre-allocated buffer used for reading data sent by the server in -; bytes. -; http://php.net/mysqlnd.net_read_buffer_size -;mysqlnd.net_read_buffer_size = 32768 - -; Timeout for network requests in seconds. -; http://php.net/mysqlnd.net_read_timeout -;mysqlnd.net_read_timeout = 31536000 - -; SHA-256 Authentication Plugin related. File with the MySQL server public RSA -; key. -; http://php.net/mysqlnd.sha256_server_public_key -;mysqlnd.sha256_server_public_key = - -[OCI8] - -; Connection: Enables privileged connections using external -; credentials (OCI_SYSOPER, OCI_SYSDBA) -; http://php.net/oci8.privileged-connect -;oci8.privileged_connect = Off - -; Connection: The maximum number of persistent OCI8 connections per -; process. Using -1 means no limit. -; http://php.net/oci8.max-persistent -;oci8.max_persistent = -1 - -; Connection: The maximum number of seconds a process is allowed to -; maintain an idle persistent connection. Using -1 means idle -; persistent connections will be maintained forever. -; http://php.net/oci8.persistent-timeout -;oci8.persistent_timeout = -1 - -; Connection: The number of seconds that must pass before issuing a -; ping during oci_pconnect() to check the connection validity. When -; set to 0, each oci_pconnect() will cause a ping. Using -1 disables -; pings completely. -; http://php.net/oci8.ping-interval -;oci8.ping_interval = 60 - -; Connection: Set this to a user chosen connection class to be used -; for all pooled server requests with Oracle 11g Database Resident -; Connection Pooling (DRCP). To use DRCP, this value should be set to -; the same string for all web servers running the same application, -; the database pool must be configured, and the connection string must -; specify to use a pooled server. -;oci8.connection_class = - -; High Availability: Using On lets PHP receive Fast Application -; Notification (FAN) events generated when a database node fails. The -; database must also be configured to post FAN events. -;oci8.events = Off - -; Tuning: This option enables statement caching, and specifies how -; many statements to cache. Using 0 disables statement caching. -; http://php.net/oci8.statement-cache-size -;oci8.statement_cache_size = 20 - -; Tuning: Enables statement prefetching and sets the default number of -; rows that will be fetched automatically after statement execution. -; http://php.net/oci8.default-prefetch -;oci8.default_prefetch = 100 - -; Compatibility. Using On means oci_close() will not close -; oci_connect() and oci_new_connect() connections. -; http://php.net/oci8.old-oci-close-semantics -;oci8.old_oci_close_semantics = Off - -[PostgreSQL] -; Allow or prevent persistent links. -; http://php.net/pgsql.allow-persistent -pgsql.allow_persistent = On - -; Detect broken persistent links always with pg_pconnect(). -; Auto reset feature requires a little overheads. -; http://php.net/pgsql.auto-reset-persistent -pgsql.auto_reset_persistent = Off - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/pgsql.max-persistent -pgsql.max_persistent = -1 - -; Maximum number of links (persistent+non persistent). -1 means no limit. -; http://php.net/pgsql.max-links -pgsql.max_links = -1 - -; Ignore PostgreSQL backends Notice message or not. -; Notice message logging require a little overheads. -; http://php.net/pgsql.ignore-notice -pgsql.ignore_notice = 0 - -; Log PostgreSQL backends Notice message or not. -; Unless pgsql.ignore_notice=0, module cannot log notice message. -; http://php.net/pgsql.log-notice -pgsql.log_notice = 0 - -[bcmath] -; Number of decimal digits for all bcmath functions. -; http://php.net/bcmath.scale -bcmath.scale = 0 - -[browscap] -; http://php.net/browscap -;browscap = extra/browscap.ini - -[Session] -; Handler used to store/retrieve data. -; http://php.net/session.save-handler -session.save_handler = files - -; Argument passed to save_handler. In the case of files, this is the path -; where data files are stored. Note: Windows users have to change this -; variable in order to use PHP's session functions. -; -; The path can be defined as: -; -; session.save_path = "N;/path" -; -; where N is an integer. Instead of storing all the session files in -; /path, what this will do is use subdirectories N-levels deep, and -; store the session data in those directories. This is useful if -; your OS has problems with many files in one directory, and is -; a more efficient layout for servers that handle many sessions. -; -; NOTE 1: PHP will not create this directory structure automatically. -; You can use the script in the ext/session dir for that purpose. -; NOTE 2: See the section on garbage collection below if you choose to -; use subdirectories for session storage -; -; The file storage module creates files using mode 600 by default. -; You can change that by using -; -; session.save_path = "N;MODE;/path" -; -; where MODE is the octal representation of the mode. Note that this -; does not overwrite the process's umask. -; http://php.net/session.save-path -;session.save_path = "/tmp" - -; Whether to use strict session mode. -; Strict session mode does not accept uninitialized session ID and regenerate -; session ID if browser sends uninitialized session ID. Strict mode protects -; applications from session fixation via session adoption vulnerability. It is -; disabled by default for maximum compatibility, but enabling it is encouraged. -; https://wiki.php.net/rfc/strict_sessions -session.use_strict_mode = 0 - -; Whether to use cookies. -; http://php.net/session.use-cookies -session.use_cookies = 1 - -; http://php.net/session.cookie-secure -;session.cookie_secure = - -; This option forces PHP to fetch and use a cookie for storing and maintaining -; the session id. We encourage this operation as it's very helpful in combating -; session hijacking when not specifying and managing your own session id. It is -; not the be-all and end-all of session hijacking defense, but it's a good start. -; http://php.net/session.use-only-cookies -session.use_only_cookies = 1 - -; Name of the session (used as cookie name). -; http://php.net/session.name -session.name = PHPSESSID - -; Initialize session on request startup. -; http://php.net/session.auto-start -session.auto_start = 0 - -; Lifetime in seconds of cookie or, if 0, until browser is restarted. -; http://php.net/session.cookie-lifetime -session.cookie_lifetime = 0 - -; The path for which the cookie is valid. -; http://php.net/session.cookie-path -session.cookie_path = / - -; The domain for which the cookie is valid. -; http://php.net/session.cookie-domain -session.cookie_domain = - -; Whether or not to add the httpOnly flag to the cookie, which makes it inaccessible to browser scripting languages such as JavaScript. -; http://php.net/session.cookie-httponly -session.cookie_httponly = - -; Handler used to serialize data. php is the standard serializer of PHP. -; http://php.net/session.serialize-handler -session.serialize_handler = php - -; Defines the probability that the 'garbage collection' process is started -; on every session initialization. The probability is calculated by using -; gc_probability/gc_divisor. Where session.gc_probability is the numerator -; and gc_divisor is the denominator in the equation. Setting this value to 1 -; when the session.gc_divisor value is 100 will give you approximately a 1% chance -; the gc will run on any give request. -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; http://php.net/session.gc-probability -session.gc_probability = 1 - -; Defines the probability that the 'garbage collection' process is started on every -; session initialization. The probability is calculated by using the following equation: -; gc_probability/gc_divisor. Where session.gc_probability is the numerator and -; session.gc_divisor is the denominator in the equation. Setting this value to 1 -; when the session.gc_divisor value is 100 will give you approximately a 1% chance -; the gc will run on any give request. Increasing this value to 1000 will give you -; a 0.1% chance the gc will run on any give request. For high volume production servers, -; this is a more efficient approach. -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 -; http://php.net/session.gc-divisor -session.gc_divisor = 1000 - -; After this number of seconds, stored data will be seen as 'garbage' and -; cleaned up by the garbage collection process. -; http://php.net/session.gc-maxlifetime -session.gc_maxlifetime = 1440 - -; NOTE: If you are using the subdirectory option for storing session files -; (see session.save_path above), then garbage collection does *not* -; happen automatically. You will need to do your own garbage -; collection through a shell script, cron entry, or some other method. -; For example, the following script would is the equivalent of -; setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes): -; find /path/to/sessions -cmin +24 -type f | xargs rm - -; Check HTTP Referer to invalidate externally stored URLs containing ids. -; HTTP_REFERER has to contain this substring for the session to be -; considered as valid. -; http://php.net/session.referer-check -session.referer_check = - -; Set to {nocache,private,public,} to determine HTTP caching aspects -; or leave this empty to avoid sending anti-caching headers. -; http://php.net/session.cache-limiter -session.cache_limiter = nocache - -; Document expires after n minutes. -; http://php.net/session.cache-expire -session.cache_expire = 180 - -; trans sid support is disabled by default. -; Use of trans sid may risk your users' security. -; Use this option with caution. -; - User may send URL contains active session ID -; to other person via. email/irc/etc. -; - URL that contains active session ID may be stored -; in publicly accessible computer. -; - User may access your site with the same session ID -; always using URL stored in browser's history or bookmarks. -; http://php.net/session.use-trans-sid -session.use_trans_sid = 0 - -; Set session ID character length. This value could be between 22 to 256. -; Shorter length than default is supported only for compatibility reason. -; Users should use 32 or more chars. -; http://php.net/session.sid-length -; Default Value: 32 -; Development Value: 26 -; Production Value: 26 -session.sid_length = 26 - -; The URL rewriter will look for URLs in a defined set of HTML tags. -; is special; if you include them here, the rewriter will -; add a hidden field with the info which is otherwise appended -; to URLs. tag's action attribute URL will not be modified -; unless it is specified. -; Note that all valid entries require a "=", even if no value follows. -; Default Value: "a=href,area=href,frame=src,form=" -; Development Value: "a=href,area=href,frame=src,form=" -; Production Value: "a=href,area=href,frame=src,form=" -; http://php.net/url-rewriter.tags -session.trans_sid_tags = "a=href,area=href,frame=src,form=" - -; URL rewriter does not rewrite absolute URLs by default. -; To enable rewrites for absolute pathes, target hosts must be specified -; at RUNTIME. i.e. use ini_set() -; tags is special. PHP will check action attribute's URL regardless -; of session.trans_sid_tags setting. -; If no host is defined, HTTP_HOST will be used for allowed host. -; Example value: php.net,www.php.net,wiki.php.net -; Use "," for multiple hosts. No spaces are allowed. -; Default Value: "" -; Development Value: "" -; Production Value: "" -;session.trans_sid_hosts="" - -; Define how many bits are stored in each character when converting -; the binary hash data to something readable. -; Possible values: -; 4 (4 bits: 0-9, a-f) -; 5 (5 bits: 0-9, a-v) -; 6 (6 bits: 0-9, a-z, A-Z, "-", ",") -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 -; http://php.net/session.hash-bits-per-character -session.sid_bits_per_character = 5 - -; Enable upload progress tracking in $_SESSION -; Default Value: On -; Development Value: On -; Production Value: On -; http://php.net/session.upload-progress.enabled -;session.upload_progress.enabled = On - -; Cleanup the progress information as soon as all POST data has been read -; (i.e. upload completed). -; Default Value: On -; Development Value: On -; Production Value: On -; http://php.net/session.upload-progress.cleanup -;session.upload_progress.cleanup = On - -; A prefix used for the upload progress key in $_SESSION -; Default Value: "upload_progress_" -; Development Value: "upload_progress_" -; Production Value: "upload_progress_" -; http://php.net/session.upload-progress.prefix -;session.upload_progress.prefix = "upload_progress_" - -; The index name (concatenated with the prefix) in $_SESSION -; containing the upload progress information -; Default Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Development Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Production Value: "PHP_SESSION_UPLOAD_PROGRESS" -; http://php.net/session.upload-progress.name -;session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS" - -; How frequently the upload progress should be updated. -; Given either in percentages (per-file), or in bytes -; Default Value: "1%" -; Development Value: "1%" -; Production Value: "1%" -; http://php.net/session.upload-progress.freq -;session.upload_progress.freq = "1%" - -; The minimum delay between updates, in seconds -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; http://php.net/session.upload-progress.min-freq -;session.upload_progress.min_freq = "1" - -; Only write session data when session data is changed. Enabled by default. -; http://php.net/session.lazy-write -;session.lazy_write = On - -[Assertion] -; Switch whether to compile assertions at all (to have no overhead at run-time) -; -1: Do not compile at all -; 0: Jump over assertion at run-time -; 1: Execute assertions -; Changing from or to a negative value is only possible in php.ini! (For turning assertions on and off at run-time, see assert.active, when zend.assertions = 1) -; Default Value: 1 -; Development Value: 1 -; Production Value: -1 -; http://php.net/zend.assertions -zend.assertions = -1 - -; Assert(expr); active by default. -; http://php.net/assert.active -;assert.active = On - -; Throw an AssertationException on failed assertions -; http://php.net/assert.exception -;assert.exception = On - -; Issue a PHP warning for each failed assertion. (Overridden by assert.exception if active) -; http://php.net/assert.warning -;assert.warning = On - -; Don't bail out by default. -; http://php.net/assert.bail -;assert.bail = Off - -; User-function to be called if an assertion fails. -; http://php.net/assert.callback -;assert.callback = 0 - -; Eval the expression with current error_reporting(). Set to true if you want -; error_reporting(0) around the eval(). -; http://php.net/assert.quiet-eval -;assert.quiet_eval = 0 - -[COM] -; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs -; http://php.net/com.typelib-file -;com.typelib_file = - -; allow Distributed-COM calls -; http://php.net/com.allow-dcom -;com.allow_dcom = true - -; autoregister constants of a components typlib on com_load() -; http://php.net/com.autoregister-typelib -;com.autoregister_typelib = true - -; register constants casesensitive -; http://php.net/com.autoregister-casesensitive -;com.autoregister_casesensitive = false - -; show warnings on duplicate constant registrations -; http://php.net/com.autoregister-verbose -;com.autoregister_verbose = true - -; The default character set code-page to use when passing strings to and from COM objects. -; Default: system ANSI code page -;com.code_page= - -[mbstring] -; language for internal character representation. -; This affects mb_send_mail() and mbstring.detect_order. -; http://php.net/mbstring.language -;mbstring.language = Japanese - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; internal/script encoding. -; Some encoding cannot work as internal encoding. (e.g. SJIS, BIG5, ISO-2022-*) -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;mbstring.internal_encoding = - -; Use of this INI entry is deprecated, use global input_encoding instead. -; http input encoding. -; mbstring.encoding_traslation = On is needed to use this setting. -; If empty, default_charset or input_encoding or mbstring.input is used. -; The precedence is: default_charset < intput_encoding < mbsting.http_input -; http://php.net/mbstring.http-input -;mbstring.http_input = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; http output encoding. -; mb_output_handler must be registered as output buffer to function. -; If empty, default_charset or output_encoding or mbstring.http_output is used. -; The precedence is: default_charset < output_encoding < mbstring.http_output -; To use an output encoding conversion, mbstring's output handler must be set -; otherwise output encoding conversion cannot be performed. -; http://php.net/mbstring.http-output -;mbstring.http_output = - -; enable automatic encoding translation according to -; mbstring.internal_encoding setting. Input chars are -; converted to internal encoding by setting this to On. -; Note: Do _not_ use automatic encoding translation for -; portable libs/applications. -; http://php.net/mbstring.encoding-translation -;mbstring.encoding_translation = Off - -; automatic encoding detection order. -; "auto" detect order is changed according to mbstring.language -; http://php.net/mbstring.detect-order -;mbstring.detect_order = auto - -; substitute_character used when character cannot be converted -; one from another -; http://php.net/mbstring.substitute-character -;mbstring.substitute_character = none - -; overload(replace) single byte functions by mbstring functions. -; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(), -; etc. Possible values are 0,1,2,4 or combination of them. -; For example, 7 for overload everything. -; 0: No overload -; 1: Overload mail() function -; 2: Overload str*() functions -; 4: Overload ereg*() functions -; http://php.net/mbstring.func-overload -;mbstring.func_overload = 0 - -; enable strict encoding detection. -; Default: Off -;mbstring.strict_detection = On - -; This directive specifies the regex pattern of content types for which mb_output_handler() -; is activated. -; Default: mbstring.http_output_conv_mimetype=^(text/|application/xhtml\+xml) -;mbstring.http_output_conv_mimetype= - -[gd] -; Tell the jpeg decode to ignore warnings and try to create -; a gd image. The warning will then be displayed as notices -; disabled by default -; http://php.net/gd.jpeg-ignore-warning -;gd.jpeg_ignore_warning = 1 - -[exif] -; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS. -; With mbstring support this will automatically be converted into the encoding -; given by corresponding encode setting. When empty mbstring.internal_encoding -; is used. For the decode settings you can distinguish between motorola and -; intel byte order. A decode setting cannot be empty. -; http://php.net/exif.encode-unicode -;exif.encode_unicode = ISO-8859-15 - -; http://php.net/exif.decode-unicode-motorola -;exif.decode_unicode_motorola = UCS-2BE - -; http://php.net/exif.decode-unicode-intel -;exif.decode_unicode_intel = UCS-2LE - -; http://php.net/exif.encode-jis -;exif.encode_jis = - -; http://php.net/exif.decode-jis-motorola -;exif.decode_jis_motorola = JIS - -; http://php.net/exif.decode-jis-intel -;exif.decode_jis_intel = JIS - -[Tidy] -; The path to a default tidy configuration file to use when using tidy -; http://php.net/tidy.default-config -;tidy.default_config = /usr/local/lib/php/default.tcfg - -; Should tidy clean and repair output automatically? -; WARNING: Do not use this option if you are generating non-html content -; such as dynamic images -; http://php.net/tidy.clean-output -tidy.clean_output = Off - -[soap] -; Enables or disables WSDL caching feature. -; http://php.net/soap.wsdl-cache-enabled -soap.wsdl_cache_enabled=1 - -; Sets the directory name where SOAP extension will put cache files. -; http://php.net/soap.wsdl-cache-dir -soap.wsdl_cache_dir="/tmp" - -; (time to live) Sets the number of second while cached file will be used -; instead of original one. -; http://php.net/soap.wsdl-cache-ttl -soap.wsdl_cache_ttl=86400 - -; Sets the size of the cache limit. (Max. number of WSDL files to cache) -soap.wsdl_cache_limit = 5 - -[sysvshm] -; A default size of the shared memory segment -;sysvshm.init_mem = 10000 - -[ldap] -; Sets the maximum number of open links or -1 for unlimited. -ldap.max_links = -1 - -[dba] -;dba.default_handler= - -[opcache] -; Determines if Zend OPCache is enabled -;opcache.enable=1 - -; Determines if Zend OPCache is enabled for the CLI version of PHP -;opcache.enable_cli=1 - -; The OPcache shared memory storage size. -;opcache.memory_consumption=128 - -; The amount of memory for interned strings in Mbytes. -;opcache.interned_strings_buffer=8 - -; The maximum number of keys (scripts) in the OPcache hash table. -; Only numbers between 200 and 1000000 are allowed. -;opcache.max_accelerated_files=10000 - -; The maximum percentage of "wasted" memory until a restart is scheduled. -;opcache.max_wasted_percentage=5 - -; When this directive is enabled, the OPcache appends the current working -; directory to the script key, thus eliminating possible collisions between -; files with the same name (basename). Disabling the directive improves -; performance, but may break existing applications. -;opcache.use_cwd=1 - -; When disabled, you must reset the OPcache manually or restart the -; webserver for changes to the filesystem to take effect. -;opcache.validate_timestamps=1 - -; How often (in seconds) to check file timestamps for changes to the shared -; memory storage allocation. ("1" means validate once per second, but only -; once per request. "0" means always validate) -;opcache.revalidate_freq=2 - -; Enables or disables file search in include_path optimization -;opcache.revalidate_path=0 - -; If disabled, all PHPDoc comments are dropped from the code to reduce the -; size of the optimized code. -;opcache.save_comments=1 - -; If enabled, a fast shutdown sequence is used for the accelerated code -; Depending on the used Memory Manager this may cause some incompatibilities. -;opcache.fast_shutdown=0 - -; Allow file existence override (file_exists, etc.) performance feature. -;opcache.enable_file_override=0 - -; A bitmask, where each bit enables or disables the appropriate OPcache -; passes -;opcache.optimization_level=0xffffffff - -;opcache.inherited_hack=1 -;opcache.dups_fix=0 - -; The location of the OPcache blacklist file (wildcards allowed). -; Each OPcache blacklist file is a text file that holds the names of files -; that should not be accelerated. The file format is to add each filename -; to a new line. The filename may be a full path or just a file prefix -; (i.e., /var/www/x blacklists all the files and directories in /var/www -; that start with 'x'). Line starting with a ; are ignored (comments). -;opcache.blacklist_filename= - -; Allows exclusion of large files from being cached. By default all files -; are cached. -;opcache.max_file_size=0 - -; Check the cache checksum each N requests. -; The default value of "0" means that the checks are disabled. -;opcache.consistency_checks=0 - -; How long to wait (in seconds) for a scheduled restart to begin if the cache -; is not being accessed. -;opcache.force_restart_timeout=180 - -; OPcache error_log file name. Empty string assumes "stderr". -;opcache.error_log= - -; All OPcache errors go to the Web server log. -; By default, only fatal errors (level 0) or errors (level 1) are logged. -; You can also enable warnings (level 2), info messages (level 3) or -; debug messages (level 4). -;opcache.log_verbosity_level=1 - -; Preferred Shared Memory back-end. Leave empty and let the system decide. -;opcache.preferred_memory_model= - -; Protect the shared memory from unexpected writing during script execution. -; Useful for internal debugging only. -;opcache.protect_memory=0 - -; Allows calling OPcache API functions only from PHP scripts which path is -; started from specified string. The default "" means no restriction -;opcache.restrict_api= - -; Mapping base of shared memory segments (for Windows only). All the PHP -; processes have to map shared memory into the same address space. This -; directive allows to manually fix the "Unable to reattach to base address" -; errors. -;opcache.mmap_base= - -; Enables and sets the second level cache directory. -; It should improve performance when SHM memory is full, at server restart or -; SHM reset. The default "" disables file based caching. -;opcache.file_cache= - -; Enables or disables opcode caching in shared memory. -;opcache.file_cache_only=0 - -; Enables or disables checksum validation when script loaded from file cache. -;opcache.file_cache_consistency_checks=1 - -; Implies opcache.file_cache_only=1 for a certain process that failed to -; reattach to the shared memory (for Windows only). Explicitly enabled file -; cache is required. -;opcache.file_cache_fallback=1 - -; Enables or disables copying of PHP code (text segment) into HUGE PAGES. -; This should improve performance, but requires appropriate OS configuration. -;opcache.huge_code_pages=1 - -; Validate cached file permissions. -;opcache.validate_permission=0 - -; Prevent name collisions in chroot'ed environment. -;opcache.validate_root=0 - -[curl] -; A default value for the CURLOPT_CAINFO option. This is required to be an -; absolute path. -;curl.cainfo = - -[openssl] -; The location of a Certificate Authority (CA) file on the local filesystem -; to use when verifying the identity of SSL/TLS peers. Most users should -; not specify a value for this directive as PHP will attempt to use the -; OS-managed cert stores in its absence. If specified, this value may still -; be overridden on a per-stream basis via the "cafile" SSL stream context -; option. -;openssl.cafile= - -; If openssl.cafile is not specified or if the CA file is not found, the -; directory pointed to by openssl.capath is searched for a suitable -; certificate. This value must be a correctly hashed certificate directory. -; Most users should not specify a value for this directive as PHP will -; attempt to use the OS-managed cert stores in its absence. If specified, -; this value may still be overridden on a per-stream basis via the "capath" -; SSL stream context option. -;openssl.capath= - -; Local Variables: -; tab-width: 4 -; End: - -[XDebug] -xdebug.remote_enable = 1 -xdebug.remote_handler = "dbgp" -; Set to host.docker.internal on Mac and Windows, otherwise, set to host real ip -xdebug.remote_host = host.docker.internal -;xdebug.remote_port = 9000 -xdebug.remote_log = /var/log/php/xdebug.log - -SERVER_ENV=develop - -yaf.use_spl_autoload=1 - -[xhprof] -;xhprof.output_dir = /var/log/php/xhprof.log \ No newline at end of file diff --git a/php7/7.2.34/conf/php-fpm.conf b/php7/7.2.34/conf/php-fpm.conf deleted file mode 100644 index 131835891..000000000 --- a/php7/7.2.34/conf/php-fpm.conf +++ /dev/null @@ -1,423 +0,0 @@ -; Start a new pool named 'www'. -; the variable $pool can be used in any directive and will be replaced by the -; pool name ('www' here) -[www] - -; Per pool prefix -; It only applies on the following directives: -; - 'access.log' -; - 'slowlog' -; - 'listen' (unixsocket) -; - 'chroot' -; - 'chdir' -; - 'php_values' -; - 'php_admin_values' -; When not set, the global prefix (or NONE) applies instead. -; Note: This directive can also be relative to the global prefix. -; Default Value: none -;prefix = /path/to/pools/$pool - -; Unix user/group of processes -; Note: The user is mandatory. If the group is not set, the default user's group -; will be used. -user = www-data -group = www-data - -; The address on which to accept FastCGI requests. -; Valid syntaxes are: -; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on -; a specific port; -; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on -; a specific port; -; 'port' - to listen on a TCP socket to all addresses -; (IPv6 and IPv4-mapped) on a specific port; -; '/path/to/unix/socket' - to listen on a unix socket. -; Note: This value is mandatory. -listen = 127.0.0.1:9000 - -; Set listen(2) backlog. -; Default Value: 511 (-1 on FreeBSD and OpenBSD) -;listen.backlog = 511 - -; Set permissions for unix socket, if one is used. In Linux, read/write -; permissions must be set in order to allow connections from a web server. Many -; BSD-derived systems allow connections regardless of permissions. -; Default Values: user and group are set as the running user -; mode is set to 0660 -;listen.owner = www-data -;listen.group = www-data -;listen.mode = 0660 -; When POSIX Access Control Lists are supported you can set them using -; these options, value is a comma separated list of user/group names. -; When set, listen.owner and listen.group are ignored -;listen.acl_users = -;listen.acl_groups = - -; List of addresses (IPv4/IPv6) of FastCGI clients which are allowed to connect. -; Equivalent to the FCGI_WEB_SERVER_ADDRS environment variable in the original -; PHP FCGI (5.2.2+). Makes sense only with a tcp listening socket. Each address -; must be separated by a comma. If this value is left blank, connections will be -; accepted from any ip address. -; Default Value: any -;listen.allowed_clients = 127.0.0.1 - -; Specify the nice(2) priority to apply to the pool processes (only if set) -; The value can vary from -19 (highest priority) to 20 (lower priority) -; Note: - It will only work if the FPM master process is launched as root -; - The pool processes will inherit the master process priority -; unless it specified otherwise -; Default Value: no set -; process.priority = -19 - -; Set the process dumpable flag (PR_SET_DUMPABLE prctl) even if the process user -; or group is differrent than the master process user. It allows to create process -; core dump and ptrace the process for the pool user. -; Default Value: no -; process.dumpable = yes - -; Choose how the process manager will control the number of child processes. -; Possible Values: -; static - a fixed number (pm.max_children) of child processes; -; dynamic - the number of child processes are set dynamically based on the -; following directives. With this process management, there will be -; always at least 1 children. -; pm.max_children - the maximum number of children that can -; be alive at the same time. -; pm.start_servers - the number of children created on startup. -; pm.min_spare_servers - the minimum number of children in 'idle' -; state (waiting to process). If the number -; of 'idle' processes is less than this -; number then some children will be created. -; pm.max_spare_servers - the maximum number of children in 'idle' -; state (waiting to process). If the number -; of 'idle' processes is greater than this -; number then some children will be killed. -; ondemand - no children are created at startup. Children will be forked when -; new requests will connect. The following parameter are used: -; pm.max_children - the maximum number of children that -; can be alive at the same time. -; pm.process_idle_timeout - The number of seconds after which -; an idle process will be killed. -; Note: This value is mandatory. -pm = dynamic - -; The number of child processes to be created when pm is set to 'static' and the -; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'. -; This value sets the limit on the number of simultaneous requests that will be -; served. Equivalent to the ApacheMaxClients directive with mpm_prefork. -; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP -; CGI. The below defaults are based on a server without much resources. Don't -; forget to tweak pm.* to fit your needs. -; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand' -; Note: This value is mandatory. -pm.max_children = 10 - -; The number of child processes created on startup. -; Note: Used only when pm is set to 'dynamic' -; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2 -pm.start_servers = 2 - -; The desired minimum number of idle server processes. -; Note: Used only when pm is set to 'dynamic' -; Note: Mandatory when pm is set to 'dynamic' -pm.min_spare_servers = 1 - -; The desired maximum number of idle server processes. -; Note: Used only when pm is set to 'dynamic' -; Note: Mandatory when pm is set to 'dynamic' -pm.max_spare_servers = 3 - -; The number of seconds after which an idle process will be killed. -; Note: Used only when pm is set to 'ondemand' -; Default Value: 10s -;pm.process_idle_timeout = 10s; - -; The number of requests each child process should execute before respawning. -; This can be useful to work around memory leaks in 3rd party libraries. For -; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS. -; Default Value: 0 -;pm.max_requests = 500 - -; The URI to view the FPM status page. If this value is not set, no URI will be -; recognized as a status page. It shows the following informations: -; pool - the name of the pool; -; process manager - static, dynamic or ondemand; -; start time - the date and time FPM has started; -; start since - number of seconds since FPM has started; -; accepted conn - the number of request accepted by the pool; -; listen queue - the number of request in the queue of pending -; connections (see backlog in listen(2)); -; max listen queue - the maximum number of requests in the queue -; of pending connections since FPM has started; -; listen queue len - the size of the socket queue of pending connections; -; idle processes - the number of idle processes; -; active processes - the number of active processes; -; total processes - the number of idle + active processes; -; max active processes - the maximum number of active processes since FPM -; has started; -; max children reached - number of times, the process limit has been reached, -; when pm tries to start more children (works only for -; pm 'dynamic' and 'ondemand'); -; Value are updated in real time. -; Example output: -; pool: www -; process manager: static -; start time: 01/Jul/2011:17:53:49 +0200 -; start since: 62636 -; accepted conn: 190460 -; listen queue: 0 -; max listen queue: 1 -; listen queue len: 42 -; idle processes: 4 -; active processes: 11 -; total processes: 15 -; max active processes: 12 -; max children reached: 0 -; -; By default the status page output is formatted as text/plain. Passing either -; 'html', 'xml' or 'json' in the query string will return the corresponding -; output syntax. Example: -; http://www.foo.bar/status -; http://www.foo.bar/status?json -; http://www.foo.bar/status?html -; http://www.foo.bar/status?xml -; -; By default the status page only outputs short status. Passing 'full' in the -; query string will also return status for each pool process. -; Example: -; http://www.foo.bar/status?full -; http://www.foo.bar/status?json&full -; http://www.foo.bar/status?html&full -; http://www.foo.bar/status?xml&full -; The Full status returns for each process: -; pid - the PID of the process; -; state - the state of the process (Idle, Running, ...); -; start time - the date and time the process has started; -; start since - the number of seconds since the process has started; -; requests - the number of requests the process has served; -; request duration - the duration in µs of the requests; -; request method - the request method (GET, POST, ...); -; request URI - the request URI with the query string; -; content length - the content length of the request (only with POST); -; user - the user (PHP_AUTH_USER) (or '-' if not set); -; script - the main script called (or '-' if not set); -; last request cpu - the %cpu the last request consumed -; it's always 0 if the process is not in Idle state -; because CPU calculation is done when the request -; processing has terminated; -; last request memory - the max amount of memory the last request consumed -; it's always 0 if the process is not in Idle state -; because memory calculation is done when the request -; processing has terminated; -; If the process is in Idle state, then informations are related to the -; last request the process has served. Otherwise informations are related to -; the current request being served. -; Example output: -; ************************ -; pid: 31330 -; state: Running -; start time: 01/Jul/2011:17:53:49 +0200 -; start since: 63087 -; requests: 12808 -; request duration: 1250261 -; request method: GET -; request URI: /test_mem.php?N=10000 -; content length: 0 -; user: - -; script: /home/fat/web/docs/php/test_mem.php -; last request cpu: 0.00 -; last request memory: 0 -; -; Note: There is a real-time FPM status monitoring sample web page available -; It's available in: /usr/local/share/php/fpm/status.html -; -; Note: The value must start with a leading slash (/). The value can be -; anything, but it may not be a good idea to use the .php extension or it -; may conflict with a real PHP file. -; Default Value: not set -;pm.status_path = /status - -; The ping URI to call the monitoring page of FPM. If this value is not set, no -; URI will be recognized as a ping page. This could be used to test from outside -; that FPM is alive and responding, or to -; - create a graph of FPM availability (rrd or such); -; - remove a server from a group if it is not responding (load balancing); -; - trigger alerts for the operating team (24/7). -; Note: The value must start with a leading slash (/). The value can be -; anything, but it may not be a good idea to use the .php extension or it -; may conflict with a real PHP file. -; Default Value: not set -;ping.path = /ping - -; This directive may be used to customize the response of a ping request. The -; response is formatted as text/plain with a 200 response code. -; Default Value: pong -;ping.response = pong - -; The access log file -; Default: not set -;access.log = log/$pool.access.log - -; The access log format. -; The following syntax is allowed -; %%: the '%' character -; %C: %CPU used by the request -; it can accept the following format: -; - %{user}C for user CPU only -; - %{system}C for system CPU only -; - %{total}C for user + system CPU (default) -; %d: time taken to serve the request -; it can accept the following format: -; - %{seconds}d (default) -; - %{miliseconds}d -; - %{mili}d -; - %{microseconds}d -; - %{micro}d -; %e: an environment variable (same as $_ENV or $_SERVER) -; it must be associated with embraces to specify the name of the env -; variable. Some exemples: -; - server specifics like: %{REQUEST_METHOD}e or %{SERVER_PROTOCOL}e -; - HTTP headers like: %{HTTP_HOST}e or %{HTTP_USER_AGENT}e -; %f: script filename -; %l: content-length of the request (for POST request only) -; %m: request method -; %M: peak of memory allocated by PHP -; it can accept the following format: -; - %{bytes}M (default) -; - %{kilobytes}M -; - %{kilo}M -; - %{megabytes}M -; - %{mega}M -; %n: pool name -; %o: output header -; it must be associated with embraces to specify the name of the header: -; - %{Content-Type}o -; - %{X-Powered-By}o -; - %{Transfert-Encoding}o -; - .... -; %p: PID of the child that serviced the request -; %P: PID of the parent of the child that serviced the request -; %q: the query string -; %Q: the '?' character if query string exists -; %r: the request URI (without the query string, see %q and %Q) -; %R: remote IP address -; %s: status (response code) -; %t: server time the request was received -; it can accept a strftime(3) format: -; %d/%b/%Y:%H:%M:%S %z (default) -; The strftime(3) format must be encapsuled in a %{}t tag -; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t -; %T: time the log has been written (the request has finished) -; it can accept a strftime(3) format: -; %d/%b/%Y:%H:%M:%S %z (default) -; The strftime(3) format must be encapsuled in a %{}t tag -; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t -; %u: remote user -; -; Default: "%R - %u %t \"%m %r\" %s" -;access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%" - -; The log file for slow requests -; Default Value: not set -; Note: slowlog is mandatory if request_slowlog_timeout is set -slowlog = /var/log/php/fpm.slow.log - -; The timeout for serving a single request after which a PHP backtrace will be -; dumped to the 'slowlog' file. A value of '0s' means 'off'. -; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) -; Default Value: 0 -request_slowlog_timeout = 3 - -; Depth of slow log stack trace. -; Default Value: 20 -;request_slowlog_trace_depth = 20 - -; The timeout for serving a single request after which the worker process will -; be killed. This option should be used when the 'max_execution_time' ini option -; does not stop script execution for some reason. A value of '0' means 'off'. -; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) -; Default Value: 0 -;request_terminate_timeout = 0 - -; Set open file descriptor rlimit. -; Default Value: system defined value -;rlimit_files = 1024 - -; Set max core size rlimit. -; Possible Values: 'unlimited' or an integer greater or equal to 0 -; Default Value: system defined value -;rlimit_core = 0 - -; Chroot to this directory at the start. This value must be defined as an -; absolute path. When this value is not set, chroot is not used. -; Note: you can prefix with '$prefix' to chroot to the pool prefix or one -; of its subdirectories. If the pool prefix is not set, the global prefix -; will be used instead. -; Note: chrooting is a great security feature and should be used whenever -; possible. However, all PHP paths will be relative to the chroot -; (error_log, sessions.save_path, ...). -; Default Value: not set -;chroot = - -; Chdir to this directory at the start. -; Note: relative path can be used. -; Default Value: current directory or / when chroot -;chdir = /var/www - -; Redirect worker stdout and stderr into main error log. If not set, stdout and -; stderr will be redirected to /dev/null according to FastCGI specs. -; Note: on highloaded environement, this can cause some delay in the page -; process time (several ms). -; Default Value: no -catch_workers_output = yes - -; Clear environment in FPM workers -; Prevents arbitrary environment variables from reaching FPM worker processes -; by clearing the environment in workers before env vars specified in this -; pool configuration are added. -; Setting to "no" will make all environment variables available to PHP code -; via getenv(), $_ENV and $_SERVER. -; Default Value: yes -;clear_env = no - -; Limits the extensions of the main script FPM will allow to parse. This can -; prevent configuration mistakes on the web server side. You should only limit -; FPM to .php extensions to prevent malicious users to use other extensions to -; execute php code. -; Note: set an empty value to allow all extensions. -; Default Value: .php -;security.limit_extensions = .php .php3 .php4 .php5 .php7 - -; Pass environment variables like LD_LIBRARY_PATH. All $VARIABLEs are taken from -; the current environment. -; Default Value: clean env -;env[HOSTNAME] = $HOSTNAME -;env[PATH] = /usr/local/bin:/usr/bin:/bin -;env[TMP] = /tmp -;env[TMPDIR] = /tmp -;env[TEMP] = /tmp - -; Additional php.ini defines, specific to this pool of workers. These settings -; overwrite the values previously defined in the php.ini. The directives are the -; same as the PHP SAPI: -; php_value/php_flag - you can set classic ini defines which can -; be overwritten from PHP call 'ini_set'. -; php_admin_value/php_admin_flag - these directives won't be overwritten by -; PHP call 'ini_set' -; For php_*flag, valid values are on, off, 1, 0, true, false, yes or no. - -; Defining 'extension' will load the corresponding shared extension from -; extension_dir. Defining 'disable_functions' or 'disable_classes' will not -; overwrite previously defined php.ini values, but will append the new value -; instead. - -; Note: path INI options can be relative and will be expanded with the prefix -; (pool, global or /usr/local) - -; Default Value: nothing is defined by default except the values in php.ini and -; specified at startup with the -d argument -;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com -;php_flag[display_errors] = off -;php_admin_value[error_log] = /var/log/fpm-php.www.log -;php_admin_flag[log_errors] = on -;php_admin_value[memory_limit] = 32M diff --git a/php7/7.2.34/conf/php.ini b/php7/7.2.34/conf/php.ini deleted file mode 100644 index b6b0aee69..000000000 --- a/php7/7.2.34/conf/php.ini +++ /dev/null @@ -1,1933 +0,0 @@ -[PHP] - -;;;;;;;;;;;;;;;;;;; -; About php.ini ; -;;;;;;;;;;;;;;;;;;; -; PHP's initialization file, generally called php.ini, is responsible for -; configuring many of the aspects of PHP's behavior. - -; PHP attempts to find and load this configuration from a number of locations. -; The following is a summary of its search order: -; 1. SAPI module specific location. -; 2. The PHPRC environment variable. (As of PHP 5.2.0) -; 3. A number of predefined registry keys on Windows (As of PHP 5.2.0) -; 4. Current working directory (except CLI) -; 5. The web server's directory (for SAPI modules), or directory of PHP -; (otherwise in Windows) -; 6. The directory from the --with-config-file-path compile time option, or the -; Windows directory (C:\windows or C:\winnt) -; See the PHP docs for more specific information. -; http://php.net/configuration.file - -; The syntax of the file is extremely simple. Whitespace and lines -; beginning with a semicolon are silently ignored (as you probably guessed). -; Section headers (e.g. [Foo]) are also silently ignored, even though -; they might mean something in the future. - -; Directives following the section heading [PATH=/www/mysite] only -; apply to PHP files in the /www/mysite directory. Directives -; following the section heading [HOST=www.example.com] only apply to -; PHP files served from www.example.com. Directives set in these -; special sections cannot be overridden by user-defined INI files or -; at runtime. Currently, [PATH=] and [HOST=] sections only work under -; CGI/FastCGI. -; http://php.net/ini.sections - -; Directives are specified using the following syntax: -; directive = value -; Directive names are *case sensitive* - foo=bar is different from FOO=bar. -; Directives are variables used to configure PHP or PHP extensions. -; There is no name validation. If PHP can't find an expected -; directive because it is not set or is mistyped, a default value will be used. - -; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one -; of the INI constants (On, Off, True, False, Yes, No and None) or an expression -; (e.g. E_ALL & ~E_NOTICE), a quoted string ("bar"), or a reference to a -; previously set variable or directive (e.g. ${foo}) - -; Expressions in the INI file are limited to bitwise operators and parentheses: -; | bitwise OR -; ^ bitwise XOR -; & bitwise AND -; ~ bitwise NOT -; ! boolean NOT - -; Boolean flags can be turned on using the values 1, On, True or Yes. -; They can be turned off using the values 0, Off, False or No. - -; An empty string can be denoted by simply not writing anything after the equal -; sign, or by using the None keyword: - -; foo = ; sets foo to an empty string -; foo = None ; sets foo to an empty string -; foo = "None" ; sets foo to the string 'None' - -; If you use constants in your value, and these constants belong to a -; dynamically loaded extension (either a PHP extension or a Zend extension), -; you may only use these constants *after* the line that loads the extension. - -;;;;;;;;;;;;;;;;;;; -; About this file ; -;;;;;;;;;;;;;;;;;;; -; PHP comes packaged with two INI files. One that is recommended to be used -; in production environments and one that is recommended to be used in -; development environments. - -; php.ini-production contains settings which hold security, performance and -; best practices at its core. But please be aware, these settings may break -; compatibility with older or less security conscience applications. We -; recommending using the production ini in production and testing environments. - -; php.ini-development is very similar to its production variant, except it is -; much more verbose when it comes to errors. We recommend using the -; development version only in development environments, as errors shown to -; application users can inadvertently leak otherwise secure information. - -; This is php.ini-production INI file. - -;;;;;;;;;;;;;;;;;;; -; Quick Reference ; -;;;;;;;;;;;;;;;;;;; -; The following are all the settings which are different in either the production -; or development versions of the INIs with respect to PHP's default behavior. -; Please see the actual settings later in the document for more details as to why -; we recommend these changes in PHP's behavior. - -; display_errors -; Default Value: On -; Development Value: On -; Production Value: Off - -; display_startup_errors -; Default Value: Off -; Development Value: On -; Production Value: Off - -; error_reporting -; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT - -; html_errors -; Default Value: On -; Development Value: On -; Production value: On - -; log_errors -; Default Value: Off -; Development Value: On -; Production Value: On - -; max_input_time -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) - -; output_buffering -; Default Value: Off -; Development Value: 4096 -; Production Value: 4096 - -; register_argc_argv -; Default Value: On -; Development Value: Off -; Production Value: Off - -; request_order -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" - -; session.gc_divisor -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 - -; session.sid_bits_per_character -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 - -; short_open_tag -; Default Value: On -; Development Value: Off -; Production Value: Off - -; track_errors -; Default Value: Off -; Development Value: On -; Production Value: Off - -; variables_order -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS" - -;;;;;;;;;;;;;;;;;;;; -; php.ini Options ; -;;;;;;;;;;;;;;;;;;;; -; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini" -;user_ini.filename = ".user.ini" - -; To disable this feature set this option to empty value -;user_ini.filename = - -; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes) -;user_ini.cache_ttl = 300 - -;;;;;;;;;;;;;;;;;;;; -; Language Options ; -;;;;;;;;;;;;;;;;;;;; - -; Enable the PHP scripting language engine under Apache. -; http://php.net/engine -engine = On - -; This directive determines whether or not PHP will recognize code between -; tags as PHP source which should be processed as such. It is -; generally recommended that should be used and that this feature -; should be disabled, as enabling it may result in issues when generating XML -; documents, however this remains supported for backward compatibility reasons. -; Note that this directive does not control the would work. -; http://php.net/syntax-highlighting -;highlight.string = #DD0000 -;highlight.comment = #FF9900 -;highlight.keyword = #007700 -;highlight.default = #0000BB -;highlight.html = #000000 - -; If enabled, the request will be allowed to complete even if the user aborts -; the request. Consider enabling it if executing long requests, which may end up -; being interrupted by the user or a browser timing out. PHP's default behavior -; is to disable this feature. -; http://php.net/ignore-user-abort -;ignore_user_abort = On - -; Determines the size of the realpath cache to be used by PHP. This value should -; be increased on systems where PHP opens many files to reflect the quantity of -; the file operations performed. -; http://php.net/realpath-cache-size -;realpath_cache_size = 4096k - -; Duration of time, in seconds for which to cache realpath information for a given -; file or directory. For systems with rarely changing files, consider increasing this -; value. -; http://php.net/realpath-cache-ttl -;realpath_cache_ttl = 120 - -; Enables or disables the circular reference collector. -; http://php.net/zend.enable-gc -zend.enable_gc = On - -; If enabled, scripts may be written in encodings that are incompatible with -; the scanner. CP936, Big5, CP949 and Shift_JIS are the examples of such -; encodings. To use this feature, mbstring extension must be enabled. -; Default: Off -;zend.multibyte = Off - -; Allows to set the default encoding for the scripts. This value will be used -; unless "declare(encoding=...)" directive appears at the top of the script. -; Only affects if zend.multibyte is set. -; Default: "" -;zend.script_encoding = - -;;;;;;;;;;;;;;;;; -; Miscellaneous ; -;;;;;;;;;;;;;;;;; - -; Decides whether PHP may expose the fact that it is installed on the server -; (e.g. by adding its signature to the Web server header). It is no security -; threat in any way, but it makes it possible to determine whether you use PHP -; on your server or not. -; http://php.net/expose-php -expose_php = Off - -;;;;;;;;;;;;;;;;;;; -; Resource Limits ; -;;;;;;;;;;;;;;;;;;; - -; Maximum execution time of each script, in seconds -; http://php.net/max-execution-time -; Note: This directive is hardcoded to 0 for the CLI SAPI -max_execution_time = 30 - -; Maximum amount of time each script may spend parsing request data. It's a good -; idea to limit this time on productions servers in order to eliminate unexpectedly -; long running scripts. -; Note: This directive is hardcoded to -1 for the CLI SAPI -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) -; http://php.net/max-input-time -max_input_time = 60 - -; Maximum input variable nesting level -; http://php.net/max-input-nesting-level -;max_input_nesting_level = 64 - -; How many GET/POST/COOKIE input variables may be accepted -; max_input_vars = 1000 - -; Maximum amount of memory a script may consume (128MB) -; http://php.net/memory-limit -memory_limit = 256M - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; Error handling and logging ; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -; This directive informs PHP of which errors, warnings and notices you would like -; it to take action for. The recommended way of setting values for this -; directive is through the use of the error level constants and bitwise -; operators. The error level constants are below here for convenience as well as -; some common settings and their meanings. -; By default, PHP is set to take action on all errors, notices and warnings EXCEPT -; those related to E_NOTICE and E_STRICT, which together cover best practices and -; recommended coding standards in PHP. For performance reasons, this is the -; recommend error reporting setting. Your production server shouldn't be wasting -; resources complaining about best practices and coding standards. That's what -; development servers and development settings are for. -; Note: The php.ini-development file has this setting as E_ALL. This -; means it pretty much reports everything which is exactly what you want during -; development and early testing. -; -; Error Level Constants: -; E_ALL - All errors and warnings (includes E_STRICT as of PHP 5.4.0) -; E_ERROR - fatal run-time errors -; E_RECOVERABLE_ERROR - almost fatal run-time errors -; E_WARNING - run-time warnings (non-fatal errors) -; E_PARSE - compile-time parse errors -; E_NOTICE - run-time notices (these are warnings which often result -; from a bug in your code, but it's possible that it was -; intentional (e.g., using an uninitialized variable and -; relying on the fact it is automatically initialized to an -; empty string) -; E_STRICT - run-time notices, enable to have PHP suggest changes -; to your code which will ensure the best interoperability -; and forward compatibility of your code -; E_CORE_ERROR - fatal errors that occur during PHP's initial startup -; E_CORE_WARNING - warnings (non-fatal errors) that occur during PHP's -; initial startup -; E_COMPILE_ERROR - fatal compile-time errors -; E_COMPILE_WARNING - compile-time warnings (non-fatal errors) -; E_USER_ERROR - user-generated error message -; E_USER_WARNING - user-generated warning message -; E_USER_NOTICE - user-generated notice message -; E_DEPRECATED - warn about code that will not work in future versions -; of PHP -; E_USER_DEPRECATED - user-generated deprecation warnings -; -; Common Values: -; E_ALL (Show all errors, warnings and notices including coding standards.) -; E_ALL & ~E_NOTICE (Show all errors, except for notices) -; E_ALL & ~E_NOTICE & ~E_STRICT (Show all errors, except for notices and coding standards warnings.) -; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors) -; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT -; http://php.net/error-reporting -error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT - -; This directive controls whether or not and where PHP will output errors, -; notices and warnings too. Error output is very useful during development, but -; it could be very dangerous in production environments. Depending on the code -; which is triggering the error, sensitive information could potentially leak -; out of your application such as database usernames and passwords or worse. -; For production environments, we recommend logging errors rather than -; sending them to STDOUT. -; Possible Values: -; Off = Do not display any errors -; stderr = Display errors to STDERR (affects only CGI/CLI binaries!) -; On or stdout = Display errors to STDOUT -; Default Value: On -; Development Value: On -; Production Value: Off -; http://php.net/display-errors -display_errors = Off - -; The display of errors which occur during PHP's startup sequence are handled -; separately from display_errors. PHP's default behavior is to suppress those -; errors from clients. Turning the display of startup errors on can be useful in -; debugging configuration problems. We strongly recommend you -; set this to 'off' for production servers. -; Default Value: Off -; Development Value: On -; Production Value: Off -; http://php.net/display-startup-errors -display_startup_errors = Off - -; Besides displaying errors, PHP can also log errors to locations such as a -; server-specific log, STDERR, or a location specified by the error_log -; directive found below. While errors should not be displayed on productions -; servers they should still be monitored and logging is a great way to do that. -; Default Value: Off -; Development Value: On -; Production Value: On -; http://php.net/log-errors -log_errors = On - -; Set maximum length of log_errors. In error_log information about the source is -; added. The default is 1024 and 0 allows to not apply any maximum length at all. -; http://php.net/log-errors-max-len -log_errors_max_len = 1024 - -; Do not log repeated messages. Repeated errors must occur in same file on same -; line unless ignore_repeated_source is set true. -; http://php.net/ignore-repeated-errors -ignore_repeated_errors = Off - -; Ignore source of message when ignoring repeated messages. When this setting -; is On you will not log errors with repeated messages from different files or -; source lines. -; http://php.net/ignore-repeated-source -ignore_repeated_source = Off - -; If this parameter is set to Off, then memory leaks will not be shown (on -; stdout or in the log). This has only effect in a debug compile, and if -; error reporting includes E_WARNING in the allowed list -; http://php.net/report-memleaks -report_memleaks = On - -; This setting is on by default. -;report_zend_debug = 0 - -; Store the last error/warning message in $php_errormsg (boolean). Setting this value -; to On can assist in debugging and is appropriate for development servers. It should -; however be disabled on production servers. -; Default Value: Off -; Development Value: On -; Production Value: Off -; http://php.net/track-errors -track_errors = Off - -; Turn off normal error reporting and emit XML-RPC error XML -; http://php.net/xmlrpc-errors -;xmlrpc_errors = 0 - -; An XML-RPC faultCode -;xmlrpc_error_number = 0 - -; When PHP displays or logs an error, it has the capability of formatting the -; error message as HTML for easier reading. This directive controls whether -; the error message is formatted as HTML or not. -; Note: This directive is hardcoded to Off for the CLI SAPI -; Default Value: On -; Development Value: On -; Production value: On -; http://php.net/html-errors -html_errors = On - -; If html_errors is set to On *and* docref_root is not empty, then PHP -; produces clickable error messages that direct to a page describing the error -; or function causing the error in detail. -; You can download a copy of the PHP manual from http://php.net/docs -; and change docref_root to the base URL of your local copy including the -; leading '/'. You must also specify the file extension being used including -; the dot. PHP's default behavior is to leave these settings empty, in which -; case no links to documentation are generated. -; Note: Never use this feature for production boxes. -; http://php.net/docref-root -; Examples -;docref_root = "/phpmanual/" - -; http://php.net/docref-ext -;docref_ext = .html - -; String to output before an error message. PHP's default behavior is to leave -; this setting blank. -; http://php.net/error-prepend-string -; Example: -;error_prepend_string = "" - -; String to output after an error message. PHP's default behavior is to leave -; this setting blank. -; http://php.net/error-append-string -; Example: -;error_append_string = "" - -; Log errors to specified file. PHP's default behavior is to leave this value -; empty. -; http://php.net/error-log -; Example: -;error_log = php_errors.log -; Log errors to syslog (Event Log on Windows). -error_log = /var/log/php/php.error.log - -;windows.show_crt_warning -; Default value: 0 -; Development value: 0 -; Production value: 0 - -;;;;;;;;;;;;;;;;; -; Data Handling ; -;;;;;;;;;;;;;;;;; - -; The separator used in PHP generated URLs to separate arguments. -; PHP's default setting is "&". -; http://php.net/arg-separator.output -; Example: -;arg_separator.output = "&" - -; List of separator(s) used by PHP to parse input URLs into variables. -; PHP's default setting is "&". -; NOTE: Every character in this directive is considered as separator! -; http://php.net/arg-separator.input -; Example: -;arg_separator.input = ";&" - -; This directive determines which super global arrays are registered when PHP -; starts up. G,P,C,E & S are abbreviations for the following respective super -; globals: GET, POST, COOKIE, ENV and SERVER. There is a performance penalty -; paid for the registration of these arrays and because ENV is not as commonly -; used as the others, ENV is not recommended on productions servers. You -; can still get access to the environment variables through getenv() should you -; need to. -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS"; -; http://php.net/variables-order -variables_order = "GPCS" - -; This directive determines which super global data (G,P & C) should be -; registered into the super global array REQUEST. If so, it also determines -; the order in which that data is registered. The values for this directive -; are specified in the same manner as the variables_order directive, -; EXCEPT one. Leaving this value empty will cause PHP to use the value set -; in the variables_order directive. It does not mean it will leave the super -; globals array REQUEST empty. -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" -; http://php.net/request-order -request_order = "GP" - -; This directive determines whether PHP registers $argv & $argc each time it -; runs. $argv contains an array of all the arguments passed to PHP when a script -; is invoked. $argc contains an integer representing the number of arguments -; that were passed when the script was invoked. These arrays are extremely -; useful when running scripts from the command line. When this directive is -; enabled, registering these variables consumes CPU cycles and memory each time -; a script is executed. For performance reasons, this feature should be disabled -; on production servers. -; Note: This directive is hardcoded to On for the CLI SAPI -; Default Value: On -; Development Value: Off -; Production Value: Off -; http://php.net/register-argc-argv -register_argc_argv = Off - -; When enabled, the ENV, REQUEST and SERVER variables are created when they're -; first used (Just In Time) instead of when the script starts. If these -; variables are not used within a script, having this directive on will result -; in a performance gain. The PHP directive register_argc_argv must be disabled -; for this directive to have any affect. -; http://php.net/auto-globals-jit -auto_globals_jit = On - -; Whether PHP will read the POST data. -; This option is enabled by default. -; Most likely, you won't want to disable this option globally. It causes $_POST -; and $_FILES to always be empty; the only way you will be able to read the -; POST data will be through the php://input stream wrapper. This can be useful -; to proxy requests or to process the POST data in a memory efficient fashion. -; http://php.net/enable-post-data-reading -;enable_post_data_reading = Off - -; Maximum size of POST data that PHP will accept. -; Its value may be 0 to disable the limit. It is ignored if POST data reading -; is disabled through enable_post_data_reading. -; http://php.net/post-max-size -post_max_size = 100M - -; Automatically add files before PHP document. -; http://php.net/auto-prepend-file -auto_prepend_file = - -; Automatically add files after PHP document. -; http://php.net/auto-append-file -auto_append_file = - -; By default, PHP will output a media type using the Content-Type header. To -; disable this, simply set it to be empty. -; -; PHP's built-in default media type is set to text/html. -; http://php.net/default-mimetype -default_mimetype = "text/html" - -; PHP's default character set is set to UTF-8. -; http://php.net/default-charset -default_charset = "UTF-8" - -; PHP internal character encoding is set to empty. -; If empty, default_charset is used. -; http://php.net/internal-encoding -;internal_encoding = - -; PHP input character encoding is set to empty. -; If empty, default_charset is used. -; http://php.net/input-encoding -;input_encoding = - -; PHP output character encoding is set to empty. -; If empty, default_charset is used. -; See also output_buffer. -; http://php.net/output-encoding -;output_encoding = - -;;;;;;;;;;;;;;;;;;;;;;;;; -; Paths and Directories ; -;;;;;;;;;;;;;;;;;;;;;;;;; - -; UNIX: "/path1:/path2" -;include_path = ".:/php/includes" -; -; Windows: "\path1;\path2" -;include_path = ".;c:\php\includes" -; -; PHP's default setting for include_path is ".;/path/to/php/pear" -; http://php.net/include-path - -; The root of the PHP pages, used only if nonempty. -; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root -; if you are running php as a CGI under any web server (other than IIS) -; see documentation for security issues. The alternate is to use the -; cgi.force_redirect configuration below -; http://php.net/doc-root -doc_root = - -; The directory under which PHP opens the script using /~username used only -; if nonempty. -; http://php.net/user-dir -user_dir = - -; Directory in which the loadable extensions (modules) reside. -; http://php.net/extension-dir -; extension_dir = "./" -; On windows: -; extension_dir = "ext" - -; Directory where the temporary files should be placed. -; Defaults to the system default (see sys_get_temp_dir) -; sys_temp_dir = "/tmp" - -; Whether or not to enable the dl() function. The dl() function does NOT work -; properly in multithreaded servers, such as IIS or Zeus, and is automatically -; disabled on them. -; http://php.net/enable-dl -enable_dl = Off - -; cgi.force_redirect is necessary to provide security running PHP as a CGI under -; most web servers. Left undefined, PHP turns this on by default. You can -; turn it off here AT YOUR OWN RISK -; **You CAN safely turn this off for IIS, in fact, you MUST.** -; http://php.net/cgi.force-redirect -;cgi.force_redirect = 1 - -; if cgi.nph is enabled it will force cgi to always sent Status: 200 with -; every request. PHP's default behavior is to disable this feature. -;cgi.nph = 1 - -; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape -; (iPlanet) web servers, you MAY need to set an environment variable name that PHP -; will look for to know it is OK to continue execution. Setting this variable MAY -; cause security issues, KNOW WHAT YOU ARE DOING FIRST. -; http://php.net/cgi.redirect-status-env -;cgi.redirect_status_env = - -; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's -; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok -; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting -; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting -; of zero causes PHP to behave as before. Default is 1. You should fix your scripts -; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. -; http://php.net/cgi.fix-pathinfo -;cgi.fix_pathinfo=1 - -; if cgi.discard_path is enabled, the PHP CGI binary can safely be placed outside -; of the web tree and people will not be able to circumvent .htaccess security. -; http://php.net/cgi.dicard-path -;cgi.discard_path=1 - -; FastCGI under IIS (on WINNT based OS) supports the ability to impersonate -; security tokens of the calling client. This allows IIS to define the -; security context that the request runs under. mod_fastcgi under Apache -; does not currently support this feature (03/17/2002) -; Set to 1 if running under IIS. Default is zero. -; http://php.net/fastcgi.impersonate -;fastcgi.impersonate = 1 - -; Disable logging through FastCGI connection. PHP's default behavior is to enable -; this feature. -;fastcgi.logging = 0 - -; cgi.rfc2616_headers configuration option tells PHP what type of headers to -; use when sending HTTP response code. If set to 0, PHP sends Status: header that -; is supported by Apache. When this option is set to 1, PHP will send -; RFC2616 compliant header. -; Default is zero. -; http://php.net/cgi.rfc2616-headers -;cgi.rfc2616_headers = 0 - -; cgi.check_shebang_line controls whether CGI PHP checks for line starting with #! -; (shebang) at the top of the running script. This line might be needed if the -; script support running both as stand-alone script and via PHP CGI<. PHP in CGI -; mode skips this line and ignores its content if this directive is turned on. -; http://php.net/cgi.check-shebang-line -;cgi.check_shebang_line=1 - -;;;;;;;;;;;;;;;; -; File Uploads ; -;;;;;;;;;;;;;;;; - -; Whether to allow HTTP file uploads. -; http://php.net/file-uploads -file_uploads = On - -; Temporary directory for HTTP uploaded files (will use system default if not -; specified). -; http://php.net/upload-tmp-dir -;upload_tmp_dir = - -; Maximum allowed size for uploaded files. -; http://php.net/upload-max-filesize -upload_max_filesize = 50M - -; Maximum number of files that can be uploaded via a single request -max_file_uploads = 20 - -;;;;;;;;;;;;;;;;;; -; Fopen wrappers ; -;;;;;;;;;;;;;;;;;; - -; Whether to allow the treatment of URLs (like http:// or ftp://) as files. -; http://php.net/allow-url-fopen -allow_url_fopen = On - -; Whether to allow include/require to open URLs (like http:// or ftp://) as files. -; http://php.net/allow-url-include -allow_url_include = Off - -; Define the anonymous ftp password (your email address). PHP's default setting -; for this is empty. -; http://php.net/from -;from="john@doe.com" - -; Define the User-Agent string. PHP's default setting for this is empty. -; http://php.net/user-agent -;user_agent="PHP" - -; Default timeout for socket based streams (seconds) -; http://php.net/default-socket-timeout -default_socket_timeout = 60 - -; If your scripts have to deal with files from Macintosh systems, -; or you are running on a Mac and need to deal with files from -; unix or win32 systems, setting this flag will cause PHP to -; automatically detect the EOL character in those files so that -; fgets() and file() will work regardless of the source of the file. -; http://php.net/auto-detect-line-endings -;auto_detect_line_endings = Off - -;;;;;;;;;;;;;;;;;;;;;; -; Dynamic Extensions ; -;;;;;;;;;;;;;;;;;;;;;; - -; If you wish to have an extension loaded automatically, use the following -; syntax: -; -; extension=modulename.extension -; -; For example, on Windows: -; -; extension=mysqli.dll -; -; ... or under UNIX: -; -; extension=mysqli.so -; -; ... or with a path: -; -; extension=/path/to/extension/mysqli.so -; -; If you only provide the name of the extension, PHP will look for it in its -; default extension directory. -; -; Windows Extensions -; Note that ODBC support is built in, so no dll is needed for it. -; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5+) -; extension folders as well as the separate PECL DLL download (PHP 5+). -; Be sure to appropriately set the extension_dir directive. -; -;extension=php_bz2.dll -;extension=php_curl.dll -;extension=php_fileinfo.dll -;extension=php_ftp.dll -;extension=php_gd2.dll -;extension=php_gettext.dll -;extension=php_gmp.dll -;extension=php_intl.dll -;extension=php_imap.dll -;extension=php_interbase.dll -;extension=php_ldap.dll -;extension=php_mbstring.dll -;extension=php_exif.dll ; Must be after mbstring as it depends on it -;extension=php_mysqli.dll -;extension=php_oci8_12c.dll ; Use with Oracle Database 12c Instant Client -;extension=php_openssl.dll -;extension=php_pdo_firebird.dll -;extension=php_pdo_mysql.dll -;extension=php_pdo_oci.dll -;extension=php_pdo_odbc.dll -;extension=php_pdo_pgsql.dll -;extension=php_pdo_sqlite.dll -;extension=php_pgsql.dll -;extension=php_shmop.dll - -; The MIBS data available in the PHP distribution must be installed. -; See http://www.php.net/manual/en/snmp.installation.php -;extension=php_snmp.dll - -;extension=php_soap.dll -;extension=php_sockets.dll -;extension=php_sqlite3.dll -;extension=php_tidy.dll -;extension=php_xmlrpc.dll -;extension=php_xsl.dll - -;;;;;;;;;;;;;;;;;;; -; Module Settings ; -;;;;;;;;;;;;;;;;;;; - -[CLI Server] -; Whether the CLI web server uses ANSI color coding in its terminal output. -cli_server.color = On - -[Date] -; Defines the default timezone used by the date functions -; http://php.net/date.timezone -date.timezone = Asia/Shanghai - -; http://php.net/date.default-latitude -;date.default_latitude = 31.7667 - -; http://php.net/date.default-longitude -;date.default_longitude = 35.2333 - -; http://php.net/date.sunrise-zenith -;date.sunrise_zenith = 90.583333 - -; http://php.net/date.sunset-zenith -;date.sunset_zenith = 90.583333 - -[filter] -; http://php.net/filter.default -;filter.default = unsafe_raw - -; http://php.net/filter.default-flags -;filter.default_flags = - -[iconv] -; Use of this INI entry is deprecated, use global input_encoding instead. -; If empty, default_charset or input_encoding or iconv.input_encoding is used. -; The precedence is: default_charset < intput_encoding < iconv.input_encoding -;iconv.input_encoding = - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;iconv.internal_encoding = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; If empty, default_charset or output_encoding or iconv.output_encoding is used. -; The precedence is: default_charset < output_encoding < iconv.output_encoding -; To use an output encoding conversion, iconv's output handler must be set -; otherwise output encoding conversion cannot be performed. -;iconv.output_encoding = - -[intl] -;intl.default_locale = -; This directive allows you to produce PHP errors when some error -; happens within intl functions. The value is the level of the error produced. -; Default is 0, which does not produce any errors. -;intl.error_level = E_WARNING -;intl.use_exceptions = 0 - -[sqlite3] -;sqlite3.extension_dir = - -[Pcre] -;PCRE library backtracking limit. -; http://php.net/pcre.backtrack-limit -;pcre.backtrack_limit=100000 - -;PCRE library recursion limit. -;Please note that if you set this value to a high number you may consume all -;the available process stack and eventually crash PHP (due to reaching the -;stack size limit imposed by the Operating System). -; http://php.net/pcre.recursion-limit -;pcre.recursion_limit=100000 - -;Enables or disables JIT compilation of patterns. This requires the PCRE -;library to be compiled with JIT support. -;pcre.jit=1 - -[Pdo] -; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off" -; http://php.net/pdo-odbc.connection-pooling -;pdo_odbc.connection_pooling=strict - -;pdo_odbc.db2_instance_name - -[Pdo_mysql] -; If mysqlnd is used: Number of cache slots for the internal result set cache -; http://php.net/pdo_mysql.cache_size -pdo_mysql.cache_size = 2000 - -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -; http://php.net/pdo_mysql.default-socket -pdo_mysql.default_socket= - -[Phar] -; http://php.net/phar.readonly -;phar.readonly = On - -; http://php.net/phar.require-hash -;phar.require_hash = On - -;phar.cache_list = - -[mail function] -; For Win32 only. -; http://php.net/smtp -SMTP = localhost -; http://php.net/smtp-port -smtp_port = 25 - -; For Win32 only. -; http://php.net/sendmail-from -;sendmail_from = me@example.com - -; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). -; http://php.net/sendmail-path -;sendmail_path = - -; Force the addition of the specified parameters to be passed as extra parameters -; to the sendmail binary. These parameters will always replace the value of -; the 5th parameter to mail(). -;mail.force_extra_parameters = - -; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename -mail.add_x_header = On - -; The path to a log file that will log all mail() calls. Log entries include -; the full path of the script, line number, To address and headers. -;mail.log = -; Log mail to syslog (Event Log on Windows). -;mail.log = syslog - -[ODBC] -; http://php.net/odbc.default-db -;odbc.default_db = Not yet implemented - -; http://php.net/odbc.default-user -;odbc.default_user = Not yet implemented - -; http://php.net/odbc.default-pw -;odbc.default_pw = Not yet implemented - -; Controls the ODBC cursor model. -; Default: SQL_CURSOR_STATIC (default). -;odbc.default_cursortype - -; Allow or prevent persistent links. -; http://php.net/odbc.allow-persistent -odbc.allow_persistent = On - -; Check that a connection is still valid before reuse. -; http://php.net/odbc.check-persistent -odbc.check_persistent = On - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/odbc.max-persistent -odbc.max_persistent = -1 - -; Maximum number of links (persistent + non-persistent). -1 means no limit. -; http://php.net/odbc.max-links -odbc.max_links = -1 - -; Handling of LONG fields. Returns number of bytes to variables. 0 means -; passthru. -; http://php.net/odbc.defaultlrl -odbc.defaultlrl = 4096 - -; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char. -; See the documentation on odbc_binmode and odbc_longreadlen for an explanation -; of odbc.defaultlrl and odbc.defaultbinmode -; http://php.net/odbc.defaultbinmode -odbc.defaultbinmode = 1 - -;birdstep.max_links = -1 - -[Interbase] -; Allow or prevent persistent links. -ibase.allow_persistent = 1 - -; Maximum number of persistent links. -1 means no limit. -ibase.max_persistent = -1 - -; Maximum number of links (persistent + non-persistent). -1 means no limit. -ibase.max_links = -1 - -; Default database name for ibase_connect(). -;ibase.default_db = - -; Default username for ibase_connect(). -;ibase.default_user = - -; Default password for ibase_connect(). -;ibase.default_password = - -; Default charset for ibase_connect(). -;ibase.default_charset = - -; Default timestamp format. -ibase.timestampformat = "%Y-%m-%d %H:%M:%S" - -; Default date format. -ibase.dateformat = "%Y-%m-%d" - -; Default time format. -ibase.timeformat = "%H:%M:%S" - -[MySQLi] - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/mysqli.max-persistent -mysqli.max_persistent = -1 - -; Allow accessing, from PHP's perspective, local files with LOAD DATA statements -; http://php.net/mysqli.allow_local_infile -;mysqli.allow_local_infile = On - -; Allow or prevent persistent links. -; http://php.net/mysqli.allow-persistent -mysqli.allow_persistent = On - -; Maximum number of links. -1 means no limit. -; http://php.net/mysqli.max-links -mysqli.max_links = -1 - -; If mysqlnd is used: Number of cache slots for the internal result set cache -; http://php.net/mysqli.cache_size -mysqli.cache_size = 2000 - -; Default port number for mysqli_connect(). If unset, mysqli_connect() will use -; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the -; compile-time value defined MYSQL_PORT (in that order). Win32 will only look -; at MYSQL_PORT. -; http://php.net/mysqli.default-port -mysqli.default_port = 3306 - -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -; http://php.net/mysqli.default-socket -mysqli.default_socket = - -; Default host for mysql_connect() (doesn't apply in safe mode). -; http://php.net/mysqli.default-host -mysqli.default_host = - -; Default user for mysql_connect() (doesn't apply in safe mode). -; http://php.net/mysqli.default-user -mysqli.default_user = - -; Default password for mysqli_connect() (doesn't apply in safe mode). -; Note that this is generally a *bad* idea to store passwords in this file. -; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw") -; and reveal this password! And of course, any users with read access to this -; file will be able to reveal the password as well. -; http://php.net/mysqli.default-pw -mysqli.default_pw = - -; Allow or prevent reconnect -mysqli.reconnect = Off - -[mysqlnd] -; Enable / Disable collection of general statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -; http://php.net/mysqlnd.collect_statistics -mysqlnd.collect_statistics = On - -; Enable / Disable collection of memory usage statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -; http://php.net/mysqlnd.collect_memory_statistics -mysqlnd.collect_memory_statistics = Off - -; Records communication from all extensions using mysqlnd to the specified log -; file. -; http://php.net/mysqlnd.debug -;mysqlnd.debug = - -; Defines which queries will be logged. -; http://php.net/mysqlnd.log_mask -;mysqlnd.log_mask = 0 - -; Default size of the mysqlnd memory pool, which is used by result sets. -; http://php.net/mysqlnd.mempool_default_size -;mysqlnd.mempool_default_size = 16000 - -; Size of a pre-allocated buffer used when sending commands to MySQL in bytes. -; http://php.net/mysqlnd.net_cmd_buffer_size -;mysqlnd.net_cmd_buffer_size = 2048 - -; Size of a pre-allocated buffer used for reading data sent by the server in -; bytes. -; http://php.net/mysqlnd.net_read_buffer_size -;mysqlnd.net_read_buffer_size = 32768 - -; Timeout for network requests in seconds. -; http://php.net/mysqlnd.net_read_timeout -;mysqlnd.net_read_timeout = 31536000 - -; SHA-256 Authentication Plugin related. File with the MySQL server public RSA -; key. -; http://php.net/mysqlnd.sha256_server_public_key -;mysqlnd.sha256_server_public_key = - -[OCI8] - -; Connection: Enables privileged connections using external -; credentials (OCI_SYSOPER, OCI_SYSDBA) -; http://php.net/oci8.privileged-connect -;oci8.privileged_connect = Off - -; Connection: The maximum number of persistent OCI8 connections per -; process. Using -1 means no limit. -; http://php.net/oci8.max-persistent -;oci8.max_persistent = -1 - -; Connection: The maximum number of seconds a process is allowed to -; maintain an idle persistent connection. Using -1 means idle -; persistent connections will be maintained forever. -; http://php.net/oci8.persistent-timeout -;oci8.persistent_timeout = -1 - -; Connection: The number of seconds that must pass before issuing a -; ping during oci_pconnect() to check the connection validity. When -; set to 0, each oci_pconnect() will cause a ping. Using -1 disables -; pings completely. -; http://php.net/oci8.ping-interval -;oci8.ping_interval = 60 - -; Connection: Set this to a user chosen connection class to be used -; for all pooled server requests with Oracle 11g Database Resident -; Connection Pooling (DRCP). To use DRCP, this value should be set to -; the same string for all web servers running the same application, -; the database pool must be configured, and the connection string must -; specify to use a pooled server. -;oci8.connection_class = - -; High Availability: Using On lets PHP receive Fast Application -; Notification (FAN) events generated when a database node fails. The -; database must also be configured to post FAN events. -;oci8.events = Off - -; Tuning: This option enables statement caching, and specifies how -; many statements to cache. Using 0 disables statement caching. -; http://php.net/oci8.statement-cache-size -;oci8.statement_cache_size = 20 - -; Tuning: Enables statement prefetching and sets the default number of -; rows that will be fetched automatically after statement execution. -; http://php.net/oci8.default-prefetch -;oci8.default_prefetch = 100 - -; Compatibility. Using On means oci_close() will not close -; oci_connect() and oci_new_connect() connections. -; http://php.net/oci8.old-oci-close-semantics -;oci8.old_oci_close_semantics = Off - -[PostgreSQL] -; Allow or prevent persistent links. -; http://php.net/pgsql.allow-persistent -pgsql.allow_persistent = On - -; Detect broken persistent links always with pg_pconnect(). -; Auto reset feature requires a little overheads. -; http://php.net/pgsql.auto-reset-persistent -pgsql.auto_reset_persistent = Off - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/pgsql.max-persistent -pgsql.max_persistent = -1 - -; Maximum number of links (persistent+non persistent). -1 means no limit. -; http://php.net/pgsql.max-links -pgsql.max_links = -1 - -; Ignore PostgreSQL backends Notice message or not. -; Notice message logging require a little overheads. -; http://php.net/pgsql.ignore-notice -pgsql.ignore_notice = 0 - -; Log PostgreSQL backends Notice message or not. -; Unless pgsql.ignore_notice=0, module cannot log notice message. -; http://php.net/pgsql.log-notice -pgsql.log_notice = 0 - -[bcmath] -; Number of decimal digits for all bcmath functions. -; http://php.net/bcmath.scale -bcmath.scale = 0 - -[browscap] -; http://php.net/browscap -;browscap = extra/browscap.ini - -[Session] -; Handler used to store/retrieve data. -; http://php.net/session.save-handler -session.save_handler = files - -; Argument passed to save_handler. In the case of files, this is the path -; where data files are stored. Note: Windows users have to change this -; variable in order to use PHP's session functions. -; -; The path can be defined as: -; -; session.save_path = "N;/path" -; -; where N is an integer. Instead of storing all the session files in -; /path, what this will do is use subdirectories N-levels deep, and -; store the session data in those directories. This is useful if -; your OS has problems with many files in one directory, and is -; a more efficient layout for servers that handle many sessions. -; -; NOTE 1: PHP will not create this directory structure automatically. -; You can use the script in the ext/session dir for that purpose. -; NOTE 2: See the section on garbage collection below if you choose to -; use subdirectories for session storage -; -; The file storage module creates files using mode 600 by default. -; You can change that by using -; -; session.save_path = "N;MODE;/path" -; -; where MODE is the octal representation of the mode. Note that this -; does not overwrite the process's umask. -; http://php.net/session.save-path -;session.save_path = "/tmp" - -; Whether to use strict session mode. -; Strict session mode does not accept uninitialized session ID and regenerate -; session ID if browser sends uninitialized session ID. Strict mode protects -; applications from session fixation via session adoption vulnerability. It is -; disabled by default for maximum compatibility, but enabling it is encouraged. -; https://wiki.php.net/rfc/strict_sessions -session.use_strict_mode = 0 - -; Whether to use cookies. -; http://php.net/session.use-cookies -session.use_cookies = 1 - -; http://php.net/session.cookie-secure -;session.cookie_secure = - -; This option forces PHP to fetch and use a cookie for storing and maintaining -; the session id. We encourage this operation as it's very helpful in combating -; session hijacking when not specifying and managing your own session id. It is -; not the be-all and end-all of session hijacking defense, but it's a good start. -; http://php.net/session.use-only-cookies -session.use_only_cookies = 1 - -; Name of the session (used as cookie name). -; http://php.net/session.name -session.name = PHPSESSID - -; Initialize session on request startup. -; http://php.net/session.auto-start -session.auto_start = 0 - -; Lifetime in seconds of cookie or, if 0, until browser is restarted. -; http://php.net/session.cookie-lifetime -session.cookie_lifetime = 0 - -; The path for which the cookie is valid. -; http://php.net/session.cookie-path -session.cookie_path = / - -; The domain for which the cookie is valid. -; http://php.net/session.cookie-domain -session.cookie_domain = - -; Whether or not to add the httpOnly flag to the cookie, which makes it inaccessible to browser scripting languages such as JavaScript. -; http://php.net/session.cookie-httponly -session.cookie_httponly = - -; Handler used to serialize data. php is the standard serializer of PHP. -; http://php.net/session.serialize-handler -session.serialize_handler = php - -; Defines the probability that the 'garbage collection' process is started -; on every session initialization. The probability is calculated by using -; gc_probability/gc_divisor. Where session.gc_probability is the numerator -; and gc_divisor is the denominator in the equation. Setting this value to 1 -; when the session.gc_divisor value is 100 will give you approximately a 1% chance -; the gc will run on any give request. -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; http://php.net/session.gc-probability -session.gc_probability = 1 - -; Defines the probability that the 'garbage collection' process is started on every -; session initialization. The probability is calculated by using the following equation: -; gc_probability/gc_divisor. Where session.gc_probability is the numerator and -; session.gc_divisor is the denominator in the equation. Setting this value to 1 -; when the session.gc_divisor value is 100 will give you approximately a 1% chance -; the gc will run on any give request. Increasing this value to 1000 will give you -; a 0.1% chance the gc will run on any give request. For high volume production servers, -; this is a more efficient approach. -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 -; http://php.net/session.gc-divisor -session.gc_divisor = 1000 - -; After this number of seconds, stored data will be seen as 'garbage' and -; cleaned up by the garbage collection process. -; http://php.net/session.gc-maxlifetime -session.gc_maxlifetime = 1440 - -; NOTE: If you are using the subdirectory option for storing session files -; (see session.save_path above), then garbage collection does *not* -; happen automatically. You will need to do your own garbage -; collection through a shell script, cron entry, or some other method. -; For example, the following script would is the equivalent of -; setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes): -; find /path/to/sessions -cmin +24 -type f | xargs rm - -; Check HTTP Referer to invalidate externally stored URLs containing ids. -; HTTP_REFERER has to contain this substring for the session to be -; considered as valid. -; http://php.net/session.referer-check -session.referer_check = - -; Set to {nocache,private,public,} to determine HTTP caching aspects -; or leave this empty to avoid sending anti-caching headers. -; http://php.net/session.cache-limiter -session.cache_limiter = nocache - -; Document expires after n minutes. -; http://php.net/session.cache-expire -session.cache_expire = 180 - -; trans sid support is disabled by default. -; Use of trans sid may risk your users' security. -; Use this option with caution. -; - User may send URL contains active session ID -; to other person via. email/irc/etc. -; - URL that contains active session ID may be stored -; in publicly accessible computer. -; - User may access your site with the same session ID -; always using URL stored in browser's history or bookmarks. -; http://php.net/session.use-trans-sid -session.use_trans_sid = 0 - -; Set session ID character length. This value could be between 22 to 256. -; Shorter length than default is supported only for compatibility reason. -; Users should use 32 or more chars. -; http://php.net/session.sid-length -; Default Value: 32 -; Development Value: 26 -; Production Value: 26 -session.sid_length = 26 - -; The URL rewriter will look for URLs in a defined set of HTML tags. -; is special; if you include them here, the rewriter will -; add a hidden field with the info which is otherwise appended -; to URLs. tag's action attribute URL will not be modified -; unless it is specified. -; Note that all valid entries require a "=", even if no value follows. -; Default Value: "a=href,area=href,frame=src,form=" -; Development Value: "a=href,area=href,frame=src,form=" -; Production Value: "a=href,area=href,frame=src,form=" -; http://php.net/url-rewriter.tags -session.trans_sid_tags = "a=href,area=href,frame=src,form=" - -; URL rewriter does not rewrite absolute URLs by default. -; To enable rewrites for absolute pathes, target hosts must be specified -; at RUNTIME. i.e. use ini_set() -; tags is special. PHP will check action attribute's URL regardless -; of session.trans_sid_tags setting. -; If no host is defined, HTTP_HOST will be used for allowed host. -; Example value: php.net,www.php.net,wiki.php.net -; Use "," for multiple hosts. No spaces are allowed. -; Default Value: "" -; Development Value: "" -; Production Value: "" -;session.trans_sid_hosts="" - -; Define how many bits are stored in each character when converting -; the binary hash data to something readable. -; Possible values: -; 4 (4 bits: 0-9, a-f) -; 5 (5 bits: 0-9, a-v) -; 6 (6 bits: 0-9, a-z, A-Z, "-", ",") -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 -; http://php.net/session.hash-bits-per-character -session.sid_bits_per_character = 5 - -; Enable upload progress tracking in $_SESSION -; Default Value: On -; Development Value: On -; Production Value: On -; http://php.net/session.upload-progress.enabled -;session.upload_progress.enabled = On - -; Cleanup the progress information as soon as all POST data has been read -; (i.e. upload completed). -; Default Value: On -; Development Value: On -; Production Value: On -; http://php.net/session.upload-progress.cleanup -;session.upload_progress.cleanup = On - -; A prefix used for the upload progress key in $_SESSION -; Default Value: "upload_progress_" -; Development Value: "upload_progress_" -; Production Value: "upload_progress_" -; http://php.net/session.upload-progress.prefix -;session.upload_progress.prefix = "upload_progress_" - -; The index name (concatenated with the prefix) in $_SESSION -; containing the upload progress information -; Default Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Development Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Production Value: "PHP_SESSION_UPLOAD_PROGRESS" -; http://php.net/session.upload-progress.name -;session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS" - -; How frequently the upload progress should be updated. -; Given either in percentages (per-file), or in bytes -; Default Value: "1%" -; Development Value: "1%" -; Production Value: "1%" -; http://php.net/session.upload-progress.freq -;session.upload_progress.freq = "1%" - -; The minimum delay between updates, in seconds -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; http://php.net/session.upload-progress.min-freq -;session.upload_progress.min_freq = "1" - -; Only write session data when session data is changed. Enabled by default. -; http://php.net/session.lazy-write -;session.lazy_write = On - -[Assertion] -; Switch whether to compile assertions at all (to have no overhead at run-time) -; -1: Do not compile at all -; 0: Jump over assertion at run-time -; 1: Execute assertions -; Changing from or to a negative value is only possible in php.ini! (For turning assertions on and off at run-time, see assert.active, when zend.assertions = 1) -; Default Value: 1 -; Development Value: 1 -; Production Value: -1 -; http://php.net/zend.assertions -zend.assertions = -1 - -; Assert(expr); active by default. -; http://php.net/assert.active -;assert.active = On - -; Throw an AssertationException on failed assertions -; http://php.net/assert.exception -;assert.exception = On - -; Issue a PHP warning for each failed assertion. (Overridden by assert.exception if active) -; http://php.net/assert.warning -;assert.warning = On - -; Don't bail out by default. -; http://php.net/assert.bail -;assert.bail = Off - -; User-function to be called if an assertion fails. -; http://php.net/assert.callback -;assert.callback = 0 - -; Eval the expression with current error_reporting(). Set to true if you want -; error_reporting(0) around the eval(). -; http://php.net/assert.quiet-eval -;assert.quiet_eval = 0 - -[COM] -; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs -; http://php.net/com.typelib-file -;com.typelib_file = - -; allow Distributed-COM calls -; http://php.net/com.allow-dcom -;com.allow_dcom = true - -; autoregister constants of a components typlib on com_load() -; http://php.net/com.autoregister-typelib -;com.autoregister_typelib = true - -; register constants casesensitive -; http://php.net/com.autoregister-casesensitive -;com.autoregister_casesensitive = false - -; show warnings on duplicate constant registrations -; http://php.net/com.autoregister-verbose -;com.autoregister_verbose = true - -; The default character set code-page to use when passing strings to and from COM objects. -; Default: system ANSI code page -;com.code_page= - -[mbstring] -; language for internal character representation. -; This affects mb_send_mail() and mbstring.detect_order. -; http://php.net/mbstring.language -;mbstring.language = Japanese - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; internal/script encoding. -; Some encoding cannot work as internal encoding. (e.g. SJIS, BIG5, ISO-2022-*) -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;mbstring.internal_encoding = - -; Use of this INI entry is deprecated, use global input_encoding instead. -; http input encoding. -; mbstring.encoding_traslation = On is needed to use this setting. -; If empty, default_charset or input_encoding or mbstring.input is used. -; The precedence is: default_charset < intput_encoding < mbsting.http_input -; http://php.net/mbstring.http-input -;mbstring.http_input = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; http output encoding. -; mb_output_handler must be registered as output buffer to function. -; If empty, default_charset or output_encoding or mbstring.http_output is used. -; The precedence is: default_charset < output_encoding < mbstring.http_output -; To use an output encoding conversion, mbstring's output handler must be set -; otherwise output encoding conversion cannot be performed. -; http://php.net/mbstring.http-output -;mbstring.http_output = - -; enable automatic encoding translation according to -; mbstring.internal_encoding setting. Input chars are -; converted to internal encoding by setting this to On. -; Note: Do _not_ use automatic encoding translation for -; portable libs/applications. -; http://php.net/mbstring.encoding-translation -;mbstring.encoding_translation = Off - -; automatic encoding detection order. -; "auto" detect order is changed according to mbstring.language -; http://php.net/mbstring.detect-order -;mbstring.detect_order = auto - -; substitute_character used when character cannot be converted -; one from another -; http://php.net/mbstring.substitute-character -;mbstring.substitute_character = none - -; overload(replace) single byte functions by mbstring functions. -; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(), -; etc. Possible values are 0,1,2,4 or combination of them. -; For example, 7 for overload everything. -; 0: No overload -; 1: Overload mail() function -; 2: Overload str*() functions -; 4: Overload ereg*() functions -; http://php.net/mbstring.func-overload -;mbstring.func_overload = 0 - -; enable strict encoding detection. -; Default: Off -;mbstring.strict_detection = On - -; This directive specifies the regex pattern of content types for which mb_output_handler() -; is activated. -; Default: mbstring.http_output_conv_mimetype=^(text/|application/xhtml\+xml) -;mbstring.http_output_conv_mimetype= - -[gd] -; Tell the jpeg decode to ignore warnings and try to create -; a gd image. The warning will then be displayed as notices -; disabled by default -; http://php.net/gd.jpeg-ignore-warning -;gd.jpeg_ignore_warning = 1 - -[exif] -; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS. -; With mbstring support this will automatically be converted into the encoding -; given by corresponding encode setting. When empty mbstring.internal_encoding -; is used. For the decode settings you can distinguish between motorola and -; intel byte order. A decode setting cannot be empty. -; http://php.net/exif.encode-unicode -;exif.encode_unicode = ISO-8859-15 - -; http://php.net/exif.decode-unicode-motorola -;exif.decode_unicode_motorola = UCS-2BE - -; http://php.net/exif.decode-unicode-intel -;exif.decode_unicode_intel = UCS-2LE - -; http://php.net/exif.encode-jis -;exif.encode_jis = - -; http://php.net/exif.decode-jis-motorola -;exif.decode_jis_motorola = JIS - -; http://php.net/exif.decode-jis-intel -;exif.decode_jis_intel = JIS - -[Tidy] -; The path to a default tidy configuration file to use when using tidy -; http://php.net/tidy.default-config -;tidy.default_config = /usr/local/lib/php/default.tcfg - -; Should tidy clean and repair output automatically? -; WARNING: Do not use this option if you are generating non-html content -; such as dynamic images -; http://php.net/tidy.clean-output -tidy.clean_output = Off - -[soap] -; Enables or disables WSDL caching feature. -; http://php.net/soap.wsdl-cache-enabled -soap.wsdl_cache_enabled=1 - -; Sets the directory name where SOAP extension will put cache files. -; http://php.net/soap.wsdl-cache-dir -soap.wsdl_cache_dir="/tmp" - -; (time to live) Sets the number of second while cached file will be used -; instead of original one. -; http://php.net/soap.wsdl-cache-ttl -soap.wsdl_cache_ttl=86400 - -; Sets the size of the cache limit. (Max. number of WSDL files to cache) -soap.wsdl_cache_limit = 5 - -[sysvshm] -; A default size of the shared memory segment -;sysvshm.init_mem = 10000 - -[ldap] -; Sets the maximum number of open links or -1 for unlimited. -ldap.max_links = -1 - -[dba] -;dba.default_handler= - -[opcache] -; Determines if Zend OPCache is enabled -;opcache.enable=1 - -; Determines if Zend OPCache is enabled for the CLI version of PHP -;opcache.enable_cli=1 - -; The OPcache shared memory storage size. -;opcache.memory_consumption=128 - -; The amount of memory for interned strings in Mbytes. -;opcache.interned_strings_buffer=8 - -; The maximum number of keys (scripts) in the OPcache hash table. -; Only numbers between 200 and 1000000 are allowed. -;opcache.max_accelerated_files=10000 - -; The maximum percentage of "wasted" memory until a restart is scheduled. -;opcache.max_wasted_percentage=5 - -; When this directive is enabled, the OPcache appends the current working -; directory to the script key, thus eliminating possible collisions between -; files with the same name (basename). Disabling the directive improves -; performance, but may break existing applications. -;opcache.use_cwd=1 - -; When disabled, you must reset the OPcache manually or restart the -; webserver for changes to the filesystem to take effect. -;opcache.validate_timestamps=1 - -; How often (in seconds) to check file timestamps for changes to the shared -; memory storage allocation. ("1" means validate once per second, but only -; once per request. "0" means always validate) -;opcache.revalidate_freq=2 - -; Enables or disables file search in include_path optimization -;opcache.revalidate_path=0 - -; If disabled, all PHPDoc comments are dropped from the code to reduce the -; size of the optimized code. -;opcache.save_comments=1 - -; If enabled, a fast shutdown sequence is used for the accelerated code -; Depending on the used Memory Manager this may cause some incompatibilities. -;opcache.fast_shutdown=0 - -; Allow file existence override (file_exists, etc.) performance feature. -;opcache.enable_file_override=0 - -; A bitmask, where each bit enables or disables the appropriate OPcache -; passes -;opcache.optimization_level=0xffffffff - -;opcache.inherited_hack=1 -;opcache.dups_fix=0 - -; The location of the OPcache blacklist file (wildcards allowed). -; Each OPcache blacklist file is a text file that holds the names of files -; that should not be accelerated. The file format is to add each filename -; to a new line. The filename may be a full path or just a file prefix -; (i.e., /var/www/x blacklists all the files and directories in /var/www -; that start with 'x'). Line starting with a ; are ignored (comments). -;opcache.blacklist_filename= - -; Allows exclusion of large files from being cached. By default all files -; are cached. -;opcache.max_file_size=0 - -; Check the cache checksum each N requests. -; The default value of "0" means that the checks are disabled. -;opcache.consistency_checks=0 - -; How long to wait (in seconds) for a scheduled restart to begin if the cache -; is not being accessed. -;opcache.force_restart_timeout=180 - -; OPcache error_log file name. Empty string assumes "stderr". -;opcache.error_log= - -; All OPcache errors go to the Web server log. -; By default, only fatal errors (level 0) or errors (level 1) are logged. -; You can also enable warnings (level 2), info messages (level 3) or -; debug messages (level 4). -;opcache.log_verbosity_level=1 - -; Preferred Shared Memory back-end. Leave empty and let the system decide. -;opcache.preferred_memory_model= - -; Protect the shared memory from unexpected writing during script execution. -; Useful for internal debugging only. -;opcache.protect_memory=0 - -; Allows calling OPcache API functions only from PHP scripts which path is -; started from specified string. The default "" means no restriction -;opcache.restrict_api= - -; Mapping base of shared memory segments (for Windows only). All the PHP -; processes have to map shared memory into the same address space. This -; directive allows to manually fix the "Unable to reattach to base address" -; errors. -;opcache.mmap_base= - -; Enables and sets the second level cache directory. -; It should improve performance when SHM memory is full, at server restart or -; SHM reset. The default "" disables file based caching. -;opcache.file_cache= - -; Enables or disables opcode caching in shared memory. -;opcache.file_cache_only=0 - -; Enables or disables checksum validation when script loaded from file cache. -;opcache.file_cache_consistency_checks=1 - -; Implies opcache.file_cache_only=1 for a certain process that failed to -; reattach to the shared memory (for Windows only). Explicitly enabled file -; cache is required. -;opcache.file_cache_fallback=1 - -; Enables or disables copying of PHP code (text segment) into HUGE PAGES. -; This should improve performance, but requires appropriate OS configuration. -;opcache.huge_code_pages=1 - -; Validate cached file permissions. -;opcache.validate_permission=0 - -; Prevent name collisions in chroot'ed environment. -;opcache.validate_root=0 - -[curl] -; A default value for the CURLOPT_CAINFO option. This is required to be an -; absolute path. -;curl.cainfo = - -[openssl] -; The location of a Certificate Authority (CA) file on the local filesystem -; to use when verifying the identity of SSL/TLS peers. Most users should -; not specify a value for this directive as PHP will attempt to use the -; OS-managed cert stores in its absence. If specified, this value may still -; be overridden on a per-stream basis via the "cafile" SSL stream context -; option. -;openssl.cafile= - -; If openssl.cafile is not specified or if the CA file is not found, the -; directory pointed to by openssl.capath is searched for a suitable -; certificate. This value must be a correctly hashed certificate directory. -; Most users should not specify a value for this directive as PHP will -; attempt to use the OS-managed cert stores in its absence. If specified, -; this value may still be overridden on a per-stream basis via the "capath" -; SSL stream context option. -;openssl.capath= - -; Local Variables: -; tab-width: 4 -; End: - -[XDebug] -xdebug.remote_enable = 1 -xdebug.remote_handler = "dbgp" -; Set to host.docker.internal on Mac and Windows, otherwise, set to host real ip -xdebug.remote_host = host.docker.internal -;xdebug.remote_port = 9000 -xdebug.remote_log = /var/log/php/xdebug.log - -SERVER_ENV=develop - -yaf.use_spl_autoload=1 - -[xhprof] -;xhprof.output_dir = /var/log/php/xhprof.log \ No newline at end of file diff --git a/php7/7.2.34/data.yml b/php7/7.2.34/data.yml deleted file mode 100755 index deeede5ad..000000000 --- a/php7/7.2.34/data.yml +++ /dev/null @@ -1,18 +0,0 @@ -additionalProperties: - formFields: - - default: 9000 - envKey: PANEL_APP_PORT_HTTP - labelEn: PHP-FPM Port - labelZh: PHP-FPM 端口 - label: - en: PHP-FPM Port - ja: PHP-FPM ポート - ms: Port PHP-FPM - pt-br: Porta PHP-FPM - ru: Порт PHP-FPM - ko: PHP-FPM 포트 - zh-Hant: PHP-FPM 埠 - zh: PHP-FPM 端口 - required: true - rule: paramPort - type: number diff --git a/php7/7.2.34/docker-compose.yml b/php7/7.2.34/docker-compose.yml deleted file mode 100644 index dc530c778..000000000 --- a/php7/7.2.34/docker-compose.yml +++ /dev/null @@ -1,21 +0,0 @@ -services: - php: - image: ${IMAGE_NAME} - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - volumes: - - ${PANEL_WEBSITE_DIR}:/www/ - - ./conf/php.ini:/usr/local/etc/php/php.ini - - ./conf/php-fpm.conf:/usr/local/etc/php-fpm.d/www.conf - - ./log:/var/log/php - - ./composer:/tmp/composer - - ./extensions:/php/extensions - ports: - - 127.0.0.1:${PANEL_APP_PORT_HTTP}:9000 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/php7/7.3.33/build/.env b/php7/7.3.33/build/.env deleted file mode 100644 index 6b9ce91d8..000000000 --- a/php7/7.3.33/build/.env +++ /dev/null @@ -1,14 +0,0 @@ -CONTAINER_PACKAGE_URL=mirrors.ustc.edu.cn - -PHP_VERSION=7.3.33 -PHP_PHP_CONF_FILE=./php/php.ini -PHP_FPM_CONF_FILE=./php/php-fpm.conf -PHP_LOG_DIR=./logs/php -PHP_EXTENSIONS= - -SOURCE_DIR=./www - -TZ=Asia/Shanghai -DATA_DIR=./data -IMAGE_NAME=1panel-php:7.3.33 -INSTALL_SUPERVISOR=0 \ No newline at end of file diff --git a/php7/7.3.33/build/config.json b/php7/7.3.33/build/config.json deleted file mode 100644 index 28ee3c56b..000000000 --- a/php7/7.3.33/build/config.json +++ /dev/null @@ -1,134 +0,0 @@ -{ - "formFields": [ - { - "type": "select", - "multiple": true, - "labelZh": "扩展", - "labelEn": "Extensions", - "default": ["mysqli","pdo_mysql"], - "values": [ - { - "label": "opcache", - "value": "opcache" - }, - { - "label": "memcached", - "value": "memcached" - }, - { - "label": "memcache", - "value": "memcache" - }, - { - "label": "redis", - "value": "redis" - }, - { - "label": "mcrypt", - "value": "mcrypt" - }, - { - "label": "xdebug", - "value": "xdebug" - }, - { - "label": "imap", - "value": "imap" - }, - { - "label": "exif", - "value": "exif" - }, - { - "label": "intl", - "value": "intl" - }, - { - "label": "swoole", - "value": "swoole" - }, - { - "label": "yaf", - "value": "yaf" - }, - { - "label": "pgsql", - "value": "pgsql" - }, - { - "label": "pdo_pgsql", - "value": "pdo_pgsql" - }, - { - "label": "snmp", - "value": "snmp" - }, { - "label": "ldap", - "value": "ldap" - }, - { - "label": "pspell", - "value": "pspell" - }, - { - "label": "bz2", - "value": "bz2" - }, - { - "label": "sysvshm", - "value": "sysvshm" - }, - { - "label": "calendar", - "value": "calendar" - }, - { - "label": "gmp", - "value": "gmp" - }, - { - "label": "sysvmsg", - "value": "sysvmsg" - }, - { - "label": "igbinary", - "value": "igbinary" - }, - { - "label": "mysqli", - "value": "mysqli" - }, - { - "label": "pdo_mysql", - "value": "pdo_mysql" - }, - { - "label": "mbstring", - "value": "mbstring" - }, - { - "label": "gd", - "value": "gd" - }, - { - "label": "ioncube_loader", - "value": "ioncube_loader" - }, - { - "label": "curl", - "value": "curl" - }, - { - "label": "sg15", - "value": "sourceguardian" - }, - { - "label": "imagick", - "value": "imagick" - } - ], - "envKey": "PHP_EXTENSIONS", - "edit": true - } - ] -} \ No newline at end of file diff --git a/php7/7.3.33/build/docker-compose.yml b/php7/7.3.33/build/docker-compose.yml deleted file mode 100644 index 21e9fa737..000000000 --- a/php7/7.3.33/build/docker-compose.yml +++ /dev/null @@ -1,19 +0,0 @@ -services: - 1panel-php: - build: - context: ./php - args: - PHP_IMAGE: php:${PHP_VERSION}-fpm-alpine - CONTAINER_PACKAGE_URL: ${CONTAINER_PACKAGE_URL} - PHP_EXTENSIONS: ${PHP_EXTENSIONS} - TZ: ${TZ} - image: ${IMAGE_NAME} - volumes: - - ${SOURCE_DIR}:/www/ - - ${PHP_PHP_CONF_FILE}:/usr/local/etc/php/php.ini - - ${PHP_FPM_CONF_FILE}:/usr/local/etc/php-fpm.d/www.conf - - ${PHP_LOG_DIR}:/var/log/php - - ${DATA_DIR}/composer:/tmp/composer - restart: always - cap_add: - - SYS_PTRACE diff --git a/php7/7.3.33/build/php/Dockerfile b/php7/7.3.33/build/php/Dockerfile deleted file mode 100644 index 622c0b79e..000000000 --- a/php7/7.3.33/build/php/Dockerfile +++ /dev/null @@ -1,36 +0,0 @@ -ARG PHP_IMAGE -FROM ${PHP_IMAGE} - -ARG TZ -ARG PHP_EXTENSIONS -ARG CONTAINER_PACKAGE_URL -ARG INSTALL_SUPERVISOR - -RUN if [ $CONTAINER_PACKAGE_URL ] ; then sed -i "s/dl-cdn.alpinelinux.org/${CONTAINER_PACKAGE_URL}/g" /etc/apk/repositories ; fi - -ADD ./extensions/install-php-extensions /usr/local/bin/ -RUN chmod uga+x /usr/local/bin/install-php-extensions - -COPY ./extensions /tmp/extensions -WORKDIR /tmp/extensions -RUN chmod +x install.sh \ - && sh install.sh - -RUN apk --no-cache add tzdata \ - && cp "/usr/share/zoneinfo/$TZ" /etc/localtime \ - && echo "$TZ" > /etc/timezone - -# Fix: https://github.com/docker-library/php/issues/1121 -RUN apk add --no-cache --repository http://${CONTAINER_PACKAGE_URL}/alpine/v3.13/community/ gnu-libiconv=1.15-r3 -ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so php - -# Install composer and change it's cache home -RUN chmod +x install-composer.sh \ - && sh install-composer.sh \ - && rm -rf /tmp/extensions -ENV COMPOSER_HOME=/tmp/composer - -# php image's www-data user uid & gid are 82, change them to 1000 (primary user) -RUN apk --no-cache add shadow && usermod -u 1000 www-data && groupmod -g 1000 www-data - -WORKDIR /www diff --git a/php7/7.3.33/build/php/extensions/amqp-1.10.2.tgz b/php7/7.3.33/build/php/extensions/amqp-1.10.2.tgz deleted file mode 100644 index 7bcd30d03..000000000 Binary files a/php7/7.3.33/build/php/extensions/amqp-1.10.2.tgz and /dev/null differ diff --git a/php7/7.3.33/build/php/extensions/apcu-5.1.17.tgz b/php7/7.3.33/build/php/extensions/apcu-5.1.17.tgz deleted file mode 100644 index c15ca116a..000000000 Binary files a/php7/7.3.33/build/php/extensions/apcu-5.1.17.tgz and /dev/null differ diff --git a/php7/7.3.33/build/php/extensions/event-3.0.8.tgz b/php7/7.3.33/build/php/extensions/event-3.0.8.tgz deleted file mode 100644 index e7a471bbe..000000000 Binary files a/php7/7.3.33/build/php/extensions/event-3.0.8.tgz and /dev/null differ diff --git a/php7/7.3.33/build/php/extensions/install-composer.sh b/php7/7.3.33/build/php/extensions/install-composer.sh deleted file mode 100644 index 34074732d..000000000 --- a/php7/7.3.33/build/php/extensions/install-composer.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/sh - -# The latest mirror's composer version only support for PHP 7.2.5 -# And if your PHP version is lesser than that, will be download supported version. -supportLatest=$(php -r "echo version_compare(PHP_VERSION, '7.2.5', '>');") - -if [ "$supportLatest" -eq "1" ]; then - curl -o /usr/bin/composer https://mirrors.aliyun.com/composer/composer.phar \ - && chmod +x /usr/bin/composer -else - curl -o /tmp/composer-setup.php https://getcomposer.org/installer \ - && php /tmp/composer-setup.php --install-dir=/tmp \ - && mv /tmp/composer.phar /usr/bin/composer \ - && chmod +x /usr/bin/composer \ - && rm -rf /tmp/composer-setup.php -fi \ No newline at end of file diff --git a/php7/7.3.33/build/php/extensions/install-php-extensions b/php7/7.3.33/build/php/extensions/install-php-extensions deleted file mode 100644 index 2ef98bb85..000000000 --- a/php7/7.3.33/build/php/extensions/install-php-extensions +++ /dev/null @@ -1,5154 +0,0 @@ -#!/bin/sh - -# This script wraps docker-php-ext-install, properly configuring the system. -# -# Copyright (c) Michele Locati, 2018-2023 -# -# Source: https://github.com/mlocati/docker-php-extension-installer -# -# License: MIT - see https://github.com/mlocati/docker-php-extension-installer/blob/master/LICENSE - -# Let's set a sane environment -set -o errexit -set -o nounset - -if test "${IPE_DEBUG:-}" = "1"; then - set -x -fi - -if ! which docker-php-ext-configure >/dev/null || ! which docker-php-ext-enable >/dev/null || ! which docker-php-ext-install >/dev/null || ! which docker-php-source >/dev/null; then - printf 'The script %s is meant to be used with official Docker PHP Images - https://hub.docker.com/_/php\n' "$0" >&2 - exit 1 -fi - -IPE_VERSION=2.7.27 - -StandWithUkraine() { - if test -t 1 && ! grep -Eq '^VERSION=.*jessie' /etc/os-release; then - printf '\e[37;44m#StandWith\e[30;43mUkraine\e[0m\n' - else - printf '#StandWithUkraine\n' - fi -} - -if test "$IPE_VERSION" = master && test "${CI:-}" != true; then - cat <&2 - exit 1 - fi - DISTRO="$(cat /etc/os-release | grep -E ^ID= | cut -d = -f 2)" - DISTRO_VERSION_NUMBER="$(cat /etc/os-release | grep -E ^VERSION_ID= | cut -d = -f 2 | cut -d '"' -f 2 | cut -d . -f 1,2)" - DISTRO_VERSION="$(printf '%s@%s' $DISTRO $DISTRO_VERSION_NUMBER)" - DISTRO_MAJMIN_VERSION="$(echo "$DISTRO_VERSION_NUMBER" | awk -F. '{print $1*100+$2}')" -} - -# Set: -# - PHP_MAJMIN_VERSION: Major-Minor version, format MMmm (example 800 for PHP 8.0.1) -# - PHP_MAJDOTMIN_VERSION: Major-Minor version, format M.m (example 8.0 for PHP 8.0.1) -# - PHP_MAJMINPAT_VERSION: Major-Minor-Patch version, format MMmmpp (example 80001 for PHP 8.0.1) variables containing integers value -# - PHP_MAJDOTMINDOTPAT_VERSION: Major-Minor-Patch version, format M.m.p (example 8.0.1 for PHP 8.0.1) -# - PHP_THREADSAFE: 1 if PHP is thread-safe (TS), 0 if not thread-safe (NTS) -# - PHP_DEBUGBUILD: 1 if PHP is debug build (configured with "--enable-debug"), 0 otherwise -# - PHP_BITS: 32 if PHP is compiled for 32-bit, 64 if 64-bit -# - PHP_EXTDIR: the absolute path where the PHP extensions reside -setPHPVersionVariables() { - PHP_MAJDOTMINDOTPAT_VERSION="$(php-config --version)" - PHP_MAJMIN_VERSION=$(printf '%s' "$PHP_MAJDOTMINDOTPAT_VERSION" | awk -F. '{print $1*100+$2}') - PHP_MAJDOTMIN_VERSION=$(printf '%s' "$PHP_MAJDOTMINDOTPAT_VERSION" | cut -d. -f1-2) - PHP_MAJMINPAT_VERSION=$(printf '%s' "$PHP_MAJDOTMINDOTPAT_VERSION" | awk -F. '{print $1*10000+$2*100+$3}') - PHP_THREADSAFE=$(php -n -r 'echo ZEND_THREAD_SAFE ? 1 : 0;') - PHP_DEBUGBUILD=$(php -n -r 'echo ZEND_DEBUG_BUILD ? 1 : 0;') - PHP_BITS=$(php -n -r 'echo PHP_INT_SIZE * 8;') - PHP_EXTDIR="$(php -d display_errors=stderr -r 'echo realpath(ini_get("extension_dir"));')" -} - -# Fix apt-get being very slow on Debian Jessie -# See https://bugs.launchpad.net/ubuntu/+source/apt/+bug/1332440 -fixMaxOpenFiles() { - fixMaxOpenFiles_cur=$(ulimit -n 2>/dev/null || echo 0) - if test "$fixMaxOpenFiles_cur" -gt 10000; then - ulimit -n 10000 - fi -} - -# Get the directory containing the compiled PHP extensions -# -# Output: -# The absolute path of the extensions dir -getPHPExtensionsDir() { - php -i | grep -E '^extension_dir' | head -n1 | tr -s '[:space:]*=>[:space:]*' '|' | cut -d'|' -f2 -} - -# Normalize the name of a PHP extension -# -# Arguments: -# $1: the name of the module to be normalized -# -# Output: -# The normalized module name -normalizePHPModuleName() { - normalizePHPModuleName_name="$1" - case "$normalizePHPModuleName_name" in - *A* | *B* | *C* | *D* | *E* | *F* | *G* | *H* | *I* | *J* | *K* | *L* | *M* | *N* | *O* | *P* | *Q* | *R* | *S* | *T* | *U* | *V* | *W* | *X* | *Y* | *Z*) - normalizePHPModuleName_name="$(LC_CTYPE=C printf '%s' "$normalizePHPModuleName_name" | tr '[:upper:]' '[:lower:]')" - ;; - esac - case "$normalizePHPModuleName_name" in - datadog_trace) - normalizePHPModuleName_name=ddtrace - ;; - ioncube | ioncube\ loader) - normalizePHPModuleName_name='ioncube_loader' - ;; - pecl_http) - normalizePHPModuleName_name='http' - ;; - zend\ opcache) - normalizePHPModuleName_name='opcache' - ;; - libsodium) - if test $PHP_MAJMIN_VERSION -ge 700; then - normalizePHPModuleName_name='sodium' - fi - ;; - sodium) - if test $PHP_MAJMIN_VERSION -lt 700; then - normalizePHPModuleName_name='libsodium' - fi - ;; - *\ *) - printf '### WARNING Unrecognized module name: %s ###\n' "$1" >&2 - ;; - esac - printf '%s' "$normalizePHPModuleName_name" -} - -# Get the PECL name of PHP extension -# -# Arguments: -# $1: the name of the extension -# -# Output: -# The PECL name of the extension -getPeclModuleName() { - normalizePHPModuleName_name="$1" - case "$normalizePHPModuleName_name" in - ddtrace) - normalizePHPModuleName_name=datadog_trace - ;; - http) - normalizePHPModuleName_name=pecl_http - ;; - sodium) - normalizePHPModuleName_name=libsodium - ;; - esac - printf '%s' "$normalizePHPModuleName_name" -} - -# Parse a package.xml (or package2.xml) file and extract the module name and version -# -# Arguments: -# $1: the patho to the XML file -# -# Set these variables: -# - EXTRACTPACKAGEVERSIONFROMXML_NAME -# - EXTRACTPACKAGEVERSIONFROMXML_VERSION -# -# Output: -# Nothing -# -# Return: -# 0 (true): if the string is in the list -# 1 (false): if the string is not in the list -extractPackageVersionFromXML() { - if ! test -f "$1"; then - printf 'Unable to find the file\n%s\n' >&2 - return 1 - fi - extractPackageVersionFromXML_code="$( - cat <<'EOT' -$doc = new DOMDocument(); -if (!$doc->load($argv[1])) { - fwrite(STDERR, "Failed to load XML file\n"); - exit(1); -} -set_error_handler( - static function($errno, $errstr) { - fwrite(STDERR, trim((string) $errstr) . "\n"); - exit(1); - }, - -1 -); -$xpath = new DOMXpath($doc); -$xpath->registerNamespace('v20', 'http://pear.php.net/dtd/package-2.0'); -$xpath->registerNamespace('v21', 'http://pear.php.net/dtd/package-2.1'); -if ($xpath->query('/v20:package/v20:dependencies')->length === 1) { - $ns = 'v20:'; -} elseif ($xpath->query('/v21:package/v21:dependencies')->length === 1) { - $ns = 'v21:'; -} elseif ($xpath->query('/package')->length === 1) { - $ns = ''; -} else { - fwrite(STDERR, "Unsupported namespace of the XML of package version details\n"); -} -$nodes = $xpath->query("/{$ns}package/{$ns}name"); -$name = trim((string) $nodes[0]->nodeValue); -if ($ns === '') { - $nodes = $xpath->query("/{$ns}package/{$ns}version"); -} else { - $nodes = $xpath->query("/{$ns}package/{$ns}version/{$ns}release"); -} -$version = trim((string) $nodes[0]->nodeValue); -echo "EXTRACTPACKAGEVERSIONFROMXML_NAME='{$name}'\n"; -echo "EXTRACTPACKAGEVERSIONFROMXML_VERSION='{$version}'\n"; -exit(0); -EOT - )" - extractPackageVersionFromXML_vars="$(php -n -d display_errors=stderr -r "$extractPackageVersionFromXML_code" "$1")" - if test -z "$extractPackageVersionFromXML_vars"; then - return 1 - fi - eval "$extractPackageVersionFromXML_vars" - return 0 -} - -# Parse a module name (and optionally version) as received via command arguments, extracting the version and normalizing it -# Examples: -# xdebug-2.9.8 -# xdebug-^2 -# xdebug-^2.9 -# -# Arguments: -# $1: the name of the module to be normalized -# -# Set these variables: -# - PROCESSED_PHP_MODULE_ARGUMENT -# -# Optionally set these variables: -# - PHP_WANTEDMODULEVERSION_<...> (where <...> is the normalized module name) -# - PHP_MODULESOURCECODEPATH_<...> (where <...> is the normalized module name) -# -# Output: -# Nothing -processPHPModuleArgument() { - processPHPModuleArgument_arg="$1" - case "$processPHPModuleArgument_arg" in - imagick) - if test $PHP_MAJMIN_VERSION -ge 804; then - processPHPModuleArgument_arg=imagick/imagick@65e27f2bc02e7e8f1bf64e26e359e42a1331fca1 - elif test $PHP_MAJMIN_VERSION -ge 803; then - processPHPModuleArgument_arg=imagick/imagick@28f27044e435a2b203e32675e942eb8de620ee58 - fi - ;; - esac - # Convert GitHub short form to long url, - # for example: from - # php-memcached-dev/php-memcached@8f106564e6bb005ca6100b12ccc89000daafa9d8 - # to - # https://codeload.github.com/php-memcached-dev/php-memcached/tar.gz/8f106564e6bb005ca6100b12ccc89000daafa9d8 - processPHPModuleArgument_arg="$(printf '%s' "$processPHPModuleArgument_arg" | sed -E 's/^([a-zA-Z0-9_.\-]+\/[a-zA-Z0-9_.\-]+)@(.+$)/https:\/\/codeload.github.com\/\1\/tar.gz\/\2/')" - # Let's check if $processPHPModuleArgument_arg is an URL - if printf '%s' "$processPHPModuleArgument_arg" | grep -Eq '^https?://[^ ]+/[^ ]+$'; then - printf 'Downloading source from %s\n' "$processPHPModuleArgument_arg" - processPHPModuleArgument_arg="$(getPackageSource "$processPHPModuleArgument_arg")" - fi - # Let's check if $processPHPModuleArgument_arg the absolute path of an existing directory - if test "$processPHPModuleArgument_arg" != "${processPHPModuleArgument_arg#/}" && test -d "$processPHPModuleArgument_arg"; then - if test -f "$processPHPModuleArgument_arg/package2.xml"; then - printf 'Checking package2.xml of directory %s... ' "$processPHPModuleArgument_arg" - if ! extractPackageVersionFromXML "$processPHPModuleArgument_arg/package2.xml"; then - return 1 - fi - elif test -f "$processPHPModuleArgument_arg/package.xml"; then - printf 'Checking package.xml of directory %s... ' "$processPHPModuleArgument_arg" - if ! extractPackageVersionFromXML "$processPHPModuleArgument_arg/package.xml"; then - return 1 - fi - else - printf 'Unable to find the package.xml file in the directory\n%s\n' "$processPHPModuleArgument_arg" - return 1 - fi - printf 'good (name: %s, version: %s)\n' "$EXTRACTPACKAGEVERSIONFROMXML_NAME" "$EXTRACTPACKAGEVERSIONFROMXML_VERSION" - PROCESSED_PHP_MODULE_ARGUMENT="$(normalizePHPModuleName "$EXTRACTPACKAGEVERSIONFROMXML_NAME")" - processPHPModuleArgument_version="$EXTRACTPACKAGEVERSIONFROMXML_VERSION" - if printf '%s' "$PROCESSED_PHP_MODULE_ARGUMENT" | grep -Eq '^[a-zA-Z0-9_]+$'; then - eval PHP_MODULESOURCECODEPATH_$PROCESSED_PHP_MODULE_ARGUMENT="$processPHPModuleArgument_arg" - else - printf 'Unable to parse the following module name:\n%s\n' "$PROCESSED_PHP_MODULE_ARGUMENT" >&2 - exit 1 - fi - else - PROCESSED_PHP_MODULE_ARGUMENT="${processPHPModuleArgument_arg%%-*}" - if test -n "$PROCESSED_PHP_MODULE_ARGUMENT" && test "$PROCESSED_PHP_MODULE_ARGUMENT" != "$processPHPModuleArgument_arg"; then - processPHPModuleArgument_version="${processPHPModuleArgument_arg#*-}" - else - processPHPModuleArgument_version='' - fi - PROCESSED_PHP_MODULE_ARGUMENT="$(normalizePHPModuleName "$PROCESSED_PHP_MODULE_ARGUMENT")" - fi - if test -n "$processPHPModuleArgument_version"; then - if printf '%s' "$PROCESSED_PHP_MODULE_ARGUMENT" | grep -Eq '^[a-zA-Z0-9_]+$'; then - eval PHP_WANTEDMODULEVERSION_$PROCESSED_PHP_MODULE_ARGUMENT="$processPHPModuleArgument_version" - elif printf '%s' "$PROCESSED_PHP_MODULE_ARGUMENT" | grep -Eq '^@[a-zA-Z0-9_]+$'; then - eval PHP_WANTEDMODULEVERSION__${PROCESSED_PHP_MODULE_ARGUMENT#@}="$processPHPModuleArgument_version" - else - printf 'Unable to parse the following module name:\n%s\n' "$PROCESSED_PHP_MODULE_ARGUMENT" >&2 - fi - fi -} - -# Get the wanted PHP module version, as specified in the command line arguments. -# -# Arguments: -# $1: the name of the module to be normalized -# -# Output: -# The wanted version (if any) -getWantedPHPModuleVersion() { - if printf '%s' "$1" | grep -Eq '^[a-zA-Z0-9_]+$'; then - eval printf '%s' "\${PHP_WANTEDMODULEVERSION_$1:-}" - elif printf '%s' "$1" | grep -Eq '^@[a-zA-Z0-9_]+$'; then - eval printf '%s' "\${PHP_WANTEDMODULEVERSION__${1#@}:-}" - fi -} - -# Get source code path of a PHP module version, as specified in the command line arguments. -# -# Arguments: -# $1: the name of the module to be normalized -# -# Output: -# The wanted version (if any) -getModuleSourceCodePath() { - if printf '%s' "$1" | grep -Eq '^[a-zA-Z0-9_]+$'; then - eval printf '%s' "\${PHP_MODULESOURCECODEPATH_$1:-}" - fi -} - -# Get the actual PHP module version, resolving it if it starts with '^' -# -# Arguments: -# $1: the name of the module -# $2: the wanted version (optional, if omitted we'll use getWantedPHPModuleVersion) -# -# Output: -# The version to be used -resolvePHPModuleVersion() { - resolvePHPModuleVersion_module="$1" - if test $# -lt 2; then - resolvePHPModuleVersion_raw="$(getWantedPHPModuleVersion "$installRemoteModule_module")" - else - resolvePHPModuleVersion_raw="$2" - fi - resolvePHPModuleVersion_afterCaret="${resolvePHPModuleVersion_raw#^}" - if test "$resolvePHPModuleVersion_raw" = "$resolvePHPModuleVersion_afterCaret"; then - printf '%s' "$resolvePHPModuleVersion_raw" - return - fi - case "$resolvePHPModuleVersion_afterCaret" in - ?*@snapshot | ?*@devel | ?*@alpha | ?*@beta | ?*@stable) - resolvePHPModuleVersion_wantedStability="${resolvePHPModuleVersion_afterCaret##*@}" - resolvePHPModuleVersion_wantedVersion="${resolvePHPModuleVersion_afterCaret%@*}" - ;; - *) - resolvePHPModuleVersion_wantedStability='' - resolvePHPModuleVersion_wantedVersion="$resolvePHPModuleVersion_afterCaret" - ;; - esac - resolvePHPModuleVersion_peclModule="$(getPeclModuleName "$resolvePHPModuleVersion_module")" - resolvePHPModuleVersion_xml="$(curl -sSLf "http://pecl.php.net/rest/r/$resolvePHPModuleVersion_peclModule/allreleases.xml")" - # remove line endings, collapse spaces - resolvePHPModuleVersion_versions="$(printf '%s' "$resolvePHPModuleVersion_xml" | tr -s ' \t\r\n' ' ')" - # one line per release (eg 1.2.3stable) - resolvePHPModuleVersion_versions="$(printf '%s' "$resolvePHPModuleVersion_versions" | sed -r 's#$resolvePHPModuleVersion_wantedStability")" - fi - # remove everything's up to '' (included) - resolvePHPModuleVersion_versions="$(printf '%s' "$resolvePHPModuleVersion_versions" | sed 's#^.*##')" - # keep just the versions - resolvePHPModuleVersion_versions="$(printf '%s' "$resolvePHPModuleVersion_versions" | cut -d'<' -f1)" - resetIFS - for resolvePHPModuleVersion_version in $resolvePHPModuleVersion_versions; do - resolvePHPModuleVersion_suffix="${resolvePHPModuleVersion_version#$resolvePHPModuleVersion_wantedVersion}" - if test "$resolvePHPModuleVersion_version" != "${resolvePHPModuleVersion_version#$resolvePHPModuleVersion_wantedVersion.}"; then - # Example: looking for 1.0, found 1.0.1 - printf '%s' "$resolvePHPModuleVersion_version" - return - fi - done - for resolvePHPModuleVersion_version in $resolvePHPModuleVersion_versions; do - resolvePHPModuleVersion_suffix="${resolvePHPModuleVersion_version#$resolvePHPModuleVersion_wantedVersion}" - if test "$resolvePHPModuleVersion_version" = "$resolvePHPModuleVersion_suffix"; then - continue - fi - if test -z "$resolvePHPModuleVersion_suffix"; then - # Example: looking for 1.0, found exactly it - printf '%s' "$resolvePHPModuleVersion_version" - return - fi - case "$resolvePHPModuleVersion_suffix" in - [0-9]) - # Example: looking for 1.1, but this is 1.10 - ;; - *) - # Example: looking for 1.1, this is 1.1rc1 - printf '%s' "$resolvePHPModuleVersion_version" - return - ;; - esac - done - printf 'Unable to find a version of "%s" compatible with "%s"\nAvailable versions are:\n%s\n' "$resolvePHPModuleVersion_module" "$resolvePHPModuleVersion_raw" "$resolvePHPModuleVersion_versions" >&2 - exit 1 -} - -# Get the actual version of a PECL pmodule, resolving 'latest', 'stable', 'beta', 'alpha', 'devel'. -# -# Arguments: -# $1: the module name as known on the PECL archive -# $2: the version to be resolved -# Output: -# $2 itself if $1 is not 'latest', 'stable', 'beta', 'alpha', or 'devel', the actual version otherwise -resolvePeclStabilityVersion() { - case "$2" in - latest | stable | beta | alpha | devel) ;; - *) - printf '%s' "$2" - return - ;; - esac - resolvePeclStabilityVersion_peclModule="$(getPeclModuleName "$1")" - peclStabilityFlagToVersion_url="http://pecl.php.net/rest/r/$resolvePeclStabilityVersion_peclModule/$2.txt" - if ! peclStabilityFlagToVersion_result="$(curl -sSLf "$peclStabilityFlagToVersion_url")"; then - peclStabilityFlagToVersion_result='' - fi - if test -z "$peclStabilityFlagToVersion_result"; then - printf 'Failed to resolve the PECL package version "%s" of %s from %s\n' "$2" "$1" "$peclStabilityFlagToVersion_url" >&2 - exit 1 - fi - printf '%s' "$peclStabilityFlagToVersion_result" -} - -# Set these variables: -# - PHP_PREINSTALLED_MODULES the normalized list of PHP modules installed before running this script -setPHPPreinstalledModules() { - PHP_PREINSTALLED_MODULES='' - IFS=' -' - for getPHPInstalledModules_module in $(php -m); do - getPHPInstalledModules_moduleNormalized='' - case "$getPHPInstalledModules_module" in - \[PHP\ Modules\]) ;; - \[Zend\ Modules\]) - break - ;; - *) - getPHPInstalledModules_moduleNormalized="$(normalizePHPModuleName "$getPHPInstalledModules_module")" - if ! stringInList "$getPHPInstalledModules_moduleNormalized" "$PHP_PREINSTALLED_MODULES"; then - PHP_PREINSTALLED_MODULES="$PHP_PREINSTALLED_MODULES $getPHPInstalledModules_moduleNormalized" - fi - ;; - esac - done - if command -v composer >/dev/null; then - PHP_PREINSTALLED_MODULES="$PHP_PREINSTALLED_MODULES @composer" - fi - resetIFS - PHP_PREINSTALLED_MODULES="${PHP_PREINSTALLED_MODULES# }" -} - -# Get the handles of the modules to be installed -# -# Arguments: -# $@: all module handles -# -# Set: -# PHP_MODULES_TO_INSTALL -# -# Output: -# Nothing -processCommandArguments() { - processCommandArguments_endArgs=0 - PHP_MODULES_TO_INSTALL='' - # Support deprecated flag IPE_FIX_CACERTS - case "${IPE_FIX_CACERTS:-}" in - 1 | y* | Y*) - PHP_MODULES_TO_INSTALL="$PHP_MODULES_TO_INSTALL @fix_letsencrypt" - ;; - esac - while :; do - if test $# -lt 1; then - break - fi - processCommandArguments_skip=0 - if test $processCommandArguments_endArgs -eq 0; then - case "$1" in - --cleanup) - printf '### WARNING the %s option is deprecated (we always cleanup everything) ###\n' "$1" >&2 - processCommandArguments_skip=1 - ;; - --) - processCommandArguments_skip=1 - processCommandArguments_endArgs=1 - ;; - -*) - printf 'Unrecognized option: %s\n' "$1" >&2 - exit 1 - ;; - esac - fi - if test $processCommandArguments_skip -eq 0; then - processPHPModuleArgument "$1" - processCommandArguments_name="$PROCESSED_PHP_MODULE_ARGUMENT" - if stringInList "$processCommandArguments_name" "$PHP_MODULES_TO_INSTALL"; then - printf '### WARNING Duplicated module name specified: %s ###\n' "$processCommandArguments_name" >&2 - elif stringInList "$processCommandArguments_name" "$PHP_PREINSTALLED_MODULES"; then - printf '### WARNING Module already installed: %s ###\n' "$processCommandArguments_name" >&2 - else - PHP_MODULES_TO_INSTALL="$PHP_MODULES_TO_INSTALL $processCommandArguments_name" - fi - fi - shift - done - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL# }" -} - -# Add a module that's required by another module -# -# Arguments: -# $1: module that requires another module -# $2: the required module -# -# Update: -# PHP_MODULES_TO_INSTALL -# -# Output: -# Nothing -checkRequiredModule() { - if ! stringInList "$1" "$PHP_MODULES_TO_INSTALL"; then - return - fi - if stringInList "$2" "$PHP_PREINSTALLED_MODULES"; then - return - fi - PHP_MODULES_TO_INSTALL="$(removeStringFromList "$1" "$PHP_MODULES_TO_INSTALL")" - if ! stringInList "$2" "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$PHP_MODULES_TO_INSTALL $2" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL# }" - fi - PHP_MODULES_TO_INSTALL="$PHP_MODULES_TO_INSTALL $1" -} - -# Sort the modules to be installed, in order to fix dependencies -# -# Update: -# PHP_MODULES_TO_INSTALL -# -# Output: -# Nothing -sortModulesToInstall() { - # apcu_bc requires apcu - checkRequiredModule 'apcu_bc' 'apcu' - # http requires propro (for PHP < 8) and raphf - if test $PHP_MAJMIN_VERSION -le 704; then - checkRequiredModule 'http' 'propro' - fi - checkRequiredModule 'http' 'raphf' - # event requires sockets (for PHP <= 5.6) - if test $PHP_MAJMIN_VERSION -le 506; then - checkRequiredModule event sockets - fi - # relay requires msgpack - checkRequiredModule relay msgpack - # relay requires igbinary - checkRequiredModule relay igbinary - # pq requires raphf - checkRequiredModule pq raphf - # phalcon up to v5.0.0beta3 requires psr - if test $PHP_MAJMINPAT_VERSION -lt 70401; then - checkRequiredModule phalcon psr - fi - # Some module installation may use sockets if available: move it before other modules - if stringInList 'sockets' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'sockets' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="sockets $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # Some module installation may use igbinary if available: move it before other modules - if stringInList 'igbinary' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'igbinary' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="igbinary $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # Some module installation may use msgpack if available: move it before other modules - if stringInList 'msgpack' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'msgpack' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="msgpack $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # Some module installation may use socket if available: move it before other modules - if stringInList 'socket' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'socket' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="socket $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # Some module installation may use apcu if available: move it before other modules - if stringInList 'apcu' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'apcu' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="apcu $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # Some module installation may use raphf if available: move it before other modules - if stringInList 'raphf' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'raphf' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="raphf $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # In any case, first of all, we need to install composer - if stringInList '@composer' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList '@composer' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="@composer $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi -} - -# Expand the IPE_ASPELL_LANGUAGES environment variable into apk/apt package names -expandASpellDictionaries() { - expandASpellDictionaries_languages="${IPE_ASPELL_LANGUAGES:-en}" - expandASpellDictionaries_result='' - resetIFS - for expandASpellDictionaries_language in $expandASpellDictionaries_languages; do - expandASpellDictionaries_result="$expandASpellDictionaries_result aspell-$expandASpellDictionaries_language" - done - printf '%s' "${expandASpellDictionaries_result# }" -} - -# Get the required APT/APK packages for a specific PHP version and for the list of module handles -# -# Arguments: -# $@: the PHP module handles -# -# Set: -# PACKAGES_PERSISTENT_NEW the list of packages required at runtume that must be installed -# PACKAGES_PERSISTENT_PRE the list of packages required at runtume that are already installed -# PACKAGES_VOLATILE the list of packages required at compile time that must be installed -# PACKAGES_PREVIOUS the list of packages (with their version) that are installed right now (calculated only on Debian and only if PACKAGES_PERSISTENT_NEW or PACKAGES_VOLATILE are not empty) -# COMPILE_LIBS -buildRequiredPackageLists() { - buildRequiredPackageLists_persistent='' - buildRequiredPackageLists_volatile='' - COMPILE_LIBS='' - case "$DISTRO" in - alpine) - apk update - ;; - debian) - invokeAptGetUpdate - ;; - esac - case "$DISTRO_VERSION" in - alpine@*) - if test $# -gt 1 || test "${1:-}" != '@composer'; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $PHPIZE_DEPS" - fi - if test -z "$(apk info 2>/dev/null | grep -E ^libssl)"; then - buildRequiredPackageLists_libssl="$(apk search | grep -E '^libssl[0-9]' | head -1 | cut -d- -f1)" - elif test -z "$(apk info 2>/dev/null | grep -E '^libressl.*-libtls')" && test -z "$(apk info 2>/dev/null | grep -E '^libressl.*-libssl')" && test -z "$(apk info 2>/dev/null | grep -E '^libretls-')"; then - buildRequiredPackageLists_libssl=$(apk search -q libressl*-libtls) - else - buildRequiredPackageLists_libssl='' - fi - if test $DISTRO_MAJMIN_VERSION -le 313; then - buildRequiredPackageLists_libssldev='libressl-dev' - else - buildRequiredPackageLists_libssldev='libretls-dev' - fi - buildRequiredPackageLists_icuPersistent='' - if test $DISTRO_MAJMIN_VERSION -ge 316; then - case "${IPE_ICU_EN_ONLY:-}" in - 1 | y* | Y*) ;; - *) - buildRequiredPackageLists_icuPersistent='icu-data-full' - ;; - esac - fi - ;; - debian@9) - buildRequiredPackageLists_libssldev='libssl1.0-dev' - ;; - debian@*) - buildRequiredPackageLists_libssldev='^libssl([0-9]+(\.[0-9]+)*)?-dev$' - ;; - esac - if test $USE_PICKLE -gt 1; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile git" - fi - while :; do - if test $# -lt 1; then - break - fi - case "$1@$DISTRO" in - @composer@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent unzip" - ;; - amqp@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent rabbitmq-c" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile rabbitmq-c-dev" - ;; - amqp@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^librabbitmq[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile librabbitmq-dev libssh-dev" - ;; - bz2@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libbz2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile bzip2-dev" - ;; - bz2@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libbz2-dev" - ;; - cassandra@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent cassandra-cpp-driver gmp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cassandra-cpp-driver-dev gmp-dev" - ;; - cmark@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake" - ;; - cmark@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake" - ;; - ddtrace@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libgcc" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile curl-dev" - ;; - ddtrace@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libcurl4-openssl-dev" - ;; - dba@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent db" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile db-dev" - ;; - dba@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile ^libdb5\.3-dev$" - if test $PHP_MAJMIN_VERSION -le 505; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile patch" - fi - ;; - decimal@debian) - if test $DISTRO_MAJMIN_VERSION -lt 1200; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libmpdec[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmpdec-dev" - fi - ;; - ecma_intl@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent icu-libs $buildRequiredPackageLists_icuPersistent" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev libidn-dev" - ;; - ecma_intl@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libicu[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libicu-dev" - ;; - enchant@alpine) - if test $DISTRO_MAJMIN_VERSION -ge 312; then - if test $PHP_MAJMIN_VERSION -ge 800; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent enchant2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile enchant2-dev" - else - # The system provides libenchant2, supported since PHP 8.0: we need to build libenchant1 on our own - if ! isLibenchant1Installed; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent glib aspell-libs libhunspell" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile glib-dev aspell-dev hunspell-dev" - COMPILE_LIBS="$COMPILE_LIBS libenchant1" - fi - fi - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent enchant" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile enchant-dev" - fi - ;; - enchant@debian) - if test $DISTRO_VERSION_NUMBER -ge 11; then - if test $PHP_MAJMIN_VERSION -ge 800; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libenchant-2-2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libenchant-2-dev" - else - if ! isLibenchant1Installed; then - # The system provides libenchant2, supported since PHP 8.0: we need to build libenchant1 on our own - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent aspell-en libhunspell-1.7-0" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libglib2.0-dev libaspell-dev libhunspell-dev" - COMPILE_LIBS="$COMPILE_LIBS libenchant1" - fi - fi - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libenchant1c2a" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libenchant-dev" - fi - ;; - event@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libevent $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libevent-dev $buildRequiredPackageLists_libssldev" - ;; - event@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libevent[0-9\.\-]*$ ^libevent-openssl[0-9\.\-]*$ ^libevent-extra[0-9\.\-]*$ ^libevent-pthreads[0-9\.\-]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libevent-dev $buildRequiredPackageLists_libssldev" - ;; - ffi@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libffi" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libffi-dev" - ;; - ffi@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libffi-dev" - ;; - ftp@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev" - ;; - ftp@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev" - ;; - gd@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent freetype libjpeg-turbo libpng libxpm" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetype-dev libjpeg-turbo-dev libpng-dev libxpm-dev" - if test $PHP_MAJMIN_VERSION -le 506; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libvpx" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libvpx-dev" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libwebp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libwebp-dev" - if test $PHP_MAJMIN_VERSION -ge 801; then - if test $DISTRO_MAJMIN_VERSION -ge 315; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libavif aom-libs libdav1d" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libavif-dev aom-dev dav1d-dev" - elif isLibaomInstalled && isLibdav1dInstalled && isLibyuvInstalled && isLibavifInstalled; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - else - case "${IPE_GD_WITHOUTAVIF:-}" in - 1 | y* | Y*) ;; - *) - if ! isLibaomInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libaom" - fi - if ! isLibdav1dInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libdav1d" - fi - if ! isLibyuvInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libyuv" - fi - if ! isLibavifInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libavif" - fi - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake nasm meson" - ;; - esac - fi - fi - fi - ;; - gd@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libfreetype6 libjpeg62-turbo ^libpng[0-9]+-[0-9]+$ libxpm4" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libfreetype6-dev libjpeg62-turbo-dev libpng-dev libxpm-dev" - if test $PHP_MAJMIN_VERSION -le 506; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libvpx[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libvpx-dev" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libwebp[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libwebp-dev" - if test $PHP_MAJMIN_VERSION -ge 801; then - if test $DISTRO_VERSION_NUMBER -ge 12; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libavif[0-9]+$ ^libaom[0-9]+$ ^libdav1d[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libavif-dev libaom-dev libdav1d-dev" - elif ! isLibaomInstalled || ! isLibdav1dInstalled || ! isLibyuvInstalled || ! isLibavifInstalled; then - case "${IPE_GD_WITHOUTAVIF:-}" in - 1 | y* | Y*) ;; - *) - if ! isLibaomInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libaom" - fi - if ! isLibdav1dInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libdav1d" - fi - if ! isLibyuvInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libyuv" - fi - if ! isLibavifInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libavif" - fi - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake nasm meson" - ;; - esac - fi - fi - fi - ;; - gearman@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++ libuuid" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile boost-dev gperf libmemcached-dev libevent-dev util-linux-dev" - ;; - gearman@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libgearman[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgearman-dev" - ;; - geoip@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent geoip" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile geoip-dev" - ;; - geoip@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libgeoip1[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgeoip-dev" - ;; - geos@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent geos-dev" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile geos" - ;; - geos@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libgeos-c1(v[0-9]*)?$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgeos-dev" - ;; - gettext@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libintl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile gettext-dev" - ;; - gmagick@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent graphicsmagick libgomp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile graphicsmagick-dev libtool" - ;; - gmagick@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libgraphicsmagick(-q16-)?[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgraphicsmagick1-dev" - ;; - gmp@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gmp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile gmp-dev" - ;; - gmp@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgmp-dev" - ;; - gnupg@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gpgme" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile gpgme-dev" - ;; - gnupg@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libgpgme[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile ^libgpgme[0-9]*-dev$" - ;; - grpc@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev linux-headers" - ;; - grpc@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev" - ;; - http@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libevent" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev curl-dev libevent-dev" - if test $PHP_MAJMIN_VERSION -le 506; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libidn" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libidn-dev" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent icu-libs $buildRequiredPackageLists_icuPersistent libidn" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev libidn-dev" - fi - ;; - http@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libcurl3-gnutls ^libevent[0-9\.\-]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev libgnutls28-dev libcurl4-gnutls-dev libevent-dev" - if test $PHP_MAJMIN_VERSION -le 506; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile ^libidn1[0-9+]-dev$" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libicu[0-9]+$ ^libidn2-[0-9+]$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libicu-dev ^libidn2-[0-9+]-dev$ ^libgcrypt[0-9]+-dev$" - fi - ;; - imagick@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent imagemagick libgomp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile imagemagick-dev" - if [ $DISTRO_MAJMIN_VERSION -ge 319 ]; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ghostscript libheif libjxl libraw librsvg" - fi - ;; - imagick@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libmagickwand-6.q16-[0-9]+$ ^libmagickcore-6.q16-[0-9]+-extra$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmagickwand-dev" - ;; - imap@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent c-client $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile krb5-dev imap-dev $buildRequiredPackageLists_libssldev" - ;; - imap@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libc-client2007e" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libkrb5-dev" - case "$DISTRO_VERSION" in - debian@9) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev comerr-dev krb5-multidev libc-client2007e libgssrpc4 libkadm5clnt-mit11 libkadm5srv-mit11 libkdb5-8 libpam0g-dev libssl-doc mlock" - ;; - *) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libc-client-dev" - ;; - esac - ;; - interbase@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev ncurses-dev" - if ! isFirebirdInstalled; then - COMPILE_LIBS="$COMPILE_LIBS firebird" - fi - ;; - interbase@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libfbclient2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile firebird-dev libib-util" - ;; - intl@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent icu-libs $buildRequiredPackageLists_icuPersistent" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev" - ;; - intl@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libicu[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libicu-dev" - ;; - ion@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake git" - ;; - ion@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake git" - ;; - ldap@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libldap" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile openldap-dev" - ;; - ldap@debian) - if test $DISTRO_VERSION_NUMBER -ge 9; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libldap-common" - fi - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libldap2-dev" - ;; - luasandbox@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lua5.1-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile lua5.1-dev" - ;; - luasandbox@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblua5.1-0" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liblua5.1-0-dev" - ;; - lz4@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lz4-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile lz4-dev" - ;; - lz4@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblz4-1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liblz4-dev" - ;; - maxminddb@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmaxminddb" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmaxminddb-dev" - ;; - maxminddb@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libmaxminddb[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmaxminddb-dev" - ;; - memprof@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent judy" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile judy-dev bsd-compat-headers" - ;; - memprof@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libjudydebian1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libjudy-dev" - ;; - mcrypt@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmcrypt" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmcrypt-dev" - ;; - mcrypt@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmcrypt4" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmcrypt-dev" - ;; - memcache@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev" - ;; - memcache@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev" - ;; - memcached@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmemcached-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmemcached-dev zlib-dev" - ;; - memcached@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmemcachedutil2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmemcached-dev zlib1g-dev" - if test $DISTRO_MAJMIN_VERSION -ge 12; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev" - fi - ;; - mongo@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsasl $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev cyrus-sasl-dev" - ;; - mongo@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev libsasl2-dev" - ;; - mongodb@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent icu-libs $buildRequiredPackageLists_icuPersistent libsasl $buildRequiredPackageLists_libssl snappy" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev cyrus-sasl-dev snappy-dev $buildRequiredPackageLists_libssldev zlib-dev" - if test $PHP_MAJMIN_VERSION -ge 704; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent zstd-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zstd-dev" - fi - ;; - mongodb@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libsnappy[0-9]+(v[0-9]+)?$ ^libicu[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libicu-dev libsasl2-dev libsnappy-dev $buildRequiredPackageLists_libssldev zlib1g-dev" - if test $PHP_MAJMIN_VERSION -ge 704; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libzstd[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libzstd-dev" - fi - ;; - mosquitto@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent mosquitto-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile mosquitto-dev" - ;; - mosquitto@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmosquitto1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmosquitto-dev" - ;; - mssql@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent freetds" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - mssql@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsybdb5" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - oauth@alpine) - if test $PHP_MAJMIN_VERSION -ge 700; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile pcre-dev" - fi - ;; - oauth@debian) - if test $PHP_MAJMIN_VERSION -ge 700; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libpcre3-dev" - fi - ;; - oci8@alpine | pdo_oci@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libaio libc6-compat libnsl" - if test $DISTRO_MAJMIN_VERSION -le 307; then - # The unzip tool of Alpine 3.7 can't extract symlinks from ZIP archives: let's use bsdtar instead - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libarchive-tools" - fi - ;; - oci8@debian | pdo_oci@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libaio[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unzip" - ;; - odbc@alpine | pdo_odbc@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent unixodbc" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unixodbc-dev" - ;; - odbc@debian | pdo_odbc@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libodbc1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unixodbc-dev" - ;; - openswoole@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent postgresql-libs libstdc++ $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile curl-dev postgresql-dev linux-headers $buildRequiredPackageLists_libssldev" - ;; - openswoole@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libcurl3-gnutls libpq5" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev libcurl4-gnutls-dev libpq-dev" - ;; - parle@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - ;; - pdo_dblib@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent freetds" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - pdo_dblib@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsybdb5" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - pdo_firebird@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev ncurses-dev" - if ! isFirebirdInstalled; then - COMPILE_LIBS="$COMPILE_LIBS firebird" - if test $PHP_MAJMIN_VERSION -ge 804; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev" - if ! isLibTommathInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libtommath" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake" - fi - if ! isLibTomcryptInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libtomcrypt" - fi - fi - fi - ;; - pdo_firebird@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libfbclient2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile firebird-dev libib-util" - ;; - pgsql@alpine | pdo_pgsql@alpine | pq@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent postgresql-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile postgresql-dev" - ;; - pgsql@debian | pdo_pgsql@debian | pq@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libpq5" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libpq-dev" - ;; - php_trie@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - ;; - phpy@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent python3" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile python3-dev" - ;; - phpy@debian) - if test $DISTRO_VERSION_NUMBER -ge 12; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libpython3.11" - elif test $DISTRO_VERSION_NUMBER -ge 11; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libpython3.9" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libpython3.7" - fi - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile python3-dev" - ;; - pkcs11@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent softhsm" - ;; - pkcs11@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsofthsm2" - ;; - pspell@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent aspell-libs $(expandASpellDictionaries)" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile aspell-dev" - ;; - pspell@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libaspell15 $(expandASpellDictionaries)" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libpspell-dev" - ;; - rdkafka@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent librdkafka" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile librdkafka-dev" - ;; - rdkafka@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^librdkafka\+*[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile librdkafka-dev" - ;; - recode@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent recode" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile recode-dev" - ;; - recode@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent librecode0" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile librecode-dev" - ;; - redis@alpine) - if test $PHP_MAJMIN_VERSION -ge 700; then - case "$DISTRO_VERSION" in - alpine@3.7) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent zstd" - ;; - *) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent zstd-libs" - ;; - esac - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zstd-dev" - if test $PHP_MAJMIN_VERSION -ge 702; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lz4-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile lz4-dev" - fi - fi - ;; - redis@debian) - if test $PHP_MAJMIN_VERSION -ge 700; then - case "$DISTRO_VERSION" in - debian@8) - ## There's no APT package for libzstd - ;; - debian@9) - ## libzstd is too old (available: 1.1.2, required: 1.3.0+) - ;; - *) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libzstd[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libzstd-dev" - ;; - esac - fi - if test $PHP_MAJMIN_VERSION -ge 702; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblz4-1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liblz4-dev" - fi - ;; - relay@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lz4-libs zstd-libs" - if test $DISTRO_MAJMIN_VERSION -ge 317; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent $buildRequiredPackageLists_libssl" - fi - ;; - saxon@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_volatile unzip" - ;; - seasclick@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - ;; - simdjson@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - ;; - smbclient@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsmbclient" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile samba-dev" - ;; - smbclient@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsmbclient" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsmbclient-dev" - ;; - snappy@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent snappy" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile snappy-dev" - ;; - snappy@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libsnappy1(v[0-9]+)?$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsnappy-dev" - ;; - snmp@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent net-snmp-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile net-snmp-dev" - ;; - snmp@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent snmp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsnmp-dev" - ;; - snuffleupagus@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent pcre" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile pcre-dev" - ;; - snuffleupagus@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libpcre3-dev" - ;; - soap@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - soap@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - sockets@alpine) - if test $PHP_MAJMIN_VERSION -ge 802; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile linux-headers" - fi - ;; - sodium@alpine | libsodium@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsodium" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsodium-dev" - ;; - sodium@debian | libsodium@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libsodium[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsodium-dev" - ;; - solr@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile curl-dev libxml2-dev" - ;; - solr@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libcurl3-gnutls" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libcurl4-gnutls-dev libxml2-dev" - ;; - sourceguardian@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent eudev-libs" - ;; - spx@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev" - ;; - spx@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev" - ;; - sqlsrv@alpine | pdo_sqlsrv@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++ unixodbc" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unixodbc-dev" - ;; - sqlsrv@debian | pdo_sqlsrv@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent unixodbc" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unixodbc-dev" - if ! isMicrosoftSqlServerODBCInstalled; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile gnupg apt-transport-https" - fi - ;; - ssh2@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libssh2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libssh2-dev" - ;; - ssh2@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libssh2-1-dev" - ;; - stomp@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev" - ;; - stomp@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev" - ;; - swoole@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent postgresql-libs libstdc++ $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile curl-dev postgresql-dev linux-headers $buildRequiredPackageLists_libssldev" - if test $PHP_MAJMIN_VERSION -ge 702; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent c-ares" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile c-ares-dev" - if test $PHP_MAJMIN_VERSION -ge 801; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent zstd-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile sqlite-dev zstd-dev" - fi - fi - case "${IPE_SWOOLE_WITHOUT_IOURING:-}" in - 1 | y* | Y*) ;; - *) - # iouring support in swoole 6 requires liburing 2.5+: available since Alpine 3.19 - # but with Alpine 3.19 we have a "invalid use of incomplete type 'const struct statx'" error - if test $DISTRO_MAJMIN_VERSION -ge 320; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liburing" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liburing-dev" - fi - ;; - esac - ;; - swoole@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libcurl3-gnutls libpq5" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev libcurl4-gnutls-dev libpq-dev" - if test $PHP_MAJMIN_VERSION -ge 702; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libc-ares2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libc-ares-dev" - if test $PHP_MAJMIN_VERSION -ge 800; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libbrotli1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev libbrotli-dev" - if test $PHP_MAJMIN_VERSION -ge 801; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsqlite3-dev" - if test $DISTRO_VERSION_NUMBER -ge 11; then - # swoole 6 requires libzstd >= 1.4.0, but on debian 10 (buster) we have 1.3.8 - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libzstd[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libzstd-dev" - fi - fi - fi - fi - if test $DISTRO_VERSION_NUMBER -ge 13; then - # iouring support in swoole 6 requires liburing 2.5+: available since Debian Trixie (13) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liburing2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liburing-dev" - fi - ;; - sybase_ct@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent freetds" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - sybase_ct@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libct4" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - tdlib@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++ $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile git cmake gperf zlib-dev $buildRequiredPackageLists_libssldev linux-headers readline-dev" - ;; - tdlib@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile git cmake gperf zlib1g-dev $buildRequiredPackageLists_libssldev" - ;; - tensor@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent openblas" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile lapack-dev openblas-dev" - if test $DISTRO_MAJMIN_VERSION -le 317; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lapack" - if test $DISTRO_MAJMIN_VERSION -le 316; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libexecinfo" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libexecinfo-dev" - if test $DISTRO_MAJMIN_VERSION -le 310; then - if ! stringInList --force-overwrite "$IPE_APK_FLAGS"; then - IPE_APK_FLAGS="$IPE_APK_FLAGS --force-overwrite" - fi - fi - fi - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblapack" - fi - ;; - tensor@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblapacke" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liblapack-dev libopenblas-dev liblapacke-dev" - if test $DISTRO_VERSION_NUMBER -le 9; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-6 libopenblas-base" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-6-dev" - elif test $DISTRO_VERSION_NUMBER -le 10; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-8 libopenblas-base" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-8-dev" - elif test $DISTRO_VERSION_NUMBER -le 11; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-10 libopenblas-base" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-10-dev" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-12 libopenblas0" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-12-dev" - fi - ;; - tidy@alpine) - if test $DISTRO_MAJMIN_VERSION -ge 315; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent tidyhtml" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent tidyhtml-libs" - fi - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile tidyhtml-dev" - ;; - tidy@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libtidy-?[0-9][0-9.\-]*(deb[0-9])?$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libtidy-dev" - ;; - uuid@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libuuid" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile util-linux-dev" - ;; - uuid@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile uuid-dev" - ;; - uv@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libuv" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libuv-dev" - ;; - uv@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libuv1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libuv1-dev" - ;; - vips@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent vips" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile vips-dev" - ;; - vips@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libvips" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libvips-dev" - ;; - wddx@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - wddx@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - wikidiff2@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile git" - ;; - wikidiff2@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libthai0" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile git libthai-dev" - ;; - xdebug@alpine) - if test $PHP_MAJMIN_VERSION -ge 800; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile linux-headers" - fi - ;; - xlswriter@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev" - ;; - xlswriter@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev" - ;; - xmldiff@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - xmldiff@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - xmlrpc@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - xmlrpc@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - xpass@alpine) - if ! isLibXCryptInstalled; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile linux-headers" - COMPILE_LIBS="$COMPILE_LIBS libxcrypt" - fi - ;; - xsl@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libxslt" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxslt-dev libgcrypt-dev" - ;; - xsl@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libxslt1\.1$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxslt-dev" - ;; - yaml@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent yaml" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile yaml-dev" - ;; - yaml@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libyaml-0-2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libyaml-dev" - ;; - yar@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile curl-dev" - ;; - yar@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libcurl3-gnutls" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libcurl4-gnutls-dev" - ;; - zip@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libzip" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake gnutls-dev libzip-dev $buildRequiredPackageLists_libssldev zlib-dev" - ;; - zip@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libzip[0-9]$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake gnutls-dev $buildRequiredPackageLists_libssldev libzip-dev libbz2-dev zlib1g-dev" - case "$DISTRO_VERSION" in - debian@8) - # Debian Jessie doesn't seem to provide libmbedtls - ;; - *) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libmbedtls[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmbedtls-dev" - ;; - esac - ;; - zmq@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent zeromq-dev" - ;; - zmq@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libzmq3-dev" - ;; - zookeeper@alpine) - if ! test -f /usr/local/include/zookeeper/zookeeper.h; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile maven automake libtool openjdk8" - fi - ;; - zookeeper@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libzookeeper-mt2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libzookeeper-mt-dev" - ;; - esac - shift - done - PACKAGES_PERSISTENT_NEW='' - PACKAGES_PERSISTENT_PRE='' - PACKAGES_VOLATILE='' - PACKAGES_PREVIOUS='' - if test -z "$buildRequiredPackageLists_persistent$buildRequiredPackageLists_volatile"; then - return - fi - if test -n "$buildRequiredPackageLists_persistent"; then - PACKAGES_PERSISTENT_NEW="$(expandPackagesToBeInstalled $buildRequiredPackageLists_persistent)" - if test -s "$IPE_ERRFLAG_FILE"; then - exit 1 - fi - resetIFS - for buildRequiredPackageLists_package in $buildRequiredPackageLists_persistent; do - buildRequiredPackageLists_package="$(expandInstalledSystemPackageName "$buildRequiredPackageLists_package")" - if test -n "$buildRequiredPackageLists_package"; then - PACKAGES_PERSISTENT_PRE="$PACKAGES_PERSISTENT_PRE $buildRequiredPackageLists_package" - fi - done - PACKAGES_PERSISTENT_PRE="${PACKAGES_PERSISTENT_PRE# }" - fi - if test -n "$buildRequiredPackageLists_volatile"; then - buildRequiredPackageLists_packages="$(expandPackagesToBeInstalled $buildRequiredPackageLists_volatile)" - if test -s "$IPE_ERRFLAG_FILE"; then - exit 1 - fi - resetIFS - for buildRequiredPackageLists_package in $buildRequiredPackageLists_packages; do - if ! stringInList "$buildRequiredPackageLists_package" "$PACKAGES_PERSISTENT_NEW"; then - if test "$buildRequiredPackageLists_package" != icu-data-en || ! stringInList icu-data-full "$PACKAGES_PERSISTENT_NEW"; then - PACKAGES_VOLATILE="$PACKAGES_VOLATILE $buildRequiredPackageLists_package" - fi - fi - done - PACKAGES_VOLATILE="${PACKAGES_VOLATILE# }" - fi - if test -n "$PACKAGES_PERSISTENT_NEW$PACKAGES_VOLATILE"; then - case "$DISTRO" in - debian) - PACKAGES_PREVIOUS="$(dpkg --get-selections | grep -E '\sinstall$' | awk '{ print $1 }')" - ;; - esac - fi -} - -# Get the full list of APT/APK packages that will be installed, given the required packages -# -# Arguments: -# $1: the list of required APT/APK packages -# -# Output: -# Space-separated list of every APT/APK packages that will be installed -expandPackagesToBeInstalled() { - expandPackagesToBeInstalled_result='' - case "$DISTRO" in - alpine) - expandPackagesToBeInstalled_log="$(apk add --simulate $@ 2>&1 || printf '\nERROR: apk failed\n')" - if test -n "$(printf '%s' "$expandPackagesToBeInstalled_log" | grep -E '^ERROR:')"; then - printf 'FAILED TO LIST THE WHOLE PACKAGE LIST FOR\n' >&2 - printf '%s ' "$@" >&2 - printf '\n\nCOMMAND OUTPUT:\n%s\n' "$expandPackagesToBeInstalled_log" >&2 - echo 'y' >"$IPE_ERRFLAG_FILE" - exit 1 - fi - IFS=' -' - for expandPackagesToBeInstalled_line in $expandPackagesToBeInstalled_log; do - if test -n "$(printf '%s' "$expandPackagesToBeInstalled_line" | grep -E '^\([0-9]*/[0-9]*) Installing ')"; then - expandPackagesToBeInstalled_result="$expandPackagesToBeInstalled_result $(printf '%s' "$expandPackagesToBeInstalled_line" | cut -d ' ' -f 3)" - fi - done - resetIFS - ;; - debian) - expandPackagesToBeInstalled_log="$(apt-get install -sy --no-install-recommends $@ 2>&1 || printf '\nE: apt-get failed\n')" - if test -n "$(printf '%s' "$expandPackagesToBeInstalled_log" | grep -E '^E:')"; then - printf 'FAILED TO LIST THE WHOLE PACKAGE LIST FOR\n' >&2 - printf '%s ' "$@" >&2 - printf '\n\nCOMMAND OUTPUT:\n%s\n' "$expandPackagesToBeInstalled_log" >&2 - echo 'y' >"$IPE_ERRFLAG_FILE" - exit 1 - fi - expandPackagesToBeInstalled_inNewPackages=0 - IFS=' -' - for expandPackagesToBeInstalled_line in $expandPackagesToBeInstalled_log; do - if test $expandPackagesToBeInstalled_inNewPackages -eq 0; then - if test "$expandPackagesToBeInstalled_line" = 'The following NEW packages will be installed:'; then - expandPackagesToBeInstalled_inNewPackages=1 - fi - elif test "$expandPackagesToBeInstalled_line" = "${expandPackagesToBeInstalled_line# }"; then - break - else - resetIFS - for expandPackagesToBeInstalled_newPackage in $expandPackagesToBeInstalled_line; do - expandPackagesToBeInstalled_result="$expandPackagesToBeInstalled_result $expandPackagesToBeInstalled_newPackage" - done - IFS=' -' - fi - done - resetIFS - ;; - esac - printf '%s' "${expandPackagesToBeInstalled_result# }" -} - -# Check if a system package is installed; if so we prints its name. -# -# Arguments: -# $1: the name of the package to be checked (regular expressions accepted: they must start with a ^) -expandInstalledSystemPackageName() { - if test "$1" = "${1#^}"; then - expandInstalledSystemPackageName_grepflags='-Fx' - else - expandInstalledSystemPackageName_grepflags='-E' - fi - case "$DISTRO" in - alpine) - apk info | grep $expandInstalledSystemPackageName_grepflags -- "$1" || test $? -eq 1 - ;; - debian) - dpkg --get-selections | grep -E '\sinstall$' | awk '{ print $1 }' | cut -d: -f1 | grep $expandInstalledSystemPackageName_grepflags -- "$1" || test $? -eq 1 - ;; - esac -} - -# Retrieve the number of available cores (alternative to nproc if not available) -# -# Output: -# The number of processor cores available -getProcessorCount() { - if test -n "${IPE_PROCESSOR_COUNT:-}"; then - echo $IPE_PROCESSOR_COUNT - return - fi - if command -v nproc >/dev/null 2>&1; then - nproc - else - getProcessorCount_tmp=$(cat /proc/cpuinfo | grep -E '^processor\s*:\s*\d+$' | wc -l) - if test $getProcessorCount_tmp -ge 1; then - echo $getProcessorCount_tmp - else - echo 1 - fi - fi -} - -# Set these variables: -# - TARGET_TRIPLET the build target tripled (eg 'x86_64-linux-gnu', 'x86_64-alpine-linux-musl') -setTargetTriplet() { - TARGET_TRIPLET="$(gcc -print-multiarch 2>/dev/null || true)" - if test -z "$TARGET_TRIPLET"; then - TARGET_TRIPLET="$(gcc -dumpmachine)" - fi -} - -# Retrieve the number of processors to be used when compiling an extension -# -# Arguments: -# $1: the handle of the PHP extension to be compiled -# Output: -# The number of processors to be used -getCompilationProcessorCount() { - case "$1" in - '') - # The above extensions don't support parallel compilation - echo 1 - ;; - *) - # All the other extensions support parallel compilation - getProcessorCount - ;; - esac -} - -# Get the full path of a PHP extension given its name. -# -# Arguments: -# $1: the name of the PHP extension -# -# Output: -# The absolute path of the PHP extension file (or nothing if the file can't be found) -getModuleFullPath() { - case "$1" in - apcu_bc) - getModuleFullPath_path="$PHP_EXTDIR/apc.so" - ;; - seasclick) - getModuleFullPath_path="$PHP_EXTDIR/SeasClick.so" - ;; - *) - getModuleFullPath_path="$PHP_EXTDIR/$1.so" - ;; - esac - if ! test -f "$getModuleFullPath_path"; then - printf 'Unable to find the file of the PHP extension "%s"\n' "$1" >&2 - exit 1 - fi - printf '%s' "$getModuleFullPath_path" -} - -# Post-process a PHP module just compiled and installed in the PHP extension directory -# -# Arguments: -# $1: the name of the PHP extension -# -# Return: -# 0 (true): if suceeded -# non-zero (false): in case of errors -postProcessModule() { - postProcessModule_file="$(getModuleFullPath "$1")" - if test $PHP_DEBUGBUILD -ne 1; then - printf 'Removing symbols from %s... ' "$postProcessModule_file" - postProcessModule_preSize="$(stat -c %s "$postProcessModule_file")" - strip --strip-all "$postProcessModule_file" - postProcessModule_postSize="$(stat -c %s "$postProcessModule_file")" - printf 'done (%s bytes saved).\n' "$((postProcessModule_preSize - postProcessModule_postSize))" - fi - return $? -} - -# Get the type of the php.ini entry to be used for a PHP extension -# -# Arguments: -# $1: the name of the PHP extension -# -# Output: -# zend_extension or extension -getModuleIniEntryType() { - case "$1" in - ioncube_loader | sourceguardian) - # On PHP 5.5, docker-php-ext-enable fails to detect that ionCube Loader and sourceguardian are Zend extensions - if test $PHP_MAJMIN_VERSION -le 505; then - printf 'zend_extension' - return 0 - fi - ;; - esac - getModuleIniEntryType_file="$(getModuleFullPath "$1")" - if readelf --wide --syms "$getModuleIniEntryType_file" | grep -Eq ' zend_extension_entry$'; then - printf 'zend_extension' - else - printf 'extension' - fi -} - -# Create the contents of a PHP ini file that enables an extension -# -# Arguments: -# $1: the name of the PHP extension -# $2: additional php.ini configuration (optional) -# -# Output: -# The contents of the ini file -buildPhpExtensionIniContent() { - buildPhpExtensionIniContent_type="$(getModuleIniEntryType "$1")" - buildPhpExtensionIniContent_soFile="$(getModuleFullPath "$1")" - buildPhpExtensionIniContent_result="$(printf '%s=%s' "$buildPhpExtensionIniContent_type" "${buildPhpExtensionIniContent_soFile##$PHP_EXTDIR/}")" - if test -n "${2:-}"; then - buildPhpExtensionIniContent_result="$(printf '%s\n%s' "$buildPhpExtensionIniContent_result" "$2")" - fi - printf '%s' "$buildPhpExtensionIniContent_result" -} - -# Check that a PHP module actually works (better to run this check before enabling the extension) -# -# Arguments: -# $1: the name of the PHP extension -# $2: base name (without path and extension) of additional php.ini configuration (optional) -# $3: additional php.ini configuration (optional) -# -# Return: -# 0 (true): if the string is in the list -# 1 (false): if the string is not in the list -checkModuleWorking() { - if test -n "${2:-}"; then - checkModuleWorking_iniFile="$PHP_INI_DIR/conf.d/$2--temp.ini" - else - checkModuleWorking_iniFile="$PHP_INI_DIR/conf.d/docker-php-ext-$1--temp.ini" - fi - checkModuleWorking_iniContent="$(buildPhpExtensionIniContent "$1" "${3:-}")" - printf 'Check if the %s module can be loaded... ' "$1" - checkModuleWorking_errBefore="$(php -r 'return;' 2>&1 || true)" - printf '%s' "$checkModuleWorking_iniContent" >"$checkModuleWorking_iniFile" - checkModuleWorking_errAfter="$(php -r 'return;' 2>&1 || true)" - rm "$checkModuleWorking_iniFile" - if test "$checkModuleWorking_errAfter" != "$checkModuleWorking_errBefore"; then - printf 'Error loading the "%s" extension:\n%s\n' "$1" "$checkModuleWorking_errAfter" >&2 - return 1 - fi - printf 'ok.\n' - return 0 -} - -# Enable a PHP extension -# -# Arguments: -# $1: the name of the PHP extension to be enabled -# $2: base name (without path and extension) of additional php.ini configuration (optional) -# $3: additional php.ini configuration (optional) -enablePhpExtension() { - if test -n "${2:-}"; then - enablePhpExtension_iniFile="$PHP_INI_DIR/conf.d/$2.ini" - else - enablePhpExtension_iniFile="$PHP_INI_DIR/conf.d/docker-php-ext-$1.ini" - fi - enablePhpExtension_iniContent="$(buildPhpExtensionIniContent "$1" "${3:-}")" - case "${IPE_DONT_ENABLE:-}" in - 1 | y* | Y*) - enablePhpExtension_enableCommand="/usr/local/bin/docker-php-ext-enable-$1" - printf '%s' "$enablePhpExtension_iniContent" >"$enablePhpExtension_iniFile-disabled" - printf '\n' >>"$enablePhpExtension_iniFile-disabled" - cat <"$enablePhpExtension_enableCommand" -#!/bin/sh - -if test -f '$enablePhpExtension_iniFile-disabled'; then - echo 'Enabling extension $1' - mv '$enablePhpExtension_iniFile-disabled' '$enablePhpExtension_iniFile' -else - echo 'The extension $1 has already been enabled' -fi -EOT - chmod +x "$enablePhpExtension_enableCommand" - printf '## Extension %s not enabled.\nYou can enable it by running the following command:\n%s\n\n' "$1" "$(basename "$enablePhpExtension_enableCommand")" - ;; - *) - printf '%s' "$enablePhpExtension_iniContent" >"$enablePhpExtension_iniFile" - printf '\n' >>"$enablePhpExtension_iniFile" - ;; - esac -} - -# Mark the pre-installed APT/APK packages as used -# that way they won't be uninstalled by accident -markPreinstalledPackagesAsUsed() { - printf '### MARKING PRE-INSTALLED PACKAGES AS IN-USE ###\n' - case "$DISTRO" in - alpine) - printf '# Packages: %s\n' "$PACKAGES_PERSISTENT_PRE" - apk add $PACKAGES_PERSISTENT_PRE - ;; - debian) - apt-mark manual $PACKAGES_PERSISTENT_PRE - ;; - esac -} - -# Install the required APT/APK packages -# -# Arguments: -# $@: the list of APT/APK packages to be installed -installRequiredPackages() { - printf '### INSTALLING REQUIRED PACKAGES ###\n' - printf '# Packages to be kept after installation: %s\n' "$PACKAGES_PERSISTENT_NEW" - printf '# Packages to be used only for installation: %s\n' "$PACKAGES_VOLATILE" - case "$DISTRO" in - alpine) - apk add $IPE_APK_FLAGS $PACKAGES_PERSISTENT_NEW $PACKAGES_VOLATILE - # https://gitlab.alpinelinux.org/alpine/aports/-/issues/12763#note_172090 - # https://github.com/mlocati/docker-php-extension-installer/issues/385 - # https://github.com/mlocati/docker-php-extension-installer/issues/537#issuecomment-1078748882 - for installRequiredPackages_item in wget; do - if test -n "$(expandInstalledSystemPackageName "$installRequiredPackages_item")"; then - apk add --upgrade "$installRequiredPackages_item" - fi - done - ;; - debian) - apt-get install -qqy --no-install-recommends $PACKAGES_PERSISTENT_NEW $PACKAGES_VOLATILE - ;; - esac -} - -# Get the version of an installed APT/APK package -# -# Arguments: -# $1: the name of the installed package -# -# Output: -# The numeric part of the package version, with from 1 to 3 numbers -# -# Example: -# 1 -# 1.2 -# 1.2.3 -getInstalledPackageVersion() { - case "$DISTRO" in - alpine) - apk info "$1" | head -n1 | cut -c $((${#1} + 2))- | grep -o -E '^[0-9]+(\.[0-9]+){0,2}' - ;; - debian) - dpkg-query --showformat='${Version}' --show "$1" 2>/dev/null | grep -o -E '^[0-9]+(\.[0-9]+){0,2}' - ;; - esac -} - -# Compare two versions -# -# Arguments: -# $1: the first version -# $2: the second version -# -# Output -# -1 if $1 is less than $2 -# 0 if $1 is the same as $2 -# 1 if $1 is greater than $2 -compareVersions() { - compareVersions_v1="$1.0.0" - compareVersions_v2="$2.0.0" - compareVersions_vMin="$(printf '%s\n%s' "$compareVersions_v1" "$compareVersions_v2" | sort -t '.' -n -k1,1 -k2,2 -k3,3 | head -n 1)" - if test "$compareVersions_vMin" != "$compareVersions_v1"; then - echo '1' - elif test "$compareVersions_vMin" = "$compareVersions_v2"; then - echo '0' - else - echo '-1' - fi -} - -# Install Oracle Instant Client & SDK -# -# Set: -# ORACLE_INSTANTCLIENT_LIBPATH -installOracleInstantClient() { - case "${IPE_INSTANTCLIENT_BASIC:-}" in - 1 | y* | Y*) - installOracleInstantClient_handle=basic - ;; - *) - installOracleInstantClient_handle=basiclite - ;; - esac - case $PHP_BITS in - 32) - installOracleInstantClient_client=client - installOracleInstantClient_version='19.9' - installOracleInstantClient_ic=https://download.oracle.com/otn_software/linux/instantclient/199000/instantclient-$installOracleInstantClient_handle-linux-$installOracleInstantClient_version.0.0.0dbru.zip - installOracleInstantClient_sdk=https://download.oracle.com/otn_software/linux/instantclient/199000/instantclient-sdk-linux-$installOracleInstantClient_version.0.0.0dbru.zip - ;; - *) - case $(uname -m) in - aarch64*) - installOracleInstantClient_client=client64 - installOracleInstantClient_version='19.10' - installOracleInstantClient_ic=https://download.oracle.com/otn_software/linux/instantclient/191000/instantclient-$installOracleInstantClient_handle-linux.arm64-$installOracleInstantClient_version.0.0.0dbru.zip - installOracleInstantClient_sdk=https://download.oracle.com/otn_software/linux/instantclient/191000/instantclient-sdk-linux.arm64-$installOracleInstantClient_version.0.0.0dbru.zip - ;; - *) - installOracleInstantClient_client=client64 - installOracleInstantClient_version='21.1' - installOracleInstantClient_ic=https://download.oracle.com/otn_software/linux/instantclient/211000/instantclient-$installOracleInstantClient_handle-linux.x64-$installOracleInstantClient_version.0.0.0.zip - installOracleInstantClient_sdk=https://download.oracle.com/otn_software/linux/instantclient/211000/instantclient-sdk-linux.x64-$installOracleInstantClient_version.0.0.0.zip - ;; - esac - ;; - esac - ORACLE_INSTANTCLIENT_LIBPATH=/usr/lib/oracle/$installOracleInstantClient_version/$installOracleInstantClient_client/lib - if ! test -e "$ORACLE_INSTANTCLIENT_LIBPATH"; then - printf 'Downloading Oracle Instant Client v%s (%s)... ' "$installOracleInstantClient_version" "$installOracleInstantClient_handle" - installOracleInstantClient_src="$(getPackageSource $installOracleInstantClient_ic)" - mkdir -p "/usr/lib/oracle/$installOracleInstantClient_version/$installOracleInstantClient_client" - mv "$installOracleInstantClient_src" "$ORACLE_INSTANTCLIENT_LIBPATH" - echo 'done.' - fi - if ! test -e "$ORACLE_INSTANTCLIENT_LIBPATH/sdk" && ! test -L "$ORACLE_INSTANTCLIENT_LIBPATH/sdk"; then - printf 'Downloading Oracle Instant SDK v%s... ' "$installOracleInstantClient_version" - installOracleInstantClient_src="$(getPackageSource $installOracleInstantClient_sdk)" - ln -sf "$installOracleInstantClient_src/sdk" "$ORACLE_INSTANTCLIENT_LIBPATH/sdk" - UNNEEDED_PACKAGE_LINKS="$UNNEEDED_PACKAGE_LINKS $ORACLE_INSTANTCLIENT_LIBPATH/sdk" - echo 'done.' - fi - case "$DISTRO" in - alpine) - if ! test -e /usr/lib/libresolv.so.2 && test -e /lib/libc.so.6; then - ln -s /lib/libc.so.6 /usr/lib/libresolv.so.2 - fi - installOracleInstantClient_ldconf=/etc/ld-musl-${TARGET_TRIPLET%-alpine-linux-musl}.path - if test -e "$installOracleInstantClient_ldconf"; then - if ! cat "$installOracleInstantClient_ldconf" | grep -q "$ORACLE_INSTANTCLIENT_LIBPATH"; then - cat "$ORACLE_INSTANTCLIENT_LIBPATH" | awk -v suffix=":$ORACLE_INSTANTCLIENT_LIBPATH" '{print NR==1 ? $0suffix : $0}' >"$ORACLE_INSTANTCLIENT_LIBPATH" - fi - else - case $PHP_BITS in - 32) - echo "/lib:/usr/local/lib:/usr/lib:$ORACLE_INSTANTCLIENT_LIBPATH" >"$installOracleInstantClient_ldconf" - ;; - *) - echo "/lib64:/lib:/usr/local/lib:/usr/lib:$ORACLE_INSTANTCLIENT_LIBPATH" >"$installOracleInstantClient_ldconf" - ;; - esac - fi - ;; - debian) - if ! test -e /etc/ld.so.conf.d/oracle-instantclient.conf; then - echo "$ORACLE_INSTANTCLIENT_LIBPATH" >/etc/ld.so.conf.d/oracle-instantclient.conf - ldconfig - fi - ;; - esac -} - -# Check if the Microsoft SQL Server ODBC Driver is installed -# -# Return: -# 0 (true): if the string is in the list -# 1 (false): if the string is not in the list -isMicrosoftSqlServerODBCInstalled() { - test -d /opt/microsoft/msodbcsql*/ -} - -# Install the Microsoft SQL Server ODBC Driver -# see https://learn.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server -installMicrosoftSqlServerODBC() { - printf 'Installing the Microsoft SQL Server ODBC Driver\n' - case "$DISTRO" in - alpine) - rm -rf /tmp/src/msodbcsql.apk - if test $PHP_MAJMIN_VERSION -le 703; then - curl -sSLf -o /tmp/src/msodbcsql.apk https://download.microsoft.com/download/e/4/e/e4e67866-dffd-428c-aac7-8d28ddafb39b/msodbcsql17_17.10.6.1-1_amd64.apk - else - case $(uname -m) in - aarch64 | arm64 | armv8) - installMicrosoftSqlServerODBC_arch=arm64 - ;; - *) - installMicrosoftSqlServerODBC_arch=amd64 - ;; - esac - curl -sSLf -o /tmp/src/msodbcsql.apk https://download.microsoft.com/download/3/5/5/355d7943-a338-41a7-858d-53b259ea33f5/msodbcsql18_18.3.3.1-1_$installMicrosoftSqlServerODBC_arch.apk - fi - printf '\n' | apk add --allow-untrusted /tmp/src/msodbcsql.apk - rm -rf /tmp/src/msodbcsql.apk - ;; - debian) - printf -- '- installing the Microsoft APT key\n' - if test $DISTRO_VERSION_NUMBER -eq 11; then - curl -sSLf -o /etc/apt/trusted.gpg.d/microsoft.asc https://packages.microsoft.com/keys/microsoft.asc - elif test $DISTRO_VERSION_NUMBER -ge 12; then - curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor --yes --output /usr/share/keyrings/microsoft-prod.gpg - else - # apt-key is deprecated - curl -sSLf https://packages.microsoft.com/keys/microsoft.asc | apt-key add - - fi - if ! test -f /etc/apt/sources.list.d/mssql-release.list; then - printf -- '- adding the Microsoft APT source list\n' - curl -sSLf https://packages.microsoft.com/config/debian/$DISTRO_VERSION_NUMBER/prod.list >/etc/apt/sources.list.d/mssql-release.list - invokeAptGetUpdate - fi - printf -- '- installing the APT package\n' - if test $PHP_MAJMIN_VERSION -le 703; then - ACCEPT_EULA=Y apt-get install -qqy --no-install-recommends msodbcsql17 - elif test $DISTRO_VERSION_NUMBER -ge 9 && test $DISTRO_VERSION_NUMBER -le 12; then - # On Debian 9 to 12 we have both msodbcsql17 and msodbcsql18: let's install just one - ACCEPT_EULA=Y apt-get install -qqy --no-install-recommends msodbcsql18 - else - ACCEPT_EULA=Y apt-get install -qqy --no-install-recommends '^msodbcsql[0-9]+$' - fi - ;; - esac -} - -# Check if libaom is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibaomInstalled() { - if ! test -f /usr/local/lib/libaom.so && ! test -f /usr/lib/libaom.so && ! test -f /usr/lib/x86_64*/libaom.so; then - return 1 - fi - if ! test -f /usr/local/include/aom/aom_codec.h && ! test -f /usr/include/aom/aom_codec.h; then - return 1 - fi - return 0 -} - -# Install libaom -installLibaom() { - printf 'Installing libaom\n' - installLibaom_version=3.10.0 - installLibaom_dir="$(getPackageSource https://aomedia.googlesource.com/aom/+archive/v$installLibaom_version.tar.gz)" - mkdir -- "$installLibaom_dir/my.build" - cd -- "$installLibaom_dir/my.build" - cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=1 -DENABLE_DOCS=0 -DENABLE_EXAMPLES=0 -DENABLE_TESTDATA=0 -DENABLE_TESTS=0 -DENABLE_TOOLS=0 -DCMAKE_INSTALL_LIBDIR:PATH=lib .. - ninja -j $(getProcessorCount) install - cd - >/dev/null - ldconfig || true -} - -# Check if libdav1d is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibdav1dInstalled() { - if ! test -f /usr/local/lib/libdav1d.so && ! test -f /usr/lib/libdav1d.so && ! test -f /usr/lib/x86_64*/libdav1d.so; then - return 1 - fi - if ! test -f /usr/local/include/dav1d/dav1d.h && ! test -f /usr/include/dav1d/dav1d.h; then - return 1 - fi - return 0 -} - -# Install libdav1d -installLibdav1d() { - printf 'Installing libdav1d\n' - installLibdav1d_dir="$(getPackageSource https://github.com/videolan/dav1d/archive/refs/tags/1.3.0.tar.gz)" - mkdir -- "$installLibdav1d_dir/build" - cd -- "$installLibdav1d_dir/build" - meson --buildtype release -Dprefix=/usr .. - ninja -j $(getProcessorCount) install - cd - >/dev/null - if test -f /usr/lib/$TARGET_TRIPLET/libdav1d.so && ! test -f /usr/lib/libdav1d.so; then - ln -s /usr/lib/$TARGET_TRIPLET/libdav1d.so /usr/lib/ - fi - ldconfig || true -} - -# Check if libyuv is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibyuvInstalled() { - if ! test -f /usr/local/lib/libyuv.so && ! test -f /usr/lib/libyuv.so && ! test -f /usr/lib/x86_64*/libyuv.so && ! test -f /usr/lib/x86_64*/libyuv.so.*; then - return 1 - fi - if ! test -f /usr/local/include/libyuv.h && ! test -f /usr/include/libyuv.h; then - return 1 - fi - return 0 -} - -# Install libyuv -installLibyuv() { - printf 'Installing libyuv\n' - installLibyuv_dir="$(getPackageSource https://chromium.googlesource.com/libyuv/libyuv/+archive/d359a9f922af840b043535d43cf9d38b220d102e.tar.gz)" - mkdir -- "$installLibyuv_dir/build" - cd -- "$installLibyuv_dir/build" - cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr -B. .. - make -j$(getProcessorCount) install - cd - >/dev/null -} - -# Check if libavif is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibavifInstalled() { - if ! test -f /usr/local/lib/libavif.so && ! test -f /usr/lib/libavif.so && ! test -f /usr/lib/x86_64*/libavif.so; then - return 1 - fi - if ! test -f /usr/local/include/avif/avif.h && ! test -f /usr/include/avif/avif.h; then - return 1 - fi - return 0 -} - -# Install libavif -installLibavif() { - printf 'Installing libavif\n' - installLibavif_dir="$(getPackageSource https://codeload.github.com/AOMediaCodec/libavif/tar.gz/refs/tags/v1.0.3)" - mkdir -- "$installLibavif_dir/build" - cd -- "$installLibavif_dir/build" - cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON -DAVIF_CODEC_AOM=ON -DCMAKE_INSTALL_LIBDIR:PATH=lib - make -j$(getProcessorCount) install - cd - >/dev/null -} - -# Install libmpdec -installLibMPDec() { - installLibMPDec_src="$(getPackageSource https://www.bytereef.org/software/mpdecimal/releases/mpdecimal-2.5.1.tar.gz)" - cd -- "$installLibMPDec_src" - ./configure --disable-cxx - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -# Check if libdatrie is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibDatrieInstalled() { - if ! test -f /usr/local/lib/libdatrie.so && ! test -f /usr/lib/libdatrie.so && ! test -f /usr/lib/x86_64*/libdatrie.so; then - return 1 - fi - if ! test -f /usr/local/include/datrie/trie.h && ! test -f /usr/include/datrie/trie.h; then - return 1 - fi - return 0 -} - -# Install libdatrie -installLibDatrie() { - printf 'Installing libdatrie\n' - installLibDatrie_src="$(getPackageSource https://github.com/tlwg/libdatrie/releases/download/v0.2.13/libdatrie-0.2.13.tar.xz)" - cd -- "$installLibDatrie_src" - ./configure - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -# Check if libdatrie is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibThaiInstalled() { - return 1 - if ! test -f /usr/local/lib/libthai.so && ! test -f /usr/lib/libthai.so && ! test -f /usr/lib/x86_64*/libthai.so; then - return 1 - fi - if ! test -f /usr/local/include/thai/thailib.h && ! test -f /usr/include/thai/thailib.h; then - return 1 - fi - return 0 -} - -# Install libdatrie -installLibThai() { - printf 'Installing libthai\n' - installLibThai_src="$(getPackageSource https://github.com/tlwg/libthai/releases/download/v0.1.29/libthai-0.1.29.tar.xz)" - cd -- "$installLibThai_src" - ./configure - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -isLibTommathInstalled() { - if test -f /usr/local/lib/libtommath.a && test -f /usr/local/include/tommath.h; then - return 0 - fi - return 1 -} - -installLibTommath() { - printf 'Installing libtommath\n' - installLibTommath_src="$(getPackageSource https://github.com/libtom/libtommath/releases/download/v1.3.0/ltm-1.3.0.tar.xz)" - mkdir -p "$installLibTommath_src/build" - cd -- "$installLibTommath_src/build" - CFLAGS='-fPIC' cmake -DCMAKE_BUILD_TYPE=Release .. - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -isLibTomcryptInstalled() { - if test -f /usr/local/lib/libtomcrypt.a && test -f /usr/local/include/tomcrypt.h; then - return 0 - fi - return 1 -} - -installLibTomcrypt() { - printf 'Installing libtomcrypt\n' - installLibTomcrypt_src="$(getPackageSource https://github.com/libtom/libtomcrypt/releases/download/v1.18.2/crypt-1.18.2.tar.xz)" - cd -- "$installLibTomcrypt_src" - CFLAGS='-fPIC' make -j$(getProcessorCount) - make install -} - -isFirebirdInstalled() { - if test -f /usr/lib/libfbclient.so && test -f /usr/include/ibase.h; then - return 0 - fi - if test -d /tmp/src/firebird; then - return 0 - fi - return 1 -} - -installFirebird() { - printf 'Installing firebird\n' - if test $PHP_MAJMIN_VERSION -ge 804; then - installFirebird_src="$(getPackageSource https://github.com/FirebirdSQL/firebird/releases/download/v5.0.2/Firebird-5.0.2.1613-0-source.tar.xz)" - cd -- "$installFirebird_src" - ./configure --enable-client-only - make -j$(getProcessorCount) - cp -Rd gen/Release/firebird/include/* /usr/include - cp -Rd gen/Release/firebird/lib/* /usr/lib - cd - >/dev/null - else - mv "$(getPackageSource https://github.com/FirebirdSQL/firebird/releases/download/R2_5_9/Firebird-2.5.9.27139-0.tar.bz2)" /tmp/src/firebird - cd /tmp/src/firebird - # Patch rwlock.h (this has been fixed in later release of firebird 3.x) - sed -i '194s/.*/#if 0/' src/common/classes/rwlock.h - ./configure --with-system-icu - # -j option can't be used: make targets must be compiled sequentially - make -s btyacc_binary gpre_boot libfbstatic libfbclient - cp gen/firebird/lib/libfbclient.so /usr/lib/ - ln -s /usr/lib/libfbclient.so /usr/lib/libfbclient.so.2 - cd - >/dev/null - fi -} - -isLibXCryptInstalled() { - if ! test -f /usr/local/lib/libcrypt.so && ! test -f /usr/lib/libcrypt.so && ! test -f /usr/lib/x86_64*/libcrypt.so; then - return 1 - fi - return 0 -} - -installLibXCrypt() { - printf 'Installing libxcrypt\n' - installLibXCrypt_version=4.4.36 - installLibXCrypt_src="$(getPackageSource "https://github.com/besser82/libxcrypt/releases/download/v$installLibXCrypt_version/libxcrypt-$installLibXCrypt_version.tar.xz")" - cd -- "$installLibXCrypt_src" - ./configure --prefix /usr - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -isLibenchant1Installed() { - if test -f /usr/lib/libenchant.so || test -f /usr/local/lib/libenchant.so; then - return 0 - fi - return 1 -} - -installLibenchant1() { - printf 'Installing libenchant1\n' - installLibenchant1_src="$(getPackageSource https://github.com/rrthomas/enchant/releases/download/enchant-1-6-1/enchant-1.6.1.tar.gz)" - cd -- "$installLibenchant1_src" - ./configure - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -# Install Composer -installComposer() { - installComposer_version="$(getWantedPHPModuleVersion @composer)" - installComposer_version="${installComposer_version#^}" - if test -z "$installComposer_version"; then - installComposer_fullname=composer - installComposer_flags='' - else - installComposer_fullname="$(printf 'composer v%s' "$installComposer_version")" - if printf '%s' "$installComposer_version" | grep -Eq '^[0-9]+$'; then - installComposer_flags="--$installComposer_version" - else - installComposer_flags="--version=$installComposer_version" - fi - fi - printf '### INSTALLING %s ###\n' "$installComposer_fullname" - actuallyInstallComposer /usr/local/bin composer "$installComposer_flags" -} - -# Actually install composer -# -# Arguments: -# $1: the directory where composer should be installed (required) -# $2: the composer filename (optional, default: composer) -# $3. additional flags for the composer installed (optional) -actuallyInstallComposer() { - actuallyInstallComposer_installer="$(mktemp -p /tmp/src)" - curl -sSLf -o "$actuallyInstallComposer_installer" https://getcomposer.org/installer - actuallyInstallComposer_expectedSignature="$(curl -sSLf https://composer.github.io/installer.sig)" - actuallyInstallComposer_actualSignature="$(php -n -r "echo hash_file('sha384', '$actuallyInstallComposer_installer');")" - if test "$actuallyInstallComposer_expectedSignature" != "$actuallyInstallComposer_actualSignature"; then - printf 'Verification of composer installer failed!\nExpected signature: %s\nActual signature: %s\n' "$actuallyInstallComposer_expectedSignature" "$actuallyInstallComposer_actualSignature" >&2 - exit 1 - fi - actuallyInstallComposer_flags="--install-dir=$1" - if test -n "${2:-}"; then - actuallyInstallComposer_flags="$actuallyInstallComposer_flags --filename=$2" - else - actuallyInstallComposer_flags="$actuallyInstallComposer_flags --filename=composer" - fi - if test -n "${3:-}"; then - actuallyInstallComposer_flags="$actuallyInstallComposer_flags $3" - fi - php "$actuallyInstallComposer_installer" $actuallyInstallComposer_flags - rm -- "$actuallyInstallComposer_installer" -} - -# Install ionCube Loader -installIonCubeLoader() { - installIonCubeLoader_version='' - if test $PHP_MAJMIN_VERSION -lt 804; then - # For 14.4.0 we have a Segmentation Fault - installIonCubeLoader_version=14.0.0 - fi - installIonCubeLoader_versionForUrl='' - installIonCubeLoader_versionForMessage=latest - if test -n "$installIonCubeLoader_version"; then - installIonCubeLoader_versionForUrl="_$installIonCubeLoader_version" - installIonCubeLoader_versionForMessage="v$installIonCubeLoader_version" - fi - # See https://www.ioncube.com/loaders.php - case $PHP_BITS in - 32) - case $(uname -m) in - aarch* | arm*) - installIonCubeLoader_url="https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_armv7l$installIonCubeLoader_versionForUrl.tar.gz" - ;; - *) - installIonCubeLoader_url="https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86$installIonCubeLoader_versionForUrl.tar.gz" - ;; - esac - ;; - *) - case $(uname -m) in - aarch64 | arm64 | armv8) - installIonCubeLoader_url="https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_aarch64$installIonCubeLoader_versionForUrl.tar.gz" - ;; - *) - installIonCubeLoader_url="https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64$installIonCubeLoader_versionForUrl.tar.gz" - ;; - esac - ;; - esac - printf 'Downloading ionCube Loader (%s)... ' "$installIonCubeLoader_versionForMessage" - installIonCubeLoader_dir="$(getPackageSource $installIonCubeLoader_url)" - echo 'done.' - installIonCubeLoader_so=$(php -r "printf('ioncube_loader_lin_%s.%s%s.so', PHP_MAJOR_VERSION, PHP_MINOR_VERSION, ZEND_THREAD_SAFE ? '_ts' : '');") - cp "$installIonCubeLoader_dir/$installIonCubeLoader_so" "$(getPHPExtensionsDir)/ioncube_loader.so" -} - -# Install SourceGuardian Loader -installSourceGuardian() { - # See https://www.sourceguardian.com/loaders.html - case $PHP_BITS in - 32) - installSourceGuardian_url=https://www.sourceguardian.com/loaders/download/loaders.linux-i386.tar.gz - ;; - *) - case $(uname -m) in - aarch64 | arm64 | armv8) - installSourceGuardian_url=https://www.sourceguardian.com/loaders/download/loaders.linux-aarch64.tar.gz - ;; - *) - installSourceGuardian_url=https://www.sourceguardian.com/loaders/download/loaders.linux-x86_64.tar.gz - ;; - esac - ;; - esac - printf 'Downloading SourceGuardian... ' - installSourceGuardian_dir="$(getPackageSource $installSourceGuardian_url)" - printf 'done (version: %s)\n' "$(cat "$installSourceGuardian_dir/version")" - for installSourceGuardian_phpv in $PHP_MAJDOTMINDOTPAT_VERSION $PHP_MAJDOTMIN_VERSION; do - installSourceGuardian_file="$installSourceGuardian_dir/ixed.$PHP_MAJDOTMIN_VERSION" - if test $PHP_THREADSAFE -eq 1; then - installSourceGuardian_file="${installSourceGuardian_file}ts" - fi - installSourceGuardian_file="${installSourceGuardian_file}.lin" - if test -f "$installSourceGuardian_file"; then - mv "$installSourceGuardian_file" "$(getPHPExtensionsDir)/sourceguardian.so" - return - fi - done - printf 'Unable to find a SourceGuardian compatible with PHP %s or PHP %s.\nAvailable SourceGuardian versions:\n' "$PHP_MAJDOTMINDOTPAT_VERSION" "$PHP_MAJDOTMIN_VERSION" >&2 - ls -1 "$installSourceGuardian_dir" | grep -E '^ixed\..*\.lin$' | sed -E 's/^[^0-9]+([0-9]+(\.[0-9]+)*).*$/\1/' | sort | uniq >&2 - exit 1 -} - -# Install Cargo (if not yet installed) -installCargo() { - if command -v cargo >/dev/null; then - return - fi - installCargo_cargoversion= - if ! test -f "$HOME/.cargo/env"; then - printf '# Installing cargo\n' - case "$DISTRO" in - alpine) - # see https://github.com/hyperledger/indy-vdr/issues/69#issuecomment-998104850 - export RUSTFLAGS='-C target-feature=-crt-static' - ;; - esac - curl https://sh.rustup.rs -sSf | sh -s -- -y -q - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -le 310; then - # With version 1.84.0 we have this error: - # Error relocating /root/.rustup/toolchains/stable-x86_64-unknown-linux-musl/bin/cargo: posix_spawn_file_actions_addchdir_np: symbol not found - # See https://github.com/rust-lang/rust/pull/131851#issue-2595663507 - installCargo_cargoversion=1.83.0 - fi - ;; - esac - fi - . "$HOME/.cargo/env" - if test -n "$installCargo_cargoversion"; then - rustup default -- "$installCargo_cargoversion" - fi - if test -z "${IPE_UNINSTALL_CARGO:-}"; then - IPE_UNINSTALL_CARGO=y - fi -} - -installNewRelic() { - printf '# Installing newrelic\n' - # see https://docs.newrelic.com/docs/apm/agents/php-agent/getting-started/php-agent-compatibility-requirements/ - if test $PHP_MAJMIN_VERSION -le 701; then - installNewRelic_baseUrl=https://download.newrelic.com/php_agent/archive/10.21.0.11/ - else - installNewRelic_baseUrl=https://download.newrelic.com/php_agent/release/ - fi - installNewRelic_search='\bnewrelic-php[0-9.]*-[0-9]+(\.[0-9]+)*-linux' - case "$DISTRO" in - alpine) - installNewRelic_search="$installNewRelic_search-musl" - ;; - esac - installNewRelic_file="$(curl -sSLf -o- "$installNewRelic_baseUrl" | sed -E 's/<[^>]*>//g' | grep -Eo "$installNewRelic_search.tar.gz" | sort | head -1)" - installNewRelic_url="$installNewRelic_baseUrl$installNewRelic_file" - installNewRelic_src="$(getPackageSource "$installNewRelic_url")" - cd -- "$installNewRelic_src" - NR_INSTALL_USE_CP_NOT_LN=1 NR_INSTALL_SILENT=1 ./newrelic-install install - case "${IPE_NEWRELIC_DAEMON:-}" in - 1 | y* | Y*) - NR_INSTALL_USE_CP_NOT_LN=1 NR_INSTALL_SILENT=1 ./newrelic-install install_daemon - ;; - esac - case "${IPE_NEWRELIC_KEEPLOG:-}" in - 1 | y* | Y*) ;; - *) - rm -f /tmp/nrinstall-*.tar - ;; - esac - cd - >/dev/null - cat <&2 - fi - if test -n "$(getModuleSourceCodePath "$1")"; then - printf '### WARNING the module "%s" is bundled with PHP, you can NOT specify a source code path for it\n' "$1" >&2 - fi - case "$1" in - dba) - if test -e /usr/lib/$TARGET_TRIPLET/libdb-5.3.so && ! test -e /usr/lib/libdb-5.3.so; then - ln -s /usr/lib/$TARGET_TRIPLET/libdb-5.3.so /usr/lib/ - fi - if test $PHP_MAJMIN_VERSION -le 505; then - docker-php-source extract - patch /usr/src/php/ext/dba/config.m4 </dev/null - ;; - oci8 | pdo_oci) - installOracleInstantClient - if test "$1" = oci8; then - docker-php-ext-configure "$1" "--with-oci8=instantclient,$ORACLE_INSTANTCLIENT_LIBPATH" - elif test "$1" = pdo_oci; then - docker-php-ext-configure "$1" "--with-pdo-oci=instantclient,$ORACLE_INSTANTCLIENT_LIBPATH" - fi - ;; - pdo_odbc) - docker-php-ext-configure pdo_odbc --with-pdo-odbc=unixODBC,/usr - ;; - snmp) - case "$DISTRO" in - alpine) - mkdir -p -m 0755 /var/lib/net-snmp/mib_indexes - ;; - esac - ;; - sockets) - case "$PHP_MAJDOTMINDOTPAT_VERSION" in - 8.0.15 | 8.1.2) - sed -i '70 i #ifndef _GNU_SOURCE' /usr/src/php/ext/sockets/config.m4 - sed -i '71 i #define _GNU_SOURCE' /usr/src/php/ext/sockets/config.m4 - sed -i '72 i #endif' /usr/src/php/ext/sockets/config.m4 - ;; - esac - ;; - sybase_ct) - docker-php-ext-configure sybase_ct --with-sybase-ct=/usr - ;; - tidy) - case "$DISTRO" in - alpine) - if ! test -f /usr/include/buffio.h; then - ln -s /usr/include/tidybuffio.h /usr/include/buffio.h - UNNEEDED_PACKAGE_LINKS="$UNNEEDED_PACKAGE_LINKS /usr/include/buffio.h" - fi - ;; - esac - ;; - zip) - if test $PHP_MAJMIN_VERSION -le 505; then - docker-php-ext-configure zip - elif test $PHP_MAJMIN_VERSION -le 703; then - docker-php-ext-configure zip --with-libzip - else - docker-php-ext-configure zip --with-zip - fi - ;; - esac - installBundledModule_errBefore="$(php -r 'return;' 2>&1 || true)" - docker-php-ext-install -j$(getProcessorCount) "$1" - case "$1" in - imap) - case "$DISTRO_VERSION" in - debian@9) - dpkg -r libc-client2007e-dev - ;; - esac - ;; - esac - case "${IPE_SKIP_CHECK:-}" in - 1 | y* | Y*) ;; - *) - php -r 'return;' >/dev/null 2>/dev/null || true - installBundledModule_errAfter="$(php -r 'return;' 2>&1 || true)" - if test "$installBundledModule_errAfter" != "$installBundledModule_errBefore"; then - printf 'PHP has problems after installing the "%s" extension:\n%s\n' "$1" "$installBundledModule_errAfter" >&2 - rm "$PHP_INI_DIR/conf.d/docker-php-ext-$1.ini" || true - return 1 - fi - ;; - esac -} - -# Fetch a tar.gz file, extract it and returns the path of the extracted folder. -# -# Arguments: -# $1: the URL of the file to be downloaded -# -# Output: -# The path of the extracted directory -getPackageSource() { - mkdir -p /tmp/src - getPackageSource_tempFile=$(mktemp -p /tmp/src) - curl -sSLf -o "$getPackageSource_tempFile" "$1" - getPackageSource_tempDir=$(mktemp -p /tmp/src -d) - cd "$getPackageSource_tempDir" - tar -xzf "$getPackageSource_tempFile" 2>/dev/null || tar -xf "$getPackageSource_tempFile" 2>/dev/null || ( - if command -v bsdtar >/dev/null; then - bsdtar -xf "$getPackageSource_tempFile" - else - unzip -q "$getPackageSource_tempFile" - fi - ) - cd - >/dev/null - unlink "$getPackageSource_tempFile" - getPackageSource_outDir='' - for getPackageSource_i in $(ls "$getPackageSource_tempDir"); do - if test -n "$getPackageSource_outDir" || test -f "$getPackageSource_tempDir/$getPackageSource_i"; then - getPackageSource_outDir='' - break - fi - getPackageSource_outDir="$getPackageSource_tempDir/$getPackageSource_i" - done - if test -n "$getPackageSource_outDir"; then - printf '%s' "$getPackageSource_outDir" - else - printf '%s' "$getPackageSource_tempDir" - fi -} - -# Install a PECL/remote PHP module given its handle -# -# Arguments: -# $1: the handle of the PHP module -installRemoteModule() { - installRemoteModule_module="$1" - printf '### INSTALLING REMOTE MODULE %s ###\n' "$installRemoteModule_module" - installRemoteModule_version="$(resolvePHPModuleVersion "$installRemoteModule_module")" - installRemoteModule_path="$(getModuleSourceCodePath "$installRemoteModule_module")" - rm -rf "$CONFIGURE_FILE" - installRemoteModule_manuallyInstalled=0 - installRemoteModule_cppflags='' - installRemoteModule_ini_basename='' - installRemoteModule_ini_extra='' - case "$installRemoteModule_module" in - amqp) - if test -z "$installRemoteModule_version"; then - if test "$DISTRO_VERSION" = debian@8; then - # in Debian Jessie we have librabbitmq version 0.5.2 - installRemoteModule_version=1.9.3 - elif test $PHP_MAJMIN_VERSION -le 505; then - installRemoteModule_version=1.9.4 - elif test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=1.11.0 - fi - fi - ;; - apcu) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=4.0.11 - fi - fi - ;; - apcu_bc) - # apcu_bc must be loaded after apcu - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - ;; - ast) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=1.0.16 - fi - fi - ;; - bitset) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.0.4 - fi - fi - ;; - blackfire) - case $(uname -m) in - i386 | i686 | x86) - installRemoteModule_tmp1=i386 - ;; - aarch64 | arm64 | armv8) - installRemoteModule_tmp1=arm64 - ;; - *) - installRemoteModule_tmp1=amd64 - ;; - esac - case $DISTRO in - alpine) - installRemoteModule_distro=alpine - ;; - *) - installRemoteModule_distro=linux - ;; - esac - installRemoteModule_tmp2=$(php -r 'echo PHP_MAJOR_VERSION . PHP_MINOR_VERSION . (ZEND_THREAD_SAFE ? "-zts" : "");') - installRemoteModule_tmp="$(mktemp -p /tmp/src -d)" - cd "$installRemoteModule_tmp" - curl -sSLf --user-agent Docker https://blackfire.io/api/v1/releases/probe/php/$installRemoteModule_distro/$installRemoteModule_tmp1/$installRemoteModule_tmp2 | tar xz - mv blackfire-*.so $(getPHPExtensionsDir)/blackfire.so - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - installRemoteModule_ini_extra="$(printf '%sblackfire.agent_socket=tcp://blackfire:8307\n' "$installRemoteModule_ini_extra")" - ;; - cassandra) - installRemoteModule_src="$(getPackageSource https://github.com/nano-interactive/ext-cassandra/tarball/1cf12c5ce49ed43a2c449bee4b7b23ce02a37bf0)" - cd "$installRemoteModule_src/ext" - phpize - ./configure - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - ;; - cmark) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=1.1.0 - fi - fi - if ! test -e /usr/local/lib/libcmark.so && ! test -e /usr/local/lib64/libcmark.so && ! test -e /usr/lib/libcmark.so && ! test -e /usr/lib64/libcmark.so && ! test -e /lib/libcmark.so; then - if test $(compareVersions "$(cmake --version | head -n1 | sed -E 's/^.* //')" '3.7') -lt 0; then - installRemoteModule_tmp=0.29.0 - else - installRemoteModule_tmp=0.31.1 - fi - cd "$(getPackageSource https://github.com/commonmark/cmark/archive/$installRemoteModule_tmp.tar.gz)" - make -s -j$(getProcessorCount) cmake_build - make -s -j$(getProcessorCount) install - cd - >/dev/null - case "$DISTRO" in - alpine) - if test -e /usr/local/lib64/libcmark.so.$installRemoteModule_tmp && ! test -e /usr/local/lib/libcmark.so.$installRemoteModule_tmp; then - ln -s /usr/local/lib64/libcmark.so.$installRemoteModule_tmp /usr/local/lib/ - fi - ;; - *) - ldconfig || true - ;; - esac - fi - ;; - csv) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=0.3.1 - fi - fi - ;; - ddtrace) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=0.75.0 - fi - if test -z "$installRemoteModule_version"; then - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -le 312; then - # cc is not supported due to a memcmp related bug - installRemoteModule_version=1.1.0 - fi - ;; - esac - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 0.75.0) -ge 0; then - installCargo - fi - ;; - decimal) - case "$DISTRO" in - alpine) - if ! test -f /usr/local/lib/libmpdec.so; then - installLibMPDec - fi - ;; - debian) - if test $DISTRO_MAJMIN_VERSION -ge 1200; then - if test -z "$(ldconfig -p | grep -E '\slibmpdec.so\s')"; then - installLibMPDec - fi - fi - ;; - esac - ;; - ds) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 703; then - installRemoteModule_version=1.3.0 - elif test $PHP_MAJMIN_VERSION -lt 704; then - installRemoteModule_version=1.4.0 - fi - fi - ;; - ecma_intl) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=alpha - fi - ;; - ev) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 800; then - installRemoteModule_version=1.1.5 - fi - fi - ;; - event) - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 2.4.0) -ge 0; then - # Enable internal debugging in Event - addConfigureOption enable-event-debug no - # Enable sockets support in Event - if php --ri sockets >/dev/null 2>/dev/null; then - addConfigureOption enable-event-sockets yes - else - addConfigureOption enable-event-sockets no - fi - # libevent installation prefix - addConfigureOption with-event-libevent-dir /usr - # Include libevent's pthreads library and enable thread safety support in Event - addConfigureOption with-event-pthreads yes - # Include libevent protocol-specific functionality support including HTTP, DNS, and RPC - addConfigureOption with-event-extra yes - # Include libevent OpenSSL support - addConfigureOption with-event-openssl yes - # PHP Namespace for all Event classes - if test -n "${IPE_EVENT_NAMESPACE:-}"; then - addConfigureOption with-event-ns "$IPE_EVENT_NAMESPACE" - else - addConfigureOption with-event-ns no - fi - # openssl installation prefix - addConfigureOption with-openssl-dir yes - elif test $(compareVersions "$installRemoteModule_version" 1.7.6) -ge 0; then - # Enable internal debugging in Event - addConfigureOption enable-event-debug no - # Enable sockets support in Event - if php --ri sockets >/dev/null 2>/dev/null; then - addConfigureOption enable-event-sockets yes - else - addConfigureOption enable-event-sockets no - fi - # libevent installation prefix - addConfigureOption with-event-libevent-dir /usr - # Include libevent's pthreads library and enable thread safety support in Event - addConfigureOption with-event-pthreads yes - # Include libevent protocol-specific functionality support including HTTP, DNS, and RPC - addConfigureOption with-event-extra yes - # Include libevent OpenSSL support - addConfigureOption with-event-openssl yes - # openssl installation prefix - addConfigureOption with-openssl-dir no - elif test $(compareVersions "$installRemoteModule_version" 1.3.0) -ge 0; then - # Enable internal debugging in event - addConfigureOption enable-event-debug no - # libevent installation prefix - addConfigureOption with-event-libevent-dir /usr - # Include libevent's pthreads library and enable thread safety support in event - addConfigureOption with-event-pthreads yes - # Include libevent protocol-specific functionality support including HTTP, DNS, and RPC - addConfigureOption with-event-extra yes - # Include libevent OpenSSL support - addConfigureOption with-event-openssl yes - # openssl installation prefix - addConfigureOption with-openssl-dir no - fi - # event must be loaded after sockets - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - ;; - gearman) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.1.2 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=2.1.3 - fi - fi - case "$DISTRO" in - alpine) - if ! test -e /usr/local/include/libgearman/gearman.h || ! test -e /usr/local/lib/libgearman.so; then - installRemoteModule_src="$(getPackageSource https://github.com/gearman/gearmand/releases/download/1.1.21/gearmand-1.1.21.tar.gz)" - cd -- "$installRemoteModule_src" - ./configure - make -j$(getProcessorCount) install-binPROGRAMS - make -j$(getProcessorCount) install-nobase_includeHEADERS - cd - >/dev/null - fi - ;; - esac - ;; - geoip) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=beta - fi - ;; - geos) - if test -z "$installRemoteModule_path"; then - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=0def35611f773c951432f1f06a155471a5cb7611 - fi - installRemoteModule_src="$(getPackageSource https://git.osgeo.org/gitea/geos/php-geos/archive/$installRemoteModule_version.tar.gz)" - cd "$installRemoteModule_src" - ./autogen.sh - ./configure - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - fi - ;; - geospatial) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.2.1 - else - installRemoteModule_version=beta - fi - fi - ;; - gmagick) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.1.7RC3 - else - installRemoteModule_version=beta - fi - fi - ;; - grpc) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.33.1 - else - case "$DISTRO_VERSION" in - debian@8) - installRemoteModule_version=1.46.3 - ;; - alpine@3.7 | alpine@3.8 | debian@9) # With newer version: "This package requires GCC 7 or higher" - installRemoteModule_version=1.52.1 - ;; - esac - fi - fi - if test -z "$installRemoteModule_version" || test "$installRemoteModule_version" = 1.35.0; then - case "$DISTRO_VERSION" in - alpine@3.13) - installRemoteModule_cppflags='-Wno-maybe-uninitialized' - ;; - esac - fi - ;; - http) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.6.0 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=3.2.4 - fi - fi - if test $PHP_MAJMIN_VERSION -ge 700; then - if ! test -e /usr/local/lib/libidnkit.so; then - installRemoteModule_src="$(getPackageSource https://jprs.co.jp/idn/idnkit-2.3.tar.bz2)" - cd -- "$installRemoteModule_src" - CFLAGS=-Wno-incompatible-pointer-types ./configure - make -j$(getProcessorCount) install - cd - >/dev/null - fi - fi - # http must be loaded after raphf and propro - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - ;; - igbinary) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.0.8 - fi - fi - ;; - imap) - # Include Kerberos Support - addConfigureOption with-kerberos yes - # Include SSL Support - addConfigureOption with-imap-ssl yes - ;; - inotify) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.1.6 - fi - fi - ;; - ion) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=alpha - fi - if ! test -f /usr/local/lib/libionc.so || ! test -f /usr/local/include/ionc/ion.h; then - echo 'Installing ion-c... ' - installRemoteModule_src="$(mktemp -p /tmp/src -d)" - git clone -q -c advice.detachedHead=false --depth 1 --branch v1.1.3 https://github.com/amzn/ion-c.git "$installRemoteModule_src/ion" - ( - cd "$installRemoteModule_src/ion" - git submodule init -q - git submodule update -q - mkdir -p build - cd build - CFLAGS='-Wno-incompatible-pointer-types -Wno-stringop-overflow -Wno-discarded-qualifiers' cmake -DCMAKE_BUILD_TYPE=Release .. -Wno-dev - make clean - make -j$(getProcessorCount) install - ) - rm -rf "$installRemoteModule_src" - fi - addConfigureOption with-ion "shared,/usr/local" - ;; - ioncube_loader) - installIonCubeLoader - installRemoteModule_manuallyInstalled=1 - ;; - jsmin) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=2.0.1 - fi - fi - ;; - jsonpath) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 800; then - installRemoteModule_version=1.0.1 - fi - fi - ;; - luasandbox) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 702; then - installRemoteModule_version=3.0.3 - fi - fi - ;; - lz4) - if test -z "$installRemoteModule_path"; then - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=0.4.3 - fi - installRemoteModule_src="$(getPackageSource https://github.com/kjdev/php-ext-lz4/archive/refs/tags/$installRemoteModule_version.tar.gz)" - cd "$installRemoteModule_src" - phpize - ./configure --with-lz4-includedir=/usr - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - fi - ;; - lzf) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 702; then - installRemoteModule_version=1.6.8 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" '1.5.0') -ge 0; then - # Sacrifice speed in favour of compression ratio? - case "${IPE_LZF_BETTERCOMPRESSION:-}" in - 1 | y* | Y*) - addConfigureOption 'enable-lzf-better-compression' 'yes' - ;; - *) - addConfigureOption 'enable-lzf-better-compression' 'no' - ;; - esac - fi - ;; - mailparse) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.1.6 - elif test $PHP_MAJMIN_VERSION -le 702; then - installRemoteModule_version=3.1.3 - fi - fi - ;; - memcache) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.2.7 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=4.0.5.2 - fi - fi - ;; - memcached) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.2.0 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - # Set the path to libmemcached install prefix - addConfigureOption 'with-libmemcached-dir' 'no' - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" '3.0.0') -ge 0; then - # Set the path to ZLIB install prefix - addConfigureOption 'with-zlib-dir' 'no' - # Use system FastLZ library - addConfigureOption 'with-system-fastlz' 'no' - # Enable memcached igbinary serializer support - if php --ri igbinary >/dev/null 2>/dev/null; then - addConfigureOption 'enable-memcached-igbinary' 'yes' - else - addConfigureOption 'enable-memcached-igbinary' 'no' - fi - # Enable memcached msgpack serializer support - if php --ri msgpack >/dev/null 2>/dev/null; then - addConfigureOption 'enable-memcached-msgpack' 'yes' - else - addConfigureOption 'enable-memcached-msgpack' 'no' - fi - # Enable memcached json serializer support - addConfigureOption 'enable-memcached-json' 'yes' - # Enable memcached protocol support - addConfigureOption 'enable-memcached-protocol' 'no' # https://github.com/php-memcached-dev/php-memcached/issues/418#issuecomment-449587972 - # Enable memcached sasl support - addConfigureOption 'enable-memcached-sasl' 'yes' - # Enable memcached session handler support - addConfigureOption 'enable-memcached-session' 'yes' - fi - # memcached must be loaded after msgpack - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - ;; - memprof) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.0.0 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=2.1.0 - fi - fi - ;; - mongo) - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" '1.5.0') -ge 0; then - # Build with Cyrus SASL (MongoDB Enterprise Authentication) support? - addConfigureOption '-with-mongo-sasl' 'yes' - fi - ;; - mongodb) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 505; then - installRemoteModule_version=1.5.5 - elif test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.7.5 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=1.9.2 - elif test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=1.11.1 - elif test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=1.16.2 - elif test $PHP_MAJMIN_VERSION -le 800; then - installRemoteModule_version=1.20.1 - fi - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 1.17.0) -ge 0; then - # Enable developer flags? (yes/no) - addConfigureOption enable-mongodb-developer-flags no - # Enable code coverage? (yes/no) - addConfigureOption enable-mongodb-coverage no - # Use system libraries for libbson, libmongoc, and libmongocrypt? (yes/no) - addConfigureOption with-mongodb-system-libs no - # Enable client-side encryption? (auto/yes/no) - addConfigureOption with-mongodb-client-side-encryption yes - # Enable Snappy for compression? (auto/yes/no) - addConfigureOption with-mongodb-snappy yes - # Enable zlib for compression? (auto/system/bundled/no) - addConfigureOption with-mongodb-zlib yes - # Enable zstd for compression? (auto/yes/no) - addConfigureOption with-mongodb-zstd yes - # Enable SASL for Kerberos authentication? (auto/cyrus/no) - addConfigureOption with-mongodb-sasl yes - # Enable crypto and TLS? (auto/openssl/libressl/darwin/no) - addConfigureOption with-mongodb-ssl yes - # Use system crypto profile (OpenSSL only)? (yes/no) - addConfigureOption enable-mongodb-crypto-system-profile yes - # Use bundled or system utf8proc for SCRAM-SHA-256 SASLprep? (bundled/system) - addConfigureOption with-mongodb-utf8proc bundled - fi - ;; - mosquitto) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=beta - fi - ;; - msgpack) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.5.7 - fi - fi - ;; - newrelic) - installNewRelic - installRemoteModule_manuallyInstalled=2 - ;; - oauth) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.2.3 - fi - fi - ;; - oci8 | pdo_oci) - installOracleInstantClient - if test "$installRemoteModule_module" = oci8; then - addConfigureOption with-oci8 "instantclient,$ORACLE_INSTANTCLIENT_LIBPATH" - elif test "$installRemoteModule_module" = pdo_oci; then - addConfigureOption with-pdo-oci "instantclient,$ORACLE_INSTANTCLIENT_LIBPATH" - fi - ;; - opencensus) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=alpha - fi - ;; - openswoole) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 704; then - installRemoteModule_version=4.10.0 - elif test $PHP_MAJMIN_VERSION -lt 801; then - installRemoteModule_version=22.0.0 - elif test $PHP_MAJMIN_VERSION -lt 802; then - installRemoteModule_version=22.1.2 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if php --ri sockets >/dev/null 2>/dev/null; then - installRemoteModule_sockets=yes - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - else - installRemoteModule_sockets=no - fi - installRemoteModule_openssl=yes - if test -n "$installRemoteModule_version" && test $(compareVersions "$installRemoteModule_version" 22.1.2) -ge 0; then - # enable coroutine sockets? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 protocol? - addConfigureOption enable-http2 yes - # enable coroutine mysqlnd? - addConfigureOption enable-mysqlnd yes - # enable coroutine curl? - addConfigureOption enable-hook-curl yes - # enable coroutine postgres? - addConfigureOption with-postgres yes - elif test $(compareVersions "$installRemoteModule_version" 22.1.1) -ge 0; then - # enable c-ares support? - addConfigureOption enable-cares yes - # enable coroutine sockets? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 protocol? - addConfigureOption enable-http2 yes - # enable coroutine mysqlnd? - addConfigureOption enable-mysqlnd yes - # enable coroutine curl? - addConfigureOption enable-hook-curl yes - # enable coroutine postgres? - addConfigureOption with-postgres yes - elif test $(compareVersions "$installRemoteModule_version" 22.1.0) -ge 0; then - # enable coroutine sockets? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 protocol? - addConfigureOption enable-http2 yes - # enable coroutine mysqlnd? - addConfigureOption enable-mysqlnd yes - # enable coroutine curl? - addConfigureOption enable-hook-curl yes - # enable coroutine postgres? - addConfigureOption with-postgres yes - elif test $(compareVersions "$installRemoteModule_version" 22.0.0) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable hook curl support? - addConfigureOption enable-hook-curl yes - # enable postgres support? - addConfigureOption with-postgres yes - elif test $(compareVersions "$installRemoteModule_version" 4.8.0) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable json support? - addConfigureOption enable-swoole-json yes - # enable curl support? - addConfigureOption enable-swoole-curl yes - # enable postgres support? - addConfigureOption with-postgres yes - else - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable json support? - addConfigureOption enable-swoole-json yes - # enable curl support? - addConfigureOption enable-swoole-curl yes - fi - ;; - operator) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=beta - fi - ;; - parallel) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=0.8.3 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=1.1.4 - fi - fi - ;; - parle) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 704; then - installRemoteModule_version=0.8.3 - else - installRemoteModule_version=beta - fi - fi - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 0.8.4) -ge 0; then - # Enable internal UTF-32 support in parle - addConfigureOption enable-parle-utf32 yes - fi - ;; - pcov) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=0.9.0 - fi - fi - ;; - phalcon) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMINPAT_VERSION -lt 70401; then - installRemoteModule_version=4.1.2 - elif test $PHP_MAJMIN_VERSION -lt 800; then - installRemoteModule_version=5.4.0 - fi - fi - installRemoteModule_cppflags='-Wno-incompatible-pointer-types' - ;; - php_trie) - if ! test -f /usr/local/include/hat-trie/include/tsl/htrie_map.h; then - installRemoteModule_src="$(getPackageSource https://codeload.github.com/Tessil/hat-trie/tar.gz/v0.6.0)" - mkdir -p /usr/local/include/hat-trie - mv "$installRemoteModule_src/include" /usr/local/include/hat-trie - fi - ;; - pq) - # pq must be loaded after raphf - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - ;; - propro) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.0.2 - fi - fi - ;; - protobuf) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=3.12.4 - elif test $PHP_MAJMIN_VERSION -lt 800; then - installRemoteModule_version=3.24.4 - elif test $PHP_MAJMIN_VERSION -lt 801; then - installRemoteModule_version=3.25.3 - fi - fi - ;; - psr) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 506; then - installRemoteModule_version=0.5.1 - elif test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=0.6.1 - elif test $PHP_MAJMIN_VERSION -lt 703; then - installRemoteModule_version=1.1.0 - fi - fi - ;; - pthreads) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.0.10 - fi - fi - ;; - raphf) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.1.2 - fi - fi - ;; - rdkafka) - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version"; then - installRemoteModule_version1='' - if test $PHP_MAJMIN_VERSION -le 505; then - installRemoteModule_version1=3.0.5 - elif test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version1=4.1.2 - fi - installRemoteModule_version2='' - case "$DISTRO" in - alpine) - installRemoteModule_tmp='librdkafka' - ;; - debian) - installRemoteModule_tmp='librdkafka*' - ;; - *) - installRemoteModule_tmp='' - ;; - esac - if test -n "$installRemoteModule_tmp"; then - installRemoteModule_tmp="$(getInstalledPackageVersion "$installRemoteModule_tmp")" - if test -n "$installRemoteModule_tmp" && test $(compareVersions "$installRemoteModule_tmp" '0.11.0') -lt 0; then - installRemoteModule_version2=3.1.3 - fi - fi - if test -z "$installRemoteModule_version1" || test -z "$installRemoteModule_version2"; then - installRemoteModule_version="$installRemoteModule_version1$installRemoteModule_version2" - elif test $(compareVersions "$installRemoteModule_version1" "$installRemoteModule_version2") -le 0; then - installRemoteModule_version="$installRemoteModule_version1" - else - installRemoteModule_version="$installRemoteModule_version2" - fi - fi - ;; - redis) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=4.3.0 - elif test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=5.3.7 - elif test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=6.0.2 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - # Enable igbinary serializer support? - if php --ri igbinary >/dev/null 2>/dev/null; then - addConfigureOption enable-redis-igbinary yes - else - addConfigureOption enable-redis-igbinary no - fi - # Enable lzf compression support? - addConfigureOption enable-redis-lzf yes - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 5.0.0) -ge 0; then - if ! test -e /usr/include/zstd.h || ! test -e /usr/lib/libzstd.so -o -e "/usr/lib/$TARGET_TRIPLET/libzstd.so"; then - installRemoteModule_zstdVersion=1.4.4 - installRemoteModule_zstdVersionMajor=$(echo $installRemoteModule_zstdVersion | cut -d. -f1) - rm -rf /tmp/src/zstd - mv "$(getPackageSource https://github.com/facebook/zstd/releases/download/v$installRemoteModule_zstdVersion/zstd-$installRemoteModule_zstdVersion.tar.gz)" /tmp/src/zstd - cd /tmp/src/zstd - make V=0 -j$(getProcessorCount) lib - cp -f lib/libzstd.so "/usr/lib/$TARGET_TRIPLET/libzstd.so.$installRemoteModule_zstdVersion" - ln -sf "/usr/lib/$TARGET_TRIPLET/libzstd.so.$installRemoteModule_zstdVersion" "/usr/lib/$TARGET_TRIPLET/libzstd.so.$installRemoteModule_zstdVersionMajor" - ln -sf "/usr/lib/$TARGET_TRIPLET/libzstd.so.$installRemoteModule_zstdVersion" "/usr/lib/$TARGET_TRIPLET/libzstd.so" - ln -sf /tmp/src/zstd/lib/zstd.h /usr/include/zstd.h - UNNEEDED_PACKAGE_LINKS="$UNNEEDED_PACKAGE_LINKS /usr/include/zstd.h" - cd - >/dev/null - fi - # Enable zstd compression support? - addConfigureOption enable-redis-zstd yes - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 6.0.0) -ge 0; then - # Enable msgpack serializer support? - if php --ri msgpack >/dev/null 2>/dev/null; then - addConfigureOption enable-redis-msgpack yes - else - addConfigureOption enable-redis-msgpack no - fi - # Enable lz4 compression? - addConfigureOption enable-redis-lz4 yes - # Use system liblz4? - addConfigureOption with-liblz4 yes - fi - fi - ;; - relay) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version="$(curl -sSLf https://builds.r2.relay.so/meta/latest)" - installRemoteModule_version="${installRemoteModule_version#v}" - fi - case $(uname -m) in - aarch64 | arm64 | armv8) - installRemoteModule_hardware=aarch64 - ;; - *) - installRemoteModule_hardware=x86-64 - ;; - esac - installRemoteModule_distro="$DISTRO" - installRemoteModule_flags='' - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -lt 317; then - installRemoteModule_distro=alpine3.9 - else - installRemoteModule_distro=alpine3.17 - fi - ;; - debian) - case "$(dpkg -l 'libssl*' | grep -E '^ii ' | cut -d' ' -f3)" in - libssl3*) - installRemoteModule_flags=+libssl3 - ;; - esac - ;; - esac - # See https://relay.so/builds - installRemoteModule_url="https://builds.r2.relay.so/v${installRemoteModule_version}/relay-v${installRemoteModule_version}-php${PHP_MAJDOTMIN_VERSION}-${installRemoteModule_distro}-${installRemoteModule_hardware}${installRemoteModule_flags}.tar.gz" - printf 'Downloading relay v%s (%s) from %s... ' "$installRemoteModule_version" "$installRemoteModule_hardware" "$installRemoteModule_url" - installRemoteModule_src="$(getPackageSource $installRemoteModule_url)" - echo 'done.' - cp -- "$installRemoteModule_src/relay-pkg.so" "$PHP_EXTDIR/relay.so" - sed -i "s/00000000-0000-0000-0000-000000000000/$(cat /proc/sys/kernel/random/uuid)/" "$PHP_EXTDIR/relay.so" - installRemoteModule_ini_extra="$(grep -vE '^[ \t]*extension[ \t]*=' $installRemoteModule_src/relay.ini)" - installRemoteModule_manuallyInstalled=1 - ;; - saxon) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -ge 800; then - installRemoteModule_version='12.4.2' - else - installRemoteModule_version='12.3' - fi - fi - installRemoteModule_majorVersion="${installRemoteModule_version%%.*}" - if test "$installRemoteModule_majorVersion" -ge 12; then - case $(uname -m) in - aarch64 | arm64 | armv8) - installRemoteModule_url=https://downloads.saxonica.com/SaxonC/EE/${installRemoteModule_majorVersion}/libsaxon-EEC-linux-aarch64-v${installRemoteModule_version}.zip - ;; - *) - installRemoteModule_url=https://downloads.saxonica.com/SaxonC/EE/${installRemoteModule_majorVersion}/libsaxon-EEC-linux-x86_64-v${installRemoteModule_version}.zip - ;; - esac - else - installRemoteModule_url=https://downloads.saxonica.com/SaxonC/EE/${installRemoteModule_majorVersion}/libsaxon-EEC-setup64-v${installRemoteModule_version}.zip - fi - installRemoteModule_dir="$(getPackageSource $installRemoteModule_url)" - if ! test -f /usr/lib/libsaxon-*.so; then - if test "$installRemoteModule_majorVersion" -ge 12; then - cp $installRemoteModule_dir/libs/nix/*.so /usr/lib/ - else - cp $installRemoteModule_dir/*.so /usr/lib/ - fi - ldconfig || true - fi - cd "$installRemoteModule_dir/Saxon.C.API" - phpize - ./configure --enable-saxon - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - ;; - seasclick) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.1.0 - fi - fi - ;; - seaslog) - installRemoteModule_cppflags='-Wno-incompatible-pointer-types' - ;; - smbclient) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.1.1 - elif test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=1.1.2 - fi - fi - ;; - snappy) - if test -z "$installRemoteModule_path"; then - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=0.2.1 - fi - installRemoteModule_src="$(getPackageSource https://github.com/kjdev/php-ext-snappy/archive/refs/tags/$installRemoteModule_version.tar.gz)" - cd "$installRemoteModule_src" - phpize - ./configure --with-snappy-includedir=/usr - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - fi - ;; - snuffleupagus) - if test -z "$installRemoteModule_path"; then - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 800; then - installRemoteModule_version=0.9.0 - elif test $PHP_MAJMIN_VERSION -le 801; then - installRemoteModule_version=0.10.0 - else - installRemoteModule_version=0.11.0 - fi - fi - installRemoteModule_src="$(getPackageSource https://codeload.github.com/jvoisin/snuffleupagus/tar.gz/v$installRemoteModule_version)" - cd "$installRemoteModule_src/src" - phpize - ./configure --enable-snuffleupagus - make -j$(getProcessorCount) install - cd - >/dev/null - cp -a "$installRemoteModule_src/config/default.rules" "$PHP_INI_DIR/conf.d/snuffleupagus.rules" - if test $(compareVersions "$installRemoteModule_version" 0.8.0) -ge 0; then - printf '\n# Disable "PHP version is not officially maintained anymore" message\nsp.global.show_old_php_warning.disable();\n' >>"$PHP_INI_DIR/conf.d/snuffleupagus.rules" - fi - else - if test -f "$installRemoteModule_path/config/default.rules"; then - cp -a "$installRemoteModule_path/config/default.rules" "$PHP_INI_DIR/conf.d/snuffleupagus.rules" - fi - fi - installRemoteModule_ini_extra="$(printf '%ssp.configuration_file=%s\n' "$installRemoteModule_ini_extra" "$PHP_INI_DIR/conf.d/snuffleupagus.rules")" - installRemoteModule_manuallyInstalled=1 - ;; - sodium | libsodium) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=1.0.7 - fi - fi - ;; - solr) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=2.4.0 - elif test $PHP_MAJMIN_VERSION -lt 704; then - installRemoteModule_version=2.6.0 - fi - fi - ;; - sourceguardian) - installSourceGuardian - installRemoteModule_manuallyInstalled=1 - ;; - spx) - if test -z "$installRemoteModule_path"; then - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=v0.4.18 - fi - if test "${installRemoteModule_version%.*}" = "$installRemoteModule_version"; then - installRemoteModule_displayVersion="$installRemoteModule_version" - else - installRemoteModule_displayVersion="git--master-$installRemoteModule_version" - fi - installRemoteModule_src="$(getPackageSource https://codeload.github.com/NoiseByNorthwest/php-spx/tar.gz/$installRemoteModule_version)" - cd -- "$installRemoteModule_src" - phpize - ./configure - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - fi - ;; - sqlsrv | pdo_sqlsrv) - isMicrosoftSqlServerODBCInstalled || installMicrosoftSqlServerODBC - if test -z "$installRemoteModule_version"; then - # https://docs.microsoft.com/it-it/sql/connect/php/system-requirements-for-the-php-sql-driver?view=sql-server-2017 - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=3.0.1 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=5.3.0 - elif test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=5.6.1 - elif test $PHP_MAJMIN_VERSION -le 702; then - installRemoteModule_version=5.8.1 - elif test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=5.9.0 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=5.10.1 - elif test $PHP_MAJMIN_VERSION -le 800; then - installRemoteModule_version=5.11.1 - fi - fi - ;; - ssh2) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.13 - fi - fi - ;; - stomp) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.0.9 - fi - fi - if test "$DISTRO" = debian; then - addConfigureOption with-openssl-dir yes - else - addConfigureOption with-openssl-dir /usr - fi - ;; - swoole) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 502; then - installRemoteModule_version=1.6.10 - elif test $PHP_MAJMIN_VERSION -le 504; then - installRemoteModule_version=2.0.4 - elif test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.0.11 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=4.3.6 - elif test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=4.5.10 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=4.8.11 - elif test $PHP_BITS -eq 32; then - # See https://github.com/swoole/swoole-src/issues/5198#issuecomment-1820162178 - installRemoteModule_version="$(resolvePHPModuleVersion "$installRemoteModule_module" '^5.0')" - else - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -le 312; then - installRemoteModule_version=5.1.2 - fi - ;; - esac - fi - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 800; then - installRemoteModule_version=5.1.3 - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" stable)" - fi - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if php --ri sockets >/dev/null 2>/dev/null; then - installRemoteModule_sockets=yes - else - installRemoteModule_sockets=no - fi - installRemoteModule_openssl=yes - case "$DISTRO_VERSION" in - alpine@3.7 | alpine@3.8) - if test $(compareVersions "$installRemoteModule_version" 4.6.0) -lt 0; then - # see https://github.com/swoole/swoole-src/issues/3934 - installRemoteModule_openssl=no - fi - ;; - esac - if test $PHP_THREADSAFE -eq 1; then - installRemoteModule_zts=yes - else - installRemoteModule_zts=no - fi - installRemoteModule_sqlite=yes - installRemoteModule_iouring=no - installRemoteModule_curl=yes - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -lt 317; then - # we need sqlite3 >= 3.7.7 - installRemoteModule_sqlite=no - fi - case "${IPE_SWOOLE_WITHOUT_IOURING:-}" in - 1 | y* | Y*) ;; - *) - # iouring support in swoole 6 requires liburing 2.5+: available since Alpine 3.19 - # but with Alpine 3.19 we have a "invalid use of incomplete type 'const struct statx'" error - if test $DISTRO_MAJMIN_VERSION -ge 320; then - installRemoteModule_iouring=yes - fi - ;; - esac - ;; - debian) - if test $PHP_MAJMIN_VERSION -ge 800; then - # see https://github.com/swoole/swoole-src/issues/5365 - installRemoteModule_curl=no - fi - if test $DISTRO_MAJMIN_VERSION -lt 1200; then - # we need sqlite3 >= 3.7.7 - installRemoteModule_sqlite=no - fi - case "${IPE_SWOOLE_WITHOUT_IOURING:-}" in - 1 | y* | Y*) ;; - *) - if test $DISTRO_VERSION_NUMBER -ge 13; then - # iouring support in swoole 6 requires liburing 2.5+: available since Debian Trixie (13) - installRemoteModule_iouring=yes - fi - ;; - esac - ;; - esac - installRemoteModule_zstd=yes - case "$DISTRO" in - debian) - if test $DISTRO_VERSION_NUMBER -lt 11; then - # swoole 6 requires libzstd >= 1.4.0, but on debian 10 (buster) we have 1.3.8 - installRemoteModule_zstd=no - fi - ;; - esac - if test $(compareVersions "$installRemoteModule_version" 6.0.0) -ge 0; then - # enable sockets support? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - # enable cares support? - addConfigureOption enable-cares yes - # enable brotli support? - addConfigureOption enable-brotli yes - # enable zstd support? - addConfigureOption enable-zstd $installRemoteModule_zstd - # enable PostgreSQL database support? - addConfigureOption enable-swoole-pgsql yes - # enable ODBC database support? - addConfigureOption with-swoole-odbc no - # enable Oracle database support? - addConfigureOption with-swoole-oracle no - # enable Sqlite database support? - addConfigureOption enable-swoole-sqlite $installRemoteModule_sqlite - # enable swoole thread support (need php zts support)? - addConfigureOption enable-swoole-thread $installRemoteModule_zts - # enable iouring for file async support? - addConfigureOption enable-iouring $installRemoteModule_iouring - elif test $(compareVersions "$installRemoteModule_version" 5.1.0) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - # enable cares support? - addConfigureOption enable-cares yes - # enable brotli support? - addConfigureOption enable-brotli yes - # enable PostgreSQL database support? - addConfigureOption enable-swoole-pgsql yes - # enable ODBC database support? - addConfigureOption with-swoole-odbc no - # enable Oracle database support? - addConfigureOption with-swoole-oracle no - # enable Sqlite database support? - addConfigureOption enable-swoole-sqlite $installRemoteModule_sqlite - elif test $(compareVersions "$installRemoteModule_version" 5.0.1) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - # enable cares support? - addConfigureOption enable-cares yes - # enable brotli support? - addConfigureOption enable-brotli yes - elif test $(compareVersions "$installRemoteModule_version" 5.0.0) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - # enable cares support? - addConfigureOption enable-cares yes - elif test $(compareVersions "$installRemoteModule_version" 4.8.11) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable json support? - addConfigureOption enable-swoole-json yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - # enable cares support? - addConfigureOption enable-cares yes - elif test $(compareVersions "$installRemoteModule_version" 4.6.1) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable json support? - addConfigureOption enable-swoole-json yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - elif test $(compareVersions "$installRemoteModule_version" 4.4.0) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - elif test $(compareVersions "$installRemoteModule_version" 4.2.11) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable postgresql coroutine client support? - addConfigureOption enable-coroutine-postgresql yes - elif test $(compareVersions "$installRemoteModule_version" 4.2.7) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable postgresql coroutine client support? - addConfigureOption enable-coroutine-postgresql yes - # enable kernel debug/trace log? (it will degrade performance) - addConfigureOption enable-debug-log no - elif test $(compareVersions "$installRemoteModule_version" 4.2.6) -ge 0; then - # enable debug/trace log support? - addConfigureOption enable-debug-log no - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable postgresql coroutine client support? - addConfigureOption enable-coroutine-postgresql yes - elif test $(compareVersions "$installRemoteModule_version" 4.2.0) -ge 0; then - # enable debug/trace log support? - addConfigureOption enable-debug-log no - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable async-redis support? - addConfigureOption enable-async-redis yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable postgresql coroutine client support? - addConfigureOption enable-coroutine-postgresql yes - elif test $(compareVersions "$installRemoteModule_version" 2.1.2) -ge 0; then - # enable debug/trace log support? - addConfigureOption enable-swoole-debug no - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable async-redis support? - addConfigureOption enable-async-redis yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable postgresql coroutine client support? - addConfigureOption enable-coroutine-postgresql yes - elif test $(compareVersions "$installRemoteModule_version" 1.10.4) -ge 0 && test $(compareVersions "$installRemoteModule_version" 1.10.5) -le 0; then - # enable debug/trace log support? - addConfigureOption enable-swoole-debug no - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable async-redis support? - addConfigureOption enable-async-redis yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - fi - ;; - tdlib) - if ! test -f /usr/lib/libphpcpp.so || ! test -f /usr/include/phpcpp.h; then - if test $PHP_MAJMIN_VERSION -le 701; then - cd "$(getPackageSource https://codeload.github.com/CopernicaMarketingSoftware/PHP-CPP/tar.gz/v2.1.4)" - elif test $PHP_MAJMIN_VERSION -le 703; then - cd "$(getPackageSource https://codeload.github.com/CopernicaMarketingSoftware/PHP-CPP/tar.gz/v2.2.0)" - else - cd "$(getPackageSource https://codeload.github.com/CopernicaMarketingSoftware/PHP-CPP/tar.gz/444d1f90cf6b7f3cb5178fa0d0b5ab441b0389d0)" - fi - make -j$(getProcessorCount) - make install - cd - >/dev/null - fi - if test -z "$installRemoteModule_path"; then - installRemoteModule_tmp="$(mktemp -p /tmp/src -d)" - git clone --depth=1 --recurse-submodules https://github.com/yaroslavche/phptdlib.git "$installRemoteModule_tmp" - mkdir "$installRemoteModule_tmp/build" - cd "$installRemoteModule_tmp/build" - cmake -D USE_SHARED_PHPCPP:BOOL=ON .. - make - make install - cd - >/dev/null - rm "$PHP_INI_DIR/conf.d/tdlib.ini" - installRemoteModule_manuallyInstalled=1 - fi - ;; - tensor) - installRemoteModule_cppflags='-Wno-incompatible-pointer-types' - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=2.2.3 - fi - fi - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -ge 315 && test $DISTRO_MAJMIN_VERSION -le 317; then - if test -e /usr/lib/liblapacke.so.3 && ! test -e /usr/lib/liblapacke.so; then - ln -s /usr/lib/liblapacke.so.3 /usr/lib/liblapacke.so - fi - fi - ;; - esac - ;; - tideways) - case "$DISTRO" in - alpine) - case $(uname -m) in - aarch64 | arm64 | armv8) - installRemoteModule_architecture=alpine-arm64 - ;; - *) - installRemoteModule_architecture=alpine-x86_64 - ;; - esac - ;; - debian) - case $(uname -m) in - aarch64 | arm64 | armv8) - installRemoteModule_architecture=arm64 - ;; - *) - installRemoteModule_architecture=x86_64 - ;; - esac - ;; - esac - installRemoteModule_url="$(curl -sSLf -o - https://tideways.com/profiler/downloads | grep -Eo "\"[^\"]+/tideways-php-([0-9]+\.[0-9]+\.[0-9]+)-$installRemoteModule_architecture.tar.gz\"" | cut -d'"' -f2)" - if test -z "$installRemoteModule_url"; then - echo 'Failed to find the tideways tarball to be downloaded' - exit 1 - fi - printf 'Downloading tideways from %s\n' "$installRemoteModule_url" - installRemoteModule_src="$(getPackageSource $installRemoteModule_url)" - if test -d "$installRemoteModule_src/dist"; then - installRemoteModule_src="$installRemoteModule_src/dist" - fi - installRemoteModule_src="$installRemoteModule_src/tideways-php" - case "$DISTRO" in - alpine) - installRemoteModule_src="$installRemoteModule_src-alpine" - ;; - esac - installRemoteModule_src="$installRemoteModule_src-$PHP_MAJDOTMIN_VERSION" - if test $PHP_THREADSAFE -eq 1; then - installRemoteModule_src="$installRemoteModule_src-zts" - fi - installRemoteModule_src="$installRemoteModule_src.so" - if ! test -f "$installRemoteModule_src"; then - echo 'tideways does not support the current environment' >&2 - exit 1 - fi - mv "$installRemoteModule_src" $(getPHPExtensionsDir)/tideways.so - installRemoteModule_manuallyInstalled=1 - ;; - uopz) - installRemoteModule_cppflags='-Wno-incompatible-pointer-types' - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.0.7 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=5.0.2 - elif test $PHP_MAJMIN_VERSION -le 740; then - installRemoteModule_version=6.1.2 - fi - fi - ;; - uploadprogress) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=1.1.4 - fi - fi - ;; - uuid) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.0.5 - fi - fi - ;; - uv) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 800; then - installRemoteModule_version=0.2.4 - else - installRemoteModule_version=beta - fi - fi - ;; - vld) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=0.14.0 - else - installRemoteModule_version=beta - fi - fi - ;; - wikidiff2) - case "$DISTRO" in - alpine) - if ! isLibDatrieInstalled; then - installLibDatrie - fi - if ! isLibThaiInstalled; then - installLibThai - fi - ;; - esac - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 702; then - installRemoteModule_version=1.13.0 - else - installRemoteModule_version="$(git -c versionsort.suffix=- ls-remote --tags --refs --quiet --exit-code --sort=version:refname https://github.com/wikimedia/mediawiki-php-wikidiff2.git 'refs/tags/*.*.*' | tail -1 | cut -d/ -f3)" - fi - fi - installRemoteModule_src="$(getPackageSource "https://codeload.github.com/wikimedia/mediawiki-php-wikidiff2/tar.gz/refs/tags/$installRemoteModule_version")" - cd -- "$installRemoteModule_src" - phpize - ./configure - make -j$(getProcessorCount) - make install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - ;; - xdebug) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 500; then - installRemoteModule_version=2.0.5 - elif test $PHP_MAJMIN_VERSION -le 503; then - installRemoteModule_version=2.2.7 - elif test $PHP_MAJMIN_VERSION -le 504; then - installRemoteModule_version=2.4.1 - elif test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.5.5 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=2.6.1 - elif test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=2.9.8 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=3.1.6 - fi - fi - ;; - xdiff) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.5.2 - fi - fi - if ! test -f /usr/local/lib/libxdiff.* && ! test -f /usr/lib/libxdiff.* && ! test -f /usr/lib/x86_64*/libxdiff.*; then - installRemoteModule_src="$(getPackageSource https://raw.githubusercontent.com/mlocati/docker-php-extension-installer/assets/resources/libxdiff-0.23.tar.gz)" - cd -- "$installRemoteModule_src" - ./configure --disable-shared --disable-dependency-tracking --with-pic - make -j$(getProcessorCount) - make install - cd - >/dev/null - fi - ;; - xhprof) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.9.4 - fi - fi - ;; - xlswriter) - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 1.2.7) -ge 0; then - # enable reader supports? - addConfigureOption enable-reader yes - fi - ;; - xmldiff) - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version"; then - case "$DISTRO_VERSION" in - debian@8) - # The gcc version of Debian Jessie is too old => error: 'nullptr' was not declared in this scope - installRemoteModule_version=1.1.4 - ;; - esac - fi - ;; - xmlrpc) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=beta - fi - ;; - yac) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.9.2 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 2.2.0) -ge 0; then - # Enable igbinary serializer support - if php --ri igbinary >/dev/null 2>/dev/null; then - addConfigureOption enable-igbinary yes - else - addConfigureOption enable-igbinary no - fi - # Enable json serializer support - if php --ri json >/dev/null 2>/dev/null; then - addConfigureOption enable-json yes - else - addConfigureOption enable-json no - fi - # Enable msgpack serializer support - if php --ri msgpack >/dev/null 2>/dev/null; then - addConfigureOption enable-msgpack yes - else - addConfigureOption enable-msgpack no - fi - fi - ;; - yaml) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.3.1 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=2.0.4 - fi - fi - ;; - yar) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.2.5 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 1.2.4) -ge 0; then - # Enable Msgpack Supports - if php --ri msgpack >/dev/null 2>/dev/null; then - addConfigureOption enable-msgpack yes - else - addConfigureOption enable-msgpack no - fi - fi - ;; - zmq) - if test -z "$installRemoteModule_version"; then - installRemoteModule_src="$(getPackageSource https://github.com/zeromq/php-zmq/tarball/master)" - cd "$installRemoteModule_src" - phpize - ./configure - make -j$(getProcessorCount) - make install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - fi - ;; - zookeeper) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.5.0 - fi - fi - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - case "$DISTRO" in - alpine) - if ! test -f /usr/local/include/zookeeper/zookeeper.h; then - if test $(compareVersions "$installRemoteModule_version" 1.0.0) -lt 0; then - installRemoteModule_src="$(getPackageSource http://archive.apache.org/dist/zookeeper/zookeeper-3.5.9/apache-zookeeper-3.5.9.tar.gz)" - else - installRemoteModule_tmp="$(curl -sSLf https://downloads.apache.org/zookeeper/stable | sed -E 's/["<>]/\n/g' | grep -E '^(apache-)?zookeeper-[0-9]+\.[0-9]+\.[0-9]+\.(tar\.gz|tgz)$' | head -n1)" - if test -z "$installRemoteModule_tmp"; then - echo 'Failed to detect the zookeeper library URL' >&2 - exit 1 - fi - installRemoteModule_src="$(getPackageSource https://downloads.apache.org/zookeeper/stable/$installRemoteModule_tmp)" - fi - cd -- "$installRemoteModule_src" - if test -d ~/.m2; then - installRemoteModule_delm2=n - else - installRemoteModule_delm2=y - fi - mvn -pl zookeeper-jute compile - cd - >/dev/null - cd -- "$installRemoteModule_src/zookeeper-client/zookeeper-client-c" - autoreconf -if - ./configure --without-cppunit - make -j$(getProcessorCount) CFLAGS='-Wno-stringop-truncation -Wno-format-overflow' - make install - cd - >/dev/null - if test $installRemoteModule_delm2 = y; then - rm -rf ~/.m2 - fi - fi - ;; - esac - ;; - zstd) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.11.0 - fi - fi - ;; - esac - if test $installRemoteModule_manuallyInstalled -eq 0; then - if test -n "$installRemoteModule_path"; then - printf ' (installing version %s from %s)\n' "$installRemoteModule_version" "$installRemoteModule_path" - elif test -n "$installRemoteModule_version"; then - printf ' (installing version %s)\n' "$installRemoteModule_version" - fi - installPeclPackage "$installRemoteModule_module" "$installRemoteModule_version" "$installRemoteModule_cppflags" "$installRemoteModule_path" - fi - postProcessModule "$installRemoteModule_module" - if test $installRemoteModule_manuallyInstalled -lt 2; then - case "${IPE_SKIP_CHECK:-}" in - 1 | y* | Y*) ;; - *) - checkModuleWorking "$installRemoteModule_module" "$installRemoteModule_ini_basename" "$installRemoteModule_ini_extra" - ;; - esac - enablePhpExtension "$installRemoteModule_module" "$installRemoteModule_ini_basename" "$installRemoteModule_ini_extra" - fi -} - -# Check if a module/helper may be installed using the pecl archive -# -# Arguments: -# $1: the name of the module -# -# Return: -# 0: true -# 1: false -moduleMayUsePecl() { - case "$1" in - @composer | @fix_letsencrypt) - return 1 - ;; - blackfire | geos | ioncube_loader | snuffleupagus | sourceguardian | spx | tdlib | tideways) - return 1 - ;; - esac - if test -n "$(getModuleSourceCodePath "$1")"; then - return 1 - fi - if stringInList "$1" "$BUNDLED_MODULES"; then - return 1 - fi - return 0 -} - -# Configure the PECL package installer -# -# Updates: -# PHP_MODULES_TO_INSTALL -# Sets: -# USE_PICKLE 0: no, 1: yes (already downloaded), 2: yes (build it from source) -configureInstaller() { - USE_PICKLE=0 - if ! which pecl >/dev/null; then - for PHP_MODULE_TO_INSTALL in $PHP_MODULES_TO_INSTALL; do - if ! moduleMayUsePecl "$PHP_MODULE_TO_INSTALL"; then - continue - fi - if false && anyStringInList '' "$PHP_MODULES_TO_INSTALL"; then - USE_PICKLE=2 - else - curl -sSLf https://github.com/FriendsOfPHP/pickle/releases/latest/download/pickle.phar -o /tmp/pickle - chmod +x /tmp/pickle - USE_PICKLE=1 - fi - break - done - fi - if test $USE_PICKLE -eq 0; then - if test -z "$(pear config-get http_proxy)"; then - if test -n "${http_proxy:-}"; then - pear config-set http_proxy "$http_proxy" || true - elif test -n "${HTTP_PROXY:-}"; then - pear config-set http_proxy "$HTTP_PROXY" || true - fi - fi - pecl channel-update pecl.php.net || true - fi -} - -buildPickle() { - printf '### BUILDING PICKLE ###\n' - buildPickle_tempDir="$(mktemp -p /tmp/src -d)" - cd -- "$buildPickle_tempDir" - printf 'Downloading... ' - git clone --quiet --depth 1 https://github.com/FriendsOfPHP/pickle.git . - git tag 0.7.0 - printf 'done.\n' - printf 'Installing composer... ' - actuallyInstallComposer . composer '--1 --quiet' - printf 'done.\n' - printf 'Installing composer dependencies... ' - ./composer install --no-dev --no-progress --no-suggest --optimize-autoloader --ignore-platform-reqs --quiet --no-cache - printf 'done.\n' - printf 'Building... ' - php -d phar.readonly=0 box.phar build - mv pickle.phar /tmp/pickle - printf 'done.\n' - cd - >/dev/null -} - -# Add a configure option for the pecl/pickle install command -# -# Arguments: -# $1: the option name -# $2: the option value -addConfigureOption() { - if test $USE_PICKLE -eq 0; then - printf -- '%s\n' "$2" >>"$CONFIGURE_FILE" - else - printf -- '--%s=%s\n' "$1" "$2" >>"$CONFIGURE_FILE" - fi -} - -# Actually installs a PECL package -# -# Arguments: -# $1: the package to be installed -# $2: the package version to be installed (optional) -# $3: the value of the CPPFLAGS variable (optional) -# $4: the path of the local package to be installed (optional, downloaded from PECL if omitted/empty) -installPeclPackage() { - if ! test -f "$CONFIGURE_FILE"; then - printf '\n' >"$CONFIGURE_FILE" - fi - installPeclPackage_name="$(getPeclModuleName "$1")" - if test -z "${2:-}"; then - installPeclPackage_fullname="$installPeclPackage_name" - else - installPeclPackage_fullname="$installPeclPackage_name-$2" - fi - installPeclPackage_path="${4:-}" - if test -z "$installPeclPackage_path"; then - installPeclPackage_path="$installPeclPackage_fullname" - fi - if test $USE_PICKLE -eq 0; then - if test -n "${4:-}"; then - if test -f "$installPeclPackage_path/package2.xml"; then - installPeclPackage_path="$installPeclPackage_path/package2.xml" - else - installPeclPackage_path="$installPeclPackage_path/package.xml" - fi - fi - cat "$CONFIGURE_FILE" | MAKE="make -j$(getCompilationProcessorCount $1)" CPPFLAGS="${3:-}" pecl install "$installPeclPackage_path" - else - MAKEFLAGS="-j$(getCompilationProcessorCount $1)" CPPFLAGS="${3:-}" /tmp/pickle install --tmp-dir=/tmp/pickle.tmp --no-interaction --version-override='' --with-configure-options "$CONFIGURE_FILE" -- "$installPeclPackage_path" - fi -} - -# Check if a string is in a list of space-separated string -# -# Arguments: -# $1: the string to be checked -# $2: the string list -# -# Return: -# 0 (true): if the string is in the list -# 1 (false): if the string is not in the list -stringInList() { - for stringInList_listItem in $2; do - if test "$1" = "$stringInList_listItem"; then - return 0 - fi - done - return 1 -} - -# Check if at least one item in a list is in another list -# -# Arguments: -# $1: the space-separated list of items to be searched -# $2: the space-separated list of reference items -# -# Return: -# 0 (true): at least one of the items in $1 is in $2 -# 1 (false): otherwise -anyStringInList() { - for anyStringInList_item in $1; do - if stringInList "$anyStringInList_item" "$2"; then - return 0 - fi - done - return 1 -} - -# Remove a word from a space-separated list -# -# Arguments: -# $1: the word to be removed -# $2: the string list -# -# Output: -# The list without the word -removeStringFromList() { - removeStringFromList_result='' - for removeStringFromList_listItem in $2; do - if test "$1" != "$removeStringFromList_listItem"; then - if test -z "$removeStringFromList_result"; then - removeStringFromList_result="$removeStringFromList_listItem" - else - removeStringFromList_result="$removeStringFromList_result $removeStringFromList_listItem" - fi - fi - done - printf '%s' "$removeStringFromList_result" -} - -# Invoke apt-get update -invokeAptGetUpdate() { - if test -n "${IPE_APTGETUPDATE_ALREADY:-}"; then - apt-get update -q - return - fi - IPE_APTGETUPDATE_ALREADY=y - if grep -q 'VERSION="8 (jessie)"' /etc/os-release; then - invokeAptGetUpdate_fixdistro=jessie - elif grep -q 'VERSION="9 (stretch)"' /etc/os-release; then - invokeAptGetUpdate_fixdistro=stretch - else - invokeAptGetUpdate - return - fi - # See https://www.debian.org/distrib/archive.en.html for a list of mirrors - if test -z "${IPE_DEB_ARCHIVE:-}"; then - IPE_DEB_ARCHIVE=http://archive.kernel.org/debian-archive - fi - if test -z "${IPE_DEB_ARCHIVE_SECURITY:-}"; then - IPE_DEB_ARCHIVE_SECURITY=http://archive.kernel.org/debian-archive/debian-security - fi - sed -ri "s;^(\s*deb\s+http://(httpredir|deb).debian.org/debian\s+$invokeAptGetUpdate_fixdistro-updates\b.*);#\1;" /etc/apt/sources.list - sed -ri "s;^(\s*deb\s+)http://(httpredir|deb).debian.org;\1$IPE_DEB_ARCHIVE;" /etc/apt/sources.list - sed -ri "s;^(\s*deb\s+)http://security.debian.org/debian-security;\1$IPE_DEB_ARCHIVE_SECURITY;" /etc/apt/sources.list - sed -ri "s;^(\s*deb\s+)http://security.debian.org;\1$IPE_DEB_ARCHIVE_SECURITY;" /etc/apt/sources.list - invokeAptGetUpdate_tmp="$(mktemp)" - apt-get update -q 2>"$invokeAptGetUpdate_tmp" - if test -s "$invokeAptGetUpdate_tmp"; then - cat "$invokeAptGetUpdate_tmp" >&2 - if grep -qE ' KEYEXPIRED [0-9]' "$invokeAptGetUpdate_tmp"; then - echo '############' >&2 - echo '# WARNING! #' >&2 - echo '############' >&2 - echo 'apt packages will be installed without checking authenticity!' >&2 - printf 'APT::Get::AllowUnauthenticated "true";\n' >>/etc/apt/apt.conf.d/99unauthenticated - fi - fi - rm "$invokeAptGetUpdate_tmp" -} - -# Fix the Let's Encrypt CA certificates on old distros -fixLetsEncrypt() { - printf '### FIXING LETS ENCRYPT CA CERTIFICATES ###\n' - case "$DISTRO_VERSION" in - alpine@3.7 | alpine@3.8) - printf -- '- old Alpine Linux detected: we should fix the certificates\n' - ;; - debian@8 | debian@9) - printf -- '- old Debian detected: we should fix the certificates\n' - if ! grep -q 'mozilla/ISRG_Root_X1.crt' /etc/ca-certificates.conf && grep -q 'mozilla/DST_Root_CA_X3.crt' /etc/ca-certificates.conf; then - printf -- '- old ca-certificates package detected\n' - fixCACerts_mustUpdate=1 - if test -d /var/lib/apt/lists; then - for fixCACerts_item in $(ls -1 /var/lib/apt/lists); do - case "$fixCACerts_item" in - partial | lock) ;; - *) - fixCACerts_mustUpdate=0 - break - ;; - esac - done - fi - if test $fixCACerts_mustUpdate -eq 1; then - printf -- '- refreshing the APT package list\n' - invokeAptGetUpdate - fi - printf -- '- installing newer ca-certificates package\n' - apt-get install -qqy --no-install-recommends ca-certificates - fi - ;; - *) - printf -- '- patch not required in this distro version\n' - return - ;; - esac - if grep -Eq '^mozilla/ISRG_Root_X1\.crt$' /etc/ca-certificates.conf && grep -Eq '^mozilla/DST_Root_CA_X3\.crt$' /etc/ca-certificates.conf; then - printf -- '- disabling the DST_Root_CA_X3 certificate\n' - sed -i '/^mozilla\/DST_Root_CA_X3/s/^/!/' /etc/ca-certificates.conf - printf -- '- refreshing the certificates\n' - update-ca-certificates -f - else - printf -- '- DST_Root_CA_X3 certificate not found or already disabled\n' - fi -} - -# Cleanup everything at the end of the execution -cleanup() { - if test "${IPE_UNINSTALL_CARGO:-}" = y; then - if test -f "$HOME/.cargo/env"; then - . "$HOME/.cargo/env" - fi - if command -v rustup >/dev/null; then - rustup self uninstall -y - fi - fi - if test -n "$UNNEEDED_PACKAGE_LINKS"; then - printf '### REMOVING UNNEEDED PACKAGE LINKS ###\n' - for cleanup_link in $UNNEEDED_PACKAGE_LINKS; do - if test -L "$cleanup_link"; then - rm -f "$cleanup_link" - fi - done - fi - case "$DISTRO" in - alpine) - if stringInList icu-libs "${PACKAGES_PERSISTENT_NEW:-}" && stringInList icu-data-en "${PACKAGES_PERSISTENT_NEW:-}"; then - apk del icu-data-en >/dev/null 2>&1 || true - fi - if test -n "$PACKAGES_VOLATILE"; then - printf '### REMOVING UNNEEDED PACKAGES ###\n' - apk del --purge $PACKAGES_VOLATILE - fi - ;; - debian) - if test -n "$PACKAGES_VOLATILE"; then - printf '### REMOVING UNNEEDED PACKAGES ###\n' - apt-get remove --purge -y $PACKAGES_VOLATILE - fi - if test -n "$PACKAGES_PREVIOUS"; then - printf '### RESTORING PREVIOUSLY INSTALLED PACKAGES ###\n' - apt-get install -qqy --no-install-recommends --no-upgrade $PACKAGES_PREVIOUS - fi - ;; - esac - docker-php-source delete - rm -rf /tmp/src - rm -rf /tmp/pickle - rm -rf /tmp/pickle.tmp - rm -rf "$CONFIGURE_FILE" - case "${IPE_KEEP_SYSPKG_CACHE:-}" in - 1 | y* | Y*) ;; - *) - case "$DISTRO" in - alpine) - rm -rf /var/cache/apk/* - ;; - debian) - rm -rf /var/lib/apt/lists/* - ;; - esac - rm -rf /tmp/pear - ;; - esac -} - -DEBIAN_FRONTEND=noninteractive -export DEBIAN_FRONTEND -resetIFS -mkdir -p /tmp/src -mkdir -p /tmp/pickle.tmp -IPE_ERRFLAG_FILE="$(mktemp -p /tmp/src)" -CONFIGURE_FILE=/tmp/configure-options -IPE_APK_FLAGS='' -setDistro -case "$DISTRO_VERSION" in - debian@8) - fixMaxOpenFiles || true - ;; -esac -setPHPVersionVariables -setPHPPreinstalledModules -case "$PHP_MAJMIN_VERSION" in - 505 | 506 | 700 | 701 | 702 | 703 | 704 | 800 | 801 | 802 | 803 | 804) ;; - *) - printf "### ERROR: Unsupported PHP version: %s.%s ###\n" $((PHP_MAJMIN_VERSION / 100)) $((PHP_MAJMIN_VERSION % 100)) - ;; -esac -UNNEEDED_PACKAGE_LINKS='' -processCommandArguments "$@" - -if test -z "$PHP_MODULES_TO_INSTALL"; then - exit 0 -fi - -if stringInList @fix_letsencrypt "$PHP_MODULES_TO_INSTALL"; then - # This must be the very first thing we do - fixLetsEncrypt -fi - -sortModulesToInstall - -docker-php-source extract -BUNDLED_MODULES="$(find /usr/src/php/ext -mindepth 2 -maxdepth 2 -type f -name 'config.m4' | xargs -n1 dirname | xargs -n1 basename | xargs)" -configureInstaller - -buildRequiredPackageLists $PHP_MODULES_TO_INSTALL -if test -n "$PACKAGES_PERSISTENT_PRE"; then - markPreinstalledPackagesAsUsed -fi -if test -n "$PACKAGES_PERSISTENT_NEW$PACKAGES_VOLATILE"; then - installRequiredPackages -fi -if test "$PHP_MODULES_TO_INSTALL" != '@composer'; then - setTargetTriplet -fi -if test $USE_PICKLE -gt 1; then - buildPickle -fi - -compileLibs - -for PHP_MODULE_TO_INSTALL in $PHP_MODULES_TO_INSTALL; do - case "$PHP_MODULE_TO_INSTALL" in - @fix_letsencrypt) - # Already done: it must be the first thing we do - ;; - @composer) - installComposer - ;; - *) - if stringInList "$PHP_MODULE_TO_INSTALL" "$BUNDLED_MODULES"; then - installBundledModule "$PHP_MODULE_TO_INSTALL" - else - installRemoteModule "$PHP_MODULE_TO_INSTALL" - fi - ;; - esac -done -cleanup diff --git a/php7/7.3.33/build/php/extensions/install.sh b/php7/7.3.33/build/php/extensions/install.sh deleted file mode 100644 index c663a07ca..000000000 --- a/php7/7.3.33/build/php/extensions/install.sh +++ /dev/null @@ -1,761 +0,0 @@ -#!/bin/sh - -export MC="-j$(nproc)" - -echo -echo "============================================" -echo "Install extensions from : install.sh" -echo "PHP version : ${PHP_VERSION}" -echo "Extra Extensions : ${PHP_EXTENSIONS}" -echo "Multicore Compilation : ${MC}" -echo "Container package url : ${CONTAINER_PACKAGE_URL}" -echo "Work directory : ${PWD}" -echo "============================================" -echo - - -if [ "${PHP_EXTENSIONS}" != "" ]; then - apk --update add --no-cache --virtual .build-deps autoconf g++ libtool make curl-dev gettext-dev linux-headers git -fi - - -export EXTENSIONS=",${PHP_EXTENSIONS}," - - -# -# Check if current php version is greater than or equal to -# specific version. -# -# For example, to check if current php is greater than or -# equal to PHP 7.0: -# -# isPhpVersionGreaterOrEqual 7 0 -# -# Param 1: Specific PHP Major version -# Param 2: Specific PHP Minor version -# Return : 1 if greater than or equal to, 0 if less than -# -isPhpVersionGreaterOrEqual() - { - local PHP_MAJOR_VERSION=$(php -r "echo PHP_MAJOR_VERSION;") - local PHP_MINOR_VERSION=$(php -r "echo PHP_MINOR_VERSION;") - - if [[ "$PHP_MAJOR_VERSION" -gt "$1" || "$PHP_MAJOR_VERSION" -eq "$1" && "$PHP_MINOR_VERSION" -ge "$2" ]]; then - return 1; - else - return 0; - fi -} - - -# -# Install extension from package file(.tgz), -# For example: -# -# installExtensionFromTgz redis-5.2.2 -# -# Param 1: Package name with version -# Param 2: enable options -# -installExtensionFromTgz() -{ - tgzName=$1 - result="" - extensionName="${tgzName%%-*}" - shift 1 - result=$@ - mkdir ${extensionName} - tar -xf ${tgzName}.tgz -C ${extensionName} --strip-components=1 - ( cd ${extensionName} && phpize && ./configure ${result} && make ${MC} && make install ) - - docker-php-ext-enable ${extensionName} -} - - -# install use install-php-extensions -if [[ -z "${EXTENSIONS##*,ioncube_loader,*}" ]]; then - echo "---------- Install ioncube_loader ----------" - install-php-extensions ioncube_loader -fi - -if [[ -z "${EXTENSIONS##*,imagick,*}" ]]; then - echo "---------- Install imagick ----------" - install-php-extensions imagick -fi - -if [[ -z "${EXTENSIONS##*,sourceguardian,*}" ]]; then - echo "---------- Install sourceguardian ----------" - apk add eudev-libs - install-php-extensions sourceguardian -fi - -if [[ -z "${EXTENSIONS##*,ssh2,*}" ]]; then - echo "---------- Install ssh2 ----------" - install-php-extensions ssh2 -fi - -if [[ -z "${EXTENSIONS##*,maxminddb,*}" ]]; then - echo "---------- Install maxminddb ----------" - install-php-extensions maxminddb -fi - -if [[ -z "${EXTENSIONS##*,zstd,*}" ]]; then - echo "---------- Install zstd ----------" - install-php-extensions zstd -fi - -if [[ -z "${EXTENSIONS##*,grpc,*}" ]]; then - echo "---------- Install grpc ----------" - install-php-extensions grpc - docker-php-ext-enable grpc -fi - -if [[ -z "${EXTENSIONS##*,ftp,*}" ]]; then - echo "---------- Install ftp ----------" - install-php-extensions ftp -fi - -if [[ -z "${EXTENSIONS##*,snuffleupagus,*}" ]]; then - echo "---------- Install snuffleupagus ----------" - install-php-extensions snuffleupagus -fi - -if [[ -z "${EXTENSIONS##*,pdo_oci,*}" ]]; then - echo "---------- Install pdo_oci ----------" - install-php-extensions pdo_oci -fi - -if [[ -z "${EXTENSIONS##*,oci8,*}" ]]; then - echo "---------- Install oci8 ----------" - install-php-extensions oci8 -fi -# end - - -if [[ -z "${EXTENSIONS##*,pdo_mysql,*}" ]]; then - echo "---------- Install pdo_mysql ----------" - docker-php-ext-install ${MC} pdo_mysql -fi - -if [[ -z "${EXTENSIONS##*,pcntl,*}" ]]; then - echo "---------- Install pcntl ----------" - docker-php-ext-install ${MC} pcntl -fi - -if [[ -z "${EXTENSIONS##*,mysqli,*}" ]]; then - echo "---------- Install mysqli ----------" - docker-php-ext-install ${MC} mysqli -fi - -if [[ -z "${EXTENSIONS##*,mbstring,*}" ]]; then - echo "---------- mbstring is installed ----------" -fi - -if [[ -z "${EXTENSIONS##*,exif,*}" ]]; then - echo "---------- Install exif ----------" - docker-php-ext-install ${MC} exif -fi - -if [[ -z "${EXTENSIONS##*,bcmath,*}" ]]; then - echo "---------- Install bcmath ----------" - docker-php-ext-install ${MC} bcmath -fi - -if [[ -z "${EXTENSIONS##*,calendar,*}" ]]; then - echo "---------- Install calendar ----------" - docker-php-ext-install ${MC} calendar -fi - -if [[ -z "${EXTENSIONS##*,zend_test,*}" ]]; then - echo "---------- Install zend_test ----------" - docker-php-ext-install ${MC} zend_test -fi - -if [[ -z "${EXTENSIONS##*,opcache,*}" ]]; then - echo "---------- Install opcache ----------" - docker-php-ext-install opcache -fi - -if [[ -z "${EXTENSIONS##*,sockets,*}" ]]; then - echo "---------- Install sockets ----------" - docker-php-ext-install ${MC} sockets -fi - -if [[ -z "${EXTENSIONS##*,gettext,*}" ]]; then - echo "---------- Install gettext ----------" - apk --no-cache add gettext-dev - docker-php-ext-install ${MC} gettext - -fi - -if [[ -z "${EXTENSIONS##*,shmop,*}" ]]; then - echo "---------- Install shmop ----------" - docker-php-ext-install ${MC} shmop -fi - -if [[ -z "${EXTENSIONS##*,sysvmsg,*}" ]]; then - echo "---------- Install sysvmsg ----------" - docker-php-ext-install ${MC} sysvmsg -fi - -if [[ -z "${EXTENSIONS##*,sysvsem,*}" ]]; then - echo "---------- Install sysvsem ----------" - docker-php-ext-install ${MC} sysvsem -fi - -if [[ -z "${EXTENSIONS##*,sysvshm,*}" ]]; then - echo "---------- Install sysvshm ----------" - docker-php-ext-install ${MC} sysvshm -fi - -if [[ -z "${EXTENSIONS##*,pdo_firebird,*}" ]]; then - echo "---------- Install pdo_firebird ----------" - docker-php-ext-install ${MC} pdo_firebird -fi - -if [[ -z "${EXTENSIONS##*,pdo_dblib,*}" ]]; then - echo "---------- Install pdo_dblib ----------" - docker-php-ext-install ${MC} pdo_dblib -fi - -if [[ -z "${EXTENSIONS##*,pdo_odbc,*}" ]]; then - echo "---------- Install pdo_odbc ----------" - docker-php-ext-install ${MC} pdo_odbc -fi - -if [[ -z "${EXTENSIONS##*,pdo_pgsql,*}" ]]; then - echo "---------- Install pdo_pgsql ----------" - apk --no-cache add postgresql-dev \ - && docker-php-ext-install ${MC} pdo_pgsql -fi - -if [[ -z "${EXTENSIONS##*,pgsql,*}" ]]; then - echo "---------- Install pgsql ----------" - apk --no-cache add postgresql-dev \ - && docker-php-ext-install ${MC} pgsql -fi - -if [[ -z "${EXTENSIONS##*,odbc,*}" ]]; then - echo "---------- Install odbc ----------" - docker-php-ext-install ${MC} odbc -fi - -if [[ -z "${EXTENSIONS##*,dba,*}" ]]; then - echo "---------- Install dba ----------" - docker-php-ext-install ${MC} dba -fi - -if [[ -z "${EXTENSIONS##*,interbase,*}" ]]; then - echo "---------- Install interbase ----------" - echo "Alpine linux do not support interbase/firebird!!!" - #docker-php-ext-install ${MC} interbase -fi - -if [[ -z "${EXTENSIONS##*,hprose,*}" ]]; then - echo "---------- Install hprose ----------" - printf "\n" | pecl install hprose - docker-php-ext-enable hprose -fi - -if [[ -z "${EXTENSIONS##*,gd,*}" ]]; then - echo "---------- Install gd ----------" - isPhpVersionGreaterOrEqual 7 4 - - if [[ "$?" = "1" ]]; then - # "--with-xxx-dir" was removed from php 7.4, - # issue: https://github.com/docker-library/php/issues/912 - options="--with-freetype --with-jpeg --with-webp" - else - options="--with-gd --with-freetype-dir=/usr/include/ --with-png-dir=/usr/include/ --with-jpeg-dir=/usr/include/ --with-webp-dir=/usr/include/" - fi - - apk add --no-cache \ - freetype \ - freetype-dev \ - libpng \ - libpng-dev \ - libjpeg-turbo \ - libjpeg-turbo-dev \ - libwebp-dev \ - && docker-php-ext-configure gd ${options} \ - && docker-php-ext-install ${MC} gd \ - && apk del \ - freetype-dev \ - libpng-dev \ - libjpeg-turbo-dev -fi - -if [[ -z "${EXTENSIONS##*,yaml,*}" ]]; then - echo "---------- Install yaml ----------" - apk add --no-cache yaml-dev - printf "\n" | pecl install yaml - docker-php-ext-enable yaml -fi - -if [[ -z "${EXTENSIONS##*,intl,*}" ]]; then - echo "---------- Install intl ----------" - apk add --no-cache icu-dev - docker-php-ext-install ${MC} intl -fi - -if [[ -z "${EXTENSIONS##*,bz2,*}" ]]; then - echo "---------- Install bz2 ----------" - apk add --no-cache bzip2-dev - docker-php-ext-install ${MC} bz2 -fi - -if [[ -z "${EXTENSIONS##*,soap,*}" ]]; then - echo "---------- Install soap ----------" - apk add --no-cache libxml2-dev - docker-php-ext-install ${MC} soap -fi - -if [[ -z "${EXTENSIONS##*,xsl,*}" ]]; then - echo "---------- Install xsl ----------" - apk add --no-cache libxml2-dev libxslt-dev - docker-php-ext-install ${MC} xsl -fi - -if [[ -z "${EXTENSIONS##*,xmlrpc,*}" ]]; then - echo "---------- Install xmlrpc ----------" - apk add --no-cache libxml2-dev libxslt-dev - docker-php-ext-install ${MC} xmlrpc -fi - -if [[ -z "${EXTENSIONS##*,wddx,*}" ]]; then - echo "---------- Install wddx ----------" - apk add --no-cache libxml2-dev libxslt-dev - docker-php-ext-install ${MC} wddx -fi - -if [[ -z "${EXTENSIONS##*,curl,*}" ]]; then - echo "---------- curl is installed ----------" -fi - -if [[ -z "${EXTENSIONS##*,readline,*}" ]]; then - echo "---------- Install readline ----------" - apk add --no-cache readline-dev - apk add --no-cache libedit-dev - docker-php-ext-install ${MC} readline -fi - -if [[ -z "${EXTENSIONS##*,snmp,*}" ]]; then - echo "---------- Install snmp ----------" - apk add --no-cache net-snmp-dev - docker-php-ext-install ${MC} snmp -fi - -if [[ -z "${EXTENSIONS##*,pspell,*}" ]]; then - echo "---------- Install pspell ----------" - apk add --no-cache aspell-dev - apk add --no-cache aspell-en - docker-php-ext-install ${MC} pspell -fi - -if [[ -z "${EXTENSIONS##*,recode,*}" ]]; then - echo "---------- Install recode ----------" - apk add --no-cache recode-dev - docker-php-ext-install ${MC} recode -fi - -if [[ -z "${EXTENSIONS##*,tidy,*}" ]]; then - echo "---------- Install tidy ----------" - apk add --no-cache tidyhtml-dev - - # Fix: https://github.com/htacg/tidy-html5/issues/235 - ln -s /usr/include/tidybuffio.h /usr/include/buffio.h - - docker-php-ext-install ${MC} tidy -fi - -if [[ -z "${EXTENSIONS##*,gmp,*}" ]]; then - echo "---------- Install gmp ----------" - apk add --no-cache gmp-dev - docker-php-ext-install ${MC} gmp -fi - -if [[ -z "${EXTENSIONS##*,imap,*}" ]]; then - echo "---------- Install imap ----------" - apk add --no-cache imap-dev - docker-php-ext-configure imap --with-imap --with-imap-ssl - docker-php-ext-install ${MC} imap -fi - -if [[ -z "${EXTENSIONS##*,ldap,*}" ]]; then - echo "---------- Install ldap ----------" - apk add --no-cache ldb-dev - apk add --no-cache openldap-dev - docker-php-ext-install ${MC} ldap -fi - -if [[ -z "${EXTENSIONS##*,psr,*}" ]]; then - echo "---------- Install psr ----------" - printf "\n" | pecl install psr - docker-php-ext-enable psr -fi - -if [[ -z "${EXTENSIONS##*,imagick,*}" ]]; then - echo "---------- Install imagick ----------" - apk add --no-cache file-dev - apk add --no-cache imagemagick-dev - printf "\n" | pecl install imagick-3.4.4 - docker-php-ext-enable imagick -fi - -if [[ -z "${EXTENSIONS##*,rar,*}" ]]; then - echo "---------- Install rar ----------" - printf "\n" | pecl install rar - docker-php-ext-enable rar -fi - -if [[ -z "${EXTENSIONS##*,ast,*}" ]]; then - echo "---------- Install ast ----------" - printf "\n" | pecl install ast - docker-php-ext-enable ast -fi - -if [[ -z "${EXTENSIONS##*,msgpack,*}" ]]; then - echo "---------- Install msgpack ----------" - printf "\n" | pecl install msgpack - docker-php-ext-enable msgpack -fi - -if [[ -z "${EXTENSIONS##*,igbinary,*}" ]]; then - echo "---------- Install igbinary ----------" - printf "\n" | pecl install igbinary - docker-php-ext-enable igbinary -fi - - -if [[ -z "${EXTENSIONS##*,protobuf,*}" ]]; then - isPhpVersionGreaterOrEqual 7 0 - if [[ "$?" = "1" ]]; then - echo "---------- Install protobuf ----------" - printf "\n" | pecl install protobuf - docker-php-ext-enable protobuf - else - echo "yar requires PHP >= 7.0.0, installed version is ${PHP_VERSION}" - fi -fi - -if [[ -z "${EXTENSIONS##*,yac,*}" ]]; then - isPhpVersionGreaterOrEqual 7 0 - if [[ "$?" = "1" ]]; then - echo "---------- Install yac ----------" - printf "\n" | pecl install yac-2.0.2 - docker-php-ext-enable yac - else - echo "yar requires PHP >= 7.0.0, installed version is ${PHP_VERSION}" - fi -fi - -if [[ -z "${EXTENSIONS##*,yar,*}" ]]; then - isPhpVersionGreaterOrEqual 7 0 - if [[ "$?" = "1" ]]; then - echo "---------- Install yar ----------" - printf "\n" | pecl install yar - docker-php-ext-enable yar - else - echo "yar requires PHP >= 7.0.0, installed version is ${PHP_VERSION}" - fi - -fi - - - -if [[ -z "${EXTENSIONS##*,yaconf,*}" ]]; then - isPhpVersionGreaterOrEqual 7 0 - if [[ "$?" = "1" ]]; then - echo "---------- Install yaconf ----------" - printf "\n" | pecl install yaconf - docker-php-ext-enable yaconf - else - echo "yar requires PHP >= 7.0.0, installed version is ${PHP_VERSION}" - fi -fi - -if [[ -z "${EXTENSIONS##*,seaslog,*}" ]]; then - echo "---------- Install seaslog ----------" - printf "\n" | pecl install seaslog - docker-php-ext-enable seaslog -fi - -if [[ -z "${EXTENSIONS##*,varnish,*}" ]]; then - echo "---------- Install varnish ----------" - apk add --no-cache varnish-dev - printf "\n" | pecl install varnish - docker-php-ext-enable varnish -fi - -if [[ -z "${EXTENSIONS##*,pdo_sqlsrv,*}" ]]; then - isPhpVersionGreaterOrEqual 7 1 - if [[ "$?" = "1" ]]; then - echo "---------- Install pdo_sqlsrv ----------" - install-php-extensions pdo_sqlsrv - else - echo "pdo_sqlsrv requires PHP >= 7.1.0, installed version is ${PHP_VERSION}" - fi -fi - -if [[ -z "${EXTENSIONS##*,sqlsrv,*}" ]]; then - isPhpVersionGreaterOrEqual 7 1 - if [[ "$?" = "1" ]]; then - echo "---------- Install sqlsrv ----------" - install-php-extensions sqlsrv - else - echo "sqlsrv requires PHP >= 7.1.0, installed version is ${PHP_VERSION}" - fi -fi - -if [[ -z "${EXTENSIONS##*,mcrypt,*}" ]]; then - isPhpVersionGreaterOrEqual 7 0 - if [[ "$?" = "1" ]]; then - echo "---------- Install mcrypt ----------" - apk add --no-cache libmcrypt-dev libmcrypt re2c - printf "\n" |pecl install mcrypt - docker-php-ext-enable mcrypt - else - echo "---------- Install mcrypt ----------" - apk add --no-cache libmcrypt-dev \ - && docker-php-ext-install ${MC} mcrypt - fi -fi - -if [[ -z "${EXTENSIONS##*,mysql,*}" ]]; then - isPhpVersionGreaterOrEqual 7 0 - - if [[ "$?" = "1" ]]; then - echo "---------- mysql was REMOVED from PHP 7.0.0 ----------" - else - echo "---------- Install mysql ----------" - docker-php-ext-install ${MC} mysql - fi -fi - -if [[ -z "${EXTENSIONS##*,sodium,*}" ]]; then - isPhpVersionGreaterOrEqual 7 2 - if [[ "$?" = "1" ]]; then - echo - echo "Sodium is bundled with PHP from PHP 7.2.0" - echo - else - echo "---------- Install sodium ----------" - apk add --no-cache libsodium-dev - docker-php-ext-install ${MC} sodium - fi -fi - -if [[ -z "${EXTENSIONS##*,amqp,*}" ]]; then - echo "---------- Install amqp ----------" - apk add --no-cache rabbitmq-c-dev - installExtensionFromTgz amqp-1.10.2 -fi - -if [[ -z "${EXTENSIONS##*,redis,*}" ]]; then - echo "---------- Install redis ----------" - installExtensionFromTgz redis-5.3.7 -fi - -if [[ -z "${EXTENSIONS##*,apcu,*}" ]]; then - echo "---------- Install apcu ----------" - installExtensionFromTgz apcu-5.1.17 -fi - -if [[ -z "${EXTENSIONS##*,memcached,*}" ]]; then - echo "---------- Install memcached ----------" - apk add --no-cache libmemcached-dev zlib-dev - isPhpVersionGreaterOrEqual 7 0 - - if [[ "$?" = "1" ]]; then - printf "\n" | pecl install memcached-3.1.3 - else - printf "\n" | pecl install memcached-2.2.0 - fi - - docker-php-ext-enable memcached -fi - -if [[ -z "${EXTENSIONS##*,memcache,*}" ]]; then - echo "---------- Install memcache ----------" - isPhpVersionGreaterOrEqual 7 0 - if [[ "$?" = "1" ]]; then - installExtensionFromTgz memcache-4.0.5.2 - else - installExtensionFromTgz memcache-2.2.6 - fi -fi - -if [[ -z "${EXTENSIONS##*,xdebug,*}" ]]; then - echo "---------- Install xdebug ----------" - isPhpVersionGreaterOrEqual 7 0 - - if [[ "$?" = "1" ]]; then - isPhpVersionGreaterOrEqual 7 4 - if [[ "$?" = "1" ]]; then - installExtensionFromTgz xdebug-2.9.2 - else - installExtensionFromTgz xdebug-2.6.1 - fi - else - installExtensionFromTgz xdebug-2.5.5 - fi -fi - -if [[ -z "${EXTENSIONS##*,event,*}" ]]; then - echo "---------- Install event ----------" - apk add --no-cache libevent-dev - export is_sockets_installed=$(php -r "echo extension_loaded('sockets');") - - if [[ "${is_sockets_installed}" = "" ]]; then - echo "---------- event is depend on sockets, install sockets first ----------" - docker-php-ext-install sockets - fi - - echo "---------- Install event again ----------" - mkdir event - tar -xf event-3.0.8.tgz -C event --strip-components=1 - cd event && phpize && ./configure && make && make install - - docker-php-ext-enable --ini-name event.ini event -fi - -if [[ -z "${EXTENSIONS##*,mongodb,*}" ]]; then - echo "---------- Install mongodb ----------" - apk add --no-cache openssl-dev - installExtensionFromTgz mongodb-1.7.4 - docker-php-ext-configure mongodb --with-mongodb-ssl=openssl -fi - -if [[ -z "${EXTENSIONS##*,yaf,*}" ]]; then - echo "---------- Install yaf ----------" - isPhpVersionGreaterOrEqual 7 0 - - if [[ "$?" = "1" ]]; then - printf "\n" | pecl install yaf - docker-php-ext-enable yaf - else - installExtensionFromTgz yaf-2.3.5 - fi -fi - - -if [[ -z "${EXTENSIONS##*,swoole,*}" ]]; then - echo "---------- Install swoole ----------" - # Fix: Refer to the line containing "swoole@alpine)" in file "./install-php-extensions" - apk add --no-cache libstdc++ - - isPhpVersionGreaterOrEqual 7 0 - - if [[ "$?" = "1" ]]; then - installExtensionFromTgz swoole-4.8.11 --enable-openssl - else - installExtensionFromTgz swoole-2.0.11 - fi -fi - -if [[ -z "${EXTENSIONS##*,zip,*}" ]]; then - echo "---------- Install zip ----------" - # Fix: https://github.com/docker-library/php/issues/797 - apk add --no-cache libzip-dev - - isPhpVersionGreaterOrEqual 7 4 - if [[ "$?" != "1" ]]; then - docker-php-ext-configure zip --with-libzip=/usr/include - fi - - docker-php-ext-install ${MC} zip -fi - -if [[ -z "${EXTENSIONS##*,xhprof,*}" ]]; then - echo "---------- Install XHProf ----------" - - isPhpVersionGreaterOrEqual 7 0 - - if [[ "$?" = "1" ]]; then - mkdir xhprof \ - && tar -xf xhprof-2.2.0.tgz -C xhprof --strip-components=1 \ - && ( cd xhprof/extension/ && phpize && ./configure && make ${MC} && make install ) \ - && docker-php-ext-enable xhprof - else - echo "---------- PHP Version>= 7.0----------" - fi - -fi - -if [[ -z "${EXTENSIONS##*,xlswriter,*}" ]]; then - echo "---------- Install xlswriter ----------" - isPhpVersionGreaterOrEqual 7 0 - - if [[ "$?" = "1" ]]; then - printf "\n" | pecl install xlswriter - docker-php-ext-enable xlswriter - else - echo "---------- PHP Version>= 7.0----------" - fi -fi - -if [[ -z "${EXTENSIONS##*,rdkafka,*}" ]]; then - echo "---------- Install rdkafka ----------" - isPhpVersionGreaterOrEqual 5 6 - - if [[ "$?" = "1" ]]; then - apk add librdkafka-dev - printf "\n" | pecl install rdkafka - docker-php-ext-enable rdkafka - else - echo "---------- PHP Version>= 5.6----------" - fi -fi - -if [[ -z "${EXTENSIONS##*,zookeeper,*}" ]]; then - echo "---------- Install zookeeper ----------" - isPhpVersionGreaterOrEqual 7 0 - - if [[ "$?" = "1" ]]; then - apk add re2c - apk add libzookeeper-dev --repository http://${CONTAINER_PACKAGE_URL}/alpine/edge/testing/ - printf "\n" | pecl install zookeeper - docker-php-ext-enable zookeeper - else - echo "---------- PHP Version>= 7.0----------" - fi -fi - -if [[ -z "${EXTENSIONS##*,phalcon,*}" ]]; then - echo "---------- Install phalcon ----------" - isPhpVersionGreaterOrEqual 7 2 - - if [[ "$?" = "1" ]]; then - printf "\n" | pecl install phalcon - docker-php-ext-enable psr - docker-php-ext-enable phalcon - else - echo "---------- PHP Version>= 7.2----------" - fi -fi - -if [[ -z "${EXTENSIONS##*,sdebug,*}" ]]; then - echo "---------- Install sdebug ----------" - isPhpVersionGreaterOrEqual 7 2 - - if [[ "$?" = "1" ]]; then - curl -SL "https://github.com/swoole/sdebug/archive/sdebug_2_9-beta.tar.gz" -o sdebug.tar.gz \ - && mkdir -p sdebug \ - && tar -xf sdebug.tar.gz -C sdebug --strip-components=1 \ - && rm sdebug.tar.gz \ - && ( \ - cd sdebug \ - && phpize \ - && ./configure --enable-xdebug \ - && make clean && make && make install \ - ) \ - && docker-php-ext-enable xdebug - else - echo "---------- PHP Version>= 7.2----------" - fi -fi - -if [ "${PHP_EXTENSIONS}" != "" ]; then - apk del .build-deps \ - && docker-php-source delete -fi diff --git a/php7/7.3.33/build/php/extensions/memcache-2.2.6.tgz b/php7/7.3.33/build/php/extensions/memcache-2.2.6.tgz deleted file mode 100644 index 841d0296e..000000000 Binary files a/php7/7.3.33/build/php/extensions/memcache-2.2.6.tgz and /dev/null differ diff --git a/php7/7.3.33/build/php/extensions/memcache-4.0.5.2.tgz b/php7/7.3.33/build/php/extensions/memcache-4.0.5.2.tgz deleted file mode 100644 index 1f7d370b3..000000000 Binary files a/php7/7.3.33/build/php/extensions/memcache-4.0.5.2.tgz and /dev/null differ diff --git a/php7/7.3.33/build/php/extensions/mongodb-1.7.4.tgz b/php7/7.3.33/build/php/extensions/mongodb-1.7.4.tgz deleted file mode 100644 index 94528560b..000000000 Binary files a/php7/7.3.33/build/php/extensions/mongodb-1.7.4.tgz and /dev/null differ diff --git a/php7/7.3.33/build/php/extensions/redis-5.3.7.tgz b/php7/7.3.33/build/php/extensions/redis-5.3.7.tgz deleted file mode 100644 index db2187b4d..000000000 Binary files a/php7/7.3.33/build/php/extensions/redis-5.3.7.tgz and /dev/null differ diff --git a/php7/7.3.33/build/php/extensions/swoole-2.0.11.tgz b/php7/7.3.33/build/php/extensions/swoole-2.0.11.tgz deleted file mode 100644 index a155450ce..000000000 Binary files a/php7/7.3.33/build/php/extensions/swoole-2.0.11.tgz and /dev/null differ diff --git a/php7/7.3.33/build/php/extensions/swoole-4.8.11.tgz b/php7/7.3.33/build/php/extensions/swoole-4.8.11.tgz deleted file mode 100644 index 01674cdc9..000000000 Binary files a/php7/7.3.33/build/php/extensions/swoole-4.8.11.tgz and /dev/null differ diff --git a/php7/7.3.33/build/php/extensions/xdebug-2.5.5.tgz b/php7/7.3.33/build/php/extensions/xdebug-2.5.5.tgz deleted file mode 100644 index d62c7ff63..000000000 Binary files a/php7/7.3.33/build/php/extensions/xdebug-2.5.5.tgz and /dev/null differ diff --git a/php7/7.3.33/build/php/extensions/xdebug-2.6.1.tgz b/php7/7.3.33/build/php/extensions/xdebug-2.6.1.tgz deleted file mode 100644 index c756fba39..000000000 Binary files a/php7/7.3.33/build/php/extensions/xdebug-2.6.1.tgz and /dev/null differ diff --git a/php7/7.3.33/build/php/extensions/xdebug-2.9.2.tgz b/php7/7.3.33/build/php/extensions/xdebug-2.9.2.tgz deleted file mode 100644 index 8131fff35..000000000 Binary files a/php7/7.3.33/build/php/extensions/xdebug-2.9.2.tgz and /dev/null differ diff --git a/php7/7.3.33/build/php/extensions/xhprof-2.2.0.tgz b/php7/7.3.33/build/php/extensions/xhprof-2.2.0.tgz deleted file mode 100644 index 2614df31a..000000000 Binary files a/php7/7.3.33/build/php/extensions/xhprof-2.2.0.tgz and /dev/null differ diff --git a/php7/7.3.33/build/php/extensions/yaf-2.3.5.tgz b/php7/7.3.33/build/php/extensions/yaf-2.3.5.tgz deleted file mode 100644 index d965a0f19..000000000 Binary files a/php7/7.3.33/build/php/extensions/yaf-2.3.5.tgz and /dev/null differ diff --git a/php7/7.3.33/build/php/php-fpm.conf b/php7/7.3.33/build/php/php-fpm.conf deleted file mode 100644 index 131835891..000000000 --- a/php7/7.3.33/build/php/php-fpm.conf +++ /dev/null @@ -1,423 +0,0 @@ -; Start a new pool named 'www'. -; the variable $pool can be used in any directive and will be replaced by the -; pool name ('www' here) -[www] - -; Per pool prefix -; It only applies on the following directives: -; - 'access.log' -; - 'slowlog' -; - 'listen' (unixsocket) -; - 'chroot' -; - 'chdir' -; - 'php_values' -; - 'php_admin_values' -; When not set, the global prefix (or NONE) applies instead. -; Note: This directive can also be relative to the global prefix. -; Default Value: none -;prefix = /path/to/pools/$pool - -; Unix user/group of processes -; Note: The user is mandatory. If the group is not set, the default user's group -; will be used. -user = www-data -group = www-data - -; The address on which to accept FastCGI requests. -; Valid syntaxes are: -; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on -; a specific port; -; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on -; a specific port; -; 'port' - to listen on a TCP socket to all addresses -; (IPv6 and IPv4-mapped) on a specific port; -; '/path/to/unix/socket' - to listen on a unix socket. -; Note: This value is mandatory. -listen = 127.0.0.1:9000 - -; Set listen(2) backlog. -; Default Value: 511 (-1 on FreeBSD and OpenBSD) -;listen.backlog = 511 - -; Set permissions for unix socket, if one is used. In Linux, read/write -; permissions must be set in order to allow connections from a web server. Many -; BSD-derived systems allow connections regardless of permissions. -; Default Values: user and group are set as the running user -; mode is set to 0660 -;listen.owner = www-data -;listen.group = www-data -;listen.mode = 0660 -; When POSIX Access Control Lists are supported you can set them using -; these options, value is a comma separated list of user/group names. -; When set, listen.owner and listen.group are ignored -;listen.acl_users = -;listen.acl_groups = - -; List of addresses (IPv4/IPv6) of FastCGI clients which are allowed to connect. -; Equivalent to the FCGI_WEB_SERVER_ADDRS environment variable in the original -; PHP FCGI (5.2.2+). Makes sense only with a tcp listening socket. Each address -; must be separated by a comma. If this value is left blank, connections will be -; accepted from any ip address. -; Default Value: any -;listen.allowed_clients = 127.0.0.1 - -; Specify the nice(2) priority to apply to the pool processes (only if set) -; The value can vary from -19 (highest priority) to 20 (lower priority) -; Note: - It will only work if the FPM master process is launched as root -; - The pool processes will inherit the master process priority -; unless it specified otherwise -; Default Value: no set -; process.priority = -19 - -; Set the process dumpable flag (PR_SET_DUMPABLE prctl) even if the process user -; or group is differrent than the master process user. It allows to create process -; core dump and ptrace the process for the pool user. -; Default Value: no -; process.dumpable = yes - -; Choose how the process manager will control the number of child processes. -; Possible Values: -; static - a fixed number (pm.max_children) of child processes; -; dynamic - the number of child processes are set dynamically based on the -; following directives. With this process management, there will be -; always at least 1 children. -; pm.max_children - the maximum number of children that can -; be alive at the same time. -; pm.start_servers - the number of children created on startup. -; pm.min_spare_servers - the minimum number of children in 'idle' -; state (waiting to process). If the number -; of 'idle' processes is less than this -; number then some children will be created. -; pm.max_spare_servers - the maximum number of children in 'idle' -; state (waiting to process). If the number -; of 'idle' processes is greater than this -; number then some children will be killed. -; ondemand - no children are created at startup. Children will be forked when -; new requests will connect. The following parameter are used: -; pm.max_children - the maximum number of children that -; can be alive at the same time. -; pm.process_idle_timeout - The number of seconds after which -; an idle process will be killed. -; Note: This value is mandatory. -pm = dynamic - -; The number of child processes to be created when pm is set to 'static' and the -; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'. -; This value sets the limit on the number of simultaneous requests that will be -; served. Equivalent to the ApacheMaxClients directive with mpm_prefork. -; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP -; CGI. The below defaults are based on a server without much resources. Don't -; forget to tweak pm.* to fit your needs. -; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand' -; Note: This value is mandatory. -pm.max_children = 10 - -; The number of child processes created on startup. -; Note: Used only when pm is set to 'dynamic' -; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2 -pm.start_servers = 2 - -; The desired minimum number of idle server processes. -; Note: Used only when pm is set to 'dynamic' -; Note: Mandatory when pm is set to 'dynamic' -pm.min_spare_servers = 1 - -; The desired maximum number of idle server processes. -; Note: Used only when pm is set to 'dynamic' -; Note: Mandatory when pm is set to 'dynamic' -pm.max_spare_servers = 3 - -; The number of seconds after which an idle process will be killed. -; Note: Used only when pm is set to 'ondemand' -; Default Value: 10s -;pm.process_idle_timeout = 10s; - -; The number of requests each child process should execute before respawning. -; This can be useful to work around memory leaks in 3rd party libraries. For -; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS. -; Default Value: 0 -;pm.max_requests = 500 - -; The URI to view the FPM status page. If this value is not set, no URI will be -; recognized as a status page. It shows the following informations: -; pool - the name of the pool; -; process manager - static, dynamic or ondemand; -; start time - the date and time FPM has started; -; start since - number of seconds since FPM has started; -; accepted conn - the number of request accepted by the pool; -; listen queue - the number of request in the queue of pending -; connections (see backlog in listen(2)); -; max listen queue - the maximum number of requests in the queue -; of pending connections since FPM has started; -; listen queue len - the size of the socket queue of pending connections; -; idle processes - the number of idle processes; -; active processes - the number of active processes; -; total processes - the number of idle + active processes; -; max active processes - the maximum number of active processes since FPM -; has started; -; max children reached - number of times, the process limit has been reached, -; when pm tries to start more children (works only for -; pm 'dynamic' and 'ondemand'); -; Value are updated in real time. -; Example output: -; pool: www -; process manager: static -; start time: 01/Jul/2011:17:53:49 +0200 -; start since: 62636 -; accepted conn: 190460 -; listen queue: 0 -; max listen queue: 1 -; listen queue len: 42 -; idle processes: 4 -; active processes: 11 -; total processes: 15 -; max active processes: 12 -; max children reached: 0 -; -; By default the status page output is formatted as text/plain. Passing either -; 'html', 'xml' or 'json' in the query string will return the corresponding -; output syntax. Example: -; http://www.foo.bar/status -; http://www.foo.bar/status?json -; http://www.foo.bar/status?html -; http://www.foo.bar/status?xml -; -; By default the status page only outputs short status. Passing 'full' in the -; query string will also return status for each pool process. -; Example: -; http://www.foo.bar/status?full -; http://www.foo.bar/status?json&full -; http://www.foo.bar/status?html&full -; http://www.foo.bar/status?xml&full -; The Full status returns for each process: -; pid - the PID of the process; -; state - the state of the process (Idle, Running, ...); -; start time - the date and time the process has started; -; start since - the number of seconds since the process has started; -; requests - the number of requests the process has served; -; request duration - the duration in µs of the requests; -; request method - the request method (GET, POST, ...); -; request URI - the request URI with the query string; -; content length - the content length of the request (only with POST); -; user - the user (PHP_AUTH_USER) (or '-' if not set); -; script - the main script called (or '-' if not set); -; last request cpu - the %cpu the last request consumed -; it's always 0 if the process is not in Idle state -; because CPU calculation is done when the request -; processing has terminated; -; last request memory - the max amount of memory the last request consumed -; it's always 0 if the process is not in Idle state -; because memory calculation is done when the request -; processing has terminated; -; If the process is in Idle state, then informations are related to the -; last request the process has served. Otherwise informations are related to -; the current request being served. -; Example output: -; ************************ -; pid: 31330 -; state: Running -; start time: 01/Jul/2011:17:53:49 +0200 -; start since: 63087 -; requests: 12808 -; request duration: 1250261 -; request method: GET -; request URI: /test_mem.php?N=10000 -; content length: 0 -; user: - -; script: /home/fat/web/docs/php/test_mem.php -; last request cpu: 0.00 -; last request memory: 0 -; -; Note: There is a real-time FPM status monitoring sample web page available -; It's available in: /usr/local/share/php/fpm/status.html -; -; Note: The value must start with a leading slash (/). The value can be -; anything, but it may not be a good idea to use the .php extension or it -; may conflict with a real PHP file. -; Default Value: not set -;pm.status_path = /status - -; The ping URI to call the monitoring page of FPM. If this value is not set, no -; URI will be recognized as a ping page. This could be used to test from outside -; that FPM is alive and responding, or to -; - create a graph of FPM availability (rrd or such); -; - remove a server from a group if it is not responding (load balancing); -; - trigger alerts for the operating team (24/7). -; Note: The value must start with a leading slash (/). The value can be -; anything, but it may not be a good idea to use the .php extension or it -; may conflict with a real PHP file. -; Default Value: not set -;ping.path = /ping - -; This directive may be used to customize the response of a ping request. The -; response is formatted as text/plain with a 200 response code. -; Default Value: pong -;ping.response = pong - -; The access log file -; Default: not set -;access.log = log/$pool.access.log - -; The access log format. -; The following syntax is allowed -; %%: the '%' character -; %C: %CPU used by the request -; it can accept the following format: -; - %{user}C for user CPU only -; - %{system}C for system CPU only -; - %{total}C for user + system CPU (default) -; %d: time taken to serve the request -; it can accept the following format: -; - %{seconds}d (default) -; - %{miliseconds}d -; - %{mili}d -; - %{microseconds}d -; - %{micro}d -; %e: an environment variable (same as $_ENV or $_SERVER) -; it must be associated with embraces to specify the name of the env -; variable. Some exemples: -; - server specifics like: %{REQUEST_METHOD}e or %{SERVER_PROTOCOL}e -; - HTTP headers like: %{HTTP_HOST}e or %{HTTP_USER_AGENT}e -; %f: script filename -; %l: content-length of the request (for POST request only) -; %m: request method -; %M: peak of memory allocated by PHP -; it can accept the following format: -; - %{bytes}M (default) -; - %{kilobytes}M -; - %{kilo}M -; - %{megabytes}M -; - %{mega}M -; %n: pool name -; %o: output header -; it must be associated with embraces to specify the name of the header: -; - %{Content-Type}o -; - %{X-Powered-By}o -; - %{Transfert-Encoding}o -; - .... -; %p: PID of the child that serviced the request -; %P: PID of the parent of the child that serviced the request -; %q: the query string -; %Q: the '?' character if query string exists -; %r: the request URI (without the query string, see %q and %Q) -; %R: remote IP address -; %s: status (response code) -; %t: server time the request was received -; it can accept a strftime(3) format: -; %d/%b/%Y:%H:%M:%S %z (default) -; The strftime(3) format must be encapsuled in a %{}t tag -; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t -; %T: time the log has been written (the request has finished) -; it can accept a strftime(3) format: -; %d/%b/%Y:%H:%M:%S %z (default) -; The strftime(3) format must be encapsuled in a %{}t tag -; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t -; %u: remote user -; -; Default: "%R - %u %t \"%m %r\" %s" -;access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%" - -; The log file for slow requests -; Default Value: not set -; Note: slowlog is mandatory if request_slowlog_timeout is set -slowlog = /var/log/php/fpm.slow.log - -; The timeout for serving a single request after which a PHP backtrace will be -; dumped to the 'slowlog' file. A value of '0s' means 'off'. -; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) -; Default Value: 0 -request_slowlog_timeout = 3 - -; Depth of slow log stack trace. -; Default Value: 20 -;request_slowlog_trace_depth = 20 - -; The timeout for serving a single request after which the worker process will -; be killed. This option should be used when the 'max_execution_time' ini option -; does not stop script execution for some reason. A value of '0' means 'off'. -; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) -; Default Value: 0 -;request_terminate_timeout = 0 - -; Set open file descriptor rlimit. -; Default Value: system defined value -;rlimit_files = 1024 - -; Set max core size rlimit. -; Possible Values: 'unlimited' or an integer greater or equal to 0 -; Default Value: system defined value -;rlimit_core = 0 - -; Chroot to this directory at the start. This value must be defined as an -; absolute path. When this value is not set, chroot is not used. -; Note: you can prefix with '$prefix' to chroot to the pool prefix or one -; of its subdirectories. If the pool prefix is not set, the global prefix -; will be used instead. -; Note: chrooting is a great security feature and should be used whenever -; possible. However, all PHP paths will be relative to the chroot -; (error_log, sessions.save_path, ...). -; Default Value: not set -;chroot = - -; Chdir to this directory at the start. -; Note: relative path can be used. -; Default Value: current directory or / when chroot -;chdir = /var/www - -; Redirect worker stdout and stderr into main error log. If not set, stdout and -; stderr will be redirected to /dev/null according to FastCGI specs. -; Note: on highloaded environement, this can cause some delay in the page -; process time (several ms). -; Default Value: no -catch_workers_output = yes - -; Clear environment in FPM workers -; Prevents arbitrary environment variables from reaching FPM worker processes -; by clearing the environment in workers before env vars specified in this -; pool configuration are added. -; Setting to "no" will make all environment variables available to PHP code -; via getenv(), $_ENV and $_SERVER. -; Default Value: yes -;clear_env = no - -; Limits the extensions of the main script FPM will allow to parse. This can -; prevent configuration mistakes on the web server side. You should only limit -; FPM to .php extensions to prevent malicious users to use other extensions to -; execute php code. -; Note: set an empty value to allow all extensions. -; Default Value: .php -;security.limit_extensions = .php .php3 .php4 .php5 .php7 - -; Pass environment variables like LD_LIBRARY_PATH. All $VARIABLEs are taken from -; the current environment. -; Default Value: clean env -;env[HOSTNAME] = $HOSTNAME -;env[PATH] = /usr/local/bin:/usr/bin:/bin -;env[TMP] = /tmp -;env[TMPDIR] = /tmp -;env[TEMP] = /tmp - -; Additional php.ini defines, specific to this pool of workers. These settings -; overwrite the values previously defined in the php.ini. The directives are the -; same as the PHP SAPI: -; php_value/php_flag - you can set classic ini defines which can -; be overwritten from PHP call 'ini_set'. -; php_admin_value/php_admin_flag - these directives won't be overwritten by -; PHP call 'ini_set' -; For php_*flag, valid values are on, off, 1, 0, true, false, yes or no. - -; Defining 'extension' will load the corresponding shared extension from -; extension_dir. Defining 'disable_functions' or 'disable_classes' will not -; overwrite previously defined php.ini values, but will append the new value -; instead. - -; Note: path INI options can be relative and will be expanded with the prefix -; (pool, global or /usr/local) - -; Default Value: nothing is defined by default except the values in php.ini and -; specified at startup with the -d argument -;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com -;php_flag[display_errors] = off -;php_admin_value[error_log] = /var/log/fpm-php.www.log -;php_admin_flag[log_errors] = on -;php_admin_value[memory_limit] = 32M diff --git a/php7/7.3.33/build/php/php.ini b/php7/7.3.33/build/php/php.ini deleted file mode 100644 index b6b0aee69..000000000 --- a/php7/7.3.33/build/php/php.ini +++ /dev/null @@ -1,1933 +0,0 @@ -[PHP] - -;;;;;;;;;;;;;;;;;;; -; About php.ini ; -;;;;;;;;;;;;;;;;;;; -; PHP's initialization file, generally called php.ini, is responsible for -; configuring many of the aspects of PHP's behavior. - -; PHP attempts to find and load this configuration from a number of locations. -; The following is a summary of its search order: -; 1. SAPI module specific location. -; 2. The PHPRC environment variable. (As of PHP 5.2.0) -; 3. A number of predefined registry keys on Windows (As of PHP 5.2.0) -; 4. Current working directory (except CLI) -; 5. The web server's directory (for SAPI modules), or directory of PHP -; (otherwise in Windows) -; 6. The directory from the --with-config-file-path compile time option, or the -; Windows directory (C:\windows or C:\winnt) -; See the PHP docs for more specific information. -; http://php.net/configuration.file - -; The syntax of the file is extremely simple. Whitespace and lines -; beginning with a semicolon are silently ignored (as you probably guessed). -; Section headers (e.g. [Foo]) are also silently ignored, even though -; they might mean something in the future. - -; Directives following the section heading [PATH=/www/mysite] only -; apply to PHP files in the /www/mysite directory. Directives -; following the section heading [HOST=www.example.com] only apply to -; PHP files served from www.example.com. Directives set in these -; special sections cannot be overridden by user-defined INI files or -; at runtime. Currently, [PATH=] and [HOST=] sections only work under -; CGI/FastCGI. -; http://php.net/ini.sections - -; Directives are specified using the following syntax: -; directive = value -; Directive names are *case sensitive* - foo=bar is different from FOO=bar. -; Directives are variables used to configure PHP or PHP extensions. -; There is no name validation. If PHP can't find an expected -; directive because it is not set or is mistyped, a default value will be used. - -; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one -; of the INI constants (On, Off, True, False, Yes, No and None) or an expression -; (e.g. E_ALL & ~E_NOTICE), a quoted string ("bar"), or a reference to a -; previously set variable or directive (e.g. ${foo}) - -; Expressions in the INI file are limited to bitwise operators and parentheses: -; | bitwise OR -; ^ bitwise XOR -; & bitwise AND -; ~ bitwise NOT -; ! boolean NOT - -; Boolean flags can be turned on using the values 1, On, True or Yes. -; They can be turned off using the values 0, Off, False or No. - -; An empty string can be denoted by simply not writing anything after the equal -; sign, or by using the None keyword: - -; foo = ; sets foo to an empty string -; foo = None ; sets foo to an empty string -; foo = "None" ; sets foo to the string 'None' - -; If you use constants in your value, and these constants belong to a -; dynamically loaded extension (either a PHP extension or a Zend extension), -; you may only use these constants *after* the line that loads the extension. - -;;;;;;;;;;;;;;;;;;; -; About this file ; -;;;;;;;;;;;;;;;;;;; -; PHP comes packaged with two INI files. One that is recommended to be used -; in production environments and one that is recommended to be used in -; development environments. - -; php.ini-production contains settings which hold security, performance and -; best practices at its core. But please be aware, these settings may break -; compatibility with older or less security conscience applications. We -; recommending using the production ini in production and testing environments. - -; php.ini-development is very similar to its production variant, except it is -; much more verbose when it comes to errors. We recommend using the -; development version only in development environments, as errors shown to -; application users can inadvertently leak otherwise secure information. - -; This is php.ini-production INI file. - -;;;;;;;;;;;;;;;;;;; -; Quick Reference ; -;;;;;;;;;;;;;;;;;;; -; The following are all the settings which are different in either the production -; or development versions of the INIs with respect to PHP's default behavior. -; Please see the actual settings later in the document for more details as to why -; we recommend these changes in PHP's behavior. - -; display_errors -; Default Value: On -; Development Value: On -; Production Value: Off - -; display_startup_errors -; Default Value: Off -; Development Value: On -; Production Value: Off - -; error_reporting -; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT - -; html_errors -; Default Value: On -; Development Value: On -; Production value: On - -; log_errors -; Default Value: Off -; Development Value: On -; Production Value: On - -; max_input_time -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) - -; output_buffering -; Default Value: Off -; Development Value: 4096 -; Production Value: 4096 - -; register_argc_argv -; Default Value: On -; Development Value: Off -; Production Value: Off - -; request_order -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" - -; session.gc_divisor -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 - -; session.sid_bits_per_character -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 - -; short_open_tag -; Default Value: On -; Development Value: Off -; Production Value: Off - -; track_errors -; Default Value: Off -; Development Value: On -; Production Value: Off - -; variables_order -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS" - -;;;;;;;;;;;;;;;;;;;; -; php.ini Options ; -;;;;;;;;;;;;;;;;;;;; -; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini" -;user_ini.filename = ".user.ini" - -; To disable this feature set this option to empty value -;user_ini.filename = - -; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes) -;user_ini.cache_ttl = 300 - -;;;;;;;;;;;;;;;;;;;; -; Language Options ; -;;;;;;;;;;;;;;;;;;;; - -; Enable the PHP scripting language engine under Apache. -; http://php.net/engine -engine = On - -; This directive determines whether or not PHP will recognize code between -; tags as PHP source which should be processed as such. It is -; generally recommended that should be used and that this feature -; should be disabled, as enabling it may result in issues when generating XML -; documents, however this remains supported for backward compatibility reasons. -; Note that this directive does not control the would work. -; http://php.net/syntax-highlighting -;highlight.string = #DD0000 -;highlight.comment = #FF9900 -;highlight.keyword = #007700 -;highlight.default = #0000BB -;highlight.html = #000000 - -; If enabled, the request will be allowed to complete even if the user aborts -; the request. Consider enabling it if executing long requests, which may end up -; being interrupted by the user or a browser timing out. PHP's default behavior -; is to disable this feature. -; http://php.net/ignore-user-abort -;ignore_user_abort = On - -; Determines the size of the realpath cache to be used by PHP. This value should -; be increased on systems where PHP opens many files to reflect the quantity of -; the file operations performed. -; http://php.net/realpath-cache-size -;realpath_cache_size = 4096k - -; Duration of time, in seconds for which to cache realpath information for a given -; file or directory. For systems with rarely changing files, consider increasing this -; value. -; http://php.net/realpath-cache-ttl -;realpath_cache_ttl = 120 - -; Enables or disables the circular reference collector. -; http://php.net/zend.enable-gc -zend.enable_gc = On - -; If enabled, scripts may be written in encodings that are incompatible with -; the scanner. CP936, Big5, CP949 and Shift_JIS are the examples of such -; encodings. To use this feature, mbstring extension must be enabled. -; Default: Off -;zend.multibyte = Off - -; Allows to set the default encoding for the scripts. This value will be used -; unless "declare(encoding=...)" directive appears at the top of the script. -; Only affects if zend.multibyte is set. -; Default: "" -;zend.script_encoding = - -;;;;;;;;;;;;;;;;; -; Miscellaneous ; -;;;;;;;;;;;;;;;;; - -; Decides whether PHP may expose the fact that it is installed on the server -; (e.g. by adding its signature to the Web server header). It is no security -; threat in any way, but it makes it possible to determine whether you use PHP -; on your server or not. -; http://php.net/expose-php -expose_php = Off - -;;;;;;;;;;;;;;;;;;; -; Resource Limits ; -;;;;;;;;;;;;;;;;;;; - -; Maximum execution time of each script, in seconds -; http://php.net/max-execution-time -; Note: This directive is hardcoded to 0 for the CLI SAPI -max_execution_time = 30 - -; Maximum amount of time each script may spend parsing request data. It's a good -; idea to limit this time on productions servers in order to eliminate unexpectedly -; long running scripts. -; Note: This directive is hardcoded to -1 for the CLI SAPI -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) -; http://php.net/max-input-time -max_input_time = 60 - -; Maximum input variable nesting level -; http://php.net/max-input-nesting-level -;max_input_nesting_level = 64 - -; How many GET/POST/COOKIE input variables may be accepted -; max_input_vars = 1000 - -; Maximum amount of memory a script may consume (128MB) -; http://php.net/memory-limit -memory_limit = 256M - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; Error handling and logging ; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -; This directive informs PHP of which errors, warnings and notices you would like -; it to take action for. The recommended way of setting values for this -; directive is through the use of the error level constants and bitwise -; operators. The error level constants are below here for convenience as well as -; some common settings and their meanings. -; By default, PHP is set to take action on all errors, notices and warnings EXCEPT -; those related to E_NOTICE and E_STRICT, which together cover best practices and -; recommended coding standards in PHP. For performance reasons, this is the -; recommend error reporting setting. Your production server shouldn't be wasting -; resources complaining about best practices and coding standards. That's what -; development servers and development settings are for. -; Note: The php.ini-development file has this setting as E_ALL. This -; means it pretty much reports everything which is exactly what you want during -; development and early testing. -; -; Error Level Constants: -; E_ALL - All errors and warnings (includes E_STRICT as of PHP 5.4.0) -; E_ERROR - fatal run-time errors -; E_RECOVERABLE_ERROR - almost fatal run-time errors -; E_WARNING - run-time warnings (non-fatal errors) -; E_PARSE - compile-time parse errors -; E_NOTICE - run-time notices (these are warnings which often result -; from a bug in your code, but it's possible that it was -; intentional (e.g., using an uninitialized variable and -; relying on the fact it is automatically initialized to an -; empty string) -; E_STRICT - run-time notices, enable to have PHP suggest changes -; to your code which will ensure the best interoperability -; and forward compatibility of your code -; E_CORE_ERROR - fatal errors that occur during PHP's initial startup -; E_CORE_WARNING - warnings (non-fatal errors) that occur during PHP's -; initial startup -; E_COMPILE_ERROR - fatal compile-time errors -; E_COMPILE_WARNING - compile-time warnings (non-fatal errors) -; E_USER_ERROR - user-generated error message -; E_USER_WARNING - user-generated warning message -; E_USER_NOTICE - user-generated notice message -; E_DEPRECATED - warn about code that will not work in future versions -; of PHP -; E_USER_DEPRECATED - user-generated deprecation warnings -; -; Common Values: -; E_ALL (Show all errors, warnings and notices including coding standards.) -; E_ALL & ~E_NOTICE (Show all errors, except for notices) -; E_ALL & ~E_NOTICE & ~E_STRICT (Show all errors, except for notices and coding standards warnings.) -; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors) -; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT -; http://php.net/error-reporting -error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT - -; This directive controls whether or not and where PHP will output errors, -; notices and warnings too. Error output is very useful during development, but -; it could be very dangerous in production environments. Depending on the code -; which is triggering the error, sensitive information could potentially leak -; out of your application such as database usernames and passwords or worse. -; For production environments, we recommend logging errors rather than -; sending them to STDOUT. -; Possible Values: -; Off = Do not display any errors -; stderr = Display errors to STDERR (affects only CGI/CLI binaries!) -; On or stdout = Display errors to STDOUT -; Default Value: On -; Development Value: On -; Production Value: Off -; http://php.net/display-errors -display_errors = Off - -; The display of errors which occur during PHP's startup sequence are handled -; separately from display_errors. PHP's default behavior is to suppress those -; errors from clients. Turning the display of startup errors on can be useful in -; debugging configuration problems. We strongly recommend you -; set this to 'off' for production servers. -; Default Value: Off -; Development Value: On -; Production Value: Off -; http://php.net/display-startup-errors -display_startup_errors = Off - -; Besides displaying errors, PHP can also log errors to locations such as a -; server-specific log, STDERR, or a location specified by the error_log -; directive found below. While errors should not be displayed on productions -; servers they should still be monitored and logging is a great way to do that. -; Default Value: Off -; Development Value: On -; Production Value: On -; http://php.net/log-errors -log_errors = On - -; Set maximum length of log_errors. In error_log information about the source is -; added. The default is 1024 and 0 allows to not apply any maximum length at all. -; http://php.net/log-errors-max-len -log_errors_max_len = 1024 - -; Do not log repeated messages. Repeated errors must occur in same file on same -; line unless ignore_repeated_source is set true. -; http://php.net/ignore-repeated-errors -ignore_repeated_errors = Off - -; Ignore source of message when ignoring repeated messages. When this setting -; is On you will not log errors with repeated messages from different files or -; source lines. -; http://php.net/ignore-repeated-source -ignore_repeated_source = Off - -; If this parameter is set to Off, then memory leaks will not be shown (on -; stdout or in the log). This has only effect in a debug compile, and if -; error reporting includes E_WARNING in the allowed list -; http://php.net/report-memleaks -report_memleaks = On - -; This setting is on by default. -;report_zend_debug = 0 - -; Store the last error/warning message in $php_errormsg (boolean). Setting this value -; to On can assist in debugging and is appropriate for development servers. It should -; however be disabled on production servers. -; Default Value: Off -; Development Value: On -; Production Value: Off -; http://php.net/track-errors -track_errors = Off - -; Turn off normal error reporting and emit XML-RPC error XML -; http://php.net/xmlrpc-errors -;xmlrpc_errors = 0 - -; An XML-RPC faultCode -;xmlrpc_error_number = 0 - -; When PHP displays or logs an error, it has the capability of formatting the -; error message as HTML for easier reading. This directive controls whether -; the error message is formatted as HTML or not. -; Note: This directive is hardcoded to Off for the CLI SAPI -; Default Value: On -; Development Value: On -; Production value: On -; http://php.net/html-errors -html_errors = On - -; If html_errors is set to On *and* docref_root is not empty, then PHP -; produces clickable error messages that direct to a page describing the error -; or function causing the error in detail. -; You can download a copy of the PHP manual from http://php.net/docs -; and change docref_root to the base URL of your local copy including the -; leading '/'. You must also specify the file extension being used including -; the dot. PHP's default behavior is to leave these settings empty, in which -; case no links to documentation are generated. -; Note: Never use this feature for production boxes. -; http://php.net/docref-root -; Examples -;docref_root = "/phpmanual/" - -; http://php.net/docref-ext -;docref_ext = .html - -; String to output before an error message. PHP's default behavior is to leave -; this setting blank. -; http://php.net/error-prepend-string -; Example: -;error_prepend_string = "" - -; String to output after an error message. PHP's default behavior is to leave -; this setting blank. -; http://php.net/error-append-string -; Example: -;error_append_string = "" - -; Log errors to specified file. PHP's default behavior is to leave this value -; empty. -; http://php.net/error-log -; Example: -;error_log = php_errors.log -; Log errors to syslog (Event Log on Windows). -error_log = /var/log/php/php.error.log - -;windows.show_crt_warning -; Default value: 0 -; Development value: 0 -; Production value: 0 - -;;;;;;;;;;;;;;;;; -; Data Handling ; -;;;;;;;;;;;;;;;;; - -; The separator used in PHP generated URLs to separate arguments. -; PHP's default setting is "&". -; http://php.net/arg-separator.output -; Example: -;arg_separator.output = "&" - -; List of separator(s) used by PHP to parse input URLs into variables. -; PHP's default setting is "&". -; NOTE: Every character in this directive is considered as separator! -; http://php.net/arg-separator.input -; Example: -;arg_separator.input = ";&" - -; This directive determines which super global arrays are registered when PHP -; starts up. G,P,C,E & S are abbreviations for the following respective super -; globals: GET, POST, COOKIE, ENV and SERVER. There is a performance penalty -; paid for the registration of these arrays and because ENV is not as commonly -; used as the others, ENV is not recommended on productions servers. You -; can still get access to the environment variables through getenv() should you -; need to. -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS"; -; http://php.net/variables-order -variables_order = "GPCS" - -; This directive determines which super global data (G,P & C) should be -; registered into the super global array REQUEST. If so, it also determines -; the order in which that data is registered. The values for this directive -; are specified in the same manner as the variables_order directive, -; EXCEPT one. Leaving this value empty will cause PHP to use the value set -; in the variables_order directive. It does not mean it will leave the super -; globals array REQUEST empty. -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" -; http://php.net/request-order -request_order = "GP" - -; This directive determines whether PHP registers $argv & $argc each time it -; runs. $argv contains an array of all the arguments passed to PHP when a script -; is invoked. $argc contains an integer representing the number of arguments -; that were passed when the script was invoked. These arrays are extremely -; useful when running scripts from the command line. When this directive is -; enabled, registering these variables consumes CPU cycles and memory each time -; a script is executed. For performance reasons, this feature should be disabled -; on production servers. -; Note: This directive is hardcoded to On for the CLI SAPI -; Default Value: On -; Development Value: Off -; Production Value: Off -; http://php.net/register-argc-argv -register_argc_argv = Off - -; When enabled, the ENV, REQUEST and SERVER variables are created when they're -; first used (Just In Time) instead of when the script starts. If these -; variables are not used within a script, having this directive on will result -; in a performance gain. The PHP directive register_argc_argv must be disabled -; for this directive to have any affect. -; http://php.net/auto-globals-jit -auto_globals_jit = On - -; Whether PHP will read the POST data. -; This option is enabled by default. -; Most likely, you won't want to disable this option globally. It causes $_POST -; and $_FILES to always be empty; the only way you will be able to read the -; POST data will be through the php://input stream wrapper. This can be useful -; to proxy requests or to process the POST data in a memory efficient fashion. -; http://php.net/enable-post-data-reading -;enable_post_data_reading = Off - -; Maximum size of POST data that PHP will accept. -; Its value may be 0 to disable the limit. It is ignored if POST data reading -; is disabled through enable_post_data_reading. -; http://php.net/post-max-size -post_max_size = 100M - -; Automatically add files before PHP document. -; http://php.net/auto-prepend-file -auto_prepend_file = - -; Automatically add files after PHP document. -; http://php.net/auto-append-file -auto_append_file = - -; By default, PHP will output a media type using the Content-Type header. To -; disable this, simply set it to be empty. -; -; PHP's built-in default media type is set to text/html. -; http://php.net/default-mimetype -default_mimetype = "text/html" - -; PHP's default character set is set to UTF-8. -; http://php.net/default-charset -default_charset = "UTF-8" - -; PHP internal character encoding is set to empty. -; If empty, default_charset is used. -; http://php.net/internal-encoding -;internal_encoding = - -; PHP input character encoding is set to empty. -; If empty, default_charset is used. -; http://php.net/input-encoding -;input_encoding = - -; PHP output character encoding is set to empty. -; If empty, default_charset is used. -; See also output_buffer. -; http://php.net/output-encoding -;output_encoding = - -;;;;;;;;;;;;;;;;;;;;;;;;; -; Paths and Directories ; -;;;;;;;;;;;;;;;;;;;;;;;;; - -; UNIX: "/path1:/path2" -;include_path = ".:/php/includes" -; -; Windows: "\path1;\path2" -;include_path = ".;c:\php\includes" -; -; PHP's default setting for include_path is ".;/path/to/php/pear" -; http://php.net/include-path - -; The root of the PHP pages, used only if nonempty. -; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root -; if you are running php as a CGI under any web server (other than IIS) -; see documentation for security issues. The alternate is to use the -; cgi.force_redirect configuration below -; http://php.net/doc-root -doc_root = - -; The directory under which PHP opens the script using /~username used only -; if nonempty. -; http://php.net/user-dir -user_dir = - -; Directory in which the loadable extensions (modules) reside. -; http://php.net/extension-dir -; extension_dir = "./" -; On windows: -; extension_dir = "ext" - -; Directory where the temporary files should be placed. -; Defaults to the system default (see sys_get_temp_dir) -; sys_temp_dir = "/tmp" - -; Whether or not to enable the dl() function. The dl() function does NOT work -; properly in multithreaded servers, such as IIS or Zeus, and is automatically -; disabled on them. -; http://php.net/enable-dl -enable_dl = Off - -; cgi.force_redirect is necessary to provide security running PHP as a CGI under -; most web servers. Left undefined, PHP turns this on by default. You can -; turn it off here AT YOUR OWN RISK -; **You CAN safely turn this off for IIS, in fact, you MUST.** -; http://php.net/cgi.force-redirect -;cgi.force_redirect = 1 - -; if cgi.nph is enabled it will force cgi to always sent Status: 200 with -; every request. PHP's default behavior is to disable this feature. -;cgi.nph = 1 - -; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape -; (iPlanet) web servers, you MAY need to set an environment variable name that PHP -; will look for to know it is OK to continue execution. Setting this variable MAY -; cause security issues, KNOW WHAT YOU ARE DOING FIRST. -; http://php.net/cgi.redirect-status-env -;cgi.redirect_status_env = - -; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's -; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok -; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting -; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting -; of zero causes PHP to behave as before. Default is 1. You should fix your scripts -; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. -; http://php.net/cgi.fix-pathinfo -;cgi.fix_pathinfo=1 - -; if cgi.discard_path is enabled, the PHP CGI binary can safely be placed outside -; of the web tree and people will not be able to circumvent .htaccess security. -; http://php.net/cgi.dicard-path -;cgi.discard_path=1 - -; FastCGI under IIS (on WINNT based OS) supports the ability to impersonate -; security tokens of the calling client. This allows IIS to define the -; security context that the request runs under. mod_fastcgi under Apache -; does not currently support this feature (03/17/2002) -; Set to 1 if running under IIS. Default is zero. -; http://php.net/fastcgi.impersonate -;fastcgi.impersonate = 1 - -; Disable logging through FastCGI connection. PHP's default behavior is to enable -; this feature. -;fastcgi.logging = 0 - -; cgi.rfc2616_headers configuration option tells PHP what type of headers to -; use when sending HTTP response code. If set to 0, PHP sends Status: header that -; is supported by Apache. When this option is set to 1, PHP will send -; RFC2616 compliant header. -; Default is zero. -; http://php.net/cgi.rfc2616-headers -;cgi.rfc2616_headers = 0 - -; cgi.check_shebang_line controls whether CGI PHP checks for line starting with #! -; (shebang) at the top of the running script. This line might be needed if the -; script support running both as stand-alone script and via PHP CGI<. PHP in CGI -; mode skips this line and ignores its content if this directive is turned on. -; http://php.net/cgi.check-shebang-line -;cgi.check_shebang_line=1 - -;;;;;;;;;;;;;;;; -; File Uploads ; -;;;;;;;;;;;;;;;; - -; Whether to allow HTTP file uploads. -; http://php.net/file-uploads -file_uploads = On - -; Temporary directory for HTTP uploaded files (will use system default if not -; specified). -; http://php.net/upload-tmp-dir -;upload_tmp_dir = - -; Maximum allowed size for uploaded files. -; http://php.net/upload-max-filesize -upload_max_filesize = 50M - -; Maximum number of files that can be uploaded via a single request -max_file_uploads = 20 - -;;;;;;;;;;;;;;;;;; -; Fopen wrappers ; -;;;;;;;;;;;;;;;;;; - -; Whether to allow the treatment of URLs (like http:// or ftp://) as files. -; http://php.net/allow-url-fopen -allow_url_fopen = On - -; Whether to allow include/require to open URLs (like http:// or ftp://) as files. -; http://php.net/allow-url-include -allow_url_include = Off - -; Define the anonymous ftp password (your email address). PHP's default setting -; for this is empty. -; http://php.net/from -;from="john@doe.com" - -; Define the User-Agent string. PHP's default setting for this is empty. -; http://php.net/user-agent -;user_agent="PHP" - -; Default timeout for socket based streams (seconds) -; http://php.net/default-socket-timeout -default_socket_timeout = 60 - -; If your scripts have to deal with files from Macintosh systems, -; or you are running on a Mac and need to deal with files from -; unix or win32 systems, setting this flag will cause PHP to -; automatically detect the EOL character in those files so that -; fgets() and file() will work regardless of the source of the file. -; http://php.net/auto-detect-line-endings -;auto_detect_line_endings = Off - -;;;;;;;;;;;;;;;;;;;;;; -; Dynamic Extensions ; -;;;;;;;;;;;;;;;;;;;;;; - -; If you wish to have an extension loaded automatically, use the following -; syntax: -; -; extension=modulename.extension -; -; For example, on Windows: -; -; extension=mysqli.dll -; -; ... or under UNIX: -; -; extension=mysqli.so -; -; ... or with a path: -; -; extension=/path/to/extension/mysqli.so -; -; If you only provide the name of the extension, PHP will look for it in its -; default extension directory. -; -; Windows Extensions -; Note that ODBC support is built in, so no dll is needed for it. -; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5+) -; extension folders as well as the separate PECL DLL download (PHP 5+). -; Be sure to appropriately set the extension_dir directive. -; -;extension=php_bz2.dll -;extension=php_curl.dll -;extension=php_fileinfo.dll -;extension=php_ftp.dll -;extension=php_gd2.dll -;extension=php_gettext.dll -;extension=php_gmp.dll -;extension=php_intl.dll -;extension=php_imap.dll -;extension=php_interbase.dll -;extension=php_ldap.dll -;extension=php_mbstring.dll -;extension=php_exif.dll ; Must be after mbstring as it depends on it -;extension=php_mysqli.dll -;extension=php_oci8_12c.dll ; Use with Oracle Database 12c Instant Client -;extension=php_openssl.dll -;extension=php_pdo_firebird.dll -;extension=php_pdo_mysql.dll -;extension=php_pdo_oci.dll -;extension=php_pdo_odbc.dll -;extension=php_pdo_pgsql.dll -;extension=php_pdo_sqlite.dll -;extension=php_pgsql.dll -;extension=php_shmop.dll - -; The MIBS data available in the PHP distribution must be installed. -; See http://www.php.net/manual/en/snmp.installation.php -;extension=php_snmp.dll - -;extension=php_soap.dll -;extension=php_sockets.dll -;extension=php_sqlite3.dll -;extension=php_tidy.dll -;extension=php_xmlrpc.dll -;extension=php_xsl.dll - -;;;;;;;;;;;;;;;;;;; -; Module Settings ; -;;;;;;;;;;;;;;;;;;; - -[CLI Server] -; Whether the CLI web server uses ANSI color coding in its terminal output. -cli_server.color = On - -[Date] -; Defines the default timezone used by the date functions -; http://php.net/date.timezone -date.timezone = Asia/Shanghai - -; http://php.net/date.default-latitude -;date.default_latitude = 31.7667 - -; http://php.net/date.default-longitude -;date.default_longitude = 35.2333 - -; http://php.net/date.sunrise-zenith -;date.sunrise_zenith = 90.583333 - -; http://php.net/date.sunset-zenith -;date.sunset_zenith = 90.583333 - -[filter] -; http://php.net/filter.default -;filter.default = unsafe_raw - -; http://php.net/filter.default-flags -;filter.default_flags = - -[iconv] -; Use of this INI entry is deprecated, use global input_encoding instead. -; If empty, default_charset or input_encoding or iconv.input_encoding is used. -; The precedence is: default_charset < intput_encoding < iconv.input_encoding -;iconv.input_encoding = - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;iconv.internal_encoding = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; If empty, default_charset or output_encoding or iconv.output_encoding is used. -; The precedence is: default_charset < output_encoding < iconv.output_encoding -; To use an output encoding conversion, iconv's output handler must be set -; otherwise output encoding conversion cannot be performed. -;iconv.output_encoding = - -[intl] -;intl.default_locale = -; This directive allows you to produce PHP errors when some error -; happens within intl functions. The value is the level of the error produced. -; Default is 0, which does not produce any errors. -;intl.error_level = E_WARNING -;intl.use_exceptions = 0 - -[sqlite3] -;sqlite3.extension_dir = - -[Pcre] -;PCRE library backtracking limit. -; http://php.net/pcre.backtrack-limit -;pcre.backtrack_limit=100000 - -;PCRE library recursion limit. -;Please note that if you set this value to a high number you may consume all -;the available process stack and eventually crash PHP (due to reaching the -;stack size limit imposed by the Operating System). -; http://php.net/pcre.recursion-limit -;pcre.recursion_limit=100000 - -;Enables or disables JIT compilation of patterns. This requires the PCRE -;library to be compiled with JIT support. -;pcre.jit=1 - -[Pdo] -; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off" -; http://php.net/pdo-odbc.connection-pooling -;pdo_odbc.connection_pooling=strict - -;pdo_odbc.db2_instance_name - -[Pdo_mysql] -; If mysqlnd is used: Number of cache slots for the internal result set cache -; http://php.net/pdo_mysql.cache_size -pdo_mysql.cache_size = 2000 - -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -; http://php.net/pdo_mysql.default-socket -pdo_mysql.default_socket= - -[Phar] -; http://php.net/phar.readonly -;phar.readonly = On - -; http://php.net/phar.require-hash -;phar.require_hash = On - -;phar.cache_list = - -[mail function] -; For Win32 only. -; http://php.net/smtp -SMTP = localhost -; http://php.net/smtp-port -smtp_port = 25 - -; For Win32 only. -; http://php.net/sendmail-from -;sendmail_from = me@example.com - -; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). -; http://php.net/sendmail-path -;sendmail_path = - -; Force the addition of the specified parameters to be passed as extra parameters -; to the sendmail binary. These parameters will always replace the value of -; the 5th parameter to mail(). -;mail.force_extra_parameters = - -; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename -mail.add_x_header = On - -; The path to a log file that will log all mail() calls. Log entries include -; the full path of the script, line number, To address and headers. -;mail.log = -; Log mail to syslog (Event Log on Windows). -;mail.log = syslog - -[ODBC] -; http://php.net/odbc.default-db -;odbc.default_db = Not yet implemented - -; http://php.net/odbc.default-user -;odbc.default_user = Not yet implemented - -; http://php.net/odbc.default-pw -;odbc.default_pw = Not yet implemented - -; Controls the ODBC cursor model. -; Default: SQL_CURSOR_STATIC (default). -;odbc.default_cursortype - -; Allow or prevent persistent links. -; http://php.net/odbc.allow-persistent -odbc.allow_persistent = On - -; Check that a connection is still valid before reuse. -; http://php.net/odbc.check-persistent -odbc.check_persistent = On - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/odbc.max-persistent -odbc.max_persistent = -1 - -; Maximum number of links (persistent + non-persistent). -1 means no limit. -; http://php.net/odbc.max-links -odbc.max_links = -1 - -; Handling of LONG fields. Returns number of bytes to variables. 0 means -; passthru. -; http://php.net/odbc.defaultlrl -odbc.defaultlrl = 4096 - -; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char. -; See the documentation on odbc_binmode and odbc_longreadlen for an explanation -; of odbc.defaultlrl and odbc.defaultbinmode -; http://php.net/odbc.defaultbinmode -odbc.defaultbinmode = 1 - -;birdstep.max_links = -1 - -[Interbase] -; Allow or prevent persistent links. -ibase.allow_persistent = 1 - -; Maximum number of persistent links. -1 means no limit. -ibase.max_persistent = -1 - -; Maximum number of links (persistent + non-persistent). -1 means no limit. -ibase.max_links = -1 - -; Default database name for ibase_connect(). -;ibase.default_db = - -; Default username for ibase_connect(). -;ibase.default_user = - -; Default password for ibase_connect(). -;ibase.default_password = - -; Default charset for ibase_connect(). -;ibase.default_charset = - -; Default timestamp format. -ibase.timestampformat = "%Y-%m-%d %H:%M:%S" - -; Default date format. -ibase.dateformat = "%Y-%m-%d" - -; Default time format. -ibase.timeformat = "%H:%M:%S" - -[MySQLi] - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/mysqli.max-persistent -mysqli.max_persistent = -1 - -; Allow accessing, from PHP's perspective, local files with LOAD DATA statements -; http://php.net/mysqli.allow_local_infile -;mysqli.allow_local_infile = On - -; Allow or prevent persistent links. -; http://php.net/mysqli.allow-persistent -mysqli.allow_persistent = On - -; Maximum number of links. -1 means no limit. -; http://php.net/mysqli.max-links -mysqli.max_links = -1 - -; If mysqlnd is used: Number of cache slots for the internal result set cache -; http://php.net/mysqli.cache_size -mysqli.cache_size = 2000 - -; Default port number for mysqli_connect(). If unset, mysqli_connect() will use -; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the -; compile-time value defined MYSQL_PORT (in that order). Win32 will only look -; at MYSQL_PORT. -; http://php.net/mysqli.default-port -mysqli.default_port = 3306 - -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -; http://php.net/mysqli.default-socket -mysqli.default_socket = - -; Default host for mysql_connect() (doesn't apply in safe mode). -; http://php.net/mysqli.default-host -mysqli.default_host = - -; Default user for mysql_connect() (doesn't apply in safe mode). -; http://php.net/mysqli.default-user -mysqli.default_user = - -; Default password for mysqli_connect() (doesn't apply in safe mode). -; Note that this is generally a *bad* idea to store passwords in this file. -; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw") -; and reveal this password! And of course, any users with read access to this -; file will be able to reveal the password as well. -; http://php.net/mysqli.default-pw -mysqli.default_pw = - -; Allow or prevent reconnect -mysqli.reconnect = Off - -[mysqlnd] -; Enable / Disable collection of general statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -; http://php.net/mysqlnd.collect_statistics -mysqlnd.collect_statistics = On - -; Enable / Disable collection of memory usage statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -; http://php.net/mysqlnd.collect_memory_statistics -mysqlnd.collect_memory_statistics = Off - -; Records communication from all extensions using mysqlnd to the specified log -; file. -; http://php.net/mysqlnd.debug -;mysqlnd.debug = - -; Defines which queries will be logged. -; http://php.net/mysqlnd.log_mask -;mysqlnd.log_mask = 0 - -; Default size of the mysqlnd memory pool, which is used by result sets. -; http://php.net/mysqlnd.mempool_default_size -;mysqlnd.mempool_default_size = 16000 - -; Size of a pre-allocated buffer used when sending commands to MySQL in bytes. -; http://php.net/mysqlnd.net_cmd_buffer_size -;mysqlnd.net_cmd_buffer_size = 2048 - -; Size of a pre-allocated buffer used for reading data sent by the server in -; bytes. -; http://php.net/mysqlnd.net_read_buffer_size -;mysqlnd.net_read_buffer_size = 32768 - -; Timeout for network requests in seconds. -; http://php.net/mysqlnd.net_read_timeout -;mysqlnd.net_read_timeout = 31536000 - -; SHA-256 Authentication Plugin related. File with the MySQL server public RSA -; key. -; http://php.net/mysqlnd.sha256_server_public_key -;mysqlnd.sha256_server_public_key = - -[OCI8] - -; Connection: Enables privileged connections using external -; credentials (OCI_SYSOPER, OCI_SYSDBA) -; http://php.net/oci8.privileged-connect -;oci8.privileged_connect = Off - -; Connection: The maximum number of persistent OCI8 connections per -; process. Using -1 means no limit. -; http://php.net/oci8.max-persistent -;oci8.max_persistent = -1 - -; Connection: The maximum number of seconds a process is allowed to -; maintain an idle persistent connection. Using -1 means idle -; persistent connections will be maintained forever. -; http://php.net/oci8.persistent-timeout -;oci8.persistent_timeout = -1 - -; Connection: The number of seconds that must pass before issuing a -; ping during oci_pconnect() to check the connection validity. When -; set to 0, each oci_pconnect() will cause a ping. Using -1 disables -; pings completely. -; http://php.net/oci8.ping-interval -;oci8.ping_interval = 60 - -; Connection: Set this to a user chosen connection class to be used -; for all pooled server requests with Oracle 11g Database Resident -; Connection Pooling (DRCP). To use DRCP, this value should be set to -; the same string for all web servers running the same application, -; the database pool must be configured, and the connection string must -; specify to use a pooled server. -;oci8.connection_class = - -; High Availability: Using On lets PHP receive Fast Application -; Notification (FAN) events generated when a database node fails. The -; database must also be configured to post FAN events. -;oci8.events = Off - -; Tuning: This option enables statement caching, and specifies how -; many statements to cache. Using 0 disables statement caching. -; http://php.net/oci8.statement-cache-size -;oci8.statement_cache_size = 20 - -; Tuning: Enables statement prefetching and sets the default number of -; rows that will be fetched automatically after statement execution. -; http://php.net/oci8.default-prefetch -;oci8.default_prefetch = 100 - -; Compatibility. Using On means oci_close() will not close -; oci_connect() and oci_new_connect() connections. -; http://php.net/oci8.old-oci-close-semantics -;oci8.old_oci_close_semantics = Off - -[PostgreSQL] -; Allow or prevent persistent links. -; http://php.net/pgsql.allow-persistent -pgsql.allow_persistent = On - -; Detect broken persistent links always with pg_pconnect(). -; Auto reset feature requires a little overheads. -; http://php.net/pgsql.auto-reset-persistent -pgsql.auto_reset_persistent = Off - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/pgsql.max-persistent -pgsql.max_persistent = -1 - -; Maximum number of links (persistent+non persistent). -1 means no limit. -; http://php.net/pgsql.max-links -pgsql.max_links = -1 - -; Ignore PostgreSQL backends Notice message or not. -; Notice message logging require a little overheads. -; http://php.net/pgsql.ignore-notice -pgsql.ignore_notice = 0 - -; Log PostgreSQL backends Notice message or not. -; Unless pgsql.ignore_notice=0, module cannot log notice message. -; http://php.net/pgsql.log-notice -pgsql.log_notice = 0 - -[bcmath] -; Number of decimal digits for all bcmath functions. -; http://php.net/bcmath.scale -bcmath.scale = 0 - -[browscap] -; http://php.net/browscap -;browscap = extra/browscap.ini - -[Session] -; Handler used to store/retrieve data. -; http://php.net/session.save-handler -session.save_handler = files - -; Argument passed to save_handler. In the case of files, this is the path -; where data files are stored. Note: Windows users have to change this -; variable in order to use PHP's session functions. -; -; The path can be defined as: -; -; session.save_path = "N;/path" -; -; where N is an integer. Instead of storing all the session files in -; /path, what this will do is use subdirectories N-levels deep, and -; store the session data in those directories. This is useful if -; your OS has problems with many files in one directory, and is -; a more efficient layout for servers that handle many sessions. -; -; NOTE 1: PHP will not create this directory structure automatically. -; You can use the script in the ext/session dir for that purpose. -; NOTE 2: See the section on garbage collection below if you choose to -; use subdirectories for session storage -; -; The file storage module creates files using mode 600 by default. -; You can change that by using -; -; session.save_path = "N;MODE;/path" -; -; where MODE is the octal representation of the mode. Note that this -; does not overwrite the process's umask. -; http://php.net/session.save-path -;session.save_path = "/tmp" - -; Whether to use strict session mode. -; Strict session mode does not accept uninitialized session ID and regenerate -; session ID if browser sends uninitialized session ID. Strict mode protects -; applications from session fixation via session adoption vulnerability. It is -; disabled by default for maximum compatibility, but enabling it is encouraged. -; https://wiki.php.net/rfc/strict_sessions -session.use_strict_mode = 0 - -; Whether to use cookies. -; http://php.net/session.use-cookies -session.use_cookies = 1 - -; http://php.net/session.cookie-secure -;session.cookie_secure = - -; This option forces PHP to fetch and use a cookie for storing and maintaining -; the session id. We encourage this operation as it's very helpful in combating -; session hijacking when not specifying and managing your own session id. It is -; not the be-all and end-all of session hijacking defense, but it's a good start. -; http://php.net/session.use-only-cookies -session.use_only_cookies = 1 - -; Name of the session (used as cookie name). -; http://php.net/session.name -session.name = PHPSESSID - -; Initialize session on request startup. -; http://php.net/session.auto-start -session.auto_start = 0 - -; Lifetime in seconds of cookie or, if 0, until browser is restarted. -; http://php.net/session.cookie-lifetime -session.cookie_lifetime = 0 - -; The path for which the cookie is valid. -; http://php.net/session.cookie-path -session.cookie_path = / - -; The domain for which the cookie is valid. -; http://php.net/session.cookie-domain -session.cookie_domain = - -; Whether or not to add the httpOnly flag to the cookie, which makes it inaccessible to browser scripting languages such as JavaScript. -; http://php.net/session.cookie-httponly -session.cookie_httponly = - -; Handler used to serialize data. php is the standard serializer of PHP. -; http://php.net/session.serialize-handler -session.serialize_handler = php - -; Defines the probability that the 'garbage collection' process is started -; on every session initialization. The probability is calculated by using -; gc_probability/gc_divisor. Where session.gc_probability is the numerator -; and gc_divisor is the denominator in the equation. Setting this value to 1 -; when the session.gc_divisor value is 100 will give you approximately a 1% chance -; the gc will run on any give request. -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; http://php.net/session.gc-probability -session.gc_probability = 1 - -; Defines the probability that the 'garbage collection' process is started on every -; session initialization. The probability is calculated by using the following equation: -; gc_probability/gc_divisor. Where session.gc_probability is the numerator and -; session.gc_divisor is the denominator in the equation. Setting this value to 1 -; when the session.gc_divisor value is 100 will give you approximately a 1% chance -; the gc will run on any give request. Increasing this value to 1000 will give you -; a 0.1% chance the gc will run on any give request. For high volume production servers, -; this is a more efficient approach. -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 -; http://php.net/session.gc-divisor -session.gc_divisor = 1000 - -; After this number of seconds, stored data will be seen as 'garbage' and -; cleaned up by the garbage collection process. -; http://php.net/session.gc-maxlifetime -session.gc_maxlifetime = 1440 - -; NOTE: If you are using the subdirectory option for storing session files -; (see session.save_path above), then garbage collection does *not* -; happen automatically. You will need to do your own garbage -; collection through a shell script, cron entry, or some other method. -; For example, the following script would is the equivalent of -; setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes): -; find /path/to/sessions -cmin +24 -type f | xargs rm - -; Check HTTP Referer to invalidate externally stored URLs containing ids. -; HTTP_REFERER has to contain this substring for the session to be -; considered as valid. -; http://php.net/session.referer-check -session.referer_check = - -; Set to {nocache,private,public,} to determine HTTP caching aspects -; or leave this empty to avoid sending anti-caching headers. -; http://php.net/session.cache-limiter -session.cache_limiter = nocache - -; Document expires after n minutes. -; http://php.net/session.cache-expire -session.cache_expire = 180 - -; trans sid support is disabled by default. -; Use of trans sid may risk your users' security. -; Use this option with caution. -; - User may send URL contains active session ID -; to other person via. email/irc/etc. -; - URL that contains active session ID may be stored -; in publicly accessible computer. -; - User may access your site with the same session ID -; always using URL stored in browser's history or bookmarks. -; http://php.net/session.use-trans-sid -session.use_trans_sid = 0 - -; Set session ID character length. This value could be between 22 to 256. -; Shorter length than default is supported only for compatibility reason. -; Users should use 32 or more chars. -; http://php.net/session.sid-length -; Default Value: 32 -; Development Value: 26 -; Production Value: 26 -session.sid_length = 26 - -; The URL rewriter will look for URLs in a defined set of HTML tags. -; is special; if you include them here, the rewriter will -; add a hidden field with the info which is otherwise appended -; to URLs. tag's action attribute URL will not be modified -; unless it is specified. -; Note that all valid entries require a "=", even if no value follows. -; Default Value: "a=href,area=href,frame=src,form=" -; Development Value: "a=href,area=href,frame=src,form=" -; Production Value: "a=href,area=href,frame=src,form=" -; http://php.net/url-rewriter.tags -session.trans_sid_tags = "a=href,area=href,frame=src,form=" - -; URL rewriter does not rewrite absolute URLs by default. -; To enable rewrites for absolute pathes, target hosts must be specified -; at RUNTIME. i.e. use ini_set() -; tags is special. PHP will check action attribute's URL regardless -; of session.trans_sid_tags setting. -; If no host is defined, HTTP_HOST will be used for allowed host. -; Example value: php.net,www.php.net,wiki.php.net -; Use "," for multiple hosts. No spaces are allowed. -; Default Value: "" -; Development Value: "" -; Production Value: "" -;session.trans_sid_hosts="" - -; Define how many bits are stored in each character when converting -; the binary hash data to something readable. -; Possible values: -; 4 (4 bits: 0-9, a-f) -; 5 (5 bits: 0-9, a-v) -; 6 (6 bits: 0-9, a-z, A-Z, "-", ",") -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 -; http://php.net/session.hash-bits-per-character -session.sid_bits_per_character = 5 - -; Enable upload progress tracking in $_SESSION -; Default Value: On -; Development Value: On -; Production Value: On -; http://php.net/session.upload-progress.enabled -;session.upload_progress.enabled = On - -; Cleanup the progress information as soon as all POST data has been read -; (i.e. upload completed). -; Default Value: On -; Development Value: On -; Production Value: On -; http://php.net/session.upload-progress.cleanup -;session.upload_progress.cleanup = On - -; A prefix used for the upload progress key in $_SESSION -; Default Value: "upload_progress_" -; Development Value: "upload_progress_" -; Production Value: "upload_progress_" -; http://php.net/session.upload-progress.prefix -;session.upload_progress.prefix = "upload_progress_" - -; The index name (concatenated with the prefix) in $_SESSION -; containing the upload progress information -; Default Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Development Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Production Value: "PHP_SESSION_UPLOAD_PROGRESS" -; http://php.net/session.upload-progress.name -;session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS" - -; How frequently the upload progress should be updated. -; Given either in percentages (per-file), or in bytes -; Default Value: "1%" -; Development Value: "1%" -; Production Value: "1%" -; http://php.net/session.upload-progress.freq -;session.upload_progress.freq = "1%" - -; The minimum delay between updates, in seconds -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; http://php.net/session.upload-progress.min-freq -;session.upload_progress.min_freq = "1" - -; Only write session data when session data is changed. Enabled by default. -; http://php.net/session.lazy-write -;session.lazy_write = On - -[Assertion] -; Switch whether to compile assertions at all (to have no overhead at run-time) -; -1: Do not compile at all -; 0: Jump over assertion at run-time -; 1: Execute assertions -; Changing from or to a negative value is only possible in php.ini! (For turning assertions on and off at run-time, see assert.active, when zend.assertions = 1) -; Default Value: 1 -; Development Value: 1 -; Production Value: -1 -; http://php.net/zend.assertions -zend.assertions = -1 - -; Assert(expr); active by default. -; http://php.net/assert.active -;assert.active = On - -; Throw an AssertationException on failed assertions -; http://php.net/assert.exception -;assert.exception = On - -; Issue a PHP warning for each failed assertion. (Overridden by assert.exception if active) -; http://php.net/assert.warning -;assert.warning = On - -; Don't bail out by default. -; http://php.net/assert.bail -;assert.bail = Off - -; User-function to be called if an assertion fails. -; http://php.net/assert.callback -;assert.callback = 0 - -; Eval the expression with current error_reporting(). Set to true if you want -; error_reporting(0) around the eval(). -; http://php.net/assert.quiet-eval -;assert.quiet_eval = 0 - -[COM] -; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs -; http://php.net/com.typelib-file -;com.typelib_file = - -; allow Distributed-COM calls -; http://php.net/com.allow-dcom -;com.allow_dcom = true - -; autoregister constants of a components typlib on com_load() -; http://php.net/com.autoregister-typelib -;com.autoregister_typelib = true - -; register constants casesensitive -; http://php.net/com.autoregister-casesensitive -;com.autoregister_casesensitive = false - -; show warnings on duplicate constant registrations -; http://php.net/com.autoregister-verbose -;com.autoregister_verbose = true - -; The default character set code-page to use when passing strings to and from COM objects. -; Default: system ANSI code page -;com.code_page= - -[mbstring] -; language for internal character representation. -; This affects mb_send_mail() and mbstring.detect_order. -; http://php.net/mbstring.language -;mbstring.language = Japanese - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; internal/script encoding. -; Some encoding cannot work as internal encoding. (e.g. SJIS, BIG5, ISO-2022-*) -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;mbstring.internal_encoding = - -; Use of this INI entry is deprecated, use global input_encoding instead. -; http input encoding. -; mbstring.encoding_traslation = On is needed to use this setting. -; If empty, default_charset or input_encoding or mbstring.input is used. -; The precedence is: default_charset < intput_encoding < mbsting.http_input -; http://php.net/mbstring.http-input -;mbstring.http_input = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; http output encoding. -; mb_output_handler must be registered as output buffer to function. -; If empty, default_charset or output_encoding or mbstring.http_output is used. -; The precedence is: default_charset < output_encoding < mbstring.http_output -; To use an output encoding conversion, mbstring's output handler must be set -; otherwise output encoding conversion cannot be performed. -; http://php.net/mbstring.http-output -;mbstring.http_output = - -; enable automatic encoding translation according to -; mbstring.internal_encoding setting. Input chars are -; converted to internal encoding by setting this to On. -; Note: Do _not_ use automatic encoding translation for -; portable libs/applications. -; http://php.net/mbstring.encoding-translation -;mbstring.encoding_translation = Off - -; automatic encoding detection order. -; "auto" detect order is changed according to mbstring.language -; http://php.net/mbstring.detect-order -;mbstring.detect_order = auto - -; substitute_character used when character cannot be converted -; one from another -; http://php.net/mbstring.substitute-character -;mbstring.substitute_character = none - -; overload(replace) single byte functions by mbstring functions. -; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(), -; etc. Possible values are 0,1,2,4 or combination of them. -; For example, 7 for overload everything. -; 0: No overload -; 1: Overload mail() function -; 2: Overload str*() functions -; 4: Overload ereg*() functions -; http://php.net/mbstring.func-overload -;mbstring.func_overload = 0 - -; enable strict encoding detection. -; Default: Off -;mbstring.strict_detection = On - -; This directive specifies the regex pattern of content types for which mb_output_handler() -; is activated. -; Default: mbstring.http_output_conv_mimetype=^(text/|application/xhtml\+xml) -;mbstring.http_output_conv_mimetype= - -[gd] -; Tell the jpeg decode to ignore warnings and try to create -; a gd image. The warning will then be displayed as notices -; disabled by default -; http://php.net/gd.jpeg-ignore-warning -;gd.jpeg_ignore_warning = 1 - -[exif] -; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS. -; With mbstring support this will automatically be converted into the encoding -; given by corresponding encode setting. When empty mbstring.internal_encoding -; is used. For the decode settings you can distinguish between motorola and -; intel byte order. A decode setting cannot be empty. -; http://php.net/exif.encode-unicode -;exif.encode_unicode = ISO-8859-15 - -; http://php.net/exif.decode-unicode-motorola -;exif.decode_unicode_motorola = UCS-2BE - -; http://php.net/exif.decode-unicode-intel -;exif.decode_unicode_intel = UCS-2LE - -; http://php.net/exif.encode-jis -;exif.encode_jis = - -; http://php.net/exif.decode-jis-motorola -;exif.decode_jis_motorola = JIS - -; http://php.net/exif.decode-jis-intel -;exif.decode_jis_intel = JIS - -[Tidy] -; The path to a default tidy configuration file to use when using tidy -; http://php.net/tidy.default-config -;tidy.default_config = /usr/local/lib/php/default.tcfg - -; Should tidy clean and repair output automatically? -; WARNING: Do not use this option if you are generating non-html content -; such as dynamic images -; http://php.net/tidy.clean-output -tidy.clean_output = Off - -[soap] -; Enables or disables WSDL caching feature. -; http://php.net/soap.wsdl-cache-enabled -soap.wsdl_cache_enabled=1 - -; Sets the directory name where SOAP extension will put cache files. -; http://php.net/soap.wsdl-cache-dir -soap.wsdl_cache_dir="/tmp" - -; (time to live) Sets the number of second while cached file will be used -; instead of original one. -; http://php.net/soap.wsdl-cache-ttl -soap.wsdl_cache_ttl=86400 - -; Sets the size of the cache limit. (Max. number of WSDL files to cache) -soap.wsdl_cache_limit = 5 - -[sysvshm] -; A default size of the shared memory segment -;sysvshm.init_mem = 10000 - -[ldap] -; Sets the maximum number of open links or -1 for unlimited. -ldap.max_links = -1 - -[dba] -;dba.default_handler= - -[opcache] -; Determines if Zend OPCache is enabled -;opcache.enable=1 - -; Determines if Zend OPCache is enabled for the CLI version of PHP -;opcache.enable_cli=1 - -; The OPcache shared memory storage size. -;opcache.memory_consumption=128 - -; The amount of memory for interned strings in Mbytes. -;opcache.interned_strings_buffer=8 - -; The maximum number of keys (scripts) in the OPcache hash table. -; Only numbers between 200 and 1000000 are allowed. -;opcache.max_accelerated_files=10000 - -; The maximum percentage of "wasted" memory until a restart is scheduled. -;opcache.max_wasted_percentage=5 - -; When this directive is enabled, the OPcache appends the current working -; directory to the script key, thus eliminating possible collisions between -; files with the same name (basename). Disabling the directive improves -; performance, but may break existing applications. -;opcache.use_cwd=1 - -; When disabled, you must reset the OPcache manually or restart the -; webserver for changes to the filesystem to take effect. -;opcache.validate_timestamps=1 - -; How often (in seconds) to check file timestamps for changes to the shared -; memory storage allocation. ("1" means validate once per second, but only -; once per request. "0" means always validate) -;opcache.revalidate_freq=2 - -; Enables or disables file search in include_path optimization -;opcache.revalidate_path=0 - -; If disabled, all PHPDoc comments are dropped from the code to reduce the -; size of the optimized code. -;opcache.save_comments=1 - -; If enabled, a fast shutdown sequence is used for the accelerated code -; Depending on the used Memory Manager this may cause some incompatibilities. -;opcache.fast_shutdown=0 - -; Allow file existence override (file_exists, etc.) performance feature. -;opcache.enable_file_override=0 - -; A bitmask, where each bit enables or disables the appropriate OPcache -; passes -;opcache.optimization_level=0xffffffff - -;opcache.inherited_hack=1 -;opcache.dups_fix=0 - -; The location of the OPcache blacklist file (wildcards allowed). -; Each OPcache blacklist file is a text file that holds the names of files -; that should not be accelerated. The file format is to add each filename -; to a new line. The filename may be a full path or just a file prefix -; (i.e., /var/www/x blacklists all the files and directories in /var/www -; that start with 'x'). Line starting with a ; are ignored (comments). -;opcache.blacklist_filename= - -; Allows exclusion of large files from being cached. By default all files -; are cached. -;opcache.max_file_size=0 - -; Check the cache checksum each N requests. -; The default value of "0" means that the checks are disabled. -;opcache.consistency_checks=0 - -; How long to wait (in seconds) for a scheduled restart to begin if the cache -; is not being accessed. -;opcache.force_restart_timeout=180 - -; OPcache error_log file name. Empty string assumes "stderr". -;opcache.error_log= - -; All OPcache errors go to the Web server log. -; By default, only fatal errors (level 0) or errors (level 1) are logged. -; You can also enable warnings (level 2), info messages (level 3) or -; debug messages (level 4). -;opcache.log_verbosity_level=1 - -; Preferred Shared Memory back-end. Leave empty and let the system decide. -;opcache.preferred_memory_model= - -; Protect the shared memory from unexpected writing during script execution. -; Useful for internal debugging only. -;opcache.protect_memory=0 - -; Allows calling OPcache API functions only from PHP scripts which path is -; started from specified string. The default "" means no restriction -;opcache.restrict_api= - -; Mapping base of shared memory segments (for Windows only). All the PHP -; processes have to map shared memory into the same address space. This -; directive allows to manually fix the "Unable to reattach to base address" -; errors. -;opcache.mmap_base= - -; Enables and sets the second level cache directory. -; It should improve performance when SHM memory is full, at server restart or -; SHM reset. The default "" disables file based caching. -;opcache.file_cache= - -; Enables or disables opcode caching in shared memory. -;opcache.file_cache_only=0 - -; Enables or disables checksum validation when script loaded from file cache. -;opcache.file_cache_consistency_checks=1 - -; Implies opcache.file_cache_only=1 for a certain process that failed to -; reattach to the shared memory (for Windows only). Explicitly enabled file -; cache is required. -;opcache.file_cache_fallback=1 - -; Enables or disables copying of PHP code (text segment) into HUGE PAGES. -; This should improve performance, but requires appropriate OS configuration. -;opcache.huge_code_pages=1 - -; Validate cached file permissions. -;opcache.validate_permission=0 - -; Prevent name collisions in chroot'ed environment. -;opcache.validate_root=0 - -[curl] -; A default value for the CURLOPT_CAINFO option. This is required to be an -; absolute path. -;curl.cainfo = - -[openssl] -; The location of a Certificate Authority (CA) file on the local filesystem -; to use when verifying the identity of SSL/TLS peers. Most users should -; not specify a value for this directive as PHP will attempt to use the -; OS-managed cert stores in its absence. If specified, this value may still -; be overridden on a per-stream basis via the "cafile" SSL stream context -; option. -;openssl.cafile= - -; If openssl.cafile is not specified or if the CA file is not found, the -; directory pointed to by openssl.capath is searched for a suitable -; certificate. This value must be a correctly hashed certificate directory. -; Most users should not specify a value for this directive as PHP will -; attempt to use the OS-managed cert stores in its absence. If specified, -; this value may still be overridden on a per-stream basis via the "capath" -; SSL stream context option. -;openssl.capath= - -; Local Variables: -; tab-width: 4 -; End: - -[XDebug] -xdebug.remote_enable = 1 -xdebug.remote_handler = "dbgp" -; Set to host.docker.internal on Mac and Windows, otherwise, set to host real ip -xdebug.remote_host = host.docker.internal -;xdebug.remote_port = 9000 -xdebug.remote_log = /var/log/php/xdebug.log - -SERVER_ENV=develop - -yaf.use_spl_autoload=1 - -[xhprof] -;xhprof.output_dir = /var/log/php/xhprof.log \ No newline at end of file diff --git a/php7/7.3.33/conf/php-fpm.conf b/php7/7.3.33/conf/php-fpm.conf deleted file mode 100644 index 131835891..000000000 --- a/php7/7.3.33/conf/php-fpm.conf +++ /dev/null @@ -1,423 +0,0 @@ -; Start a new pool named 'www'. -; the variable $pool can be used in any directive and will be replaced by the -; pool name ('www' here) -[www] - -; Per pool prefix -; It only applies on the following directives: -; - 'access.log' -; - 'slowlog' -; - 'listen' (unixsocket) -; - 'chroot' -; - 'chdir' -; - 'php_values' -; - 'php_admin_values' -; When not set, the global prefix (or NONE) applies instead. -; Note: This directive can also be relative to the global prefix. -; Default Value: none -;prefix = /path/to/pools/$pool - -; Unix user/group of processes -; Note: The user is mandatory. If the group is not set, the default user's group -; will be used. -user = www-data -group = www-data - -; The address on which to accept FastCGI requests. -; Valid syntaxes are: -; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on -; a specific port; -; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on -; a specific port; -; 'port' - to listen on a TCP socket to all addresses -; (IPv6 and IPv4-mapped) on a specific port; -; '/path/to/unix/socket' - to listen on a unix socket. -; Note: This value is mandatory. -listen = 127.0.0.1:9000 - -; Set listen(2) backlog. -; Default Value: 511 (-1 on FreeBSD and OpenBSD) -;listen.backlog = 511 - -; Set permissions for unix socket, if one is used. In Linux, read/write -; permissions must be set in order to allow connections from a web server. Many -; BSD-derived systems allow connections regardless of permissions. -; Default Values: user and group are set as the running user -; mode is set to 0660 -;listen.owner = www-data -;listen.group = www-data -;listen.mode = 0660 -; When POSIX Access Control Lists are supported you can set them using -; these options, value is a comma separated list of user/group names. -; When set, listen.owner and listen.group are ignored -;listen.acl_users = -;listen.acl_groups = - -; List of addresses (IPv4/IPv6) of FastCGI clients which are allowed to connect. -; Equivalent to the FCGI_WEB_SERVER_ADDRS environment variable in the original -; PHP FCGI (5.2.2+). Makes sense only with a tcp listening socket. Each address -; must be separated by a comma. If this value is left blank, connections will be -; accepted from any ip address. -; Default Value: any -;listen.allowed_clients = 127.0.0.1 - -; Specify the nice(2) priority to apply to the pool processes (only if set) -; The value can vary from -19 (highest priority) to 20 (lower priority) -; Note: - It will only work if the FPM master process is launched as root -; - The pool processes will inherit the master process priority -; unless it specified otherwise -; Default Value: no set -; process.priority = -19 - -; Set the process dumpable flag (PR_SET_DUMPABLE prctl) even if the process user -; or group is differrent than the master process user. It allows to create process -; core dump and ptrace the process for the pool user. -; Default Value: no -; process.dumpable = yes - -; Choose how the process manager will control the number of child processes. -; Possible Values: -; static - a fixed number (pm.max_children) of child processes; -; dynamic - the number of child processes are set dynamically based on the -; following directives. With this process management, there will be -; always at least 1 children. -; pm.max_children - the maximum number of children that can -; be alive at the same time. -; pm.start_servers - the number of children created on startup. -; pm.min_spare_servers - the minimum number of children in 'idle' -; state (waiting to process). If the number -; of 'idle' processes is less than this -; number then some children will be created. -; pm.max_spare_servers - the maximum number of children in 'idle' -; state (waiting to process). If the number -; of 'idle' processes is greater than this -; number then some children will be killed. -; ondemand - no children are created at startup. Children will be forked when -; new requests will connect. The following parameter are used: -; pm.max_children - the maximum number of children that -; can be alive at the same time. -; pm.process_idle_timeout - The number of seconds after which -; an idle process will be killed. -; Note: This value is mandatory. -pm = dynamic - -; The number of child processes to be created when pm is set to 'static' and the -; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'. -; This value sets the limit on the number of simultaneous requests that will be -; served. Equivalent to the ApacheMaxClients directive with mpm_prefork. -; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP -; CGI. The below defaults are based on a server without much resources. Don't -; forget to tweak pm.* to fit your needs. -; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand' -; Note: This value is mandatory. -pm.max_children = 10 - -; The number of child processes created on startup. -; Note: Used only when pm is set to 'dynamic' -; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2 -pm.start_servers = 2 - -; The desired minimum number of idle server processes. -; Note: Used only when pm is set to 'dynamic' -; Note: Mandatory when pm is set to 'dynamic' -pm.min_spare_servers = 1 - -; The desired maximum number of idle server processes. -; Note: Used only when pm is set to 'dynamic' -; Note: Mandatory when pm is set to 'dynamic' -pm.max_spare_servers = 3 - -; The number of seconds after which an idle process will be killed. -; Note: Used only when pm is set to 'ondemand' -; Default Value: 10s -;pm.process_idle_timeout = 10s; - -; The number of requests each child process should execute before respawning. -; This can be useful to work around memory leaks in 3rd party libraries. For -; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS. -; Default Value: 0 -;pm.max_requests = 500 - -; The URI to view the FPM status page. If this value is not set, no URI will be -; recognized as a status page. It shows the following informations: -; pool - the name of the pool; -; process manager - static, dynamic or ondemand; -; start time - the date and time FPM has started; -; start since - number of seconds since FPM has started; -; accepted conn - the number of request accepted by the pool; -; listen queue - the number of request in the queue of pending -; connections (see backlog in listen(2)); -; max listen queue - the maximum number of requests in the queue -; of pending connections since FPM has started; -; listen queue len - the size of the socket queue of pending connections; -; idle processes - the number of idle processes; -; active processes - the number of active processes; -; total processes - the number of idle + active processes; -; max active processes - the maximum number of active processes since FPM -; has started; -; max children reached - number of times, the process limit has been reached, -; when pm tries to start more children (works only for -; pm 'dynamic' and 'ondemand'); -; Value are updated in real time. -; Example output: -; pool: www -; process manager: static -; start time: 01/Jul/2011:17:53:49 +0200 -; start since: 62636 -; accepted conn: 190460 -; listen queue: 0 -; max listen queue: 1 -; listen queue len: 42 -; idle processes: 4 -; active processes: 11 -; total processes: 15 -; max active processes: 12 -; max children reached: 0 -; -; By default the status page output is formatted as text/plain. Passing either -; 'html', 'xml' or 'json' in the query string will return the corresponding -; output syntax. Example: -; http://www.foo.bar/status -; http://www.foo.bar/status?json -; http://www.foo.bar/status?html -; http://www.foo.bar/status?xml -; -; By default the status page only outputs short status. Passing 'full' in the -; query string will also return status for each pool process. -; Example: -; http://www.foo.bar/status?full -; http://www.foo.bar/status?json&full -; http://www.foo.bar/status?html&full -; http://www.foo.bar/status?xml&full -; The Full status returns for each process: -; pid - the PID of the process; -; state - the state of the process (Idle, Running, ...); -; start time - the date and time the process has started; -; start since - the number of seconds since the process has started; -; requests - the number of requests the process has served; -; request duration - the duration in µs of the requests; -; request method - the request method (GET, POST, ...); -; request URI - the request URI with the query string; -; content length - the content length of the request (only with POST); -; user - the user (PHP_AUTH_USER) (or '-' if not set); -; script - the main script called (or '-' if not set); -; last request cpu - the %cpu the last request consumed -; it's always 0 if the process is not in Idle state -; because CPU calculation is done when the request -; processing has terminated; -; last request memory - the max amount of memory the last request consumed -; it's always 0 if the process is not in Idle state -; because memory calculation is done when the request -; processing has terminated; -; If the process is in Idle state, then informations are related to the -; last request the process has served. Otherwise informations are related to -; the current request being served. -; Example output: -; ************************ -; pid: 31330 -; state: Running -; start time: 01/Jul/2011:17:53:49 +0200 -; start since: 63087 -; requests: 12808 -; request duration: 1250261 -; request method: GET -; request URI: /test_mem.php?N=10000 -; content length: 0 -; user: - -; script: /home/fat/web/docs/php/test_mem.php -; last request cpu: 0.00 -; last request memory: 0 -; -; Note: There is a real-time FPM status monitoring sample web page available -; It's available in: /usr/local/share/php/fpm/status.html -; -; Note: The value must start with a leading slash (/). The value can be -; anything, but it may not be a good idea to use the .php extension or it -; may conflict with a real PHP file. -; Default Value: not set -;pm.status_path = /status - -; The ping URI to call the monitoring page of FPM. If this value is not set, no -; URI will be recognized as a ping page. This could be used to test from outside -; that FPM is alive and responding, or to -; - create a graph of FPM availability (rrd or such); -; - remove a server from a group if it is not responding (load balancing); -; - trigger alerts for the operating team (24/7). -; Note: The value must start with a leading slash (/). The value can be -; anything, but it may not be a good idea to use the .php extension or it -; may conflict with a real PHP file. -; Default Value: not set -;ping.path = /ping - -; This directive may be used to customize the response of a ping request. The -; response is formatted as text/plain with a 200 response code. -; Default Value: pong -;ping.response = pong - -; The access log file -; Default: not set -;access.log = log/$pool.access.log - -; The access log format. -; The following syntax is allowed -; %%: the '%' character -; %C: %CPU used by the request -; it can accept the following format: -; - %{user}C for user CPU only -; - %{system}C for system CPU only -; - %{total}C for user + system CPU (default) -; %d: time taken to serve the request -; it can accept the following format: -; - %{seconds}d (default) -; - %{miliseconds}d -; - %{mili}d -; - %{microseconds}d -; - %{micro}d -; %e: an environment variable (same as $_ENV or $_SERVER) -; it must be associated with embraces to specify the name of the env -; variable. Some exemples: -; - server specifics like: %{REQUEST_METHOD}e or %{SERVER_PROTOCOL}e -; - HTTP headers like: %{HTTP_HOST}e or %{HTTP_USER_AGENT}e -; %f: script filename -; %l: content-length of the request (for POST request only) -; %m: request method -; %M: peak of memory allocated by PHP -; it can accept the following format: -; - %{bytes}M (default) -; - %{kilobytes}M -; - %{kilo}M -; - %{megabytes}M -; - %{mega}M -; %n: pool name -; %o: output header -; it must be associated with embraces to specify the name of the header: -; - %{Content-Type}o -; - %{X-Powered-By}o -; - %{Transfert-Encoding}o -; - .... -; %p: PID of the child that serviced the request -; %P: PID of the parent of the child that serviced the request -; %q: the query string -; %Q: the '?' character if query string exists -; %r: the request URI (without the query string, see %q and %Q) -; %R: remote IP address -; %s: status (response code) -; %t: server time the request was received -; it can accept a strftime(3) format: -; %d/%b/%Y:%H:%M:%S %z (default) -; The strftime(3) format must be encapsuled in a %{}t tag -; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t -; %T: time the log has been written (the request has finished) -; it can accept a strftime(3) format: -; %d/%b/%Y:%H:%M:%S %z (default) -; The strftime(3) format must be encapsuled in a %{}t tag -; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t -; %u: remote user -; -; Default: "%R - %u %t \"%m %r\" %s" -;access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%" - -; The log file for slow requests -; Default Value: not set -; Note: slowlog is mandatory if request_slowlog_timeout is set -slowlog = /var/log/php/fpm.slow.log - -; The timeout for serving a single request after which a PHP backtrace will be -; dumped to the 'slowlog' file. A value of '0s' means 'off'. -; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) -; Default Value: 0 -request_slowlog_timeout = 3 - -; Depth of slow log stack trace. -; Default Value: 20 -;request_slowlog_trace_depth = 20 - -; The timeout for serving a single request after which the worker process will -; be killed. This option should be used when the 'max_execution_time' ini option -; does not stop script execution for some reason. A value of '0' means 'off'. -; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) -; Default Value: 0 -;request_terminate_timeout = 0 - -; Set open file descriptor rlimit. -; Default Value: system defined value -;rlimit_files = 1024 - -; Set max core size rlimit. -; Possible Values: 'unlimited' or an integer greater or equal to 0 -; Default Value: system defined value -;rlimit_core = 0 - -; Chroot to this directory at the start. This value must be defined as an -; absolute path. When this value is not set, chroot is not used. -; Note: you can prefix with '$prefix' to chroot to the pool prefix or one -; of its subdirectories. If the pool prefix is not set, the global prefix -; will be used instead. -; Note: chrooting is a great security feature and should be used whenever -; possible. However, all PHP paths will be relative to the chroot -; (error_log, sessions.save_path, ...). -; Default Value: not set -;chroot = - -; Chdir to this directory at the start. -; Note: relative path can be used. -; Default Value: current directory or / when chroot -;chdir = /var/www - -; Redirect worker stdout and stderr into main error log. If not set, stdout and -; stderr will be redirected to /dev/null according to FastCGI specs. -; Note: on highloaded environement, this can cause some delay in the page -; process time (several ms). -; Default Value: no -catch_workers_output = yes - -; Clear environment in FPM workers -; Prevents arbitrary environment variables from reaching FPM worker processes -; by clearing the environment in workers before env vars specified in this -; pool configuration are added. -; Setting to "no" will make all environment variables available to PHP code -; via getenv(), $_ENV and $_SERVER. -; Default Value: yes -;clear_env = no - -; Limits the extensions of the main script FPM will allow to parse. This can -; prevent configuration mistakes on the web server side. You should only limit -; FPM to .php extensions to prevent malicious users to use other extensions to -; execute php code. -; Note: set an empty value to allow all extensions. -; Default Value: .php -;security.limit_extensions = .php .php3 .php4 .php5 .php7 - -; Pass environment variables like LD_LIBRARY_PATH. All $VARIABLEs are taken from -; the current environment. -; Default Value: clean env -;env[HOSTNAME] = $HOSTNAME -;env[PATH] = /usr/local/bin:/usr/bin:/bin -;env[TMP] = /tmp -;env[TMPDIR] = /tmp -;env[TEMP] = /tmp - -; Additional php.ini defines, specific to this pool of workers. These settings -; overwrite the values previously defined in the php.ini. The directives are the -; same as the PHP SAPI: -; php_value/php_flag - you can set classic ini defines which can -; be overwritten from PHP call 'ini_set'. -; php_admin_value/php_admin_flag - these directives won't be overwritten by -; PHP call 'ini_set' -; For php_*flag, valid values are on, off, 1, 0, true, false, yes or no. - -; Defining 'extension' will load the corresponding shared extension from -; extension_dir. Defining 'disable_functions' or 'disable_classes' will not -; overwrite previously defined php.ini values, but will append the new value -; instead. - -; Note: path INI options can be relative and will be expanded with the prefix -; (pool, global or /usr/local) - -; Default Value: nothing is defined by default except the values in php.ini and -; specified at startup with the -d argument -;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com -;php_flag[display_errors] = off -;php_admin_value[error_log] = /var/log/fpm-php.www.log -;php_admin_flag[log_errors] = on -;php_admin_value[memory_limit] = 32M diff --git a/php7/7.3.33/conf/php.ini b/php7/7.3.33/conf/php.ini deleted file mode 100644 index b6b0aee69..000000000 --- a/php7/7.3.33/conf/php.ini +++ /dev/null @@ -1,1933 +0,0 @@ -[PHP] - -;;;;;;;;;;;;;;;;;;; -; About php.ini ; -;;;;;;;;;;;;;;;;;;; -; PHP's initialization file, generally called php.ini, is responsible for -; configuring many of the aspects of PHP's behavior. - -; PHP attempts to find and load this configuration from a number of locations. -; The following is a summary of its search order: -; 1. SAPI module specific location. -; 2. The PHPRC environment variable. (As of PHP 5.2.0) -; 3. A number of predefined registry keys on Windows (As of PHP 5.2.0) -; 4. Current working directory (except CLI) -; 5. The web server's directory (for SAPI modules), or directory of PHP -; (otherwise in Windows) -; 6. The directory from the --with-config-file-path compile time option, or the -; Windows directory (C:\windows or C:\winnt) -; See the PHP docs for more specific information. -; http://php.net/configuration.file - -; The syntax of the file is extremely simple. Whitespace and lines -; beginning with a semicolon are silently ignored (as you probably guessed). -; Section headers (e.g. [Foo]) are also silently ignored, even though -; they might mean something in the future. - -; Directives following the section heading [PATH=/www/mysite] only -; apply to PHP files in the /www/mysite directory. Directives -; following the section heading [HOST=www.example.com] only apply to -; PHP files served from www.example.com. Directives set in these -; special sections cannot be overridden by user-defined INI files or -; at runtime. Currently, [PATH=] and [HOST=] sections only work under -; CGI/FastCGI. -; http://php.net/ini.sections - -; Directives are specified using the following syntax: -; directive = value -; Directive names are *case sensitive* - foo=bar is different from FOO=bar. -; Directives are variables used to configure PHP or PHP extensions. -; There is no name validation. If PHP can't find an expected -; directive because it is not set or is mistyped, a default value will be used. - -; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one -; of the INI constants (On, Off, True, False, Yes, No and None) or an expression -; (e.g. E_ALL & ~E_NOTICE), a quoted string ("bar"), or a reference to a -; previously set variable or directive (e.g. ${foo}) - -; Expressions in the INI file are limited to bitwise operators and parentheses: -; | bitwise OR -; ^ bitwise XOR -; & bitwise AND -; ~ bitwise NOT -; ! boolean NOT - -; Boolean flags can be turned on using the values 1, On, True or Yes. -; They can be turned off using the values 0, Off, False or No. - -; An empty string can be denoted by simply not writing anything after the equal -; sign, or by using the None keyword: - -; foo = ; sets foo to an empty string -; foo = None ; sets foo to an empty string -; foo = "None" ; sets foo to the string 'None' - -; If you use constants in your value, and these constants belong to a -; dynamically loaded extension (either a PHP extension or a Zend extension), -; you may only use these constants *after* the line that loads the extension. - -;;;;;;;;;;;;;;;;;;; -; About this file ; -;;;;;;;;;;;;;;;;;;; -; PHP comes packaged with two INI files. One that is recommended to be used -; in production environments and one that is recommended to be used in -; development environments. - -; php.ini-production contains settings which hold security, performance and -; best practices at its core. But please be aware, these settings may break -; compatibility with older or less security conscience applications. We -; recommending using the production ini in production and testing environments. - -; php.ini-development is very similar to its production variant, except it is -; much more verbose when it comes to errors. We recommend using the -; development version only in development environments, as errors shown to -; application users can inadvertently leak otherwise secure information. - -; This is php.ini-production INI file. - -;;;;;;;;;;;;;;;;;;; -; Quick Reference ; -;;;;;;;;;;;;;;;;;;; -; The following are all the settings which are different in either the production -; or development versions of the INIs with respect to PHP's default behavior. -; Please see the actual settings later in the document for more details as to why -; we recommend these changes in PHP's behavior. - -; display_errors -; Default Value: On -; Development Value: On -; Production Value: Off - -; display_startup_errors -; Default Value: Off -; Development Value: On -; Production Value: Off - -; error_reporting -; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT - -; html_errors -; Default Value: On -; Development Value: On -; Production value: On - -; log_errors -; Default Value: Off -; Development Value: On -; Production Value: On - -; max_input_time -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) - -; output_buffering -; Default Value: Off -; Development Value: 4096 -; Production Value: 4096 - -; register_argc_argv -; Default Value: On -; Development Value: Off -; Production Value: Off - -; request_order -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" - -; session.gc_divisor -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 - -; session.sid_bits_per_character -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 - -; short_open_tag -; Default Value: On -; Development Value: Off -; Production Value: Off - -; track_errors -; Default Value: Off -; Development Value: On -; Production Value: Off - -; variables_order -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS" - -;;;;;;;;;;;;;;;;;;;; -; php.ini Options ; -;;;;;;;;;;;;;;;;;;;; -; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini" -;user_ini.filename = ".user.ini" - -; To disable this feature set this option to empty value -;user_ini.filename = - -; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes) -;user_ini.cache_ttl = 300 - -;;;;;;;;;;;;;;;;;;;; -; Language Options ; -;;;;;;;;;;;;;;;;;;;; - -; Enable the PHP scripting language engine under Apache. -; http://php.net/engine -engine = On - -; This directive determines whether or not PHP will recognize code between -; tags as PHP source which should be processed as such. It is -; generally recommended that should be used and that this feature -; should be disabled, as enabling it may result in issues when generating XML -; documents, however this remains supported for backward compatibility reasons. -; Note that this directive does not control the would work. -; http://php.net/syntax-highlighting -;highlight.string = #DD0000 -;highlight.comment = #FF9900 -;highlight.keyword = #007700 -;highlight.default = #0000BB -;highlight.html = #000000 - -; If enabled, the request will be allowed to complete even if the user aborts -; the request. Consider enabling it if executing long requests, which may end up -; being interrupted by the user or a browser timing out. PHP's default behavior -; is to disable this feature. -; http://php.net/ignore-user-abort -;ignore_user_abort = On - -; Determines the size of the realpath cache to be used by PHP. This value should -; be increased on systems where PHP opens many files to reflect the quantity of -; the file operations performed. -; http://php.net/realpath-cache-size -;realpath_cache_size = 4096k - -; Duration of time, in seconds for which to cache realpath information for a given -; file or directory. For systems with rarely changing files, consider increasing this -; value. -; http://php.net/realpath-cache-ttl -;realpath_cache_ttl = 120 - -; Enables or disables the circular reference collector. -; http://php.net/zend.enable-gc -zend.enable_gc = On - -; If enabled, scripts may be written in encodings that are incompatible with -; the scanner. CP936, Big5, CP949 and Shift_JIS are the examples of such -; encodings. To use this feature, mbstring extension must be enabled. -; Default: Off -;zend.multibyte = Off - -; Allows to set the default encoding for the scripts. This value will be used -; unless "declare(encoding=...)" directive appears at the top of the script. -; Only affects if zend.multibyte is set. -; Default: "" -;zend.script_encoding = - -;;;;;;;;;;;;;;;;; -; Miscellaneous ; -;;;;;;;;;;;;;;;;; - -; Decides whether PHP may expose the fact that it is installed on the server -; (e.g. by adding its signature to the Web server header). It is no security -; threat in any way, but it makes it possible to determine whether you use PHP -; on your server or not. -; http://php.net/expose-php -expose_php = Off - -;;;;;;;;;;;;;;;;;;; -; Resource Limits ; -;;;;;;;;;;;;;;;;;;; - -; Maximum execution time of each script, in seconds -; http://php.net/max-execution-time -; Note: This directive is hardcoded to 0 for the CLI SAPI -max_execution_time = 30 - -; Maximum amount of time each script may spend parsing request data. It's a good -; idea to limit this time on productions servers in order to eliminate unexpectedly -; long running scripts. -; Note: This directive is hardcoded to -1 for the CLI SAPI -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) -; http://php.net/max-input-time -max_input_time = 60 - -; Maximum input variable nesting level -; http://php.net/max-input-nesting-level -;max_input_nesting_level = 64 - -; How many GET/POST/COOKIE input variables may be accepted -; max_input_vars = 1000 - -; Maximum amount of memory a script may consume (128MB) -; http://php.net/memory-limit -memory_limit = 256M - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; Error handling and logging ; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -; This directive informs PHP of which errors, warnings and notices you would like -; it to take action for. The recommended way of setting values for this -; directive is through the use of the error level constants and bitwise -; operators. The error level constants are below here for convenience as well as -; some common settings and their meanings. -; By default, PHP is set to take action on all errors, notices and warnings EXCEPT -; those related to E_NOTICE and E_STRICT, which together cover best practices and -; recommended coding standards in PHP. For performance reasons, this is the -; recommend error reporting setting. Your production server shouldn't be wasting -; resources complaining about best practices and coding standards. That's what -; development servers and development settings are for. -; Note: The php.ini-development file has this setting as E_ALL. This -; means it pretty much reports everything which is exactly what you want during -; development and early testing. -; -; Error Level Constants: -; E_ALL - All errors and warnings (includes E_STRICT as of PHP 5.4.0) -; E_ERROR - fatal run-time errors -; E_RECOVERABLE_ERROR - almost fatal run-time errors -; E_WARNING - run-time warnings (non-fatal errors) -; E_PARSE - compile-time parse errors -; E_NOTICE - run-time notices (these are warnings which often result -; from a bug in your code, but it's possible that it was -; intentional (e.g., using an uninitialized variable and -; relying on the fact it is automatically initialized to an -; empty string) -; E_STRICT - run-time notices, enable to have PHP suggest changes -; to your code which will ensure the best interoperability -; and forward compatibility of your code -; E_CORE_ERROR - fatal errors that occur during PHP's initial startup -; E_CORE_WARNING - warnings (non-fatal errors) that occur during PHP's -; initial startup -; E_COMPILE_ERROR - fatal compile-time errors -; E_COMPILE_WARNING - compile-time warnings (non-fatal errors) -; E_USER_ERROR - user-generated error message -; E_USER_WARNING - user-generated warning message -; E_USER_NOTICE - user-generated notice message -; E_DEPRECATED - warn about code that will not work in future versions -; of PHP -; E_USER_DEPRECATED - user-generated deprecation warnings -; -; Common Values: -; E_ALL (Show all errors, warnings and notices including coding standards.) -; E_ALL & ~E_NOTICE (Show all errors, except for notices) -; E_ALL & ~E_NOTICE & ~E_STRICT (Show all errors, except for notices and coding standards warnings.) -; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors) -; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT -; http://php.net/error-reporting -error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT - -; This directive controls whether or not and where PHP will output errors, -; notices and warnings too. Error output is very useful during development, but -; it could be very dangerous in production environments. Depending on the code -; which is triggering the error, sensitive information could potentially leak -; out of your application such as database usernames and passwords or worse. -; For production environments, we recommend logging errors rather than -; sending them to STDOUT. -; Possible Values: -; Off = Do not display any errors -; stderr = Display errors to STDERR (affects only CGI/CLI binaries!) -; On or stdout = Display errors to STDOUT -; Default Value: On -; Development Value: On -; Production Value: Off -; http://php.net/display-errors -display_errors = Off - -; The display of errors which occur during PHP's startup sequence are handled -; separately from display_errors. PHP's default behavior is to suppress those -; errors from clients. Turning the display of startup errors on can be useful in -; debugging configuration problems. We strongly recommend you -; set this to 'off' for production servers. -; Default Value: Off -; Development Value: On -; Production Value: Off -; http://php.net/display-startup-errors -display_startup_errors = Off - -; Besides displaying errors, PHP can also log errors to locations such as a -; server-specific log, STDERR, or a location specified by the error_log -; directive found below. While errors should not be displayed on productions -; servers they should still be monitored and logging is a great way to do that. -; Default Value: Off -; Development Value: On -; Production Value: On -; http://php.net/log-errors -log_errors = On - -; Set maximum length of log_errors. In error_log information about the source is -; added. The default is 1024 and 0 allows to not apply any maximum length at all. -; http://php.net/log-errors-max-len -log_errors_max_len = 1024 - -; Do not log repeated messages. Repeated errors must occur in same file on same -; line unless ignore_repeated_source is set true. -; http://php.net/ignore-repeated-errors -ignore_repeated_errors = Off - -; Ignore source of message when ignoring repeated messages. When this setting -; is On you will not log errors with repeated messages from different files or -; source lines. -; http://php.net/ignore-repeated-source -ignore_repeated_source = Off - -; If this parameter is set to Off, then memory leaks will not be shown (on -; stdout or in the log). This has only effect in a debug compile, and if -; error reporting includes E_WARNING in the allowed list -; http://php.net/report-memleaks -report_memleaks = On - -; This setting is on by default. -;report_zend_debug = 0 - -; Store the last error/warning message in $php_errormsg (boolean). Setting this value -; to On can assist in debugging and is appropriate for development servers. It should -; however be disabled on production servers. -; Default Value: Off -; Development Value: On -; Production Value: Off -; http://php.net/track-errors -track_errors = Off - -; Turn off normal error reporting and emit XML-RPC error XML -; http://php.net/xmlrpc-errors -;xmlrpc_errors = 0 - -; An XML-RPC faultCode -;xmlrpc_error_number = 0 - -; When PHP displays or logs an error, it has the capability of formatting the -; error message as HTML for easier reading. This directive controls whether -; the error message is formatted as HTML or not. -; Note: This directive is hardcoded to Off for the CLI SAPI -; Default Value: On -; Development Value: On -; Production value: On -; http://php.net/html-errors -html_errors = On - -; If html_errors is set to On *and* docref_root is not empty, then PHP -; produces clickable error messages that direct to a page describing the error -; or function causing the error in detail. -; You can download a copy of the PHP manual from http://php.net/docs -; and change docref_root to the base URL of your local copy including the -; leading '/'. You must also specify the file extension being used including -; the dot. PHP's default behavior is to leave these settings empty, in which -; case no links to documentation are generated. -; Note: Never use this feature for production boxes. -; http://php.net/docref-root -; Examples -;docref_root = "/phpmanual/" - -; http://php.net/docref-ext -;docref_ext = .html - -; String to output before an error message. PHP's default behavior is to leave -; this setting blank. -; http://php.net/error-prepend-string -; Example: -;error_prepend_string = "" - -; String to output after an error message. PHP's default behavior is to leave -; this setting blank. -; http://php.net/error-append-string -; Example: -;error_append_string = "" - -; Log errors to specified file. PHP's default behavior is to leave this value -; empty. -; http://php.net/error-log -; Example: -;error_log = php_errors.log -; Log errors to syslog (Event Log on Windows). -error_log = /var/log/php/php.error.log - -;windows.show_crt_warning -; Default value: 0 -; Development value: 0 -; Production value: 0 - -;;;;;;;;;;;;;;;;; -; Data Handling ; -;;;;;;;;;;;;;;;;; - -; The separator used in PHP generated URLs to separate arguments. -; PHP's default setting is "&". -; http://php.net/arg-separator.output -; Example: -;arg_separator.output = "&" - -; List of separator(s) used by PHP to parse input URLs into variables. -; PHP's default setting is "&". -; NOTE: Every character in this directive is considered as separator! -; http://php.net/arg-separator.input -; Example: -;arg_separator.input = ";&" - -; This directive determines which super global arrays are registered when PHP -; starts up. G,P,C,E & S are abbreviations for the following respective super -; globals: GET, POST, COOKIE, ENV and SERVER. There is a performance penalty -; paid for the registration of these arrays and because ENV is not as commonly -; used as the others, ENV is not recommended on productions servers. You -; can still get access to the environment variables through getenv() should you -; need to. -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS"; -; http://php.net/variables-order -variables_order = "GPCS" - -; This directive determines which super global data (G,P & C) should be -; registered into the super global array REQUEST. If so, it also determines -; the order in which that data is registered. The values for this directive -; are specified in the same manner as the variables_order directive, -; EXCEPT one. Leaving this value empty will cause PHP to use the value set -; in the variables_order directive. It does not mean it will leave the super -; globals array REQUEST empty. -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" -; http://php.net/request-order -request_order = "GP" - -; This directive determines whether PHP registers $argv & $argc each time it -; runs. $argv contains an array of all the arguments passed to PHP when a script -; is invoked. $argc contains an integer representing the number of arguments -; that were passed when the script was invoked. These arrays are extremely -; useful when running scripts from the command line. When this directive is -; enabled, registering these variables consumes CPU cycles and memory each time -; a script is executed. For performance reasons, this feature should be disabled -; on production servers. -; Note: This directive is hardcoded to On for the CLI SAPI -; Default Value: On -; Development Value: Off -; Production Value: Off -; http://php.net/register-argc-argv -register_argc_argv = Off - -; When enabled, the ENV, REQUEST and SERVER variables are created when they're -; first used (Just In Time) instead of when the script starts. If these -; variables are not used within a script, having this directive on will result -; in a performance gain. The PHP directive register_argc_argv must be disabled -; for this directive to have any affect. -; http://php.net/auto-globals-jit -auto_globals_jit = On - -; Whether PHP will read the POST data. -; This option is enabled by default. -; Most likely, you won't want to disable this option globally. It causes $_POST -; and $_FILES to always be empty; the only way you will be able to read the -; POST data will be through the php://input stream wrapper. This can be useful -; to proxy requests or to process the POST data in a memory efficient fashion. -; http://php.net/enable-post-data-reading -;enable_post_data_reading = Off - -; Maximum size of POST data that PHP will accept. -; Its value may be 0 to disable the limit. It is ignored if POST data reading -; is disabled through enable_post_data_reading. -; http://php.net/post-max-size -post_max_size = 100M - -; Automatically add files before PHP document. -; http://php.net/auto-prepend-file -auto_prepend_file = - -; Automatically add files after PHP document. -; http://php.net/auto-append-file -auto_append_file = - -; By default, PHP will output a media type using the Content-Type header. To -; disable this, simply set it to be empty. -; -; PHP's built-in default media type is set to text/html. -; http://php.net/default-mimetype -default_mimetype = "text/html" - -; PHP's default character set is set to UTF-8. -; http://php.net/default-charset -default_charset = "UTF-8" - -; PHP internal character encoding is set to empty. -; If empty, default_charset is used. -; http://php.net/internal-encoding -;internal_encoding = - -; PHP input character encoding is set to empty. -; If empty, default_charset is used. -; http://php.net/input-encoding -;input_encoding = - -; PHP output character encoding is set to empty. -; If empty, default_charset is used. -; See also output_buffer. -; http://php.net/output-encoding -;output_encoding = - -;;;;;;;;;;;;;;;;;;;;;;;;; -; Paths and Directories ; -;;;;;;;;;;;;;;;;;;;;;;;;; - -; UNIX: "/path1:/path2" -;include_path = ".:/php/includes" -; -; Windows: "\path1;\path2" -;include_path = ".;c:\php\includes" -; -; PHP's default setting for include_path is ".;/path/to/php/pear" -; http://php.net/include-path - -; The root of the PHP pages, used only if nonempty. -; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root -; if you are running php as a CGI under any web server (other than IIS) -; see documentation for security issues. The alternate is to use the -; cgi.force_redirect configuration below -; http://php.net/doc-root -doc_root = - -; The directory under which PHP opens the script using /~username used only -; if nonempty. -; http://php.net/user-dir -user_dir = - -; Directory in which the loadable extensions (modules) reside. -; http://php.net/extension-dir -; extension_dir = "./" -; On windows: -; extension_dir = "ext" - -; Directory where the temporary files should be placed. -; Defaults to the system default (see sys_get_temp_dir) -; sys_temp_dir = "/tmp" - -; Whether or not to enable the dl() function. The dl() function does NOT work -; properly in multithreaded servers, such as IIS or Zeus, and is automatically -; disabled on them. -; http://php.net/enable-dl -enable_dl = Off - -; cgi.force_redirect is necessary to provide security running PHP as a CGI under -; most web servers. Left undefined, PHP turns this on by default. You can -; turn it off here AT YOUR OWN RISK -; **You CAN safely turn this off for IIS, in fact, you MUST.** -; http://php.net/cgi.force-redirect -;cgi.force_redirect = 1 - -; if cgi.nph is enabled it will force cgi to always sent Status: 200 with -; every request. PHP's default behavior is to disable this feature. -;cgi.nph = 1 - -; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape -; (iPlanet) web servers, you MAY need to set an environment variable name that PHP -; will look for to know it is OK to continue execution. Setting this variable MAY -; cause security issues, KNOW WHAT YOU ARE DOING FIRST. -; http://php.net/cgi.redirect-status-env -;cgi.redirect_status_env = - -; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's -; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok -; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting -; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting -; of zero causes PHP to behave as before. Default is 1. You should fix your scripts -; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. -; http://php.net/cgi.fix-pathinfo -;cgi.fix_pathinfo=1 - -; if cgi.discard_path is enabled, the PHP CGI binary can safely be placed outside -; of the web tree and people will not be able to circumvent .htaccess security. -; http://php.net/cgi.dicard-path -;cgi.discard_path=1 - -; FastCGI under IIS (on WINNT based OS) supports the ability to impersonate -; security tokens of the calling client. This allows IIS to define the -; security context that the request runs under. mod_fastcgi under Apache -; does not currently support this feature (03/17/2002) -; Set to 1 if running under IIS. Default is zero. -; http://php.net/fastcgi.impersonate -;fastcgi.impersonate = 1 - -; Disable logging through FastCGI connection. PHP's default behavior is to enable -; this feature. -;fastcgi.logging = 0 - -; cgi.rfc2616_headers configuration option tells PHP what type of headers to -; use when sending HTTP response code. If set to 0, PHP sends Status: header that -; is supported by Apache. When this option is set to 1, PHP will send -; RFC2616 compliant header. -; Default is zero. -; http://php.net/cgi.rfc2616-headers -;cgi.rfc2616_headers = 0 - -; cgi.check_shebang_line controls whether CGI PHP checks for line starting with #! -; (shebang) at the top of the running script. This line might be needed if the -; script support running both as stand-alone script and via PHP CGI<. PHP in CGI -; mode skips this line and ignores its content if this directive is turned on. -; http://php.net/cgi.check-shebang-line -;cgi.check_shebang_line=1 - -;;;;;;;;;;;;;;;; -; File Uploads ; -;;;;;;;;;;;;;;;; - -; Whether to allow HTTP file uploads. -; http://php.net/file-uploads -file_uploads = On - -; Temporary directory for HTTP uploaded files (will use system default if not -; specified). -; http://php.net/upload-tmp-dir -;upload_tmp_dir = - -; Maximum allowed size for uploaded files. -; http://php.net/upload-max-filesize -upload_max_filesize = 50M - -; Maximum number of files that can be uploaded via a single request -max_file_uploads = 20 - -;;;;;;;;;;;;;;;;;; -; Fopen wrappers ; -;;;;;;;;;;;;;;;;;; - -; Whether to allow the treatment of URLs (like http:// or ftp://) as files. -; http://php.net/allow-url-fopen -allow_url_fopen = On - -; Whether to allow include/require to open URLs (like http:// or ftp://) as files. -; http://php.net/allow-url-include -allow_url_include = Off - -; Define the anonymous ftp password (your email address). PHP's default setting -; for this is empty. -; http://php.net/from -;from="john@doe.com" - -; Define the User-Agent string. PHP's default setting for this is empty. -; http://php.net/user-agent -;user_agent="PHP" - -; Default timeout for socket based streams (seconds) -; http://php.net/default-socket-timeout -default_socket_timeout = 60 - -; If your scripts have to deal with files from Macintosh systems, -; or you are running on a Mac and need to deal with files from -; unix or win32 systems, setting this flag will cause PHP to -; automatically detect the EOL character in those files so that -; fgets() and file() will work regardless of the source of the file. -; http://php.net/auto-detect-line-endings -;auto_detect_line_endings = Off - -;;;;;;;;;;;;;;;;;;;;;; -; Dynamic Extensions ; -;;;;;;;;;;;;;;;;;;;;;; - -; If you wish to have an extension loaded automatically, use the following -; syntax: -; -; extension=modulename.extension -; -; For example, on Windows: -; -; extension=mysqli.dll -; -; ... or under UNIX: -; -; extension=mysqli.so -; -; ... or with a path: -; -; extension=/path/to/extension/mysqli.so -; -; If you only provide the name of the extension, PHP will look for it in its -; default extension directory. -; -; Windows Extensions -; Note that ODBC support is built in, so no dll is needed for it. -; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5+) -; extension folders as well as the separate PECL DLL download (PHP 5+). -; Be sure to appropriately set the extension_dir directive. -; -;extension=php_bz2.dll -;extension=php_curl.dll -;extension=php_fileinfo.dll -;extension=php_ftp.dll -;extension=php_gd2.dll -;extension=php_gettext.dll -;extension=php_gmp.dll -;extension=php_intl.dll -;extension=php_imap.dll -;extension=php_interbase.dll -;extension=php_ldap.dll -;extension=php_mbstring.dll -;extension=php_exif.dll ; Must be after mbstring as it depends on it -;extension=php_mysqli.dll -;extension=php_oci8_12c.dll ; Use with Oracle Database 12c Instant Client -;extension=php_openssl.dll -;extension=php_pdo_firebird.dll -;extension=php_pdo_mysql.dll -;extension=php_pdo_oci.dll -;extension=php_pdo_odbc.dll -;extension=php_pdo_pgsql.dll -;extension=php_pdo_sqlite.dll -;extension=php_pgsql.dll -;extension=php_shmop.dll - -; The MIBS data available in the PHP distribution must be installed. -; See http://www.php.net/manual/en/snmp.installation.php -;extension=php_snmp.dll - -;extension=php_soap.dll -;extension=php_sockets.dll -;extension=php_sqlite3.dll -;extension=php_tidy.dll -;extension=php_xmlrpc.dll -;extension=php_xsl.dll - -;;;;;;;;;;;;;;;;;;; -; Module Settings ; -;;;;;;;;;;;;;;;;;;; - -[CLI Server] -; Whether the CLI web server uses ANSI color coding in its terminal output. -cli_server.color = On - -[Date] -; Defines the default timezone used by the date functions -; http://php.net/date.timezone -date.timezone = Asia/Shanghai - -; http://php.net/date.default-latitude -;date.default_latitude = 31.7667 - -; http://php.net/date.default-longitude -;date.default_longitude = 35.2333 - -; http://php.net/date.sunrise-zenith -;date.sunrise_zenith = 90.583333 - -; http://php.net/date.sunset-zenith -;date.sunset_zenith = 90.583333 - -[filter] -; http://php.net/filter.default -;filter.default = unsafe_raw - -; http://php.net/filter.default-flags -;filter.default_flags = - -[iconv] -; Use of this INI entry is deprecated, use global input_encoding instead. -; If empty, default_charset or input_encoding or iconv.input_encoding is used. -; The precedence is: default_charset < intput_encoding < iconv.input_encoding -;iconv.input_encoding = - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;iconv.internal_encoding = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; If empty, default_charset or output_encoding or iconv.output_encoding is used. -; The precedence is: default_charset < output_encoding < iconv.output_encoding -; To use an output encoding conversion, iconv's output handler must be set -; otherwise output encoding conversion cannot be performed. -;iconv.output_encoding = - -[intl] -;intl.default_locale = -; This directive allows you to produce PHP errors when some error -; happens within intl functions. The value is the level of the error produced. -; Default is 0, which does not produce any errors. -;intl.error_level = E_WARNING -;intl.use_exceptions = 0 - -[sqlite3] -;sqlite3.extension_dir = - -[Pcre] -;PCRE library backtracking limit. -; http://php.net/pcre.backtrack-limit -;pcre.backtrack_limit=100000 - -;PCRE library recursion limit. -;Please note that if you set this value to a high number you may consume all -;the available process stack and eventually crash PHP (due to reaching the -;stack size limit imposed by the Operating System). -; http://php.net/pcre.recursion-limit -;pcre.recursion_limit=100000 - -;Enables or disables JIT compilation of patterns. This requires the PCRE -;library to be compiled with JIT support. -;pcre.jit=1 - -[Pdo] -; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off" -; http://php.net/pdo-odbc.connection-pooling -;pdo_odbc.connection_pooling=strict - -;pdo_odbc.db2_instance_name - -[Pdo_mysql] -; If mysqlnd is used: Number of cache slots for the internal result set cache -; http://php.net/pdo_mysql.cache_size -pdo_mysql.cache_size = 2000 - -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -; http://php.net/pdo_mysql.default-socket -pdo_mysql.default_socket= - -[Phar] -; http://php.net/phar.readonly -;phar.readonly = On - -; http://php.net/phar.require-hash -;phar.require_hash = On - -;phar.cache_list = - -[mail function] -; For Win32 only. -; http://php.net/smtp -SMTP = localhost -; http://php.net/smtp-port -smtp_port = 25 - -; For Win32 only. -; http://php.net/sendmail-from -;sendmail_from = me@example.com - -; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). -; http://php.net/sendmail-path -;sendmail_path = - -; Force the addition of the specified parameters to be passed as extra parameters -; to the sendmail binary. These parameters will always replace the value of -; the 5th parameter to mail(). -;mail.force_extra_parameters = - -; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename -mail.add_x_header = On - -; The path to a log file that will log all mail() calls. Log entries include -; the full path of the script, line number, To address and headers. -;mail.log = -; Log mail to syslog (Event Log on Windows). -;mail.log = syslog - -[ODBC] -; http://php.net/odbc.default-db -;odbc.default_db = Not yet implemented - -; http://php.net/odbc.default-user -;odbc.default_user = Not yet implemented - -; http://php.net/odbc.default-pw -;odbc.default_pw = Not yet implemented - -; Controls the ODBC cursor model. -; Default: SQL_CURSOR_STATIC (default). -;odbc.default_cursortype - -; Allow or prevent persistent links. -; http://php.net/odbc.allow-persistent -odbc.allow_persistent = On - -; Check that a connection is still valid before reuse. -; http://php.net/odbc.check-persistent -odbc.check_persistent = On - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/odbc.max-persistent -odbc.max_persistent = -1 - -; Maximum number of links (persistent + non-persistent). -1 means no limit. -; http://php.net/odbc.max-links -odbc.max_links = -1 - -; Handling of LONG fields. Returns number of bytes to variables. 0 means -; passthru. -; http://php.net/odbc.defaultlrl -odbc.defaultlrl = 4096 - -; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char. -; See the documentation on odbc_binmode and odbc_longreadlen for an explanation -; of odbc.defaultlrl and odbc.defaultbinmode -; http://php.net/odbc.defaultbinmode -odbc.defaultbinmode = 1 - -;birdstep.max_links = -1 - -[Interbase] -; Allow or prevent persistent links. -ibase.allow_persistent = 1 - -; Maximum number of persistent links. -1 means no limit. -ibase.max_persistent = -1 - -; Maximum number of links (persistent + non-persistent). -1 means no limit. -ibase.max_links = -1 - -; Default database name for ibase_connect(). -;ibase.default_db = - -; Default username for ibase_connect(). -;ibase.default_user = - -; Default password for ibase_connect(). -;ibase.default_password = - -; Default charset for ibase_connect(). -;ibase.default_charset = - -; Default timestamp format. -ibase.timestampformat = "%Y-%m-%d %H:%M:%S" - -; Default date format. -ibase.dateformat = "%Y-%m-%d" - -; Default time format. -ibase.timeformat = "%H:%M:%S" - -[MySQLi] - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/mysqli.max-persistent -mysqli.max_persistent = -1 - -; Allow accessing, from PHP's perspective, local files with LOAD DATA statements -; http://php.net/mysqli.allow_local_infile -;mysqli.allow_local_infile = On - -; Allow or prevent persistent links. -; http://php.net/mysqli.allow-persistent -mysqli.allow_persistent = On - -; Maximum number of links. -1 means no limit. -; http://php.net/mysqli.max-links -mysqli.max_links = -1 - -; If mysqlnd is used: Number of cache slots for the internal result set cache -; http://php.net/mysqli.cache_size -mysqli.cache_size = 2000 - -; Default port number for mysqli_connect(). If unset, mysqli_connect() will use -; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the -; compile-time value defined MYSQL_PORT (in that order). Win32 will only look -; at MYSQL_PORT. -; http://php.net/mysqli.default-port -mysqli.default_port = 3306 - -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -; http://php.net/mysqli.default-socket -mysqli.default_socket = - -; Default host for mysql_connect() (doesn't apply in safe mode). -; http://php.net/mysqli.default-host -mysqli.default_host = - -; Default user for mysql_connect() (doesn't apply in safe mode). -; http://php.net/mysqli.default-user -mysqli.default_user = - -; Default password for mysqli_connect() (doesn't apply in safe mode). -; Note that this is generally a *bad* idea to store passwords in this file. -; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw") -; and reveal this password! And of course, any users with read access to this -; file will be able to reveal the password as well. -; http://php.net/mysqli.default-pw -mysqli.default_pw = - -; Allow or prevent reconnect -mysqli.reconnect = Off - -[mysqlnd] -; Enable / Disable collection of general statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -; http://php.net/mysqlnd.collect_statistics -mysqlnd.collect_statistics = On - -; Enable / Disable collection of memory usage statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -; http://php.net/mysqlnd.collect_memory_statistics -mysqlnd.collect_memory_statistics = Off - -; Records communication from all extensions using mysqlnd to the specified log -; file. -; http://php.net/mysqlnd.debug -;mysqlnd.debug = - -; Defines which queries will be logged. -; http://php.net/mysqlnd.log_mask -;mysqlnd.log_mask = 0 - -; Default size of the mysqlnd memory pool, which is used by result sets. -; http://php.net/mysqlnd.mempool_default_size -;mysqlnd.mempool_default_size = 16000 - -; Size of a pre-allocated buffer used when sending commands to MySQL in bytes. -; http://php.net/mysqlnd.net_cmd_buffer_size -;mysqlnd.net_cmd_buffer_size = 2048 - -; Size of a pre-allocated buffer used for reading data sent by the server in -; bytes. -; http://php.net/mysqlnd.net_read_buffer_size -;mysqlnd.net_read_buffer_size = 32768 - -; Timeout for network requests in seconds. -; http://php.net/mysqlnd.net_read_timeout -;mysqlnd.net_read_timeout = 31536000 - -; SHA-256 Authentication Plugin related. File with the MySQL server public RSA -; key. -; http://php.net/mysqlnd.sha256_server_public_key -;mysqlnd.sha256_server_public_key = - -[OCI8] - -; Connection: Enables privileged connections using external -; credentials (OCI_SYSOPER, OCI_SYSDBA) -; http://php.net/oci8.privileged-connect -;oci8.privileged_connect = Off - -; Connection: The maximum number of persistent OCI8 connections per -; process. Using -1 means no limit. -; http://php.net/oci8.max-persistent -;oci8.max_persistent = -1 - -; Connection: The maximum number of seconds a process is allowed to -; maintain an idle persistent connection. Using -1 means idle -; persistent connections will be maintained forever. -; http://php.net/oci8.persistent-timeout -;oci8.persistent_timeout = -1 - -; Connection: The number of seconds that must pass before issuing a -; ping during oci_pconnect() to check the connection validity. When -; set to 0, each oci_pconnect() will cause a ping. Using -1 disables -; pings completely. -; http://php.net/oci8.ping-interval -;oci8.ping_interval = 60 - -; Connection: Set this to a user chosen connection class to be used -; for all pooled server requests with Oracle 11g Database Resident -; Connection Pooling (DRCP). To use DRCP, this value should be set to -; the same string for all web servers running the same application, -; the database pool must be configured, and the connection string must -; specify to use a pooled server. -;oci8.connection_class = - -; High Availability: Using On lets PHP receive Fast Application -; Notification (FAN) events generated when a database node fails. The -; database must also be configured to post FAN events. -;oci8.events = Off - -; Tuning: This option enables statement caching, and specifies how -; many statements to cache. Using 0 disables statement caching. -; http://php.net/oci8.statement-cache-size -;oci8.statement_cache_size = 20 - -; Tuning: Enables statement prefetching and sets the default number of -; rows that will be fetched automatically after statement execution. -; http://php.net/oci8.default-prefetch -;oci8.default_prefetch = 100 - -; Compatibility. Using On means oci_close() will not close -; oci_connect() and oci_new_connect() connections. -; http://php.net/oci8.old-oci-close-semantics -;oci8.old_oci_close_semantics = Off - -[PostgreSQL] -; Allow or prevent persistent links. -; http://php.net/pgsql.allow-persistent -pgsql.allow_persistent = On - -; Detect broken persistent links always with pg_pconnect(). -; Auto reset feature requires a little overheads. -; http://php.net/pgsql.auto-reset-persistent -pgsql.auto_reset_persistent = Off - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/pgsql.max-persistent -pgsql.max_persistent = -1 - -; Maximum number of links (persistent+non persistent). -1 means no limit. -; http://php.net/pgsql.max-links -pgsql.max_links = -1 - -; Ignore PostgreSQL backends Notice message or not. -; Notice message logging require a little overheads. -; http://php.net/pgsql.ignore-notice -pgsql.ignore_notice = 0 - -; Log PostgreSQL backends Notice message or not. -; Unless pgsql.ignore_notice=0, module cannot log notice message. -; http://php.net/pgsql.log-notice -pgsql.log_notice = 0 - -[bcmath] -; Number of decimal digits for all bcmath functions. -; http://php.net/bcmath.scale -bcmath.scale = 0 - -[browscap] -; http://php.net/browscap -;browscap = extra/browscap.ini - -[Session] -; Handler used to store/retrieve data. -; http://php.net/session.save-handler -session.save_handler = files - -; Argument passed to save_handler. In the case of files, this is the path -; where data files are stored. Note: Windows users have to change this -; variable in order to use PHP's session functions. -; -; The path can be defined as: -; -; session.save_path = "N;/path" -; -; where N is an integer. Instead of storing all the session files in -; /path, what this will do is use subdirectories N-levels deep, and -; store the session data in those directories. This is useful if -; your OS has problems with many files in one directory, and is -; a more efficient layout for servers that handle many sessions. -; -; NOTE 1: PHP will not create this directory structure automatically. -; You can use the script in the ext/session dir for that purpose. -; NOTE 2: See the section on garbage collection below if you choose to -; use subdirectories for session storage -; -; The file storage module creates files using mode 600 by default. -; You can change that by using -; -; session.save_path = "N;MODE;/path" -; -; where MODE is the octal representation of the mode. Note that this -; does not overwrite the process's umask. -; http://php.net/session.save-path -;session.save_path = "/tmp" - -; Whether to use strict session mode. -; Strict session mode does not accept uninitialized session ID and regenerate -; session ID if browser sends uninitialized session ID. Strict mode protects -; applications from session fixation via session adoption vulnerability. It is -; disabled by default for maximum compatibility, but enabling it is encouraged. -; https://wiki.php.net/rfc/strict_sessions -session.use_strict_mode = 0 - -; Whether to use cookies. -; http://php.net/session.use-cookies -session.use_cookies = 1 - -; http://php.net/session.cookie-secure -;session.cookie_secure = - -; This option forces PHP to fetch and use a cookie for storing and maintaining -; the session id. We encourage this operation as it's very helpful in combating -; session hijacking when not specifying and managing your own session id. It is -; not the be-all and end-all of session hijacking defense, but it's a good start. -; http://php.net/session.use-only-cookies -session.use_only_cookies = 1 - -; Name of the session (used as cookie name). -; http://php.net/session.name -session.name = PHPSESSID - -; Initialize session on request startup. -; http://php.net/session.auto-start -session.auto_start = 0 - -; Lifetime in seconds of cookie or, if 0, until browser is restarted. -; http://php.net/session.cookie-lifetime -session.cookie_lifetime = 0 - -; The path for which the cookie is valid. -; http://php.net/session.cookie-path -session.cookie_path = / - -; The domain for which the cookie is valid. -; http://php.net/session.cookie-domain -session.cookie_domain = - -; Whether or not to add the httpOnly flag to the cookie, which makes it inaccessible to browser scripting languages such as JavaScript. -; http://php.net/session.cookie-httponly -session.cookie_httponly = - -; Handler used to serialize data. php is the standard serializer of PHP. -; http://php.net/session.serialize-handler -session.serialize_handler = php - -; Defines the probability that the 'garbage collection' process is started -; on every session initialization. The probability is calculated by using -; gc_probability/gc_divisor. Where session.gc_probability is the numerator -; and gc_divisor is the denominator in the equation. Setting this value to 1 -; when the session.gc_divisor value is 100 will give you approximately a 1% chance -; the gc will run on any give request. -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; http://php.net/session.gc-probability -session.gc_probability = 1 - -; Defines the probability that the 'garbage collection' process is started on every -; session initialization. The probability is calculated by using the following equation: -; gc_probability/gc_divisor. Where session.gc_probability is the numerator and -; session.gc_divisor is the denominator in the equation. Setting this value to 1 -; when the session.gc_divisor value is 100 will give you approximately a 1% chance -; the gc will run on any give request. Increasing this value to 1000 will give you -; a 0.1% chance the gc will run on any give request. For high volume production servers, -; this is a more efficient approach. -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 -; http://php.net/session.gc-divisor -session.gc_divisor = 1000 - -; After this number of seconds, stored data will be seen as 'garbage' and -; cleaned up by the garbage collection process. -; http://php.net/session.gc-maxlifetime -session.gc_maxlifetime = 1440 - -; NOTE: If you are using the subdirectory option for storing session files -; (see session.save_path above), then garbage collection does *not* -; happen automatically. You will need to do your own garbage -; collection through a shell script, cron entry, or some other method. -; For example, the following script would is the equivalent of -; setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes): -; find /path/to/sessions -cmin +24 -type f | xargs rm - -; Check HTTP Referer to invalidate externally stored URLs containing ids. -; HTTP_REFERER has to contain this substring for the session to be -; considered as valid. -; http://php.net/session.referer-check -session.referer_check = - -; Set to {nocache,private,public,} to determine HTTP caching aspects -; or leave this empty to avoid sending anti-caching headers. -; http://php.net/session.cache-limiter -session.cache_limiter = nocache - -; Document expires after n minutes. -; http://php.net/session.cache-expire -session.cache_expire = 180 - -; trans sid support is disabled by default. -; Use of trans sid may risk your users' security. -; Use this option with caution. -; - User may send URL contains active session ID -; to other person via. email/irc/etc. -; - URL that contains active session ID may be stored -; in publicly accessible computer. -; - User may access your site with the same session ID -; always using URL stored in browser's history or bookmarks. -; http://php.net/session.use-trans-sid -session.use_trans_sid = 0 - -; Set session ID character length. This value could be between 22 to 256. -; Shorter length than default is supported only for compatibility reason. -; Users should use 32 or more chars. -; http://php.net/session.sid-length -; Default Value: 32 -; Development Value: 26 -; Production Value: 26 -session.sid_length = 26 - -; The URL rewriter will look for URLs in a defined set of HTML tags. -; is special; if you include them here, the rewriter will -; add a hidden field with the info which is otherwise appended -; to URLs. tag's action attribute URL will not be modified -; unless it is specified. -; Note that all valid entries require a "=", even if no value follows. -; Default Value: "a=href,area=href,frame=src,form=" -; Development Value: "a=href,area=href,frame=src,form=" -; Production Value: "a=href,area=href,frame=src,form=" -; http://php.net/url-rewriter.tags -session.trans_sid_tags = "a=href,area=href,frame=src,form=" - -; URL rewriter does not rewrite absolute URLs by default. -; To enable rewrites for absolute pathes, target hosts must be specified -; at RUNTIME. i.e. use ini_set() -; tags is special. PHP will check action attribute's URL regardless -; of session.trans_sid_tags setting. -; If no host is defined, HTTP_HOST will be used for allowed host. -; Example value: php.net,www.php.net,wiki.php.net -; Use "," for multiple hosts. No spaces are allowed. -; Default Value: "" -; Development Value: "" -; Production Value: "" -;session.trans_sid_hosts="" - -; Define how many bits are stored in each character when converting -; the binary hash data to something readable. -; Possible values: -; 4 (4 bits: 0-9, a-f) -; 5 (5 bits: 0-9, a-v) -; 6 (6 bits: 0-9, a-z, A-Z, "-", ",") -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 -; http://php.net/session.hash-bits-per-character -session.sid_bits_per_character = 5 - -; Enable upload progress tracking in $_SESSION -; Default Value: On -; Development Value: On -; Production Value: On -; http://php.net/session.upload-progress.enabled -;session.upload_progress.enabled = On - -; Cleanup the progress information as soon as all POST data has been read -; (i.e. upload completed). -; Default Value: On -; Development Value: On -; Production Value: On -; http://php.net/session.upload-progress.cleanup -;session.upload_progress.cleanup = On - -; A prefix used for the upload progress key in $_SESSION -; Default Value: "upload_progress_" -; Development Value: "upload_progress_" -; Production Value: "upload_progress_" -; http://php.net/session.upload-progress.prefix -;session.upload_progress.prefix = "upload_progress_" - -; The index name (concatenated with the prefix) in $_SESSION -; containing the upload progress information -; Default Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Development Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Production Value: "PHP_SESSION_UPLOAD_PROGRESS" -; http://php.net/session.upload-progress.name -;session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS" - -; How frequently the upload progress should be updated. -; Given either in percentages (per-file), or in bytes -; Default Value: "1%" -; Development Value: "1%" -; Production Value: "1%" -; http://php.net/session.upload-progress.freq -;session.upload_progress.freq = "1%" - -; The minimum delay between updates, in seconds -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; http://php.net/session.upload-progress.min-freq -;session.upload_progress.min_freq = "1" - -; Only write session data when session data is changed. Enabled by default. -; http://php.net/session.lazy-write -;session.lazy_write = On - -[Assertion] -; Switch whether to compile assertions at all (to have no overhead at run-time) -; -1: Do not compile at all -; 0: Jump over assertion at run-time -; 1: Execute assertions -; Changing from or to a negative value is only possible in php.ini! (For turning assertions on and off at run-time, see assert.active, when zend.assertions = 1) -; Default Value: 1 -; Development Value: 1 -; Production Value: -1 -; http://php.net/zend.assertions -zend.assertions = -1 - -; Assert(expr); active by default. -; http://php.net/assert.active -;assert.active = On - -; Throw an AssertationException on failed assertions -; http://php.net/assert.exception -;assert.exception = On - -; Issue a PHP warning for each failed assertion. (Overridden by assert.exception if active) -; http://php.net/assert.warning -;assert.warning = On - -; Don't bail out by default. -; http://php.net/assert.bail -;assert.bail = Off - -; User-function to be called if an assertion fails. -; http://php.net/assert.callback -;assert.callback = 0 - -; Eval the expression with current error_reporting(). Set to true if you want -; error_reporting(0) around the eval(). -; http://php.net/assert.quiet-eval -;assert.quiet_eval = 0 - -[COM] -; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs -; http://php.net/com.typelib-file -;com.typelib_file = - -; allow Distributed-COM calls -; http://php.net/com.allow-dcom -;com.allow_dcom = true - -; autoregister constants of a components typlib on com_load() -; http://php.net/com.autoregister-typelib -;com.autoregister_typelib = true - -; register constants casesensitive -; http://php.net/com.autoregister-casesensitive -;com.autoregister_casesensitive = false - -; show warnings on duplicate constant registrations -; http://php.net/com.autoregister-verbose -;com.autoregister_verbose = true - -; The default character set code-page to use when passing strings to and from COM objects. -; Default: system ANSI code page -;com.code_page= - -[mbstring] -; language for internal character representation. -; This affects mb_send_mail() and mbstring.detect_order. -; http://php.net/mbstring.language -;mbstring.language = Japanese - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; internal/script encoding. -; Some encoding cannot work as internal encoding. (e.g. SJIS, BIG5, ISO-2022-*) -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;mbstring.internal_encoding = - -; Use of this INI entry is deprecated, use global input_encoding instead. -; http input encoding. -; mbstring.encoding_traslation = On is needed to use this setting. -; If empty, default_charset or input_encoding or mbstring.input is used. -; The precedence is: default_charset < intput_encoding < mbsting.http_input -; http://php.net/mbstring.http-input -;mbstring.http_input = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; http output encoding. -; mb_output_handler must be registered as output buffer to function. -; If empty, default_charset or output_encoding or mbstring.http_output is used. -; The precedence is: default_charset < output_encoding < mbstring.http_output -; To use an output encoding conversion, mbstring's output handler must be set -; otherwise output encoding conversion cannot be performed. -; http://php.net/mbstring.http-output -;mbstring.http_output = - -; enable automatic encoding translation according to -; mbstring.internal_encoding setting. Input chars are -; converted to internal encoding by setting this to On. -; Note: Do _not_ use automatic encoding translation for -; portable libs/applications. -; http://php.net/mbstring.encoding-translation -;mbstring.encoding_translation = Off - -; automatic encoding detection order. -; "auto" detect order is changed according to mbstring.language -; http://php.net/mbstring.detect-order -;mbstring.detect_order = auto - -; substitute_character used when character cannot be converted -; one from another -; http://php.net/mbstring.substitute-character -;mbstring.substitute_character = none - -; overload(replace) single byte functions by mbstring functions. -; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(), -; etc. Possible values are 0,1,2,4 or combination of them. -; For example, 7 for overload everything. -; 0: No overload -; 1: Overload mail() function -; 2: Overload str*() functions -; 4: Overload ereg*() functions -; http://php.net/mbstring.func-overload -;mbstring.func_overload = 0 - -; enable strict encoding detection. -; Default: Off -;mbstring.strict_detection = On - -; This directive specifies the regex pattern of content types for which mb_output_handler() -; is activated. -; Default: mbstring.http_output_conv_mimetype=^(text/|application/xhtml\+xml) -;mbstring.http_output_conv_mimetype= - -[gd] -; Tell the jpeg decode to ignore warnings and try to create -; a gd image. The warning will then be displayed as notices -; disabled by default -; http://php.net/gd.jpeg-ignore-warning -;gd.jpeg_ignore_warning = 1 - -[exif] -; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS. -; With mbstring support this will automatically be converted into the encoding -; given by corresponding encode setting. When empty mbstring.internal_encoding -; is used. For the decode settings you can distinguish between motorola and -; intel byte order. A decode setting cannot be empty. -; http://php.net/exif.encode-unicode -;exif.encode_unicode = ISO-8859-15 - -; http://php.net/exif.decode-unicode-motorola -;exif.decode_unicode_motorola = UCS-2BE - -; http://php.net/exif.decode-unicode-intel -;exif.decode_unicode_intel = UCS-2LE - -; http://php.net/exif.encode-jis -;exif.encode_jis = - -; http://php.net/exif.decode-jis-motorola -;exif.decode_jis_motorola = JIS - -; http://php.net/exif.decode-jis-intel -;exif.decode_jis_intel = JIS - -[Tidy] -; The path to a default tidy configuration file to use when using tidy -; http://php.net/tidy.default-config -;tidy.default_config = /usr/local/lib/php/default.tcfg - -; Should tidy clean and repair output automatically? -; WARNING: Do not use this option if you are generating non-html content -; such as dynamic images -; http://php.net/tidy.clean-output -tidy.clean_output = Off - -[soap] -; Enables or disables WSDL caching feature. -; http://php.net/soap.wsdl-cache-enabled -soap.wsdl_cache_enabled=1 - -; Sets the directory name where SOAP extension will put cache files. -; http://php.net/soap.wsdl-cache-dir -soap.wsdl_cache_dir="/tmp" - -; (time to live) Sets the number of second while cached file will be used -; instead of original one. -; http://php.net/soap.wsdl-cache-ttl -soap.wsdl_cache_ttl=86400 - -; Sets the size of the cache limit. (Max. number of WSDL files to cache) -soap.wsdl_cache_limit = 5 - -[sysvshm] -; A default size of the shared memory segment -;sysvshm.init_mem = 10000 - -[ldap] -; Sets the maximum number of open links or -1 for unlimited. -ldap.max_links = -1 - -[dba] -;dba.default_handler= - -[opcache] -; Determines if Zend OPCache is enabled -;opcache.enable=1 - -; Determines if Zend OPCache is enabled for the CLI version of PHP -;opcache.enable_cli=1 - -; The OPcache shared memory storage size. -;opcache.memory_consumption=128 - -; The amount of memory for interned strings in Mbytes. -;opcache.interned_strings_buffer=8 - -; The maximum number of keys (scripts) in the OPcache hash table. -; Only numbers between 200 and 1000000 are allowed. -;opcache.max_accelerated_files=10000 - -; The maximum percentage of "wasted" memory until a restart is scheduled. -;opcache.max_wasted_percentage=5 - -; When this directive is enabled, the OPcache appends the current working -; directory to the script key, thus eliminating possible collisions between -; files with the same name (basename). Disabling the directive improves -; performance, but may break existing applications. -;opcache.use_cwd=1 - -; When disabled, you must reset the OPcache manually or restart the -; webserver for changes to the filesystem to take effect. -;opcache.validate_timestamps=1 - -; How often (in seconds) to check file timestamps for changes to the shared -; memory storage allocation. ("1" means validate once per second, but only -; once per request. "0" means always validate) -;opcache.revalidate_freq=2 - -; Enables or disables file search in include_path optimization -;opcache.revalidate_path=0 - -; If disabled, all PHPDoc comments are dropped from the code to reduce the -; size of the optimized code. -;opcache.save_comments=1 - -; If enabled, a fast shutdown sequence is used for the accelerated code -; Depending on the used Memory Manager this may cause some incompatibilities. -;opcache.fast_shutdown=0 - -; Allow file existence override (file_exists, etc.) performance feature. -;opcache.enable_file_override=0 - -; A bitmask, where each bit enables or disables the appropriate OPcache -; passes -;opcache.optimization_level=0xffffffff - -;opcache.inherited_hack=1 -;opcache.dups_fix=0 - -; The location of the OPcache blacklist file (wildcards allowed). -; Each OPcache blacklist file is a text file that holds the names of files -; that should not be accelerated. The file format is to add each filename -; to a new line. The filename may be a full path or just a file prefix -; (i.e., /var/www/x blacklists all the files and directories in /var/www -; that start with 'x'). Line starting with a ; are ignored (comments). -;opcache.blacklist_filename= - -; Allows exclusion of large files from being cached. By default all files -; are cached. -;opcache.max_file_size=0 - -; Check the cache checksum each N requests. -; The default value of "0" means that the checks are disabled. -;opcache.consistency_checks=0 - -; How long to wait (in seconds) for a scheduled restart to begin if the cache -; is not being accessed. -;opcache.force_restart_timeout=180 - -; OPcache error_log file name. Empty string assumes "stderr". -;opcache.error_log= - -; All OPcache errors go to the Web server log. -; By default, only fatal errors (level 0) or errors (level 1) are logged. -; You can also enable warnings (level 2), info messages (level 3) or -; debug messages (level 4). -;opcache.log_verbosity_level=1 - -; Preferred Shared Memory back-end. Leave empty and let the system decide. -;opcache.preferred_memory_model= - -; Protect the shared memory from unexpected writing during script execution. -; Useful for internal debugging only. -;opcache.protect_memory=0 - -; Allows calling OPcache API functions only from PHP scripts which path is -; started from specified string. The default "" means no restriction -;opcache.restrict_api= - -; Mapping base of shared memory segments (for Windows only). All the PHP -; processes have to map shared memory into the same address space. This -; directive allows to manually fix the "Unable to reattach to base address" -; errors. -;opcache.mmap_base= - -; Enables and sets the second level cache directory. -; It should improve performance when SHM memory is full, at server restart or -; SHM reset. The default "" disables file based caching. -;opcache.file_cache= - -; Enables or disables opcode caching in shared memory. -;opcache.file_cache_only=0 - -; Enables or disables checksum validation when script loaded from file cache. -;opcache.file_cache_consistency_checks=1 - -; Implies opcache.file_cache_only=1 for a certain process that failed to -; reattach to the shared memory (for Windows only). Explicitly enabled file -; cache is required. -;opcache.file_cache_fallback=1 - -; Enables or disables copying of PHP code (text segment) into HUGE PAGES. -; This should improve performance, but requires appropriate OS configuration. -;opcache.huge_code_pages=1 - -; Validate cached file permissions. -;opcache.validate_permission=0 - -; Prevent name collisions in chroot'ed environment. -;opcache.validate_root=0 - -[curl] -; A default value for the CURLOPT_CAINFO option. This is required to be an -; absolute path. -;curl.cainfo = - -[openssl] -; The location of a Certificate Authority (CA) file on the local filesystem -; to use when verifying the identity of SSL/TLS peers. Most users should -; not specify a value for this directive as PHP will attempt to use the -; OS-managed cert stores in its absence. If specified, this value may still -; be overridden on a per-stream basis via the "cafile" SSL stream context -; option. -;openssl.cafile= - -; If openssl.cafile is not specified or if the CA file is not found, the -; directory pointed to by openssl.capath is searched for a suitable -; certificate. This value must be a correctly hashed certificate directory. -; Most users should not specify a value for this directive as PHP will -; attempt to use the OS-managed cert stores in its absence. If specified, -; this value may still be overridden on a per-stream basis via the "capath" -; SSL stream context option. -;openssl.capath= - -; Local Variables: -; tab-width: 4 -; End: - -[XDebug] -xdebug.remote_enable = 1 -xdebug.remote_handler = "dbgp" -; Set to host.docker.internal on Mac and Windows, otherwise, set to host real ip -xdebug.remote_host = host.docker.internal -;xdebug.remote_port = 9000 -xdebug.remote_log = /var/log/php/xdebug.log - -SERVER_ENV=develop - -yaf.use_spl_autoload=1 - -[xhprof] -;xhprof.output_dir = /var/log/php/xhprof.log \ No newline at end of file diff --git a/php7/7.3.33/data.yml b/php7/7.3.33/data.yml deleted file mode 100755 index deeede5ad..000000000 --- a/php7/7.3.33/data.yml +++ /dev/null @@ -1,18 +0,0 @@ -additionalProperties: - formFields: - - default: 9000 - envKey: PANEL_APP_PORT_HTTP - labelEn: PHP-FPM Port - labelZh: PHP-FPM 端口 - label: - en: PHP-FPM Port - ja: PHP-FPM ポート - ms: Port PHP-FPM - pt-br: Porta PHP-FPM - ru: Порт PHP-FPM - ko: PHP-FPM 포트 - zh-Hant: PHP-FPM 埠 - zh: PHP-FPM 端口 - required: true - rule: paramPort - type: number diff --git a/php7/7.3.33/docker-compose.yml b/php7/7.3.33/docker-compose.yml deleted file mode 100644 index dc530c778..000000000 --- a/php7/7.3.33/docker-compose.yml +++ /dev/null @@ -1,21 +0,0 @@ -services: - php: - image: ${IMAGE_NAME} - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - volumes: - - ${PANEL_WEBSITE_DIR}:/www/ - - ./conf/php.ini:/usr/local/etc/php/php.ini - - ./conf/php-fpm.conf:/usr/local/etc/php-fpm.d/www.conf - - ./log:/var/log/php - - ./composer:/tmp/composer - - ./extensions:/php/extensions - ports: - - 127.0.0.1:${PANEL_APP_PORT_HTTP}:9000 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/php7/7.4.33/build/.env b/php7/7.4.33/build/.env deleted file mode 100644 index feb4f942e..000000000 --- a/php7/7.4.33/build/.env +++ /dev/null @@ -1,14 +0,0 @@ -CONTAINER_PACKAGE_URL=mirrors.ustc.edu.cn - -PHP_VERSION=7.4.33 -PHP_PHP_CONF_FILE=./php/php.ini -PHP_FPM_CONF_FILE=./php/php-fpm.conf -PHP_LOG_DIR=./logs/php -PHP_EXTENSIONS= - -SOURCE_DIR=./www - -TZ=Asia/Shanghai -DATA_DIR=./data -IMAGE_NAME=1panel-php:7.4.33 -INSTALL_SUPERVISOR=0 \ No newline at end of file diff --git a/php7/7.4.33/build/config.json b/php7/7.4.33/build/config.json deleted file mode 100644 index 28ee3c56b..000000000 --- a/php7/7.4.33/build/config.json +++ /dev/null @@ -1,134 +0,0 @@ -{ - "formFields": [ - { - "type": "select", - "multiple": true, - "labelZh": "扩展", - "labelEn": "Extensions", - "default": ["mysqli","pdo_mysql"], - "values": [ - { - "label": "opcache", - "value": "opcache" - }, - { - "label": "memcached", - "value": "memcached" - }, - { - "label": "memcache", - "value": "memcache" - }, - { - "label": "redis", - "value": "redis" - }, - { - "label": "mcrypt", - "value": "mcrypt" - }, - { - "label": "xdebug", - "value": "xdebug" - }, - { - "label": "imap", - "value": "imap" - }, - { - "label": "exif", - "value": "exif" - }, - { - "label": "intl", - "value": "intl" - }, - { - "label": "swoole", - "value": "swoole" - }, - { - "label": "yaf", - "value": "yaf" - }, - { - "label": "pgsql", - "value": "pgsql" - }, - { - "label": "pdo_pgsql", - "value": "pdo_pgsql" - }, - { - "label": "snmp", - "value": "snmp" - }, { - "label": "ldap", - "value": "ldap" - }, - { - "label": "pspell", - "value": "pspell" - }, - { - "label": "bz2", - "value": "bz2" - }, - { - "label": "sysvshm", - "value": "sysvshm" - }, - { - "label": "calendar", - "value": "calendar" - }, - { - "label": "gmp", - "value": "gmp" - }, - { - "label": "sysvmsg", - "value": "sysvmsg" - }, - { - "label": "igbinary", - "value": "igbinary" - }, - { - "label": "mysqli", - "value": "mysqli" - }, - { - "label": "pdo_mysql", - "value": "pdo_mysql" - }, - { - "label": "mbstring", - "value": "mbstring" - }, - { - "label": "gd", - "value": "gd" - }, - { - "label": "ioncube_loader", - "value": "ioncube_loader" - }, - { - "label": "curl", - "value": "curl" - }, - { - "label": "sg15", - "value": "sourceguardian" - }, - { - "label": "imagick", - "value": "imagick" - } - ], - "envKey": "PHP_EXTENSIONS", - "edit": true - } - ] -} \ No newline at end of file diff --git a/php7/7.4.33/build/docker-compose.yml b/php7/7.4.33/build/docker-compose.yml deleted file mode 100644 index 21e9fa737..000000000 --- a/php7/7.4.33/build/docker-compose.yml +++ /dev/null @@ -1,19 +0,0 @@ -services: - 1panel-php: - build: - context: ./php - args: - PHP_IMAGE: php:${PHP_VERSION}-fpm-alpine - CONTAINER_PACKAGE_URL: ${CONTAINER_PACKAGE_URL} - PHP_EXTENSIONS: ${PHP_EXTENSIONS} - TZ: ${TZ} - image: ${IMAGE_NAME} - volumes: - - ${SOURCE_DIR}:/www/ - - ${PHP_PHP_CONF_FILE}:/usr/local/etc/php/php.ini - - ${PHP_FPM_CONF_FILE}:/usr/local/etc/php-fpm.d/www.conf - - ${PHP_LOG_DIR}:/var/log/php - - ${DATA_DIR}/composer:/tmp/composer - restart: always - cap_add: - - SYS_PTRACE diff --git a/php7/7.4.33/build/php/Dockerfile b/php7/7.4.33/build/php/Dockerfile deleted file mode 100644 index 622c0b79e..000000000 --- a/php7/7.4.33/build/php/Dockerfile +++ /dev/null @@ -1,36 +0,0 @@ -ARG PHP_IMAGE -FROM ${PHP_IMAGE} - -ARG TZ -ARG PHP_EXTENSIONS -ARG CONTAINER_PACKAGE_URL -ARG INSTALL_SUPERVISOR - -RUN if [ $CONTAINER_PACKAGE_URL ] ; then sed -i "s/dl-cdn.alpinelinux.org/${CONTAINER_PACKAGE_URL}/g" /etc/apk/repositories ; fi - -ADD ./extensions/install-php-extensions /usr/local/bin/ -RUN chmod uga+x /usr/local/bin/install-php-extensions - -COPY ./extensions /tmp/extensions -WORKDIR /tmp/extensions -RUN chmod +x install.sh \ - && sh install.sh - -RUN apk --no-cache add tzdata \ - && cp "/usr/share/zoneinfo/$TZ" /etc/localtime \ - && echo "$TZ" > /etc/timezone - -# Fix: https://github.com/docker-library/php/issues/1121 -RUN apk add --no-cache --repository http://${CONTAINER_PACKAGE_URL}/alpine/v3.13/community/ gnu-libiconv=1.15-r3 -ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so php - -# Install composer and change it's cache home -RUN chmod +x install-composer.sh \ - && sh install-composer.sh \ - && rm -rf /tmp/extensions -ENV COMPOSER_HOME=/tmp/composer - -# php image's www-data user uid & gid are 82, change them to 1000 (primary user) -RUN apk --no-cache add shadow && usermod -u 1000 www-data && groupmod -g 1000 www-data - -WORKDIR /www diff --git a/php7/7.4.33/build/php/extensions/amqp-1.10.2.tgz b/php7/7.4.33/build/php/extensions/amqp-1.10.2.tgz deleted file mode 100644 index 7bcd30d03..000000000 Binary files a/php7/7.4.33/build/php/extensions/amqp-1.10.2.tgz and /dev/null differ diff --git a/php7/7.4.33/build/php/extensions/apcu-5.1.17.tgz b/php7/7.4.33/build/php/extensions/apcu-5.1.17.tgz deleted file mode 100644 index c15ca116a..000000000 Binary files a/php7/7.4.33/build/php/extensions/apcu-5.1.17.tgz and /dev/null differ diff --git a/php7/7.4.33/build/php/extensions/event-3.0.8.tgz b/php7/7.4.33/build/php/extensions/event-3.0.8.tgz deleted file mode 100644 index e7a471bbe..000000000 Binary files a/php7/7.4.33/build/php/extensions/event-3.0.8.tgz and /dev/null differ diff --git a/php7/7.4.33/build/php/extensions/install-composer.sh b/php7/7.4.33/build/php/extensions/install-composer.sh deleted file mode 100644 index 34074732d..000000000 --- a/php7/7.4.33/build/php/extensions/install-composer.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/sh - -# The latest mirror's composer version only support for PHP 7.2.5 -# And if your PHP version is lesser than that, will be download supported version. -supportLatest=$(php -r "echo version_compare(PHP_VERSION, '7.2.5', '>');") - -if [ "$supportLatest" -eq "1" ]; then - curl -o /usr/bin/composer https://mirrors.aliyun.com/composer/composer.phar \ - && chmod +x /usr/bin/composer -else - curl -o /tmp/composer-setup.php https://getcomposer.org/installer \ - && php /tmp/composer-setup.php --install-dir=/tmp \ - && mv /tmp/composer.phar /usr/bin/composer \ - && chmod +x /usr/bin/composer \ - && rm -rf /tmp/composer-setup.php -fi \ No newline at end of file diff --git a/php7/7.4.33/build/php/extensions/install-php-extensions b/php7/7.4.33/build/php/extensions/install-php-extensions deleted file mode 100644 index 2ef98bb85..000000000 --- a/php7/7.4.33/build/php/extensions/install-php-extensions +++ /dev/null @@ -1,5154 +0,0 @@ -#!/bin/sh - -# This script wraps docker-php-ext-install, properly configuring the system. -# -# Copyright (c) Michele Locati, 2018-2023 -# -# Source: https://github.com/mlocati/docker-php-extension-installer -# -# License: MIT - see https://github.com/mlocati/docker-php-extension-installer/blob/master/LICENSE - -# Let's set a sane environment -set -o errexit -set -o nounset - -if test "${IPE_DEBUG:-}" = "1"; then - set -x -fi - -if ! which docker-php-ext-configure >/dev/null || ! which docker-php-ext-enable >/dev/null || ! which docker-php-ext-install >/dev/null || ! which docker-php-source >/dev/null; then - printf 'The script %s is meant to be used with official Docker PHP Images - https://hub.docker.com/_/php\n' "$0" >&2 - exit 1 -fi - -IPE_VERSION=2.7.27 - -StandWithUkraine() { - if test -t 1 && ! grep -Eq '^VERSION=.*jessie' /etc/os-release; then - printf '\e[37;44m#StandWith\e[30;43mUkraine\e[0m\n' - else - printf '#StandWithUkraine\n' - fi -} - -if test "$IPE_VERSION" = master && test "${CI:-}" != true; then - cat <&2 - exit 1 - fi - DISTRO="$(cat /etc/os-release | grep -E ^ID= | cut -d = -f 2)" - DISTRO_VERSION_NUMBER="$(cat /etc/os-release | grep -E ^VERSION_ID= | cut -d = -f 2 | cut -d '"' -f 2 | cut -d . -f 1,2)" - DISTRO_VERSION="$(printf '%s@%s' $DISTRO $DISTRO_VERSION_NUMBER)" - DISTRO_MAJMIN_VERSION="$(echo "$DISTRO_VERSION_NUMBER" | awk -F. '{print $1*100+$2}')" -} - -# Set: -# - PHP_MAJMIN_VERSION: Major-Minor version, format MMmm (example 800 for PHP 8.0.1) -# - PHP_MAJDOTMIN_VERSION: Major-Minor version, format M.m (example 8.0 for PHP 8.0.1) -# - PHP_MAJMINPAT_VERSION: Major-Minor-Patch version, format MMmmpp (example 80001 for PHP 8.0.1) variables containing integers value -# - PHP_MAJDOTMINDOTPAT_VERSION: Major-Minor-Patch version, format M.m.p (example 8.0.1 for PHP 8.0.1) -# - PHP_THREADSAFE: 1 if PHP is thread-safe (TS), 0 if not thread-safe (NTS) -# - PHP_DEBUGBUILD: 1 if PHP is debug build (configured with "--enable-debug"), 0 otherwise -# - PHP_BITS: 32 if PHP is compiled for 32-bit, 64 if 64-bit -# - PHP_EXTDIR: the absolute path where the PHP extensions reside -setPHPVersionVariables() { - PHP_MAJDOTMINDOTPAT_VERSION="$(php-config --version)" - PHP_MAJMIN_VERSION=$(printf '%s' "$PHP_MAJDOTMINDOTPAT_VERSION" | awk -F. '{print $1*100+$2}') - PHP_MAJDOTMIN_VERSION=$(printf '%s' "$PHP_MAJDOTMINDOTPAT_VERSION" | cut -d. -f1-2) - PHP_MAJMINPAT_VERSION=$(printf '%s' "$PHP_MAJDOTMINDOTPAT_VERSION" | awk -F. '{print $1*10000+$2*100+$3}') - PHP_THREADSAFE=$(php -n -r 'echo ZEND_THREAD_SAFE ? 1 : 0;') - PHP_DEBUGBUILD=$(php -n -r 'echo ZEND_DEBUG_BUILD ? 1 : 0;') - PHP_BITS=$(php -n -r 'echo PHP_INT_SIZE * 8;') - PHP_EXTDIR="$(php -d display_errors=stderr -r 'echo realpath(ini_get("extension_dir"));')" -} - -# Fix apt-get being very slow on Debian Jessie -# See https://bugs.launchpad.net/ubuntu/+source/apt/+bug/1332440 -fixMaxOpenFiles() { - fixMaxOpenFiles_cur=$(ulimit -n 2>/dev/null || echo 0) - if test "$fixMaxOpenFiles_cur" -gt 10000; then - ulimit -n 10000 - fi -} - -# Get the directory containing the compiled PHP extensions -# -# Output: -# The absolute path of the extensions dir -getPHPExtensionsDir() { - php -i | grep -E '^extension_dir' | head -n1 | tr -s '[:space:]*=>[:space:]*' '|' | cut -d'|' -f2 -} - -# Normalize the name of a PHP extension -# -# Arguments: -# $1: the name of the module to be normalized -# -# Output: -# The normalized module name -normalizePHPModuleName() { - normalizePHPModuleName_name="$1" - case "$normalizePHPModuleName_name" in - *A* | *B* | *C* | *D* | *E* | *F* | *G* | *H* | *I* | *J* | *K* | *L* | *M* | *N* | *O* | *P* | *Q* | *R* | *S* | *T* | *U* | *V* | *W* | *X* | *Y* | *Z*) - normalizePHPModuleName_name="$(LC_CTYPE=C printf '%s' "$normalizePHPModuleName_name" | tr '[:upper:]' '[:lower:]')" - ;; - esac - case "$normalizePHPModuleName_name" in - datadog_trace) - normalizePHPModuleName_name=ddtrace - ;; - ioncube | ioncube\ loader) - normalizePHPModuleName_name='ioncube_loader' - ;; - pecl_http) - normalizePHPModuleName_name='http' - ;; - zend\ opcache) - normalizePHPModuleName_name='opcache' - ;; - libsodium) - if test $PHP_MAJMIN_VERSION -ge 700; then - normalizePHPModuleName_name='sodium' - fi - ;; - sodium) - if test $PHP_MAJMIN_VERSION -lt 700; then - normalizePHPModuleName_name='libsodium' - fi - ;; - *\ *) - printf '### WARNING Unrecognized module name: %s ###\n' "$1" >&2 - ;; - esac - printf '%s' "$normalizePHPModuleName_name" -} - -# Get the PECL name of PHP extension -# -# Arguments: -# $1: the name of the extension -# -# Output: -# The PECL name of the extension -getPeclModuleName() { - normalizePHPModuleName_name="$1" - case "$normalizePHPModuleName_name" in - ddtrace) - normalizePHPModuleName_name=datadog_trace - ;; - http) - normalizePHPModuleName_name=pecl_http - ;; - sodium) - normalizePHPModuleName_name=libsodium - ;; - esac - printf '%s' "$normalizePHPModuleName_name" -} - -# Parse a package.xml (or package2.xml) file and extract the module name and version -# -# Arguments: -# $1: the patho to the XML file -# -# Set these variables: -# - EXTRACTPACKAGEVERSIONFROMXML_NAME -# - EXTRACTPACKAGEVERSIONFROMXML_VERSION -# -# Output: -# Nothing -# -# Return: -# 0 (true): if the string is in the list -# 1 (false): if the string is not in the list -extractPackageVersionFromXML() { - if ! test -f "$1"; then - printf 'Unable to find the file\n%s\n' >&2 - return 1 - fi - extractPackageVersionFromXML_code="$( - cat <<'EOT' -$doc = new DOMDocument(); -if (!$doc->load($argv[1])) { - fwrite(STDERR, "Failed to load XML file\n"); - exit(1); -} -set_error_handler( - static function($errno, $errstr) { - fwrite(STDERR, trim((string) $errstr) . "\n"); - exit(1); - }, - -1 -); -$xpath = new DOMXpath($doc); -$xpath->registerNamespace('v20', 'http://pear.php.net/dtd/package-2.0'); -$xpath->registerNamespace('v21', 'http://pear.php.net/dtd/package-2.1'); -if ($xpath->query('/v20:package/v20:dependencies')->length === 1) { - $ns = 'v20:'; -} elseif ($xpath->query('/v21:package/v21:dependencies')->length === 1) { - $ns = 'v21:'; -} elseif ($xpath->query('/package')->length === 1) { - $ns = ''; -} else { - fwrite(STDERR, "Unsupported namespace of the XML of package version details\n"); -} -$nodes = $xpath->query("/{$ns}package/{$ns}name"); -$name = trim((string) $nodes[0]->nodeValue); -if ($ns === '') { - $nodes = $xpath->query("/{$ns}package/{$ns}version"); -} else { - $nodes = $xpath->query("/{$ns}package/{$ns}version/{$ns}release"); -} -$version = trim((string) $nodes[0]->nodeValue); -echo "EXTRACTPACKAGEVERSIONFROMXML_NAME='{$name}'\n"; -echo "EXTRACTPACKAGEVERSIONFROMXML_VERSION='{$version}'\n"; -exit(0); -EOT - )" - extractPackageVersionFromXML_vars="$(php -n -d display_errors=stderr -r "$extractPackageVersionFromXML_code" "$1")" - if test -z "$extractPackageVersionFromXML_vars"; then - return 1 - fi - eval "$extractPackageVersionFromXML_vars" - return 0 -} - -# Parse a module name (and optionally version) as received via command arguments, extracting the version and normalizing it -# Examples: -# xdebug-2.9.8 -# xdebug-^2 -# xdebug-^2.9 -# -# Arguments: -# $1: the name of the module to be normalized -# -# Set these variables: -# - PROCESSED_PHP_MODULE_ARGUMENT -# -# Optionally set these variables: -# - PHP_WANTEDMODULEVERSION_<...> (where <...> is the normalized module name) -# - PHP_MODULESOURCECODEPATH_<...> (where <...> is the normalized module name) -# -# Output: -# Nothing -processPHPModuleArgument() { - processPHPModuleArgument_arg="$1" - case "$processPHPModuleArgument_arg" in - imagick) - if test $PHP_MAJMIN_VERSION -ge 804; then - processPHPModuleArgument_arg=imagick/imagick@65e27f2bc02e7e8f1bf64e26e359e42a1331fca1 - elif test $PHP_MAJMIN_VERSION -ge 803; then - processPHPModuleArgument_arg=imagick/imagick@28f27044e435a2b203e32675e942eb8de620ee58 - fi - ;; - esac - # Convert GitHub short form to long url, - # for example: from - # php-memcached-dev/php-memcached@8f106564e6bb005ca6100b12ccc89000daafa9d8 - # to - # https://codeload.github.com/php-memcached-dev/php-memcached/tar.gz/8f106564e6bb005ca6100b12ccc89000daafa9d8 - processPHPModuleArgument_arg="$(printf '%s' "$processPHPModuleArgument_arg" | sed -E 's/^([a-zA-Z0-9_.\-]+\/[a-zA-Z0-9_.\-]+)@(.+$)/https:\/\/codeload.github.com\/\1\/tar.gz\/\2/')" - # Let's check if $processPHPModuleArgument_arg is an URL - if printf '%s' "$processPHPModuleArgument_arg" | grep -Eq '^https?://[^ ]+/[^ ]+$'; then - printf 'Downloading source from %s\n' "$processPHPModuleArgument_arg" - processPHPModuleArgument_arg="$(getPackageSource "$processPHPModuleArgument_arg")" - fi - # Let's check if $processPHPModuleArgument_arg the absolute path of an existing directory - if test "$processPHPModuleArgument_arg" != "${processPHPModuleArgument_arg#/}" && test -d "$processPHPModuleArgument_arg"; then - if test -f "$processPHPModuleArgument_arg/package2.xml"; then - printf 'Checking package2.xml of directory %s... ' "$processPHPModuleArgument_arg" - if ! extractPackageVersionFromXML "$processPHPModuleArgument_arg/package2.xml"; then - return 1 - fi - elif test -f "$processPHPModuleArgument_arg/package.xml"; then - printf 'Checking package.xml of directory %s... ' "$processPHPModuleArgument_arg" - if ! extractPackageVersionFromXML "$processPHPModuleArgument_arg/package.xml"; then - return 1 - fi - else - printf 'Unable to find the package.xml file in the directory\n%s\n' "$processPHPModuleArgument_arg" - return 1 - fi - printf 'good (name: %s, version: %s)\n' "$EXTRACTPACKAGEVERSIONFROMXML_NAME" "$EXTRACTPACKAGEVERSIONFROMXML_VERSION" - PROCESSED_PHP_MODULE_ARGUMENT="$(normalizePHPModuleName "$EXTRACTPACKAGEVERSIONFROMXML_NAME")" - processPHPModuleArgument_version="$EXTRACTPACKAGEVERSIONFROMXML_VERSION" - if printf '%s' "$PROCESSED_PHP_MODULE_ARGUMENT" | grep -Eq '^[a-zA-Z0-9_]+$'; then - eval PHP_MODULESOURCECODEPATH_$PROCESSED_PHP_MODULE_ARGUMENT="$processPHPModuleArgument_arg" - else - printf 'Unable to parse the following module name:\n%s\n' "$PROCESSED_PHP_MODULE_ARGUMENT" >&2 - exit 1 - fi - else - PROCESSED_PHP_MODULE_ARGUMENT="${processPHPModuleArgument_arg%%-*}" - if test -n "$PROCESSED_PHP_MODULE_ARGUMENT" && test "$PROCESSED_PHP_MODULE_ARGUMENT" != "$processPHPModuleArgument_arg"; then - processPHPModuleArgument_version="${processPHPModuleArgument_arg#*-}" - else - processPHPModuleArgument_version='' - fi - PROCESSED_PHP_MODULE_ARGUMENT="$(normalizePHPModuleName "$PROCESSED_PHP_MODULE_ARGUMENT")" - fi - if test -n "$processPHPModuleArgument_version"; then - if printf '%s' "$PROCESSED_PHP_MODULE_ARGUMENT" | grep -Eq '^[a-zA-Z0-9_]+$'; then - eval PHP_WANTEDMODULEVERSION_$PROCESSED_PHP_MODULE_ARGUMENT="$processPHPModuleArgument_version" - elif printf '%s' "$PROCESSED_PHP_MODULE_ARGUMENT" | grep -Eq '^@[a-zA-Z0-9_]+$'; then - eval PHP_WANTEDMODULEVERSION__${PROCESSED_PHP_MODULE_ARGUMENT#@}="$processPHPModuleArgument_version" - else - printf 'Unable to parse the following module name:\n%s\n' "$PROCESSED_PHP_MODULE_ARGUMENT" >&2 - fi - fi -} - -# Get the wanted PHP module version, as specified in the command line arguments. -# -# Arguments: -# $1: the name of the module to be normalized -# -# Output: -# The wanted version (if any) -getWantedPHPModuleVersion() { - if printf '%s' "$1" | grep -Eq '^[a-zA-Z0-9_]+$'; then - eval printf '%s' "\${PHP_WANTEDMODULEVERSION_$1:-}" - elif printf '%s' "$1" | grep -Eq '^@[a-zA-Z0-9_]+$'; then - eval printf '%s' "\${PHP_WANTEDMODULEVERSION__${1#@}:-}" - fi -} - -# Get source code path of a PHP module version, as specified in the command line arguments. -# -# Arguments: -# $1: the name of the module to be normalized -# -# Output: -# The wanted version (if any) -getModuleSourceCodePath() { - if printf '%s' "$1" | grep -Eq '^[a-zA-Z0-9_]+$'; then - eval printf '%s' "\${PHP_MODULESOURCECODEPATH_$1:-}" - fi -} - -# Get the actual PHP module version, resolving it if it starts with '^' -# -# Arguments: -# $1: the name of the module -# $2: the wanted version (optional, if omitted we'll use getWantedPHPModuleVersion) -# -# Output: -# The version to be used -resolvePHPModuleVersion() { - resolvePHPModuleVersion_module="$1" - if test $# -lt 2; then - resolvePHPModuleVersion_raw="$(getWantedPHPModuleVersion "$installRemoteModule_module")" - else - resolvePHPModuleVersion_raw="$2" - fi - resolvePHPModuleVersion_afterCaret="${resolvePHPModuleVersion_raw#^}" - if test "$resolvePHPModuleVersion_raw" = "$resolvePHPModuleVersion_afterCaret"; then - printf '%s' "$resolvePHPModuleVersion_raw" - return - fi - case "$resolvePHPModuleVersion_afterCaret" in - ?*@snapshot | ?*@devel | ?*@alpha | ?*@beta | ?*@stable) - resolvePHPModuleVersion_wantedStability="${resolvePHPModuleVersion_afterCaret##*@}" - resolvePHPModuleVersion_wantedVersion="${resolvePHPModuleVersion_afterCaret%@*}" - ;; - *) - resolvePHPModuleVersion_wantedStability='' - resolvePHPModuleVersion_wantedVersion="$resolvePHPModuleVersion_afterCaret" - ;; - esac - resolvePHPModuleVersion_peclModule="$(getPeclModuleName "$resolvePHPModuleVersion_module")" - resolvePHPModuleVersion_xml="$(curl -sSLf "http://pecl.php.net/rest/r/$resolvePHPModuleVersion_peclModule/allreleases.xml")" - # remove line endings, collapse spaces - resolvePHPModuleVersion_versions="$(printf '%s' "$resolvePHPModuleVersion_xml" | tr -s ' \t\r\n' ' ')" - # one line per release (eg 1.2.3stable) - resolvePHPModuleVersion_versions="$(printf '%s' "$resolvePHPModuleVersion_versions" | sed -r 's#$resolvePHPModuleVersion_wantedStability")" - fi - # remove everything's up to '' (included) - resolvePHPModuleVersion_versions="$(printf '%s' "$resolvePHPModuleVersion_versions" | sed 's#^.*##')" - # keep just the versions - resolvePHPModuleVersion_versions="$(printf '%s' "$resolvePHPModuleVersion_versions" | cut -d'<' -f1)" - resetIFS - for resolvePHPModuleVersion_version in $resolvePHPModuleVersion_versions; do - resolvePHPModuleVersion_suffix="${resolvePHPModuleVersion_version#$resolvePHPModuleVersion_wantedVersion}" - if test "$resolvePHPModuleVersion_version" != "${resolvePHPModuleVersion_version#$resolvePHPModuleVersion_wantedVersion.}"; then - # Example: looking for 1.0, found 1.0.1 - printf '%s' "$resolvePHPModuleVersion_version" - return - fi - done - for resolvePHPModuleVersion_version in $resolvePHPModuleVersion_versions; do - resolvePHPModuleVersion_suffix="${resolvePHPModuleVersion_version#$resolvePHPModuleVersion_wantedVersion}" - if test "$resolvePHPModuleVersion_version" = "$resolvePHPModuleVersion_suffix"; then - continue - fi - if test -z "$resolvePHPModuleVersion_suffix"; then - # Example: looking for 1.0, found exactly it - printf '%s' "$resolvePHPModuleVersion_version" - return - fi - case "$resolvePHPModuleVersion_suffix" in - [0-9]) - # Example: looking for 1.1, but this is 1.10 - ;; - *) - # Example: looking for 1.1, this is 1.1rc1 - printf '%s' "$resolvePHPModuleVersion_version" - return - ;; - esac - done - printf 'Unable to find a version of "%s" compatible with "%s"\nAvailable versions are:\n%s\n' "$resolvePHPModuleVersion_module" "$resolvePHPModuleVersion_raw" "$resolvePHPModuleVersion_versions" >&2 - exit 1 -} - -# Get the actual version of a PECL pmodule, resolving 'latest', 'stable', 'beta', 'alpha', 'devel'. -# -# Arguments: -# $1: the module name as known on the PECL archive -# $2: the version to be resolved -# Output: -# $2 itself if $1 is not 'latest', 'stable', 'beta', 'alpha', or 'devel', the actual version otherwise -resolvePeclStabilityVersion() { - case "$2" in - latest | stable | beta | alpha | devel) ;; - *) - printf '%s' "$2" - return - ;; - esac - resolvePeclStabilityVersion_peclModule="$(getPeclModuleName "$1")" - peclStabilityFlagToVersion_url="http://pecl.php.net/rest/r/$resolvePeclStabilityVersion_peclModule/$2.txt" - if ! peclStabilityFlagToVersion_result="$(curl -sSLf "$peclStabilityFlagToVersion_url")"; then - peclStabilityFlagToVersion_result='' - fi - if test -z "$peclStabilityFlagToVersion_result"; then - printf 'Failed to resolve the PECL package version "%s" of %s from %s\n' "$2" "$1" "$peclStabilityFlagToVersion_url" >&2 - exit 1 - fi - printf '%s' "$peclStabilityFlagToVersion_result" -} - -# Set these variables: -# - PHP_PREINSTALLED_MODULES the normalized list of PHP modules installed before running this script -setPHPPreinstalledModules() { - PHP_PREINSTALLED_MODULES='' - IFS=' -' - for getPHPInstalledModules_module in $(php -m); do - getPHPInstalledModules_moduleNormalized='' - case "$getPHPInstalledModules_module" in - \[PHP\ Modules\]) ;; - \[Zend\ Modules\]) - break - ;; - *) - getPHPInstalledModules_moduleNormalized="$(normalizePHPModuleName "$getPHPInstalledModules_module")" - if ! stringInList "$getPHPInstalledModules_moduleNormalized" "$PHP_PREINSTALLED_MODULES"; then - PHP_PREINSTALLED_MODULES="$PHP_PREINSTALLED_MODULES $getPHPInstalledModules_moduleNormalized" - fi - ;; - esac - done - if command -v composer >/dev/null; then - PHP_PREINSTALLED_MODULES="$PHP_PREINSTALLED_MODULES @composer" - fi - resetIFS - PHP_PREINSTALLED_MODULES="${PHP_PREINSTALLED_MODULES# }" -} - -# Get the handles of the modules to be installed -# -# Arguments: -# $@: all module handles -# -# Set: -# PHP_MODULES_TO_INSTALL -# -# Output: -# Nothing -processCommandArguments() { - processCommandArguments_endArgs=0 - PHP_MODULES_TO_INSTALL='' - # Support deprecated flag IPE_FIX_CACERTS - case "${IPE_FIX_CACERTS:-}" in - 1 | y* | Y*) - PHP_MODULES_TO_INSTALL="$PHP_MODULES_TO_INSTALL @fix_letsencrypt" - ;; - esac - while :; do - if test $# -lt 1; then - break - fi - processCommandArguments_skip=0 - if test $processCommandArguments_endArgs -eq 0; then - case "$1" in - --cleanup) - printf '### WARNING the %s option is deprecated (we always cleanup everything) ###\n' "$1" >&2 - processCommandArguments_skip=1 - ;; - --) - processCommandArguments_skip=1 - processCommandArguments_endArgs=1 - ;; - -*) - printf 'Unrecognized option: %s\n' "$1" >&2 - exit 1 - ;; - esac - fi - if test $processCommandArguments_skip -eq 0; then - processPHPModuleArgument "$1" - processCommandArguments_name="$PROCESSED_PHP_MODULE_ARGUMENT" - if stringInList "$processCommandArguments_name" "$PHP_MODULES_TO_INSTALL"; then - printf '### WARNING Duplicated module name specified: %s ###\n' "$processCommandArguments_name" >&2 - elif stringInList "$processCommandArguments_name" "$PHP_PREINSTALLED_MODULES"; then - printf '### WARNING Module already installed: %s ###\n' "$processCommandArguments_name" >&2 - else - PHP_MODULES_TO_INSTALL="$PHP_MODULES_TO_INSTALL $processCommandArguments_name" - fi - fi - shift - done - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL# }" -} - -# Add a module that's required by another module -# -# Arguments: -# $1: module that requires another module -# $2: the required module -# -# Update: -# PHP_MODULES_TO_INSTALL -# -# Output: -# Nothing -checkRequiredModule() { - if ! stringInList "$1" "$PHP_MODULES_TO_INSTALL"; then - return - fi - if stringInList "$2" "$PHP_PREINSTALLED_MODULES"; then - return - fi - PHP_MODULES_TO_INSTALL="$(removeStringFromList "$1" "$PHP_MODULES_TO_INSTALL")" - if ! stringInList "$2" "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$PHP_MODULES_TO_INSTALL $2" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL# }" - fi - PHP_MODULES_TO_INSTALL="$PHP_MODULES_TO_INSTALL $1" -} - -# Sort the modules to be installed, in order to fix dependencies -# -# Update: -# PHP_MODULES_TO_INSTALL -# -# Output: -# Nothing -sortModulesToInstall() { - # apcu_bc requires apcu - checkRequiredModule 'apcu_bc' 'apcu' - # http requires propro (for PHP < 8) and raphf - if test $PHP_MAJMIN_VERSION -le 704; then - checkRequiredModule 'http' 'propro' - fi - checkRequiredModule 'http' 'raphf' - # event requires sockets (for PHP <= 5.6) - if test $PHP_MAJMIN_VERSION -le 506; then - checkRequiredModule event sockets - fi - # relay requires msgpack - checkRequiredModule relay msgpack - # relay requires igbinary - checkRequiredModule relay igbinary - # pq requires raphf - checkRequiredModule pq raphf - # phalcon up to v5.0.0beta3 requires psr - if test $PHP_MAJMINPAT_VERSION -lt 70401; then - checkRequiredModule phalcon psr - fi - # Some module installation may use sockets if available: move it before other modules - if stringInList 'sockets' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'sockets' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="sockets $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # Some module installation may use igbinary if available: move it before other modules - if stringInList 'igbinary' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'igbinary' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="igbinary $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # Some module installation may use msgpack if available: move it before other modules - if stringInList 'msgpack' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'msgpack' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="msgpack $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # Some module installation may use socket if available: move it before other modules - if stringInList 'socket' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'socket' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="socket $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # Some module installation may use apcu if available: move it before other modules - if stringInList 'apcu' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'apcu' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="apcu $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # Some module installation may use raphf if available: move it before other modules - if stringInList 'raphf' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'raphf' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="raphf $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # In any case, first of all, we need to install composer - if stringInList '@composer' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList '@composer' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="@composer $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi -} - -# Expand the IPE_ASPELL_LANGUAGES environment variable into apk/apt package names -expandASpellDictionaries() { - expandASpellDictionaries_languages="${IPE_ASPELL_LANGUAGES:-en}" - expandASpellDictionaries_result='' - resetIFS - for expandASpellDictionaries_language in $expandASpellDictionaries_languages; do - expandASpellDictionaries_result="$expandASpellDictionaries_result aspell-$expandASpellDictionaries_language" - done - printf '%s' "${expandASpellDictionaries_result# }" -} - -# Get the required APT/APK packages for a specific PHP version and for the list of module handles -# -# Arguments: -# $@: the PHP module handles -# -# Set: -# PACKAGES_PERSISTENT_NEW the list of packages required at runtume that must be installed -# PACKAGES_PERSISTENT_PRE the list of packages required at runtume that are already installed -# PACKAGES_VOLATILE the list of packages required at compile time that must be installed -# PACKAGES_PREVIOUS the list of packages (with their version) that are installed right now (calculated only on Debian and only if PACKAGES_PERSISTENT_NEW or PACKAGES_VOLATILE are not empty) -# COMPILE_LIBS -buildRequiredPackageLists() { - buildRequiredPackageLists_persistent='' - buildRequiredPackageLists_volatile='' - COMPILE_LIBS='' - case "$DISTRO" in - alpine) - apk update - ;; - debian) - invokeAptGetUpdate - ;; - esac - case "$DISTRO_VERSION" in - alpine@*) - if test $# -gt 1 || test "${1:-}" != '@composer'; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $PHPIZE_DEPS" - fi - if test -z "$(apk info 2>/dev/null | grep -E ^libssl)"; then - buildRequiredPackageLists_libssl="$(apk search | grep -E '^libssl[0-9]' | head -1 | cut -d- -f1)" - elif test -z "$(apk info 2>/dev/null | grep -E '^libressl.*-libtls')" && test -z "$(apk info 2>/dev/null | grep -E '^libressl.*-libssl')" && test -z "$(apk info 2>/dev/null | grep -E '^libretls-')"; then - buildRequiredPackageLists_libssl=$(apk search -q libressl*-libtls) - else - buildRequiredPackageLists_libssl='' - fi - if test $DISTRO_MAJMIN_VERSION -le 313; then - buildRequiredPackageLists_libssldev='libressl-dev' - else - buildRequiredPackageLists_libssldev='libretls-dev' - fi - buildRequiredPackageLists_icuPersistent='' - if test $DISTRO_MAJMIN_VERSION -ge 316; then - case "${IPE_ICU_EN_ONLY:-}" in - 1 | y* | Y*) ;; - *) - buildRequiredPackageLists_icuPersistent='icu-data-full' - ;; - esac - fi - ;; - debian@9) - buildRequiredPackageLists_libssldev='libssl1.0-dev' - ;; - debian@*) - buildRequiredPackageLists_libssldev='^libssl([0-9]+(\.[0-9]+)*)?-dev$' - ;; - esac - if test $USE_PICKLE -gt 1; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile git" - fi - while :; do - if test $# -lt 1; then - break - fi - case "$1@$DISTRO" in - @composer@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent unzip" - ;; - amqp@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent rabbitmq-c" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile rabbitmq-c-dev" - ;; - amqp@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^librabbitmq[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile librabbitmq-dev libssh-dev" - ;; - bz2@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libbz2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile bzip2-dev" - ;; - bz2@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libbz2-dev" - ;; - cassandra@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent cassandra-cpp-driver gmp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cassandra-cpp-driver-dev gmp-dev" - ;; - cmark@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake" - ;; - cmark@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake" - ;; - ddtrace@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libgcc" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile curl-dev" - ;; - ddtrace@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libcurl4-openssl-dev" - ;; - dba@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent db" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile db-dev" - ;; - dba@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile ^libdb5\.3-dev$" - if test $PHP_MAJMIN_VERSION -le 505; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile patch" - fi - ;; - decimal@debian) - if test $DISTRO_MAJMIN_VERSION -lt 1200; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libmpdec[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmpdec-dev" - fi - ;; - ecma_intl@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent icu-libs $buildRequiredPackageLists_icuPersistent" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev libidn-dev" - ;; - ecma_intl@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libicu[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libicu-dev" - ;; - enchant@alpine) - if test $DISTRO_MAJMIN_VERSION -ge 312; then - if test $PHP_MAJMIN_VERSION -ge 800; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent enchant2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile enchant2-dev" - else - # The system provides libenchant2, supported since PHP 8.0: we need to build libenchant1 on our own - if ! isLibenchant1Installed; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent glib aspell-libs libhunspell" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile glib-dev aspell-dev hunspell-dev" - COMPILE_LIBS="$COMPILE_LIBS libenchant1" - fi - fi - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent enchant" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile enchant-dev" - fi - ;; - enchant@debian) - if test $DISTRO_VERSION_NUMBER -ge 11; then - if test $PHP_MAJMIN_VERSION -ge 800; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libenchant-2-2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libenchant-2-dev" - else - if ! isLibenchant1Installed; then - # The system provides libenchant2, supported since PHP 8.0: we need to build libenchant1 on our own - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent aspell-en libhunspell-1.7-0" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libglib2.0-dev libaspell-dev libhunspell-dev" - COMPILE_LIBS="$COMPILE_LIBS libenchant1" - fi - fi - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libenchant1c2a" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libenchant-dev" - fi - ;; - event@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libevent $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libevent-dev $buildRequiredPackageLists_libssldev" - ;; - event@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libevent[0-9\.\-]*$ ^libevent-openssl[0-9\.\-]*$ ^libevent-extra[0-9\.\-]*$ ^libevent-pthreads[0-9\.\-]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libevent-dev $buildRequiredPackageLists_libssldev" - ;; - ffi@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libffi" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libffi-dev" - ;; - ffi@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libffi-dev" - ;; - ftp@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev" - ;; - ftp@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev" - ;; - gd@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent freetype libjpeg-turbo libpng libxpm" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetype-dev libjpeg-turbo-dev libpng-dev libxpm-dev" - if test $PHP_MAJMIN_VERSION -le 506; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libvpx" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libvpx-dev" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libwebp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libwebp-dev" - if test $PHP_MAJMIN_VERSION -ge 801; then - if test $DISTRO_MAJMIN_VERSION -ge 315; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libavif aom-libs libdav1d" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libavif-dev aom-dev dav1d-dev" - elif isLibaomInstalled && isLibdav1dInstalled && isLibyuvInstalled && isLibavifInstalled; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - else - case "${IPE_GD_WITHOUTAVIF:-}" in - 1 | y* | Y*) ;; - *) - if ! isLibaomInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libaom" - fi - if ! isLibdav1dInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libdav1d" - fi - if ! isLibyuvInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libyuv" - fi - if ! isLibavifInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libavif" - fi - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake nasm meson" - ;; - esac - fi - fi - fi - ;; - gd@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libfreetype6 libjpeg62-turbo ^libpng[0-9]+-[0-9]+$ libxpm4" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libfreetype6-dev libjpeg62-turbo-dev libpng-dev libxpm-dev" - if test $PHP_MAJMIN_VERSION -le 506; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libvpx[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libvpx-dev" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libwebp[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libwebp-dev" - if test $PHP_MAJMIN_VERSION -ge 801; then - if test $DISTRO_VERSION_NUMBER -ge 12; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libavif[0-9]+$ ^libaom[0-9]+$ ^libdav1d[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libavif-dev libaom-dev libdav1d-dev" - elif ! isLibaomInstalled || ! isLibdav1dInstalled || ! isLibyuvInstalled || ! isLibavifInstalled; then - case "${IPE_GD_WITHOUTAVIF:-}" in - 1 | y* | Y*) ;; - *) - if ! isLibaomInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libaom" - fi - if ! isLibdav1dInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libdav1d" - fi - if ! isLibyuvInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libyuv" - fi - if ! isLibavifInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libavif" - fi - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake nasm meson" - ;; - esac - fi - fi - fi - ;; - gearman@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++ libuuid" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile boost-dev gperf libmemcached-dev libevent-dev util-linux-dev" - ;; - gearman@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libgearman[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgearman-dev" - ;; - geoip@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent geoip" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile geoip-dev" - ;; - geoip@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libgeoip1[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgeoip-dev" - ;; - geos@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent geos-dev" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile geos" - ;; - geos@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libgeos-c1(v[0-9]*)?$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgeos-dev" - ;; - gettext@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libintl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile gettext-dev" - ;; - gmagick@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent graphicsmagick libgomp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile graphicsmagick-dev libtool" - ;; - gmagick@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libgraphicsmagick(-q16-)?[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgraphicsmagick1-dev" - ;; - gmp@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gmp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile gmp-dev" - ;; - gmp@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgmp-dev" - ;; - gnupg@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gpgme" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile gpgme-dev" - ;; - gnupg@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libgpgme[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile ^libgpgme[0-9]*-dev$" - ;; - grpc@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev linux-headers" - ;; - grpc@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev" - ;; - http@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libevent" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev curl-dev libevent-dev" - if test $PHP_MAJMIN_VERSION -le 506; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libidn" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libidn-dev" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent icu-libs $buildRequiredPackageLists_icuPersistent libidn" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev libidn-dev" - fi - ;; - http@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libcurl3-gnutls ^libevent[0-9\.\-]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev libgnutls28-dev libcurl4-gnutls-dev libevent-dev" - if test $PHP_MAJMIN_VERSION -le 506; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile ^libidn1[0-9+]-dev$" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libicu[0-9]+$ ^libidn2-[0-9+]$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libicu-dev ^libidn2-[0-9+]-dev$ ^libgcrypt[0-9]+-dev$" - fi - ;; - imagick@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent imagemagick libgomp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile imagemagick-dev" - if [ $DISTRO_MAJMIN_VERSION -ge 319 ]; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ghostscript libheif libjxl libraw librsvg" - fi - ;; - imagick@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libmagickwand-6.q16-[0-9]+$ ^libmagickcore-6.q16-[0-9]+-extra$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmagickwand-dev" - ;; - imap@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent c-client $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile krb5-dev imap-dev $buildRequiredPackageLists_libssldev" - ;; - imap@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libc-client2007e" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libkrb5-dev" - case "$DISTRO_VERSION" in - debian@9) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev comerr-dev krb5-multidev libc-client2007e libgssrpc4 libkadm5clnt-mit11 libkadm5srv-mit11 libkdb5-8 libpam0g-dev libssl-doc mlock" - ;; - *) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libc-client-dev" - ;; - esac - ;; - interbase@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev ncurses-dev" - if ! isFirebirdInstalled; then - COMPILE_LIBS="$COMPILE_LIBS firebird" - fi - ;; - interbase@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libfbclient2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile firebird-dev libib-util" - ;; - intl@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent icu-libs $buildRequiredPackageLists_icuPersistent" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev" - ;; - intl@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libicu[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libicu-dev" - ;; - ion@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake git" - ;; - ion@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake git" - ;; - ldap@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libldap" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile openldap-dev" - ;; - ldap@debian) - if test $DISTRO_VERSION_NUMBER -ge 9; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libldap-common" - fi - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libldap2-dev" - ;; - luasandbox@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lua5.1-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile lua5.1-dev" - ;; - luasandbox@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblua5.1-0" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liblua5.1-0-dev" - ;; - lz4@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lz4-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile lz4-dev" - ;; - lz4@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblz4-1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liblz4-dev" - ;; - maxminddb@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmaxminddb" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmaxminddb-dev" - ;; - maxminddb@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libmaxminddb[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmaxminddb-dev" - ;; - memprof@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent judy" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile judy-dev bsd-compat-headers" - ;; - memprof@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libjudydebian1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libjudy-dev" - ;; - mcrypt@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmcrypt" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmcrypt-dev" - ;; - mcrypt@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmcrypt4" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmcrypt-dev" - ;; - memcache@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev" - ;; - memcache@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev" - ;; - memcached@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmemcached-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmemcached-dev zlib-dev" - ;; - memcached@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmemcachedutil2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmemcached-dev zlib1g-dev" - if test $DISTRO_MAJMIN_VERSION -ge 12; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev" - fi - ;; - mongo@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsasl $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev cyrus-sasl-dev" - ;; - mongo@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev libsasl2-dev" - ;; - mongodb@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent icu-libs $buildRequiredPackageLists_icuPersistent libsasl $buildRequiredPackageLists_libssl snappy" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev cyrus-sasl-dev snappy-dev $buildRequiredPackageLists_libssldev zlib-dev" - if test $PHP_MAJMIN_VERSION -ge 704; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent zstd-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zstd-dev" - fi - ;; - mongodb@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libsnappy[0-9]+(v[0-9]+)?$ ^libicu[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libicu-dev libsasl2-dev libsnappy-dev $buildRequiredPackageLists_libssldev zlib1g-dev" - if test $PHP_MAJMIN_VERSION -ge 704; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libzstd[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libzstd-dev" - fi - ;; - mosquitto@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent mosquitto-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile mosquitto-dev" - ;; - mosquitto@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmosquitto1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmosquitto-dev" - ;; - mssql@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent freetds" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - mssql@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsybdb5" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - oauth@alpine) - if test $PHP_MAJMIN_VERSION -ge 700; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile pcre-dev" - fi - ;; - oauth@debian) - if test $PHP_MAJMIN_VERSION -ge 700; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libpcre3-dev" - fi - ;; - oci8@alpine | pdo_oci@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libaio libc6-compat libnsl" - if test $DISTRO_MAJMIN_VERSION -le 307; then - # The unzip tool of Alpine 3.7 can't extract symlinks from ZIP archives: let's use bsdtar instead - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libarchive-tools" - fi - ;; - oci8@debian | pdo_oci@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libaio[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unzip" - ;; - odbc@alpine | pdo_odbc@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent unixodbc" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unixodbc-dev" - ;; - odbc@debian | pdo_odbc@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libodbc1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unixodbc-dev" - ;; - openswoole@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent postgresql-libs libstdc++ $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile curl-dev postgresql-dev linux-headers $buildRequiredPackageLists_libssldev" - ;; - openswoole@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libcurl3-gnutls libpq5" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev libcurl4-gnutls-dev libpq-dev" - ;; - parle@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - ;; - pdo_dblib@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent freetds" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - pdo_dblib@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsybdb5" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - pdo_firebird@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev ncurses-dev" - if ! isFirebirdInstalled; then - COMPILE_LIBS="$COMPILE_LIBS firebird" - if test $PHP_MAJMIN_VERSION -ge 804; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev" - if ! isLibTommathInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libtommath" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake" - fi - if ! isLibTomcryptInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libtomcrypt" - fi - fi - fi - ;; - pdo_firebird@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libfbclient2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile firebird-dev libib-util" - ;; - pgsql@alpine | pdo_pgsql@alpine | pq@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent postgresql-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile postgresql-dev" - ;; - pgsql@debian | pdo_pgsql@debian | pq@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libpq5" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libpq-dev" - ;; - php_trie@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - ;; - phpy@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent python3" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile python3-dev" - ;; - phpy@debian) - if test $DISTRO_VERSION_NUMBER -ge 12; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libpython3.11" - elif test $DISTRO_VERSION_NUMBER -ge 11; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libpython3.9" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libpython3.7" - fi - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile python3-dev" - ;; - pkcs11@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent softhsm" - ;; - pkcs11@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsofthsm2" - ;; - pspell@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent aspell-libs $(expandASpellDictionaries)" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile aspell-dev" - ;; - pspell@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libaspell15 $(expandASpellDictionaries)" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libpspell-dev" - ;; - rdkafka@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent librdkafka" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile librdkafka-dev" - ;; - rdkafka@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^librdkafka\+*[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile librdkafka-dev" - ;; - recode@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent recode" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile recode-dev" - ;; - recode@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent librecode0" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile librecode-dev" - ;; - redis@alpine) - if test $PHP_MAJMIN_VERSION -ge 700; then - case "$DISTRO_VERSION" in - alpine@3.7) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent zstd" - ;; - *) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent zstd-libs" - ;; - esac - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zstd-dev" - if test $PHP_MAJMIN_VERSION -ge 702; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lz4-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile lz4-dev" - fi - fi - ;; - redis@debian) - if test $PHP_MAJMIN_VERSION -ge 700; then - case "$DISTRO_VERSION" in - debian@8) - ## There's no APT package for libzstd - ;; - debian@9) - ## libzstd is too old (available: 1.1.2, required: 1.3.0+) - ;; - *) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libzstd[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libzstd-dev" - ;; - esac - fi - if test $PHP_MAJMIN_VERSION -ge 702; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblz4-1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liblz4-dev" - fi - ;; - relay@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lz4-libs zstd-libs" - if test $DISTRO_MAJMIN_VERSION -ge 317; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent $buildRequiredPackageLists_libssl" - fi - ;; - saxon@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_volatile unzip" - ;; - seasclick@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - ;; - simdjson@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - ;; - smbclient@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsmbclient" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile samba-dev" - ;; - smbclient@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsmbclient" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsmbclient-dev" - ;; - snappy@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent snappy" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile snappy-dev" - ;; - snappy@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libsnappy1(v[0-9]+)?$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsnappy-dev" - ;; - snmp@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent net-snmp-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile net-snmp-dev" - ;; - snmp@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent snmp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsnmp-dev" - ;; - snuffleupagus@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent pcre" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile pcre-dev" - ;; - snuffleupagus@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libpcre3-dev" - ;; - soap@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - soap@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - sockets@alpine) - if test $PHP_MAJMIN_VERSION -ge 802; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile linux-headers" - fi - ;; - sodium@alpine | libsodium@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsodium" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsodium-dev" - ;; - sodium@debian | libsodium@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libsodium[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsodium-dev" - ;; - solr@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile curl-dev libxml2-dev" - ;; - solr@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libcurl3-gnutls" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libcurl4-gnutls-dev libxml2-dev" - ;; - sourceguardian@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent eudev-libs" - ;; - spx@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev" - ;; - spx@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev" - ;; - sqlsrv@alpine | pdo_sqlsrv@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++ unixodbc" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unixodbc-dev" - ;; - sqlsrv@debian | pdo_sqlsrv@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent unixodbc" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unixodbc-dev" - if ! isMicrosoftSqlServerODBCInstalled; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile gnupg apt-transport-https" - fi - ;; - ssh2@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libssh2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libssh2-dev" - ;; - ssh2@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libssh2-1-dev" - ;; - stomp@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev" - ;; - stomp@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev" - ;; - swoole@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent postgresql-libs libstdc++ $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile curl-dev postgresql-dev linux-headers $buildRequiredPackageLists_libssldev" - if test $PHP_MAJMIN_VERSION -ge 702; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent c-ares" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile c-ares-dev" - if test $PHP_MAJMIN_VERSION -ge 801; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent zstd-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile sqlite-dev zstd-dev" - fi - fi - case "${IPE_SWOOLE_WITHOUT_IOURING:-}" in - 1 | y* | Y*) ;; - *) - # iouring support in swoole 6 requires liburing 2.5+: available since Alpine 3.19 - # but with Alpine 3.19 we have a "invalid use of incomplete type 'const struct statx'" error - if test $DISTRO_MAJMIN_VERSION -ge 320; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liburing" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liburing-dev" - fi - ;; - esac - ;; - swoole@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libcurl3-gnutls libpq5" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev libcurl4-gnutls-dev libpq-dev" - if test $PHP_MAJMIN_VERSION -ge 702; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libc-ares2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libc-ares-dev" - if test $PHP_MAJMIN_VERSION -ge 800; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libbrotli1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev libbrotli-dev" - if test $PHP_MAJMIN_VERSION -ge 801; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsqlite3-dev" - if test $DISTRO_VERSION_NUMBER -ge 11; then - # swoole 6 requires libzstd >= 1.4.0, but on debian 10 (buster) we have 1.3.8 - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libzstd[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libzstd-dev" - fi - fi - fi - fi - if test $DISTRO_VERSION_NUMBER -ge 13; then - # iouring support in swoole 6 requires liburing 2.5+: available since Debian Trixie (13) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liburing2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liburing-dev" - fi - ;; - sybase_ct@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent freetds" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - sybase_ct@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libct4" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - tdlib@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++ $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile git cmake gperf zlib-dev $buildRequiredPackageLists_libssldev linux-headers readline-dev" - ;; - tdlib@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile git cmake gperf zlib1g-dev $buildRequiredPackageLists_libssldev" - ;; - tensor@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent openblas" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile lapack-dev openblas-dev" - if test $DISTRO_MAJMIN_VERSION -le 317; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lapack" - if test $DISTRO_MAJMIN_VERSION -le 316; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libexecinfo" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libexecinfo-dev" - if test $DISTRO_MAJMIN_VERSION -le 310; then - if ! stringInList --force-overwrite "$IPE_APK_FLAGS"; then - IPE_APK_FLAGS="$IPE_APK_FLAGS --force-overwrite" - fi - fi - fi - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblapack" - fi - ;; - tensor@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblapacke" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liblapack-dev libopenblas-dev liblapacke-dev" - if test $DISTRO_VERSION_NUMBER -le 9; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-6 libopenblas-base" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-6-dev" - elif test $DISTRO_VERSION_NUMBER -le 10; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-8 libopenblas-base" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-8-dev" - elif test $DISTRO_VERSION_NUMBER -le 11; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-10 libopenblas-base" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-10-dev" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-12 libopenblas0" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-12-dev" - fi - ;; - tidy@alpine) - if test $DISTRO_MAJMIN_VERSION -ge 315; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent tidyhtml" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent tidyhtml-libs" - fi - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile tidyhtml-dev" - ;; - tidy@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libtidy-?[0-9][0-9.\-]*(deb[0-9])?$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libtidy-dev" - ;; - uuid@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libuuid" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile util-linux-dev" - ;; - uuid@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile uuid-dev" - ;; - uv@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libuv" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libuv-dev" - ;; - uv@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libuv1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libuv1-dev" - ;; - vips@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent vips" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile vips-dev" - ;; - vips@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libvips" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libvips-dev" - ;; - wddx@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - wddx@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - wikidiff2@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile git" - ;; - wikidiff2@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libthai0" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile git libthai-dev" - ;; - xdebug@alpine) - if test $PHP_MAJMIN_VERSION -ge 800; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile linux-headers" - fi - ;; - xlswriter@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev" - ;; - xlswriter@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev" - ;; - xmldiff@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - xmldiff@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - xmlrpc@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - xmlrpc@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - xpass@alpine) - if ! isLibXCryptInstalled; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile linux-headers" - COMPILE_LIBS="$COMPILE_LIBS libxcrypt" - fi - ;; - xsl@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libxslt" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxslt-dev libgcrypt-dev" - ;; - xsl@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libxslt1\.1$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxslt-dev" - ;; - yaml@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent yaml" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile yaml-dev" - ;; - yaml@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libyaml-0-2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libyaml-dev" - ;; - yar@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile curl-dev" - ;; - yar@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libcurl3-gnutls" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libcurl4-gnutls-dev" - ;; - zip@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libzip" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake gnutls-dev libzip-dev $buildRequiredPackageLists_libssldev zlib-dev" - ;; - zip@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libzip[0-9]$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake gnutls-dev $buildRequiredPackageLists_libssldev libzip-dev libbz2-dev zlib1g-dev" - case "$DISTRO_VERSION" in - debian@8) - # Debian Jessie doesn't seem to provide libmbedtls - ;; - *) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libmbedtls[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmbedtls-dev" - ;; - esac - ;; - zmq@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent zeromq-dev" - ;; - zmq@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libzmq3-dev" - ;; - zookeeper@alpine) - if ! test -f /usr/local/include/zookeeper/zookeeper.h; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile maven automake libtool openjdk8" - fi - ;; - zookeeper@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libzookeeper-mt2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libzookeeper-mt-dev" - ;; - esac - shift - done - PACKAGES_PERSISTENT_NEW='' - PACKAGES_PERSISTENT_PRE='' - PACKAGES_VOLATILE='' - PACKAGES_PREVIOUS='' - if test -z "$buildRequiredPackageLists_persistent$buildRequiredPackageLists_volatile"; then - return - fi - if test -n "$buildRequiredPackageLists_persistent"; then - PACKAGES_PERSISTENT_NEW="$(expandPackagesToBeInstalled $buildRequiredPackageLists_persistent)" - if test -s "$IPE_ERRFLAG_FILE"; then - exit 1 - fi - resetIFS - for buildRequiredPackageLists_package in $buildRequiredPackageLists_persistent; do - buildRequiredPackageLists_package="$(expandInstalledSystemPackageName "$buildRequiredPackageLists_package")" - if test -n "$buildRequiredPackageLists_package"; then - PACKAGES_PERSISTENT_PRE="$PACKAGES_PERSISTENT_PRE $buildRequiredPackageLists_package" - fi - done - PACKAGES_PERSISTENT_PRE="${PACKAGES_PERSISTENT_PRE# }" - fi - if test -n "$buildRequiredPackageLists_volatile"; then - buildRequiredPackageLists_packages="$(expandPackagesToBeInstalled $buildRequiredPackageLists_volatile)" - if test -s "$IPE_ERRFLAG_FILE"; then - exit 1 - fi - resetIFS - for buildRequiredPackageLists_package in $buildRequiredPackageLists_packages; do - if ! stringInList "$buildRequiredPackageLists_package" "$PACKAGES_PERSISTENT_NEW"; then - if test "$buildRequiredPackageLists_package" != icu-data-en || ! stringInList icu-data-full "$PACKAGES_PERSISTENT_NEW"; then - PACKAGES_VOLATILE="$PACKAGES_VOLATILE $buildRequiredPackageLists_package" - fi - fi - done - PACKAGES_VOLATILE="${PACKAGES_VOLATILE# }" - fi - if test -n "$PACKAGES_PERSISTENT_NEW$PACKAGES_VOLATILE"; then - case "$DISTRO" in - debian) - PACKAGES_PREVIOUS="$(dpkg --get-selections | grep -E '\sinstall$' | awk '{ print $1 }')" - ;; - esac - fi -} - -# Get the full list of APT/APK packages that will be installed, given the required packages -# -# Arguments: -# $1: the list of required APT/APK packages -# -# Output: -# Space-separated list of every APT/APK packages that will be installed -expandPackagesToBeInstalled() { - expandPackagesToBeInstalled_result='' - case "$DISTRO" in - alpine) - expandPackagesToBeInstalled_log="$(apk add --simulate $@ 2>&1 || printf '\nERROR: apk failed\n')" - if test -n "$(printf '%s' "$expandPackagesToBeInstalled_log" | grep -E '^ERROR:')"; then - printf 'FAILED TO LIST THE WHOLE PACKAGE LIST FOR\n' >&2 - printf '%s ' "$@" >&2 - printf '\n\nCOMMAND OUTPUT:\n%s\n' "$expandPackagesToBeInstalled_log" >&2 - echo 'y' >"$IPE_ERRFLAG_FILE" - exit 1 - fi - IFS=' -' - for expandPackagesToBeInstalled_line in $expandPackagesToBeInstalled_log; do - if test -n "$(printf '%s' "$expandPackagesToBeInstalled_line" | grep -E '^\([0-9]*/[0-9]*) Installing ')"; then - expandPackagesToBeInstalled_result="$expandPackagesToBeInstalled_result $(printf '%s' "$expandPackagesToBeInstalled_line" | cut -d ' ' -f 3)" - fi - done - resetIFS - ;; - debian) - expandPackagesToBeInstalled_log="$(apt-get install -sy --no-install-recommends $@ 2>&1 || printf '\nE: apt-get failed\n')" - if test -n "$(printf '%s' "$expandPackagesToBeInstalled_log" | grep -E '^E:')"; then - printf 'FAILED TO LIST THE WHOLE PACKAGE LIST FOR\n' >&2 - printf '%s ' "$@" >&2 - printf '\n\nCOMMAND OUTPUT:\n%s\n' "$expandPackagesToBeInstalled_log" >&2 - echo 'y' >"$IPE_ERRFLAG_FILE" - exit 1 - fi - expandPackagesToBeInstalled_inNewPackages=0 - IFS=' -' - for expandPackagesToBeInstalled_line in $expandPackagesToBeInstalled_log; do - if test $expandPackagesToBeInstalled_inNewPackages -eq 0; then - if test "$expandPackagesToBeInstalled_line" = 'The following NEW packages will be installed:'; then - expandPackagesToBeInstalled_inNewPackages=1 - fi - elif test "$expandPackagesToBeInstalled_line" = "${expandPackagesToBeInstalled_line# }"; then - break - else - resetIFS - for expandPackagesToBeInstalled_newPackage in $expandPackagesToBeInstalled_line; do - expandPackagesToBeInstalled_result="$expandPackagesToBeInstalled_result $expandPackagesToBeInstalled_newPackage" - done - IFS=' -' - fi - done - resetIFS - ;; - esac - printf '%s' "${expandPackagesToBeInstalled_result# }" -} - -# Check if a system package is installed; if so we prints its name. -# -# Arguments: -# $1: the name of the package to be checked (regular expressions accepted: they must start with a ^) -expandInstalledSystemPackageName() { - if test "$1" = "${1#^}"; then - expandInstalledSystemPackageName_grepflags='-Fx' - else - expandInstalledSystemPackageName_grepflags='-E' - fi - case "$DISTRO" in - alpine) - apk info | grep $expandInstalledSystemPackageName_grepflags -- "$1" || test $? -eq 1 - ;; - debian) - dpkg --get-selections | grep -E '\sinstall$' | awk '{ print $1 }' | cut -d: -f1 | grep $expandInstalledSystemPackageName_grepflags -- "$1" || test $? -eq 1 - ;; - esac -} - -# Retrieve the number of available cores (alternative to nproc if not available) -# -# Output: -# The number of processor cores available -getProcessorCount() { - if test -n "${IPE_PROCESSOR_COUNT:-}"; then - echo $IPE_PROCESSOR_COUNT - return - fi - if command -v nproc >/dev/null 2>&1; then - nproc - else - getProcessorCount_tmp=$(cat /proc/cpuinfo | grep -E '^processor\s*:\s*\d+$' | wc -l) - if test $getProcessorCount_tmp -ge 1; then - echo $getProcessorCount_tmp - else - echo 1 - fi - fi -} - -# Set these variables: -# - TARGET_TRIPLET the build target tripled (eg 'x86_64-linux-gnu', 'x86_64-alpine-linux-musl') -setTargetTriplet() { - TARGET_TRIPLET="$(gcc -print-multiarch 2>/dev/null || true)" - if test -z "$TARGET_TRIPLET"; then - TARGET_TRIPLET="$(gcc -dumpmachine)" - fi -} - -# Retrieve the number of processors to be used when compiling an extension -# -# Arguments: -# $1: the handle of the PHP extension to be compiled -# Output: -# The number of processors to be used -getCompilationProcessorCount() { - case "$1" in - '') - # The above extensions don't support parallel compilation - echo 1 - ;; - *) - # All the other extensions support parallel compilation - getProcessorCount - ;; - esac -} - -# Get the full path of a PHP extension given its name. -# -# Arguments: -# $1: the name of the PHP extension -# -# Output: -# The absolute path of the PHP extension file (or nothing if the file can't be found) -getModuleFullPath() { - case "$1" in - apcu_bc) - getModuleFullPath_path="$PHP_EXTDIR/apc.so" - ;; - seasclick) - getModuleFullPath_path="$PHP_EXTDIR/SeasClick.so" - ;; - *) - getModuleFullPath_path="$PHP_EXTDIR/$1.so" - ;; - esac - if ! test -f "$getModuleFullPath_path"; then - printf 'Unable to find the file of the PHP extension "%s"\n' "$1" >&2 - exit 1 - fi - printf '%s' "$getModuleFullPath_path" -} - -# Post-process a PHP module just compiled and installed in the PHP extension directory -# -# Arguments: -# $1: the name of the PHP extension -# -# Return: -# 0 (true): if suceeded -# non-zero (false): in case of errors -postProcessModule() { - postProcessModule_file="$(getModuleFullPath "$1")" - if test $PHP_DEBUGBUILD -ne 1; then - printf 'Removing symbols from %s... ' "$postProcessModule_file" - postProcessModule_preSize="$(stat -c %s "$postProcessModule_file")" - strip --strip-all "$postProcessModule_file" - postProcessModule_postSize="$(stat -c %s "$postProcessModule_file")" - printf 'done (%s bytes saved).\n' "$((postProcessModule_preSize - postProcessModule_postSize))" - fi - return $? -} - -# Get the type of the php.ini entry to be used for a PHP extension -# -# Arguments: -# $1: the name of the PHP extension -# -# Output: -# zend_extension or extension -getModuleIniEntryType() { - case "$1" in - ioncube_loader | sourceguardian) - # On PHP 5.5, docker-php-ext-enable fails to detect that ionCube Loader and sourceguardian are Zend extensions - if test $PHP_MAJMIN_VERSION -le 505; then - printf 'zend_extension' - return 0 - fi - ;; - esac - getModuleIniEntryType_file="$(getModuleFullPath "$1")" - if readelf --wide --syms "$getModuleIniEntryType_file" | grep -Eq ' zend_extension_entry$'; then - printf 'zend_extension' - else - printf 'extension' - fi -} - -# Create the contents of a PHP ini file that enables an extension -# -# Arguments: -# $1: the name of the PHP extension -# $2: additional php.ini configuration (optional) -# -# Output: -# The contents of the ini file -buildPhpExtensionIniContent() { - buildPhpExtensionIniContent_type="$(getModuleIniEntryType "$1")" - buildPhpExtensionIniContent_soFile="$(getModuleFullPath "$1")" - buildPhpExtensionIniContent_result="$(printf '%s=%s' "$buildPhpExtensionIniContent_type" "${buildPhpExtensionIniContent_soFile##$PHP_EXTDIR/}")" - if test -n "${2:-}"; then - buildPhpExtensionIniContent_result="$(printf '%s\n%s' "$buildPhpExtensionIniContent_result" "$2")" - fi - printf '%s' "$buildPhpExtensionIniContent_result" -} - -# Check that a PHP module actually works (better to run this check before enabling the extension) -# -# Arguments: -# $1: the name of the PHP extension -# $2: base name (without path and extension) of additional php.ini configuration (optional) -# $3: additional php.ini configuration (optional) -# -# Return: -# 0 (true): if the string is in the list -# 1 (false): if the string is not in the list -checkModuleWorking() { - if test -n "${2:-}"; then - checkModuleWorking_iniFile="$PHP_INI_DIR/conf.d/$2--temp.ini" - else - checkModuleWorking_iniFile="$PHP_INI_DIR/conf.d/docker-php-ext-$1--temp.ini" - fi - checkModuleWorking_iniContent="$(buildPhpExtensionIniContent "$1" "${3:-}")" - printf 'Check if the %s module can be loaded... ' "$1" - checkModuleWorking_errBefore="$(php -r 'return;' 2>&1 || true)" - printf '%s' "$checkModuleWorking_iniContent" >"$checkModuleWorking_iniFile" - checkModuleWorking_errAfter="$(php -r 'return;' 2>&1 || true)" - rm "$checkModuleWorking_iniFile" - if test "$checkModuleWorking_errAfter" != "$checkModuleWorking_errBefore"; then - printf 'Error loading the "%s" extension:\n%s\n' "$1" "$checkModuleWorking_errAfter" >&2 - return 1 - fi - printf 'ok.\n' - return 0 -} - -# Enable a PHP extension -# -# Arguments: -# $1: the name of the PHP extension to be enabled -# $2: base name (without path and extension) of additional php.ini configuration (optional) -# $3: additional php.ini configuration (optional) -enablePhpExtension() { - if test -n "${2:-}"; then - enablePhpExtension_iniFile="$PHP_INI_DIR/conf.d/$2.ini" - else - enablePhpExtension_iniFile="$PHP_INI_DIR/conf.d/docker-php-ext-$1.ini" - fi - enablePhpExtension_iniContent="$(buildPhpExtensionIniContent "$1" "${3:-}")" - case "${IPE_DONT_ENABLE:-}" in - 1 | y* | Y*) - enablePhpExtension_enableCommand="/usr/local/bin/docker-php-ext-enable-$1" - printf '%s' "$enablePhpExtension_iniContent" >"$enablePhpExtension_iniFile-disabled" - printf '\n' >>"$enablePhpExtension_iniFile-disabled" - cat <"$enablePhpExtension_enableCommand" -#!/bin/sh - -if test -f '$enablePhpExtension_iniFile-disabled'; then - echo 'Enabling extension $1' - mv '$enablePhpExtension_iniFile-disabled' '$enablePhpExtension_iniFile' -else - echo 'The extension $1 has already been enabled' -fi -EOT - chmod +x "$enablePhpExtension_enableCommand" - printf '## Extension %s not enabled.\nYou can enable it by running the following command:\n%s\n\n' "$1" "$(basename "$enablePhpExtension_enableCommand")" - ;; - *) - printf '%s' "$enablePhpExtension_iniContent" >"$enablePhpExtension_iniFile" - printf '\n' >>"$enablePhpExtension_iniFile" - ;; - esac -} - -# Mark the pre-installed APT/APK packages as used -# that way they won't be uninstalled by accident -markPreinstalledPackagesAsUsed() { - printf '### MARKING PRE-INSTALLED PACKAGES AS IN-USE ###\n' - case "$DISTRO" in - alpine) - printf '# Packages: %s\n' "$PACKAGES_PERSISTENT_PRE" - apk add $PACKAGES_PERSISTENT_PRE - ;; - debian) - apt-mark manual $PACKAGES_PERSISTENT_PRE - ;; - esac -} - -# Install the required APT/APK packages -# -# Arguments: -# $@: the list of APT/APK packages to be installed -installRequiredPackages() { - printf '### INSTALLING REQUIRED PACKAGES ###\n' - printf '# Packages to be kept after installation: %s\n' "$PACKAGES_PERSISTENT_NEW" - printf '# Packages to be used only for installation: %s\n' "$PACKAGES_VOLATILE" - case "$DISTRO" in - alpine) - apk add $IPE_APK_FLAGS $PACKAGES_PERSISTENT_NEW $PACKAGES_VOLATILE - # https://gitlab.alpinelinux.org/alpine/aports/-/issues/12763#note_172090 - # https://github.com/mlocati/docker-php-extension-installer/issues/385 - # https://github.com/mlocati/docker-php-extension-installer/issues/537#issuecomment-1078748882 - for installRequiredPackages_item in wget; do - if test -n "$(expandInstalledSystemPackageName "$installRequiredPackages_item")"; then - apk add --upgrade "$installRequiredPackages_item" - fi - done - ;; - debian) - apt-get install -qqy --no-install-recommends $PACKAGES_PERSISTENT_NEW $PACKAGES_VOLATILE - ;; - esac -} - -# Get the version of an installed APT/APK package -# -# Arguments: -# $1: the name of the installed package -# -# Output: -# The numeric part of the package version, with from 1 to 3 numbers -# -# Example: -# 1 -# 1.2 -# 1.2.3 -getInstalledPackageVersion() { - case "$DISTRO" in - alpine) - apk info "$1" | head -n1 | cut -c $((${#1} + 2))- | grep -o -E '^[0-9]+(\.[0-9]+){0,2}' - ;; - debian) - dpkg-query --showformat='${Version}' --show "$1" 2>/dev/null | grep -o -E '^[0-9]+(\.[0-9]+){0,2}' - ;; - esac -} - -# Compare two versions -# -# Arguments: -# $1: the first version -# $2: the second version -# -# Output -# -1 if $1 is less than $2 -# 0 if $1 is the same as $2 -# 1 if $1 is greater than $2 -compareVersions() { - compareVersions_v1="$1.0.0" - compareVersions_v2="$2.0.0" - compareVersions_vMin="$(printf '%s\n%s' "$compareVersions_v1" "$compareVersions_v2" | sort -t '.' -n -k1,1 -k2,2 -k3,3 | head -n 1)" - if test "$compareVersions_vMin" != "$compareVersions_v1"; then - echo '1' - elif test "$compareVersions_vMin" = "$compareVersions_v2"; then - echo '0' - else - echo '-1' - fi -} - -# Install Oracle Instant Client & SDK -# -# Set: -# ORACLE_INSTANTCLIENT_LIBPATH -installOracleInstantClient() { - case "${IPE_INSTANTCLIENT_BASIC:-}" in - 1 | y* | Y*) - installOracleInstantClient_handle=basic - ;; - *) - installOracleInstantClient_handle=basiclite - ;; - esac - case $PHP_BITS in - 32) - installOracleInstantClient_client=client - installOracleInstantClient_version='19.9' - installOracleInstantClient_ic=https://download.oracle.com/otn_software/linux/instantclient/199000/instantclient-$installOracleInstantClient_handle-linux-$installOracleInstantClient_version.0.0.0dbru.zip - installOracleInstantClient_sdk=https://download.oracle.com/otn_software/linux/instantclient/199000/instantclient-sdk-linux-$installOracleInstantClient_version.0.0.0dbru.zip - ;; - *) - case $(uname -m) in - aarch64*) - installOracleInstantClient_client=client64 - installOracleInstantClient_version='19.10' - installOracleInstantClient_ic=https://download.oracle.com/otn_software/linux/instantclient/191000/instantclient-$installOracleInstantClient_handle-linux.arm64-$installOracleInstantClient_version.0.0.0dbru.zip - installOracleInstantClient_sdk=https://download.oracle.com/otn_software/linux/instantclient/191000/instantclient-sdk-linux.arm64-$installOracleInstantClient_version.0.0.0dbru.zip - ;; - *) - installOracleInstantClient_client=client64 - installOracleInstantClient_version='21.1' - installOracleInstantClient_ic=https://download.oracle.com/otn_software/linux/instantclient/211000/instantclient-$installOracleInstantClient_handle-linux.x64-$installOracleInstantClient_version.0.0.0.zip - installOracleInstantClient_sdk=https://download.oracle.com/otn_software/linux/instantclient/211000/instantclient-sdk-linux.x64-$installOracleInstantClient_version.0.0.0.zip - ;; - esac - ;; - esac - ORACLE_INSTANTCLIENT_LIBPATH=/usr/lib/oracle/$installOracleInstantClient_version/$installOracleInstantClient_client/lib - if ! test -e "$ORACLE_INSTANTCLIENT_LIBPATH"; then - printf 'Downloading Oracle Instant Client v%s (%s)... ' "$installOracleInstantClient_version" "$installOracleInstantClient_handle" - installOracleInstantClient_src="$(getPackageSource $installOracleInstantClient_ic)" - mkdir -p "/usr/lib/oracle/$installOracleInstantClient_version/$installOracleInstantClient_client" - mv "$installOracleInstantClient_src" "$ORACLE_INSTANTCLIENT_LIBPATH" - echo 'done.' - fi - if ! test -e "$ORACLE_INSTANTCLIENT_LIBPATH/sdk" && ! test -L "$ORACLE_INSTANTCLIENT_LIBPATH/sdk"; then - printf 'Downloading Oracle Instant SDK v%s... ' "$installOracleInstantClient_version" - installOracleInstantClient_src="$(getPackageSource $installOracleInstantClient_sdk)" - ln -sf "$installOracleInstantClient_src/sdk" "$ORACLE_INSTANTCLIENT_LIBPATH/sdk" - UNNEEDED_PACKAGE_LINKS="$UNNEEDED_PACKAGE_LINKS $ORACLE_INSTANTCLIENT_LIBPATH/sdk" - echo 'done.' - fi - case "$DISTRO" in - alpine) - if ! test -e /usr/lib/libresolv.so.2 && test -e /lib/libc.so.6; then - ln -s /lib/libc.so.6 /usr/lib/libresolv.so.2 - fi - installOracleInstantClient_ldconf=/etc/ld-musl-${TARGET_TRIPLET%-alpine-linux-musl}.path - if test -e "$installOracleInstantClient_ldconf"; then - if ! cat "$installOracleInstantClient_ldconf" | grep -q "$ORACLE_INSTANTCLIENT_LIBPATH"; then - cat "$ORACLE_INSTANTCLIENT_LIBPATH" | awk -v suffix=":$ORACLE_INSTANTCLIENT_LIBPATH" '{print NR==1 ? $0suffix : $0}' >"$ORACLE_INSTANTCLIENT_LIBPATH" - fi - else - case $PHP_BITS in - 32) - echo "/lib:/usr/local/lib:/usr/lib:$ORACLE_INSTANTCLIENT_LIBPATH" >"$installOracleInstantClient_ldconf" - ;; - *) - echo "/lib64:/lib:/usr/local/lib:/usr/lib:$ORACLE_INSTANTCLIENT_LIBPATH" >"$installOracleInstantClient_ldconf" - ;; - esac - fi - ;; - debian) - if ! test -e /etc/ld.so.conf.d/oracle-instantclient.conf; then - echo "$ORACLE_INSTANTCLIENT_LIBPATH" >/etc/ld.so.conf.d/oracle-instantclient.conf - ldconfig - fi - ;; - esac -} - -# Check if the Microsoft SQL Server ODBC Driver is installed -# -# Return: -# 0 (true): if the string is in the list -# 1 (false): if the string is not in the list -isMicrosoftSqlServerODBCInstalled() { - test -d /opt/microsoft/msodbcsql*/ -} - -# Install the Microsoft SQL Server ODBC Driver -# see https://learn.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server -installMicrosoftSqlServerODBC() { - printf 'Installing the Microsoft SQL Server ODBC Driver\n' - case "$DISTRO" in - alpine) - rm -rf /tmp/src/msodbcsql.apk - if test $PHP_MAJMIN_VERSION -le 703; then - curl -sSLf -o /tmp/src/msodbcsql.apk https://download.microsoft.com/download/e/4/e/e4e67866-dffd-428c-aac7-8d28ddafb39b/msodbcsql17_17.10.6.1-1_amd64.apk - else - case $(uname -m) in - aarch64 | arm64 | armv8) - installMicrosoftSqlServerODBC_arch=arm64 - ;; - *) - installMicrosoftSqlServerODBC_arch=amd64 - ;; - esac - curl -sSLf -o /tmp/src/msodbcsql.apk https://download.microsoft.com/download/3/5/5/355d7943-a338-41a7-858d-53b259ea33f5/msodbcsql18_18.3.3.1-1_$installMicrosoftSqlServerODBC_arch.apk - fi - printf '\n' | apk add --allow-untrusted /tmp/src/msodbcsql.apk - rm -rf /tmp/src/msodbcsql.apk - ;; - debian) - printf -- '- installing the Microsoft APT key\n' - if test $DISTRO_VERSION_NUMBER -eq 11; then - curl -sSLf -o /etc/apt/trusted.gpg.d/microsoft.asc https://packages.microsoft.com/keys/microsoft.asc - elif test $DISTRO_VERSION_NUMBER -ge 12; then - curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor --yes --output /usr/share/keyrings/microsoft-prod.gpg - else - # apt-key is deprecated - curl -sSLf https://packages.microsoft.com/keys/microsoft.asc | apt-key add - - fi - if ! test -f /etc/apt/sources.list.d/mssql-release.list; then - printf -- '- adding the Microsoft APT source list\n' - curl -sSLf https://packages.microsoft.com/config/debian/$DISTRO_VERSION_NUMBER/prod.list >/etc/apt/sources.list.d/mssql-release.list - invokeAptGetUpdate - fi - printf -- '- installing the APT package\n' - if test $PHP_MAJMIN_VERSION -le 703; then - ACCEPT_EULA=Y apt-get install -qqy --no-install-recommends msodbcsql17 - elif test $DISTRO_VERSION_NUMBER -ge 9 && test $DISTRO_VERSION_NUMBER -le 12; then - # On Debian 9 to 12 we have both msodbcsql17 and msodbcsql18: let's install just one - ACCEPT_EULA=Y apt-get install -qqy --no-install-recommends msodbcsql18 - else - ACCEPT_EULA=Y apt-get install -qqy --no-install-recommends '^msodbcsql[0-9]+$' - fi - ;; - esac -} - -# Check if libaom is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibaomInstalled() { - if ! test -f /usr/local/lib/libaom.so && ! test -f /usr/lib/libaom.so && ! test -f /usr/lib/x86_64*/libaom.so; then - return 1 - fi - if ! test -f /usr/local/include/aom/aom_codec.h && ! test -f /usr/include/aom/aom_codec.h; then - return 1 - fi - return 0 -} - -# Install libaom -installLibaom() { - printf 'Installing libaom\n' - installLibaom_version=3.10.0 - installLibaom_dir="$(getPackageSource https://aomedia.googlesource.com/aom/+archive/v$installLibaom_version.tar.gz)" - mkdir -- "$installLibaom_dir/my.build" - cd -- "$installLibaom_dir/my.build" - cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=1 -DENABLE_DOCS=0 -DENABLE_EXAMPLES=0 -DENABLE_TESTDATA=0 -DENABLE_TESTS=0 -DENABLE_TOOLS=0 -DCMAKE_INSTALL_LIBDIR:PATH=lib .. - ninja -j $(getProcessorCount) install - cd - >/dev/null - ldconfig || true -} - -# Check if libdav1d is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibdav1dInstalled() { - if ! test -f /usr/local/lib/libdav1d.so && ! test -f /usr/lib/libdav1d.so && ! test -f /usr/lib/x86_64*/libdav1d.so; then - return 1 - fi - if ! test -f /usr/local/include/dav1d/dav1d.h && ! test -f /usr/include/dav1d/dav1d.h; then - return 1 - fi - return 0 -} - -# Install libdav1d -installLibdav1d() { - printf 'Installing libdav1d\n' - installLibdav1d_dir="$(getPackageSource https://github.com/videolan/dav1d/archive/refs/tags/1.3.0.tar.gz)" - mkdir -- "$installLibdav1d_dir/build" - cd -- "$installLibdav1d_dir/build" - meson --buildtype release -Dprefix=/usr .. - ninja -j $(getProcessorCount) install - cd - >/dev/null - if test -f /usr/lib/$TARGET_TRIPLET/libdav1d.so && ! test -f /usr/lib/libdav1d.so; then - ln -s /usr/lib/$TARGET_TRIPLET/libdav1d.so /usr/lib/ - fi - ldconfig || true -} - -# Check if libyuv is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibyuvInstalled() { - if ! test -f /usr/local/lib/libyuv.so && ! test -f /usr/lib/libyuv.so && ! test -f /usr/lib/x86_64*/libyuv.so && ! test -f /usr/lib/x86_64*/libyuv.so.*; then - return 1 - fi - if ! test -f /usr/local/include/libyuv.h && ! test -f /usr/include/libyuv.h; then - return 1 - fi - return 0 -} - -# Install libyuv -installLibyuv() { - printf 'Installing libyuv\n' - installLibyuv_dir="$(getPackageSource https://chromium.googlesource.com/libyuv/libyuv/+archive/d359a9f922af840b043535d43cf9d38b220d102e.tar.gz)" - mkdir -- "$installLibyuv_dir/build" - cd -- "$installLibyuv_dir/build" - cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr -B. .. - make -j$(getProcessorCount) install - cd - >/dev/null -} - -# Check if libavif is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibavifInstalled() { - if ! test -f /usr/local/lib/libavif.so && ! test -f /usr/lib/libavif.so && ! test -f /usr/lib/x86_64*/libavif.so; then - return 1 - fi - if ! test -f /usr/local/include/avif/avif.h && ! test -f /usr/include/avif/avif.h; then - return 1 - fi - return 0 -} - -# Install libavif -installLibavif() { - printf 'Installing libavif\n' - installLibavif_dir="$(getPackageSource https://codeload.github.com/AOMediaCodec/libavif/tar.gz/refs/tags/v1.0.3)" - mkdir -- "$installLibavif_dir/build" - cd -- "$installLibavif_dir/build" - cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON -DAVIF_CODEC_AOM=ON -DCMAKE_INSTALL_LIBDIR:PATH=lib - make -j$(getProcessorCount) install - cd - >/dev/null -} - -# Install libmpdec -installLibMPDec() { - installLibMPDec_src="$(getPackageSource https://www.bytereef.org/software/mpdecimal/releases/mpdecimal-2.5.1.tar.gz)" - cd -- "$installLibMPDec_src" - ./configure --disable-cxx - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -# Check if libdatrie is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibDatrieInstalled() { - if ! test -f /usr/local/lib/libdatrie.so && ! test -f /usr/lib/libdatrie.so && ! test -f /usr/lib/x86_64*/libdatrie.so; then - return 1 - fi - if ! test -f /usr/local/include/datrie/trie.h && ! test -f /usr/include/datrie/trie.h; then - return 1 - fi - return 0 -} - -# Install libdatrie -installLibDatrie() { - printf 'Installing libdatrie\n' - installLibDatrie_src="$(getPackageSource https://github.com/tlwg/libdatrie/releases/download/v0.2.13/libdatrie-0.2.13.tar.xz)" - cd -- "$installLibDatrie_src" - ./configure - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -# Check if libdatrie is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibThaiInstalled() { - return 1 - if ! test -f /usr/local/lib/libthai.so && ! test -f /usr/lib/libthai.so && ! test -f /usr/lib/x86_64*/libthai.so; then - return 1 - fi - if ! test -f /usr/local/include/thai/thailib.h && ! test -f /usr/include/thai/thailib.h; then - return 1 - fi - return 0 -} - -# Install libdatrie -installLibThai() { - printf 'Installing libthai\n' - installLibThai_src="$(getPackageSource https://github.com/tlwg/libthai/releases/download/v0.1.29/libthai-0.1.29.tar.xz)" - cd -- "$installLibThai_src" - ./configure - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -isLibTommathInstalled() { - if test -f /usr/local/lib/libtommath.a && test -f /usr/local/include/tommath.h; then - return 0 - fi - return 1 -} - -installLibTommath() { - printf 'Installing libtommath\n' - installLibTommath_src="$(getPackageSource https://github.com/libtom/libtommath/releases/download/v1.3.0/ltm-1.3.0.tar.xz)" - mkdir -p "$installLibTommath_src/build" - cd -- "$installLibTommath_src/build" - CFLAGS='-fPIC' cmake -DCMAKE_BUILD_TYPE=Release .. - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -isLibTomcryptInstalled() { - if test -f /usr/local/lib/libtomcrypt.a && test -f /usr/local/include/tomcrypt.h; then - return 0 - fi - return 1 -} - -installLibTomcrypt() { - printf 'Installing libtomcrypt\n' - installLibTomcrypt_src="$(getPackageSource https://github.com/libtom/libtomcrypt/releases/download/v1.18.2/crypt-1.18.2.tar.xz)" - cd -- "$installLibTomcrypt_src" - CFLAGS='-fPIC' make -j$(getProcessorCount) - make install -} - -isFirebirdInstalled() { - if test -f /usr/lib/libfbclient.so && test -f /usr/include/ibase.h; then - return 0 - fi - if test -d /tmp/src/firebird; then - return 0 - fi - return 1 -} - -installFirebird() { - printf 'Installing firebird\n' - if test $PHP_MAJMIN_VERSION -ge 804; then - installFirebird_src="$(getPackageSource https://github.com/FirebirdSQL/firebird/releases/download/v5.0.2/Firebird-5.0.2.1613-0-source.tar.xz)" - cd -- "$installFirebird_src" - ./configure --enable-client-only - make -j$(getProcessorCount) - cp -Rd gen/Release/firebird/include/* /usr/include - cp -Rd gen/Release/firebird/lib/* /usr/lib - cd - >/dev/null - else - mv "$(getPackageSource https://github.com/FirebirdSQL/firebird/releases/download/R2_5_9/Firebird-2.5.9.27139-0.tar.bz2)" /tmp/src/firebird - cd /tmp/src/firebird - # Patch rwlock.h (this has been fixed in later release of firebird 3.x) - sed -i '194s/.*/#if 0/' src/common/classes/rwlock.h - ./configure --with-system-icu - # -j option can't be used: make targets must be compiled sequentially - make -s btyacc_binary gpre_boot libfbstatic libfbclient - cp gen/firebird/lib/libfbclient.so /usr/lib/ - ln -s /usr/lib/libfbclient.so /usr/lib/libfbclient.so.2 - cd - >/dev/null - fi -} - -isLibXCryptInstalled() { - if ! test -f /usr/local/lib/libcrypt.so && ! test -f /usr/lib/libcrypt.so && ! test -f /usr/lib/x86_64*/libcrypt.so; then - return 1 - fi - return 0 -} - -installLibXCrypt() { - printf 'Installing libxcrypt\n' - installLibXCrypt_version=4.4.36 - installLibXCrypt_src="$(getPackageSource "https://github.com/besser82/libxcrypt/releases/download/v$installLibXCrypt_version/libxcrypt-$installLibXCrypt_version.tar.xz")" - cd -- "$installLibXCrypt_src" - ./configure --prefix /usr - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -isLibenchant1Installed() { - if test -f /usr/lib/libenchant.so || test -f /usr/local/lib/libenchant.so; then - return 0 - fi - return 1 -} - -installLibenchant1() { - printf 'Installing libenchant1\n' - installLibenchant1_src="$(getPackageSource https://github.com/rrthomas/enchant/releases/download/enchant-1-6-1/enchant-1.6.1.tar.gz)" - cd -- "$installLibenchant1_src" - ./configure - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -# Install Composer -installComposer() { - installComposer_version="$(getWantedPHPModuleVersion @composer)" - installComposer_version="${installComposer_version#^}" - if test -z "$installComposer_version"; then - installComposer_fullname=composer - installComposer_flags='' - else - installComposer_fullname="$(printf 'composer v%s' "$installComposer_version")" - if printf '%s' "$installComposer_version" | grep -Eq '^[0-9]+$'; then - installComposer_flags="--$installComposer_version" - else - installComposer_flags="--version=$installComposer_version" - fi - fi - printf '### INSTALLING %s ###\n' "$installComposer_fullname" - actuallyInstallComposer /usr/local/bin composer "$installComposer_flags" -} - -# Actually install composer -# -# Arguments: -# $1: the directory where composer should be installed (required) -# $2: the composer filename (optional, default: composer) -# $3. additional flags for the composer installed (optional) -actuallyInstallComposer() { - actuallyInstallComposer_installer="$(mktemp -p /tmp/src)" - curl -sSLf -o "$actuallyInstallComposer_installer" https://getcomposer.org/installer - actuallyInstallComposer_expectedSignature="$(curl -sSLf https://composer.github.io/installer.sig)" - actuallyInstallComposer_actualSignature="$(php -n -r "echo hash_file('sha384', '$actuallyInstallComposer_installer');")" - if test "$actuallyInstallComposer_expectedSignature" != "$actuallyInstallComposer_actualSignature"; then - printf 'Verification of composer installer failed!\nExpected signature: %s\nActual signature: %s\n' "$actuallyInstallComposer_expectedSignature" "$actuallyInstallComposer_actualSignature" >&2 - exit 1 - fi - actuallyInstallComposer_flags="--install-dir=$1" - if test -n "${2:-}"; then - actuallyInstallComposer_flags="$actuallyInstallComposer_flags --filename=$2" - else - actuallyInstallComposer_flags="$actuallyInstallComposer_flags --filename=composer" - fi - if test -n "${3:-}"; then - actuallyInstallComposer_flags="$actuallyInstallComposer_flags $3" - fi - php "$actuallyInstallComposer_installer" $actuallyInstallComposer_flags - rm -- "$actuallyInstallComposer_installer" -} - -# Install ionCube Loader -installIonCubeLoader() { - installIonCubeLoader_version='' - if test $PHP_MAJMIN_VERSION -lt 804; then - # For 14.4.0 we have a Segmentation Fault - installIonCubeLoader_version=14.0.0 - fi - installIonCubeLoader_versionForUrl='' - installIonCubeLoader_versionForMessage=latest - if test -n "$installIonCubeLoader_version"; then - installIonCubeLoader_versionForUrl="_$installIonCubeLoader_version" - installIonCubeLoader_versionForMessage="v$installIonCubeLoader_version" - fi - # See https://www.ioncube.com/loaders.php - case $PHP_BITS in - 32) - case $(uname -m) in - aarch* | arm*) - installIonCubeLoader_url="https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_armv7l$installIonCubeLoader_versionForUrl.tar.gz" - ;; - *) - installIonCubeLoader_url="https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86$installIonCubeLoader_versionForUrl.tar.gz" - ;; - esac - ;; - *) - case $(uname -m) in - aarch64 | arm64 | armv8) - installIonCubeLoader_url="https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_aarch64$installIonCubeLoader_versionForUrl.tar.gz" - ;; - *) - installIonCubeLoader_url="https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64$installIonCubeLoader_versionForUrl.tar.gz" - ;; - esac - ;; - esac - printf 'Downloading ionCube Loader (%s)... ' "$installIonCubeLoader_versionForMessage" - installIonCubeLoader_dir="$(getPackageSource $installIonCubeLoader_url)" - echo 'done.' - installIonCubeLoader_so=$(php -r "printf('ioncube_loader_lin_%s.%s%s.so', PHP_MAJOR_VERSION, PHP_MINOR_VERSION, ZEND_THREAD_SAFE ? '_ts' : '');") - cp "$installIonCubeLoader_dir/$installIonCubeLoader_so" "$(getPHPExtensionsDir)/ioncube_loader.so" -} - -# Install SourceGuardian Loader -installSourceGuardian() { - # See https://www.sourceguardian.com/loaders.html - case $PHP_BITS in - 32) - installSourceGuardian_url=https://www.sourceguardian.com/loaders/download/loaders.linux-i386.tar.gz - ;; - *) - case $(uname -m) in - aarch64 | arm64 | armv8) - installSourceGuardian_url=https://www.sourceguardian.com/loaders/download/loaders.linux-aarch64.tar.gz - ;; - *) - installSourceGuardian_url=https://www.sourceguardian.com/loaders/download/loaders.linux-x86_64.tar.gz - ;; - esac - ;; - esac - printf 'Downloading SourceGuardian... ' - installSourceGuardian_dir="$(getPackageSource $installSourceGuardian_url)" - printf 'done (version: %s)\n' "$(cat "$installSourceGuardian_dir/version")" - for installSourceGuardian_phpv in $PHP_MAJDOTMINDOTPAT_VERSION $PHP_MAJDOTMIN_VERSION; do - installSourceGuardian_file="$installSourceGuardian_dir/ixed.$PHP_MAJDOTMIN_VERSION" - if test $PHP_THREADSAFE -eq 1; then - installSourceGuardian_file="${installSourceGuardian_file}ts" - fi - installSourceGuardian_file="${installSourceGuardian_file}.lin" - if test -f "$installSourceGuardian_file"; then - mv "$installSourceGuardian_file" "$(getPHPExtensionsDir)/sourceguardian.so" - return - fi - done - printf 'Unable to find a SourceGuardian compatible with PHP %s or PHP %s.\nAvailable SourceGuardian versions:\n' "$PHP_MAJDOTMINDOTPAT_VERSION" "$PHP_MAJDOTMIN_VERSION" >&2 - ls -1 "$installSourceGuardian_dir" | grep -E '^ixed\..*\.lin$' | sed -E 's/^[^0-9]+([0-9]+(\.[0-9]+)*).*$/\1/' | sort | uniq >&2 - exit 1 -} - -# Install Cargo (if not yet installed) -installCargo() { - if command -v cargo >/dev/null; then - return - fi - installCargo_cargoversion= - if ! test -f "$HOME/.cargo/env"; then - printf '# Installing cargo\n' - case "$DISTRO" in - alpine) - # see https://github.com/hyperledger/indy-vdr/issues/69#issuecomment-998104850 - export RUSTFLAGS='-C target-feature=-crt-static' - ;; - esac - curl https://sh.rustup.rs -sSf | sh -s -- -y -q - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -le 310; then - # With version 1.84.0 we have this error: - # Error relocating /root/.rustup/toolchains/stable-x86_64-unknown-linux-musl/bin/cargo: posix_spawn_file_actions_addchdir_np: symbol not found - # See https://github.com/rust-lang/rust/pull/131851#issue-2595663507 - installCargo_cargoversion=1.83.0 - fi - ;; - esac - fi - . "$HOME/.cargo/env" - if test -n "$installCargo_cargoversion"; then - rustup default -- "$installCargo_cargoversion" - fi - if test -z "${IPE_UNINSTALL_CARGO:-}"; then - IPE_UNINSTALL_CARGO=y - fi -} - -installNewRelic() { - printf '# Installing newrelic\n' - # see https://docs.newrelic.com/docs/apm/agents/php-agent/getting-started/php-agent-compatibility-requirements/ - if test $PHP_MAJMIN_VERSION -le 701; then - installNewRelic_baseUrl=https://download.newrelic.com/php_agent/archive/10.21.0.11/ - else - installNewRelic_baseUrl=https://download.newrelic.com/php_agent/release/ - fi - installNewRelic_search='\bnewrelic-php[0-9.]*-[0-9]+(\.[0-9]+)*-linux' - case "$DISTRO" in - alpine) - installNewRelic_search="$installNewRelic_search-musl" - ;; - esac - installNewRelic_file="$(curl -sSLf -o- "$installNewRelic_baseUrl" | sed -E 's/<[^>]*>//g' | grep -Eo "$installNewRelic_search.tar.gz" | sort | head -1)" - installNewRelic_url="$installNewRelic_baseUrl$installNewRelic_file" - installNewRelic_src="$(getPackageSource "$installNewRelic_url")" - cd -- "$installNewRelic_src" - NR_INSTALL_USE_CP_NOT_LN=1 NR_INSTALL_SILENT=1 ./newrelic-install install - case "${IPE_NEWRELIC_DAEMON:-}" in - 1 | y* | Y*) - NR_INSTALL_USE_CP_NOT_LN=1 NR_INSTALL_SILENT=1 ./newrelic-install install_daemon - ;; - esac - case "${IPE_NEWRELIC_KEEPLOG:-}" in - 1 | y* | Y*) ;; - *) - rm -f /tmp/nrinstall-*.tar - ;; - esac - cd - >/dev/null - cat <&2 - fi - if test -n "$(getModuleSourceCodePath "$1")"; then - printf '### WARNING the module "%s" is bundled with PHP, you can NOT specify a source code path for it\n' "$1" >&2 - fi - case "$1" in - dba) - if test -e /usr/lib/$TARGET_TRIPLET/libdb-5.3.so && ! test -e /usr/lib/libdb-5.3.so; then - ln -s /usr/lib/$TARGET_TRIPLET/libdb-5.3.so /usr/lib/ - fi - if test $PHP_MAJMIN_VERSION -le 505; then - docker-php-source extract - patch /usr/src/php/ext/dba/config.m4 </dev/null - ;; - oci8 | pdo_oci) - installOracleInstantClient - if test "$1" = oci8; then - docker-php-ext-configure "$1" "--with-oci8=instantclient,$ORACLE_INSTANTCLIENT_LIBPATH" - elif test "$1" = pdo_oci; then - docker-php-ext-configure "$1" "--with-pdo-oci=instantclient,$ORACLE_INSTANTCLIENT_LIBPATH" - fi - ;; - pdo_odbc) - docker-php-ext-configure pdo_odbc --with-pdo-odbc=unixODBC,/usr - ;; - snmp) - case "$DISTRO" in - alpine) - mkdir -p -m 0755 /var/lib/net-snmp/mib_indexes - ;; - esac - ;; - sockets) - case "$PHP_MAJDOTMINDOTPAT_VERSION" in - 8.0.15 | 8.1.2) - sed -i '70 i #ifndef _GNU_SOURCE' /usr/src/php/ext/sockets/config.m4 - sed -i '71 i #define _GNU_SOURCE' /usr/src/php/ext/sockets/config.m4 - sed -i '72 i #endif' /usr/src/php/ext/sockets/config.m4 - ;; - esac - ;; - sybase_ct) - docker-php-ext-configure sybase_ct --with-sybase-ct=/usr - ;; - tidy) - case "$DISTRO" in - alpine) - if ! test -f /usr/include/buffio.h; then - ln -s /usr/include/tidybuffio.h /usr/include/buffio.h - UNNEEDED_PACKAGE_LINKS="$UNNEEDED_PACKAGE_LINKS /usr/include/buffio.h" - fi - ;; - esac - ;; - zip) - if test $PHP_MAJMIN_VERSION -le 505; then - docker-php-ext-configure zip - elif test $PHP_MAJMIN_VERSION -le 703; then - docker-php-ext-configure zip --with-libzip - else - docker-php-ext-configure zip --with-zip - fi - ;; - esac - installBundledModule_errBefore="$(php -r 'return;' 2>&1 || true)" - docker-php-ext-install -j$(getProcessorCount) "$1" - case "$1" in - imap) - case "$DISTRO_VERSION" in - debian@9) - dpkg -r libc-client2007e-dev - ;; - esac - ;; - esac - case "${IPE_SKIP_CHECK:-}" in - 1 | y* | Y*) ;; - *) - php -r 'return;' >/dev/null 2>/dev/null || true - installBundledModule_errAfter="$(php -r 'return;' 2>&1 || true)" - if test "$installBundledModule_errAfter" != "$installBundledModule_errBefore"; then - printf 'PHP has problems after installing the "%s" extension:\n%s\n' "$1" "$installBundledModule_errAfter" >&2 - rm "$PHP_INI_DIR/conf.d/docker-php-ext-$1.ini" || true - return 1 - fi - ;; - esac -} - -# Fetch a tar.gz file, extract it and returns the path of the extracted folder. -# -# Arguments: -# $1: the URL of the file to be downloaded -# -# Output: -# The path of the extracted directory -getPackageSource() { - mkdir -p /tmp/src - getPackageSource_tempFile=$(mktemp -p /tmp/src) - curl -sSLf -o "$getPackageSource_tempFile" "$1" - getPackageSource_tempDir=$(mktemp -p /tmp/src -d) - cd "$getPackageSource_tempDir" - tar -xzf "$getPackageSource_tempFile" 2>/dev/null || tar -xf "$getPackageSource_tempFile" 2>/dev/null || ( - if command -v bsdtar >/dev/null; then - bsdtar -xf "$getPackageSource_tempFile" - else - unzip -q "$getPackageSource_tempFile" - fi - ) - cd - >/dev/null - unlink "$getPackageSource_tempFile" - getPackageSource_outDir='' - for getPackageSource_i in $(ls "$getPackageSource_tempDir"); do - if test -n "$getPackageSource_outDir" || test -f "$getPackageSource_tempDir/$getPackageSource_i"; then - getPackageSource_outDir='' - break - fi - getPackageSource_outDir="$getPackageSource_tempDir/$getPackageSource_i" - done - if test -n "$getPackageSource_outDir"; then - printf '%s' "$getPackageSource_outDir" - else - printf '%s' "$getPackageSource_tempDir" - fi -} - -# Install a PECL/remote PHP module given its handle -# -# Arguments: -# $1: the handle of the PHP module -installRemoteModule() { - installRemoteModule_module="$1" - printf '### INSTALLING REMOTE MODULE %s ###\n' "$installRemoteModule_module" - installRemoteModule_version="$(resolvePHPModuleVersion "$installRemoteModule_module")" - installRemoteModule_path="$(getModuleSourceCodePath "$installRemoteModule_module")" - rm -rf "$CONFIGURE_FILE" - installRemoteModule_manuallyInstalled=0 - installRemoteModule_cppflags='' - installRemoteModule_ini_basename='' - installRemoteModule_ini_extra='' - case "$installRemoteModule_module" in - amqp) - if test -z "$installRemoteModule_version"; then - if test "$DISTRO_VERSION" = debian@8; then - # in Debian Jessie we have librabbitmq version 0.5.2 - installRemoteModule_version=1.9.3 - elif test $PHP_MAJMIN_VERSION -le 505; then - installRemoteModule_version=1.9.4 - elif test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=1.11.0 - fi - fi - ;; - apcu) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=4.0.11 - fi - fi - ;; - apcu_bc) - # apcu_bc must be loaded after apcu - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - ;; - ast) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=1.0.16 - fi - fi - ;; - bitset) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.0.4 - fi - fi - ;; - blackfire) - case $(uname -m) in - i386 | i686 | x86) - installRemoteModule_tmp1=i386 - ;; - aarch64 | arm64 | armv8) - installRemoteModule_tmp1=arm64 - ;; - *) - installRemoteModule_tmp1=amd64 - ;; - esac - case $DISTRO in - alpine) - installRemoteModule_distro=alpine - ;; - *) - installRemoteModule_distro=linux - ;; - esac - installRemoteModule_tmp2=$(php -r 'echo PHP_MAJOR_VERSION . PHP_MINOR_VERSION . (ZEND_THREAD_SAFE ? "-zts" : "");') - installRemoteModule_tmp="$(mktemp -p /tmp/src -d)" - cd "$installRemoteModule_tmp" - curl -sSLf --user-agent Docker https://blackfire.io/api/v1/releases/probe/php/$installRemoteModule_distro/$installRemoteModule_tmp1/$installRemoteModule_tmp2 | tar xz - mv blackfire-*.so $(getPHPExtensionsDir)/blackfire.so - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - installRemoteModule_ini_extra="$(printf '%sblackfire.agent_socket=tcp://blackfire:8307\n' "$installRemoteModule_ini_extra")" - ;; - cassandra) - installRemoteModule_src="$(getPackageSource https://github.com/nano-interactive/ext-cassandra/tarball/1cf12c5ce49ed43a2c449bee4b7b23ce02a37bf0)" - cd "$installRemoteModule_src/ext" - phpize - ./configure - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - ;; - cmark) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=1.1.0 - fi - fi - if ! test -e /usr/local/lib/libcmark.so && ! test -e /usr/local/lib64/libcmark.so && ! test -e /usr/lib/libcmark.so && ! test -e /usr/lib64/libcmark.so && ! test -e /lib/libcmark.so; then - if test $(compareVersions "$(cmake --version | head -n1 | sed -E 's/^.* //')" '3.7') -lt 0; then - installRemoteModule_tmp=0.29.0 - else - installRemoteModule_tmp=0.31.1 - fi - cd "$(getPackageSource https://github.com/commonmark/cmark/archive/$installRemoteModule_tmp.tar.gz)" - make -s -j$(getProcessorCount) cmake_build - make -s -j$(getProcessorCount) install - cd - >/dev/null - case "$DISTRO" in - alpine) - if test -e /usr/local/lib64/libcmark.so.$installRemoteModule_tmp && ! test -e /usr/local/lib/libcmark.so.$installRemoteModule_tmp; then - ln -s /usr/local/lib64/libcmark.so.$installRemoteModule_tmp /usr/local/lib/ - fi - ;; - *) - ldconfig || true - ;; - esac - fi - ;; - csv) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=0.3.1 - fi - fi - ;; - ddtrace) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=0.75.0 - fi - if test -z "$installRemoteModule_version"; then - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -le 312; then - # cc is not supported due to a memcmp related bug - installRemoteModule_version=1.1.0 - fi - ;; - esac - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 0.75.0) -ge 0; then - installCargo - fi - ;; - decimal) - case "$DISTRO" in - alpine) - if ! test -f /usr/local/lib/libmpdec.so; then - installLibMPDec - fi - ;; - debian) - if test $DISTRO_MAJMIN_VERSION -ge 1200; then - if test -z "$(ldconfig -p | grep -E '\slibmpdec.so\s')"; then - installLibMPDec - fi - fi - ;; - esac - ;; - ds) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 703; then - installRemoteModule_version=1.3.0 - elif test $PHP_MAJMIN_VERSION -lt 704; then - installRemoteModule_version=1.4.0 - fi - fi - ;; - ecma_intl) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=alpha - fi - ;; - ev) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 800; then - installRemoteModule_version=1.1.5 - fi - fi - ;; - event) - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 2.4.0) -ge 0; then - # Enable internal debugging in Event - addConfigureOption enable-event-debug no - # Enable sockets support in Event - if php --ri sockets >/dev/null 2>/dev/null; then - addConfigureOption enable-event-sockets yes - else - addConfigureOption enable-event-sockets no - fi - # libevent installation prefix - addConfigureOption with-event-libevent-dir /usr - # Include libevent's pthreads library and enable thread safety support in Event - addConfigureOption with-event-pthreads yes - # Include libevent protocol-specific functionality support including HTTP, DNS, and RPC - addConfigureOption with-event-extra yes - # Include libevent OpenSSL support - addConfigureOption with-event-openssl yes - # PHP Namespace for all Event classes - if test -n "${IPE_EVENT_NAMESPACE:-}"; then - addConfigureOption with-event-ns "$IPE_EVENT_NAMESPACE" - else - addConfigureOption with-event-ns no - fi - # openssl installation prefix - addConfigureOption with-openssl-dir yes - elif test $(compareVersions "$installRemoteModule_version" 1.7.6) -ge 0; then - # Enable internal debugging in Event - addConfigureOption enable-event-debug no - # Enable sockets support in Event - if php --ri sockets >/dev/null 2>/dev/null; then - addConfigureOption enable-event-sockets yes - else - addConfigureOption enable-event-sockets no - fi - # libevent installation prefix - addConfigureOption with-event-libevent-dir /usr - # Include libevent's pthreads library and enable thread safety support in Event - addConfigureOption with-event-pthreads yes - # Include libevent protocol-specific functionality support including HTTP, DNS, and RPC - addConfigureOption with-event-extra yes - # Include libevent OpenSSL support - addConfigureOption with-event-openssl yes - # openssl installation prefix - addConfigureOption with-openssl-dir no - elif test $(compareVersions "$installRemoteModule_version" 1.3.0) -ge 0; then - # Enable internal debugging in event - addConfigureOption enable-event-debug no - # libevent installation prefix - addConfigureOption with-event-libevent-dir /usr - # Include libevent's pthreads library and enable thread safety support in event - addConfigureOption with-event-pthreads yes - # Include libevent protocol-specific functionality support including HTTP, DNS, and RPC - addConfigureOption with-event-extra yes - # Include libevent OpenSSL support - addConfigureOption with-event-openssl yes - # openssl installation prefix - addConfigureOption with-openssl-dir no - fi - # event must be loaded after sockets - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - ;; - gearman) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.1.2 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=2.1.3 - fi - fi - case "$DISTRO" in - alpine) - if ! test -e /usr/local/include/libgearman/gearman.h || ! test -e /usr/local/lib/libgearman.so; then - installRemoteModule_src="$(getPackageSource https://github.com/gearman/gearmand/releases/download/1.1.21/gearmand-1.1.21.tar.gz)" - cd -- "$installRemoteModule_src" - ./configure - make -j$(getProcessorCount) install-binPROGRAMS - make -j$(getProcessorCount) install-nobase_includeHEADERS - cd - >/dev/null - fi - ;; - esac - ;; - geoip) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=beta - fi - ;; - geos) - if test -z "$installRemoteModule_path"; then - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=0def35611f773c951432f1f06a155471a5cb7611 - fi - installRemoteModule_src="$(getPackageSource https://git.osgeo.org/gitea/geos/php-geos/archive/$installRemoteModule_version.tar.gz)" - cd "$installRemoteModule_src" - ./autogen.sh - ./configure - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - fi - ;; - geospatial) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.2.1 - else - installRemoteModule_version=beta - fi - fi - ;; - gmagick) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.1.7RC3 - else - installRemoteModule_version=beta - fi - fi - ;; - grpc) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.33.1 - else - case "$DISTRO_VERSION" in - debian@8) - installRemoteModule_version=1.46.3 - ;; - alpine@3.7 | alpine@3.8 | debian@9) # With newer version: "This package requires GCC 7 or higher" - installRemoteModule_version=1.52.1 - ;; - esac - fi - fi - if test -z "$installRemoteModule_version" || test "$installRemoteModule_version" = 1.35.0; then - case "$DISTRO_VERSION" in - alpine@3.13) - installRemoteModule_cppflags='-Wno-maybe-uninitialized' - ;; - esac - fi - ;; - http) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.6.0 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=3.2.4 - fi - fi - if test $PHP_MAJMIN_VERSION -ge 700; then - if ! test -e /usr/local/lib/libidnkit.so; then - installRemoteModule_src="$(getPackageSource https://jprs.co.jp/idn/idnkit-2.3.tar.bz2)" - cd -- "$installRemoteModule_src" - CFLAGS=-Wno-incompatible-pointer-types ./configure - make -j$(getProcessorCount) install - cd - >/dev/null - fi - fi - # http must be loaded after raphf and propro - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - ;; - igbinary) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.0.8 - fi - fi - ;; - imap) - # Include Kerberos Support - addConfigureOption with-kerberos yes - # Include SSL Support - addConfigureOption with-imap-ssl yes - ;; - inotify) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.1.6 - fi - fi - ;; - ion) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=alpha - fi - if ! test -f /usr/local/lib/libionc.so || ! test -f /usr/local/include/ionc/ion.h; then - echo 'Installing ion-c... ' - installRemoteModule_src="$(mktemp -p /tmp/src -d)" - git clone -q -c advice.detachedHead=false --depth 1 --branch v1.1.3 https://github.com/amzn/ion-c.git "$installRemoteModule_src/ion" - ( - cd "$installRemoteModule_src/ion" - git submodule init -q - git submodule update -q - mkdir -p build - cd build - CFLAGS='-Wno-incompatible-pointer-types -Wno-stringop-overflow -Wno-discarded-qualifiers' cmake -DCMAKE_BUILD_TYPE=Release .. -Wno-dev - make clean - make -j$(getProcessorCount) install - ) - rm -rf "$installRemoteModule_src" - fi - addConfigureOption with-ion "shared,/usr/local" - ;; - ioncube_loader) - installIonCubeLoader - installRemoteModule_manuallyInstalled=1 - ;; - jsmin) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=2.0.1 - fi - fi - ;; - jsonpath) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 800; then - installRemoteModule_version=1.0.1 - fi - fi - ;; - luasandbox) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 702; then - installRemoteModule_version=3.0.3 - fi - fi - ;; - lz4) - if test -z "$installRemoteModule_path"; then - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=0.4.3 - fi - installRemoteModule_src="$(getPackageSource https://github.com/kjdev/php-ext-lz4/archive/refs/tags/$installRemoteModule_version.tar.gz)" - cd "$installRemoteModule_src" - phpize - ./configure --with-lz4-includedir=/usr - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - fi - ;; - lzf) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 702; then - installRemoteModule_version=1.6.8 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" '1.5.0') -ge 0; then - # Sacrifice speed in favour of compression ratio? - case "${IPE_LZF_BETTERCOMPRESSION:-}" in - 1 | y* | Y*) - addConfigureOption 'enable-lzf-better-compression' 'yes' - ;; - *) - addConfigureOption 'enable-lzf-better-compression' 'no' - ;; - esac - fi - ;; - mailparse) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.1.6 - elif test $PHP_MAJMIN_VERSION -le 702; then - installRemoteModule_version=3.1.3 - fi - fi - ;; - memcache) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.2.7 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=4.0.5.2 - fi - fi - ;; - memcached) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.2.0 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - # Set the path to libmemcached install prefix - addConfigureOption 'with-libmemcached-dir' 'no' - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" '3.0.0') -ge 0; then - # Set the path to ZLIB install prefix - addConfigureOption 'with-zlib-dir' 'no' - # Use system FastLZ library - addConfigureOption 'with-system-fastlz' 'no' - # Enable memcached igbinary serializer support - if php --ri igbinary >/dev/null 2>/dev/null; then - addConfigureOption 'enable-memcached-igbinary' 'yes' - else - addConfigureOption 'enable-memcached-igbinary' 'no' - fi - # Enable memcached msgpack serializer support - if php --ri msgpack >/dev/null 2>/dev/null; then - addConfigureOption 'enable-memcached-msgpack' 'yes' - else - addConfigureOption 'enable-memcached-msgpack' 'no' - fi - # Enable memcached json serializer support - addConfigureOption 'enable-memcached-json' 'yes' - # Enable memcached protocol support - addConfigureOption 'enable-memcached-protocol' 'no' # https://github.com/php-memcached-dev/php-memcached/issues/418#issuecomment-449587972 - # Enable memcached sasl support - addConfigureOption 'enable-memcached-sasl' 'yes' - # Enable memcached session handler support - addConfigureOption 'enable-memcached-session' 'yes' - fi - # memcached must be loaded after msgpack - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - ;; - memprof) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.0.0 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=2.1.0 - fi - fi - ;; - mongo) - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" '1.5.0') -ge 0; then - # Build with Cyrus SASL (MongoDB Enterprise Authentication) support? - addConfigureOption '-with-mongo-sasl' 'yes' - fi - ;; - mongodb) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 505; then - installRemoteModule_version=1.5.5 - elif test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.7.5 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=1.9.2 - elif test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=1.11.1 - elif test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=1.16.2 - elif test $PHP_MAJMIN_VERSION -le 800; then - installRemoteModule_version=1.20.1 - fi - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 1.17.0) -ge 0; then - # Enable developer flags? (yes/no) - addConfigureOption enable-mongodb-developer-flags no - # Enable code coverage? (yes/no) - addConfigureOption enable-mongodb-coverage no - # Use system libraries for libbson, libmongoc, and libmongocrypt? (yes/no) - addConfigureOption with-mongodb-system-libs no - # Enable client-side encryption? (auto/yes/no) - addConfigureOption with-mongodb-client-side-encryption yes - # Enable Snappy for compression? (auto/yes/no) - addConfigureOption with-mongodb-snappy yes - # Enable zlib for compression? (auto/system/bundled/no) - addConfigureOption with-mongodb-zlib yes - # Enable zstd for compression? (auto/yes/no) - addConfigureOption with-mongodb-zstd yes - # Enable SASL for Kerberos authentication? (auto/cyrus/no) - addConfigureOption with-mongodb-sasl yes - # Enable crypto and TLS? (auto/openssl/libressl/darwin/no) - addConfigureOption with-mongodb-ssl yes - # Use system crypto profile (OpenSSL only)? (yes/no) - addConfigureOption enable-mongodb-crypto-system-profile yes - # Use bundled or system utf8proc for SCRAM-SHA-256 SASLprep? (bundled/system) - addConfigureOption with-mongodb-utf8proc bundled - fi - ;; - mosquitto) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=beta - fi - ;; - msgpack) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.5.7 - fi - fi - ;; - newrelic) - installNewRelic - installRemoteModule_manuallyInstalled=2 - ;; - oauth) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.2.3 - fi - fi - ;; - oci8 | pdo_oci) - installOracleInstantClient - if test "$installRemoteModule_module" = oci8; then - addConfigureOption with-oci8 "instantclient,$ORACLE_INSTANTCLIENT_LIBPATH" - elif test "$installRemoteModule_module" = pdo_oci; then - addConfigureOption with-pdo-oci "instantclient,$ORACLE_INSTANTCLIENT_LIBPATH" - fi - ;; - opencensus) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=alpha - fi - ;; - openswoole) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 704; then - installRemoteModule_version=4.10.0 - elif test $PHP_MAJMIN_VERSION -lt 801; then - installRemoteModule_version=22.0.0 - elif test $PHP_MAJMIN_VERSION -lt 802; then - installRemoteModule_version=22.1.2 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if php --ri sockets >/dev/null 2>/dev/null; then - installRemoteModule_sockets=yes - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - else - installRemoteModule_sockets=no - fi - installRemoteModule_openssl=yes - if test -n "$installRemoteModule_version" && test $(compareVersions "$installRemoteModule_version" 22.1.2) -ge 0; then - # enable coroutine sockets? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 protocol? - addConfigureOption enable-http2 yes - # enable coroutine mysqlnd? - addConfigureOption enable-mysqlnd yes - # enable coroutine curl? - addConfigureOption enable-hook-curl yes - # enable coroutine postgres? - addConfigureOption with-postgres yes - elif test $(compareVersions "$installRemoteModule_version" 22.1.1) -ge 0; then - # enable c-ares support? - addConfigureOption enable-cares yes - # enable coroutine sockets? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 protocol? - addConfigureOption enable-http2 yes - # enable coroutine mysqlnd? - addConfigureOption enable-mysqlnd yes - # enable coroutine curl? - addConfigureOption enable-hook-curl yes - # enable coroutine postgres? - addConfigureOption with-postgres yes - elif test $(compareVersions "$installRemoteModule_version" 22.1.0) -ge 0; then - # enable coroutine sockets? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 protocol? - addConfigureOption enable-http2 yes - # enable coroutine mysqlnd? - addConfigureOption enable-mysqlnd yes - # enable coroutine curl? - addConfigureOption enable-hook-curl yes - # enable coroutine postgres? - addConfigureOption with-postgres yes - elif test $(compareVersions "$installRemoteModule_version" 22.0.0) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable hook curl support? - addConfigureOption enable-hook-curl yes - # enable postgres support? - addConfigureOption with-postgres yes - elif test $(compareVersions "$installRemoteModule_version" 4.8.0) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable json support? - addConfigureOption enable-swoole-json yes - # enable curl support? - addConfigureOption enable-swoole-curl yes - # enable postgres support? - addConfigureOption with-postgres yes - else - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable json support? - addConfigureOption enable-swoole-json yes - # enable curl support? - addConfigureOption enable-swoole-curl yes - fi - ;; - operator) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=beta - fi - ;; - parallel) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=0.8.3 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=1.1.4 - fi - fi - ;; - parle) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 704; then - installRemoteModule_version=0.8.3 - else - installRemoteModule_version=beta - fi - fi - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 0.8.4) -ge 0; then - # Enable internal UTF-32 support in parle - addConfigureOption enable-parle-utf32 yes - fi - ;; - pcov) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=0.9.0 - fi - fi - ;; - phalcon) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMINPAT_VERSION -lt 70401; then - installRemoteModule_version=4.1.2 - elif test $PHP_MAJMIN_VERSION -lt 800; then - installRemoteModule_version=5.4.0 - fi - fi - installRemoteModule_cppflags='-Wno-incompatible-pointer-types' - ;; - php_trie) - if ! test -f /usr/local/include/hat-trie/include/tsl/htrie_map.h; then - installRemoteModule_src="$(getPackageSource https://codeload.github.com/Tessil/hat-trie/tar.gz/v0.6.0)" - mkdir -p /usr/local/include/hat-trie - mv "$installRemoteModule_src/include" /usr/local/include/hat-trie - fi - ;; - pq) - # pq must be loaded after raphf - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - ;; - propro) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.0.2 - fi - fi - ;; - protobuf) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=3.12.4 - elif test $PHP_MAJMIN_VERSION -lt 800; then - installRemoteModule_version=3.24.4 - elif test $PHP_MAJMIN_VERSION -lt 801; then - installRemoteModule_version=3.25.3 - fi - fi - ;; - psr) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 506; then - installRemoteModule_version=0.5.1 - elif test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=0.6.1 - elif test $PHP_MAJMIN_VERSION -lt 703; then - installRemoteModule_version=1.1.0 - fi - fi - ;; - pthreads) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.0.10 - fi - fi - ;; - raphf) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.1.2 - fi - fi - ;; - rdkafka) - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version"; then - installRemoteModule_version1='' - if test $PHP_MAJMIN_VERSION -le 505; then - installRemoteModule_version1=3.0.5 - elif test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version1=4.1.2 - fi - installRemoteModule_version2='' - case "$DISTRO" in - alpine) - installRemoteModule_tmp='librdkafka' - ;; - debian) - installRemoteModule_tmp='librdkafka*' - ;; - *) - installRemoteModule_tmp='' - ;; - esac - if test -n "$installRemoteModule_tmp"; then - installRemoteModule_tmp="$(getInstalledPackageVersion "$installRemoteModule_tmp")" - if test -n "$installRemoteModule_tmp" && test $(compareVersions "$installRemoteModule_tmp" '0.11.0') -lt 0; then - installRemoteModule_version2=3.1.3 - fi - fi - if test -z "$installRemoteModule_version1" || test -z "$installRemoteModule_version2"; then - installRemoteModule_version="$installRemoteModule_version1$installRemoteModule_version2" - elif test $(compareVersions "$installRemoteModule_version1" "$installRemoteModule_version2") -le 0; then - installRemoteModule_version="$installRemoteModule_version1" - else - installRemoteModule_version="$installRemoteModule_version2" - fi - fi - ;; - redis) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=4.3.0 - elif test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=5.3.7 - elif test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=6.0.2 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - # Enable igbinary serializer support? - if php --ri igbinary >/dev/null 2>/dev/null; then - addConfigureOption enable-redis-igbinary yes - else - addConfigureOption enable-redis-igbinary no - fi - # Enable lzf compression support? - addConfigureOption enable-redis-lzf yes - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 5.0.0) -ge 0; then - if ! test -e /usr/include/zstd.h || ! test -e /usr/lib/libzstd.so -o -e "/usr/lib/$TARGET_TRIPLET/libzstd.so"; then - installRemoteModule_zstdVersion=1.4.4 - installRemoteModule_zstdVersionMajor=$(echo $installRemoteModule_zstdVersion | cut -d. -f1) - rm -rf /tmp/src/zstd - mv "$(getPackageSource https://github.com/facebook/zstd/releases/download/v$installRemoteModule_zstdVersion/zstd-$installRemoteModule_zstdVersion.tar.gz)" /tmp/src/zstd - cd /tmp/src/zstd - make V=0 -j$(getProcessorCount) lib - cp -f lib/libzstd.so "/usr/lib/$TARGET_TRIPLET/libzstd.so.$installRemoteModule_zstdVersion" - ln -sf "/usr/lib/$TARGET_TRIPLET/libzstd.so.$installRemoteModule_zstdVersion" "/usr/lib/$TARGET_TRIPLET/libzstd.so.$installRemoteModule_zstdVersionMajor" - ln -sf "/usr/lib/$TARGET_TRIPLET/libzstd.so.$installRemoteModule_zstdVersion" "/usr/lib/$TARGET_TRIPLET/libzstd.so" - ln -sf /tmp/src/zstd/lib/zstd.h /usr/include/zstd.h - UNNEEDED_PACKAGE_LINKS="$UNNEEDED_PACKAGE_LINKS /usr/include/zstd.h" - cd - >/dev/null - fi - # Enable zstd compression support? - addConfigureOption enable-redis-zstd yes - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 6.0.0) -ge 0; then - # Enable msgpack serializer support? - if php --ri msgpack >/dev/null 2>/dev/null; then - addConfigureOption enable-redis-msgpack yes - else - addConfigureOption enable-redis-msgpack no - fi - # Enable lz4 compression? - addConfigureOption enable-redis-lz4 yes - # Use system liblz4? - addConfigureOption with-liblz4 yes - fi - fi - ;; - relay) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version="$(curl -sSLf https://builds.r2.relay.so/meta/latest)" - installRemoteModule_version="${installRemoteModule_version#v}" - fi - case $(uname -m) in - aarch64 | arm64 | armv8) - installRemoteModule_hardware=aarch64 - ;; - *) - installRemoteModule_hardware=x86-64 - ;; - esac - installRemoteModule_distro="$DISTRO" - installRemoteModule_flags='' - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -lt 317; then - installRemoteModule_distro=alpine3.9 - else - installRemoteModule_distro=alpine3.17 - fi - ;; - debian) - case "$(dpkg -l 'libssl*' | grep -E '^ii ' | cut -d' ' -f3)" in - libssl3*) - installRemoteModule_flags=+libssl3 - ;; - esac - ;; - esac - # See https://relay.so/builds - installRemoteModule_url="https://builds.r2.relay.so/v${installRemoteModule_version}/relay-v${installRemoteModule_version}-php${PHP_MAJDOTMIN_VERSION}-${installRemoteModule_distro}-${installRemoteModule_hardware}${installRemoteModule_flags}.tar.gz" - printf 'Downloading relay v%s (%s) from %s... ' "$installRemoteModule_version" "$installRemoteModule_hardware" "$installRemoteModule_url" - installRemoteModule_src="$(getPackageSource $installRemoteModule_url)" - echo 'done.' - cp -- "$installRemoteModule_src/relay-pkg.so" "$PHP_EXTDIR/relay.so" - sed -i "s/00000000-0000-0000-0000-000000000000/$(cat /proc/sys/kernel/random/uuid)/" "$PHP_EXTDIR/relay.so" - installRemoteModule_ini_extra="$(grep -vE '^[ \t]*extension[ \t]*=' $installRemoteModule_src/relay.ini)" - installRemoteModule_manuallyInstalled=1 - ;; - saxon) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -ge 800; then - installRemoteModule_version='12.4.2' - else - installRemoteModule_version='12.3' - fi - fi - installRemoteModule_majorVersion="${installRemoteModule_version%%.*}" - if test "$installRemoteModule_majorVersion" -ge 12; then - case $(uname -m) in - aarch64 | arm64 | armv8) - installRemoteModule_url=https://downloads.saxonica.com/SaxonC/EE/${installRemoteModule_majorVersion}/libsaxon-EEC-linux-aarch64-v${installRemoteModule_version}.zip - ;; - *) - installRemoteModule_url=https://downloads.saxonica.com/SaxonC/EE/${installRemoteModule_majorVersion}/libsaxon-EEC-linux-x86_64-v${installRemoteModule_version}.zip - ;; - esac - else - installRemoteModule_url=https://downloads.saxonica.com/SaxonC/EE/${installRemoteModule_majorVersion}/libsaxon-EEC-setup64-v${installRemoteModule_version}.zip - fi - installRemoteModule_dir="$(getPackageSource $installRemoteModule_url)" - if ! test -f /usr/lib/libsaxon-*.so; then - if test "$installRemoteModule_majorVersion" -ge 12; then - cp $installRemoteModule_dir/libs/nix/*.so /usr/lib/ - else - cp $installRemoteModule_dir/*.so /usr/lib/ - fi - ldconfig || true - fi - cd "$installRemoteModule_dir/Saxon.C.API" - phpize - ./configure --enable-saxon - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - ;; - seasclick) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.1.0 - fi - fi - ;; - seaslog) - installRemoteModule_cppflags='-Wno-incompatible-pointer-types' - ;; - smbclient) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.1.1 - elif test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=1.1.2 - fi - fi - ;; - snappy) - if test -z "$installRemoteModule_path"; then - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=0.2.1 - fi - installRemoteModule_src="$(getPackageSource https://github.com/kjdev/php-ext-snappy/archive/refs/tags/$installRemoteModule_version.tar.gz)" - cd "$installRemoteModule_src" - phpize - ./configure --with-snappy-includedir=/usr - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - fi - ;; - snuffleupagus) - if test -z "$installRemoteModule_path"; then - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 800; then - installRemoteModule_version=0.9.0 - elif test $PHP_MAJMIN_VERSION -le 801; then - installRemoteModule_version=0.10.0 - else - installRemoteModule_version=0.11.0 - fi - fi - installRemoteModule_src="$(getPackageSource https://codeload.github.com/jvoisin/snuffleupagus/tar.gz/v$installRemoteModule_version)" - cd "$installRemoteModule_src/src" - phpize - ./configure --enable-snuffleupagus - make -j$(getProcessorCount) install - cd - >/dev/null - cp -a "$installRemoteModule_src/config/default.rules" "$PHP_INI_DIR/conf.d/snuffleupagus.rules" - if test $(compareVersions "$installRemoteModule_version" 0.8.0) -ge 0; then - printf '\n# Disable "PHP version is not officially maintained anymore" message\nsp.global.show_old_php_warning.disable();\n' >>"$PHP_INI_DIR/conf.d/snuffleupagus.rules" - fi - else - if test -f "$installRemoteModule_path/config/default.rules"; then - cp -a "$installRemoteModule_path/config/default.rules" "$PHP_INI_DIR/conf.d/snuffleupagus.rules" - fi - fi - installRemoteModule_ini_extra="$(printf '%ssp.configuration_file=%s\n' "$installRemoteModule_ini_extra" "$PHP_INI_DIR/conf.d/snuffleupagus.rules")" - installRemoteModule_manuallyInstalled=1 - ;; - sodium | libsodium) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=1.0.7 - fi - fi - ;; - solr) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=2.4.0 - elif test $PHP_MAJMIN_VERSION -lt 704; then - installRemoteModule_version=2.6.0 - fi - fi - ;; - sourceguardian) - installSourceGuardian - installRemoteModule_manuallyInstalled=1 - ;; - spx) - if test -z "$installRemoteModule_path"; then - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=v0.4.18 - fi - if test "${installRemoteModule_version%.*}" = "$installRemoteModule_version"; then - installRemoteModule_displayVersion="$installRemoteModule_version" - else - installRemoteModule_displayVersion="git--master-$installRemoteModule_version" - fi - installRemoteModule_src="$(getPackageSource https://codeload.github.com/NoiseByNorthwest/php-spx/tar.gz/$installRemoteModule_version)" - cd -- "$installRemoteModule_src" - phpize - ./configure - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - fi - ;; - sqlsrv | pdo_sqlsrv) - isMicrosoftSqlServerODBCInstalled || installMicrosoftSqlServerODBC - if test -z "$installRemoteModule_version"; then - # https://docs.microsoft.com/it-it/sql/connect/php/system-requirements-for-the-php-sql-driver?view=sql-server-2017 - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=3.0.1 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=5.3.0 - elif test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=5.6.1 - elif test $PHP_MAJMIN_VERSION -le 702; then - installRemoteModule_version=5.8.1 - elif test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=5.9.0 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=5.10.1 - elif test $PHP_MAJMIN_VERSION -le 800; then - installRemoteModule_version=5.11.1 - fi - fi - ;; - ssh2) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.13 - fi - fi - ;; - stomp) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.0.9 - fi - fi - if test "$DISTRO" = debian; then - addConfigureOption with-openssl-dir yes - else - addConfigureOption with-openssl-dir /usr - fi - ;; - swoole) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 502; then - installRemoteModule_version=1.6.10 - elif test $PHP_MAJMIN_VERSION -le 504; then - installRemoteModule_version=2.0.4 - elif test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.0.11 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=4.3.6 - elif test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=4.5.10 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=4.8.11 - elif test $PHP_BITS -eq 32; then - # See https://github.com/swoole/swoole-src/issues/5198#issuecomment-1820162178 - installRemoteModule_version="$(resolvePHPModuleVersion "$installRemoteModule_module" '^5.0')" - else - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -le 312; then - installRemoteModule_version=5.1.2 - fi - ;; - esac - fi - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 800; then - installRemoteModule_version=5.1.3 - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" stable)" - fi - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if php --ri sockets >/dev/null 2>/dev/null; then - installRemoteModule_sockets=yes - else - installRemoteModule_sockets=no - fi - installRemoteModule_openssl=yes - case "$DISTRO_VERSION" in - alpine@3.7 | alpine@3.8) - if test $(compareVersions "$installRemoteModule_version" 4.6.0) -lt 0; then - # see https://github.com/swoole/swoole-src/issues/3934 - installRemoteModule_openssl=no - fi - ;; - esac - if test $PHP_THREADSAFE -eq 1; then - installRemoteModule_zts=yes - else - installRemoteModule_zts=no - fi - installRemoteModule_sqlite=yes - installRemoteModule_iouring=no - installRemoteModule_curl=yes - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -lt 317; then - # we need sqlite3 >= 3.7.7 - installRemoteModule_sqlite=no - fi - case "${IPE_SWOOLE_WITHOUT_IOURING:-}" in - 1 | y* | Y*) ;; - *) - # iouring support in swoole 6 requires liburing 2.5+: available since Alpine 3.19 - # but with Alpine 3.19 we have a "invalid use of incomplete type 'const struct statx'" error - if test $DISTRO_MAJMIN_VERSION -ge 320; then - installRemoteModule_iouring=yes - fi - ;; - esac - ;; - debian) - if test $PHP_MAJMIN_VERSION -ge 800; then - # see https://github.com/swoole/swoole-src/issues/5365 - installRemoteModule_curl=no - fi - if test $DISTRO_MAJMIN_VERSION -lt 1200; then - # we need sqlite3 >= 3.7.7 - installRemoteModule_sqlite=no - fi - case "${IPE_SWOOLE_WITHOUT_IOURING:-}" in - 1 | y* | Y*) ;; - *) - if test $DISTRO_VERSION_NUMBER -ge 13; then - # iouring support in swoole 6 requires liburing 2.5+: available since Debian Trixie (13) - installRemoteModule_iouring=yes - fi - ;; - esac - ;; - esac - installRemoteModule_zstd=yes - case "$DISTRO" in - debian) - if test $DISTRO_VERSION_NUMBER -lt 11; then - # swoole 6 requires libzstd >= 1.4.0, but on debian 10 (buster) we have 1.3.8 - installRemoteModule_zstd=no - fi - ;; - esac - if test $(compareVersions "$installRemoteModule_version" 6.0.0) -ge 0; then - # enable sockets support? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - # enable cares support? - addConfigureOption enable-cares yes - # enable brotli support? - addConfigureOption enable-brotli yes - # enable zstd support? - addConfigureOption enable-zstd $installRemoteModule_zstd - # enable PostgreSQL database support? - addConfigureOption enable-swoole-pgsql yes - # enable ODBC database support? - addConfigureOption with-swoole-odbc no - # enable Oracle database support? - addConfigureOption with-swoole-oracle no - # enable Sqlite database support? - addConfigureOption enable-swoole-sqlite $installRemoteModule_sqlite - # enable swoole thread support (need php zts support)? - addConfigureOption enable-swoole-thread $installRemoteModule_zts - # enable iouring for file async support? - addConfigureOption enable-iouring $installRemoteModule_iouring - elif test $(compareVersions "$installRemoteModule_version" 5.1.0) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - # enable cares support? - addConfigureOption enable-cares yes - # enable brotli support? - addConfigureOption enable-brotli yes - # enable PostgreSQL database support? - addConfigureOption enable-swoole-pgsql yes - # enable ODBC database support? - addConfigureOption with-swoole-odbc no - # enable Oracle database support? - addConfigureOption with-swoole-oracle no - # enable Sqlite database support? - addConfigureOption enable-swoole-sqlite $installRemoteModule_sqlite - elif test $(compareVersions "$installRemoteModule_version" 5.0.1) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - # enable cares support? - addConfigureOption enable-cares yes - # enable brotli support? - addConfigureOption enable-brotli yes - elif test $(compareVersions "$installRemoteModule_version" 5.0.0) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - # enable cares support? - addConfigureOption enable-cares yes - elif test $(compareVersions "$installRemoteModule_version" 4.8.11) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable json support? - addConfigureOption enable-swoole-json yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - # enable cares support? - addConfigureOption enable-cares yes - elif test $(compareVersions "$installRemoteModule_version" 4.6.1) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable json support? - addConfigureOption enable-swoole-json yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - elif test $(compareVersions "$installRemoteModule_version" 4.4.0) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - elif test $(compareVersions "$installRemoteModule_version" 4.2.11) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable postgresql coroutine client support? - addConfigureOption enable-coroutine-postgresql yes - elif test $(compareVersions "$installRemoteModule_version" 4.2.7) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable postgresql coroutine client support? - addConfigureOption enable-coroutine-postgresql yes - # enable kernel debug/trace log? (it will degrade performance) - addConfigureOption enable-debug-log no - elif test $(compareVersions "$installRemoteModule_version" 4.2.6) -ge 0; then - # enable debug/trace log support? - addConfigureOption enable-debug-log no - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable postgresql coroutine client support? - addConfigureOption enable-coroutine-postgresql yes - elif test $(compareVersions "$installRemoteModule_version" 4.2.0) -ge 0; then - # enable debug/trace log support? - addConfigureOption enable-debug-log no - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable async-redis support? - addConfigureOption enable-async-redis yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable postgresql coroutine client support? - addConfigureOption enable-coroutine-postgresql yes - elif test $(compareVersions "$installRemoteModule_version" 2.1.2) -ge 0; then - # enable debug/trace log support? - addConfigureOption enable-swoole-debug no - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable async-redis support? - addConfigureOption enable-async-redis yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable postgresql coroutine client support? - addConfigureOption enable-coroutine-postgresql yes - elif test $(compareVersions "$installRemoteModule_version" 1.10.4) -ge 0 && test $(compareVersions "$installRemoteModule_version" 1.10.5) -le 0; then - # enable debug/trace log support? - addConfigureOption enable-swoole-debug no - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable async-redis support? - addConfigureOption enable-async-redis yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - fi - ;; - tdlib) - if ! test -f /usr/lib/libphpcpp.so || ! test -f /usr/include/phpcpp.h; then - if test $PHP_MAJMIN_VERSION -le 701; then - cd "$(getPackageSource https://codeload.github.com/CopernicaMarketingSoftware/PHP-CPP/tar.gz/v2.1.4)" - elif test $PHP_MAJMIN_VERSION -le 703; then - cd "$(getPackageSource https://codeload.github.com/CopernicaMarketingSoftware/PHP-CPP/tar.gz/v2.2.0)" - else - cd "$(getPackageSource https://codeload.github.com/CopernicaMarketingSoftware/PHP-CPP/tar.gz/444d1f90cf6b7f3cb5178fa0d0b5ab441b0389d0)" - fi - make -j$(getProcessorCount) - make install - cd - >/dev/null - fi - if test -z "$installRemoteModule_path"; then - installRemoteModule_tmp="$(mktemp -p /tmp/src -d)" - git clone --depth=1 --recurse-submodules https://github.com/yaroslavche/phptdlib.git "$installRemoteModule_tmp" - mkdir "$installRemoteModule_tmp/build" - cd "$installRemoteModule_tmp/build" - cmake -D USE_SHARED_PHPCPP:BOOL=ON .. - make - make install - cd - >/dev/null - rm "$PHP_INI_DIR/conf.d/tdlib.ini" - installRemoteModule_manuallyInstalled=1 - fi - ;; - tensor) - installRemoteModule_cppflags='-Wno-incompatible-pointer-types' - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=2.2.3 - fi - fi - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -ge 315 && test $DISTRO_MAJMIN_VERSION -le 317; then - if test -e /usr/lib/liblapacke.so.3 && ! test -e /usr/lib/liblapacke.so; then - ln -s /usr/lib/liblapacke.so.3 /usr/lib/liblapacke.so - fi - fi - ;; - esac - ;; - tideways) - case "$DISTRO" in - alpine) - case $(uname -m) in - aarch64 | arm64 | armv8) - installRemoteModule_architecture=alpine-arm64 - ;; - *) - installRemoteModule_architecture=alpine-x86_64 - ;; - esac - ;; - debian) - case $(uname -m) in - aarch64 | arm64 | armv8) - installRemoteModule_architecture=arm64 - ;; - *) - installRemoteModule_architecture=x86_64 - ;; - esac - ;; - esac - installRemoteModule_url="$(curl -sSLf -o - https://tideways.com/profiler/downloads | grep -Eo "\"[^\"]+/tideways-php-([0-9]+\.[0-9]+\.[0-9]+)-$installRemoteModule_architecture.tar.gz\"" | cut -d'"' -f2)" - if test -z "$installRemoteModule_url"; then - echo 'Failed to find the tideways tarball to be downloaded' - exit 1 - fi - printf 'Downloading tideways from %s\n' "$installRemoteModule_url" - installRemoteModule_src="$(getPackageSource $installRemoteModule_url)" - if test -d "$installRemoteModule_src/dist"; then - installRemoteModule_src="$installRemoteModule_src/dist" - fi - installRemoteModule_src="$installRemoteModule_src/tideways-php" - case "$DISTRO" in - alpine) - installRemoteModule_src="$installRemoteModule_src-alpine" - ;; - esac - installRemoteModule_src="$installRemoteModule_src-$PHP_MAJDOTMIN_VERSION" - if test $PHP_THREADSAFE -eq 1; then - installRemoteModule_src="$installRemoteModule_src-zts" - fi - installRemoteModule_src="$installRemoteModule_src.so" - if ! test -f "$installRemoteModule_src"; then - echo 'tideways does not support the current environment' >&2 - exit 1 - fi - mv "$installRemoteModule_src" $(getPHPExtensionsDir)/tideways.so - installRemoteModule_manuallyInstalled=1 - ;; - uopz) - installRemoteModule_cppflags='-Wno-incompatible-pointer-types' - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.0.7 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=5.0.2 - elif test $PHP_MAJMIN_VERSION -le 740; then - installRemoteModule_version=6.1.2 - fi - fi - ;; - uploadprogress) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=1.1.4 - fi - fi - ;; - uuid) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.0.5 - fi - fi - ;; - uv) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 800; then - installRemoteModule_version=0.2.4 - else - installRemoteModule_version=beta - fi - fi - ;; - vld) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=0.14.0 - else - installRemoteModule_version=beta - fi - fi - ;; - wikidiff2) - case "$DISTRO" in - alpine) - if ! isLibDatrieInstalled; then - installLibDatrie - fi - if ! isLibThaiInstalled; then - installLibThai - fi - ;; - esac - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 702; then - installRemoteModule_version=1.13.0 - else - installRemoteModule_version="$(git -c versionsort.suffix=- ls-remote --tags --refs --quiet --exit-code --sort=version:refname https://github.com/wikimedia/mediawiki-php-wikidiff2.git 'refs/tags/*.*.*' | tail -1 | cut -d/ -f3)" - fi - fi - installRemoteModule_src="$(getPackageSource "https://codeload.github.com/wikimedia/mediawiki-php-wikidiff2/tar.gz/refs/tags/$installRemoteModule_version")" - cd -- "$installRemoteModule_src" - phpize - ./configure - make -j$(getProcessorCount) - make install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - ;; - xdebug) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 500; then - installRemoteModule_version=2.0.5 - elif test $PHP_MAJMIN_VERSION -le 503; then - installRemoteModule_version=2.2.7 - elif test $PHP_MAJMIN_VERSION -le 504; then - installRemoteModule_version=2.4.1 - elif test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.5.5 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=2.6.1 - elif test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=2.9.8 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=3.1.6 - fi - fi - ;; - xdiff) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.5.2 - fi - fi - if ! test -f /usr/local/lib/libxdiff.* && ! test -f /usr/lib/libxdiff.* && ! test -f /usr/lib/x86_64*/libxdiff.*; then - installRemoteModule_src="$(getPackageSource https://raw.githubusercontent.com/mlocati/docker-php-extension-installer/assets/resources/libxdiff-0.23.tar.gz)" - cd -- "$installRemoteModule_src" - ./configure --disable-shared --disable-dependency-tracking --with-pic - make -j$(getProcessorCount) - make install - cd - >/dev/null - fi - ;; - xhprof) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.9.4 - fi - fi - ;; - xlswriter) - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 1.2.7) -ge 0; then - # enable reader supports? - addConfigureOption enable-reader yes - fi - ;; - xmldiff) - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version"; then - case "$DISTRO_VERSION" in - debian@8) - # The gcc version of Debian Jessie is too old => error: 'nullptr' was not declared in this scope - installRemoteModule_version=1.1.4 - ;; - esac - fi - ;; - xmlrpc) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=beta - fi - ;; - yac) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.9.2 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 2.2.0) -ge 0; then - # Enable igbinary serializer support - if php --ri igbinary >/dev/null 2>/dev/null; then - addConfigureOption enable-igbinary yes - else - addConfigureOption enable-igbinary no - fi - # Enable json serializer support - if php --ri json >/dev/null 2>/dev/null; then - addConfigureOption enable-json yes - else - addConfigureOption enable-json no - fi - # Enable msgpack serializer support - if php --ri msgpack >/dev/null 2>/dev/null; then - addConfigureOption enable-msgpack yes - else - addConfigureOption enable-msgpack no - fi - fi - ;; - yaml) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.3.1 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=2.0.4 - fi - fi - ;; - yar) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.2.5 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 1.2.4) -ge 0; then - # Enable Msgpack Supports - if php --ri msgpack >/dev/null 2>/dev/null; then - addConfigureOption enable-msgpack yes - else - addConfigureOption enable-msgpack no - fi - fi - ;; - zmq) - if test -z "$installRemoteModule_version"; then - installRemoteModule_src="$(getPackageSource https://github.com/zeromq/php-zmq/tarball/master)" - cd "$installRemoteModule_src" - phpize - ./configure - make -j$(getProcessorCount) - make install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - fi - ;; - zookeeper) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.5.0 - fi - fi - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - case "$DISTRO" in - alpine) - if ! test -f /usr/local/include/zookeeper/zookeeper.h; then - if test $(compareVersions "$installRemoteModule_version" 1.0.0) -lt 0; then - installRemoteModule_src="$(getPackageSource http://archive.apache.org/dist/zookeeper/zookeeper-3.5.9/apache-zookeeper-3.5.9.tar.gz)" - else - installRemoteModule_tmp="$(curl -sSLf https://downloads.apache.org/zookeeper/stable | sed -E 's/["<>]/\n/g' | grep -E '^(apache-)?zookeeper-[0-9]+\.[0-9]+\.[0-9]+\.(tar\.gz|tgz)$' | head -n1)" - if test -z "$installRemoteModule_tmp"; then - echo 'Failed to detect the zookeeper library URL' >&2 - exit 1 - fi - installRemoteModule_src="$(getPackageSource https://downloads.apache.org/zookeeper/stable/$installRemoteModule_tmp)" - fi - cd -- "$installRemoteModule_src" - if test -d ~/.m2; then - installRemoteModule_delm2=n - else - installRemoteModule_delm2=y - fi - mvn -pl zookeeper-jute compile - cd - >/dev/null - cd -- "$installRemoteModule_src/zookeeper-client/zookeeper-client-c" - autoreconf -if - ./configure --without-cppunit - make -j$(getProcessorCount) CFLAGS='-Wno-stringop-truncation -Wno-format-overflow' - make install - cd - >/dev/null - if test $installRemoteModule_delm2 = y; then - rm -rf ~/.m2 - fi - fi - ;; - esac - ;; - zstd) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.11.0 - fi - fi - ;; - esac - if test $installRemoteModule_manuallyInstalled -eq 0; then - if test -n "$installRemoteModule_path"; then - printf ' (installing version %s from %s)\n' "$installRemoteModule_version" "$installRemoteModule_path" - elif test -n "$installRemoteModule_version"; then - printf ' (installing version %s)\n' "$installRemoteModule_version" - fi - installPeclPackage "$installRemoteModule_module" "$installRemoteModule_version" "$installRemoteModule_cppflags" "$installRemoteModule_path" - fi - postProcessModule "$installRemoteModule_module" - if test $installRemoteModule_manuallyInstalled -lt 2; then - case "${IPE_SKIP_CHECK:-}" in - 1 | y* | Y*) ;; - *) - checkModuleWorking "$installRemoteModule_module" "$installRemoteModule_ini_basename" "$installRemoteModule_ini_extra" - ;; - esac - enablePhpExtension "$installRemoteModule_module" "$installRemoteModule_ini_basename" "$installRemoteModule_ini_extra" - fi -} - -# Check if a module/helper may be installed using the pecl archive -# -# Arguments: -# $1: the name of the module -# -# Return: -# 0: true -# 1: false -moduleMayUsePecl() { - case "$1" in - @composer | @fix_letsencrypt) - return 1 - ;; - blackfire | geos | ioncube_loader | snuffleupagus | sourceguardian | spx | tdlib | tideways) - return 1 - ;; - esac - if test -n "$(getModuleSourceCodePath "$1")"; then - return 1 - fi - if stringInList "$1" "$BUNDLED_MODULES"; then - return 1 - fi - return 0 -} - -# Configure the PECL package installer -# -# Updates: -# PHP_MODULES_TO_INSTALL -# Sets: -# USE_PICKLE 0: no, 1: yes (already downloaded), 2: yes (build it from source) -configureInstaller() { - USE_PICKLE=0 - if ! which pecl >/dev/null; then - for PHP_MODULE_TO_INSTALL in $PHP_MODULES_TO_INSTALL; do - if ! moduleMayUsePecl "$PHP_MODULE_TO_INSTALL"; then - continue - fi - if false && anyStringInList '' "$PHP_MODULES_TO_INSTALL"; then - USE_PICKLE=2 - else - curl -sSLf https://github.com/FriendsOfPHP/pickle/releases/latest/download/pickle.phar -o /tmp/pickle - chmod +x /tmp/pickle - USE_PICKLE=1 - fi - break - done - fi - if test $USE_PICKLE -eq 0; then - if test -z "$(pear config-get http_proxy)"; then - if test -n "${http_proxy:-}"; then - pear config-set http_proxy "$http_proxy" || true - elif test -n "${HTTP_PROXY:-}"; then - pear config-set http_proxy "$HTTP_PROXY" || true - fi - fi - pecl channel-update pecl.php.net || true - fi -} - -buildPickle() { - printf '### BUILDING PICKLE ###\n' - buildPickle_tempDir="$(mktemp -p /tmp/src -d)" - cd -- "$buildPickle_tempDir" - printf 'Downloading... ' - git clone --quiet --depth 1 https://github.com/FriendsOfPHP/pickle.git . - git tag 0.7.0 - printf 'done.\n' - printf 'Installing composer... ' - actuallyInstallComposer . composer '--1 --quiet' - printf 'done.\n' - printf 'Installing composer dependencies... ' - ./composer install --no-dev --no-progress --no-suggest --optimize-autoloader --ignore-platform-reqs --quiet --no-cache - printf 'done.\n' - printf 'Building... ' - php -d phar.readonly=0 box.phar build - mv pickle.phar /tmp/pickle - printf 'done.\n' - cd - >/dev/null -} - -# Add a configure option for the pecl/pickle install command -# -# Arguments: -# $1: the option name -# $2: the option value -addConfigureOption() { - if test $USE_PICKLE -eq 0; then - printf -- '%s\n' "$2" >>"$CONFIGURE_FILE" - else - printf -- '--%s=%s\n' "$1" "$2" >>"$CONFIGURE_FILE" - fi -} - -# Actually installs a PECL package -# -# Arguments: -# $1: the package to be installed -# $2: the package version to be installed (optional) -# $3: the value of the CPPFLAGS variable (optional) -# $4: the path of the local package to be installed (optional, downloaded from PECL if omitted/empty) -installPeclPackage() { - if ! test -f "$CONFIGURE_FILE"; then - printf '\n' >"$CONFIGURE_FILE" - fi - installPeclPackage_name="$(getPeclModuleName "$1")" - if test -z "${2:-}"; then - installPeclPackage_fullname="$installPeclPackage_name" - else - installPeclPackage_fullname="$installPeclPackage_name-$2" - fi - installPeclPackage_path="${4:-}" - if test -z "$installPeclPackage_path"; then - installPeclPackage_path="$installPeclPackage_fullname" - fi - if test $USE_PICKLE -eq 0; then - if test -n "${4:-}"; then - if test -f "$installPeclPackage_path/package2.xml"; then - installPeclPackage_path="$installPeclPackage_path/package2.xml" - else - installPeclPackage_path="$installPeclPackage_path/package.xml" - fi - fi - cat "$CONFIGURE_FILE" | MAKE="make -j$(getCompilationProcessorCount $1)" CPPFLAGS="${3:-}" pecl install "$installPeclPackage_path" - else - MAKEFLAGS="-j$(getCompilationProcessorCount $1)" CPPFLAGS="${3:-}" /tmp/pickle install --tmp-dir=/tmp/pickle.tmp --no-interaction --version-override='' --with-configure-options "$CONFIGURE_FILE" -- "$installPeclPackage_path" - fi -} - -# Check if a string is in a list of space-separated string -# -# Arguments: -# $1: the string to be checked -# $2: the string list -# -# Return: -# 0 (true): if the string is in the list -# 1 (false): if the string is not in the list -stringInList() { - for stringInList_listItem in $2; do - if test "$1" = "$stringInList_listItem"; then - return 0 - fi - done - return 1 -} - -# Check if at least one item in a list is in another list -# -# Arguments: -# $1: the space-separated list of items to be searched -# $2: the space-separated list of reference items -# -# Return: -# 0 (true): at least one of the items in $1 is in $2 -# 1 (false): otherwise -anyStringInList() { - for anyStringInList_item in $1; do - if stringInList "$anyStringInList_item" "$2"; then - return 0 - fi - done - return 1 -} - -# Remove a word from a space-separated list -# -# Arguments: -# $1: the word to be removed -# $2: the string list -# -# Output: -# The list without the word -removeStringFromList() { - removeStringFromList_result='' - for removeStringFromList_listItem in $2; do - if test "$1" != "$removeStringFromList_listItem"; then - if test -z "$removeStringFromList_result"; then - removeStringFromList_result="$removeStringFromList_listItem" - else - removeStringFromList_result="$removeStringFromList_result $removeStringFromList_listItem" - fi - fi - done - printf '%s' "$removeStringFromList_result" -} - -# Invoke apt-get update -invokeAptGetUpdate() { - if test -n "${IPE_APTGETUPDATE_ALREADY:-}"; then - apt-get update -q - return - fi - IPE_APTGETUPDATE_ALREADY=y - if grep -q 'VERSION="8 (jessie)"' /etc/os-release; then - invokeAptGetUpdate_fixdistro=jessie - elif grep -q 'VERSION="9 (stretch)"' /etc/os-release; then - invokeAptGetUpdate_fixdistro=stretch - else - invokeAptGetUpdate - return - fi - # See https://www.debian.org/distrib/archive.en.html for a list of mirrors - if test -z "${IPE_DEB_ARCHIVE:-}"; then - IPE_DEB_ARCHIVE=http://archive.kernel.org/debian-archive - fi - if test -z "${IPE_DEB_ARCHIVE_SECURITY:-}"; then - IPE_DEB_ARCHIVE_SECURITY=http://archive.kernel.org/debian-archive/debian-security - fi - sed -ri "s;^(\s*deb\s+http://(httpredir|deb).debian.org/debian\s+$invokeAptGetUpdate_fixdistro-updates\b.*);#\1;" /etc/apt/sources.list - sed -ri "s;^(\s*deb\s+)http://(httpredir|deb).debian.org;\1$IPE_DEB_ARCHIVE;" /etc/apt/sources.list - sed -ri "s;^(\s*deb\s+)http://security.debian.org/debian-security;\1$IPE_DEB_ARCHIVE_SECURITY;" /etc/apt/sources.list - sed -ri "s;^(\s*deb\s+)http://security.debian.org;\1$IPE_DEB_ARCHIVE_SECURITY;" /etc/apt/sources.list - invokeAptGetUpdate_tmp="$(mktemp)" - apt-get update -q 2>"$invokeAptGetUpdate_tmp" - if test -s "$invokeAptGetUpdate_tmp"; then - cat "$invokeAptGetUpdate_tmp" >&2 - if grep -qE ' KEYEXPIRED [0-9]' "$invokeAptGetUpdate_tmp"; then - echo '############' >&2 - echo '# WARNING! #' >&2 - echo '############' >&2 - echo 'apt packages will be installed without checking authenticity!' >&2 - printf 'APT::Get::AllowUnauthenticated "true";\n' >>/etc/apt/apt.conf.d/99unauthenticated - fi - fi - rm "$invokeAptGetUpdate_tmp" -} - -# Fix the Let's Encrypt CA certificates on old distros -fixLetsEncrypt() { - printf '### FIXING LETS ENCRYPT CA CERTIFICATES ###\n' - case "$DISTRO_VERSION" in - alpine@3.7 | alpine@3.8) - printf -- '- old Alpine Linux detected: we should fix the certificates\n' - ;; - debian@8 | debian@9) - printf -- '- old Debian detected: we should fix the certificates\n' - if ! grep -q 'mozilla/ISRG_Root_X1.crt' /etc/ca-certificates.conf && grep -q 'mozilla/DST_Root_CA_X3.crt' /etc/ca-certificates.conf; then - printf -- '- old ca-certificates package detected\n' - fixCACerts_mustUpdate=1 - if test -d /var/lib/apt/lists; then - for fixCACerts_item in $(ls -1 /var/lib/apt/lists); do - case "$fixCACerts_item" in - partial | lock) ;; - *) - fixCACerts_mustUpdate=0 - break - ;; - esac - done - fi - if test $fixCACerts_mustUpdate -eq 1; then - printf -- '- refreshing the APT package list\n' - invokeAptGetUpdate - fi - printf -- '- installing newer ca-certificates package\n' - apt-get install -qqy --no-install-recommends ca-certificates - fi - ;; - *) - printf -- '- patch not required in this distro version\n' - return - ;; - esac - if grep -Eq '^mozilla/ISRG_Root_X1\.crt$' /etc/ca-certificates.conf && grep -Eq '^mozilla/DST_Root_CA_X3\.crt$' /etc/ca-certificates.conf; then - printf -- '- disabling the DST_Root_CA_X3 certificate\n' - sed -i '/^mozilla\/DST_Root_CA_X3/s/^/!/' /etc/ca-certificates.conf - printf -- '- refreshing the certificates\n' - update-ca-certificates -f - else - printf -- '- DST_Root_CA_X3 certificate not found or already disabled\n' - fi -} - -# Cleanup everything at the end of the execution -cleanup() { - if test "${IPE_UNINSTALL_CARGO:-}" = y; then - if test -f "$HOME/.cargo/env"; then - . "$HOME/.cargo/env" - fi - if command -v rustup >/dev/null; then - rustup self uninstall -y - fi - fi - if test -n "$UNNEEDED_PACKAGE_LINKS"; then - printf '### REMOVING UNNEEDED PACKAGE LINKS ###\n' - for cleanup_link in $UNNEEDED_PACKAGE_LINKS; do - if test -L "$cleanup_link"; then - rm -f "$cleanup_link" - fi - done - fi - case "$DISTRO" in - alpine) - if stringInList icu-libs "${PACKAGES_PERSISTENT_NEW:-}" && stringInList icu-data-en "${PACKAGES_PERSISTENT_NEW:-}"; then - apk del icu-data-en >/dev/null 2>&1 || true - fi - if test -n "$PACKAGES_VOLATILE"; then - printf '### REMOVING UNNEEDED PACKAGES ###\n' - apk del --purge $PACKAGES_VOLATILE - fi - ;; - debian) - if test -n "$PACKAGES_VOLATILE"; then - printf '### REMOVING UNNEEDED PACKAGES ###\n' - apt-get remove --purge -y $PACKAGES_VOLATILE - fi - if test -n "$PACKAGES_PREVIOUS"; then - printf '### RESTORING PREVIOUSLY INSTALLED PACKAGES ###\n' - apt-get install -qqy --no-install-recommends --no-upgrade $PACKAGES_PREVIOUS - fi - ;; - esac - docker-php-source delete - rm -rf /tmp/src - rm -rf /tmp/pickle - rm -rf /tmp/pickle.tmp - rm -rf "$CONFIGURE_FILE" - case "${IPE_KEEP_SYSPKG_CACHE:-}" in - 1 | y* | Y*) ;; - *) - case "$DISTRO" in - alpine) - rm -rf /var/cache/apk/* - ;; - debian) - rm -rf /var/lib/apt/lists/* - ;; - esac - rm -rf /tmp/pear - ;; - esac -} - -DEBIAN_FRONTEND=noninteractive -export DEBIAN_FRONTEND -resetIFS -mkdir -p /tmp/src -mkdir -p /tmp/pickle.tmp -IPE_ERRFLAG_FILE="$(mktemp -p /tmp/src)" -CONFIGURE_FILE=/tmp/configure-options -IPE_APK_FLAGS='' -setDistro -case "$DISTRO_VERSION" in - debian@8) - fixMaxOpenFiles || true - ;; -esac -setPHPVersionVariables -setPHPPreinstalledModules -case "$PHP_MAJMIN_VERSION" in - 505 | 506 | 700 | 701 | 702 | 703 | 704 | 800 | 801 | 802 | 803 | 804) ;; - *) - printf "### ERROR: Unsupported PHP version: %s.%s ###\n" $((PHP_MAJMIN_VERSION / 100)) $((PHP_MAJMIN_VERSION % 100)) - ;; -esac -UNNEEDED_PACKAGE_LINKS='' -processCommandArguments "$@" - -if test -z "$PHP_MODULES_TO_INSTALL"; then - exit 0 -fi - -if stringInList @fix_letsencrypt "$PHP_MODULES_TO_INSTALL"; then - # This must be the very first thing we do - fixLetsEncrypt -fi - -sortModulesToInstall - -docker-php-source extract -BUNDLED_MODULES="$(find /usr/src/php/ext -mindepth 2 -maxdepth 2 -type f -name 'config.m4' | xargs -n1 dirname | xargs -n1 basename | xargs)" -configureInstaller - -buildRequiredPackageLists $PHP_MODULES_TO_INSTALL -if test -n "$PACKAGES_PERSISTENT_PRE"; then - markPreinstalledPackagesAsUsed -fi -if test -n "$PACKAGES_PERSISTENT_NEW$PACKAGES_VOLATILE"; then - installRequiredPackages -fi -if test "$PHP_MODULES_TO_INSTALL" != '@composer'; then - setTargetTriplet -fi -if test $USE_PICKLE -gt 1; then - buildPickle -fi - -compileLibs - -for PHP_MODULE_TO_INSTALL in $PHP_MODULES_TO_INSTALL; do - case "$PHP_MODULE_TO_INSTALL" in - @fix_letsencrypt) - # Already done: it must be the first thing we do - ;; - @composer) - installComposer - ;; - *) - if stringInList "$PHP_MODULE_TO_INSTALL" "$BUNDLED_MODULES"; then - installBundledModule "$PHP_MODULE_TO_INSTALL" - else - installRemoteModule "$PHP_MODULE_TO_INSTALL" - fi - ;; - esac -done -cleanup diff --git a/php7/7.4.33/build/php/extensions/install.sh b/php7/7.4.33/build/php/extensions/install.sh deleted file mode 100644 index c663a07ca..000000000 --- a/php7/7.4.33/build/php/extensions/install.sh +++ /dev/null @@ -1,761 +0,0 @@ -#!/bin/sh - -export MC="-j$(nproc)" - -echo -echo "============================================" -echo "Install extensions from : install.sh" -echo "PHP version : ${PHP_VERSION}" -echo "Extra Extensions : ${PHP_EXTENSIONS}" -echo "Multicore Compilation : ${MC}" -echo "Container package url : ${CONTAINER_PACKAGE_URL}" -echo "Work directory : ${PWD}" -echo "============================================" -echo - - -if [ "${PHP_EXTENSIONS}" != "" ]; then - apk --update add --no-cache --virtual .build-deps autoconf g++ libtool make curl-dev gettext-dev linux-headers git -fi - - -export EXTENSIONS=",${PHP_EXTENSIONS}," - - -# -# Check if current php version is greater than or equal to -# specific version. -# -# For example, to check if current php is greater than or -# equal to PHP 7.0: -# -# isPhpVersionGreaterOrEqual 7 0 -# -# Param 1: Specific PHP Major version -# Param 2: Specific PHP Minor version -# Return : 1 if greater than or equal to, 0 if less than -# -isPhpVersionGreaterOrEqual() - { - local PHP_MAJOR_VERSION=$(php -r "echo PHP_MAJOR_VERSION;") - local PHP_MINOR_VERSION=$(php -r "echo PHP_MINOR_VERSION;") - - if [[ "$PHP_MAJOR_VERSION" -gt "$1" || "$PHP_MAJOR_VERSION" -eq "$1" && "$PHP_MINOR_VERSION" -ge "$2" ]]; then - return 1; - else - return 0; - fi -} - - -# -# Install extension from package file(.tgz), -# For example: -# -# installExtensionFromTgz redis-5.2.2 -# -# Param 1: Package name with version -# Param 2: enable options -# -installExtensionFromTgz() -{ - tgzName=$1 - result="" - extensionName="${tgzName%%-*}" - shift 1 - result=$@ - mkdir ${extensionName} - tar -xf ${tgzName}.tgz -C ${extensionName} --strip-components=1 - ( cd ${extensionName} && phpize && ./configure ${result} && make ${MC} && make install ) - - docker-php-ext-enable ${extensionName} -} - - -# install use install-php-extensions -if [[ -z "${EXTENSIONS##*,ioncube_loader,*}" ]]; then - echo "---------- Install ioncube_loader ----------" - install-php-extensions ioncube_loader -fi - -if [[ -z "${EXTENSIONS##*,imagick,*}" ]]; then - echo "---------- Install imagick ----------" - install-php-extensions imagick -fi - -if [[ -z "${EXTENSIONS##*,sourceguardian,*}" ]]; then - echo "---------- Install sourceguardian ----------" - apk add eudev-libs - install-php-extensions sourceguardian -fi - -if [[ -z "${EXTENSIONS##*,ssh2,*}" ]]; then - echo "---------- Install ssh2 ----------" - install-php-extensions ssh2 -fi - -if [[ -z "${EXTENSIONS##*,maxminddb,*}" ]]; then - echo "---------- Install maxminddb ----------" - install-php-extensions maxminddb -fi - -if [[ -z "${EXTENSIONS##*,zstd,*}" ]]; then - echo "---------- Install zstd ----------" - install-php-extensions zstd -fi - -if [[ -z "${EXTENSIONS##*,grpc,*}" ]]; then - echo "---------- Install grpc ----------" - install-php-extensions grpc - docker-php-ext-enable grpc -fi - -if [[ -z "${EXTENSIONS##*,ftp,*}" ]]; then - echo "---------- Install ftp ----------" - install-php-extensions ftp -fi - -if [[ -z "${EXTENSIONS##*,snuffleupagus,*}" ]]; then - echo "---------- Install snuffleupagus ----------" - install-php-extensions snuffleupagus -fi - -if [[ -z "${EXTENSIONS##*,pdo_oci,*}" ]]; then - echo "---------- Install pdo_oci ----------" - install-php-extensions pdo_oci -fi - -if [[ -z "${EXTENSIONS##*,oci8,*}" ]]; then - echo "---------- Install oci8 ----------" - install-php-extensions oci8 -fi -# end - - -if [[ -z "${EXTENSIONS##*,pdo_mysql,*}" ]]; then - echo "---------- Install pdo_mysql ----------" - docker-php-ext-install ${MC} pdo_mysql -fi - -if [[ -z "${EXTENSIONS##*,pcntl,*}" ]]; then - echo "---------- Install pcntl ----------" - docker-php-ext-install ${MC} pcntl -fi - -if [[ -z "${EXTENSIONS##*,mysqli,*}" ]]; then - echo "---------- Install mysqli ----------" - docker-php-ext-install ${MC} mysqli -fi - -if [[ -z "${EXTENSIONS##*,mbstring,*}" ]]; then - echo "---------- mbstring is installed ----------" -fi - -if [[ -z "${EXTENSIONS##*,exif,*}" ]]; then - echo "---------- Install exif ----------" - docker-php-ext-install ${MC} exif -fi - -if [[ -z "${EXTENSIONS##*,bcmath,*}" ]]; then - echo "---------- Install bcmath ----------" - docker-php-ext-install ${MC} bcmath -fi - -if [[ -z "${EXTENSIONS##*,calendar,*}" ]]; then - echo "---------- Install calendar ----------" - docker-php-ext-install ${MC} calendar -fi - -if [[ -z "${EXTENSIONS##*,zend_test,*}" ]]; then - echo "---------- Install zend_test ----------" - docker-php-ext-install ${MC} zend_test -fi - -if [[ -z "${EXTENSIONS##*,opcache,*}" ]]; then - echo "---------- Install opcache ----------" - docker-php-ext-install opcache -fi - -if [[ -z "${EXTENSIONS##*,sockets,*}" ]]; then - echo "---------- Install sockets ----------" - docker-php-ext-install ${MC} sockets -fi - -if [[ -z "${EXTENSIONS##*,gettext,*}" ]]; then - echo "---------- Install gettext ----------" - apk --no-cache add gettext-dev - docker-php-ext-install ${MC} gettext - -fi - -if [[ -z "${EXTENSIONS##*,shmop,*}" ]]; then - echo "---------- Install shmop ----------" - docker-php-ext-install ${MC} shmop -fi - -if [[ -z "${EXTENSIONS##*,sysvmsg,*}" ]]; then - echo "---------- Install sysvmsg ----------" - docker-php-ext-install ${MC} sysvmsg -fi - -if [[ -z "${EXTENSIONS##*,sysvsem,*}" ]]; then - echo "---------- Install sysvsem ----------" - docker-php-ext-install ${MC} sysvsem -fi - -if [[ -z "${EXTENSIONS##*,sysvshm,*}" ]]; then - echo "---------- Install sysvshm ----------" - docker-php-ext-install ${MC} sysvshm -fi - -if [[ -z "${EXTENSIONS##*,pdo_firebird,*}" ]]; then - echo "---------- Install pdo_firebird ----------" - docker-php-ext-install ${MC} pdo_firebird -fi - -if [[ -z "${EXTENSIONS##*,pdo_dblib,*}" ]]; then - echo "---------- Install pdo_dblib ----------" - docker-php-ext-install ${MC} pdo_dblib -fi - -if [[ -z "${EXTENSIONS##*,pdo_odbc,*}" ]]; then - echo "---------- Install pdo_odbc ----------" - docker-php-ext-install ${MC} pdo_odbc -fi - -if [[ -z "${EXTENSIONS##*,pdo_pgsql,*}" ]]; then - echo "---------- Install pdo_pgsql ----------" - apk --no-cache add postgresql-dev \ - && docker-php-ext-install ${MC} pdo_pgsql -fi - -if [[ -z "${EXTENSIONS##*,pgsql,*}" ]]; then - echo "---------- Install pgsql ----------" - apk --no-cache add postgresql-dev \ - && docker-php-ext-install ${MC} pgsql -fi - -if [[ -z "${EXTENSIONS##*,odbc,*}" ]]; then - echo "---------- Install odbc ----------" - docker-php-ext-install ${MC} odbc -fi - -if [[ -z "${EXTENSIONS##*,dba,*}" ]]; then - echo "---------- Install dba ----------" - docker-php-ext-install ${MC} dba -fi - -if [[ -z "${EXTENSIONS##*,interbase,*}" ]]; then - echo "---------- Install interbase ----------" - echo "Alpine linux do not support interbase/firebird!!!" - #docker-php-ext-install ${MC} interbase -fi - -if [[ -z "${EXTENSIONS##*,hprose,*}" ]]; then - echo "---------- Install hprose ----------" - printf "\n" | pecl install hprose - docker-php-ext-enable hprose -fi - -if [[ -z "${EXTENSIONS##*,gd,*}" ]]; then - echo "---------- Install gd ----------" - isPhpVersionGreaterOrEqual 7 4 - - if [[ "$?" = "1" ]]; then - # "--with-xxx-dir" was removed from php 7.4, - # issue: https://github.com/docker-library/php/issues/912 - options="--with-freetype --with-jpeg --with-webp" - else - options="--with-gd --with-freetype-dir=/usr/include/ --with-png-dir=/usr/include/ --with-jpeg-dir=/usr/include/ --with-webp-dir=/usr/include/" - fi - - apk add --no-cache \ - freetype \ - freetype-dev \ - libpng \ - libpng-dev \ - libjpeg-turbo \ - libjpeg-turbo-dev \ - libwebp-dev \ - && docker-php-ext-configure gd ${options} \ - && docker-php-ext-install ${MC} gd \ - && apk del \ - freetype-dev \ - libpng-dev \ - libjpeg-turbo-dev -fi - -if [[ -z "${EXTENSIONS##*,yaml,*}" ]]; then - echo "---------- Install yaml ----------" - apk add --no-cache yaml-dev - printf "\n" | pecl install yaml - docker-php-ext-enable yaml -fi - -if [[ -z "${EXTENSIONS##*,intl,*}" ]]; then - echo "---------- Install intl ----------" - apk add --no-cache icu-dev - docker-php-ext-install ${MC} intl -fi - -if [[ -z "${EXTENSIONS##*,bz2,*}" ]]; then - echo "---------- Install bz2 ----------" - apk add --no-cache bzip2-dev - docker-php-ext-install ${MC} bz2 -fi - -if [[ -z "${EXTENSIONS##*,soap,*}" ]]; then - echo "---------- Install soap ----------" - apk add --no-cache libxml2-dev - docker-php-ext-install ${MC} soap -fi - -if [[ -z "${EXTENSIONS##*,xsl,*}" ]]; then - echo "---------- Install xsl ----------" - apk add --no-cache libxml2-dev libxslt-dev - docker-php-ext-install ${MC} xsl -fi - -if [[ -z "${EXTENSIONS##*,xmlrpc,*}" ]]; then - echo "---------- Install xmlrpc ----------" - apk add --no-cache libxml2-dev libxslt-dev - docker-php-ext-install ${MC} xmlrpc -fi - -if [[ -z "${EXTENSIONS##*,wddx,*}" ]]; then - echo "---------- Install wddx ----------" - apk add --no-cache libxml2-dev libxslt-dev - docker-php-ext-install ${MC} wddx -fi - -if [[ -z "${EXTENSIONS##*,curl,*}" ]]; then - echo "---------- curl is installed ----------" -fi - -if [[ -z "${EXTENSIONS##*,readline,*}" ]]; then - echo "---------- Install readline ----------" - apk add --no-cache readline-dev - apk add --no-cache libedit-dev - docker-php-ext-install ${MC} readline -fi - -if [[ -z "${EXTENSIONS##*,snmp,*}" ]]; then - echo "---------- Install snmp ----------" - apk add --no-cache net-snmp-dev - docker-php-ext-install ${MC} snmp -fi - -if [[ -z "${EXTENSIONS##*,pspell,*}" ]]; then - echo "---------- Install pspell ----------" - apk add --no-cache aspell-dev - apk add --no-cache aspell-en - docker-php-ext-install ${MC} pspell -fi - -if [[ -z "${EXTENSIONS##*,recode,*}" ]]; then - echo "---------- Install recode ----------" - apk add --no-cache recode-dev - docker-php-ext-install ${MC} recode -fi - -if [[ -z "${EXTENSIONS##*,tidy,*}" ]]; then - echo "---------- Install tidy ----------" - apk add --no-cache tidyhtml-dev - - # Fix: https://github.com/htacg/tidy-html5/issues/235 - ln -s /usr/include/tidybuffio.h /usr/include/buffio.h - - docker-php-ext-install ${MC} tidy -fi - -if [[ -z "${EXTENSIONS##*,gmp,*}" ]]; then - echo "---------- Install gmp ----------" - apk add --no-cache gmp-dev - docker-php-ext-install ${MC} gmp -fi - -if [[ -z "${EXTENSIONS##*,imap,*}" ]]; then - echo "---------- Install imap ----------" - apk add --no-cache imap-dev - docker-php-ext-configure imap --with-imap --with-imap-ssl - docker-php-ext-install ${MC} imap -fi - -if [[ -z "${EXTENSIONS##*,ldap,*}" ]]; then - echo "---------- Install ldap ----------" - apk add --no-cache ldb-dev - apk add --no-cache openldap-dev - docker-php-ext-install ${MC} ldap -fi - -if [[ -z "${EXTENSIONS##*,psr,*}" ]]; then - echo "---------- Install psr ----------" - printf "\n" | pecl install psr - docker-php-ext-enable psr -fi - -if [[ -z "${EXTENSIONS##*,imagick,*}" ]]; then - echo "---------- Install imagick ----------" - apk add --no-cache file-dev - apk add --no-cache imagemagick-dev - printf "\n" | pecl install imagick-3.4.4 - docker-php-ext-enable imagick -fi - -if [[ -z "${EXTENSIONS##*,rar,*}" ]]; then - echo "---------- Install rar ----------" - printf "\n" | pecl install rar - docker-php-ext-enable rar -fi - -if [[ -z "${EXTENSIONS##*,ast,*}" ]]; then - echo "---------- Install ast ----------" - printf "\n" | pecl install ast - docker-php-ext-enable ast -fi - -if [[ -z "${EXTENSIONS##*,msgpack,*}" ]]; then - echo "---------- Install msgpack ----------" - printf "\n" | pecl install msgpack - docker-php-ext-enable msgpack -fi - -if [[ -z "${EXTENSIONS##*,igbinary,*}" ]]; then - echo "---------- Install igbinary ----------" - printf "\n" | pecl install igbinary - docker-php-ext-enable igbinary -fi - - -if [[ -z "${EXTENSIONS##*,protobuf,*}" ]]; then - isPhpVersionGreaterOrEqual 7 0 - if [[ "$?" = "1" ]]; then - echo "---------- Install protobuf ----------" - printf "\n" | pecl install protobuf - docker-php-ext-enable protobuf - else - echo "yar requires PHP >= 7.0.0, installed version is ${PHP_VERSION}" - fi -fi - -if [[ -z "${EXTENSIONS##*,yac,*}" ]]; then - isPhpVersionGreaterOrEqual 7 0 - if [[ "$?" = "1" ]]; then - echo "---------- Install yac ----------" - printf "\n" | pecl install yac-2.0.2 - docker-php-ext-enable yac - else - echo "yar requires PHP >= 7.0.0, installed version is ${PHP_VERSION}" - fi -fi - -if [[ -z "${EXTENSIONS##*,yar,*}" ]]; then - isPhpVersionGreaterOrEqual 7 0 - if [[ "$?" = "1" ]]; then - echo "---------- Install yar ----------" - printf "\n" | pecl install yar - docker-php-ext-enable yar - else - echo "yar requires PHP >= 7.0.0, installed version is ${PHP_VERSION}" - fi - -fi - - - -if [[ -z "${EXTENSIONS##*,yaconf,*}" ]]; then - isPhpVersionGreaterOrEqual 7 0 - if [[ "$?" = "1" ]]; then - echo "---------- Install yaconf ----------" - printf "\n" | pecl install yaconf - docker-php-ext-enable yaconf - else - echo "yar requires PHP >= 7.0.0, installed version is ${PHP_VERSION}" - fi -fi - -if [[ -z "${EXTENSIONS##*,seaslog,*}" ]]; then - echo "---------- Install seaslog ----------" - printf "\n" | pecl install seaslog - docker-php-ext-enable seaslog -fi - -if [[ -z "${EXTENSIONS##*,varnish,*}" ]]; then - echo "---------- Install varnish ----------" - apk add --no-cache varnish-dev - printf "\n" | pecl install varnish - docker-php-ext-enable varnish -fi - -if [[ -z "${EXTENSIONS##*,pdo_sqlsrv,*}" ]]; then - isPhpVersionGreaterOrEqual 7 1 - if [[ "$?" = "1" ]]; then - echo "---------- Install pdo_sqlsrv ----------" - install-php-extensions pdo_sqlsrv - else - echo "pdo_sqlsrv requires PHP >= 7.1.0, installed version is ${PHP_VERSION}" - fi -fi - -if [[ -z "${EXTENSIONS##*,sqlsrv,*}" ]]; then - isPhpVersionGreaterOrEqual 7 1 - if [[ "$?" = "1" ]]; then - echo "---------- Install sqlsrv ----------" - install-php-extensions sqlsrv - else - echo "sqlsrv requires PHP >= 7.1.0, installed version is ${PHP_VERSION}" - fi -fi - -if [[ -z "${EXTENSIONS##*,mcrypt,*}" ]]; then - isPhpVersionGreaterOrEqual 7 0 - if [[ "$?" = "1" ]]; then - echo "---------- Install mcrypt ----------" - apk add --no-cache libmcrypt-dev libmcrypt re2c - printf "\n" |pecl install mcrypt - docker-php-ext-enable mcrypt - else - echo "---------- Install mcrypt ----------" - apk add --no-cache libmcrypt-dev \ - && docker-php-ext-install ${MC} mcrypt - fi -fi - -if [[ -z "${EXTENSIONS##*,mysql,*}" ]]; then - isPhpVersionGreaterOrEqual 7 0 - - if [[ "$?" = "1" ]]; then - echo "---------- mysql was REMOVED from PHP 7.0.0 ----------" - else - echo "---------- Install mysql ----------" - docker-php-ext-install ${MC} mysql - fi -fi - -if [[ -z "${EXTENSIONS##*,sodium,*}" ]]; then - isPhpVersionGreaterOrEqual 7 2 - if [[ "$?" = "1" ]]; then - echo - echo "Sodium is bundled with PHP from PHP 7.2.0" - echo - else - echo "---------- Install sodium ----------" - apk add --no-cache libsodium-dev - docker-php-ext-install ${MC} sodium - fi -fi - -if [[ -z "${EXTENSIONS##*,amqp,*}" ]]; then - echo "---------- Install amqp ----------" - apk add --no-cache rabbitmq-c-dev - installExtensionFromTgz amqp-1.10.2 -fi - -if [[ -z "${EXTENSIONS##*,redis,*}" ]]; then - echo "---------- Install redis ----------" - installExtensionFromTgz redis-5.3.7 -fi - -if [[ -z "${EXTENSIONS##*,apcu,*}" ]]; then - echo "---------- Install apcu ----------" - installExtensionFromTgz apcu-5.1.17 -fi - -if [[ -z "${EXTENSIONS##*,memcached,*}" ]]; then - echo "---------- Install memcached ----------" - apk add --no-cache libmemcached-dev zlib-dev - isPhpVersionGreaterOrEqual 7 0 - - if [[ "$?" = "1" ]]; then - printf "\n" | pecl install memcached-3.1.3 - else - printf "\n" | pecl install memcached-2.2.0 - fi - - docker-php-ext-enable memcached -fi - -if [[ -z "${EXTENSIONS##*,memcache,*}" ]]; then - echo "---------- Install memcache ----------" - isPhpVersionGreaterOrEqual 7 0 - if [[ "$?" = "1" ]]; then - installExtensionFromTgz memcache-4.0.5.2 - else - installExtensionFromTgz memcache-2.2.6 - fi -fi - -if [[ -z "${EXTENSIONS##*,xdebug,*}" ]]; then - echo "---------- Install xdebug ----------" - isPhpVersionGreaterOrEqual 7 0 - - if [[ "$?" = "1" ]]; then - isPhpVersionGreaterOrEqual 7 4 - if [[ "$?" = "1" ]]; then - installExtensionFromTgz xdebug-2.9.2 - else - installExtensionFromTgz xdebug-2.6.1 - fi - else - installExtensionFromTgz xdebug-2.5.5 - fi -fi - -if [[ -z "${EXTENSIONS##*,event,*}" ]]; then - echo "---------- Install event ----------" - apk add --no-cache libevent-dev - export is_sockets_installed=$(php -r "echo extension_loaded('sockets');") - - if [[ "${is_sockets_installed}" = "" ]]; then - echo "---------- event is depend on sockets, install sockets first ----------" - docker-php-ext-install sockets - fi - - echo "---------- Install event again ----------" - mkdir event - tar -xf event-3.0.8.tgz -C event --strip-components=1 - cd event && phpize && ./configure && make && make install - - docker-php-ext-enable --ini-name event.ini event -fi - -if [[ -z "${EXTENSIONS##*,mongodb,*}" ]]; then - echo "---------- Install mongodb ----------" - apk add --no-cache openssl-dev - installExtensionFromTgz mongodb-1.7.4 - docker-php-ext-configure mongodb --with-mongodb-ssl=openssl -fi - -if [[ -z "${EXTENSIONS##*,yaf,*}" ]]; then - echo "---------- Install yaf ----------" - isPhpVersionGreaterOrEqual 7 0 - - if [[ "$?" = "1" ]]; then - printf "\n" | pecl install yaf - docker-php-ext-enable yaf - else - installExtensionFromTgz yaf-2.3.5 - fi -fi - - -if [[ -z "${EXTENSIONS##*,swoole,*}" ]]; then - echo "---------- Install swoole ----------" - # Fix: Refer to the line containing "swoole@alpine)" in file "./install-php-extensions" - apk add --no-cache libstdc++ - - isPhpVersionGreaterOrEqual 7 0 - - if [[ "$?" = "1" ]]; then - installExtensionFromTgz swoole-4.8.11 --enable-openssl - else - installExtensionFromTgz swoole-2.0.11 - fi -fi - -if [[ -z "${EXTENSIONS##*,zip,*}" ]]; then - echo "---------- Install zip ----------" - # Fix: https://github.com/docker-library/php/issues/797 - apk add --no-cache libzip-dev - - isPhpVersionGreaterOrEqual 7 4 - if [[ "$?" != "1" ]]; then - docker-php-ext-configure zip --with-libzip=/usr/include - fi - - docker-php-ext-install ${MC} zip -fi - -if [[ -z "${EXTENSIONS##*,xhprof,*}" ]]; then - echo "---------- Install XHProf ----------" - - isPhpVersionGreaterOrEqual 7 0 - - if [[ "$?" = "1" ]]; then - mkdir xhprof \ - && tar -xf xhprof-2.2.0.tgz -C xhprof --strip-components=1 \ - && ( cd xhprof/extension/ && phpize && ./configure && make ${MC} && make install ) \ - && docker-php-ext-enable xhprof - else - echo "---------- PHP Version>= 7.0----------" - fi - -fi - -if [[ -z "${EXTENSIONS##*,xlswriter,*}" ]]; then - echo "---------- Install xlswriter ----------" - isPhpVersionGreaterOrEqual 7 0 - - if [[ "$?" = "1" ]]; then - printf "\n" | pecl install xlswriter - docker-php-ext-enable xlswriter - else - echo "---------- PHP Version>= 7.0----------" - fi -fi - -if [[ -z "${EXTENSIONS##*,rdkafka,*}" ]]; then - echo "---------- Install rdkafka ----------" - isPhpVersionGreaterOrEqual 5 6 - - if [[ "$?" = "1" ]]; then - apk add librdkafka-dev - printf "\n" | pecl install rdkafka - docker-php-ext-enable rdkafka - else - echo "---------- PHP Version>= 5.6----------" - fi -fi - -if [[ -z "${EXTENSIONS##*,zookeeper,*}" ]]; then - echo "---------- Install zookeeper ----------" - isPhpVersionGreaterOrEqual 7 0 - - if [[ "$?" = "1" ]]; then - apk add re2c - apk add libzookeeper-dev --repository http://${CONTAINER_PACKAGE_URL}/alpine/edge/testing/ - printf "\n" | pecl install zookeeper - docker-php-ext-enable zookeeper - else - echo "---------- PHP Version>= 7.0----------" - fi -fi - -if [[ -z "${EXTENSIONS##*,phalcon,*}" ]]; then - echo "---------- Install phalcon ----------" - isPhpVersionGreaterOrEqual 7 2 - - if [[ "$?" = "1" ]]; then - printf "\n" | pecl install phalcon - docker-php-ext-enable psr - docker-php-ext-enable phalcon - else - echo "---------- PHP Version>= 7.2----------" - fi -fi - -if [[ -z "${EXTENSIONS##*,sdebug,*}" ]]; then - echo "---------- Install sdebug ----------" - isPhpVersionGreaterOrEqual 7 2 - - if [[ "$?" = "1" ]]; then - curl -SL "https://github.com/swoole/sdebug/archive/sdebug_2_9-beta.tar.gz" -o sdebug.tar.gz \ - && mkdir -p sdebug \ - && tar -xf sdebug.tar.gz -C sdebug --strip-components=1 \ - && rm sdebug.tar.gz \ - && ( \ - cd sdebug \ - && phpize \ - && ./configure --enable-xdebug \ - && make clean && make && make install \ - ) \ - && docker-php-ext-enable xdebug - else - echo "---------- PHP Version>= 7.2----------" - fi -fi - -if [ "${PHP_EXTENSIONS}" != "" ]; then - apk del .build-deps \ - && docker-php-source delete -fi diff --git a/php7/7.4.33/build/php/extensions/memcache-2.2.6.tgz b/php7/7.4.33/build/php/extensions/memcache-2.2.6.tgz deleted file mode 100644 index 841d0296e..000000000 Binary files a/php7/7.4.33/build/php/extensions/memcache-2.2.6.tgz and /dev/null differ diff --git a/php7/7.4.33/build/php/extensions/memcache-4.0.5.2.tgz b/php7/7.4.33/build/php/extensions/memcache-4.0.5.2.tgz deleted file mode 100644 index 1f7d370b3..000000000 Binary files a/php7/7.4.33/build/php/extensions/memcache-4.0.5.2.tgz and /dev/null differ diff --git a/php7/7.4.33/build/php/extensions/mongodb-1.7.4.tgz b/php7/7.4.33/build/php/extensions/mongodb-1.7.4.tgz deleted file mode 100644 index 94528560b..000000000 Binary files a/php7/7.4.33/build/php/extensions/mongodb-1.7.4.tgz and /dev/null differ diff --git a/php7/7.4.33/build/php/extensions/redis-5.3.7.tgz b/php7/7.4.33/build/php/extensions/redis-5.3.7.tgz deleted file mode 100644 index db2187b4d..000000000 Binary files a/php7/7.4.33/build/php/extensions/redis-5.3.7.tgz and /dev/null differ diff --git a/php7/7.4.33/build/php/extensions/swoole-2.0.11.tgz b/php7/7.4.33/build/php/extensions/swoole-2.0.11.tgz deleted file mode 100644 index a155450ce..000000000 Binary files a/php7/7.4.33/build/php/extensions/swoole-2.0.11.tgz and /dev/null differ diff --git a/php7/7.4.33/build/php/extensions/swoole-4.8.11.tgz b/php7/7.4.33/build/php/extensions/swoole-4.8.11.tgz deleted file mode 100644 index 01674cdc9..000000000 Binary files a/php7/7.4.33/build/php/extensions/swoole-4.8.11.tgz and /dev/null differ diff --git a/php7/7.4.33/build/php/extensions/xdebug-2.5.5.tgz b/php7/7.4.33/build/php/extensions/xdebug-2.5.5.tgz deleted file mode 100644 index d62c7ff63..000000000 Binary files a/php7/7.4.33/build/php/extensions/xdebug-2.5.5.tgz and /dev/null differ diff --git a/php7/7.4.33/build/php/extensions/xdebug-2.6.1.tgz b/php7/7.4.33/build/php/extensions/xdebug-2.6.1.tgz deleted file mode 100644 index c756fba39..000000000 Binary files a/php7/7.4.33/build/php/extensions/xdebug-2.6.1.tgz and /dev/null differ diff --git a/php7/7.4.33/build/php/extensions/xdebug-2.9.2.tgz b/php7/7.4.33/build/php/extensions/xdebug-2.9.2.tgz deleted file mode 100644 index 8131fff35..000000000 Binary files a/php7/7.4.33/build/php/extensions/xdebug-2.9.2.tgz and /dev/null differ diff --git a/php7/7.4.33/build/php/extensions/xhprof-2.2.0.tgz b/php7/7.4.33/build/php/extensions/xhprof-2.2.0.tgz deleted file mode 100644 index 2614df31a..000000000 Binary files a/php7/7.4.33/build/php/extensions/xhprof-2.2.0.tgz and /dev/null differ diff --git a/php7/7.4.33/build/php/extensions/yaf-2.3.5.tgz b/php7/7.4.33/build/php/extensions/yaf-2.3.5.tgz deleted file mode 100644 index d965a0f19..000000000 Binary files a/php7/7.4.33/build/php/extensions/yaf-2.3.5.tgz and /dev/null differ diff --git a/php7/7.4.33/build/php/php-fpm.conf b/php7/7.4.33/build/php/php-fpm.conf deleted file mode 100644 index 131835891..000000000 --- a/php7/7.4.33/build/php/php-fpm.conf +++ /dev/null @@ -1,423 +0,0 @@ -; Start a new pool named 'www'. -; the variable $pool can be used in any directive and will be replaced by the -; pool name ('www' here) -[www] - -; Per pool prefix -; It only applies on the following directives: -; - 'access.log' -; - 'slowlog' -; - 'listen' (unixsocket) -; - 'chroot' -; - 'chdir' -; - 'php_values' -; - 'php_admin_values' -; When not set, the global prefix (or NONE) applies instead. -; Note: This directive can also be relative to the global prefix. -; Default Value: none -;prefix = /path/to/pools/$pool - -; Unix user/group of processes -; Note: The user is mandatory. If the group is not set, the default user's group -; will be used. -user = www-data -group = www-data - -; The address on which to accept FastCGI requests. -; Valid syntaxes are: -; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on -; a specific port; -; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on -; a specific port; -; 'port' - to listen on a TCP socket to all addresses -; (IPv6 and IPv4-mapped) on a specific port; -; '/path/to/unix/socket' - to listen on a unix socket. -; Note: This value is mandatory. -listen = 127.0.0.1:9000 - -; Set listen(2) backlog. -; Default Value: 511 (-1 on FreeBSD and OpenBSD) -;listen.backlog = 511 - -; Set permissions for unix socket, if one is used. In Linux, read/write -; permissions must be set in order to allow connections from a web server. Many -; BSD-derived systems allow connections regardless of permissions. -; Default Values: user and group are set as the running user -; mode is set to 0660 -;listen.owner = www-data -;listen.group = www-data -;listen.mode = 0660 -; When POSIX Access Control Lists are supported you can set them using -; these options, value is a comma separated list of user/group names. -; When set, listen.owner and listen.group are ignored -;listen.acl_users = -;listen.acl_groups = - -; List of addresses (IPv4/IPv6) of FastCGI clients which are allowed to connect. -; Equivalent to the FCGI_WEB_SERVER_ADDRS environment variable in the original -; PHP FCGI (5.2.2+). Makes sense only with a tcp listening socket. Each address -; must be separated by a comma. If this value is left blank, connections will be -; accepted from any ip address. -; Default Value: any -;listen.allowed_clients = 127.0.0.1 - -; Specify the nice(2) priority to apply to the pool processes (only if set) -; The value can vary from -19 (highest priority) to 20 (lower priority) -; Note: - It will only work if the FPM master process is launched as root -; - The pool processes will inherit the master process priority -; unless it specified otherwise -; Default Value: no set -; process.priority = -19 - -; Set the process dumpable flag (PR_SET_DUMPABLE prctl) even if the process user -; or group is differrent than the master process user. It allows to create process -; core dump and ptrace the process for the pool user. -; Default Value: no -; process.dumpable = yes - -; Choose how the process manager will control the number of child processes. -; Possible Values: -; static - a fixed number (pm.max_children) of child processes; -; dynamic - the number of child processes are set dynamically based on the -; following directives. With this process management, there will be -; always at least 1 children. -; pm.max_children - the maximum number of children that can -; be alive at the same time. -; pm.start_servers - the number of children created on startup. -; pm.min_spare_servers - the minimum number of children in 'idle' -; state (waiting to process). If the number -; of 'idle' processes is less than this -; number then some children will be created. -; pm.max_spare_servers - the maximum number of children in 'idle' -; state (waiting to process). If the number -; of 'idle' processes is greater than this -; number then some children will be killed. -; ondemand - no children are created at startup. Children will be forked when -; new requests will connect. The following parameter are used: -; pm.max_children - the maximum number of children that -; can be alive at the same time. -; pm.process_idle_timeout - The number of seconds after which -; an idle process will be killed. -; Note: This value is mandatory. -pm = dynamic - -; The number of child processes to be created when pm is set to 'static' and the -; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'. -; This value sets the limit on the number of simultaneous requests that will be -; served. Equivalent to the ApacheMaxClients directive with mpm_prefork. -; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP -; CGI. The below defaults are based on a server without much resources. Don't -; forget to tweak pm.* to fit your needs. -; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand' -; Note: This value is mandatory. -pm.max_children = 10 - -; The number of child processes created on startup. -; Note: Used only when pm is set to 'dynamic' -; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2 -pm.start_servers = 2 - -; The desired minimum number of idle server processes. -; Note: Used only when pm is set to 'dynamic' -; Note: Mandatory when pm is set to 'dynamic' -pm.min_spare_servers = 1 - -; The desired maximum number of idle server processes. -; Note: Used only when pm is set to 'dynamic' -; Note: Mandatory when pm is set to 'dynamic' -pm.max_spare_servers = 3 - -; The number of seconds after which an idle process will be killed. -; Note: Used only when pm is set to 'ondemand' -; Default Value: 10s -;pm.process_idle_timeout = 10s; - -; The number of requests each child process should execute before respawning. -; This can be useful to work around memory leaks in 3rd party libraries. For -; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS. -; Default Value: 0 -;pm.max_requests = 500 - -; The URI to view the FPM status page. If this value is not set, no URI will be -; recognized as a status page. It shows the following informations: -; pool - the name of the pool; -; process manager - static, dynamic or ondemand; -; start time - the date and time FPM has started; -; start since - number of seconds since FPM has started; -; accepted conn - the number of request accepted by the pool; -; listen queue - the number of request in the queue of pending -; connections (see backlog in listen(2)); -; max listen queue - the maximum number of requests in the queue -; of pending connections since FPM has started; -; listen queue len - the size of the socket queue of pending connections; -; idle processes - the number of idle processes; -; active processes - the number of active processes; -; total processes - the number of idle + active processes; -; max active processes - the maximum number of active processes since FPM -; has started; -; max children reached - number of times, the process limit has been reached, -; when pm tries to start more children (works only for -; pm 'dynamic' and 'ondemand'); -; Value are updated in real time. -; Example output: -; pool: www -; process manager: static -; start time: 01/Jul/2011:17:53:49 +0200 -; start since: 62636 -; accepted conn: 190460 -; listen queue: 0 -; max listen queue: 1 -; listen queue len: 42 -; idle processes: 4 -; active processes: 11 -; total processes: 15 -; max active processes: 12 -; max children reached: 0 -; -; By default the status page output is formatted as text/plain. Passing either -; 'html', 'xml' or 'json' in the query string will return the corresponding -; output syntax. Example: -; http://www.foo.bar/status -; http://www.foo.bar/status?json -; http://www.foo.bar/status?html -; http://www.foo.bar/status?xml -; -; By default the status page only outputs short status. Passing 'full' in the -; query string will also return status for each pool process. -; Example: -; http://www.foo.bar/status?full -; http://www.foo.bar/status?json&full -; http://www.foo.bar/status?html&full -; http://www.foo.bar/status?xml&full -; The Full status returns for each process: -; pid - the PID of the process; -; state - the state of the process (Idle, Running, ...); -; start time - the date and time the process has started; -; start since - the number of seconds since the process has started; -; requests - the number of requests the process has served; -; request duration - the duration in µs of the requests; -; request method - the request method (GET, POST, ...); -; request URI - the request URI with the query string; -; content length - the content length of the request (only with POST); -; user - the user (PHP_AUTH_USER) (or '-' if not set); -; script - the main script called (or '-' if not set); -; last request cpu - the %cpu the last request consumed -; it's always 0 if the process is not in Idle state -; because CPU calculation is done when the request -; processing has terminated; -; last request memory - the max amount of memory the last request consumed -; it's always 0 if the process is not in Idle state -; because memory calculation is done when the request -; processing has terminated; -; If the process is in Idle state, then informations are related to the -; last request the process has served. Otherwise informations are related to -; the current request being served. -; Example output: -; ************************ -; pid: 31330 -; state: Running -; start time: 01/Jul/2011:17:53:49 +0200 -; start since: 63087 -; requests: 12808 -; request duration: 1250261 -; request method: GET -; request URI: /test_mem.php?N=10000 -; content length: 0 -; user: - -; script: /home/fat/web/docs/php/test_mem.php -; last request cpu: 0.00 -; last request memory: 0 -; -; Note: There is a real-time FPM status monitoring sample web page available -; It's available in: /usr/local/share/php/fpm/status.html -; -; Note: The value must start with a leading slash (/). The value can be -; anything, but it may not be a good idea to use the .php extension or it -; may conflict with a real PHP file. -; Default Value: not set -;pm.status_path = /status - -; The ping URI to call the monitoring page of FPM. If this value is not set, no -; URI will be recognized as a ping page. This could be used to test from outside -; that FPM is alive and responding, or to -; - create a graph of FPM availability (rrd or such); -; - remove a server from a group if it is not responding (load balancing); -; - trigger alerts for the operating team (24/7). -; Note: The value must start with a leading slash (/). The value can be -; anything, but it may not be a good idea to use the .php extension or it -; may conflict with a real PHP file. -; Default Value: not set -;ping.path = /ping - -; This directive may be used to customize the response of a ping request. The -; response is formatted as text/plain with a 200 response code. -; Default Value: pong -;ping.response = pong - -; The access log file -; Default: not set -;access.log = log/$pool.access.log - -; The access log format. -; The following syntax is allowed -; %%: the '%' character -; %C: %CPU used by the request -; it can accept the following format: -; - %{user}C for user CPU only -; - %{system}C for system CPU only -; - %{total}C for user + system CPU (default) -; %d: time taken to serve the request -; it can accept the following format: -; - %{seconds}d (default) -; - %{miliseconds}d -; - %{mili}d -; - %{microseconds}d -; - %{micro}d -; %e: an environment variable (same as $_ENV or $_SERVER) -; it must be associated with embraces to specify the name of the env -; variable. Some exemples: -; - server specifics like: %{REQUEST_METHOD}e or %{SERVER_PROTOCOL}e -; - HTTP headers like: %{HTTP_HOST}e or %{HTTP_USER_AGENT}e -; %f: script filename -; %l: content-length of the request (for POST request only) -; %m: request method -; %M: peak of memory allocated by PHP -; it can accept the following format: -; - %{bytes}M (default) -; - %{kilobytes}M -; - %{kilo}M -; - %{megabytes}M -; - %{mega}M -; %n: pool name -; %o: output header -; it must be associated with embraces to specify the name of the header: -; - %{Content-Type}o -; - %{X-Powered-By}o -; - %{Transfert-Encoding}o -; - .... -; %p: PID of the child that serviced the request -; %P: PID of the parent of the child that serviced the request -; %q: the query string -; %Q: the '?' character if query string exists -; %r: the request URI (without the query string, see %q and %Q) -; %R: remote IP address -; %s: status (response code) -; %t: server time the request was received -; it can accept a strftime(3) format: -; %d/%b/%Y:%H:%M:%S %z (default) -; The strftime(3) format must be encapsuled in a %{}t tag -; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t -; %T: time the log has been written (the request has finished) -; it can accept a strftime(3) format: -; %d/%b/%Y:%H:%M:%S %z (default) -; The strftime(3) format must be encapsuled in a %{}t tag -; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t -; %u: remote user -; -; Default: "%R - %u %t \"%m %r\" %s" -;access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%" - -; The log file for slow requests -; Default Value: not set -; Note: slowlog is mandatory if request_slowlog_timeout is set -slowlog = /var/log/php/fpm.slow.log - -; The timeout for serving a single request after which a PHP backtrace will be -; dumped to the 'slowlog' file. A value of '0s' means 'off'. -; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) -; Default Value: 0 -request_slowlog_timeout = 3 - -; Depth of slow log stack trace. -; Default Value: 20 -;request_slowlog_trace_depth = 20 - -; The timeout for serving a single request after which the worker process will -; be killed. This option should be used when the 'max_execution_time' ini option -; does not stop script execution for some reason. A value of '0' means 'off'. -; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) -; Default Value: 0 -;request_terminate_timeout = 0 - -; Set open file descriptor rlimit. -; Default Value: system defined value -;rlimit_files = 1024 - -; Set max core size rlimit. -; Possible Values: 'unlimited' or an integer greater or equal to 0 -; Default Value: system defined value -;rlimit_core = 0 - -; Chroot to this directory at the start. This value must be defined as an -; absolute path. When this value is not set, chroot is not used. -; Note: you can prefix with '$prefix' to chroot to the pool prefix or one -; of its subdirectories. If the pool prefix is not set, the global prefix -; will be used instead. -; Note: chrooting is a great security feature and should be used whenever -; possible. However, all PHP paths will be relative to the chroot -; (error_log, sessions.save_path, ...). -; Default Value: not set -;chroot = - -; Chdir to this directory at the start. -; Note: relative path can be used. -; Default Value: current directory or / when chroot -;chdir = /var/www - -; Redirect worker stdout and stderr into main error log. If not set, stdout and -; stderr will be redirected to /dev/null according to FastCGI specs. -; Note: on highloaded environement, this can cause some delay in the page -; process time (several ms). -; Default Value: no -catch_workers_output = yes - -; Clear environment in FPM workers -; Prevents arbitrary environment variables from reaching FPM worker processes -; by clearing the environment in workers before env vars specified in this -; pool configuration are added. -; Setting to "no" will make all environment variables available to PHP code -; via getenv(), $_ENV and $_SERVER. -; Default Value: yes -;clear_env = no - -; Limits the extensions of the main script FPM will allow to parse. This can -; prevent configuration mistakes on the web server side. You should only limit -; FPM to .php extensions to prevent malicious users to use other extensions to -; execute php code. -; Note: set an empty value to allow all extensions. -; Default Value: .php -;security.limit_extensions = .php .php3 .php4 .php5 .php7 - -; Pass environment variables like LD_LIBRARY_PATH. All $VARIABLEs are taken from -; the current environment. -; Default Value: clean env -;env[HOSTNAME] = $HOSTNAME -;env[PATH] = /usr/local/bin:/usr/bin:/bin -;env[TMP] = /tmp -;env[TMPDIR] = /tmp -;env[TEMP] = /tmp - -; Additional php.ini defines, specific to this pool of workers. These settings -; overwrite the values previously defined in the php.ini. The directives are the -; same as the PHP SAPI: -; php_value/php_flag - you can set classic ini defines which can -; be overwritten from PHP call 'ini_set'. -; php_admin_value/php_admin_flag - these directives won't be overwritten by -; PHP call 'ini_set' -; For php_*flag, valid values are on, off, 1, 0, true, false, yes or no. - -; Defining 'extension' will load the corresponding shared extension from -; extension_dir. Defining 'disable_functions' or 'disable_classes' will not -; overwrite previously defined php.ini values, but will append the new value -; instead. - -; Note: path INI options can be relative and will be expanded with the prefix -; (pool, global or /usr/local) - -; Default Value: nothing is defined by default except the values in php.ini and -; specified at startup with the -d argument -;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com -;php_flag[display_errors] = off -;php_admin_value[error_log] = /var/log/fpm-php.www.log -;php_admin_flag[log_errors] = on -;php_admin_value[memory_limit] = 32M diff --git a/php7/7.4.33/build/php/php.ini b/php7/7.4.33/build/php/php.ini deleted file mode 100644 index b6b0aee69..000000000 --- a/php7/7.4.33/build/php/php.ini +++ /dev/null @@ -1,1933 +0,0 @@ -[PHP] - -;;;;;;;;;;;;;;;;;;; -; About php.ini ; -;;;;;;;;;;;;;;;;;;; -; PHP's initialization file, generally called php.ini, is responsible for -; configuring many of the aspects of PHP's behavior. - -; PHP attempts to find and load this configuration from a number of locations. -; The following is a summary of its search order: -; 1. SAPI module specific location. -; 2. The PHPRC environment variable. (As of PHP 5.2.0) -; 3. A number of predefined registry keys on Windows (As of PHP 5.2.0) -; 4. Current working directory (except CLI) -; 5. The web server's directory (for SAPI modules), or directory of PHP -; (otherwise in Windows) -; 6. The directory from the --with-config-file-path compile time option, or the -; Windows directory (C:\windows or C:\winnt) -; See the PHP docs for more specific information. -; http://php.net/configuration.file - -; The syntax of the file is extremely simple. Whitespace and lines -; beginning with a semicolon are silently ignored (as you probably guessed). -; Section headers (e.g. [Foo]) are also silently ignored, even though -; they might mean something in the future. - -; Directives following the section heading [PATH=/www/mysite] only -; apply to PHP files in the /www/mysite directory. Directives -; following the section heading [HOST=www.example.com] only apply to -; PHP files served from www.example.com. Directives set in these -; special sections cannot be overridden by user-defined INI files or -; at runtime. Currently, [PATH=] and [HOST=] sections only work under -; CGI/FastCGI. -; http://php.net/ini.sections - -; Directives are specified using the following syntax: -; directive = value -; Directive names are *case sensitive* - foo=bar is different from FOO=bar. -; Directives are variables used to configure PHP or PHP extensions. -; There is no name validation. If PHP can't find an expected -; directive because it is not set or is mistyped, a default value will be used. - -; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one -; of the INI constants (On, Off, True, False, Yes, No and None) or an expression -; (e.g. E_ALL & ~E_NOTICE), a quoted string ("bar"), or a reference to a -; previously set variable or directive (e.g. ${foo}) - -; Expressions in the INI file are limited to bitwise operators and parentheses: -; | bitwise OR -; ^ bitwise XOR -; & bitwise AND -; ~ bitwise NOT -; ! boolean NOT - -; Boolean flags can be turned on using the values 1, On, True or Yes. -; They can be turned off using the values 0, Off, False or No. - -; An empty string can be denoted by simply not writing anything after the equal -; sign, or by using the None keyword: - -; foo = ; sets foo to an empty string -; foo = None ; sets foo to an empty string -; foo = "None" ; sets foo to the string 'None' - -; If you use constants in your value, and these constants belong to a -; dynamically loaded extension (either a PHP extension or a Zend extension), -; you may only use these constants *after* the line that loads the extension. - -;;;;;;;;;;;;;;;;;;; -; About this file ; -;;;;;;;;;;;;;;;;;;; -; PHP comes packaged with two INI files. One that is recommended to be used -; in production environments and one that is recommended to be used in -; development environments. - -; php.ini-production contains settings which hold security, performance and -; best practices at its core. But please be aware, these settings may break -; compatibility with older or less security conscience applications. We -; recommending using the production ini in production and testing environments. - -; php.ini-development is very similar to its production variant, except it is -; much more verbose when it comes to errors. We recommend using the -; development version only in development environments, as errors shown to -; application users can inadvertently leak otherwise secure information. - -; This is php.ini-production INI file. - -;;;;;;;;;;;;;;;;;;; -; Quick Reference ; -;;;;;;;;;;;;;;;;;;; -; The following are all the settings which are different in either the production -; or development versions of the INIs with respect to PHP's default behavior. -; Please see the actual settings later in the document for more details as to why -; we recommend these changes in PHP's behavior. - -; display_errors -; Default Value: On -; Development Value: On -; Production Value: Off - -; display_startup_errors -; Default Value: Off -; Development Value: On -; Production Value: Off - -; error_reporting -; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT - -; html_errors -; Default Value: On -; Development Value: On -; Production value: On - -; log_errors -; Default Value: Off -; Development Value: On -; Production Value: On - -; max_input_time -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) - -; output_buffering -; Default Value: Off -; Development Value: 4096 -; Production Value: 4096 - -; register_argc_argv -; Default Value: On -; Development Value: Off -; Production Value: Off - -; request_order -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" - -; session.gc_divisor -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 - -; session.sid_bits_per_character -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 - -; short_open_tag -; Default Value: On -; Development Value: Off -; Production Value: Off - -; track_errors -; Default Value: Off -; Development Value: On -; Production Value: Off - -; variables_order -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS" - -;;;;;;;;;;;;;;;;;;;; -; php.ini Options ; -;;;;;;;;;;;;;;;;;;;; -; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini" -;user_ini.filename = ".user.ini" - -; To disable this feature set this option to empty value -;user_ini.filename = - -; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes) -;user_ini.cache_ttl = 300 - -;;;;;;;;;;;;;;;;;;;; -; Language Options ; -;;;;;;;;;;;;;;;;;;;; - -; Enable the PHP scripting language engine under Apache. -; http://php.net/engine -engine = On - -; This directive determines whether or not PHP will recognize code between -; tags as PHP source which should be processed as such. It is -; generally recommended that should be used and that this feature -; should be disabled, as enabling it may result in issues when generating XML -; documents, however this remains supported for backward compatibility reasons. -; Note that this directive does not control the would work. -; http://php.net/syntax-highlighting -;highlight.string = #DD0000 -;highlight.comment = #FF9900 -;highlight.keyword = #007700 -;highlight.default = #0000BB -;highlight.html = #000000 - -; If enabled, the request will be allowed to complete even if the user aborts -; the request. Consider enabling it if executing long requests, which may end up -; being interrupted by the user or a browser timing out. PHP's default behavior -; is to disable this feature. -; http://php.net/ignore-user-abort -;ignore_user_abort = On - -; Determines the size of the realpath cache to be used by PHP. This value should -; be increased on systems where PHP opens many files to reflect the quantity of -; the file operations performed. -; http://php.net/realpath-cache-size -;realpath_cache_size = 4096k - -; Duration of time, in seconds for which to cache realpath information for a given -; file or directory. For systems with rarely changing files, consider increasing this -; value. -; http://php.net/realpath-cache-ttl -;realpath_cache_ttl = 120 - -; Enables or disables the circular reference collector. -; http://php.net/zend.enable-gc -zend.enable_gc = On - -; If enabled, scripts may be written in encodings that are incompatible with -; the scanner. CP936, Big5, CP949 and Shift_JIS are the examples of such -; encodings. To use this feature, mbstring extension must be enabled. -; Default: Off -;zend.multibyte = Off - -; Allows to set the default encoding for the scripts. This value will be used -; unless "declare(encoding=...)" directive appears at the top of the script. -; Only affects if zend.multibyte is set. -; Default: "" -;zend.script_encoding = - -;;;;;;;;;;;;;;;;; -; Miscellaneous ; -;;;;;;;;;;;;;;;;; - -; Decides whether PHP may expose the fact that it is installed on the server -; (e.g. by adding its signature to the Web server header). It is no security -; threat in any way, but it makes it possible to determine whether you use PHP -; on your server or not. -; http://php.net/expose-php -expose_php = Off - -;;;;;;;;;;;;;;;;;;; -; Resource Limits ; -;;;;;;;;;;;;;;;;;;; - -; Maximum execution time of each script, in seconds -; http://php.net/max-execution-time -; Note: This directive is hardcoded to 0 for the CLI SAPI -max_execution_time = 30 - -; Maximum amount of time each script may spend parsing request data. It's a good -; idea to limit this time on productions servers in order to eliminate unexpectedly -; long running scripts. -; Note: This directive is hardcoded to -1 for the CLI SAPI -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) -; http://php.net/max-input-time -max_input_time = 60 - -; Maximum input variable nesting level -; http://php.net/max-input-nesting-level -;max_input_nesting_level = 64 - -; How many GET/POST/COOKIE input variables may be accepted -; max_input_vars = 1000 - -; Maximum amount of memory a script may consume (128MB) -; http://php.net/memory-limit -memory_limit = 256M - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; Error handling and logging ; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -; This directive informs PHP of which errors, warnings and notices you would like -; it to take action for. The recommended way of setting values for this -; directive is through the use of the error level constants and bitwise -; operators. The error level constants are below here for convenience as well as -; some common settings and their meanings. -; By default, PHP is set to take action on all errors, notices and warnings EXCEPT -; those related to E_NOTICE and E_STRICT, which together cover best practices and -; recommended coding standards in PHP. For performance reasons, this is the -; recommend error reporting setting. Your production server shouldn't be wasting -; resources complaining about best practices and coding standards. That's what -; development servers and development settings are for. -; Note: The php.ini-development file has this setting as E_ALL. This -; means it pretty much reports everything which is exactly what you want during -; development and early testing. -; -; Error Level Constants: -; E_ALL - All errors and warnings (includes E_STRICT as of PHP 5.4.0) -; E_ERROR - fatal run-time errors -; E_RECOVERABLE_ERROR - almost fatal run-time errors -; E_WARNING - run-time warnings (non-fatal errors) -; E_PARSE - compile-time parse errors -; E_NOTICE - run-time notices (these are warnings which often result -; from a bug in your code, but it's possible that it was -; intentional (e.g., using an uninitialized variable and -; relying on the fact it is automatically initialized to an -; empty string) -; E_STRICT - run-time notices, enable to have PHP suggest changes -; to your code which will ensure the best interoperability -; and forward compatibility of your code -; E_CORE_ERROR - fatal errors that occur during PHP's initial startup -; E_CORE_WARNING - warnings (non-fatal errors) that occur during PHP's -; initial startup -; E_COMPILE_ERROR - fatal compile-time errors -; E_COMPILE_WARNING - compile-time warnings (non-fatal errors) -; E_USER_ERROR - user-generated error message -; E_USER_WARNING - user-generated warning message -; E_USER_NOTICE - user-generated notice message -; E_DEPRECATED - warn about code that will not work in future versions -; of PHP -; E_USER_DEPRECATED - user-generated deprecation warnings -; -; Common Values: -; E_ALL (Show all errors, warnings and notices including coding standards.) -; E_ALL & ~E_NOTICE (Show all errors, except for notices) -; E_ALL & ~E_NOTICE & ~E_STRICT (Show all errors, except for notices and coding standards warnings.) -; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors) -; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT -; http://php.net/error-reporting -error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT - -; This directive controls whether or not and where PHP will output errors, -; notices and warnings too. Error output is very useful during development, but -; it could be very dangerous in production environments. Depending on the code -; which is triggering the error, sensitive information could potentially leak -; out of your application such as database usernames and passwords or worse. -; For production environments, we recommend logging errors rather than -; sending them to STDOUT. -; Possible Values: -; Off = Do not display any errors -; stderr = Display errors to STDERR (affects only CGI/CLI binaries!) -; On or stdout = Display errors to STDOUT -; Default Value: On -; Development Value: On -; Production Value: Off -; http://php.net/display-errors -display_errors = Off - -; The display of errors which occur during PHP's startup sequence are handled -; separately from display_errors. PHP's default behavior is to suppress those -; errors from clients. Turning the display of startup errors on can be useful in -; debugging configuration problems. We strongly recommend you -; set this to 'off' for production servers. -; Default Value: Off -; Development Value: On -; Production Value: Off -; http://php.net/display-startup-errors -display_startup_errors = Off - -; Besides displaying errors, PHP can also log errors to locations such as a -; server-specific log, STDERR, or a location specified by the error_log -; directive found below. While errors should not be displayed on productions -; servers they should still be monitored and logging is a great way to do that. -; Default Value: Off -; Development Value: On -; Production Value: On -; http://php.net/log-errors -log_errors = On - -; Set maximum length of log_errors. In error_log information about the source is -; added. The default is 1024 and 0 allows to not apply any maximum length at all. -; http://php.net/log-errors-max-len -log_errors_max_len = 1024 - -; Do not log repeated messages. Repeated errors must occur in same file on same -; line unless ignore_repeated_source is set true. -; http://php.net/ignore-repeated-errors -ignore_repeated_errors = Off - -; Ignore source of message when ignoring repeated messages. When this setting -; is On you will not log errors with repeated messages from different files or -; source lines. -; http://php.net/ignore-repeated-source -ignore_repeated_source = Off - -; If this parameter is set to Off, then memory leaks will not be shown (on -; stdout or in the log). This has only effect in a debug compile, and if -; error reporting includes E_WARNING in the allowed list -; http://php.net/report-memleaks -report_memleaks = On - -; This setting is on by default. -;report_zend_debug = 0 - -; Store the last error/warning message in $php_errormsg (boolean). Setting this value -; to On can assist in debugging and is appropriate for development servers. It should -; however be disabled on production servers. -; Default Value: Off -; Development Value: On -; Production Value: Off -; http://php.net/track-errors -track_errors = Off - -; Turn off normal error reporting and emit XML-RPC error XML -; http://php.net/xmlrpc-errors -;xmlrpc_errors = 0 - -; An XML-RPC faultCode -;xmlrpc_error_number = 0 - -; When PHP displays or logs an error, it has the capability of formatting the -; error message as HTML for easier reading. This directive controls whether -; the error message is formatted as HTML or not. -; Note: This directive is hardcoded to Off for the CLI SAPI -; Default Value: On -; Development Value: On -; Production value: On -; http://php.net/html-errors -html_errors = On - -; If html_errors is set to On *and* docref_root is not empty, then PHP -; produces clickable error messages that direct to a page describing the error -; or function causing the error in detail. -; You can download a copy of the PHP manual from http://php.net/docs -; and change docref_root to the base URL of your local copy including the -; leading '/'. You must also specify the file extension being used including -; the dot. PHP's default behavior is to leave these settings empty, in which -; case no links to documentation are generated. -; Note: Never use this feature for production boxes. -; http://php.net/docref-root -; Examples -;docref_root = "/phpmanual/" - -; http://php.net/docref-ext -;docref_ext = .html - -; String to output before an error message. PHP's default behavior is to leave -; this setting blank. -; http://php.net/error-prepend-string -; Example: -;error_prepend_string = "" - -; String to output after an error message. PHP's default behavior is to leave -; this setting blank. -; http://php.net/error-append-string -; Example: -;error_append_string = "" - -; Log errors to specified file. PHP's default behavior is to leave this value -; empty. -; http://php.net/error-log -; Example: -;error_log = php_errors.log -; Log errors to syslog (Event Log on Windows). -error_log = /var/log/php/php.error.log - -;windows.show_crt_warning -; Default value: 0 -; Development value: 0 -; Production value: 0 - -;;;;;;;;;;;;;;;;; -; Data Handling ; -;;;;;;;;;;;;;;;;; - -; The separator used in PHP generated URLs to separate arguments. -; PHP's default setting is "&". -; http://php.net/arg-separator.output -; Example: -;arg_separator.output = "&" - -; List of separator(s) used by PHP to parse input URLs into variables. -; PHP's default setting is "&". -; NOTE: Every character in this directive is considered as separator! -; http://php.net/arg-separator.input -; Example: -;arg_separator.input = ";&" - -; This directive determines which super global arrays are registered when PHP -; starts up. G,P,C,E & S are abbreviations for the following respective super -; globals: GET, POST, COOKIE, ENV and SERVER. There is a performance penalty -; paid for the registration of these arrays and because ENV is not as commonly -; used as the others, ENV is not recommended on productions servers. You -; can still get access to the environment variables through getenv() should you -; need to. -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS"; -; http://php.net/variables-order -variables_order = "GPCS" - -; This directive determines which super global data (G,P & C) should be -; registered into the super global array REQUEST. If so, it also determines -; the order in which that data is registered. The values for this directive -; are specified in the same manner as the variables_order directive, -; EXCEPT one. Leaving this value empty will cause PHP to use the value set -; in the variables_order directive. It does not mean it will leave the super -; globals array REQUEST empty. -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" -; http://php.net/request-order -request_order = "GP" - -; This directive determines whether PHP registers $argv & $argc each time it -; runs. $argv contains an array of all the arguments passed to PHP when a script -; is invoked. $argc contains an integer representing the number of arguments -; that were passed when the script was invoked. These arrays are extremely -; useful when running scripts from the command line. When this directive is -; enabled, registering these variables consumes CPU cycles and memory each time -; a script is executed. For performance reasons, this feature should be disabled -; on production servers. -; Note: This directive is hardcoded to On for the CLI SAPI -; Default Value: On -; Development Value: Off -; Production Value: Off -; http://php.net/register-argc-argv -register_argc_argv = Off - -; When enabled, the ENV, REQUEST and SERVER variables are created when they're -; first used (Just In Time) instead of when the script starts. If these -; variables are not used within a script, having this directive on will result -; in a performance gain. The PHP directive register_argc_argv must be disabled -; for this directive to have any affect. -; http://php.net/auto-globals-jit -auto_globals_jit = On - -; Whether PHP will read the POST data. -; This option is enabled by default. -; Most likely, you won't want to disable this option globally. It causes $_POST -; and $_FILES to always be empty; the only way you will be able to read the -; POST data will be through the php://input stream wrapper. This can be useful -; to proxy requests or to process the POST data in a memory efficient fashion. -; http://php.net/enable-post-data-reading -;enable_post_data_reading = Off - -; Maximum size of POST data that PHP will accept. -; Its value may be 0 to disable the limit. It is ignored if POST data reading -; is disabled through enable_post_data_reading. -; http://php.net/post-max-size -post_max_size = 100M - -; Automatically add files before PHP document. -; http://php.net/auto-prepend-file -auto_prepend_file = - -; Automatically add files after PHP document. -; http://php.net/auto-append-file -auto_append_file = - -; By default, PHP will output a media type using the Content-Type header. To -; disable this, simply set it to be empty. -; -; PHP's built-in default media type is set to text/html. -; http://php.net/default-mimetype -default_mimetype = "text/html" - -; PHP's default character set is set to UTF-8. -; http://php.net/default-charset -default_charset = "UTF-8" - -; PHP internal character encoding is set to empty. -; If empty, default_charset is used. -; http://php.net/internal-encoding -;internal_encoding = - -; PHP input character encoding is set to empty. -; If empty, default_charset is used. -; http://php.net/input-encoding -;input_encoding = - -; PHP output character encoding is set to empty. -; If empty, default_charset is used. -; See also output_buffer. -; http://php.net/output-encoding -;output_encoding = - -;;;;;;;;;;;;;;;;;;;;;;;;; -; Paths and Directories ; -;;;;;;;;;;;;;;;;;;;;;;;;; - -; UNIX: "/path1:/path2" -;include_path = ".:/php/includes" -; -; Windows: "\path1;\path2" -;include_path = ".;c:\php\includes" -; -; PHP's default setting for include_path is ".;/path/to/php/pear" -; http://php.net/include-path - -; The root of the PHP pages, used only if nonempty. -; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root -; if you are running php as a CGI under any web server (other than IIS) -; see documentation for security issues. The alternate is to use the -; cgi.force_redirect configuration below -; http://php.net/doc-root -doc_root = - -; The directory under which PHP opens the script using /~username used only -; if nonempty. -; http://php.net/user-dir -user_dir = - -; Directory in which the loadable extensions (modules) reside. -; http://php.net/extension-dir -; extension_dir = "./" -; On windows: -; extension_dir = "ext" - -; Directory where the temporary files should be placed. -; Defaults to the system default (see sys_get_temp_dir) -; sys_temp_dir = "/tmp" - -; Whether or not to enable the dl() function. The dl() function does NOT work -; properly in multithreaded servers, such as IIS or Zeus, and is automatically -; disabled on them. -; http://php.net/enable-dl -enable_dl = Off - -; cgi.force_redirect is necessary to provide security running PHP as a CGI under -; most web servers. Left undefined, PHP turns this on by default. You can -; turn it off here AT YOUR OWN RISK -; **You CAN safely turn this off for IIS, in fact, you MUST.** -; http://php.net/cgi.force-redirect -;cgi.force_redirect = 1 - -; if cgi.nph is enabled it will force cgi to always sent Status: 200 with -; every request. PHP's default behavior is to disable this feature. -;cgi.nph = 1 - -; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape -; (iPlanet) web servers, you MAY need to set an environment variable name that PHP -; will look for to know it is OK to continue execution. Setting this variable MAY -; cause security issues, KNOW WHAT YOU ARE DOING FIRST. -; http://php.net/cgi.redirect-status-env -;cgi.redirect_status_env = - -; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's -; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok -; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting -; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting -; of zero causes PHP to behave as before. Default is 1. You should fix your scripts -; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. -; http://php.net/cgi.fix-pathinfo -;cgi.fix_pathinfo=1 - -; if cgi.discard_path is enabled, the PHP CGI binary can safely be placed outside -; of the web tree and people will not be able to circumvent .htaccess security. -; http://php.net/cgi.dicard-path -;cgi.discard_path=1 - -; FastCGI under IIS (on WINNT based OS) supports the ability to impersonate -; security tokens of the calling client. This allows IIS to define the -; security context that the request runs under. mod_fastcgi under Apache -; does not currently support this feature (03/17/2002) -; Set to 1 if running under IIS. Default is zero. -; http://php.net/fastcgi.impersonate -;fastcgi.impersonate = 1 - -; Disable logging through FastCGI connection. PHP's default behavior is to enable -; this feature. -;fastcgi.logging = 0 - -; cgi.rfc2616_headers configuration option tells PHP what type of headers to -; use when sending HTTP response code. If set to 0, PHP sends Status: header that -; is supported by Apache. When this option is set to 1, PHP will send -; RFC2616 compliant header. -; Default is zero. -; http://php.net/cgi.rfc2616-headers -;cgi.rfc2616_headers = 0 - -; cgi.check_shebang_line controls whether CGI PHP checks for line starting with #! -; (shebang) at the top of the running script. This line might be needed if the -; script support running both as stand-alone script and via PHP CGI<. PHP in CGI -; mode skips this line and ignores its content if this directive is turned on. -; http://php.net/cgi.check-shebang-line -;cgi.check_shebang_line=1 - -;;;;;;;;;;;;;;;; -; File Uploads ; -;;;;;;;;;;;;;;;; - -; Whether to allow HTTP file uploads. -; http://php.net/file-uploads -file_uploads = On - -; Temporary directory for HTTP uploaded files (will use system default if not -; specified). -; http://php.net/upload-tmp-dir -;upload_tmp_dir = - -; Maximum allowed size for uploaded files. -; http://php.net/upload-max-filesize -upload_max_filesize = 50M - -; Maximum number of files that can be uploaded via a single request -max_file_uploads = 20 - -;;;;;;;;;;;;;;;;;; -; Fopen wrappers ; -;;;;;;;;;;;;;;;;;; - -; Whether to allow the treatment of URLs (like http:// or ftp://) as files. -; http://php.net/allow-url-fopen -allow_url_fopen = On - -; Whether to allow include/require to open URLs (like http:// or ftp://) as files. -; http://php.net/allow-url-include -allow_url_include = Off - -; Define the anonymous ftp password (your email address). PHP's default setting -; for this is empty. -; http://php.net/from -;from="john@doe.com" - -; Define the User-Agent string. PHP's default setting for this is empty. -; http://php.net/user-agent -;user_agent="PHP" - -; Default timeout for socket based streams (seconds) -; http://php.net/default-socket-timeout -default_socket_timeout = 60 - -; If your scripts have to deal with files from Macintosh systems, -; or you are running on a Mac and need to deal with files from -; unix or win32 systems, setting this flag will cause PHP to -; automatically detect the EOL character in those files so that -; fgets() and file() will work regardless of the source of the file. -; http://php.net/auto-detect-line-endings -;auto_detect_line_endings = Off - -;;;;;;;;;;;;;;;;;;;;;; -; Dynamic Extensions ; -;;;;;;;;;;;;;;;;;;;;;; - -; If you wish to have an extension loaded automatically, use the following -; syntax: -; -; extension=modulename.extension -; -; For example, on Windows: -; -; extension=mysqli.dll -; -; ... or under UNIX: -; -; extension=mysqli.so -; -; ... or with a path: -; -; extension=/path/to/extension/mysqli.so -; -; If you only provide the name of the extension, PHP will look for it in its -; default extension directory. -; -; Windows Extensions -; Note that ODBC support is built in, so no dll is needed for it. -; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5+) -; extension folders as well as the separate PECL DLL download (PHP 5+). -; Be sure to appropriately set the extension_dir directive. -; -;extension=php_bz2.dll -;extension=php_curl.dll -;extension=php_fileinfo.dll -;extension=php_ftp.dll -;extension=php_gd2.dll -;extension=php_gettext.dll -;extension=php_gmp.dll -;extension=php_intl.dll -;extension=php_imap.dll -;extension=php_interbase.dll -;extension=php_ldap.dll -;extension=php_mbstring.dll -;extension=php_exif.dll ; Must be after mbstring as it depends on it -;extension=php_mysqli.dll -;extension=php_oci8_12c.dll ; Use with Oracle Database 12c Instant Client -;extension=php_openssl.dll -;extension=php_pdo_firebird.dll -;extension=php_pdo_mysql.dll -;extension=php_pdo_oci.dll -;extension=php_pdo_odbc.dll -;extension=php_pdo_pgsql.dll -;extension=php_pdo_sqlite.dll -;extension=php_pgsql.dll -;extension=php_shmop.dll - -; The MIBS data available in the PHP distribution must be installed. -; See http://www.php.net/manual/en/snmp.installation.php -;extension=php_snmp.dll - -;extension=php_soap.dll -;extension=php_sockets.dll -;extension=php_sqlite3.dll -;extension=php_tidy.dll -;extension=php_xmlrpc.dll -;extension=php_xsl.dll - -;;;;;;;;;;;;;;;;;;; -; Module Settings ; -;;;;;;;;;;;;;;;;;;; - -[CLI Server] -; Whether the CLI web server uses ANSI color coding in its terminal output. -cli_server.color = On - -[Date] -; Defines the default timezone used by the date functions -; http://php.net/date.timezone -date.timezone = Asia/Shanghai - -; http://php.net/date.default-latitude -;date.default_latitude = 31.7667 - -; http://php.net/date.default-longitude -;date.default_longitude = 35.2333 - -; http://php.net/date.sunrise-zenith -;date.sunrise_zenith = 90.583333 - -; http://php.net/date.sunset-zenith -;date.sunset_zenith = 90.583333 - -[filter] -; http://php.net/filter.default -;filter.default = unsafe_raw - -; http://php.net/filter.default-flags -;filter.default_flags = - -[iconv] -; Use of this INI entry is deprecated, use global input_encoding instead. -; If empty, default_charset or input_encoding or iconv.input_encoding is used. -; The precedence is: default_charset < intput_encoding < iconv.input_encoding -;iconv.input_encoding = - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;iconv.internal_encoding = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; If empty, default_charset or output_encoding or iconv.output_encoding is used. -; The precedence is: default_charset < output_encoding < iconv.output_encoding -; To use an output encoding conversion, iconv's output handler must be set -; otherwise output encoding conversion cannot be performed. -;iconv.output_encoding = - -[intl] -;intl.default_locale = -; This directive allows you to produce PHP errors when some error -; happens within intl functions. The value is the level of the error produced. -; Default is 0, which does not produce any errors. -;intl.error_level = E_WARNING -;intl.use_exceptions = 0 - -[sqlite3] -;sqlite3.extension_dir = - -[Pcre] -;PCRE library backtracking limit. -; http://php.net/pcre.backtrack-limit -;pcre.backtrack_limit=100000 - -;PCRE library recursion limit. -;Please note that if you set this value to a high number you may consume all -;the available process stack and eventually crash PHP (due to reaching the -;stack size limit imposed by the Operating System). -; http://php.net/pcre.recursion-limit -;pcre.recursion_limit=100000 - -;Enables or disables JIT compilation of patterns. This requires the PCRE -;library to be compiled with JIT support. -;pcre.jit=1 - -[Pdo] -; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off" -; http://php.net/pdo-odbc.connection-pooling -;pdo_odbc.connection_pooling=strict - -;pdo_odbc.db2_instance_name - -[Pdo_mysql] -; If mysqlnd is used: Number of cache slots for the internal result set cache -; http://php.net/pdo_mysql.cache_size -pdo_mysql.cache_size = 2000 - -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -; http://php.net/pdo_mysql.default-socket -pdo_mysql.default_socket= - -[Phar] -; http://php.net/phar.readonly -;phar.readonly = On - -; http://php.net/phar.require-hash -;phar.require_hash = On - -;phar.cache_list = - -[mail function] -; For Win32 only. -; http://php.net/smtp -SMTP = localhost -; http://php.net/smtp-port -smtp_port = 25 - -; For Win32 only. -; http://php.net/sendmail-from -;sendmail_from = me@example.com - -; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). -; http://php.net/sendmail-path -;sendmail_path = - -; Force the addition of the specified parameters to be passed as extra parameters -; to the sendmail binary. These parameters will always replace the value of -; the 5th parameter to mail(). -;mail.force_extra_parameters = - -; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename -mail.add_x_header = On - -; The path to a log file that will log all mail() calls. Log entries include -; the full path of the script, line number, To address and headers. -;mail.log = -; Log mail to syslog (Event Log on Windows). -;mail.log = syslog - -[ODBC] -; http://php.net/odbc.default-db -;odbc.default_db = Not yet implemented - -; http://php.net/odbc.default-user -;odbc.default_user = Not yet implemented - -; http://php.net/odbc.default-pw -;odbc.default_pw = Not yet implemented - -; Controls the ODBC cursor model. -; Default: SQL_CURSOR_STATIC (default). -;odbc.default_cursortype - -; Allow or prevent persistent links. -; http://php.net/odbc.allow-persistent -odbc.allow_persistent = On - -; Check that a connection is still valid before reuse. -; http://php.net/odbc.check-persistent -odbc.check_persistent = On - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/odbc.max-persistent -odbc.max_persistent = -1 - -; Maximum number of links (persistent + non-persistent). -1 means no limit. -; http://php.net/odbc.max-links -odbc.max_links = -1 - -; Handling of LONG fields. Returns number of bytes to variables. 0 means -; passthru. -; http://php.net/odbc.defaultlrl -odbc.defaultlrl = 4096 - -; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char. -; See the documentation on odbc_binmode and odbc_longreadlen for an explanation -; of odbc.defaultlrl and odbc.defaultbinmode -; http://php.net/odbc.defaultbinmode -odbc.defaultbinmode = 1 - -;birdstep.max_links = -1 - -[Interbase] -; Allow or prevent persistent links. -ibase.allow_persistent = 1 - -; Maximum number of persistent links. -1 means no limit. -ibase.max_persistent = -1 - -; Maximum number of links (persistent + non-persistent). -1 means no limit. -ibase.max_links = -1 - -; Default database name for ibase_connect(). -;ibase.default_db = - -; Default username for ibase_connect(). -;ibase.default_user = - -; Default password for ibase_connect(). -;ibase.default_password = - -; Default charset for ibase_connect(). -;ibase.default_charset = - -; Default timestamp format. -ibase.timestampformat = "%Y-%m-%d %H:%M:%S" - -; Default date format. -ibase.dateformat = "%Y-%m-%d" - -; Default time format. -ibase.timeformat = "%H:%M:%S" - -[MySQLi] - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/mysqli.max-persistent -mysqli.max_persistent = -1 - -; Allow accessing, from PHP's perspective, local files with LOAD DATA statements -; http://php.net/mysqli.allow_local_infile -;mysqli.allow_local_infile = On - -; Allow or prevent persistent links. -; http://php.net/mysqli.allow-persistent -mysqli.allow_persistent = On - -; Maximum number of links. -1 means no limit. -; http://php.net/mysqli.max-links -mysqli.max_links = -1 - -; If mysqlnd is used: Number of cache slots for the internal result set cache -; http://php.net/mysqli.cache_size -mysqli.cache_size = 2000 - -; Default port number for mysqli_connect(). If unset, mysqli_connect() will use -; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the -; compile-time value defined MYSQL_PORT (in that order). Win32 will only look -; at MYSQL_PORT. -; http://php.net/mysqli.default-port -mysqli.default_port = 3306 - -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -; http://php.net/mysqli.default-socket -mysqli.default_socket = - -; Default host for mysql_connect() (doesn't apply in safe mode). -; http://php.net/mysqli.default-host -mysqli.default_host = - -; Default user for mysql_connect() (doesn't apply in safe mode). -; http://php.net/mysqli.default-user -mysqli.default_user = - -; Default password for mysqli_connect() (doesn't apply in safe mode). -; Note that this is generally a *bad* idea to store passwords in this file. -; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw") -; and reveal this password! And of course, any users with read access to this -; file will be able to reveal the password as well. -; http://php.net/mysqli.default-pw -mysqli.default_pw = - -; Allow or prevent reconnect -mysqli.reconnect = Off - -[mysqlnd] -; Enable / Disable collection of general statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -; http://php.net/mysqlnd.collect_statistics -mysqlnd.collect_statistics = On - -; Enable / Disable collection of memory usage statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -; http://php.net/mysqlnd.collect_memory_statistics -mysqlnd.collect_memory_statistics = Off - -; Records communication from all extensions using mysqlnd to the specified log -; file. -; http://php.net/mysqlnd.debug -;mysqlnd.debug = - -; Defines which queries will be logged. -; http://php.net/mysqlnd.log_mask -;mysqlnd.log_mask = 0 - -; Default size of the mysqlnd memory pool, which is used by result sets. -; http://php.net/mysqlnd.mempool_default_size -;mysqlnd.mempool_default_size = 16000 - -; Size of a pre-allocated buffer used when sending commands to MySQL in bytes. -; http://php.net/mysqlnd.net_cmd_buffer_size -;mysqlnd.net_cmd_buffer_size = 2048 - -; Size of a pre-allocated buffer used for reading data sent by the server in -; bytes. -; http://php.net/mysqlnd.net_read_buffer_size -;mysqlnd.net_read_buffer_size = 32768 - -; Timeout for network requests in seconds. -; http://php.net/mysqlnd.net_read_timeout -;mysqlnd.net_read_timeout = 31536000 - -; SHA-256 Authentication Plugin related. File with the MySQL server public RSA -; key. -; http://php.net/mysqlnd.sha256_server_public_key -;mysqlnd.sha256_server_public_key = - -[OCI8] - -; Connection: Enables privileged connections using external -; credentials (OCI_SYSOPER, OCI_SYSDBA) -; http://php.net/oci8.privileged-connect -;oci8.privileged_connect = Off - -; Connection: The maximum number of persistent OCI8 connections per -; process. Using -1 means no limit. -; http://php.net/oci8.max-persistent -;oci8.max_persistent = -1 - -; Connection: The maximum number of seconds a process is allowed to -; maintain an idle persistent connection. Using -1 means idle -; persistent connections will be maintained forever. -; http://php.net/oci8.persistent-timeout -;oci8.persistent_timeout = -1 - -; Connection: The number of seconds that must pass before issuing a -; ping during oci_pconnect() to check the connection validity. When -; set to 0, each oci_pconnect() will cause a ping. Using -1 disables -; pings completely. -; http://php.net/oci8.ping-interval -;oci8.ping_interval = 60 - -; Connection: Set this to a user chosen connection class to be used -; for all pooled server requests with Oracle 11g Database Resident -; Connection Pooling (DRCP). To use DRCP, this value should be set to -; the same string for all web servers running the same application, -; the database pool must be configured, and the connection string must -; specify to use a pooled server. -;oci8.connection_class = - -; High Availability: Using On lets PHP receive Fast Application -; Notification (FAN) events generated when a database node fails. The -; database must also be configured to post FAN events. -;oci8.events = Off - -; Tuning: This option enables statement caching, and specifies how -; many statements to cache. Using 0 disables statement caching. -; http://php.net/oci8.statement-cache-size -;oci8.statement_cache_size = 20 - -; Tuning: Enables statement prefetching and sets the default number of -; rows that will be fetched automatically after statement execution. -; http://php.net/oci8.default-prefetch -;oci8.default_prefetch = 100 - -; Compatibility. Using On means oci_close() will not close -; oci_connect() and oci_new_connect() connections. -; http://php.net/oci8.old-oci-close-semantics -;oci8.old_oci_close_semantics = Off - -[PostgreSQL] -; Allow or prevent persistent links. -; http://php.net/pgsql.allow-persistent -pgsql.allow_persistent = On - -; Detect broken persistent links always with pg_pconnect(). -; Auto reset feature requires a little overheads. -; http://php.net/pgsql.auto-reset-persistent -pgsql.auto_reset_persistent = Off - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/pgsql.max-persistent -pgsql.max_persistent = -1 - -; Maximum number of links (persistent+non persistent). -1 means no limit. -; http://php.net/pgsql.max-links -pgsql.max_links = -1 - -; Ignore PostgreSQL backends Notice message or not. -; Notice message logging require a little overheads. -; http://php.net/pgsql.ignore-notice -pgsql.ignore_notice = 0 - -; Log PostgreSQL backends Notice message or not. -; Unless pgsql.ignore_notice=0, module cannot log notice message. -; http://php.net/pgsql.log-notice -pgsql.log_notice = 0 - -[bcmath] -; Number of decimal digits for all bcmath functions. -; http://php.net/bcmath.scale -bcmath.scale = 0 - -[browscap] -; http://php.net/browscap -;browscap = extra/browscap.ini - -[Session] -; Handler used to store/retrieve data. -; http://php.net/session.save-handler -session.save_handler = files - -; Argument passed to save_handler. In the case of files, this is the path -; where data files are stored. Note: Windows users have to change this -; variable in order to use PHP's session functions. -; -; The path can be defined as: -; -; session.save_path = "N;/path" -; -; where N is an integer. Instead of storing all the session files in -; /path, what this will do is use subdirectories N-levels deep, and -; store the session data in those directories. This is useful if -; your OS has problems with many files in one directory, and is -; a more efficient layout for servers that handle many sessions. -; -; NOTE 1: PHP will not create this directory structure automatically. -; You can use the script in the ext/session dir for that purpose. -; NOTE 2: See the section on garbage collection below if you choose to -; use subdirectories for session storage -; -; The file storage module creates files using mode 600 by default. -; You can change that by using -; -; session.save_path = "N;MODE;/path" -; -; where MODE is the octal representation of the mode. Note that this -; does not overwrite the process's umask. -; http://php.net/session.save-path -;session.save_path = "/tmp" - -; Whether to use strict session mode. -; Strict session mode does not accept uninitialized session ID and regenerate -; session ID if browser sends uninitialized session ID. Strict mode protects -; applications from session fixation via session adoption vulnerability. It is -; disabled by default for maximum compatibility, but enabling it is encouraged. -; https://wiki.php.net/rfc/strict_sessions -session.use_strict_mode = 0 - -; Whether to use cookies. -; http://php.net/session.use-cookies -session.use_cookies = 1 - -; http://php.net/session.cookie-secure -;session.cookie_secure = - -; This option forces PHP to fetch and use a cookie for storing and maintaining -; the session id. We encourage this operation as it's very helpful in combating -; session hijacking when not specifying and managing your own session id. It is -; not the be-all and end-all of session hijacking defense, but it's a good start. -; http://php.net/session.use-only-cookies -session.use_only_cookies = 1 - -; Name of the session (used as cookie name). -; http://php.net/session.name -session.name = PHPSESSID - -; Initialize session on request startup. -; http://php.net/session.auto-start -session.auto_start = 0 - -; Lifetime in seconds of cookie or, if 0, until browser is restarted. -; http://php.net/session.cookie-lifetime -session.cookie_lifetime = 0 - -; The path for which the cookie is valid. -; http://php.net/session.cookie-path -session.cookie_path = / - -; The domain for which the cookie is valid. -; http://php.net/session.cookie-domain -session.cookie_domain = - -; Whether or not to add the httpOnly flag to the cookie, which makes it inaccessible to browser scripting languages such as JavaScript. -; http://php.net/session.cookie-httponly -session.cookie_httponly = - -; Handler used to serialize data. php is the standard serializer of PHP. -; http://php.net/session.serialize-handler -session.serialize_handler = php - -; Defines the probability that the 'garbage collection' process is started -; on every session initialization. The probability is calculated by using -; gc_probability/gc_divisor. Where session.gc_probability is the numerator -; and gc_divisor is the denominator in the equation. Setting this value to 1 -; when the session.gc_divisor value is 100 will give you approximately a 1% chance -; the gc will run on any give request. -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; http://php.net/session.gc-probability -session.gc_probability = 1 - -; Defines the probability that the 'garbage collection' process is started on every -; session initialization. The probability is calculated by using the following equation: -; gc_probability/gc_divisor. Where session.gc_probability is the numerator and -; session.gc_divisor is the denominator in the equation. Setting this value to 1 -; when the session.gc_divisor value is 100 will give you approximately a 1% chance -; the gc will run on any give request. Increasing this value to 1000 will give you -; a 0.1% chance the gc will run on any give request. For high volume production servers, -; this is a more efficient approach. -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 -; http://php.net/session.gc-divisor -session.gc_divisor = 1000 - -; After this number of seconds, stored data will be seen as 'garbage' and -; cleaned up by the garbage collection process. -; http://php.net/session.gc-maxlifetime -session.gc_maxlifetime = 1440 - -; NOTE: If you are using the subdirectory option for storing session files -; (see session.save_path above), then garbage collection does *not* -; happen automatically. You will need to do your own garbage -; collection through a shell script, cron entry, or some other method. -; For example, the following script would is the equivalent of -; setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes): -; find /path/to/sessions -cmin +24 -type f | xargs rm - -; Check HTTP Referer to invalidate externally stored URLs containing ids. -; HTTP_REFERER has to contain this substring for the session to be -; considered as valid. -; http://php.net/session.referer-check -session.referer_check = - -; Set to {nocache,private,public,} to determine HTTP caching aspects -; or leave this empty to avoid sending anti-caching headers. -; http://php.net/session.cache-limiter -session.cache_limiter = nocache - -; Document expires after n minutes. -; http://php.net/session.cache-expire -session.cache_expire = 180 - -; trans sid support is disabled by default. -; Use of trans sid may risk your users' security. -; Use this option with caution. -; - User may send URL contains active session ID -; to other person via. email/irc/etc. -; - URL that contains active session ID may be stored -; in publicly accessible computer. -; - User may access your site with the same session ID -; always using URL stored in browser's history or bookmarks. -; http://php.net/session.use-trans-sid -session.use_trans_sid = 0 - -; Set session ID character length. This value could be between 22 to 256. -; Shorter length than default is supported only for compatibility reason. -; Users should use 32 or more chars. -; http://php.net/session.sid-length -; Default Value: 32 -; Development Value: 26 -; Production Value: 26 -session.sid_length = 26 - -; The URL rewriter will look for URLs in a defined set of HTML tags. -; is special; if you include them here, the rewriter will -; add a hidden field with the info which is otherwise appended -; to URLs. tag's action attribute URL will not be modified -; unless it is specified. -; Note that all valid entries require a "=", even if no value follows. -; Default Value: "a=href,area=href,frame=src,form=" -; Development Value: "a=href,area=href,frame=src,form=" -; Production Value: "a=href,area=href,frame=src,form=" -; http://php.net/url-rewriter.tags -session.trans_sid_tags = "a=href,area=href,frame=src,form=" - -; URL rewriter does not rewrite absolute URLs by default. -; To enable rewrites for absolute pathes, target hosts must be specified -; at RUNTIME. i.e. use ini_set() -; tags is special. PHP will check action attribute's URL regardless -; of session.trans_sid_tags setting. -; If no host is defined, HTTP_HOST will be used for allowed host. -; Example value: php.net,www.php.net,wiki.php.net -; Use "," for multiple hosts. No spaces are allowed. -; Default Value: "" -; Development Value: "" -; Production Value: "" -;session.trans_sid_hosts="" - -; Define how many bits are stored in each character when converting -; the binary hash data to something readable. -; Possible values: -; 4 (4 bits: 0-9, a-f) -; 5 (5 bits: 0-9, a-v) -; 6 (6 bits: 0-9, a-z, A-Z, "-", ",") -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 -; http://php.net/session.hash-bits-per-character -session.sid_bits_per_character = 5 - -; Enable upload progress tracking in $_SESSION -; Default Value: On -; Development Value: On -; Production Value: On -; http://php.net/session.upload-progress.enabled -;session.upload_progress.enabled = On - -; Cleanup the progress information as soon as all POST data has been read -; (i.e. upload completed). -; Default Value: On -; Development Value: On -; Production Value: On -; http://php.net/session.upload-progress.cleanup -;session.upload_progress.cleanup = On - -; A prefix used for the upload progress key in $_SESSION -; Default Value: "upload_progress_" -; Development Value: "upload_progress_" -; Production Value: "upload_progress_" -; http://php.net/session.upload-progress.prefix -;session.upload_progress.prefix = "upload_progress_" - -; The index name (concatenated with the prefix) in $_SESSION -; containing the upload progress information -; Default Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Development Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Production Value: "PHP_SESSION_UPLOAD_PROGRESS" -; http://php.net/session.upload-progress.name -;session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS" - -; How frequently the upload progress should be updated. -; Given either in percentages (per-file), or in bytes -; Default Value: "1%" -; Development Value: "1%" -; Production Value: "1%" -; http://php.net/session.upload-progress.freq -;session.upload_progress.freq = "1%" - -; The minimum delay between updates, in seconds -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; http://php.net/session.upload-progress.min-freq -;session.upload_progress.min_freq = "1" - -; Only write session data when session data is changed. Enabled by default. -; http://php.net/session.lazy-write -;session.lazy_write = On - -[Assertion] -; Switch whether to compile assertions at all (to have no overhead at run-time) -; -1: Do not compile at all -; 0: Jump over assertion at run-time -; 1: Execute assertions -; Changing from or to a negative value is only possible in php.ini! (For turning assertions on and off at run-time, see assert.active, when zend.assertions = 1) -; Default Value: 1 -; Development Value: 1 -; Production Value: -1 -; http://php.net/zend.assertions -zend.assertions = -1 - -; Assert(expr); active by default. -; http://php.net/assert.active -;assert.active = On - -; Throw an AssertationException on failed assertions -; http://php.net/assert.exception -;assert.exception = On - -; Issue a PHP warning for each failed assertion. (Overridden by assert.exception if active) -; http://php.net/assert.warning -;assert.warning = On - -; Don't bail out by default. -; http://php.net/assert.bail -;assert.bail = Off - -; User-function to be called if an assertion fails. -; http://php.net/assert.callback -;assert.callback = 0 - -; Eval the expression with current error_reporting(). Set to true if you want -; error_reporting(0) around the eval(). -; http://php.net/assert.quiet-eval -;assert.quiet_eval = 0 - -[COM] -; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs -; http://php.net/com.typelib-file -;com.typelib_file = - -; allow Distributed-COM calls -; http://php.net/com.allow-dcom -;com.allow_dcom = true - -; autoregister constants of a components typlib on com_load() -; http://php.net/com.autoregister-typelib -;com.autoregister_typelib = true - -; register constants casesensitive -; http://php.net/com.autoregister-casesensitive -;com.autoregister_casesensitive = false - -; show warnings on duplicate constant registrations -; http://php.net/com.autoregister-verbose -;com.autoregister_verbose = true - -; The default character set code-page to use when passing strings to and from COM objects. -; Default: system ANSI code page -;com.code_page= - -[mbstring] -; language for internal character representation. -; This affects mb_send_mail() and mbstring.detect_order. -; http://php.net/mbstring.language -;mbstring.language = Japanese - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; internal/script encoding. -; Some encoding cannot work as internal encoding. (e.g. SJIS, BIG5, ISO-2022-*) -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;mbstring.internal_encoding = - -; Use of this INI entry is deprecated, use global input_encoding instead. -; http input encoding. -; mbstring.encoding_traslation = On is needed to use this setting. -; If empty, default_charset or input_encoding or mbstring.input is used. -; The precedence is: default_charset < intput_encoding < mbsting.http_input -; http://php.net/mbstring.http-input -;mbstring.http_input = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; http output encoding. -; mb_output_handler must be registered as output buffer to function. -; If empty, default_charset or output_encoding or mbstring.http_output is used. -; The precedence is: default_charset < output_encoding < mbstring.http_output -; To use an output encoding conversion, mbstring's output handler must be set -; otherwise output encoding conversion cannot be performed. -; http://php.net/mbstring.http-output -;mbstring.http_output = - -; enable automatic encoding translation according to -; mbstring.internal_encoding setting. Input chars are -; converted to internal encoding by setting this to On. -; Note: Do _not_ use automatic encoding translation for -; portable libs/applications. -; http://php.net/mbstring.encoding-translation -;mbstring.encoding_translation = Off - -; automatic encoding detection order. -; "auto" detect order is changed according to mbstring.language -; http://php.net/mbstring.detect-order -;mbstring.detect_order = auto - -; substitute_character used when character cannot be converted -; one from another -; http://php.net/mbstring.substitute-character -;mbstring.substitute_character = none - -; overload(replace) single byte functions by mbstring functions. -; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(), -; etc. Possible values are 0,1,2,4 or combination of them. -; For example, 7 for overload everything. -; 0: No overload -; 1: Overload mail() function -; 2: Overload str*() functions -; 4: Overload ereg*() functions -; http://php.net/mbstring.func-overload -;mbstring.func_overload = 0 - -; enable strict encoding detection. -; Default: Off -;mbstring.strict_detection = On - -; This directive specifies the regex pattern of content types for which mb_output_handler() -; is activated. -; Default: mbstring.http_output_conv_mimetype=^(text/|application/xhtml\+xml) -;mbstring.http_output_conv_mimetype= - -[gd] -; Tell the jpeg decode to ignore warnings and try to create -; a gd image. The warning will then be displayed as notices -; disabled by default -; http://php.net/gd.jpeg-ignore-warning -;gd.jpeg_ignore_warning = 1 - -[exif] -; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS. -; With mbstring support this will automatically be converted into the encoding -; given by corresponding encode setting. When empty mbstring.internal_encoding -; is used. For the decode settings you can distinguish between motorola and -; intel byte order. A decode setting cannot be empty. -; http://php.net/exif.encode-unicode -;exif.encode_unicode = ISO-8859-15 - -; http://php.net/exif.decode-unicode-motorola -;exif.decode_unicode_motorola = UCS-2BE - -; http://php.net/exif.decode-unicode-intel -;exif.decode_unicode_intel = UCS-2LE - -; http://php.net/exif.encode-jis -;exif.encode_jis = - -; http://php.net/exif.decode-jis-motorola -;exif.decode_jis_motorola = JIS - -; http://php.net/exif.decode-jis-intel -;exif.decode_jis_intel = JIS - -[Tidy] -; The path to a default tidy configuration file to use when using tidy -; http://php.net/tidy.default-config -;tidy.default_config = /usr/local/lib/php/default.tcfg - -; Should tidy clean and repair output automatically? -; WARNING: Do not use this option if you are generating non-html content -; such as dynamic images -; http://php.net/tidy.clean-output -tidy.clean_output = Off - -[soap] -; Enables or disables WSDL caching feature. -; http://php.net/soap.wsdl-cache-enabled -soap.wsdl_cache_enabled=1 - -; Sets the directory name where SOAP extension will put cache files. -; http://php.net/soap.wsdl-cache-dir -soap.wsdl_cache_dir="/tmp" - -; (time to live) Sets the number of second while cached file will be used -; instead of original one. -; http://php.net/soap.wsdl-cache-ttl -soap.wsdl_cache_ttl=86400 - -; Sets the size of the cache limit. (Max. number of WSDL files to cache) -soap.wsdl_cache_limit = 5 - -[sysvshm] -; A default size of the shared memory segment -;sysvshm.init_mem = 10000 - -[ldap] -; Sets the maximum number of open links or -1 for unlimited. -ldap.max_links = -1 - -[dba] -;dba.default_handler= - -[opcache] -; Determines if Zend OPCache is enabled -;opcache.enable=1 - -; Determines if Zend OPCache is enabled for the CLI version of PHP -;opcache.enable_cli=1 - -; The OPcache shared memory storage size. -;opcache.memory_consumption=128 - -; The amount of memory for interned strings in Mbytes. -;opcache.interned_strings_buffer=8 - -; The maximum number of keys (scripts) in the OPcache hash table. -; Only numbers between 200 and 1000000 are allowed. -;opcache.max_accelerated_files=10000 - -; The maximum percentage of "wasted" memory until a restart is scheduled. -;opcache.max_wasted_percentage=5 - -; When this directive is enabled, the OPcache appends the current working -; directory to the script key, thus eliminating possible collisions between -; files with the same name (basename). Disabling the directive improves -; performance, but may break existing applications. -;opcache.use_cwd=1 - -; When disabled, you must reset the OPcache manually or restart the -; webserver for changes to the filesystem to take effect. -;opcache.validate_timestamps=1 - -; How often (in seconds) to check file timestamps for changes to the shared -; memory storage allocation. ("1" means validate once per second, but only -; once per request. "0" means always validate) -;opcache.revalidate_freq=2 - -; Enables or disables file search in include_path optimization -;opcache.revalidate_path=0 - -; If disabled, all PHPDoc comments are dropped from the code to reduce the -; size of the optimized code. -;opcache.save_comments=1 - -; If enabled, a fast shutdown sequence is used for the accelerated code -; Depending on the used Memory Manager this may cause some incompatibilities. -;opcache.fast_shutdown=0 - -; Allow file existence override (file_exists, etc.) performance feature. -;opcache.enable_file_override=0 - -; A bitmask, where each bit enables or disables the appropriate OPcache -; passes -;opcache.optimization_level=0xffffffff - -;opcache.inherited_hack=1 -;opcache.dups_fix=0 - -; The location of the OPcache blacklist file (wildcards allowed). -; Each OPcache blacklist file is a text file that holds the names of files -; that should not be accelerated. The file format is to add each filename -; to a new line. The filename may be a full path or just a file prefix -; (i.e., /var/www/x blacklists all the files and directories in /var/www -; that start with 'x'). Line starting with a ; are ignored (comments). -;opcache.blacklist_filename= - -; Allows exclusion of large files from being cached. By default all files -; are cached. -;opcache.max_file_size=0 - -; Check the cache checksum each N requests. -; The default value of "0" means that the checks are disabled. -;opcache.consistency_checks=0 - -; How long to wait (in seconds) for a scheduled restart to begin if the cache -; is not being accessed. -;opcache.force_restart_timeout=180 - -; OPcache error_log file name. Empty string assumes "stderr". -;opcache.error_log= - -; All OPcache errors go to the Web server log. -; By default, only fatal errors (level 0) or errors (level 1) are logged. -; You can also enable warnings (level 2), info messages (level 3) or -; debug messages (level 4). -;opcache.log_verbosity_level=1 - -; Preferred Shared Memory back-end. Leave empty and let the system decide. -;opcache.preferred_memory_model= - -; Protect the shared memory from unexpected writing during script execution. -; Useful for internal debugging only. -;opcache.protect_memory=0 - -; Allows calling OPcache API functions only from PHP scripts which path is -; started from specified string. The default "" means no restriction -;opcache.restrict_api= - -; Mapping base of shared memory segments (for Windows only). All the PHP -; processes have to map shared memory into the same address space. This -; directive allows to manually fix the "Unable to reattach to base address" -; errors. -;opcache.mmap_base= - -; Enables and sets the second level cache directory. -; It should improve performance when SHM memory is full, at server restart or -; SHM reset. The default "" disables file based caching. -;opcache.file_cache= - -; Enables or disables opcode caching in shared memory. -;opcache.file_cache_only=0 - -; Enables or disables checksum validation when script loaded from file cache. -;opcache.file_cache_consistency_checks=1 - -; Implies opcache.file_cache_only=1 for a certain process that failed to -; reattach to the shared memory (for Windows only). Explicitly enabled file -; cache is required. -;opcache.file_cache_fallback=1 - -; Enables or disables copying of PHP code (text segment) into HUGE PAGES. -; This should improve performance, but requires appropriate OS configuration. -;opcache.huge_code_pages=1 - -; Validate cached file permissions. -;opcache.validate_permission=0 - -; Prevent name collisions in chroot'ed environment. -;opcache.validate_root=0 - -[curl] -; A default value for the CURLOPT_CAINFO option. This is required to be an -; absolute path. -;curl.cainfo = - -[openssl] -; The location of a Certificate Authority (CA) file on the local filesystem -; to use when verifying the identity of SSL/TLS peers. Most users should -; not specify a value for this directive as PHP will attempt to use the -; OS-managed cert stores in its absence. If specified, this value may still -; be overridden on a per-stream basis via the "cafile" SSL stream context -; option. -;openssl.cafile= - -; If openssl.cafile is not specified or if the CA file is not found, the -; directory pointed to by openssl.capath is searched for a suitable -; certificate. This value must be a correctly hashed certificate directory. -; Most users should not specify a value for this directive as PHP will -; attempt to use the OS-managed cert stores in its absence. If specified, -; this value may still be overridden on a per-stream basis via the "capath" -; SSL stream context option. -;openssl.capath= - -; Local Variables: -; tab-width: 4 -; End: - -[XDebug] -xdebug.remote_enable = 1 -xdebug.remote_handler = "dbgp" -; Set to host.docker.internal on Mac and Windows, otherwise, set to host real ip -xdebug.remote_host = host.docker.internal -;xdebug.remote_port = 9000 -xdebug.remote_log = /var/log/php/xdebug.log - -SERVER_ENV=develop - -yaf.use_spl_autoload=1 - -[xhprof] -;xhprof.output_dir = /var/log/php/xhprof.log \ No newline at end of file diff --git a/php7/7.4.33/conf/php-fpm.conf b/php7/7.4.33/conf/php-fpm.conf deleted file mode 100644 index 131835891..000000000 --- a/php7/7.4.33/conf/php-fpm.conf +++ /dev/null @@ -1,423 +0,0 @@ -; Start a new pool named 'www'. -; the variable $pool can be used in any directive and will be replaced by the -; pool name ('www' here) -[www] - -; Per pool prefix -; It only applies on the following directives: -; - 'access.log' -; - 'slowlog' -; - 'listen' (unixsocket) -; - 'chroot' -; - 'chdir' -; - 'php_values' -; - 'php_admin_values' -; When not set, the global prefix (or NONE) applies instead. -; Note: This directive can also be relative to the global prefix. -; Default Value: none -;prefix = /path/to/pools/$pool - -; Unix user/group of processes -; Note: The user is mandatory. If the group is not set, the default user's group -; will be used. -user = www-data -group = www-data - -; The address on which to accept FastCGI requests. -; Valid syntaxes are: -; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on -; a specific port; -; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on -; a specific port; -; 'port' - to listen on a TCP socket to all addresses -; (IPv6 and IPv4-mapped) on a specific port; -; '/path/to/unix/socket' - to listen on a unix socket. -; Note: This value is mandatory. -listen = 127.0.0.1:9000 - -; Set listen(2) backlog. -; Default Value: 511 (-1 on FreeBSD and OpenBSD) -;listen.backlog = 511 - -; Set permissions for unix socket, if one is used. In Linux, read/write -; permissions must be set in order to allow connections from a web server. Many -; BSD-derived systems allow connections regardless of permissions. -; Default Values: user and group are set as the running user -; mode is set to 0660 -;listen.owner = www-data -;listen.group = www-data -;listen.mode = 0660 -; When POSIX Access Control Lists are supported you can set them using -; these options, value is a comma separated list of user/group names. -; When set, listen.owner and listen.group are ignored -;listen.acl_users = -;listen.acl_groups = - -; List of addresses (IPv4/IPv6) of FastCGI clients which are allowed to connect. -; Equivalent to the FCGI_WEB_SERVER_ADDRS environment variable in the original -; PHP FCGI (5.2.2+). Makes sense only with a tcp listening socket. Each address -; must be separated by a comma. If this value is left blank, connections will be -; accepted from any ip address. -; Default Value: any -;listen.allowed_clients = 127.0.0.1 - -; Specify the nice(2) priority to apply to the pool processes (only if set) -; The value can vary from -19 (highest priority) to 20 (lower priority) -; Note: - It will only work if the FPM master process is launched as root -; - The pool processes will inherit the master process priority -; unless it specified otherwise -; Default Value: no set -; process.priority = -19 - -; Set the process dumpable flag (PR_SET_DUMPABLE prctl) even if the process user -; or group is differrent than the master process user. It allows to create process -; core dump and ptrace the process for the pool user. -; Default Value: no -; process.dumpable = yes - -; Choose how the process manager will control the number of child processes. -; Possible Values: -; static - a fixed number (pm.max_children) of child processes; -; dynamic - the number of child processes are set dynamically based on the -; following directives. With this process management, there will be -; always at least 1 children. -; pm.max_children - the maximum number of children that can -; be alive at the same time. -; pm.start_servers - the number of children created on startup. -; pm.min_spare_servers - the minimum number of children in 'idle' -; state (waiting to process). If the number -; of 'idle' processes is less than this -; number then some children will be created. -; pm.max_spare_servers - the maximum number of children in 'idle' -; state (waiting to process). If the number -; of 'idle' processes is greater than this -; number then some children will be killed. -; ondemand - no children are created at startup. Children will be forked when -; new requests will connect. The following parameter are used: -; pm.max_children - the maximum number of children that -; can be alive at the same time. -; pm.process_idle_timeout - The number of seconds after which -; an idle process will be killed. -; Note: This value is mandatory. -pm = dynamic - -; The number of child processes to be created when pm is set to 'static' and the -; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'. -; This value sets the limit on the number of simultaneous requests that will be -; served. Equivalent to the ApacheMaxClients directive with mpm_prefork. -; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP -; CGI. The below defaults are based on a server without much resources. Don't -; forget to tweak pm.* to fit your needs. -; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand' -; Note: This value is mandatory. -pm.max_children = 10 - -; The number of child processes created on startup. -; Note: Used only when pm is set to 'dynamic' -; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2 -pm.start_servers = 2 - -; The desired minimum number of idle server processes. -; Note: Used only when pm is set to 'dynamic' -; Note: Mandatory when pm is set to 'dynamic' -pm.min_spare_servers = 1 - -; The desired maximum number of idle server processes. -; Note: Used only when pm is set to 'dynamic' -; Note: Mandatory when pm is set to 'dynamic' -pm.max_spare_servers = 3 - -; The number of seconds after which an idle process will be killed. -; Note: Used only when pm is set to 'ondemand' -; Default Value: 10s -;pm.process_idle_timeout = 10s; - -; The number of requests each child process should execute before respawning. -; This can be useful to work around memory leaks in 3rd party libraries. For -; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS. -; Default Value: 0 -;pm.max_requests = 500 - -; The URI to view the FPM status page. If this value is not set, no URI will be -; recognized as a status page. It shows the following informations: -; pool - the name of the pool; -; process manager - static, dynamic or ondemand; -; start time - the date and time FPM has started; -; start since - number of seconds since FPM has started; -; accepted conn - the number of request accepted by the pool; -; listen queue - the number of request in the queue of pending -; connections (see backlog in listen(2)); -; max listen queue - the maximum number of requests in the queue -; of pending connections since FPM has started; -; listen queue len - the size of the socket queue of pending connections; -; idle processes - the number of idle processes; -; active processes - the number of active processes; -; total processes - the number of idle + active processes; -; max active processes - the maximum number of active processes since FPM -; has started; -; max children reached - number of times, the process limit has been reached, -; when pm tries to start more children (works only for -; pm 'dynamic' and 'ondemand'); -; Value are updated in real time. -; Example output: -; pool: www -; process manager: static -; start time: 01/Jul/2011:17:53:49 +0200 -; start since: 62636 -; accepted conn: 190460 -; listen queue: 0 -; max listen queue: 1 -; listen queue len: 42 -; idle processes: 4 -; active processes: 11 -; total processes: 15 -; max active processes: 12 -; max children reached: 0 -; -; By default the status page output is formatted as text/plain. Passing either -; 'html', 'xml' or 'json' in the query string will return the corresponding -; output syntax. Example: -; http://www.foo.bar/status -; http://www.foo.bar/status?json -; http://www.foo.bar/status?html -; http://www.foo.bar/status?xml -; -; By default the status page only outputs short status. Passing 'full' in the -; query string will also return status for each pool process. -; Example: -; http://www.foo.bar/status?full -; http://www.foo.bar/status?json&full -; http://www.foo.bar/status?html&full -; http://www.foo.bar/status?xml&full -; The Full status returns for each process: -; pid - the PID of the process; -; state - the state of the process (Idle, Running, ...); -; start time - the date and time the process has started; -; start since - the number of seconds since the process has started; -; requests - the number of requests the process has served; -; request duration - the duration in µs of the requests; -; request method - the request method (GET, POST, ...); -; request URI - the request URI with the query string; -; content length - the content length of the request (only with POST); -; user - the user (PHP_AUTH_USER) (or '-' if not set); -; script - the main script called (or '-' if not set); -; last request cpu - the %cpu the last request consumed -; it's always 0 if the process is not in Idle state -; because CPU calculation is done when the request -; processing has terminated; -; last request memory - the max amount of memory the last request consumed -; it's always 0 if the process is not in Idle state -; because memory calculation is done when the request -; processing has terminated; -; If the process is in Idle state, then informations are related to the -; last request the process has served. Otherwise informations are related to -; the current request being served. -; Example output: -; ************************ -; pid: 31330 -; state: Running -; start time: 01/Jul/2011:17:53:49 +0200 -; start since: 63087 -; requests: 12808 -; request duration: 1250261 -; request method: GET -; request URI: /test_mem.php?N=10000 -; content length: 0 -; user: - -; script: /home/fat/web/docs/php/test_mem.php -; last request cpu: 0.00 -; last request memory: 0 -; -; Note: There is a real-time FPM status monitoring sample web page available -; It's available in: /usr/local/share/php/fpm/status.html -; -; Note: The value must start with a leading slash (/). The value can be -; anything, but it may not be a good idea to use the .php extension or it -; may conflict with a real PHP file. -; Default Value: not set -;pm.status_path = /status - -; The ping URI to call the monitoring page of FPM. If this value is not set, no -; URI will be recognized as a ping page. This could be used to test from outside -; that FPM is alive and responding, or to -; - create a graph of FPM availability (rrd or such); -; - remove a server from a group if it is not responding (load balancing); -; - trigger alerts for the operating team (24/7). -; Note: The value must start with a leading slash (/). The value can be -; anything, but it may not be a good idea to use the .php extension or it -; may conflict with a real PHP file. -; Default Value: not set -;ping.path = /ping - -; This directive may be used to customize the response of a ping request. The -; response is formatted as text/plain with a 200 response code. -; Default Value: pong -;ping.response = pong - -; The access log file -; Default: not set -;access.log = log/$pool.access.log - -; The access log format. -; The following syntax is allowed -; %%: the '%' character -; %C: %CPU used by the request -; it can accept the following format: -; - %{user}C for user CPU only -; - %{system}C for system CPU only -; - %{total}C for user + system CPU (default) -; %d: time taken to serve the request -; it can accept the following format: -; - %{seconds}d (default) -; - %{miliseconds}d -; - %{mili}d -; - %{microseconds}d -; - %{micro}d -; %e: an environment variable (same as $_ENV or $_SERVER) -; it must be associated with embraces to specify the name of the env -; variable. Some exemples: -; - server specifics like: %{REQUEST_METHOD}e or %{SERVER_PROTOCOL}e -; - HTTP headers like: %{HTTP_HOST}e or %{HTTP_USER_AGENT}e -; %f: script filename -; %l: content-length of the request (for POST request only) -; %m: request method -; %M: peak of memory allocated by PHP -; it can accept the following format: -; - %{bytes}M (default) -; - %{kilobytes}M -; - %{kilo}M -; - %{megabytes}M -; - %{mega}M -; %n: pool name -; %o: output header -; it must be associated with embraces to specify the name of the header: -; - %{Content-Type}o -; - %{X-Powered-By}o -; - %{Transfert-Encoding}o -; - .... -; %p: PID of the child that serviced the request -; %P: PID of the parent of the child that serviced the request -; %q: the query string -; %Q: the '?' character if query string exists -; %r: the request URI (without the query string, see %q and %Q) -; %R: remote IP address -; %s: status (response code) -; %t: server time the request was received -; it can accept a strftime(3) format: -; %d/%b/%Y:%H:%M:%S %z (default) -; The strftime(3) format must be encapsuled in a %{}t tag -; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t -; %T: time the log has been written (the request has finished) -; it can accept a strftime(3) format: -; %d/%b/%Y:%H:%M:%S %z (default) -; The strftime(3) format must be encapsuled in a %{}t tag -; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t -; %u: remote user -; -; Default: "%R - %u %t \"%m %r\" %s" -;access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%" - -; The log file for slow requests -; Default Value: not set -; Note: slowlog is mandatory if request_slowlog_timeout is set -slowlog = /var/log/php/fpm.slow.log - -; The timeout for serving a single request after which a PHP backtrace will be -; dumped to the 'slowlog' file. A value of '0s' means 'off'. -; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) -; Default Value: 0 -request_slowlog_timeout = 3 - -; Depth of slow log stack trace. -; Default Value: 20 -;request_slowlog_trace_depth = 20 - -; The timeout for serving a single request after which the worker process will -; be killed. This option should be used when the 'max_execution_time' ini option -; does not stop script execution for some reason. A value of '0' means 'off'. -; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) -; Default Value: 0 -;request_terminate_timeout = 0 - -; Set open file descriptor rlimit. -; Default Value: system defined value -;rlimit_files = 1024 - -; Set max core size rlimit. -; Possible Values: 'unlimited' or an integer greater or equal to 0 -; Default Value: system defined value -;rlimit_core = 0 - -; Chroot to this directory at the start. This value must be defined as an -; absolute path. When this value is not set, chroot is not used. -; Note: you can prefix with '$prefix' to chroot to the pool prefix or one -; of its subdirectories. If the pool prefix is not set, the global prefix -; will be used instead. -; Note: chrooting is a great security feature and should be used whenever -; possible. However, all PHP paths will be relative to the chroot -; (error_log, sessions.save_path, ...). -; Default Value: not set -;chroot = - -; Chdir to this directory at the start. -; Note: relative path can be used. -; Default Value: current directory or / when chroot -;chdir = /var/www - -; Redirect worker stdout and stderr into main error log. If not set, stdout and -; stderr will be redirected to /dev/null according to FastCGI specs. -; Note: on highloaded environement, this can cause some delay in the page -; process time (several ms). -; Default Value: no -catch_workers_output = yes - -; Clear environment in FPM workers -; Prevents arbitrary environment variables from reaching FPM worker processes -; by clearing the environment in workers before env vars specified in this -; pool configuration are added. -; Setting to "no" will make all environment variables available to PHP code -; via getenv(), $_ENV and $_SERVER. -; Default Value: yes -;clear_env = no - -; Limits the extensions of the main script FPM will allow to parse. This can -; prevent configuration mistakes on the web server side. You should only limit -; FPM to .php extensions to prevent malicious users to use other extensions to -; execute php code. -; Note: set an empty value to allow all extensions. -; Default Value: .php -;security.limit_extensions = .php .php3 .php4 .php5 .php7 - -; Pass environment variables like LD_LIBRARY_PATH. All $VARIABLEs are taken from -; the current environment. -; Default Value: clean env -;env[HOSTNAME] = $HOSTNAME -;env[PATH] = /usr/local/bin:/usr/bin:/bin -;env[TMP] = /tmp -;env[TMPDIR] = /tmp -;env[TEMP] = /tmp - -; Additional php.ini defines, specific to this pool of workers. These settings -; overwrite the values previously defined in the php.ini. The directives are the -; same as the PHP SAPI: -; php_value/php_flag - you can set classic ini defines which can -; be overwritten from PHP call 'ini_set'. -; php_admin_value/php_admin_flag - these directives won't be overwritten by -; PHP call 'ini_set' -; For php_*flag, valid values are on, off, 1, 0, true, false, yes or no. - -; Defining 'extension' will load the corresponding shared extension from -; extension_dir. Defining 'disable_functions' or 'disable_classes' will not -; overwrite previously defined php.ini values, but will append the new value -; instead. - -; Note: path INI options can be relative and will be expanded with the prefix -; (pool, global or /usr/local) - -; Default Value: nothing is defined by default except the values in php.ini and -; specified at startup with the -d argument -;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com -;php_flag[display_errors] = off -;php_admin_value[error_log] = /var/log/fpm-php.www.log -;php_admin_flag[log_errors] = on -;php_admin_value[memory_limit] = 32M diff --git a/php7/7.4.33/conf/php.ini b/php7/7.4.33/conf/php.ini deleted file mode 100644 index b6b0aee69..000000000 --- a/php7/7.4.33/conf/php.ini +++ /dev/null @@ -1,1933 +0,0 @@ -[PHP] - -;;;;;;;;;;;;;;;;;;; -; About php.ini ; -;;;;;;;;;;;;;;;;;;; -; PHP's initialization file, generally called php.ini, is responsible for -; configuring many of the aspects of PHP's behavior. - -; PHP attempts to find and load this configuration from a number of locations. -; The following is a summary of its search order: -; 1. SAPI module specific location. -; 2. The PHPRC environment variable. (As of PHP 5.2.0) -; 3. A number of predefined registry keys on Windows (As of PHP 5.2.0) -; 4. Current working directory (except CLI) -; 5. The web server's directory (for SAPI modules), or directory of PHP -; (otherwise in Windows) -; 6. The directory from the --with-config-file-path compile time option, or the -; Windows directory (C:\windows or C:\winnt) -; See the PHP docs for more specific information. -; http://php.net/configuration.file - -; The syntax of the file is extremely simple. Whitespace and lines -; beginning with a semicolon are silently ignored (as you probably guessed). -; Section headers (e.g. [Foo]) are also silently ignored, even though -; they might mean something in the future. - -; Directives following the section heading [PATH=/www/mysite] only -; apply to PHP files in the /www/mysite directory. Directives -; following the section heading [HOST=www.example.com] only apply to -; PHP files served from www.example.com. Directives set in these -; special sections cannot be overridden by user-defined INI files or -; at runtime. Currently, [PATH=] and [HOST=] sections only work under -; CGI/FastCGI. -; http://php.net/ini.sections - -; Directives are specified using the following syntax: -; directive = value -; Directive names are *case sensitive* - foo=bar is different from FOO=bar. -; Directives are variables used to configure PHP or PHP extensions. -; There is no name validation. If PHP can't find an expected -; directive because it is not set or is mistyped, a default value will be used. - -; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one -; of the INI constants (On, Off, True, False, Yes, No and None) or an expression -; (e.g. E_ALL & ~E_NOTICE), a quoted string ("bar"), or a reference to a -; previously set variable or directive (e.g. ${foo}) - -; Expressions in the INI file are limited to bitwise operators and parentheses: -; | bitwise OR -; ^ bitwise XOR -; & bitwise AND -; ~ bitwise NOT -; ! boolean NOT - -; Boolean flags can be turned on using the values 1, On, True or Yes. -; They can be turned off using the values 0, Off, False or No. - -; An empty string can be denoted by simply not writing anything after the equal -; sign, or by using the None keyword: - -; foo = ; sets foo to an empty string -; foo = None ; sets foo to an empty string -; foo = "None" ; sets foo to the string 'None' - -; If you use constants in your value, and these constants belong to a -; dynamically loaded extension (either a PHP extension or a Zend extension), -; you may only use these constants *after* the line that loads the extension. - -;;;;;;;;;;;;;;;;;;; -; About this file ; -;;;;;;;;;;;;;;;;;;; -; PHP comes packaged with two INI files. One that is recommended to be used -; in production environments and one that is recommended to be used in -; development environments. - -; php.ini-production contains settings which hold security, performance and -; best practices at its core. But please be aware, these settings may break -; compatibility with older or less security conscience applications. We -; recommending using the production ini in production and testing environments. - -; php.ini-development is very similar to its production variant, except it is -; much more verbose when it comes to errors. We recommend using the -; development version only in development environments, as errors shown to -; application users can inadvertently leak otherwise secure information. - -; This is php.ini-production INI file. - -;;;;;;;;;;;;;;;;;;; -; Quick Reference ; -;;;;;;;;;;;;;;;;;;; -; The following are all the settings which are different in either the production -; or development versions of the INIs with respect to PHP's default behavior. -; Please see the actual settings later in the document for more details as to why -; we recommend these changes in PHP's behavior. - -; display_errors -; Default Value: On -; Development Value: On -; Production Value: Off - -; display_startup_errors -; Default Value: Off -; Development Value: On -; Production Value: Off - -; error_reporting -; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT - -; html_errors -; Default Value: On -; Development Value: On -; Production value: On - -; log_errors -; Default Value: Off -; Development Value: On -; Production Value: On - -; max_input_time -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) - -; output_buffering -; Default Value: Off -; Development Value: 4096 -; Production Value: 4096 - -; register_argc_argv -; Default Value: On -; Development Value: Off -; Production Value: Off - -; request_order -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" - -; session.gc_divisor -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 - -; session.sid_bits_per_character -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 - -; short_open_tag -; Default Value: On -; Development Value: Off -; Production Value: Off - -; track_errors -; Default Value: Off -; Development Value: On -; Production Value: Off - -; variables_order -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS" - -;;;;;;;;;;;;;;;;;;;; -; php.ini Options ; -;;;;;;;;;;;;;;;;;;;; -; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini" -;user_ini.filename = ".user.ini" - -; To disable this feature set this option to empty value -;user_ini.filename = - -; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes) -;user_ini.cache_ttl = 300 - -;;;;;;;;;;;;;;;;;;;; -; Language Options ; -;;;;;;;;;;;;;;;;;;;; - -; Enable the PHP scripting language engine under Apache. -; http://php.net/engine -engine = On - -; This directive determines whether or not PHP will recognize code between -; tags as PHP source which should be processed as such. It is -; generally recommended that should be used and that this feature -; should be disabled, as enabling it may result in issues when generating XML -; documents, however this remains supported for backward compatibility reasons. -; Note that this directive does not control the would work. -; http://php.net/syntax-highlighting -;highlight.string = #DD0000 -;highlight.comment = #FF9900 -;highlight.keyword = #007700 -;highlight.default = #0000BB -;highlight.html = #000000 - -; If enabled, the request will be allowed to complete even if the user aborts -; the request. Consider enabling it if executing long requests, which may end up -; being interrupted by the user or a browser timing out. PHP's default behavior -; is to disable this feature. -; http://php.net/ignore-user-abort -;ignore_user_abort = On - -; Determines the size of the realpath cache to be used by PHP. This value should -; be increased on systems where PHP opens many files to reflect the quantity of -; the file operations performed. -; http://php.net/realpath-cache-size -;realpath_cache_size = 4096k - -; Duration of time, in seconds for which to cache realpath information for a given -; file or directory. For systems with rarely changing files, consider increasing this -; value. -; http://php.net/realpath-cache-ttl -;realpath_cache_ttl = 120 - -; Enables or disables the circular reference collector. -; http://php.net/zend.enable-gc -zend.enable_gc = On - -; If enabled, scripts may be written in encodings that are incompatible with -; the scanner. CP936, Big5, CP949 and Shift_JIS are the examples of such -; encodings. To use this feature, mbstring extension must be enabled. -; Default: Off -;zend.multibyte = Off - -; Allows to set the default encoding for the scripts. This value will be used -; unless "declare(encoding=...)" directive appears at the top of the script. -; Only affects if zend.multibyte is set. -; Default: "" -;zend.script_encoding = - -;;;;;;;;;;;;;;;;; -; Miscellaneous ; -;;;;;;;;;;;;;;;;; - -; Decides whether PHP may expose the fact that it is installed on the server -; (e.g. by adding its signature to the Web server header). It is no security -; threat in any way, but it makes it possible to determine whether you use PHP -; on your server or not. -; http://php.net/expose-php -expose_php = Off - -;;;;;;;;;;;;;;;;;;; -; Resource Limits ; -;;;;;;;;;;;;;;;;;;; - -; Maximum execution time of each script, in seconds -; http://php.net/max-execution-time -; Note: This directive is hardcoded to 0 for the CLI SAPI -max_execution_time = 30 - -; Maximum amount of time each script may spend parsing request data. It's a good -; idea to limit this time on productions servers in order to eliminate unexpectedly -; long running scripts. -; Note: This directive is hardcoded to -1 for the CLI SAPI -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) -; http://php.net/max-input-time -max_input_time = 60 - -; Maximum input variable nesting level -; http://php.net/max-input-nesting-level -;max_input_nesting_level = 64 - -; How many GET/POST/COOKIE input variables may be accepted -; max_input_vars = 1000 - -; Maximum amount of memory a script may consume (128MB) -; http://php.net/memory-limit -memory_limit = 256M - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; Error handling and logging ; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -; This directive informs PHP of which errors, warnings and notices you would like -; it to take action for. The recommended way of setting values for this -; directive is through the use of the error level constants and bitwise -; operators. The error level constants are below here for convenience as well as -; some common settings and their meanings. -; By default, PHP is set to take action on all errors, notices and warnings EXCEPT -; those related to E_NOTICE and E_STRICT, which together cover best practices and -; recommended coding standards in PHP. For performance reasons, this is the -; recommend error reporting setting. Your production server shouldn't be wasting -; resources complaining about best practices and coding standards. That's what -; development servers and development settings are for. -; Note: The php.ini-development file has this setting as E_ALL. This -; means it pretty much reports everything which is exactly what you want during -; development and early testing. -; -; Error Level Constants: -; E_ALL - All errors and warnings (includes E_STRICT as of PHP 5.4.0) -; E_ERROR - fatal run-time errors -; E_RECOVERABLE_ERROR - almost fatal run-time errors -; E_WARNING - run-time warnings (non-fatal errors) -; E_PARSE - compile-time parse errors -; E_NOTICE - run-time notices (these are warnings which often result -; from a bug in your code, but it's possible that it was -; intentional (e.g., using an uninitialized variable and -; relying on the fact it is automatically initialized to an -; empty string) -; E_STRICT - run-time notices, enable to have PHP suggest changes -; to your code which will ensure the best interoperability -; and forward compatibility of your code -; E_CORE_ERROR - fatal errors that occur during PHP's initial startup -; E_CORE_WARNING - warnings (non-fatal errors) that occur during PHP's -; initial startup -; E_COMPILE_ERROR - fatal compile-time errors -; E_COMPILE_WARNING - compile-time warnings (non-fatal errors) -; E_USER_ERROR - user-generated error message -; E_USER_WARNING - user-generated warning message -; E_USER_NOTICE - user-generated notice message -; E_DEPRECATED - warn about code that will not work in future versions -; of PHP -; E_USER_DEPRECATED - user-generated deprecation warnings -; -; Common Values: -; E_ALL (Show all errors, warnings and notices including coding standards.) -; E_ALL & ~E_NOTICE (Show all errors, except for notices) -; E_ALL & ~E_NOTICE & ~E_STRICT (Show all errors, except for notices and coding standards warnings.) -; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors) -; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT -; http://php.net/error-reporting -error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT - -; This directive controls whether or not and where PHP will output errors, -; notices and warnings too. Error output is very useful during development, but -; it could be very dangerous in production environments. Depending on the code -; which is triggering the error, sensitive information could potentially leak -; out of your application such as database usernames and passwords or worse. -; For production environments, we recommend logging errors rather than -; sending them to STDOUT. -; Possible Values: -; Off = Do not display any errors -; stderr = Display errors to STDERR (affects only CGI/CLI binaries!) -; On or stdout = Display errors to STDOUT -; Default Value: On -; Development Value: On -; Production Value: Off -; http://php.net/display-errors -display_errors = Off - -; The display of errors which occur during PHP's startup sequence are handled -; separately from display_errors. PHP's default behavior is to suppress those -; errors from clients. Turning the display of startup errors on can be useful in -; debugging configuration problems. We strongly recommend you -; set this to 'off' for production servers. -; Default Value: Off -; Development Value: On -; Production Value: Off -; http://php.net/display-startup-errors -display_startup_errors = Off - -; Besides displaying errors, PHP can also log errors to locations such as a -; server-specific log, STDERR, or a location specified by the error_log -; directive found below. While errors should not be displayed on productions -; servers they should still be monitored and logging is a great way to do that. -; Default Value: Off -; Development Value: On -; Production Value: On -; http://php.net/log-errors -log_errors = On - -; Set maximum length of log_errors. In error_log information about the source is -; added. The default is 1024 and 0 allows to not apply any maximum length at all. -; http://php.net/log-errors-max-len -log_errors_max_len = 1024 - -; Do not log repeated messages. Repeated errors must occur in same file on same -; line unless ignore_repeated_source is set true. -; http://php.net/ignore-repeated-errors -ignore_repeated_errors = Off - -; Ignore source of message when ignoring repeated messages. When this setting -; is On you will not log errors with repeated messages from different files or -; source lines. -; http://php.net/ignore-repeated-source -ignore_repeated_source = Off - -; If this parameter is set to Off, then memory leaks will not be shown (on -; stdout or in the log). This has only effect in a debug compile, and if -; error reporting includes E_WARNING in the allowed list -; http://php.net/report-memleaks -report_memleaks = On - -; This setting is on by default. -;report_zend_debug = 0 - -; Store the last error/warning message in $php_errormsg (boolean). Setting this value -; to On can assist in debugging and is appropriate for development servers. It should -; however be disabled on production servers. -; Default Value: Off -; Development Value: On -; Production Value: Off -; http://php.net/track-errors -track_errors = Off - -; Turn off normal error reporting and emit XML-RPC error XML -; http://php.net/xmlrpc-errors -;xmlrpc_errors = 0 - -; An XML-RPC faultCode -;xmlrpc_error_number = 0 - -; When PHP displays or logs an error, it has the capability of formatting the -; error message as HTML for easier reading. This directive controls whether -; the error message is formatted as HTML or not. -; Note: This directive is hardcoded to Off for the CLI SAPI -; Default Value: On -; Development Value: On -; Production value: On -; http://php.net/html-errors -html_errors = On - -; If html_errors is set to On *and* docref_root is not empty, then PHP -; produces clickable error messages that direct to a page describing the error -; or function causing the error in detail. -; You can download a copy of the PHP manual from http://php.net/docs -; and change docref_root to the base URL of your local copy including the -; leading '/'. You must also specify the file extension being used including -; the dot. PHP's default behavior is to leave these settings empty, in which -; case no links to documentation are generated. -; Note: Never use this feature for production boxes. -; http://php.net/docref-root -; Examples -;docref_root = "/phpmanual/" - -; http://php.net/docref-ext -;docref_ext = .html - -; String to output before an error message. PHP's default behavior is to leave -; this setting blank. -; http://php.net/error-prepend-string -; Example: -;error_prepend_string = "" - -; String to output after an error message. PHP's default behavior is to leave -; this setting blank. -; http://php.net/error-append-string -; Example: -;error_append_string = "" - -; Log errors to specified file. PHP's default behavior is to leave this value -; empty. -; http://php.net/error-log -; Example: -;error_log = php_errors.log -; Log errors to syslog (Event Log on Windows). -error_log = /var/log/php/php.error.log - -;windows.show_crt_warning -; Default value: 0 -; Development value: 0 -; Production value: 0 - -;;;;;;;;;;;;;;;;; -; Data Handling ; -;;;;;;;;;;;;;;;;; - -; The separator used in PHP generated URLs to separate arguments. -; PHP's default setting is "&". -; http://php.net/arg-separator.output -; Example: -;arg_separator.output = "&" - -; List of separator(s) used by PHP to parse input URLs into variables. -; PHP's default setting is "&". -; NOTE: Every character in this directive is considered as separator! -; http://php.net/arg-separator.input -; Example: -;arg_separator.input = ";&" - -; This directive determines which super global arrays are registered when PHP -; starts up. G,P,C,E & S are abbreviations for the following respective super -; globals: GET, POST, COOKIE, ENV and SERVER. There is a performance penalty -; paid for the registration of these arrays and because ENV is not as commonly -; used as the others, ENV is not recommended on productions servers. You -; can still get access to the environment variables through getenv() should you -; need to. -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS"; -; http://php.net/variables-order -variables_order = "GPCS" - -; This directive determines which super global data (G,P & C) should be -; registered into the super global array REQUEST. If so, it also determines -; the order in which that data is registered. The values for this directive -; are specified in the same manner as the variables_order directive, -; EXCEPT one. Leaving this value empty will cause PHP to use the value set -; in the variables_order directive. It does not mean it will leave the super -; globals array REQUEST empty. -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" -; http://php.net/request-order -request_order = "GP" - -; This directive determines whether PHP registers $argv & $argc each time it -; runs. $argv contains an array of all the arguments passed to PHP when a script -; is invoked. $argc contains an integer representing the number of arguments -; that were passed when the script was invoked. These arrays are extremely -; useful when running scripts from the command line. When this directive is -; enabled, registering these variables consumes CPU cycles and memory each time -; a script is executed. For performance reasons, this feature should be disabled -; on production servers. -; Note: This directive is hardcoded to On for the CLI SAPI -; Default Value: On -; Development Value: Off -; Production Value: Off -; http://php.net/register-argc-argv -register_argc_argv = Off - -; When enabled, the ENV, REQUEST and SERVER variables are created when they're -; first used (Just In Time) instead of when the script starts. If these -; variables are not used within a script, having this directive on will result -; in a performance gain. The PHP directive register_argc_argv must be disabled -; for this directive to have any affect. -; http://php.net/auto-globals-jit -auto_globals_jit = On - -; Whether PHP will read the POST data. -; This option is enabled by default. -; Most likely, you won't want to disable this option globally. It causes $_POST -; and $_FILES to always be empty; the only way you will be able to read the -; POST data will be through the php://input stream wrapper. This can be useful -; to proxy requests or to process the POST data in a memory efficient fashion. -; http://php.net/enable-post-data-reading -;enable_post_data_reading = Off - -; Maximum size of POST data that PHP will accept. -; Its value may be 0 to disable the limit. It is ignored if POST data reading -; is disabled through enable_post_data_reading. -; http://php.net/post-max-size -post_max_size = 100M - -; Automatically add files before PHP document. -; http://php.net/auto-prepend-file -auto_prepend_file = - -; Automatically add files after PHP document. -; http://php.net/auto-append-file -auto_append_file = - -; By default, PHP will output a media type using the Content-Type header. To -; disable this, simply set it to be empty. -; -; PHP's built-in default media type is set to text/html. -; http://php.net/default-mimetype -default_mimetype = "text/html" - -; PHP's default character set is set to UTF-8. -; http://php.net/default-charset -default_charset = "UTF-8" - -; PHP internal character encoding is set to empty. -; If empty, default_charset is used. -; http://php.net/internal-encoding -;internal_encoding = - -; PHP input character encoding is set to empty. -; If empty, default_charset is used. -; http://php.net/input-encoding -;input_encoding = - -; PHP output character encoding is set to empty. -; If empty, default_charset is used. -; See also output_buffer. -; http://php.net/output-encoding -;output_encoding = - -;;;;;;;;;;;;;;;;;;;;;;;;; -; Paths and Directories ; -;;;;;;;;;;;;;;;;;;;;;;;;; - -; UNIX: "/path1:/path2" -;include_path = ".:/php/includes" -; -; Windows: "\path1;\path2" -;include_path = ".;c:\php\includes" -; -; PHP's default setting for include_path is ".;/path/to/php/pear" -; http://php.net/include-path - -; The root of the PHP pages, used only if nonempty. -; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root -; if you are running php as a CGI under any web server (other than IIS) -; see documentation for security issues. The alternate is to use the -; cgi.force_redirect configuration below -; http://php.net/doc-root -doc_root = - -; The directory under which PHP opens the script using /~username used only -; if nonempty. -; http://php.net/user-dir -user_dir = - -; Directory in which the loadable extensions (modules) reside. -; http://php.net/extension-dir -; extension_dir = "./" -; On windows: -; extension_dir = "ext" - -; Directory where the temporary files should be placed. -; Defaults to the system default (see sys_get_temp_dir) -; sys_temp_dir = "/tmp" - -; Whether or not to enable the dl() function. The dl() function does NOT work -; properly in multithreaded servers, such as IIS or Zeus, and is automatically -; disabled on them. -; http://php.net/enable-dl -enable_dl = Off - -; cgi.force_redirect is necessary to provide security running PHP as a CGI under -; most web servers. Left undefined, PHP turns this on by default. You can -; turn it off here AT YOUR OWN RISK -; **You CAN safely turn this off for IIS, in fact, you MUST.** -; http://php.net/cgi.force-redirect -;cgi.force_redirect = 1 - -; if cgi.nph is enabled it will force cgi to always sent Status: 200 with -; every request. PHP's default behavior is to disable this feature. -;cgi.nph = 1 - -; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape -; (iPlanet) web servers, you MAY need to set an environment variable name that PHP -; will look for to know it is OK to continue execution. Setting this variable MAY -; cause security issues, KNOW WHAT YOU ARE DOING FIRST. -; http://php.net/cgi.redirect-status-env -;cgi.redirect_status_env = - -; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's -; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok -; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting -; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting -; of zero causes PHP to behave as before. Default is 1. You should fix your scripts -; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. -; http://php.net/cgi.fix-pathinfo -;cgi.fix_pathinfo=1 - -; if cgi.discard_path is enabled, the PHP CGI binary can safely be placed outside -; of the web tree and people will not be able to circumvent .htaccess security. -; http://php.net/cgi.dicard-path -;cgi.discard_path=1 - -; FastCGI under IIS (on WINNT based OS) supports the ability to impersonate -; security tokens of the calling client. This allows IIS to define the -; security context that the request runs under. mod_fastcgi under Apache -; does not currently support this feature (03/17/2002) -; Set to 1 if running under IIS. Default is zero. -; http://php.net/fastcgi.impersonate -;fastcgi.impersonate = 1 - -; Disable logging through FastCGI connection. PHP's default behavior is to enable -; this feature. -;fastcgi.logging = 0 - -; cgi.rfc2616_headers configuration option tells PHP what type of headers to -; use when sending HTTP response code. If set to 0, PHP sends Status: header that -; is supported by Apache. When this option is set to 1, PHP will send -; RFC2616 compliant header. -; Default is zero. -; http://php.net/cgi.rfc2616-headers -;cgi.rfc2616_headers = 0 - -; cgi.check_shebang_line controls whether CGI PHP checks for line starting with #! -; (shebang) at the top of the running script. This line might be needed if the -; script support running both as stand-alone script and via PHP CGI<. PHP in CGI -; mode skips this line and ignores its content if this directive is turned on. -; http://php.net/cgi.check-shebang-line -;cgi.check_shebang_line=1 - -;;;;;;;;;;;;;;;; -; File Uploads ; -;;;;;;;;;;;;;;;; - -; Whether to allow HTTP file uploads. -; http://php.net/file-uploads -file_uploads = On - -; Temporary directory for HTTP uploaded files (will use system default if not -; specified). -; http://php.net/upload-tmp-dir -;upload_tmp_dir = - -; Maximum allowed size for uploaded files. -; http://php.net/upload-max-filesize -upload_max_filesize = 50M - -; Maximum number of files that can be uploaded via a single request -max_file_uploads = 20 - -;;;;;;;;;;;;;;;;;; -; Fopen wrappers ; -;;;;;;;;;;;;;;;;;; - -; Whether to allow the treatment of URLs (like http:// or ftp://) as files. -; http://php.net/allow-url-fopen -allow_url_fopen = On - -; Whether to allow include/require to open URLs (like http:// or ftp://) as files. -; http://php.net/allow-url-include -allow_url_include = Off - -; Define the anonymous ftp password (your email address). PHP's default setting -; for this is empty. -; http://php.net/from -;from="john@doe.com" - -; Define the User-Agent string. PHP's default setting for this is empty. -; http://php.net/user-agent -;user_agent="PHP" - -; Default timeout for socket based streams (seconds) -; http://php.net/default-socket-timeout -default_socket_timeout = 60 - -; If your scripts have to deal with files from Macintosh systems, -; or you are running on a Mac and need to deal with files from -; unix or win32 systems, setting this flag will cause PHP to -; automatically detect the EOL character in those files so that -; fgets() and file() will work regardless of the source of the file. -; http://php.net/auto-detect-line-endings -;auto_detect_line_endings = Off - -;;;;;;;;;;;;;;;;;;;;;; -; Dynamic Extensions ; -;;;;;;;;;;;;;;;;;;;;;; - -; If you wish to have an extension loaded automatically, use the following -; syntax: -; -; extension=modulename.extension -; -; For example, on Windows: -; -; extension=mysqli.dll -; -; ... or under UNIX: -; -; extension=mysqli.so -; -; ... or with a path: -; -; extension=/path/to/extension/mysqli.so -; -; If you only provide the name of the extension, PHP will look for it in its -; default extension directory. -; -; Windows Extensions -; Note that ODBC support is built in, so no dll is needed for it. -; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5+) -; extension folders as well as the separate PECL DLL download (PHP 5+). -; Be sure to appropriately set the extension_dir directive. -; -;extension=php_bz2.dll -;extension=php_curl.dll -;extension=php_fileinfo.dll -;extension=php_ftp.dll -;extension=php_gd2.dll -;extension=php_gettext.dll -;extension=php_gmp.dll -;extension=php_intl.dll -;extension=php_imap.dll -;extension=php_interbase.dll -;extension=php_ldap.dll -;extension=php_mbstring.dll -;extension=php_exif.dll ; Must be after mbstring as it depends on it -;extension=php_mysqli.dll -;extension=php_oci8_12c.dll ; Use with Oracle Database 12c Instant Client -;extension=php_openssl.dll -;extension=php_pdo_firebird.dll -;extension=php_pdo_mysql.dll -;extension=php_pdo_oci.dll -;extension=php_pdo_odbc.dll -;extension=php_pdo_pgsql.dll -;extension=php_pdo_sqlite.dll -;extension=php_pgsql.dll -;extension=php_shmop.dll - -; The MIBS data available in the PHP distribution must be installed. -; See http://www.php.net/manual/en/snmp.installation.php -;extension=php_snmp.dll - -;extension=php_soap.dll -;extension=php_sockets.dll -;extension=php_sqlite3.dll -;extension=php_tidy.dll -;extension=php_xmlrpc.dll -;extension=php_xsl.dll - -;;;;;;;;;;;;;;;;;;; -; Module Settings ; -;;;;;;;;;;;;;;;;;;; - -[CLI Server] -; Whether the CLI web server uses ANSI color coding in its terminal output. -cli_server.color = On - -[Date] -; Defines the default timezone used by the date functions -; http://php.net/date.timezone -date.timezone = Asia/Shanghai - -; http://php.net/date.default-latitude -;date.default_latitude = 31.7667 - -; http://php.net/date.default-longitude -;date.default_longitude = 35.2333 - -; http://php.net/date.sunrise-zenith -;date.sunrise_zenith = 90.583333 - -; http://php.net/date.sunset-zenith -;date.sunset_zenith = 90.583333 - -[filter] -; http://php.net/filter.default -;filter.default = unsafe_raw - -; http://php.net/filter.default-flags -;filter.default_flags = - -[iconv] -; Use of this INI entry is deprecated, use global input_encoding instead. -; If empty, default_charset or input_encoding or iconv.input_encoding is used. -; The precedence is: default_charset < intput_encoding < iconv.input_encoding -;iconv.input_encoding = - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;iconv.internal_encoding = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; If empty, default_charset or output_encoding or iconv.output_encoding is used. -; The precedence is: default_charset < output_encoding < iconv.output_encoding -; To use an output encoding conversion, iconv's output handler must be set -; otherwise output encoding conversion cannot be performed. -;iconv.output_encoding = - -[intl] -;intl.default_locale = -; This directive allows you to produce PHP errors when some error -; happens within intl functions. The value is the level of the error produced. -; Default is 0, which does not produce any errors. -;intl.error_level = E_WARNING -;intl.use_exceptions = 0 - -[sqlite3] -;sqlite3.extension_dir = - -[Pcre] -;PCRE library backtracking limit. -; http://php.net/pcre.backtrack-limit -;pcre.backtrack_limit=100000 - -;PCRE library recursion limit. -;Please note that if you set this value to a high number you may consume all -;the available process stack and eventually crash PHP (due to reaching the -;stack size limit imposed by the Operating System). -; http://php.net/pcre.recursion-limit -;pcre.recursion_limit=100000 - -;Enables or disables JIT compilation of patterns. This requires the PCRE -;library to be compiled with JIT support. -;pcre.jit=1 - -[Pdo] -; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off" -; http://php.net/pdo-odbc.connection-pooling -;pdo_odbc.connection_pooling=strict - -;pdo_odbc.db2_instance_name - -[Pdo_mysql] -; If mysqlnd is used: Number of cache slots for the internal result set cache -; http://php.net/pdo_mysql.cache_size -pdo_mysql.cache_size = 2000 - -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -; http://php.net/pdo_mysql.default-socket -pdo_mysql.default_socket= - -[Phar] -; http://php.net/phar.readonly -;phar.readonly = On - -; http://php.net/phar.require-hash -;phar.require_hash = On - -;phar.cache_list = - -[mail function] -; For Win32 only. -; http://php.net/smtp -SMTP = localhost -; http://php.net/smtp-port -smtp_port = 25 - -; For Win32 only. -; http://php.net/sendmail-from -;sendmail_from = me@example.com - -; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). -; http://php.net/sendmail-path -;sendmail_path = - -; Force the addition of the specified parameters to be passed as extra parameters -; to the sendmail binary. These parameters will always replace the value of -; the 5th parameter to mail(). -;mail.force_extra_parameters = - -; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename -mail.add_x_header = On - -; The path to a log file that will log all mail() calls. Log entries include -; the full path of the script, line number, To address and headers. -;mail.log = -; Log mail to syslog (Event Log on Windows). -;mail.log = syslog - -[ODBC] -; http://php.net/odbc.default-db -;odbc.default_db = Not yet implemented - -; http://php.net/odbc.default-user -;odbc.default_user = Not yet implemented - -; http://php.net/odbc.default-pw -;odbc.default_pw = Not yet implemented - -; Controls the ODBC cursor model. -; Default: SQL_CURSOR_STATIC (default). -;odbc.default_cursortype - -; Allow or prevent persistent links. -; http://php.net/odbc.allow-persistent -odbc.allow_persistent = On - -; Check that a connection is still valid before reuse. -; http://php.net/odbc.check-persistent -odbc.check_persistent = On - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/odbc.max-persistent -odbc.max_persistent = -1 - -; Maximum number of links (persistent + non-persistent). -1 means no limit. -; http://php.net/odbc.max-links -odbc.max_links = -1 - -; Handling of LONG fields. Returns number of bytes to variables. 0 means -; passthru. -; http://php.net/odbc.defaultlrl -odbc.defaultlrl = 4096 - -; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char. -; See the documentation on odbc_binmode and odbc_longreadlen for an explanation -; of odbc.defaultlrl and odbc.defaultbinmode -; http://php.net/odbc.defaultbinmode -odbc.defaultbinmode = 1 - -;birdstep.max_links = -1 - -[Interbase] -; Allow or prevent persistent links. -ibase.allow_persistent = 1 - -; Maximum number of persistent links. -1 means no limit. -ibase.max_persistent = -1 - -; Maximum number of links (persistent + non-persistent). -1 means no limit. -ibase.max_links = -1 - -; Default database name for ibase_connect(). -;ibase.default_db = - -; Default username for ibase_connect(). -;ibase.default_user = - -; Default password for ibase_connect(). -;ibase.default_password = - -; Default charset for ibase_connect(). -;ibase.default_charset = - -; Default timestamp format. -ibase.timestampformat = "%Y-%m-%d %H:%M:%S" - -; Default date format. -ibase.dateformat = "%Y-%m-%d" - -; Default time format. -ibase.timeformat = "%H:%M:%S" - -[MySQLi] - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/mysqli.max-persistent -mysqli.max_persistent = -1 - -; Allow accessing, from PHP's perspective, local files with LOAD DATA statements -; http://php.net/mysqli.allow_local_infile -;mysqli.allow_local_infile = On - -; Allow or prevent persistent links. -; http://php.net/mysqli.allow-persistent -mysqli.allow_persistent = On - -; Maximum number of links. -1 means no limit. -; http://php.net/mysqli.max-links -mysqli.max_links = -1 - -; If mysqlnd is used: Number of cache slots for the internal result set cache -; http://php.net/mysqli.cache_size -mysqli.cache_size = 2000 - -; Default port number for mysqli_connect(). If unset, mysqli_connect() will use -; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the -; compile-time value defined MYSQL_PORT (in that order). Win32 will only look -; at MYSQL_PORT. -; http://php.net/mysqli.default-port -mysqli.default_port = 3306 - -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -; http://php.net/mysqli.default-socket -mysqli.default_socket = - -; Default host for mysql_connect() (doesn't apply in safe mode). -; http://php.net/mysqli.default-host -mysqli.default_host = - -; Default user for mysql_connect() (doesn't apply in safe mode). -; http://php.net/mysqli.default-user -mysqli.default_user = - -; Default password for mysqli_connect() (doesn't apply in safe mode). -; Note that this is generally a *bad* idea to store passwords in this file. -; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw") -; and reveal this password! And of course, any users with read access to this -; file will be able to reveal the password as well. -; http://php.net/mysqli.default-pw -mysqli.default_pw = - -; Allow or prevent reconnect -mysqli.reconnect = Off - -[mysqlnd] -; Enable / Disable collection of general statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -; http://php.net/mysqlnd.collect_statistics -mysqlnd.collect_statistics = On - -; Enable / Disable collection of memory usage statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -; http://php.net/mysqlnd.collect_memory_statistics -mysqlnd.collect_memory_statistics = Off - -; Records communication from all extensions using mysqlnd to the specified log -; file. -; http://php.net/mysqlnd.debug -;mysqlnd.debug = - -; Defines which queries will be logged. -; http://php.net/mysqlnd.log_mask -;mysqlnd.log_mask = 0 - -; Default size of the mysqlnd memory pool, which is used by result sets. -; http://php.net/mysqlnd.mempool_default_size -;mysqlnd.mempool_default_size = 16000 - -; Size of a pre-allocated buffer used when sending commands to MySQL in bytes. -; http://php.net/mysqlnd.net_cmd_buffer_size -;mysqlnd.net_cmd_buffer_size = 2048 - -; Size of a pre-allocated buffer used for reading data sent by the server in -; bytes. -; http://php.net/mysqlnd.net_read_buffer_size -;mysqlnd.net_read_buffer_size = 32768 - -; Timeout for network requests in seconds. -; http://php.net/mysqlnd.net_read_timeout -;mysqlnd.net_read_timeout = 31536000 - -; SHA-256 Authentication Plugin related. File with the MySQL server public RSA -; key. -; http://php.net/mysqlnd.sha256_server_public_key -;mysqlnd.sha256_server_public_key = - -[OCI8] - -; Connection: Enables privileged connections using external -; credentials (OCI_SYSOPER, OCI_SYSDBA) -; http://php.net/oci8.privileged-connect -;oci8.privileged_connect = Off - -; Connection: The maximum number of persistent OCI8 connections per -; process. Using -1 means no limit. -; http://php.net/oci8.max-persistent -;oci8.max_persistent = -1 - -; Connection: The maximum number of seconds a process is allowed to -; maintain an idle persistent connection. Using -1 means idle -; persistent connections will be maintained forever. -; http://php.net/oci8.persistent-timeout -;oci8.persistent_timeout = -1 - -; Connection: The number of seconds that must pass before issuing a -; ping during oci_pconnect() to check the connection validity. When -; set to 0, each oci_pconnect() will cause a ping. Using -1 disables -; pings completely. -; http://php.net/oci8.ping-interval -;oci8.ping_interval = 60 - -; Connection: Set this to a user chosen connection class to be used -; for all pooled server requests with Oracle 11g Database Resident -; Connection Pooling (DRCP). To use DRCP, this value should be set to -; the same string for all web servers running the same application, -; the database pool must be configured, and the connection string must -; specify to use a pooled server. -;oci8.connection_class = - -; High Availability: Using On lets PHP receive Fast Application -; Notification (FAN) events generated when a database node fails. The -; database must also be configured to post FAN events. -;oci8.events = Off - -; Tuning: This option enables statement caching, and specifies how -; many statements to cache. Using 0 disables statement caching. -; http://php.net/oci8.statement-cache-size -;oci8.statement_cache_size = 20 - -; Tuning: Enables statement prefetching and sets the default number of -; rows that will be fetched automatically after statement execution. -; http://php.net/oci8.default-prefetch -;oci8.default_prefetch = 100 - -; Compatibility. Using On means oci_close() will not close -; oci_connect() and oci_new_connect() connections. -; http://php.net/oci8.old-oci-close-semantics -;oci8.old_oci_close_semantics = Off - -[PostgreSQL] -; Allow or prevent persistent links. -; http://php.net/pgsql.allow-persistent -pgsql.allow_persistent = On - -; Detect broken persistent links always with pg_pconnect(). -; Auto reset feature requires a little overheads. -; http://php.net/pgsql.auto-reset-persistent -pgsql.auto_reset_persistent = Off - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/pgsql.max-persistent -pgsql.max_persistent = -1 - -; Maximum number of links (persistent+non persistent). -1 means no limit. -; http://php.net/pgsql.max-links -pgsql.max_links = -1 - -; Ignore PostgreSQL backends Notice message or not. -; Notice message logging require a little overheads. -; http://php.net/pgsql.ignore-notice -pgsql.ignore_notice = 0 - -; Log PostgreSQL backends Notice message or not. -; Unless pgsql.ignore_notice=0, module cannot log notice message. -; http://php.net/pgsql.log-notice -pgsql.log_notice = 0 - -[bcmath] -; Number of decimal digits for all bcmath functions. -; http://php.net/bcmath.scale -bcmath.scale = 0 - -[browscap] -; http://php.net/browscap -;browscap = extra/browscap.ini - -[Session] -; Handler used to store/retrieve data. -; http://php.net/session.save-handler -session.save_handler = files - -; Argument passed to save_handler. In the case of files, this is the path -; where data files are stored. Note: Windows users have to change this -; variable in order to use PHP's session functions. -; -; The path can be defined as: -; -; session.save_path = "N;/path" -; -; where N is an integer. Instead of storing all the session files in -; /path, what this will do is use subdirectories N-levels deep, and -; store the session data in those directories. This is useful if -; your OS has problems with many files in one directory, and is -; a more efficient layout for servers that handle many sessions. -; -; NOTE 1: PHP will not create this directory structure automatically. -; You can use the script in the ext/session dir for that purpose. -; NOTE 2: See the section on garbage collection below if you choose to -; use subdirectories for session storage -; -; The file storage module creates files using mode 600 by default. -; You can change that by using -; -; session.save_path = "N;MODE;/path" -; -; where MODE is the octal representation of the mode. Note that this -; does not overwrite the process's umask. -; http://php.net/session.save-path -;session.save_path = "/tmp" - -; Whether to use strict session mode. -; Strict session mode does not accept uninitialized session ID and regenerate -; session ID if browser sends uninitialized session ID. Strict mode protects -; applications from session fixation via session adoption vulnerability. It is -; disabled by default for maximum compatibility, but enabling it is encouraged. -; https://wiki.php.net/rfc/strict_sessions -session.use_strict_mode = 0 - -; Whether to use cookies. -; http://php.net/session.use-cookies -session.use_cookies = 1 - -; http://php.net/session.cookie-secure -;session.cookie_secure = - -; This option forces PHP to fetch and use a cookie for storing and maintaining -; the session id. We encourage this operation as it's very helpful in combating -; session hijacking when not specifying and managing your own session id. It is -; not the be-all and end-all of session hijacking defense, but it's a good start. -; http://php.net/session.use-only-cookies -session.use_only_cookies = 1 - -; Name of the session (used as cookie name). -; http://php.net/session.name -session.name = PHPSESSID - -; Initialize session on request startup. -; http://php.net/session.auto-start -session.auto_start = 0 - -; Lifetime in seconds of cookie or, if 0, until browser is restarted. -; http://php.net/session.cookie-lifetime -session.cookie_lifetime = 0 - -; The path for which the cookie is valid. -; http://php.net/session.cookie-path -session.cookie_path = / - -; The domain for which the cookie is valid. -; http://php.net/session.cookie-domain -session.cookie_domain = - -; Whether or not to add the httpOnly flag to the cookie, which makes it inaccessible to browser scripting languages such as JavaScript. -; http://php.net/session.cookie-httponly -session.cookie_httponly = - -; Handler used to serialize data. php is the standard serializer of PHP. -; http://php.net/session.serialize-handler -session.serialize_handler = php - -; Defines the probability that the 'garbage collection' process is started -; on every session initialization. The probability is calculated by using -; gc_probability/gc_divisor. Where session.gc_probability is the numerator -; and gc_divisor is the denominator in the equation. Setting this value to 1 -; when the session.gc_divisor value is 100 will give you approximately a 1% chance -; the gc will run on any give request. -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; http://php.net/session.gc-probability -session.gc_probability = 1 - -; Defines the probability that the 'garbage collection' process is started on every -; session initialization. The probability is calculated by using the following equation: -; gc_probability/gc_divisor. Where session.gc_probability is the numerator and -; session.gc_divisor is the denominator in the equation. Setting this value to 1 -; when the session.gc_divisor value is 100 will give you approximately a 1% chance -; the gc will run on any give request. Increasing this value to 1000 will give you -; a 0.1% chance the gc will run on any give request. For high volume production servers, -; this is a more efficient approach. -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 -; http://php.net/session.gc-divisor -session.gc_divisor = 1000 - -; After this number of seconds, stored data will be seen as 'garbage' and -; cleaned up by the garbage collection process. -; http://php.net/session.gc-maxlifetime -session.gc_maxlifetime = 1440 - -; NOTE: If you are using the subdirectory option for storing session files -; (see session.save_path above), then garbage collection does *not* -; happen automatically. You will need to do your own garbage -; collection through a shell script, cron entry, or some other method. -; For example, the following script would is the equivalent of -; setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes): -; find /path/to/sessions -cmin +24 -type f | xargs rm - -; Check HTTP Referer to invalidate externally stored URLs containing ids. -; HTTP_REFERER has to contain this substring for the session to be -; considered as valid. -; http://php.net/session.referer-check -session.referer_check = - -; Set to {nocache,private,public,} to determine HTTP caching aspects -; or leave this empty to avoid sending anti-caching headers. -; http://php.net/session.cache-limiter -session.cache_limiter = nocache - -; Document expires after n minutes. -; http://php.net/session.cache-expire -session.cache_expire = 180 - -; trans sid support is disabled by default. -; Use of trans sid may risk your users' security. -; Use this option with caution. -; - User may send URL contains active session ID -; to other person via. email/irc/etc. -; - URL that contains active session ID may be stored -; in publicly accessible computer. -; - User may access your site with the same session ID -; always using URL stored in browser's history or bookmarks. -; http://php.net/session.use-trans-sid -session.use_trans_sid = 0 - -; Set session ID character length. This value could be between 22 to 256. -; Shorter length than default is supported only for compatibility reason. -; Users should use 32 or more chars. -; http://php.net/session.sid-length -; Default Value: 32 -; Development Value: 26 -; Production Value: 26 -session.sid_length = 26 - -; The URL rewriter will look for URLs in a defined set of HTML tags. -; is special; if you include them here, the rewriter will -; add a hidden field with the info which is otherwise appended -; to URLs. tag's action attribute URL will not be modified -; unless it is specified. -; Note that all valid entries require a "=", even if no value follows. -; Default Value: "a=href,area=href,frame=src,form=" -; Development Value: "a=href,area=href,frame=src,form=" -; Production Value: "a=href,area=href,frame=src,form=" -; http://php.net/url-rewriter.tags -session.trans_sid_tags = "a=href,area=href,frame=src,form=" - -; URL rewriter does not rewrite absolute URLs by default. -; To enable rewrites for absolute pathes, target hosts must be specified -; at RUNTIME. i.e. use ini_set() -; tags is special. PHP will check action attribute's URL regardless -; of session.trans_sid_tags setting. -; If no host is defined, HTTP_HOST will be used for allowed host. -; Example value: php.net,www.php.net,wiki.php.net -; Use "," for multiple hosts. No spaces are allowed. -; Default Value: "" -; Development Value: "" -; Production Value: "" -;session.trans_sid_hosts="" - -; Define how many bits are stored in each character when converting -; the binary hash data to something readable. -; Possible values: -; 4 (4 bits: 0-9, a-f) -; 5 (5 bits: 0-9, a-v) -; 6 (6 bits: 0-9, a-z, A-Z, "-", ",") -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 -; http://php.net/session.hash-bits-per-character -session.sid_bits_per_character = 5 - -; Enable upload progress tracking in $_SESSION -; Default Value: On -; Development Value: On -; Production Value: On -; http://php.net/session.upload-progress.enabled -;session.upload_progress.enabled = On - -; Cleanup the progress information as soon as all POST data has been read -; (i.e. upload completed). -; Default Value: On -; Development Value: On -; Production Value: On -; http://php.net/session.upload-progress.cleanup -;session.upload_progress.cleanup = On - -; A prefix used for the upload progress key in $_SESSION -; Default Value: "upload_progress_" -; Development Value: "upload_progress_" -; Production Value: "upload_progress_" -; http://php.net/session.upload-progress.prefix -;session.upload_progress.prefix = "upload_progress_" - -; The index name (concatenated with the prefix) in $_SESSION -; containing the upload progress information -; Default Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Development Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Production Value: "PHP_SESSION_UPLOAD_PROGRESS" -; http://php.net/session.upload-progress.name -;session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS" - -; How frequently the upload progress should be updated. -; Given either in percentages (per-file), or in bytes -; Default Value: "1%" -; Development Value: "1%" -; Production Value: "1%" -; http://php.net/session.upload-progress.freq -;session.upload_progress.freq = "1%" - -; The minimum delay between updates, in seconds -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; http://php.net/session.upload-progress.min-freq -;session.upload_progress.min_freq = "1" - -; Only write session data when session data is changed. Enabled by default. -; http://php.net/session.lazy-write -;session.lazy_write = On - -[Assertion] -; Switch whether to compile assertions at all (to have no overhead at run-time) -; -1: Do not compile at all -; 0: Jump over assertion at run-time -; 1: Execute assertions -; Changing from or to a negative value is only possible in php.ini! (For turning assertions on and off at run-time, see assert.active, when zend.assertions = 1) -; Default Value: 1 -; Development Value: 1 -; Production Value: -1 -; http://php.net/zend.assertions -zend.assertions = -1 - -; Assert(expr); active by default. -; http://php.net/assert.active -;assert.active = On - -; Throw an AssertationException on failed assertions -; http://php.net/assert.exception -;assert.exception = On - -; Issue a PHP warning for each failed assertion. (Overridden by assert.exception if active) -; http://php.net/assert.warning -;assert.warning = On - -; Don't bail out by default. -; http://php.net/assert.bail -;assert.bail = Off - -; User-function to be called if an assertion fails. -; http://php.net/assert.callback -;assert.callback = 0 - -; Eval the expression with current error_reporting(). Set to true if you want -; error_reporting(0) around the eval(). -; http://php.net/assert.quiet-eval -;assert.quiet_eval = 0 - -[COM] -; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs -; http://php.net/com.typelib-file -;com.typelib_file = - -; allow Distributed-COM calls -; http://php.net/com.allow-dcom -;com.allow_dcom = true - -; autoregister constants of a components typlib on com_load() -; http://php.net/com.autoregister-typelib -;com.autoregister_typelib = true - -; register constants casesensitive -; http://php.net/com.autoregister-casesensitive -;com.autoregister_casesensitive = false - -; show warnings on duplicate constant registrations -; http://php.net/com.autoregister-verbose -;com.autoregister_verbose = true - -; The default character set code-page to use when passing strings to and from COM objects. -; Default: system ANSI code page -;com.code_page= - -[mbstring] -; language for internal character representation. -; This affects mb_send_mail() and mbstring.detect_order. -; http://php.net/mbstring.language -;mbstring.language = Japanese - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; internal/script encoding. -; Some encoding cannot work as internal encoding. (e.g. SJIS, BIG5, ISO-2022-*) -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;mbstring.internal_encoding = - -; Use of this INI entry is deprecated, use global input_encoding instead. -; http input encoding. -; mbstring.encoding_traslation = On is needed to use this setting. -; If empty, default_charset or input_encoding or mbstring.input is used. -; The precedence is: default_charset < intput_encoding < mbsting.http_input -; http://php.net/mbstring.http-input -;mbstring.http_input = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; http output encoding. -; mb_output_handler must be registered as output buffer to function. -; If empty, default_charset or output_encoding or mbstring.http_output is used. -; The precedence is: default_charset < output_encoding < mbstring.http_output -; To use an output encoding conversion, mbstring's output handler must be set -; otherwise output encoding conversion cannot be performed. -; http://php.net/mbstring.http-output -;mbstring.http_output = - -; enable automatic encoding translation according to -; mbstring.internal_encoding setting. Input chars are -; converted to internal encoding by setting this to On. -; Note: Do _not_ use automatic encoding translation for -; portable libs/applications. -; http://php.net/mbstring.encoding-translation -;mbstring.encoding_translation = Off - -; automatic encoding detection order. -; "auto" detect order is changed according to mbstring.language -; http://php.net/mbstring.detect-order -;mbstring.detect_order = auto - -; substitute_character used when character cannot be converted -; one from another -; http://php.net/mbstring.substitute-character -;mbstring.substitute_character = none - -; overload(replace) single byte functions by mbstring functions. -; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(), -; etc. Possible values are 0,1,2,4 or combination of them. -; For example, 7 for overload everything. -; 0: No overload -; 1: Overload mail() function -; 2: Overload str*() functions -; 4: Overload ereg*() functions -; http://php.net/mbstring.func-overload -;mbstring.func_overload = 0 - -; enable strict encoding detection. -; Default: Off -;mbstring.strict_detection = On - -; This directive specifies the regex pattern of content types for which mb_output_handler() -; is activated. -; Default: mbstring.http_output_conv_mimetype=^(text/|application/xhtml\+xml) -;mbstring.http_output_conv_mimetype= - -[gd] -; Tell the jpeg decode to ignore warnings and try to create -; a gd image. The warning will then be displayed as notices -; disabled by default -; http://php.net/gd.jpeg-ignore-warning -;gd.jpeg_ignore_warning = 1 - -[exif] -; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS. -; With mbstring support this will automatically be converted into the encoding -; given by corresponding encode setting. When empty mbstring.internal_encoding -; is used. For the decode settings you can distinguish between motorola and -; intel byte order. A decode setting cannot be empty. -; http://php.net/exif.encode-unicode -;exif.encode_unicode = ISO-8859-15 - -; http://php.net/exif.decode-unicode-motorola -;exif.decode_unicode_motorola = UCS-2BE - -; http://php.net/exif.decode-unicode-intel -;exif.decode_unicode_intel = UCS-2LE - -; http://php.net/exif.encode-jis -;exif.encode_jis = - -; http://php.net/exif.decode-jis-motorola -;exif.decode_jis_motorola = JIS - -; http://php.net/exif.decode-jis-intel -;exif.decode_jis_intel = JIS - -[Tidy] -; The path to a default tidy configuration file to use when using tidy -; http://php.net/tidy.default-config -;tidy.default_config = /usr/local/lib/php/default.tcfg - -; Should tidy clean and repair output automatically? -; WARNING: Do not use this option if you are generating non-html content -; such as dynamic images -; http://php.net/tidy.clean-output -tidy.clean_output = Off - -[soap] -; Enables or disables WSDL caching feature. -; http://php.net/soap.wsdl-cache-enabled -soap.wsdl_cache_enabled=1 - -; Sets the directory name where SOAP extension will put cache files. -; http://php.net/soap.wsdl-cache-dir -soap.wsdl_cache_dir="/tmp" - -; (time to live) Sets the number of second while cached file will be used -; instead of original one. -; http://php.net/soap.wsdl-cache-ttl -soap.wsdl_cache_ttl=86400 - -; Sets the size of the cache limit. (Max. number of WSDL files to cache) -soap.wsdl_cache_limit = 5 - -[sysvshm] -; A default size of the shared memory segment -;sysvshm.init_mem = 10000 - -[ldap] -; Sets the maximum number of open links or -1 for unlimited. -ldap.max_links = -1 - -[dba] -;dba.default_handler= - -[opcache] -; Determines if Zend OPCache is enabled -;opcache.enable=1 - -; Determines if Zend OPCache is enabled for the CLI version of PHP -;opcache.enable_cli=1 - -; The OPcache shared memory storage size. -;opcache.memory_consumption=128 - -; The amount of memory for interned strings in Mbytes. -;opcache.interned_strings_buffer=8 - -; The maximum number of keys (scripts) in the OPcache hash table. -; Only numbers between 200 and 1000000 are allowed. -;opcache.max_accelerated_files=10000 - -; The maximum percentage of "wasted" memory until a restart is scheduled. -;opcache.max_wasted_percentage=5 - -; When this directive is enabled, the OPcache appends the current working -; directory to the script key, thus eliminating possible collisions between -; files with the same name (basename). Disabling the directive improves -; performance, but may break existing applications. -;opcache.use_cwd=1 - -; When disabled, you must reset the OPcache manually or restart the -; webserver for changes to the filesystem to take effect. -;opcache.validate_timestamps=1 - -; How often (in seconds) to check file timestamps for changes to the shared -; memory storage allocation. ("1" means validate once per second, but only -; once per request. "0" means always validate) -;opcache.revalidate_freq=2 - -; Enables or disables file search in include_path optimization -;opcache.revalidate_path=0 - -; If disabled, all PHPDoc comments are dropped from the code to reduce the -; size of the optimized code. -;opcache.save_comments=1 - -; If enabled, a fast shutdown sequence is used for the accelerated code -; Depending on the used Memory Manager this may cause some incompatibilities. -;opcache.fast_shutdown=0 - -; Allow file existence override (file_exists, etc.) performance feature. -;opcache.enable_file_override=0 - -; A bitmask, where each bit enables or disables the appropriate OPcache -; passes -;opcache.optimization_level=0xffffffff - -;opcache.inherited_hack=1 -;opcache.dups_fix=0 - -; The location of the OPcache blacklist file (wildcards allowed). -; Each OPcache blacklist file is a text file that holds the names of files -; that should not be accelerated. The file format is to add each filename -; to a new line. The filename may be a full path or just a file prefix -; (i.e., /var/www/x blacklists all the files and directories in /var/www -; that start with 'x'). Line starting with a ; are ignored (comments). -;opcache.blacklist_filename= - -; Allows exclusion of large files from being cached. By default all files -; are cached. -;opcache.max_file_size=0 - -; Check the cache checksum each N requests. -; The default value of "0" means that the checks are disabled. -;opcache.consistency_checks=0 - -; How long to wait (in seconds) for a scheduled restart to begin if the cache -; is not being accessed. -;opcache.force_restart_timeout=180 - -; OPcache error_log file name. Empty string assumes "stderr". -;opcache.error_log= - -; All OPcache errors go to the Web server log. -; By default, only fatal errors (level 0) or errors (level 1) are logged. -; You can also enable warnings (level 2), info messages (level 3) or -; debug messages (level 4). -;opcache.log_verbosity_level=1 - -; Preferred Shared Memory back-end. Leave empty and let the system decide. -;opcache.preferred_memory_model= - -; Protect the shared memory from unexpected writing during script execution. -; Useful for internal debugging only. -;opcache.protect_memory=0 - -; Allows calling OPcache API functions only from PHP scripts which path is -; started from specified string. The default "" means no restriction -;opcache.restrict_api= - -; Mapping base of shared memory segments (for Windows only). All the PHP -; processes have to map shared memory into the same address space. This -; directive allows to manually fix the "Unable to reattach to base address" -; errors. -;opcache.mmap_base= - -; Enables and sets the second level cache directory. -; It should improve performance when SHM memory is full, at server restart or -; SHM reset. The default "" disables file based caching. -;opcache.file_cache= - -; Enables or disables opcode caching in shared memory. -;opcache.file_cache_only=0 - -; Enables or disables checksum validation when script loaded from file cache. -;opcache.file_cache_consistency_checks=1 - -; Implies opcache.file_cache_only=1 for a certain process that failed to -; reattach to the shared memory (for Windows only). Explicitly enabled file -; cache is required. -;opcache.file_cache_fallback=1 - -; Enables or disables copying of PHP code (text segment) into HUGE PAGES. -; This should improve performance, but requires appropriate OS configuration. -;opcache.huge_code_pages=1 - -; Validate cached file permissions. -;opcache.validate_permission=0 - -; Prevent name collisions in chroot'ed environment. -;opcache.validate_root=0 - -[curl] -; A default value for the CURLOPT_CAINFO option. This is required to be an -; absolute path. -;curl.cainfo = - -[openssl] -; The location of a Certificate Authority (CA) file on the local filesystem -; to use when verifying the identity of SSL/TLS peers. Most users should -; not specify a value for this directive as PHP will attempt to use the -; OS-managed cert stores in its absence. If specified, this value may still -; be overridden on a per-stream basis via the "cafile" SSL stream context -; option. -;openssl.cafile= - -; If openssl.cafile is not specified or if the CA file is not found, the -; directory pointed to by openssl.capath is searched for a suitable -; certificate. This value must be a correctly hashed certificate directory. -; Most users should not specify a value for this directive as PHP will -; attempt to use the OS-managed cert stores in its absence. If specified, -; this value may still be overridden on a per-stream basis via the "capath" -; SSL stream context option. -;openssl.capath= - -; Local Variables: -; tab-width: 4 -; End: - -[XDebug] -xdebug.remote_enable = 1 -xdebug.remote_handler = "dbgp" -; Set to host.docker.internal on Mac and Windows, otherwise, set to host real ip -xdebug.remote_host = host.docker.internal -;xdebug.remote_port = 9000 -xdebug.remote_log = /var/log/php/xdebug.log - -SERVER_ENV=develop - -yaf.use_spl_autoload=1 - -[xhprof] -;xhprof.output_dir = /var/log/php/xhprof.log \ No newline at end of file diff --git a/php7/7.4.33/data.yml b/php7/7.4.33/data.yml deleted file mode 100755 index deeede5ad..000000000 --- a/php7/7.4.33/data.yml +++ /dev/null @@ -1,18 +0,0 @@ -additionalProperties: - formFields: - - default: 9000 - envKey: PANEL_APP_PORT_HTTP - labelEn: PHP-FPM Port - labelZh: PHP-FPM 端口 - label: - en: PHP-FPM Port - ja: PHP-FPM ポート - ms: Port PHP-FPM - pt-br: Porta PHP-FPM - ru: Порт PHP-FPM - ko: PHP-FPM 포트 - zh-Hant: PHP-FPM 埠 - zh: PHP-FPM 端口 - required: true - rule: paramPort - type: number diff --git a/php7/7.4.33/docker-compose.yml b/php7/7.4.33/docker-compose.yml deleted file mode 100644 index dc530c778..000000000 --- a/php7/7.4.33/docker-compose.yml +++ /dev/null @@ -1,21 +0,0 @@ -services: - php: - image: ${IMAGE_NAME} - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - volumes: - - ${PANEL_WEBSITE_DIR}:/www/ - - ./conf/php.ini:/usr/local/etc/php/php.ini - - ./conf/php-fpm.conf:/usr/local/etc/php-fpm.d/www.conf - - ./log:/var/log/php - - ./composer:/tmp/composer - - ./extensions:/php/extensions - ports: - - 127.0.0.1:${PANEL_APP_PORT_HTTP}:9000 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/php7/README.md b/php7/README.md deleted file mode 100644 index b7d17a6ee..000000000 --- a/php7/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# PHP - -PHP(Hypertext Preprocessor)是一种流行的服务器端脚本语言,它用于开发动态网页和Web应用程序。 - -## 主要功能: - -- **动态网页生成**:PHP 可以嵌入到HTML中,用于生成动态内容。这意味着您可以根据用户的请求和其他条件来生成不同的网页内容。 -- **数据库连接**:PHP 支持多种数据库系统,包括MySQL、SQLite、PostgreSQL等,使您能够轻松地连接和操作数据库。 -- **表单处理**:PHP 可以处理网页表单数据,从而实现用户输入验证、数据存储和处理用户提交的信息。 -- **会话管理**:PHP 支持会话管理,允许您跟踪用户的状态和数据,从而创建登录系统和购物车等功能。 -- **文件操作**:PHP 允许您打开、读取、写入和删除文件,以及执行文件上传和下载等操作。 -- **错误处理**:PHP 提供丰富的错误处理机制,以便您能够捕获、记录和处理应用程序中的错误和异常。 -- **服务器端脚本**:PHP 脚本在服务器上执行,生成HTML输出,这意味着客户端无法查看脚本代码,从而提高了安全性。 -- **跨平台兼容**:PHP 可以在多种操作系统上运行,包括Windows、Linux和macOS,因此非常灵活。 -- **开源和社区支持**:PHP 是一个开源项目,拥有庞大的开发者社区,可以轻松找到各种扩展和库来扩展功能。 -- **模块化和面向对象编程**:PHP 支持面向对象编程(OOP),并且具有许多内置模块和扩展,可以简化开发过程。 \ No newline at end of file diff --git a/php7/README_en.md b/php7/README_en.md deleted file mode 100644 index 8a0db9e0e..000000000 --- a/php7/README_en.md +++ /dev/null @@ -1,25 +0,0 @@ -# PHP - -PHP (Hypertext Preprocessor) is a widely used server-side scripting language for developing dynamic web pages and web applications. - -## Main Features: - -- **Dynamic Web Page Generation**: PHP can be embedded directly into HTML, allowing for the generation of dynamic content. This enables the creation of web pages that respond to user input or other conditions. - -- **Database Support**: PHP supports a variety of database systems, including MySQL, SQLite, PostgreSQL, and more, enabling seamless database interaction and management. - -- **Form Handling**: PHP can handle data from web forms, enabling input validation, data storage, and processing of user-submitted information. - -- **Session Management**: PHP supports session management, allowing for the creation of login systems, shopping carts, and other user-specific functionalities. - -- **File Operations**: Open, read, write, delete, upload, and download files with PHP, enabling versatile file management capabilities. - -- **Error Handling**: PHP provides rich error handling features, allowing developers to capture, log, and handle errors and exceptions effectively. - -- **Server-Side Execution**: PHP scripts execute on the server, generating HTML output that the client sees. This keeps the source code secure and hidden from users. - -- **Cross-Platform**: PHP runs on multiple operating systems, including Windows, Linux, and macOS, making it highly versatile. - -- **Open Source and Community Support**: As an open-source project, PHP has a vast developer community offering libraries, extensions, and support. - -- **OOP Support**: PHP supports Object-Oriented Programming (OOP) and provides numerous built-in modules and extensions to simplify the development process. \ No newline at end of file diff --git a/php7/data.yml b/php7/data.yml deleted file mode 100755 index d1f56e51d..000000000 --- a/php7/data.yml +++ /dev/null @@ -1,35 +0,0 @@ -name: PHP 7 -tags: - - 运行环境 -title: PHP7 运行环境 -description: PHP7 运行环境 -additionalProperties: - key: php7 - name: PHP 7 - tags: - - Runtime - shortDescZh: PHP7 运行环境 - shortDescEn: PHP7 Runtime - description: - en: PHP7 Runtime - ja: PHP7 ランタイム - ms: Persekitaran masa laku PHP7 - pt-br: Ambiente de execução PHP7 - ru: Среда выполнения PHP7 - ko: PHP7 런타임 - zh-hant: PHP7 執行環境 - zh: PHP7 运行环境 - type: php - crossVersionUpdate: false - limit: 0 - recommend: 115 - website: https://www.php.net/ - github: https://github.com/php/php-src - document: https://www.php.net/docs.php - deprecated: 2.0 - architectures: - - amd64 - - arm64 - - arm/v7 - - s390x - - ppc64le \ No newline at end of file diff --git a/php7/logo.png b/php7/logo.png deleted file mode 100644 index cfa7782d2..000000000 Binary files a/php7/logo.png and /dev/null differ diff --git a/php8/8.0.30/build/.env b/php8/8.0.30/build/.env deleted file mode 100644 index 19953037d..000000000 --- a/php8/8.0.30/build/.env +++ /dev/null @@ -1,14 +0,0 @@ -CONTAINER_PACKAGE_URL=mirrors.ustc.edu.cn - -PHP_VERSION=8.0.30 -PHP_PHP_CONF_FILE=./php/php.ini -PHP_FPM_CONF_FILE=./php/php-fpm.conf -PHP_LOG_DIR=./logs/php -PHP_EXTENSIONS= - -SOURCE_DIR=./www - -TZ=Asia/Shanghai -DATA_DIR=./data -IMAGE_NAME=1panel-php:8.0.30 -INSTALL_SUPERVISOR=0 \ No newline at end of file diff --git a/php8/8.0.30/build/config.json b/php8/8.0.30/build/config.json deleted file mode 100644 index 28ee3c56b..000000000 --- a/php8/8.0.30/build/config.json +++ /dev/null @@ -1,134 +0,0 @@ -{ - "formFields": [ - { - "type": "select", - "multiple": true, - "labelZh": "扩展", - "labelEn": "Extensions", - "default": ["mysqli","pdo_mysql"], - "values": [ - { - "label": "opcache", - "value": "opcache" - }, - { - "label": "memcached", - "value": "memcached" - }, - { - "label": "memcache", - "value": "memcache" - }, - { - "label": "redis", - "value": "redis" - }, - { - "label": "mcrypt", - "value": "mcrypt" - }, - { - "label": "xdebug", - "value": "xdebug" - }, - { - "label": "imap", - "value": "imap" - }, - { - "label": "exif", - "value": "exif" - }, - { - "label": "intl", - "value": "intl" - }, - { - "label": "swoole", - "value": "swoole" - }, - { - "label": "yaf", - "value": "yaf" - }, - { - "label": "pgsql", - "value": "pgsql" - }, - { - "label": "pdo_pgsql", - "value": "pdo_pgsql" - }, - { - "label": "snmp", - "value": "snmp" - }, { - "label": "ldap", - "value": "ldap" - }, - { - "label": "pspell", - "value": "pspell" - }, - { - "label": "bz2", - "value": "bz2" - }, - { - "label": "sysvshm", - "value": "sysvshm" - }, - { - "label": "calendar", - "value": "calendar" - }, - { - "label": "gmp", - "value": "gmp" - }, - { - "label": "sysvmsg", - "value": "sysvmsg" - }, - { - "label": "igbinary", - "value": "igbinary" - }, - { - "label": "mysqli", - "value": "mysqli" - }, - { - "label": "pdo_mysql", - "value": "pdo_mysql" - }, - { - "label": "mbstring", - "value": "mbstring" - }, - { - "label": "gd", - "value": "gd" - }, - { - "label": "ioncube_loader", - "value": "ioncube_loader" - }, - { - "label": "curl", - "value": "curl" - }, - { - "label": "sg15", - "value": "sourceguardian" - }, - { - "label": "imagick", - "value": "imagick" - } - ], - "envKey": "PHP_EXTENSIONS", - "edit": true - } - ] -} \ No newline at end of file diff --git a/php8/8.0.30/build/docker-compose.yml b/php8/8.0.30/build/docker-compose.yml deleted file mode 100644 index 21e9fa737..000000000 --- a/php8/8.0.30/build/docker-compose.yml +++ /dev/null @@ -1,19 +0,0 @@ -services: - 1panel-php: - build: - context: ./php - args: - PHP_IMAGE: php:${PHP_VERSION}-fpm-alpine - CONTAINER_PACKAGE_URL: ${CONTAINER_PACKAGE_URL} - PHP_EXTENSIONS: ${PHP_EXTENSIONS} - TZ: ${TZ} - image: ${IMAGE_NAME} - volumes: - - ${SOURCE_DIR}:/www/ - - ${PHP_PHP_CONF_FILE}:/usr/local/etc/php/php.ini - - ${PHP_FPM_CONF_FILE}:/usr/local/etc/php-fpm.d/www.conf - - ${PHP_LOG_DIR}:/var/log/php - - ${DATA_DIR}/composer:/tmp/composer - restart: always - cap_add: - - SYS_PTRACE diff --git a/php8/8.0.30/build/php/Dockerfile b/php8/8.0.30/build/php/Dockerfile deleted file mode 100644 index e0e0cb64c..000000000 --- a/php8/8.0.30/build/php/Dockerfile +++ /dev/null @@ -1,39 +0,0 @@ -ARG PHP_IMAGE -FROM ${PHP_IMAGE} - -ARG TZ -ARG PHP_EXTENSIONS -ARG CONTAINER_PACKAGE_URL - - -RUN if [ $CONTAINER_PACKAGE_URL ] ; then sed -i "s/dl-cdn.alpinelinux.org/${CONTAINER_PACKAGE_URL}/g" /etc/apk/repositories ; fi - -ADD ./extensions/install-php-extensions /usr/local/bin/ -RUN chmod uga+x /usr/local/bin/install-php-extensions - -COPY ./extensions /tmp/extensions -WORKDIR /tmp/extensions -RUN chmod +x install.sh \ - && sh install.sh \ - && rm -rf /tmp/extensions - - -RUN apk --no-cache add tzdata \ - && cp "/usr/share/zoneinfo/$TZ" /etc/localtime \ - && echo "$TZ" > /etc/timezone - -# Fix: https://github.com/docker-library/php/issues/240 -RUN apk add gnu-libiconv libstdc++ --no-cache --repository http://${CONTAINER_PACKAGE_URL}/alpine/edge/community/ --allow-untrusted -ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so php - - -# Install composer and change it's cache home -RUN curl -o /usr/bin/composer https://mirrors.aliyun.com/composer/composer.phar \ - && chmod +x /usr/bin/composer -ENV COMPOSER_HOME=/tmp/composer - -# php image's www-data user uid & gid are 82, change them to 1000 (primary user) -RUN apk --no-cache add shadow && usermod -u 1000 www-data && groupmod -g 1000 www-data - - -WORKDIR /www \ No newline at end of file diff --git a/php8/8.0.30/build/php/extensions/event-3.0.8.tgz b/php8/8.0.30/build/php/extensions/event-3.0.8.tgz deleted file mode 100644 index e7a471bbe..000000000 Binary files a/php8/8.0.30/build/php/extensions/event-3.0.8.tgz and /dev/null differ diff --git a/php8/8.0.30/build/php/extensions/imagick-3.7.0.tgz b/php8/8.0.30/build/php/extensions/imagick-3.7.0.tgz deleted file mode 100644 index 80d674cda..000000000 Binary files a/php8/8.0.30/build/php/extensions/imagick-3.7.0.tgz and /dev/null differ diff --git a/php8/8.0.30/build/php/extensions/install-composer.sh b/php8/8.0.30/build/php/extensions/install-composer.sh deleted file mode 100644 index 34074732d..000000000 --- a/php8/8.0.30/build/php/extensions/install-composer.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/sh - -# The latest mirror's composer version only support for PHP 7.2.5 -# And if your PHP version is lesser than that, will be download supported version. -supportLatest=$(php -r "echo version_compare(PHP_VERSION, '7.2.5', '>');") - -if [ "$supportLatest" -eq "1" ]; then - curl -o /usr/bin/composer https://mirrors.aliyun.com/composer/composer.phar \ - && chmod +x /usr/bin/composer -else - curl -o /tmp/composer-setup.php https://getcomposer.org/installer \ - && php /tmp/composer-setup.php --install-dir=/tmp \ - && mv /tmp/composer.phar /usr/bin/composer \ - && chmod +x /usr/bin/composer \ - && rm -rf /tmp/composer-setup.php -fi \ No newline at end of file diff --git a/php8/8.0.30/build/php/extensions/install-php-extensions b/php8/8.0.30/build/php/extensions/install-php-extensions deleted file mode 100644 index ffe08e487..000000000 --- a/php8/8.0.30/build/php/extensions/install-php-extensions +++ /dev/null @@ -1,5156 +0,0 @@ -#!/bin/sh - -# This script wraps docker-php-ext-install, properly configuring the system. -# -# Copyright (c) Michele Locati, 2018-2023 -# -# Source: https://github.com/mlocati/docker-php-extension-installer -# -# License: MIT - see https://github.com/mlocati/docker-php-extension-installer/blob/master/LICENSE - -# Let's set a sane environment -set -o errexit -set -o nounset - -if test "${IPE_DEBUG:-}" = "1"; then - set -x -fi - -if ! which docker-php-ext-configure >/dev/null || ! which docker-php-ext-enable >/dev/null || ! which docker-php-ext-install >/dev/null || ! which docker-php-source >/dev/null; then - printf 'The script %s is meant to be used with official Docker PHP Images - https://hub.docker.com/_/php\n' "$0" >&2 - exit 1 -fi - -IPE_VERSION=2.7.31 - -StandWithUkraine() { - if test -t 1 && ! grep -Eq '^VERSION=.*jessie' /etc/os-release; then - printf '\e[37;44m#StandWith\e[30;43mUkraine\e[0m\n' - else - printf '#StandWithUkraine\n' - fi -} - -if test "$IPE_VERSION" = master && test "${CI:-}" != true; then - cat <&2 - exit 1 - fi - DISTRO="$(cat /etc/os-release | grep -E ^ID= | cut -d = -f 2)" - DISTRO_VERSION_NUMBER="$(cat /etc/os-release | grep -E ^VERSION_ID= | cut -d = -f 2 | cut -d '"' -f 2 | cut -d . -f 1,2)" - DISTRO_VERSION="$(printf '%s@%s' $DISTRO $DISTRO_VERSION_NUMBER)" - DISTRO_MAJMIN_VERSION="$(echo "$DISTRO_VERSION_NUMBER" | awk -F. '{print $1*100+$2}')" -} - -# Set: -# - PHP_MAJMIN_VERSION: Major-Minor version, format MMmm (example 800 for PHP 8.0.1) -# - PHP_MAJDOTMIN_VERSION: Major-Minor version, format M.m (example 8.0 for PHP 8.0.1) -# - PHP_MAJMINPAT_VERSION: Major-Minor-Patch version, format MMmmpp (example 80001 for PHP 8.0.1) variables containing integers value -# - PHP_MAJDOTMINDOTPAT_VERSION: Major-Minor-Patch version, format M.m.p (example 8.0.1 for PHP 8.0.1) -# - PHP_THREADSAFE: 1 if PHP is thread-safe (TS), 0 if not thread-safe (NTS) -# - PHP_DEBUGBUILD: 1 if PHP is debug build (configured with "--enable-debug"), 0 otherwise -# - PHP_BITS: 32 if PHP is compiled for 32-bit, 64 if 64-bit -# - PHP_EXTDIR: the absolute path where the PHP extensions reside -setPHPVersionVariables() { - PHP_MAJDOTMINDOTPAT_VERSION="$(php-config --version)" - PHP_MAJMIN_VERSION=$(printf '%s' "$PHP_MAJDOTMINDOTPAT_VERSION" | awk -F. '{print $1*100+$2}') - PHP_MAJDOTMIN_VERSION=$(printf '%s' "$PHP_MAJDOTMINDOTPAT_VERSION" | cut -d. -f1-2) - PHP_MAJMINPAT_VERSION=$(printf '%s' "$PHP_MAJDOTMINDOTPAT_VERSION" | awk -F. '{print $1*10000+$2*100+$3}') - PHP_THREADSAFE=$(php -n -r 'echo ZEND_THREAD_SAFE ? 1 : 0;') - PHP_DEBUGBUILD=$(php -n -r 'echo ZEND_DEBUG_BUILD ? 1 : 0;') - PHP_BITS=$(php -n -r 'echo PHP_INT_SIZE * 8;') - PHP_EXTDIR="$(php -d display_errors=stderr -r 'echo realpath(ini_get("extension_dir"));')" -} - -# Fix apt-get being very slow on Debian Jessie -# See https://bugs.launchpad.net/ubuntu/+source/apt/+bug/1332440 -fixMaxOpenFiles() { - fixMaxOpenFiles_cur=$(ulimit -n 2>/dev/null || echo 0) - if test "$fixMaxOpenFiles_cur" -gt 10000; then - ulimit -n 10000 - fi -} - -# Get the directory containing the compiled PHP extensions -# -# Output: -# The absolute path of the extensions dir -getPHPExtensionsDir() { - php -i | grep -E '^extension_dir' | head -n1 | tr -s '[:space:]*=>[:space:]*' '|' | cut -d'|' -f2 -} - -# Normalize the name of a PHP extension -# -# Arguments: -# $1: the name of the module to be normalized -# -# Output: -# The normalized module name -normalizePHPModuleName() { - normalizePHPModuleName_name="$1" - case "$normalizePHPModuleName_name" in - *A* | *B* | *C* | *D* | *E* | *F* | *G* | *H* | *I* | *J* | *K* | *L* | *M* | *N* | *O* | *P* | *Q* | *R* | *S* | *T* | *U* | *V* | *W* | *X* | *Y* | *Z*) - normalizePHPModuleName_name="$(LC_CTYPE=C printf '%s' "$normalizePHPModuleName_name" | tr '[:upper:]' '[:lower:]')" - ;; - esac - case "$normalizePHPModuleName_name" in - datadog_trace) - normalizePHPModuleName_name=ddtrace - ;; - ioncube | ioncube\ loader) - normalizePHPModuleName_name='ioncube_loader' - ;; - pecl_http) - normalizePHPModuleName_name='http' - ;; - zend\ opcache) - normalizePHPModuleName_name='opcache' - ;; - libsodium) - if test $PHP_MAJMIN_VERSION -ge 700; then - normalizePHPModuleName_name='sodium' - fi - ;; - sodium) - if test $PHP_MAJMIN_VERSION -lt 700; then - normalizePHPModuleName_name='libsodium' - fi - ;; - *\ *) - printf '### WARNING Unrecognized module name: %s ###\n' "$1" >&2 - ;; - esac - printf '%s' "$normalizePHPModuleName_name" -} - -# Get the PECL name of PHP extension -# -# Arguments: -# $1: the name of the extension -# -# Output: -# The PECL name of the extension -getPeclModuleName() { - normalizePHPModuleName_name="$1" - case "$normalizePHPModuleName_name" in - ddtrace) - normalizePHPModuleName_name=datadog_trace - ;; - http) - normalizePHPModuleName_name=pecl_http - ;; - sodium) - normalizePHPModuleName_name=libsodium - ;; - esac - printf '%s' "$normalizePHPModuleName_name" -} - -# Parse a package.xml (or package2.xml) file and extract the module name and version -# -# Arguments: -# $1: the patho to the XML file -# -# Set these variables: -# - EXTRACTPACKAGEVERSIONFROMXML_NAME -# - EXTRACTPACKAGEVERSIONFROMXML_VERSION -# -# Output: -# Nothing -# -# Return: -# 0 (true): if the string is in the list -# 1 (false): if the string is not in the list -extractPackageVersionFromXML() { - if ! test -f "$1"; then - printf 'Unable to find the file\n%s\n' >&2 - return 1 - fi - extractPackageVersionFromXML_code="$( - cat <<'EOT' -$doc = new DOMDocument(); -if (!$doc->load($argv[1])) { - fwrite(STDERR, "Failed to load XML file\n"); - exit(1); -} -set_error_handler( - static function($errno, $errstr) { - fwrite(STDERR, trim((string) $errstr) . "\n"); - exit(1); - }, - -1 -); -$xpath = new DOMXpath($doc); -$xpath->registerNamespace('v20', 'http://pear.php.net/dtd/package-2.0'); -$xpath->registerNamespace('v21', 'http://pear.php.net/dtd/package-2.1'); -if ($xpath->query('/v20:package/v20:dependencies')->length === 1) { - $ns = 'v20:'; -} elseif ($xpath->query('/v21:package/v21:dependencies')->length === 1) { - $ns = 'v21:'; -} elseif ($xpath->query('/package')->length === 1) { - $ns = ''; -} else { - fwrite(STDERR, "Unsupported namespace of the XML of package version details\n"); -} -$nodes = $xpath->query("/{$ns}package/{$ns}name"); -$name = trim((string) $nodes[0]->nodeValue); -if ($ns === '') { - $nodes = $xpath->query("/{$ns}package/{$ns}version"); -} else { - $nodes = $xpath->query("/{$ns}package/{$ns}version/{$ns}release"); -} -$version = trim((string) $nodes[0]->nodeValue); -echo "EXTRACTPACKAGEVERSIONFROMXML_NAME='{$name}'\n"; -echo "EXTRACTPACKAGEVERSIONFROMXML_VERSION='{$version}'\n"; -exit(0); -EOT - )" - extractPackageVersionFromXML_vars="$(php -n -d display_errors=stderr -r "$extractPackageVersionFromXML_code" "$1")" - if test -z "$extractPackageVersionFromXML_vars"; then - return 1 - fi - eval "$extractPackageVersionFromXML_vars" - return 0 -} - -# Parse a module name (and optionally version) as received via command arguments, extracting the version and normalizing it -# Examples: -# xdebug-2.9.8 -# xdebug-^2 -# xdebug-^2.9 -# -# Arguments: -# $1: the name of the module to be normalized -# -# Set these variables: -# - PROCESSED_PHP_MODULE_ARGUMENT -# -# Optionally set these variables: -# - PHP_WANTEDMODULEVERSION_<...> (where <...> is the normalized module name) -# - PHP_MODULESOURCECODEPATH_<...> (where <...> is the normalized module name) -# -# Output: -# Nothing -processPHPModuleArgument() { - processPHPModuleArgument_arg="$1" - # Convert GitHub short form to long url, - # for example: from - # php-memcached-dev/php-memcached@8f106564e6bb005ca6100b12ccc89000daafa9d8 - # to - # https://codeload.github.com/php-memcached-dev/php-memcached/tar.gz/8f106564e6bb005ca6100b12ccc89000daafa9d8 - processPHPModuleArgument_arg="$(printf '%s' "$processPHPModuleArgument_arg" | sed -E 's/^([a-zA-Z0-9_.\-]+\/[a-zA-Z0-9_.\-]+)@(.+$)/https:\/\/codeload.github.com\/\1\/tar.gz\/\2/')" - # Let's check if $processPHPModuleArgument_arg is an URL - if printf '%s' "$processPHPModuleArgument_arg" | grep -Eq '^https?://[^ ]+/[^ ]+$'; then - printf 'Downloading source from %s\n' "$processPHPModuleArgument_arg" - processPHPModuleArgument_arg="$(getPackageSource "$processPHPModuleArgument_arg")" - fi - # Let's check if $processPHPModuleArgument_arg the absolute path of an existing directory - if test "$processPHPModuleArgument_arg" != "${processPHPModuleArgument_arg#/}" && test -d "$processPHPModuleArgument_arg"; then - if test -f "$processPHPModuleArgument_arg/package2.xml"; then - printf 'Checking package2.xml of directory %s... ' "$processPHPModuleArgument_arg" - if ! extractPackageVersionFromXML "$processPHPModuleArgument_arg/package2.xml"; then - return 1 - fi - elif test -f "$processPHPModuleArgument_arg/package.xml"; then - printf 'Checking package.xml of directory %s... ' "$processPHPModuleArgument_arg" - if ! extractPackageVersionFromXML "$processPHPModuleArgument_arg/package.xml"; then - return 1 - fi - else - printf 'Unable to find the package.xml file in the directory\n%s\n' "$processPHPModuleArgument_arg" - return 1 - fi - printf 'good (name: %s, version: %s)\n' "$EXTRACTPACKAGEVERSIONFROMXML_NAME" "$EXTRACTPACKAGEVERSIONFROMXML_VERSION" - PROCESSED_PHP_MODULE_ARGUMENT="$(normalizePHPModuleName "$EXTRACTPACKAGEVERSIONFROMXML_NAME")" - processPHPModuleArgument_version="$EXTRACTPACKAGEVERSIONFROMXML_VERSION" - if printf '%s' "$PROCESSED_PHP_MODULE_ARGUMENT" | grep -Eq '^[a-zA-Z0-9_]+$'; then - eval PHP_MODULESOURCECODEPATH_$PROCESSED_PHP_MODULE_ARGUMENT="$processPHPModuleArgument_arg" - else - printf 'Unable to parse the following module name:\n%s\n' "$PROCESSED_PHP_MODULE_ARGUMENT" >&2 - exit 1 - fi - else - PROCESSED_PHP_MODULE_ARGUMENT="${processPHPModuleArgument_arg%%-*}" - if test -n "$PROCESSED_PHP_MODULE_ARGUMENT" && test "$PROCESSED_PHP_MODULE_ARGUMENT" != "$processPHPModuleArgument_arg"; then - processPHPModuleArgument_version="${processPHPModuleArgument_arg#*-}" - else - processPHPModuleArgument_version='' - fi - PROCESSED_PHP_MODULE_ARGUMENT="$(normalizePHPModuleName "$PROCESSED_PHP_MODULE_ARGUMENT")" - fi - if test -n "$processPHPModuleArgument_version"; then - if printf '%s' "$PROCESSED_PHP_MODULE_ARGUMENT" | grep -Eq '^[a-zA-Z0-9_]+$'; then - eval PHP_WANTEDMODULEVERSION_$PROCESSED_PHP_MODULE_ARGUMENT="$processPHPModuleArgument_version" - elif printf '%s' "$PROCESSED_PHP_MODULE_ARGUMENT" | grep -Eq '^@[a-zA-Z0-9_]+$'; then - eval PHP_WANTEDMODULEVERSION__${PROCESSED_PHP_MODULE_ARGUMENT#@}="$processPHPModuleArgument_version" - else - printf 'Unable to parse the following module name:\n%s\n' "$PROCESSED_PHP_MODULE_ARGUMENT" >&2 - fi - fi -} - -# Get the wanted PHP module version, as specified in the command line arguments. -# -# Arguments: -# $1: the name of the module to be normalized -# -# Output: -# The wanted version (if any) -getWantedPHPModuleVersion() { - if printf '%s' "$1" | grep -Eq '^[a-zA-Z0-9_]+$'; then - eval printf '%s' "\${PHP_WANTEDMODULEVERSION_$1:-}" - elif printf '%s' "$1" | grep -Eq '^@[a-zA-Z0-9_]+$'; then - eval printf '%s' "\${PHP_WANTEDMODULEVERSION__${1#@}:-}" - fi -} - -# Get source code path of a PHP module version, as specified in the command line arguments. -# -# Arguments: -# $1: the name of the module to be normalized -# -# Output: -# The wanted version (if any) -getModuleSourceCodePath() { - if printf '%s' "$1" | grep -Eq '^[a-zA-Z0-9_]+$'; then - eval printf '%s' "\${PHP_MODULESOURCECODEPATH_$1:-}" - fi -} - -# Get the actual PHP module version, resolving it if it starts with '^' -# -# Arguments: -# $1: the name of the module -# $2: the wanted version (optional, if omitted we'll use getWantedPHPModuleVersion) -# -# Output: -# The version to be used -resolvePHPModuleVersion() { - resolvePHPModuleVersion_module="$1" - if test $# -lt 2; then - resolvePHPModuleVersion_raw="$(getWantedPHPModuleVersion "$installRemoteModule_module")" - else - resolvePHPModuleVersion_raw="$2" - fi - resolvePHPModuleVersion_afterCaret="${resolvePHPModuleVersion_raw#^}" - if test "$resolvePHPModuleVersion_raw" = "$resolvePHPModuleVersion_afterCaret"; then - printf '%s' "$resolvePHPModuleVersion_raw" - return - fi - case "$resolvePHPModuleVersion_afterCaret" in - ?*@snapshot | ?*@devel | ?*@alpha | ?*@beta | ?*@stable) - resolvePHPModuleVersion_wantedStability="${resolvePHPModuleVersion_afterCaret##*@}" - resolvePHPModuleVersion_wantedVersion="${resolvePHPModuleVersion_afterCaret%@*}" - ;; - *) - resolvePHPModuleVersion_wantedStability='' - resolvePHPModuleVersion_wantedVersion="$resolvePHPModuleVersion_afterCaret" - ;; - esac - resolvePHPModuleVersion_peclModule="$(getPeclModuleName "$resolvePHPModuleVersion_module")" - resolvePHPModuleVersion_xml="$(curl -sSLf "http://pecl.php.net/rest/r/$resolvePHPModuleVersion_peclModule/allreleases.xml")" - # remove line endings, collapse spaces - resolvePHPModuleVersion_versions="$(printf '%s' "$resolvePHPModuleVersion_xml" | tr -s ' \t\r\n' ' ')" - # one line per release (eg 1.2.3stable) - resolvePHPModuleVersion_versions="$(printf '%s' "$resolvePHPModuleVersion_versions" | sed -r 's#$resolvePHPModuleVersion_wantedStability")" - fi - # remove everything's up to '' (included) - resolvePHPModuleVersion_versions="$(printf '%s' "$resolvePHPModuleVersion_versions" | sed 's#^.*##')" - # keep just the versions - resolvePHPModuleVersion_versions="$(printf '%s' "$resolvePHPModuleVersion_versions" | cut -d'<' -f1)" - resetIFS - for resolvePHPModuleVersion_version in $resolvePHPModuleVersion_versions; do - resolvePHPModuleVersion_suffix="${resolvePHPModuleVersion_version#$resolvePHPModuleVersion_wantedVersion}" - if test "$resolvePHPModuleVersion_version" != "${resolvePHPModuleVersion_version#$resolvePHPModuleVersion_wantedVersion.}"; then - # Example: looking for 1.0, found 1.0.1 - printf '%s' "$resolvePHPModuleVersion_version" - return - fi - done - for resolvePHPModuleVersion_version in $resolvePHPModuleVersion_versions; do - resolvePHPModuleVersion_suffix="${resolvePHPModuleVersion_version#$resolvePHPModuleVersion_wantedVersion}" - if test "$resolvePHPModuleVersion_version" = "$resolvePHPModuleVersion_suffix"; then - continue - fi - if test -z "$resolvePHPModuleVersion_suffix"; then - # Example: looking for 1.0, found exactly it - printf '%s' "$resolvePHPModuleVersion_version" - return - fi - case "$resolvePHPModuleVersion_suffix" in - [0-9]) - # Example: looking for 1.1, but this is 1.10 - ;; - *) - # Example: looking for 1.1, this is 1.1rc1 - printf '%s' "$resolvePHPModuleVersion_version" - return - ;; - esac - done - printf 'Unable to find a version of "%s" compatible with "%s"\nAvailable versions are:\n%s\n' "$resolvePHPModuleVersion_module" "$resolvePHPModuleVersion_raw" "$resolvePHPModuleVersion_versions" >&2 - exit 1 -} - -# Get the actual version of a PECL pmodule, resolving 'latest', 'stable', 'beta', 'alpha', 'devel'. -# -# Arguments: -# $1: the module name as known on the PECL archive -# $2: the version to be resolved -# Output: -# $2 itself if $1 is not 'latest', 'stable', 'beta', 'alpha', or 'devel', the actual version otherwise -resolvePeclStabilityVersion() { - case "$2" in - latest | stable | beta | alpha | devel) ;; - *) - printf '%s' "$2" - return - ;; - esac - resolvePeclStabilityVersion_peclModule="$(getPeclModuleName "$1")" - peclStabilityFlagToVersion_url="http://pecl.php.net/rest/r/$resolvePeclStabilityVersion_peclModule/$2.txt" - if ! peclStabilityFlagToVersion_result="$(curl -sSLf "$peclStabilityFlagToVersion_url")"; then - peclStabilityFlagToVersion_result='' - fi - if test -z "$peclStabilityFlagToVersion_result"; then - printf 'Failed to resolve the PECL package version "%s" of %s from %s\n' "$2" "$1" "$peclStabilityFlagToVersion_url" >&2 - exit 1 - fi - printf '%s' "$peclStabilityFlagToVersion_result" -} - -# Set these variables: -# - PHP_PREINSTALLED_MODULES the normalized list of PHP modules installed before running this script -setPHPPreinstalledModules() { - PHP_PREINSTALLED_MODULES='' - IFS=' -' - for getPHPInstalledModules_module in $(php -m); do - getPHPInstalledModules_moduleNormalized='' - case "$getPHPInstalledModules_module" in - \[PHP\ Modules\]) ;; - \[Zend\ Modules\]) - break - ;; - *) - getPHPInstalledModules_moduleNormalized="$(normalizePHPModuleName "$getPHPInstalledModules_module")" - if ! stringInList "$getPHPInstalledModules_moduleNormalized" "$PHP_PREINSTALLED_MODULES"; then - PHP_PREINSTALLED_MODULES="$PHP_PREINSTALLED_MODULES $getPHPInstalledModules_moduleNormalized" - fi - ;; - esac - done - if command -v composer >/dev/null; then - PHP_PREINSTALLED_MODULES="$PHP_PREINSTALLED_MODULES @composer" - fi - resetIFS - PHP_PREINSTALLED_MODULES="${PHP_PREINSTALLED_MODULES# }" -} - -# Get the handles of the modules to be installed -# -# Arguments: -# $@: all module handles -# -# Set: -# PHP_MODULES_TO_INSTALL -# -# Output: -# Nothing -processCommandArguments() { - processCommandArguments_endArgs=0 - PHP_MODULES_TO_INSTALL='' - # Support deprecated flag IPE_FIX_CACERTS - case "${IPE_FIX_CACERTS:-}" in - 1 | y* | Y*) - PHP_MODULES_TO_INSTALL="$PHP_MODULES_TO_INSTALL @fix_letsencrypt" - ;; - esac - while :; do - if test $# -lt 1; then - break - fi - processCommandArguments_skip=0 - if test $processCommandArguments_endArgs -eq 0; then - case "$1" in - --cleanup) - printf '### WARNING the %s option is deprecated (we always cleanup everything) ###\n' "$1" >&2 - processCommandArguments_skip=1 - ;; - --) - processCommandArguments_skip=1 - processCommandArguments_endArgs=1 - ;; - -*) - printf 'Unrecognized option: %s\n' "$1" >&2 - exit 1 - ;; - esac - fi - if test $processCommandArguments_skip -eq 0; then - processPHPModuleArgument "$1" - processCommandArguments_name="$PROCESSED_PHP_MODULE_ARGUMENT" - if stringInList "$processCommandArguments_name" "$PHP_MODULES_TO_INSTALL"; then - printf '### WARNING Duplicated module name specified: %s ###\n' "$processCommandArguments_name" >&2 - elif stringInList "$processCommandArguments_name" "$PHP_PREINSTALLED_MODULES"; then - printf '### WARNING Module already installed: %s ###\n' "$processCommandArguments_name" >&2 - else - PHP_MODULES_TO_INSTALL="$PHP_MODULES_TO_INSTALL $processCommandArguments_name" - fi - fi - shift - done - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL# }" -} - -# Add a module that's required by another module -# -# Arguments: -# $1: module that requires another module -# $2: the required module -# -# Update: -# PHP_MODULES_TO_INSTALL -# -# Output: -# Nothing -checkRequiredModule() { - if ! stringInList "$1" "$PHP_MODULES_TO_INSTALL"; then - return - fi - if stringInList "$2" "$PHP_PREINSTALLED_MODULES"; then - return - fi - PHP_MODULES_TO_INSTALL="$(removeStringFromList "$1" "$PHP_MODULES_TO_INSTALL")" - if ! stringInList "$2" "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$PHP_MODULES_TO_INSTALL $2" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL# }" - fi - PHP_MODULES_TO_INSTALL="$PHP_MODULES_TO_INSTALL $1" -} - -# Sort the modules to be installed, in order to fix dependencies -# -# Update: -# PHP_MODULES_TO_INSTALL -# -# Output: -# Nothing -sortModulesToInstall() { - # apcu_bc requires apcu - checkRequiredModule 'apcu_bc' 'apcu' - # http requires propro (for PHP < 8) and raphf - if test $PHP_MAJMIN_VERSION -le 704; then - checkRequiredModule 'http' 'propro' - fi - checkRequiredModule 'http' 'raphf' - # event requires sockets (for PHP <= 5.6) - if test $PHP_MAJMIN_VERSION -le 506; then - checkRequiredModule event sockets - fi - # relay requires msgpack - checkRequiredModule relay msgpack - # relay requires igbinary - checkRequiredModule relay igbinary - # pq requires raphf - checkRequiredModule pq raphf - # phalcon up to v5.0.0beta3 requires psr - if test $PHP_MAJMINPAT_VERSION -lt 70401; then - checkRequiredModule phalcon psr - fi - # Some module installation may use sockets if available: move it before other modules - if stringInList 'sockets' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'sockets' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="sockets $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # Some module installation may use igbinary if available: move it before other modules - if stringInList 'igbinary' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'igbinary' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="igbinary $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # Some module installation may use msgpack if available: move it before other modules - if stringInList 'msgpack' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'msgpack' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="msgpack $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # Some module installation may use socket if available: move it before other modules - if stringInList 'socket' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'socket' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="socket $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # Some module installation may use apcu if available: move it before other modules - if stringInList 'apcu' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'apcu' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="apcu $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # Some module installation may use raphf if available: move it before other modules - if stringInList 'raphf' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'raphf' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="raphf $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # In any case, first of all, we need to install composer - if stringInList '@composer' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList '@composer' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="@composer $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi -} - -# Expand the IPE_ASPELL_LANGUAGES environment variable into apk/apt package names -expandASpellDictionaries() { - expandASpellDictionaries_languages="${IPE_ASPELL_LANGUAGES:-en}" - expandASpellDictionaries_result='' - resetIFS - for expandASpellDictionaries_language in $expandASpellDictionaries_languages; do - expandASpellDictionaries_result="$expandASpellDictionaries_result aspell-$expandASpellDictionaries_language" - done - printf '%s' "${expandASpellDictionaries_result# }" -} - -# Get the required APT/APK packages for a specific PHP version and for the list of module handles -# -# Arguments: -# $@: the PHP module handles -# -# Set: -# PACKAGES_PERSISTENT_NEW the list of packages required at runtume that must be installed -# PACKAGES_PERSISTENT_PRE the list of packages required at runtume that are already installed -# PACKAGES_VOLATILE the list of packages required at compile time that must be installed -# PACKAGES_PREVIOUS the list of packages (with their version) that are installed right now (calculated only on Debian and only if PACKAGES_PERSISTENT_NEW or PACKAGES_VOLATILE are not empty) -# COMPILE_LIBS -buildRequiredPackageLists() { - buildRequiredPackageLists_persistent='' - buildRequiredPackageLists_volatile='' - COMPILE_LIBS='' - case "$DISTRO" in - alpine) - apk update - ;; - debian) - invokeAptGetUpdate - ;; - esac - case "$DISTRO_VERSION" in - alpine@*) - if test $# -gt 1 || test "${1:-}" != '@composer'; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $PHPIZE_DEPS" - fi - if test -z "$(apk info 2>/dev/null | grep -E ^libssl)"; then - buildRequiredPackageLists_libssl="$(apk search | grep -E '^libssl[0-9]' | head -1 | cut -d- -f1)" - elif test -z "$(apk info 2>/dev/null | grep -E '^libressl.*-libtls')" && test -z "$(apk info 2>/dev/null | grep -E '^libressl.*-libssl')" && test -z "$(apk info 2>/dev/null | grep -E '^libretls-')"; then - buildRequiredPackageLists_libssl=$(apk search -q libressl*-libtls) - else - buildRequiredPackageLists_libssl='' - fi - if test $DISTRO_MAJMIN_VERSION -le 313; then - buildRequiredPackageLists_libssldev='libressl-dev' - else - buildRequiredPackageLists_libssldev='libretls-dev' - fi - buildRequiredPackageLists_icuPersistent='' - if test $DISTRO_MAJMIN_VERSION -ge 316; then - case "${IPE_ICU_EN_ONLY:-}" in - 1 | y* | Y*) ;; - *) - buildRequiredPackageLists_icuPersistent='icu-data-full' - ;; - esac - fi - ;; - debian@9) - buildRequiredPackageLists_libssldev='libssl1.0-dev' - ;; - debian@*) - buildRequiredPackageLists_libssldev='^libssl([0-9]+(\.[0-9]+)*)?-dev$' - ;; - esac - if test $USE_PICKLE -gt 1; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile git" - fi - while :; do - if test $# -lt 1; then - break - fi - case "$1@$DISTRO" in - @composer@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent unzip" - ;; - amqp@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent rabbitmq-c" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile rabbitmq-c-dev" - ;; - amqp@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^librabbitmq[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile librabbitmq-dev libssh-dev" - ;; - bz2@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libbz2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile bzip2-dev" - ;; - bz2@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libbz2-dev" - ;; - cassandra@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent cassandra-cpp-driver gmp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cassandra-cpp-driver-dev gmp-dev" - ;; - cmark@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake" - ;; - cmark@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake" - ;; - ddtrace@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libgcc" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile curl-dev" - ;; - ddtrace@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libcurl4-openssl-dev" - ;; - dba@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent db" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile db-dev" - ;; - dba@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile ^libdb5\.3-dev$" - if test $PHP_MAJMIN_VERSION -le 505; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile patch" - fi - ;; - decimal@debian) - if test $DISTRO_MAJMIN_VERSION -lt 1200; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libmpdec[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmpdec-dev" - fi - ;; - ecma_intl@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent icu-libs $buildRequiredPackageLists_icuPersistent" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev libidn-dev" - ;; - ecma_intl@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libicu[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libicu-dev" - ;; - enchant@alpine) - if test $DISTRO_MAJMIN_VERSION -ge 312; then - if test $PHP_MAJMIN_VERSION -ge 800; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent enchant2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile enchant2-dev" - else - # The system provides libenchant2, supported since PHP 8.0: we need to build libenchant1 on our own - if ! isLibenchant1Installed; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent glib aspell-libs libhunspell" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile glib-dev aspell-dev hunspell-dev" - COMPILE_LIBS="$COMPILE_LIBS libenchant1" - fi - fi - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent enchant" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile enchant-dev" - fi - ;; - enchant@debian) - if test $DISTRO_VERSION_NUMBER -ge 11; then - if test $PHP_MAJMIN_VERSION -ge 800; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libenchant-2-2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libenchant-2-dev" - else - if ! isLibenchant1Installed; then - # The system provides libenchant2, supported since PHP 8.0: we need to build libenchant1 on our own - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent aspell-en libhunspell-1.7-0" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libglib2.0-dev libaspell-dev libhunspell-dev" - COMPILE_LIBS="$COMPILE_LIBS libenchant1" - fi - fi - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libenchant1c2a" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libenchant-dev" - fi - ;; - event@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libevent $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libevent-dev $buildRequiredPackageLists_libssldev" - ;; - event@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libevent[0-9\.\-]*$ ^libevent-openssl[0-9\.\-]*$ ^libevent-extra[0-9\.\-]*$ ^libevent-pthreads[0-9\.\-]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libevent-dev $buildRequiredPackageLists_libssldev" - ;; - ffi@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libffi" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libffi-dev" - ;; - ffi@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libffi-dev" - ;; - ftp@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev" - ;; - ftp@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev" - ;; - gd@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent freetype libjpeg-turbo libpng libxpm" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetype-dev libjpeg-turbo-dev libpng-dev libxpm-dev" - if test $PHP_MAJMIN_VERSION -le 506; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libvpx" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libvpx-dev" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libwebp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libwebp-dev" - if test $PHP_MAJMIN_VERSION -ge 801; then - if test $DISTRO_MAJMIN_VERSION -ge 315; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libavif aom-libs libdav1d" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libavif-dev aom-dev dav1d-dev" - elif isLibaomInstalled && isLibdav1dInstalled && isLibyuvInstalled && isLibavifInstalled; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - else - case "${IPE_GD_WITHOUTAVIF:-}" in - 1 | y* | Y*) ;; - *) - if ! isLibaomInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libaom" - fi - if ! isLibdav1dInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libdav1d" - fi - if ! isLibyuvInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libyuv" - fi - if ! isLibavifInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libavif" - fi - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake nasm meson" - ;; - esac - fi - fi - fi - ;; - gd@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libfreetype6 libjpeg62-turbo ^libpng[0-9]+-[0-9]+$ libxpm4" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libfreetype6-dev libjpeg62-turbo-dev libpng-dev libxpm-dev" - if test $PHP_MAJMIN_VERSION -le 506; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libvpx[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libvpx-dev" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libwebp[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libwebp-dev" - if test $PHP_MAJMIN_VERSION -ge 801; then - if test $DISTRO_VERSION_NUMBER -ge 12; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libavif[0-9]+$ ^libaom[0-9]+$ ^libdav1d[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libavif-dev libaom-dev libdav1d-dev" - elif ! isLibaomInstalled || ! isLibdav1dInstalled || ! isLibyuvInstalled || ! isLibavifInstalled; then - case "${IPE_GD_WITHOUTAVIF:-}" in - 1 | y* | Y*) ;; - *) - if ! isLibaomInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libaom" - fi - if ! isLibdav1dInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libdav1d" - fi - if ! isLibyuvInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libyuv" - fi - if ! isLibavifInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libavif" - fi - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake nasm meson" - ;; - esac - fi - fi - fi - ;; - gearman@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++ libuuid" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile boost-dev gperf libmemcached-dev libevent-dev util-linux-dev" - ;; - gearman@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libgearman[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgearman-dev" - ;; - geoip@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent geoip" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile geoip-dev" - ;; - geoip@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libgeoip1[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgeoip-dev" - ;; - geos@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent geos-dev" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile geos" - ;; - geos@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libgeos-c1(v[0-9]*)?$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgeos-dev" - ;; - gettext@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libintl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile gettext-dev" - ;; - gmagick@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent graphicsmagick libgomp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile graphicsmagick-dev libtool" - ;; - gmagick@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libgraphicsmagick(-q16-)?[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgraphicsmagick1-dev" - ;; - gmp@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gmp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile gmp-dev" - ;; - gmp@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgmp-dev" - ;; - gnupg@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gpgme" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile gpgme-dev" - ;; - gnupg@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libgpgme[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile ^libgpgme[0-9]*-dev$" - ;; - grpc@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev linux-headers" - ;; - grpc@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev" - ;; - http@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libevent" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev curl-dev libevent-dev" - if test $PHP_MAJMIN_VERSION -le 506; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libidn" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libidn-dev" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent icu-libs $buildRequiredPackageLists_icuPersistent libidn" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev libidn-dev" - fi - ;; - http@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libcurl3-gnutls ^libevent[0-9\.\-]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev libgnutls28-dev libcurl4-gnutls-dev libevent-dev" - if test $PHP_MAJMIN_VERSION -le 506; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile ^libidn1[0-9+]-dev$" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libicu[0-9]+$ ^libidn2-[0-9+]$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libicu-dev ^libidn2-[0-9+]-dev$ ^libgcrypt[0-9]+-dev$" - fi - ;; - imagick@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent imagemagick libgomp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile imagemagick-dev" - if [ $DISTRO_MAJMIN_VERSION -ge 319 ]; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ghostscript libheif libjxl libraw librsvg" - fi - ;; - imagick@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libmagickwand-6.q16-[0-9]+$ ^libmagickcore-6.q16-[0-9]+-extra$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmagickwand-dev" - ;; - imap@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent c-client $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile krb5-dev imap-dev $buildRequiredPackageLists_libssldev" - ;; - imap@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libc-client2007e" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libkrb5-dev" - case "$DISTRO_VERSION" in - debian@9) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev comerr-dev krb5-multidev libc-client2007e libgssrpc4 libkadm5clnt-mit11 libkadm5srv-mit11 libkdb5-8 libpam0g-dev libssl-doc mlock" - ;; - *) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libc-client-dev" - ;; - esac - ;; - interbase@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev ncurses-dev" - if ! isFirebirdInstalled; then - COMPILE_LIBS="$COMPILE_LIBS firebird" - fi - ;; - interbase@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libfbclient2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile firebird-dev libib-util" - ;; - intl@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent icu-libs $buildRequiredPackageLists_icuPersistent" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev" - ;; - intl@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libicu[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libicu-dev" - ;; - ion@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake git" - ;; - ion@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake git" - ;; - ldap@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libldap" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile openldap-dev" - ;; - ldap@debian) - if test $DISTRO_VERSION_NUMBER -ge 9; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libldap-common" - fi - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libldap2-dev" - ;; - luasandbox@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lua5.1-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile lua5.1-dev" - ;; - luasandbox@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblua5.1-0" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liblua5.1-0-dev" - ;; - lz4@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lz4-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile lz4-dev" - ;; - lz4@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblz4-1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liblz4-dev" - ;; - maxminddb@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmaxminddb" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmaxminddb-dev" - ;; - maxminddb@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libmaxminddb[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmaxminddb-dev" - ;; - memprof@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent judy" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile judy-dev bsd-compat-headers" - ;; - memprof@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libjudydebian1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libjudy-dev" - ;; - mcrypt@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmcrypt" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmcrypt-dev" - ;; - mcrypt@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmcrypt4" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmcrypt-dev" - ;; - memcache@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev" - ;; - memcache@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev" - ;; - memcached@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmemcached-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmemcached-dev zlib-dev" - ;; - memcached@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmemcachedutil2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmemcached-dev zlib1g-dev" - if test $DISTRO_MAJMIN_VERSION -ge 12; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev" - fi - ;; - mongo@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsasl $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev cyrus-sasl-dev" - ;; - mongo@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev libsasl2-dev" - ;; - mongodb@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent icu-libs $buildRequiredPackageLists_icuPersistent libsasl $buildRequiredPackageLists_libssl snappy" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev cyrus-sasl-dev snappy-dev $buildRequiredPackageLists_libssldev zlib-dev" - if test $PHP_MAJMIN_VERSION -ge 704; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent zstd-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zstd-dev" - fi - ;; - mongodb@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libsnappy[0-9]+(v[0-9]+)?$ ^libicu[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libicu-dev libsasl2-dev libsnappy-dev $buildRequiredPackageLists_libssldev zlib1g-dev" - if test $PHP_MAJMIN_VERSION -ge 704; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libzstd[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libzstd-dev" - fi - ;; - mosquitto@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent mosquitto-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile mosquitto-dev" - ;; - mosquitto@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmosquitto1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmosquitto-dev" - ;; - mssql@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent freetds" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - mssql@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsybdb5" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - oauth@alpine) - if test $PHP_MAJMIN_VERSION -ge 700; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile pcre-dev" - fi - ;; - oauth@debian) - if test $PHP_MAJMIN_VERSION -ge 700; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libpcre3-dev" - fi - ;; - oci8@alpine | pdo_oci@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libaio libc6-compat libnsl" - if test $DISTRO_MAJMIN_VERSION -le 307; then - # The unzip tool of Alpine 3.7 can't extract symlinks from ZIP archives: let's use bsdtar instead - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libarchive-tools" - fi - ;; - oci8@debian | pdo_oci@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libaio[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unzip" - ;; - odbc@alpine | pdo_odbc@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent unixodbc" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unixodbc-dev" - ;; - odbc@debian | pdo_odbc@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libodbc1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unixodbc-dev" - ;; - openswoole@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent postgresql-libs libstdc++ $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile curl-dev postgresql-dev linux-headers $buildRequiredPackageLists_libssldev" - ;; - openswoole@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libcurl3-gnutls libpq5" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev libcurl4-gnutls-dev libpq-dev" - ;; - parle@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - ;; - pdo_dblib@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent freetds" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - pdo_dblib@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsybdb5" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - pdo_firebird@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev ncurses-dev" - if ! isFirebirdInstalled; then - COMPILE_LIBS="$COMPILE_LIBS firebird" - if test $PHP_MAJMIN_VERSION -ge 804; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev" - if ! isLibTommathInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libtommath" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake" - fi - if ! isLibTomcryptInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libtomcrypt" - fi - fi - fi - ;; - pdo_firebird@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libfbclient2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile firebird-dev libib-util" - ;; - pgsql@alpine | pdo_pgsql@alpine | pq@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent postgresql-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile postgresql-dev" - ;; - pgsql@debian | pdo_pgsql@debian | pq@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libpq5" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libpq-dev" - ;; - php_trie@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - ;; - phpy@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent python3" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile python3-dev" - ;; - phpy@debian) - if test $DISTRO_VERSION_NUMBER -ge 12; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libpython3.11" - elif test $DISTRO_VERSION_NUMBER -ge 11; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libpython3.9" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libpython3.7" - fi - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile python3-dev" - ;; - pkcs11@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent softhsm" - ;; - pkcs11@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsofthsm2" - ;; - pspell@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent aspell-libs $(expandASpellDictionaries)" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile aspell-dev" - ;; - pspell@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libaspell15 $(expandASpellDictionaries)" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libpspell-dev" - ;; - rdkafka@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent librdkafka" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile librdkafka-dev" - ;; - rdkafka@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^librdkafka\+*[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile librdkafka-dev" - ;; - recode@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent recode" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile recode-dev" - ;; - recode@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent librecode0" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile librecode-dev" - ;; - redis@alpine) - if test $PHP_MAJMIN_VERSION -ge 700; then - case "$DISTRO_VERSION" in - alpine@3.7) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent zstd" - ;; - *) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent zstd-libs" - ;; - esac - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zstd-dev" - if test $PHP_MAJMIN_VERSION -ge 702; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lz4-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile lz4-dev" - fi - fi - ;; - redis@debian) - if test $PHP_MAJMIN_VERSION -ge 700; then - case "$DISTRO_VERSION" in - debian@8) - ## There's no APT package for libzstd - ;; - debian@9) - ## libzstd is too old (available: 1.1.2, required: 1.3.0+) - ;; - *) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libzstd[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libzstd-dev" - ;; - esac - fi - if test $PHP_MAJMIN_VERSION -ge 702; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblz4-1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liblz4-dev" - fi - ;; - relay@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lz4-libs zstd-libs" - if test $DISTRO_MAJMIN_VERSION -ge 317; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent $buildRequiredPackageLists_libssl" - fi - ;; - saxon@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_volatile unzip" - ;; - seasclick@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - ;; - simdjson@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - ;; - smbclient@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsmbclient" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile samba-dev" - ;; - smbclient@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsmbclient" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsmbclient-dev" - ;; - snappy@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent snappy" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile snappy-dev" - ;; - snappy@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libsnappy1(v[0-9]+)?$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsnappy-dev" - ;; - snmp@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent net-snmp-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile net-snmp-dev" - ;; - snmp@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent snmp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsnmp-dev" - ;; - snuffleupagus@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent pcre" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile pcre-dev" - ;; - snuffleupagus@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libpcre3-dev" - ;; - soap@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - soap@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - sockets@alpine) - if test $PHP_MAJMIN_VERSION -ge 802; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile linux-headers" - fi - ;; - sodium@alpine | libsodium@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsodium" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsodium-dev" - ;; - sodium@debian | libsodium@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libsodium[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsodium-dev" - ;; - solr@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile curl-dev libxml2-dev" - ;; - solr@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libcurl3-gnutls" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libcurl4-gnutls-dev libxml2-dev" - ;; - sourceguardian@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent eudev-libs" - ;; - spx@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev" - ;; - spx@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev" - ;; - sqlsrv@alpine | pdo_sqlsrv@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++ unixodbc" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unixodbc-dev" - ;; - sqlsrv@debian | pdo_sqlsrv@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent unixodbc" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unixodbc-dev" - if ! isMicrosoftSqlServerODBCInstalled; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile gnupg apt-transport-https" - fi - ;; - ssh2@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libssh2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libssh2-dev" - ;; - ssh2@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libssh2-1-dev" - ;; - stomp@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev" - ;; - stomp@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev" - ;; - swoole@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent postgresql-libs libstdc++ $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile curl-dev postgresql-dev linux-headers $buildRequiredPackageLists_libssldev" - if test $PHP_MAJMIN_VERSION -ge 702; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent c-ares" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile c-ares-dev" - if test $PHP_MAJMIN_VERSION -ge 801; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent zstd-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile sqlite-dev zstd-dev" - fi - fi - case "${IPE_SWOOLE_WITHOUT_IOURING:-}" in - 1 | y* | Y*) ;; - *) - # iouring support in swoole 6 requires liburing 2.5+: available since Alpine 3.19 - # but with Alpine 3.19 we have a "invalid use of incomplete type 'const struct statx'" error - if test $DISTRO_MAJMIN_VERSION -ge 320; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liburing" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liburing-dev" - fi - ;; - esac - ;; - swoole@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libcurl3-gnutls libpq5" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev libcurl4-gnutls-dev libpq-dev" - if test $PHP_MAJMIN_VERSION -ge 702; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libc-ares2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libc-ares-dev" - if test $PHP_MAJMIN_VERSION -ge 800; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libbrotli1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev libbrotli-dev" - if test $PHP_MAJMIN_VERSION -ge 801; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsqlite3-dev" - if test $DISTRO_VERSION_NUMBER -ge 11; then - # swoole 6 requires libzstd >= 1.4.0, but on debian 10 (buster) we have 1.3.8 - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libzstd[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libzstd-dev" - fi - fi - fi - fi - if test $DISTRO_VERSION_NUMBER -ge 13; then - # iouring support in swoole 6 requires liburing 2.5+: available since Debian Trixie (13) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liburing2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liburing-dev" - fi - ;; - sybase_ct@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent freetds" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - sybase_ct@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libct4" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - tdlib@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++ $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile git cmake gperf zlib-dev $buildRequiredPackageLists_libssldev linux-headers readline-dev" - ;; - tdlib@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile git cmake gperf zlib1g-dev $buildRequiredPackageLists_libssldev" - ;; - tensor@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent openblas" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile lapack-dev openblas-dev" - if test $DISTRO_MAJMIN_VERSION -le 317; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lapack" - if test $DISTRO_MAJMIN_VERSION -le 316; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libexecinfo" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libexecinfo-dev" - if test $DISTRO_MAJMIN_VERSION -le 310; then - if ! stringInList --force-overwrite "$IPE_APK_FLAGS"; then - IPE_APK_FLAGS="$IPE_APK_FLAGS --force-overwrite" - fi - fi - fi - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblapack" - fi - ;; - tensor@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblapacke" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liblapack-dev libopenblas-dev liblapacke-dev" - if test $DISTRO_VERSION_NUMBER -le 9; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-6 libopenblas-base" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-6-dev" - elif test $DISTRO_VERSION_NUMBER -le 10; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-8 libopenblas-base" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-8-dev" - elif test $DISTRO_VERSION_NUMBER -le 11; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-10 libopenblas-base" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-10-dev" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-12 libopenblas0" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-12-dev" - fi - ;; - tidy@alpine) - if test $DISTRO_MAJMIN_VERSION -ge 315; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent tidyhtml" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent tidyhtml-libs" - fi - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile tidyhtml-dev" - ;; - tidy@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libtidy-?[0-9][0-9.\-]*(deb[0-9])?$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libtidy-dev" - ;; - uuid@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libuuid" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile util-linux-dev" - ;; - uuid@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile uuid-dev" - ;; - uv@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libuv" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libuv-dev" - ;; - uv@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libuv1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libuv1-dev" - ;; - vips@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent vips" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile vips-dev" - ;; - vips@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libvips" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libvips-dev" - ;; - wddx@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - wddx@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - wikidiff2@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile git" - ;; - wikidiff2@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libthai0" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile git libthai-dev" - ;; - xdebug@alpine) - if test $PHP_MAJMIN_VERSION -ge 800; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile linux-headers" - fi - ;; - xlswriter@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev" - ;; - xlswriter@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev" - ;; - xmldiff@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - xmldiff@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - xmlrpc@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - xmlrpc@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - xpass@alpine) - if ! isLibXCryptInstalled; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile linux-headers" - COMPILE_LIBS="$COMPILE_LIBS libxcrypt" - fi - ;; - xsl@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libxslt" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxslt-dev libgcrypt-dev" - ;; - xsl@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libxslt1\.1$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxslt-dev" - ;; - yaml@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent yaml" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile yaml-dev" - ;; - yaml@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libyaml-0-2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libyaml-dev" - ;; - yar@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile curl-dev" - ;; - yar@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libcurl3-gnutls" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libcurl4-gnutls-dev" - ;; - zip@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libzip" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake gnutls-dev libzip-dev $buildRequiredPackageLists_libssldev zlib-dev" - ;; - zip@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libzip[0-9]$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake gnutls-dev $buildRequiredPackageLists_libssldev libzip-dev libbz2-dev zlib1g-dev" - case "$DISTRO_VERSION" in - debian@8) - # Debian Jessie doesn't seem to provide libmbedtls - ;; - *) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libmbedtls[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmbedtls-dev" - ;; - esac - ;; - zmq@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent zeromq-dev" - ;; - zmq@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libzmq3-dev" - ;; - zookeeper@alpine) - if ! test -f /usr/local/include/zookeeper/zookeeper.h; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile maven automake libtool openjdk8" - fi - ;; - zookeeper@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libzookeeper-mt2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libzookeeper-mt-dev" - ;; - esac - shift - done - PACKAGES_PERSISTENT_NEW='' - PACKAGES_PERSISTENT_PRE='' - PACKAGES_VOLATILE='' - PACKAGES_PREVIOUS='' - if test -z "$buildRequiredPackageLists_persistent$buildRequiredPackageLists_volatile"; then - return - fi - if test -n "$buildRequiredPackageLists_persistent"; then - PACKAGES_PERSISTENT_NEW="$(expandPackagesToBeInstalled $buildRequiredPackageLists_persistent)" - if test -s "$IPE_ERRFLAG_FILE"; then - exit 1 - fi - resetIFS - for buildRequiredPackageLists_package in $buildRequiredPackageLists_persistent; do - buildRequiredPackageLists_package="$(expandInstalledSystemPackageName "$buildRequiredPackageLists_package")" - if test -n "$buildRequiredPackageLists_package"; then - PACKAGES_PERSISTENT_PRE="$PACKAGES_PERSISTENT_PRE $buildRequiredPackageLists_package" - fi - done - PACKAGES_PERSISTENT_PRE="${PACKAGES_PERSISTENT_PRE# }" - fi - if test -n "$buildRequiredPackageLists_volatile"; then - buildRequiredPackageLists_packages="$(expandPackagesToBeInstalled $buildRequiredPackageLists_volatile)" - if test -s "$IPE_ERRFLAG_FILE"; then - exit 1 - fi - resetIFS - for buildRequiredPackageLists_package in $buildRequiredPackageLists_packages; do - if ! stringInList "$buildRequiredPackageLists_package" "$PACKAGES_PERSISTENT_NEW"; then - if test "$buildRequiredPackageLists_package" != icu-data-en || ! stringInList icu-data-full "$PACKAGES_PERSISTENT_NEW"; then - PACKAGES_VOLATILE="$PACKAGES_VOLATILE $buildRequiredPackageLists_package" - fi - fi - done - PACKAGES_VOLATILE="${PACKAGES_VOLATILE# }" - fi - if test -n "$PACKAGES_PERSISTENT_NEW$PACKAGES_VOLATILE"; then - case "$DISTRO" in - debian) - PACKAGES_PREVIOUS="$(dpkg --get-selections | grep -E '\sinstall$' | awk '{ print $1 }')" - ;; - esac - fi -} - -# Get the full list of APT/APK packages that will be installed, given the required packages -# -# Arguments: -# $1: the list of required APT/APK packages -# -# Output: -# Space-separated list of every APT/APK packages that will be installed -expandPackagesToBeInstalled() { - expandPackagesToBeInstalled_result='' - case "$DISTRO" in - alpine) - expandPackagesToBeInstalled_log="$(apk add --simulate $@ 2>&1 || printf '\nERROR: apk failed\n')" - if test -n "$(printf '%s' "$expandPackagesToBeInstalled_log" | grep -E '^ERROR:')"; then - printf 'FAILED TO LIST THE WHOLE PACKAGE LIST FOR\n' >&2 - printf '%s ' "$@" >&2 - printf '\n\nCOMMAND OUTPUT:\n%s\n' "$expandPackagesToBeInstalled_log" >&2 - echo 'y' >"$IPE_ERRFLAG_FILE" - exit 1 - fi - IFS=' -' - for expandPackagesToBeInstalled_line in $expandPackagesToBeInstalled_log; do - if test -n "$(printf '%s' "$expandPackagesToBeInstalled_line" | grep -E '^\([0-9]*/[0-9]*) Installing ')"; then - expandPackagesToBeInstalled_result="$expandPackagesToBeInstalled_result $(printf '%s' "$expandPackagesToBeInstalled_line" | cut -d ' ' -f 3)" - fi - done - resetIFS - ;; - debian) - expandPackagesToBeInstalled_log="$(apt-get install -sy --no-install-recommends $@ 2>&1 || printf '\nE: apt-get failed\n')" - if test -n "$(printf '%s' "$expandPackagesToBeInstalled_log" | grep -E '^E:')"; then - printf 'FAILED TO LIST THE WHOLE PACKAGE LIST FOR\n' >&2 - printf '%s ' "$@" >&2 - printf '\n\nCOMMAND OUTPUT:\n%s\n' "$expandPackagesToBeInstalled_log" >&2 - echo 'y' >"$IPE_ERRFLAG_FILE" - exit 1 - fi - expandPackagesToBeInstalled_inNewPackages=0 - IFS=' -' - for expandPackagesToBeInstalled_line in $expandPackagesToBeInstalled_log; do - if test $expandPackagesToBeInstalled_inNewPackages -eq 0; then - if test "$expandPackagesToBeInstalled_line" = 'The following NEW packages will be installed:'; then - expandPackagesToBeInstalled_inNewPackages=1 - fi - elif test "$expandPackagesToBeInstalled_line" = "${expandPackagesToBeInstalled_line# }"; then - break - else - resetIFS - for expandPackagesToBeInstalled_newPackage in $expandPackagesToBeInstalled_line; do - expandPackagesToBeInstalled_result="$expandPackagesToBeInstalled_result $expandPackagesToBeInstalled_newPackage" - done - IFS=' -' - fi - done - resetIFS - ;; - esac - printf '%s' "${expandPackagesToBeInstalled_result# }" -} - -# Check if a system package is installed; if so we prints its name. -# -# Arguments: -# $1: the name of the package to be checked (regular expressions accepted: they must start with a ^) -expandInstalledSystemPackageName() { - if test "$1" = "${1#^}"; then - expandInstalledSystemPackageName_grepflags='-Fx' - else - expandInstalledSystemPackageName_grepflags='-E' - fi - case "$DISTRO" in - alpine) - apk info | grep $expandInstalledSystemPackageName_grepflags -- "$1" || test $? -eq 1 - ;; - debian) - dpkg --get-selections | grep -E '\sinstall$' | awk '{ print $1 }' | cut -d: -f1 | grep $expandInstalledSystemPackageName_grepflags -- "$1" || test $? -eq 1 - ;; - esac -} - -# Retrieve the number of available cores (alternative to nproc if not available) -# -# Output: -# The number of processor cores available -getProcessorCount() { - if test -n "${IPE_PROCESSOR_COUNT:-}"; then - echo $IPE_PROCESSOR_COUNT - return - fi - if command -v nproc >/dev/null 2>&1; then - nproc - else - getProcessorCount_tmp=$(cat /proc/cpuinfo | grep -E '^processor\s*:\s*\d+$' | wc -l) - if test $getProcessorCount_tmp -ge 1; then - echo $getProcessorCount_tmp - else - echo 1 - fi - fi -} - -# Set these variables: -# - TARGET_TRIPLET the build target tripled (eg 'x86_64-linux-gnu', 'x86_64-alpine-linux-musl') -setTargetTriplet() { - TARGET_TRIPLET="$(gcc -print-multiarch 2>/dev/null || true)" - if test -z "$TARGET_TRIPLET"; then - TARGET_TRIPLET="$(gcc -dumpmachine)" - fi -} - -# Retrieve the number of processors to be used when compiling an extension -# -# Arguments: -# $1: the handle of the PHP extension to be compiled -# Output: -# The number of processors to be used -getCompilationProcessorCount() { - case "$1" in - '') - # The above extensions don't support parallel compilation - echo 1 - ;; - *) - # All the other extensions support parallel compilation - getProcessorCount - ;; - esac -} - -# Get the full path of a PHP extension given its name. -# -# Arguments: -# $1: the name of the PHP extension -# -# Output: -# The absolute path of the PHP extension file (or nothing if the file can't be found) -getModuleFullPath() { - case "$1" in - apcu_bc) - getModuleFullPath_path="$PHP_EXTDIR/apc.so" - ;; - seasclick) - getModuleFullPath_path="$PHP_EXTDIR/SeasClick.so" - ;; - *) - getModuleFullPath_path="$PHP_EXTDIR/$1.so" - ;; - esac - if ! test -f "$getModuleFullPath_path"; then - printf 'Unable to find the file of the PHP extension "%s"\n' "$1" >&2 - exit 1 - fi - printf '%s' "$getModuleFullPath_path" -} - -# Post-process a PHP module just compiled and installed in the PHP extension directory -# -# Arguments: -# $1: the name of the PHP extension -# -# Return: -# 0 (true): if suceeded -# non-zero (false): in case of errors -postProcessModule() { - postProcessModule_file="$(getModuleFullPath "$1")" - if test $PHP_DEBUGBUILD -ne 1; then - printf 'Removing symbols from %s... ' "$postProcessModule_file" - postProcessModule_preSize="$(stat -c %s "$postProcessModule_file")" - strip --strip-all "$postProcessModule_file" - postProcessModule_postSize="$(stat -c %s "$postProcessModule_file")" - printf 'done (%s bytes saved).\n' "$((postProcessModule_preSize - postProcessModule_postSize))" - fi - return $? -} - -# Get the type of the php.ini entry to be used for a PHP extension -# -# Arguments: -# $1: the name of the PHP extension -# -# Output: -# zend_extension or extension -getModuleIniEntryType() { - case "$1" in - ioncube_loader | sourceguardian) - # On PHP 5.5, docker-php-ext-enable fails to detect that ionCube Loader and sourceguardian are Zend extensions - if test $PHP_MAJMIN_VERSION -le 505; then - printf 'zend_extension' - return 0 - fi - ;; - esac - getModuleIniEntryType_file="$(getModuleFullPath "$1")" - if readelf --wide --syms "$getModuleIniEntryType_file" | grep -Eq ' zend_extension_entry$'; then - printf 'zend_extension' - else - printf 'extension' - fi -} - -# Create the contents of a PHP ini file that enables an extension -# -# Arguments: -# $1: the name of the PHP extension -# $2: additional php.ini configuration (optional) -# -# Output: -# The contents of the ini file -buildPhpExtensionIniContent() { - buildPhpExtensionIniContent_type="$(getModuleIniEntryType "$1")" - buildPhpExtensionIniContent_soFile="$(getModuleFullPath "$1")" - buildPhpExtensionIniContent_result="$(printf '%s=%s' "$buildPhpExtensionIniContent_type" "${buildPhpExtensionIniContent_soFile##$PHP_EXTDIR/}")" - if test -n "${2:-}"; then - buildPhpExtensionIniContent_result="$(printf '%s\n%s' "$buildPhpExtensionIniContent_result" "$2")" - fi - printf '%s' "$buildPhpExtensionIniContent_result" -} - -# Check that a PHP module actually works (better to run this check before enabling the extension) -# -# Arguments: -# $1: the name of the PHP extension -# $2: base name (without path and extension) of additional php.ini configuration (optional) -# $3: additional php.ini configuration (optional) -# -# Return: -# 0 (true): if the string is in the list -# 1 (false): if the string is not in the list -checkModuleWorking() { - if test -n "${2:-}"; then - checkModuleWorking_iniFile="$PHP_INI_DIR/conf.d/$2--temp.ini" - else - checkModuleWorking_iniFile="$PHP_INI_DIR/conf.d/docker-php-ext-$1--temp.ini" - fi - checkModuleWorking_iniContent="$(buildPhpExtensionIniContent "$1" "${3:-}")" - printf 'Check if the %s module can be loaded... ' "$1" - checkModuleWorking_errBefore="$(php -r 'return;' 2>&1 || true)" - printf '%s' "$checkModuleWorking_iniContent" >"$checkModuleWorking_iniFile" - checkModuleWorking_errAfter="$(php -r 'return;' 2>&1 || true)" - rm "$checkModuleWorking_iniFile" - if test "$checkModuleWorking_errAfter" != "$checkModuleWorking_errBefore"; then - printf 'Error loading the "%s" extension:\n%s\n' "$1" "$checkModuleWorking_errAfter" >&2 - return 1 - fi - printf 'ok.\n' - return 0 -} - -# Enable a PHP extension -# -# Arguments: -# $1: the name of the PHP extension to be enabled -# $2: base name (without path and extension) of additional php.ini configuration (optional) -# $3: additional php.ini configuration (optional) -enablePhpExtension() { - if test -n "${2:-}"; then - enablePhpExtension_iniFile="$PHP_INI_DIR/conf.d/$2.ini" - else - enablePhpExtension_iniFile="$PHP_INI_DIR/conf.d/docker-php-ext-$1.ini" - fi - enablePhpExtension_iniContent="$(buildPhpExtensionIniContent "$1" "${3:-}")" - case "${IPE_DONT_ENABLE:-}" in - 1 | y* | Y*) - enablePhpExtension_enableCommand="/usr/local/bin/docker-php-ext-enable-$1" - printf '%s' "$enablePhpExtension_iniContent" >"$enablePhpExtension_iniFile-disabled" - printf '\n' >>"$enablePhpExtension_iniFile-disabled" - cat <"$enablePhpExtension_enableCommand" -#!/bin/sh - -if test -f '$enablePhpExtension_iniFile-disabled'; then - echo 'Enabling extension $1' - mv '$enablePhpExtension_iniFile-disabled' '$enablePhpExtension_iniFile' -else - echo 'The extension $1 has already been enabled' -fi -EOT - chmod +x "$enablePhpExtension_enableCommand" - printf '## Extension %s not enabled.\nYou can enable it by running the following command:\n%s\n\n' "$1" "$(basename "$enablePhpExtension_enableCommand")" - ;; - *) - printf '%s' "$enablePhpExtension_iniContent" >"$enablePhpExtension_iniFile" - printf '\n' >>"$enablePhpExtension_iniFile" - ;; - esac -} - -# Mark the pre-installed APT/APK packages as used -# that way they won't be uninstalled by accident -markPreinstalledPackagesAsUsed() { - printf '### MARKING PRE-INSTALLED PACKAGES AS IN-USE ###\n' - case "$DISTRO" in - alpine) - printf '# Packages: %s\n' "$PACKAGES_PERSISTENT_PRE" - apk add $PACKAGES_PERSISTENT_PRE - ;; - debian) - apt-mark manual $PACKAGES_PERSISTENT_PRE - ;; - esac -} - -# Install the required APT/APK packages -# -# Arguments: -# $@: the list of APT/APK packages to be installed -installRequiredPackages() { - printf '### INSTALLING REQUIRED PACKAGES ###\n' - printf '# Packages to be kept after installation: %s\n' "$PACKAGES_PERSISTENT_NEW" - printf '# Packages to be used only for installation: %s\n' "$PACKAGES_VOLATILE" - case "$DISTRO" in - alpine) - apk add $IPE_APK_FLAGS $PACKAGES_PERSISTENT_NEW $PACKAGES_VOLATILE - # https://gitlab.alpinelinux.org/alpine/aports/-/issues/12763#note_172090 - # https://github.com/mlocati/docker-php-extension-installer/issues/385 - # https://github.com/mlocati/docker-php-extension-installer/issues/537#issuecomment-1078748882 - for installRequiredPackages_item in wget; do - if test -n "$(expandInstalledSystemPackageName "$installRequiredPackages_item")"; then - apk add --upgrade "$installRequiredPackages_item" - fi - done - ;; - debian) - apt-get install -qqy --no-install-recommends $PACKAGES_PERSISTENT_NEW $PACKAGES_VOLATILE - ;; - esac -} - -# Get the version of an installed APT/APK package -# -# Arguments: -# $1: the name of the installed package -# -# Output: -# The numeric part of the package version, with from 1 to 3 numbers -# -# Example: -# 1 -# 1.2 -# 1.2.3 -getInstalledPackageVersion() { - case "$DISTRO" in - alpine) - apk info "$1" | head -n1 | cut -c $((${#1} + 2))- | grep -o -E '^[0-9]+(\.[0-9]+){0,2}' - ;; - debian) - dpkg-query --showformat='${Version}' --show "$1" 2>/dev/null | grep -o -E '^[0-9]+(\.[0-9]+){0,2}' - ;; - esac -} - -# Compare two versions -# -# Arguments: -# $1: the first version -# $2: the second version -# -# Output -# -1 if $1 is less than $2 -# 0 if $1 is the same as $2 -# 1 if $1 is greater than $2 -compareVersions() { - compareVersions_v1="$1.0.0" - compareVersions_v2="$2.0.0" - compareVersions_vMin="$(printf '%s\n%s' "$compareVersions_v1" "$compareVersions_v2" | sort -t '.' -n -k1,1 -k2,2 -k3,3 | head -n 1)" - if test "$compareVersions_vMin" != "$compareVersions_v1"; then - echo '1' - elif test "$compareVersions_vMin" = "$compareVersions_v2"; then - echo '0' - else - echo '-1' - fi -} - -# Install Oracle Instant Client & SDK -# -# Set: -# ORACLE_INSTANTCLIENT_LIBPATH -installOracleInstantClient() { - case "${IPE_INSTANTCLIENT_BASIC:-}" in - 1 | y* | Y*) - installOracleInstantClient_handle=basic - ;; - *) - installOracleInstantClient_handle=basiclite - ;; - esac - case $PHP_BITS in - 32) - installOracleInstantClient_client=client - installOracleInstantClient_version='19.9' - installOracleInstantClient_ic=https://download.oracle.com/otn_software/linux/instantclient/199000/instantclient-$installOracleInstantClient_handle-linux-$installOracleInstantClient_version.0.0.0dbru.zip - installOracleInstantClient_sdk=https://download.oracle.com/otn_software/linux/instantclient/199000/instantclient-sdk-linux-$installOracleInstantClient_version.0.0.0dbru.zip - ;; - *) - case $(uname -m) in - aarch64*) - installOracleInstantClient_client=client64 - installOracleInstantClient_version='19.10' - installOracleInstantClient_ic=https://download.oracle.com/otn_software/linux/instantclient/191000/instantclient-$installOracleInstantClient_handle-linux.arm64-$installOracleInstantClient_version.0.0.0dbru.zip - installOracleInstantClient_sdk=https://download.oracle.com/otn_software/linux/instantclient/191000/instantclient-sdk-linux.arm64-$installOracleInstantClient_version.0.0.0dbru.zip - ;; - *) - installOracleInstantClient_client=client64 - installOracleInstantClient_version='21.1' - installOracleInstantClient_ic=https://download.oracle.com/otn_software/linux/instantclient/211000/instantclient-$installOracleInstantClient_handle-linux.x64-$installOracleInstantClient_version.0.0.0.zip - installOracleInstantClient_sdk=https://download.oracle.com/otn_software/linux/instantclient/211000/instantclient-sdk-linux.x64-$installOracleInstantClient_version.0.0.0.zip - ;; - esac - ;; - esac - ORACLE_INSTANTCLIENT_LIBPATH=/usr/lib/oracle/$installOracleInstantClient_version/$installOracleInstantClient_client/lib - if ! test -e "$ORACLE_INSTANTCLIENT_LIBPATH"; then - printf 'Downloading Oracle Instant Client v%s (%s)... ' "$installOracleInstantClient_version" "$installOracleInstantClient_handle" - installOracleInstantClient_src="$(getPackageSource $installOracleInstantClient_ic)" - mkdir -p "/usr/lib/oracle/$installOracleInstantClient_version/$installOracleInstantClient_client" - mv "$installOracleInstantClient_src" "$ORACLE_INSTANTCLIENT_LIBPATH" - echo 'done.' - fi - if ! test -e "$ORACLE_INSTANTCLIENT_LIBPATH/sdk" && ! test -L "$ORACLE_INSTANTCLIENT_LIBPATH/sdk"; then - printf 'Downloading Oracle Instant SDK v%s... ' "$installOracleInstantClient_version" - installOracleInstantClient_src="$(getPackageSource $installOracleInstantClient_sdk)" - ln -sf "$installOracleInstantClient_src/sdk" "$ORACLE_INSTANTCLIENT_LIBPATH/sdk" - UNNEEDED_PACKAGE_LINKS="$UNNEEDED_PACKAGE_LINKS $ORACLE_INSTANTCLIENT_LIBPATH/sdk" - echo 'done.' - fi - case "$DISTRO" in - alpine) - if ! test -e /usr/lib/libresolv.so.2 && test -e /lib/libc.so.6; then - ln -s /lib/libc.so.6 /usr/lib/libresolv.so.2 - fi - installOracleInstantClient_ldconf=/etc/ld-musl-${TARGET_TRIPLET%-alpine-linux-musl}.path - if test -e "$installOracleInstantClient_ldconf"; then - if ! cat "$installOracleInstantClient_ldconf" | grep -q "$ORACLE_INSTANTCLIENT_LIBPATH"; then - cat "$ORACLE_INSTANTCLIENT_LIBPATH" | awk -v suffix=":$ORACLE_INSTANTCLIENT_LIBPATH" '{print NR==1 ? $0suffix : $0}' >"$ORACLE_INSTANTCLIENT_LIBPATH" - fi - else - case $PHP_BITS in - 32) - echo "/lib:/usr/local/lib:/usr/lib:$ORACLE_INSTANTCLIENT_LIBPATH" >"$installOracleInstantClient_ldconf" - ;; - *) - echo "/lib64:/lib:/usr/local/lib:/usr/lib:$ORACLE_INSTANTCLIENT_LIBPATH" >"$installOracleInstantClient_ldconf" - ;; - esac - fi - ;; - debian) - if ! test -e /etc/ld.so.conf.d/oracle-instantclient.conf; then - echo "$ORACLE_INSTANTCLIENT_LIBPATH" >/etc/ld.so.conf.d/oracle-instantclient.conf - ldconfig - fi - ;; - esac -} - -# Check if the Microsoft SQL Server ODBC Driver is installed -# -# Return: -# 0 (true): if the string is in the list -# 1 (false): if the string is not in the list -isMicrosoftSqlServerODBCInstalled() { - test -d /opt/microsoft/msodbcsql*/ -} - -# Install the Microsoft SQL Server ODBC Driver -# see https://learn.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server -installMicrosoftSqlServerODBC() { - printf 'Installing the Microsoft SQL Server ODBC Driver\n' - case "$DISTRO" in - alpine) - rm -rf /tmp/src/msodbcsql.apk - if test $PHP_MAJMIN_VERSION -le 703; then - curl -sSLf -o /tmp/src/msodbcsql.apk https://download.microsoft.com/download/e/4/e/e4e67866-dffd-428c-aac7-8d28ddafb39b/msodbcsql17_17.10.6.1-1_amd64.apk - else - case $(uname -m) in - aarch64 | arm64 | armv8) - installMicrosoftSqlServerODBC_arch=arm64 - ;; - *) - installMicrosoftSqlServerODBC_arch=amd64 - ;; - esac - curl -sSLf -o /tmp/src/msodbcsql.apk https://download.microsoft.com/download/3/5/5/355d7943-a338-41a7-858d-53b259ea33f5/msodbcsql18_18.3.3.1-1_$installMicrosoftSqlServerODBC_arch.apk - fi - printf '\n' | apk add --allow-untrusted /tmp/src/msodbcsql.apk - rm -rf /tmp/src/msodbcsql.apk - ;; - debian) - printf -- '- installing the Microsoft APT key\n' - if test $DISTRO_VERSION_NUMBER -eq 11; then - curl -sSLf -o /etc/apt/trusted.gpg.d/microsoft.asc https://packages.microsoft.com/keys/microsoft.asc - elif test $DISTRO_VERSION_NUMBER -ge 12; then - curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor --yes --output /usr/share/keyrings/microsoft-prod.gpg - else - # apt-key is deprecated - curl -sSLf https://packages.microsoft.com/keys/microsoft.asc | apt-key add - - fi - if ! test -f /etc/apt/sources.list.d/mssql-release.list; then - printf -- '- adding the Microsoft APT source list\n' - curl -sSLf https://packages.microsoft.com/config/debian/$DISTRO_VERSION_NUMBER/prod.list >/etc/apt/sources.list.d/mssql-release.list - invokeAptGetUpdate - fi - printf -- '- installing the APT package\n' - if test $PHP_MAJMIN_VERSION -le 703; then - ACCEPT_EULA=Y apt-get install -qqy --no-install-recommends msodbcsql17 - elif test $DISTRO_VERSION_NUMBER -ge 9 && test $DISTRO_VERSION_NUMBER -le 12; then - # On Debian 9 to 12 we have both msodbcsql17 and msodbcsql18: let's install just one - ACCEPT_EULA=Y apt-get install -qqy --no-install-recommends msodbcsql18 - else - ACCEPT_EULA=Y apt-get install -qqy --no-install-recommends '^msodbcsql[0-9]+$' - fi - ;; - esac -} - -# Check if libaom is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibaomInstalled() { - if ! test -f /usr/local/lib/libaom.so && ! test -f /usr/lib/libaom.so && ! test -f /usr/lib/x86_64*/libaom.so; then - return 1 - fi - if ! test -f /usr/local/include/aom/aom_codec.h && ! test -f /usr/include/aom/aom_codec.h; then - return 1 - fi - return 0 -} - -# Install libaom -installLibaom() { - printf 'Installing libaom\n' - installLibaom_version=3.10.0 - installLibaom_dir="$(getPackageSource https://aomedia.googlesource.com/aom/+archive/v$installLibaom_version.tar.gz)" - mkdir -- "$installLibaom_dir/my.build" - cd -- "$installLibaom_dir/my.build" - cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=1 -DENABLE_DOCS=0 -DENABLE_EXAMPLES=0 -DENABLE_TESTDATA=0 -DENABLE_TESTS=0 -DENABLE_TOOLS=0 -DCMAKE_INSTALL_LIBDIR:PATH=lib .. - ninja -j $(getProcessorCount) install - cd - >/dev/null - ldconfig || true -} - -# Check if libdav1d is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibdav1dInstalled() { - if ! test -f /usr/local/lib/libdav1d.so && ! test -f /usr/lib/libdav1d.so && ! test -f /usr/lib/x86_64*/libdav1d.so; then - return 1 - fi - if ! test -f /usr/local/include/dav1d/dav1d.h && ! test -f /usr/include/dav1d/dav1d.h; then - return 1 - fi - return 0 -} - -# Install libdav1d -installLibdav1d() { - printf 'Installing libdav1d\n' - installLibdav1d_dir="$(getPackageSource https://github.com/videolan/dav1d/archive/refs/tags/1.3.0.tar.gz)" - mkdir -- "$installLibdav1d_dir/build" - cd -- "$installLibdav1d_dir/build" - meson --buildtype release -Dprefix=/usr .. - ninja -j $(getProcessorCount) install - cd - >/dev/null - if test -f /usr/lib/$TARGET_TRIPLET/libdav1d.so && ! test -f /usr/lib/libdav1d.so; then - ln -s /usr/lib/$TARGET_TRIPLET/libdav1d.so /usr/lib/ - fi - ldconfig || true -} - -# Check if libyuv is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibyuvInstalled() { - if ! test -f /usr/local/lib/libyuv.so && ! test -f /usr/lib/libyuv.so && ! test -f /usr/lib/x86_64*/libyuv.so && ! test -f /usr/lib/x86_64*/libyuv.so.*; then - return 1 - fi - if ! test -f /usr/local/include/libyuv.h && ! test -f /usr/include/libyuv.h; then - return 1 - fi - return 0 -} - -# Install libyuv -installLibyuv() { - printf 'Installing libyuv\n' - installLibyuv_dir="$(getPackageSource https://chromium.googlesource.com/libyuv/libyuv/+archive/d359a9f922af840b043535d43cf9d38b220d102e.tar.gz)" - mkdir -- "$installLibyuv_dir/build" - cd -- "$installLibyuv_dir/build" - cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr -B. .. - make -j$(getProcessorCount) install - cd - >/dev/null -} - -# Check if libavif is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibavifInstalled() { - if ! test -f /usr/local/lib/libavif.so && ! test -f /usr/lib/libavif.so && ! test -f /usr/lib/x86_64*/libavif.so; then - return 1 - fi - if ! test -f /usr/local/include/avif/avif.h && ! test -f /usr/include/avif/avif.h; then - return 1 - fi - return 0 -} - -# Install libavif -installLibavif() { - printf 'Installing libavif\n' - installLibavif_dir="$(getPackageSource https://codeload.github.com/AOMediaCodec/libavif/tar.gz/refs/tags/v1.0.3)" - mkdir -- "$installLibavif_dir/build" - cd -- "$installLibavif_dir/build" - cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON -DAVIF_CODEC_AOM=ON -DCMAKE_INSTALL_LIBDIR:PATH=lib - make -j$(getProcessorCount) install - cd - >/dev/null -} - -# Install libmpdec -installLibMPDec() { - installLibMPDec_src="$(getPackageSource https://www.bytereef.org/software/mpdecimal/releases/mpdecimal-2.5.1.tar.gz)" - cd -- "$installLibMPDec_src" - ./configure --disable-cxx - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -# Check if libdatrie is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibDatrieInstalled() { - if ! test -f /usr/local/lib/libdatrie.so && ! test -f /usr/lib/libdatrie.so && ! test -f /usr/lib/x86_64*/libdatrie.so; then - return 1 - fi - if ! test -f /usr/local/include/datrie/trie.h && ! test -f /usr/include/datrie/trie.h; then - return 1 - fi - return 0 -} - -# Install libdatrie -installLibDatrie() { - printf 'Installing libdatrie\n' - installLibDatrie_src="$(getPackageSource https://github.com/tlwg/libdatrie/releases/download/v0.2.13/libdatrie-0.2.13.tar.xz)" - cd -- "$installLibDatrie_src" - ./configure - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -# Check if libdatrie is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibThaiInstalled() { - return 1 - if ! test -f /usr/local/lib/libthai.so && ! test -f /usr/lib/libthai.so && ! test -f /usr/lib/x86_64*/libthai.so; then - return 1 - fi - if ! test -f /usr/local/include/thai/thailib.h && ! test -f /usr/include/thai/thailib.h; then - return 1 - fi - return 0 -} - -# Install libdatrie -installLibThai() { - printf 'Installing libthai\n' - installLibThai_src="$(getPackageSource https://github.com/tlwg/libthai/releases/download/v0.1.29/libthai-0.1.29.tar.xz)" - cd -- "$installLibThai_src" - ./configure - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -isLibTommathInstalled() { - if test -f /usr/local/lib/libtommath.a && test -f /usr/local/include/tommath.h; then - return 0 - fi - return 1 -} - -installLibTommath() { - printf 'Installing libtommath\n' - installLibTommath_src="$(getPackageSource https://github.com/libtom/libtommath/releases/download/v1.3.0/ltm-1.3.0.tar.xz)" - mkdir -p "$installLibTommath_src/build" - cd -- "$installLibTommath_src/build" - CFLAGS='-fPIC' cmake -DCMAKE_BUILD_TYPE=Release .. - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -isLibTomcryptInstalled() { - if test -f /usr/local/lib/libtomcrypt.a && test -f /usr/local/include/tomcrypt.h; then - return 0 - fi - return 1 -} - -installLibTomcrypt() { - printf 'Installing libtomcrypt\n' - installLibTomcrypt_src="$(getPackageSource https://github.com/libtom/libtomcrypt/releases/download/v1.18.2/crypt-1.18.2.tar.xz)" - cd -- "$installLibTomcrypt_src" - CFLAGS='-fPIC' make -j$(getProcessorCount) - make install -} - -isFirebirdInstalled() { - if test -f /usr/lib/libfbclient.so && test -f /usr/include/ibase.h; then - return 0 - fi - if test -d /tmp/src/firebird; then - return 0 - fi - return 1 -} - -installFirebird() { - printf 'Installing firebird\n' - if test $PHP_MAJMIN_VERSION -ge 804; then - installFirebird_src="$(getPackageSource https://github.com/FirebirdSQL/firebird/releases/download/v5.0.2/Firebird-5.0.2.1613-0-source.tar.xz)" - cd -- "$installFirebird_src" - ./configure --enable-client-only - make -j$(getProcessorCount) - cp -Rd gen/Release/firebird/include/* /usr/include - cp -Rd gen/Release/firebird/lib/* /usr/lib - cd - >/dev/null - else - mv "$(getPackageSource https://github.com/FirebirdSQL/firebird/releases/download/R2_5_9/Firebird-2.5.9.27139-0.tar.bz2)" /tmp/src/firebird - cd /tmp/src/firebird - # Patch rwlock.h (this has been fixed in later release of firebird 3.x) - sed -i '194s/.*/#if 0/' src/common/classes/rwlock.h - ./configure --with-system-icu - # -j option can't be used: make targets must be compiled sequentially - make -s btyacc_binary gpre_boot libfbstatic libfbclient - cp gen/firebird/lib/libfbclient.so /usr/lib/ - ln -s /usr/lib/libfbclient.so /usr/lib/libfbclient.so.2 - cd - >/dev/null - fi -} - -isLibXCryptInstalled() { - if ! test -f /usr/local/lib/libcrypt.so && ! test -f /usr/lib/libcrypt.so && ! test -f /usr/lib/x86_64*/libcrypt.so; then - return 1 - fi - return 0 -} - -installLibXCrypt() { - printf 'Installing libxcrypt\n' - installLibXCrypt_version=4.4.36 - installLibXCrypt_src="$(getPackageSource "https://github.com/besser82/libxcrypt/releases/download/v$installLibXCrypt_version/libxcrypt-$installLibXCrypt_version.tar.xz")" - cd -- "$installLibXCrypt_src" - ./configure --prefix /usr - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -isLibenchant1Installed() { - if test -f /usr/lib/libenchant.so || test -f /usr/local/lib/libenchant.so; then - return 0 - fi - return 1 -} - -installLibenchant1() { - printf 'Installing libenchant1\n' - installLibenchant1_src="$(getPackageSource https://github.com/rrthomas/enchant/releases/download/enchant-1-6-1/enchant-1.6.1.tar.gz)" - cd -- "$installLibenchant1_src" - ./configure - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -# Install Composer -installComposer() { - installComposer_version="$(getWantedPHPModuleVersion @composer)" - installComposer_version="${installComposer_version#^}" - if test -z "$installComposer_version"; then - installComposer_fullname=composer - installComposer_flags='' - else - installComposer_fullname="$(printf 'composer v%s' "$installComposer_version")" - if printf '%s' "$installComposer_version" | grep -Eq '^[0-9]+$'; then - installComposer_flags="--$installComposer_version" - else - installComposer_flags="--version=$installComposer_version" - fi - fi - printf '### INSTALLING %s ###\n' "$installComposer_fullname" - actuallyInstallComposer /usr/local/bin composer "$installComposer_flags" -} - -# Actually install composer -# -# Arguments: -# $1: the directory where composer should be installed (required) -# $2: the composer filename (optional, default: composer) -# $3. additional flags for the composer installed (optional) -actuallyInstallComposer() { - actuallyInstallComposer_installer="$(mktemp -p /tmp/src)" - curl -sSLf -o "$actuallyInstallComposer_installer" https://getcomposer.org/installer - actuallyInstallComposer_expectedSignature="$(curl -sSLf https://composer.github.io/installer.sig)" - actuallyInstallComposer_actualSignature="$(php -n -r "echo hash_file('sha384', '$actuallyInstallComposer_installer');")" - if test "$actuallyInstallComposer_expectedSignature" != "$actuallyInstallComposer_actualSignature"; then - printf 'Verification of composer installer failed!\nExpected signature: %s\nActual signature: %s\n' "$actuallyInstallComposer_expectedSignature" "$actuallyInstallComposer_actualSignature" >&2 - exit 1 - fi - actuallyInstallComposer_flags="--install-dir=$1" - if test -n "${2:-}"; then - actuallyInstallComposer_flags="$actuallyInstallComposer_flags --filename=$2" - else - actuallyInstallComposer_flags="$actuallyInstallComposer_flags --filename=composer" - fi - if test -n "${3:-}"; then - actuallyInstallComposer_flags="$actuallyInstallComposer_flags $3" - fi - php "$actuallyInstallComposer_installer" $actuallyInstallComposer_flags - rm -- "$actuallyInstallComposer_installer" -} - -# Install ionCube Loader -installIonCubeLoader() { - installIonCubeLoader_version='' - case "$DISTRO" in - alpine) - # For 14.4.0 we have a Segmentation Fault - installIonCubeLoader_version=14.0.0 - ;; - esac - installIonCubeLoader_versionForUrl='' - installIonCubeLoader_versionForMessage=latest - if test -n "$installIonCubeLoader_version"; then - installIonCubeLoader_versionForUrl="_$installIonCubeLoader_version" - installIonCubeLoader_versionForMessage="v$installIonCubeLoader_version" - fi - # See https://www.ioncube.com/loaders.php - case $PHP_BITS in - 32) - case $(uname -m) in - aarch* | arm*) - installIonCubeLoader_url="https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_armv7l$installIonCubeLoader_versionForUrl.tar.gz" - ;; - *) - installIonCubeLoader_url="https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86$installIonCubeLoader_versionForUrl.tar.gz" - ;; - esac - ;; - *) - case $(uname -m) in - aarch64 | arm64 | armv8) - installIonCubeLoader_url="https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_aarch64$installIonCubeLoader_versionForUrl.tar.gz" - ;; - *) - installIonCubeLoader_url="https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64$installIonCubeLoader_versionForUrl.tar.gz" - ;; - esac - ;; - esac - printf 'Downloading ionCube Loader (%s)... ' "$installIonCubeLoader_versionForMessage" - installIonCubeLoader_dir="$(getPackageSource $installIonCubeLoader_url)" - echo 'done.' - installIonCubeLoader_so=$(php -r "printf('ioncube_loader_lin_%s.%s%s.so', PHP_MAJOR_VERSION, PHP_MINOR_VERSION, ZEND_THREAD_SAFE ? '_ts' : '');") - cp "$installIonCubeLoader_dir/$installIonCubeLoader_so" "$(getPHPExtensionsDir)/ioncube_loader.so" -} - -# Install SourceGuardian Loader -installSourceGuardian() { - # See https://www.sourceguardian.com/loaders.html - case $PHP_BITS in - 32) - installSourceGuardian_url=https://www.sourceguardian.com/loaders/download/loaders.linux-i386.tar.gz - ;; - *) - case $(uname -m) in - aarch64 | arm64 | armv8) - installSourceGuardian_url=https://www.sourceguardian.com/loaders/download/loaders.linux-aarch64.tar.gz - ;; - *) - installSourceGuardian_url=https://www.sourceguardian.com/loaders/download/loaders.linux-x86_64.tar.gz - ;; - esac - ;; - esac - printf 'Downloading SourceGuardian... ' - installSourceGuardian_dir="$(getPackageSource $installSourceGuardian_url)" - printf 'done (version: %s)\n' "$(cat "$installSourceGuardian_dir/version")" - for installSourceGuardian_phpv in $PHP_MAJDOTMINDOTPAT_VERSION $PHP_MAJDOTMIN_VERSION; do - installSourceGuardian_file="$installSourceGuardian_dir/ixed.$PHP_MAJDOTMIN_VERSION" - if test $PHP_THREADSAFE -eq 1; then - installSourceGuardian_file="${installSourceGuardian_file}ts" - fi - installSourceGuardian_file="${installSourceGuardian_file}.lin" - if test -f "$installSourceGuardian_file"; then - mv "$installSourceGuardian_file" "$(getPHPExtensionsDir)/sourceguardian.so" - return - fi - done - printf 'Unable to find a SourceGuardian compatible with PHP %s or PHP %s.\nAvailable SourceGuardian versions:\n' "$PHP_MAJDOTMINDOTPAT_VERSION" "$PHP_MAJDOTMIN_VERSION" >&2 - ls -1 "$installSourceGuardian_dir" | grep -E '^ixed\..*\.lin$' | sed -E 's/^[^0-9]+([0-9]+(\.[0-9]+)*).*$/\1/' | sort | uniq >&2 - exit 1 -} - -# Install Cargo (if not yet installed) -installCargo() { - if command -v cargo >/dev/null; then - return - fi - installCargo_cargoversion= - if ! test -f "$HOME/.cargo/env"; then - printf '# Installing cargo\n' - case "$DISTRO" in - alpine) - # see https://github.com/hyperledger/indy-vdr/issues/69#issuecomment-998104850 - export RUSTFLAGS='-C target-feature=-crt-static' - ;; - esac - curl https://sh.rustup.rs -sSf | sh -s -- -y -q - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -le 310; then - # With version 1.84.0 we have this error: - # Error relocating /root/.rustup/toolchains/stable-x86_64-unknown-linux-musl/bin/cargo: posix_spawn_file_actions_addchdir_np: symbol not found - # See https://github.com/rust-lang/rust/pull/131851#issue-2595663507 - installCargo_cargoversion=1.83.0 - fi - ;; - esac - fi - . "$HOME/.cargo/env" - if test -n "$installCargo_cargoversion"; then - rustup default -- "$installCargo_cargoversion" - fi - if test -z "${IPE_UNINSTALL_CARGO:-}"; then - IPE_UNINSTALL_CARGO=y - fi -} - -installNewRelic() { - printf '# Installing newrelic\n' - # see https://docs.newrelic.com/docs/apm/agents/php-agent/getting-started/php-agent-compatibility-requirements/ - if test $PHP_MAJMIN_VERSION -le 701; then - installNewRelic_baseUrl=https://download.newrelic.com/php_agent/archive/10.21.0.11/ - else - installNewRelic_baseUrl=https://download.newrelic.com/php_agent/release/ - fi - installNewRelic_search='\bnewrelic-php[0-9.]*-[0-9]+(\.[0-9]+)*-linux' - case "$DISTRO" in - alpine) - installNewRelic_search="$installNewRelic_search-musl" - ;; - esac - installNewRelic_file="$(curl -sSLf -o- "$installNewRelic_baseUrl" | sed -E 's/<[^>]*>//g' | grep -Eo "$installNewRelic_search.tar.gz" | sort | head -1)" - installNewRelic_url="$installNewRelic_baseUrl$installNewRelic_file" - installNewRelic_src="$(getPackageSource "$installNewRelic_url")" - cd -- "$installNewRelic_src" - NR_INSTALL_USE_CP_NOT_LN=1 NR_INSTALL_SILENT=1 ./newrelic-install install - case "${IPE_NEWRELIC_DAEMON:-}" in - 1 | y* | Y*) - NR_INSTALL_USE_CP_NOT_LN=1 NR_INSTALL_SILENT=1 ./newrelic-install install_daemon - ;; - esac - case "${IPE_NEWRELIC_KEEPLOG:-}" in - 1 | y* | Y*) ;; - *) - rm -f /tmp/nrinstall-*.tar - ;; - esac - cd - >/dev/null - cat <&2 - fi - if test -n "$(getModuleSourceCodePath "$1")"; then - printf '### WARNING the module "%s" is bundled with PHP, you can NOT specify a source code path for it\n' "$1" >&2 - fi - case "$1" in - dba) - if test -e /usr/lib/$TARGET_TRIPLET/libdb-5.3.so && ! test -e /usr/lib/libdb-5.3.so; then - ln -s /usr/lib/$TARGET_TRIPLET/libdb-5.3.so /usr/lib/ - fi - if test $PHP_MAJMIN_VERSION -le 505; then - docker-php-source extract - patch /usr/src/php/ext/dba/config.m4 </dev/null - ;; - oci8 | pdo_oci) - installOracleInstantClient - if test "$1" = oci8; then - docker-php-ext-configure "$1" "--with-oci8=instantclient,$ORACLE_INSTANTCLIENT_LIBPATH" - elif test "$1" = pdo_oci; then - docker-php-ext-configure "$1" "--with-pdo-oci=instantclient,$ORACLE_INSTANTCLIENT_LIBPATH" - fi - ;; - pdo_odbc) - docker-php-ext-configure pdo_odbc --with-pdo-odbc=unixODBC,/usr - ;; - snmp) - case "$DISTRO" in - alpine) - mkdir -p -m 0755 /var/lib/net-snmp/mib_indexes - ;; - esac - ;; - sockets) - case "$PHP_MAJDOTMINDOTPAT_VERSION" in - 8.0.15 | 8.1.2) - sed -i '70 i #ifndef _GNU_SOURCE' /usr/src/php/ext/sockets/config.m4 - sed -i '71 i #define _GNU_SOURCE' /usr/src/php/ext/sockets/config.m4 - sed -i '72 i #endif' /usr/src/php/ext/sockets/config.m4 - ;; - esac - ;; - sybase_ct) - docker-php-ext-configure sybase_ct --with-sybase-ct=/usr - ;; - tidy) - case "$DISTRO" in - alpine) - if ! test -f /usr/include/buffio.h; then - ln -s /usr/include/tidybuffio.h /usr/include/buffio.h - UNNEEDED_PACKAGE_LINKS="$UNNEEDED_PACKAGE_LINKS /usr/include/buffio.h" - fi - ;; - esac - ;; - zip) - if test $PHP_MAJMIN_VERSION -le 505; then - docker-php-ext-configure zip - elif test $PHP_MAJMIN_VERSION -le 703; then - docker-php-ext-configure zip --with-libzip - else - docker-php-ext-configure zip --with-zip - fi - ;; - esac - installBundledModule_errBefore="$(php -r 'return;' 2>&1 || true)" - docker-php-ext-install -j$(getProcessorCount) "$1" - case "$1" in - imap) - case "$DISTRO_VERSION" in - debian@9) - dpkg -r libc-client2007e-dev - ;; - esac - ;; - esac - case "${IPE_SKIP_CHECK:-}" in - 1 | y* | Y*) ;; - *) - php -r 'return;' >/dev/null 2>/dev/null || true - installBundledModule_errAfter="$(php -r 'return;' 2>&1 || true)" - if test "$installBundledModule_errAfter" != "$installBundledModule_errBefore"; then - printf 'PHP has problems after installing the "%s" extension:\n%s\n' "$1" "$installBundledModule_errAfter" >&2 - rm "$PHP_INI_DIR/conf.d/docker-php-ext-$1.ini" || true - return 1 - fi - ;; - esac -} - -# Fetch a tar.gz file, extract it and returns the path of the extracted folder. -# -# Arguments: -# $1: the URL of the file to be downloaded -# -# Output: -# The path of the extracted directory -getPackageSource() { - mkdir -p /tmp/src - getPackageSource_tempFile=$(mktemp -p /tmp/src) - curl -sSLf -o "$getPackageSource_tempFile" "$1" - getPackageSource_tempDir=$(mktemp -p /tmp/src -d) - cd "$getPackageSource_tempDir" - tar -xzf "$getPackageSource_tempFile" 2>/dev/null || tar -xf "$getPackageSource_tempFile" 2>/dev/null || ( - if command -v bsdtar >/dev/null; then - bsdtar -xf "$getPackageSource_tempFile" - else - unzip -q "$getPackageSource_tempFile" - fi - ) - cd - >/dev/null - unlink "$getPackageSource_tempFile" - getPackageSource_outDir='' - for getPackageSource_i in $(ls "$getPackageSource_tempDir"); do - if test -n "$getPackageSource_outDir" || test -f "$getPackageSource_tempDir/$getPackageSource_i"; then - getPackageSource_outDir='' - break - fi - getPackageSource_outDir="$getPackageSource_tempDir/$getPackageSource_i" - done - if test -n "$getPackageSource_outDir"; then - printf '%s' "$getPackageSource_outDir" - else - printf '%s' "$getPackageSource_tempDir" - fi -} - -# Install a PECL/remote PHP module given its handle -# -# Arguments: -# $1: the handle of the PHP module -installRemoteModule() { - installRemoteModule_module="$1" - printf '### INSTALLING REMOTE MODULE %s ###\n' "$installRemoteModule_module" - installRemoteModule_version="$(resolvePHPModuleVersion "$installRemoteModule_module")" - installRemoteModule_path="$(getModuleSourceCodePath "$installRemoteModule_module")" - rm -rf "$CONFIGURE_FILE" - installRemoteModule_manuallyInstalled=0 - installRemoteModule_cppflags='' - installRemoteModule_ini_basename='' - installRemoteModule_ini_extra='' - case "$installRemoteModule_module" in - amqp) - if test -z "$installRemoteModule_version"; then - if test "$DISTRO_VERSION" = debian@8; then - # in Debian Jessie we have librabbitmq version 0.5.2 - installRemoteModule_version=1.9.3 - elif test $PHP_MAJMIN_VERSION -le 505; then - installRemoteModule_version=1.9.4 - elif test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=1.11.0 - fi - fi - ;; - apcu) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=4.0.11 - fi - fi - ;; - apcu_bc) - # apcu_bc must be loaded after apcu - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - ;; - ast) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=1.0.16 - fi - fi - ;; - bitset) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.0.4 - fi - fi - ;; - blackfire) - case $(uname -m) in - i386 | i686 | x86) - installRemoteModule_tmp1=i386 - ;; - aarch64 | arm64 | armv8) - installRemoteModule_tmp1=arm64 - ;; - *) - installRemoteModule_tmp1=amd64 - ;; - esac - case $DISTRO in - alpine) - installRemoteModule_distro=alpine - ;; - *) - installRemoteModule_distro=linux - ;; - esac - installRemoteModule_tmp2=$(php -r 'echo PHP_MAJOR_VERSION . PHP_MINOR_VERSION . (ZEND_THREAD_SAFE ? "-zts" : "");') - installRemoteModule_tmp="$(mktemp -p /tmp/src -d)" - cd "$installRemoteModule_tmp" - curl -sSLf --user-agent Docker https://blackfire.io/api/v1/releases/probe/php/$installRemoteModule_distro/$installRemoteModule_tmp1/$installRemoteModule_tmp2 | tar xz - mv blackfire-*.so $(getPHPExtensionsDir)/blackfire.so - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - installRemoteModule_ini_extra="$(printf '%sblackfire.agent_socket=tcp://blackfire:8307\n' "$installRemoteModule_ini_extra")" - ;; - cassandra) - installRemoteModule_src="$(getPackageSource https://github.com/nano-interactive/ext-cassandra/tarball/1cf12c5ce49ed43a2c449bee4b7b23ce02a37bf0)" - cd "$installRemoteModule_src/ext" - phpize - ./configure - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - ;; - cmark) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=1.1.0 - fi - fi - if ! test -e /usr/local/lib/libcmark.so && ! test -e /usr/local/lib64/libcmark.so && ! test -e /usr/lib/libcmark.so && ! test -e /usr/lib64/libcmark.so && ! test -e /lib/libcmark.so; then - if test $(compareVersions "$(cmake --version | head -n1 | sed -E 's/^.* //')" '3.7') -lt 0; then - installRemoteModule_tmp=0.29.0 - else - installRemoteModule_tmp=0.31.1 - fi - cd "$(getPackageSource https://github.com/commonmark/cmark/archive/$installRemoteModule_tmp.tar.gz)" - make -s -j$(getProcessorCount) cmake_build - make -s -j$(getProcessorCount) install - cd - >/dev/null - case "$DISTRO" in - alpine) - if test -e /usr/local/lib64/libcmark.so.$installRemoteModule_tmp && ! test -e /usr/local/lib/libcmark.so.$installRemoteModule_tmp; then - ln -s /usr/local/lib64/libcmark.so.$installRemoteModule_tmp /usr/local/lib/ - fi - ;; - *) - ldconfig || true - ;; - esac - fi - ;; - csv) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=0.3.1 - fi - fi - ;; - ddtrace) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=0.75.0 - fi - if test -z "$installRemoteModule_version"; then - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -le 312; then - # cc is not supported due to a memcmp related bug - installRemoteModule_version=1.1.0 - fi - ;; - esac - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 0.75.0) -ge 0; then - installCargo - fi - ;; - decimal) - case "$DISTRO" in - alpine) - if ! test -f /usr/local/lib/libmpdec.so; then - installLibMPDec - fi - ;; - debian) - if test $DISTRO_MAJMIN_VERSION -ge 1200; then - if test -z "$(ldconfig -p | grep -E '\slibmpdec.so\s')"; then - installLibMPDec - fi - fi - ;; - esac - ;; - ds) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 703; then - installRemoteModule_version=1.3.0 - elif test $PHP_MAJMIN_VERSION -lt 704; then - installRemoteModule_version=1.4.0 - fi - fi - ;; - ecma_intl) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=alpha - fi - ;; - ev) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 800; then - installRemoteModule_version=1.1.5 - fi - fi - ;; - event) - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 2.4.0) -ge 0; then - # Enable internal debugging in Event - addConfigureOption enable-event-debug no - # Enable sockets support in Event - if php --ri sockets >/dev/null 2>/dev/null; then - addConfigureOption enable-event-sockets yes - else - addConfigureOption enable-event-sockets no - fi - # libevent installation prefix - addConfigureOption with-event-libevent-dir /usr - # Include libevent's pthreads library and enable thread safety support in Event - addConfigureOption with-event-pthreads yes - # Include libevent protocol-specific functionality support including HTTP, DNS, and RPC - addConfigureOption with-event-extra yes - # Include libevent OpenSSL support - addConfigureOption with-event-openssl yes - # PHP Namespace for all Event classes - if test -n "${IPE_EVENT_NAMESPACE:-}"; then - addConfigureOption with-event-ns "$IPE_EVENT_NAMESPACE" - else - addConfigureOption with-event-ns no - fi - # openssl installation prefix - addConfigureOption with-openssl-dir yes - elif test $(compareVersions "$installRemoteModule_version" 1.7.6) -ge 0; then - # Enable internal debugging in Event - addConfigureOption enable-event-debug no - # Enable sockets support in Event - if php --ri sockets >/dev/null 2>/dev/null; then - addConfigureOption enable-event-sockets yes - else - addConfigureOption enable-event-sockets no - fi - # libevent installation prefix - addConfigureOption with-event-libevent-dir /usr - # Include libevent's pthreads library and enable thread safety support in Event - addConfigureOption with-event-pthreads yes - # Include libevent protocol-specific functionality support including HTTP, DNS, and RPC - addConfigureOption with-event-extra yes - # Include libevent OpenSSL support - addConfigureOption with-event-openssl yes - # openssl installation prefix - addConfigureOption with-openssl-dir no - elif test $(compareVersions "$installRemoteModule_version" 1.3.0) -ge 0; then - # Enable internal debugging in event - addConfigureOption enable-event-debug no - # libevent installation prefix - addConfigureOption with-event-libevent-dir /usr - # Include libevent's pthreads library and enable thread safety support in event - addConfigureOption with-event-pthreads yes - # Include libevent protocol-specific functionality support including HTTP, DNS, and RPC - addConfigureOption with-event-extra yes - # Include libevent OpenSSL support - addConfigureOption with-event-openssl yes - # openssl installation prefix - addConfigureOption with-openssl-dir no - fi - # event must be loaded after sockets - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - ;; - gearman) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.1.2 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=2.1.3 - fi - fi - case "$DISTRO" in - alpine) - if ! test -e /usr/local/include/libgearman/gearman.h || ! test -e /usr/local/lib/libgearman.so; then - installRemoteModule_src="$(getPackageSource https://github.com/gearman/gearmand/releases/download/1.1.21/gearmand-1.1.21.tar.gz)" - cd -- "$installRemoteModule_src" - ./configure - make -j$(getProcessorCount) install-binPROGRAMS - make -j$(getProcessorCount) install-nobase_includeHEADERS - cd - >/dev/null - fi - ;; - esac - ;; - geoip) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=beta - fi - ;; - geos) - if test -z "$installRemoteModule_path"; then - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=dfe1ab17b0f155cc315bc13c75689371676e02e1 - fi - installRemoteModule_src="$(getPackageSource https://github.com/libgeos/php-geos/archive/$installRemoteModule_version.tar.gz)" - cd "$installRemoteModule_src" - ./autogen.sh - ./configure - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - fi - ;; - geospatial) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.2.1 - else - installRemoteModule_version=beta - fi - fi - ;; - gmagick) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.1.7RC3 - else - installRemoteModule_version=beta - fi - fi - ;; - grpc) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.33.1 - else - case "$DISTRO_VERSION" in - debian@8) - installRemoteModule_version=1.46.3 - ;; - alpine@3.7 | alpine@3.8 | debian@9) # With newer version: "This package requires GCC 7 or higher" - installRemoteModule_version=1.52.1 - ;; - esac - fi - fi - if test -z "$installRemoteModule_version" || test "$installRemoteModule_version" = 1.35.0; then - case "$DISTRO_VERSION" in - alpine@3.13) - installRemoteModule_cppflags='-Wno-maybe-uninitialized' - ;; - esac - fi - ;; - http) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.6.0 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=3.2.4 - fi - fi - if test $PHP_MAJMIN_VERSION -ge 700; then - if ! test -e /usr/local/lib/libidnkit.so; then - installRemoteModule_src="$(getPackageSource https://jprs.co.jp/idn/idnkit-2.3.tar.bz2)" - cd -- "$installRemoteModule_src" - CFLAGS=-Wno-incompatible-pointer-types ./configure - make -j$(getProcessorCount) install - cd - >/dev/null - fi - fi - # http must be loaded after raphf and propro - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - ;; - igbinary) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.0.8 - fi - fi - ;; - imap) - # Include Kerberos Support - addConfigureOption with-kerberos yes - # Include SSL Support - addConfigureOption with-imap-ssl yes - ;; - imagick) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 506; then - installRemoteModule_version=3.7.0 - fi - fi - ;; - inotify) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.1.6 - fi - fi - ;; - ion) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=alpha - fi - if ! test -f /usr/local/lib/libionc.so || ! test -f /usr/local/include/ionc/ion.h; then - echo 'Installing ion-c... ' - installRemoteModule_src="$(mktemp -p /tmp/src -d)" - git clone -q -c advice.detachedHead=false --depth 1 --branch v1.1.3 https://github.com/amzn/ion-c.git "$installRemoteModule_src/ion" - ( - cd "$installRemoteModule_src/ion" - git submodule init -q - git submodule update -q - mkdir -p build - cd build - CFLAGS='-Wno-incompatible-pointer-types -Wno-stringop-overflow -Wno-discarded-qualifiers' cmake -DCMAKE_BUILD_TYPE=Release .. -Wno-dev - make clean - make -j$(getProcessorCount) install - ) - rm -rf "$installRemoteModule_src" - fi - addConfigureOption with-ion "shared,/usr/local" - ;; - ioncube_loader) - installIonCubeLoader - installRemoteModule_manuallyInstalled=1 - ;; - jsmin) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=2.0.1 - fi - fi - ;; - jsonpath) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 800; then - installRemoteModule_version=1.0.1 - fi - fi - ;; - luasandbox) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 702; then - installRemoteModule_version=3.0.3 - fi - fi - ;; - lz4) - if test -z "$installRemoteModule_path"; then - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=0.4.3 - fi - installRemoteModule_src="$(getPackageSource https://github.com/kjdev/php-ext-lz4/archive/refs/tags/$installRemoteModule_version.tar.gz)" - cd "$installRemoteModule_src" - phpize - ./configure --with-lz4-includedir=/usr - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - fi - ;; - lzf) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 702; then - installRemoteModule_version=1.6.8 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" '1.5.0') -ge 0; then - # Sacrifice speed in favour of compression ratio? - case "${IPE_LZF_BETTERCOMPRESSION:-}" in - 1 | y* | Y*) - addConfigureOption 'enable-lzf-better-compression' 'yes' - ;; - *) - addConfigureOption 'enable-lzf-better-compression' 'no' - ;; - esac - fi - ;; - mailparse) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.1.6 - elif test $PHP_MAJMIN_VERSION -le 702; then - installRemoteModule_version=3.1.3 - fi - fi - ;; - memcache) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.2.7 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=4.0.5.2 - fi - fi - ;; - memcached) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.2.0 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - # Set the path to libmemcached install prefix - addConfigureOption 'with-libmemcached-dir' 'no' - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" '3.0.0') -ge 0; then - # Set the path to ZLIB install prefix - addConfigureOption 'with-zlib-dir' 'no' - # Use system FastLZ library - addConfigureOption 'with-system-fastlz' 'no' - # Enable memcached igbinary serializer support - if php --ri igbinary >/dev/null 2>/dev/null; then - addConfigureOption 'enable-memcached-igbinary' 'yes' - else - addConfigureOption 'enable-memcached-igbinary' 'no' - fi - # Enable memcached msgpack serializer support - if php --ri msgpack >/dev/null 2>/dev/null; then - addConfigureOption 'enable-memcached-msgpack' 'yes' - else - addConfigureOption 'enable-memcached-msgpack' 'no' - fi - # Enable memcached json serializer support - addConfigureOption 'enable-memcached-json' 'yes' - # Enable memcached protocol support - addConfigureOption 'enable-memcached-protocol' 'no' # https://github.com/php-memcached-dev/php-memcached/issues/418#issuecomment-449587972 - # Enable memcached sasl support - addConfigureOption 'enable-memcached-sasl' 'yes' - # Enable memcached session handler support - addConfigureOption 'enable-memcached-session' 'yes' - fi - # memcached must be loaded after msgpack - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - ;; - memprof) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.0.0 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=2.1.0 - fi - fi - ;; - mongo) - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" '1.5.0') -ge 0; then - # Build with Cyrus SASL (MongoDB Enterprise Authentication) support? - addConfigureOption '-with-mongo-sasl' 'yes' - fi - ;; - mongodb) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 505; then - installRemoteModule_version=1.5.5 - elif test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.7.5 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=1.9.2 - elif test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=1.11.1 - elif test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=1.16.2 - elif test $PHP_MAJMIN_VERSION -le 800; then - installRemoteModule_version=1.20.1 - fi - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 1.17.0) -ge 0; then - # Enable developer flags? (yes/no) - addConfigureOption enable-mongodb-developer-flags no - # Enable code coverage? (yes/no) - addConfigureOption enable-mongodb-coverage no - # Use system libraries for libbson, libmongoc, and libmongocrypt? (yes/no) - addConfigureOption with-mongodb-system-libs no - # Enable client-side encryption? (auto/yes/no) - addConfigureOption with-mongodb-client-side-encryption yes - # Enable Snappy for compression? (auto/yes/no) - addConfigureOption with-mongodb-snappy yes - # Enable zlib for compression? (auto/system/bundled/no) - addConfigureOption with-mongodb-zlib yes - # Enable zstd for compression? (auto/yes/no) - addConfigureOption with-mongodb-zstd yes - # Enable SASL for Kerberos authentication? (auto/cyrus/no) - addConfigureOption with-mongodb-sasl yes - # Enable crypto and TLS? (auto/openssl/libressl/darwin/no) - addConfigureOption with-mongodb-ssl yes - # Use system crypto profile (OpenSSL only)? (yes/no) - addConfigureOption enable-mongodb-crypto-system-profile yes - # Use bundled or system utf8proc for SCRAM-SHA-256 SASLprep? (bundled/system) - addConfigureOption with-mongodb-utf8proc bundled - fi - ;; - mosquitto) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=beta - fi - ;; - msgpack) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.5.7 - fi - fi - ;; - newrelic) - installNewRelic - installRemoteModule_manuallyInstalled=2 - ;; - oauth) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.2.3 - fi - fi - ;; - oci8 | pdo_oci) - installOracleInstantClient - if test "$installRemoteModule_module" = oci8; then - addConfigureOption with-oci8 "instantclient,$ORACLE_INSTANTCLIENT_LIBPATH" - elif test "$installRemoteModule_module" = pdo_oci; then - addConfigureOption with-pdo-oci "instantclient,$ORACLE_INSTANTCLIENT_LIBPATH" - fi - ;; - opencensus) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=alpha - fi - ;; - openswoole) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 704; then - installRemoteModule_version=4.10.0 - elif test $PHP_MAJMIN_VERSION -lt 801; then - installRemoteModule_version=22.0.0 - elif test $PHP_MAJMIN_VERSION -lt 802; then - installRemoteModule_version=22.1.2 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if php --ri sockets >/dev/null 2>/dev/null; then - installRemoteModule_sockets=yes - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - else - installRemoteModule_sockets=no - fi - installRemoteModule_openssl=yes - if test -n "$installRemoteModule_version" && test $(compareVersions "$installRemoteModule_version" 22.1.2) -ge 0; then - # enable coroutine sockets? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 protocol? - addConfigureOption enable-http2 yes - # enable coroutine mysqlnd? - addConfigureOption enable-mysqlnd yes - # enable coroutine curl? - addConfigureOption enable-hook-curl yes - # enable coroutine postgres? - addConfigureOption with-postgres yes - elif test $(compareVersions "$installRemoteModule_version" 22.1.1) -ge 0; then - # enable c-ares support? - addConfigureOption enable-cares yes - # enable coroutine sockets? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 protocol? - addConfigureOption enable-http2 yes - # enable coroutine mysqlnd? - addConfigureOption enable-mysqlnd yes - # enable coroutine curl? - addConfigureOption enable-hook-curl yes - # enable coroutine postgres? - addConfigureOption with-postgres yes - elif test $(compareVersions "$installRemoteModule_version" 22.1.0) -ge 0; then - # enable coroutine sockets? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 protocol? - addConfigureOption enable-http2 yes - # enable coroutine mysqlnd? - addConfigureOption enable-mysqlnd yes - # enable coroutine curl? - addConfigureOption enable-hook-curl yes - # enable coroutine postgres? - addConfigureOption with-postgres yes - elif test $(compareVersions "$installRemoteModule_version" 22.0.0) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable hook curl support? - addConfigureOption enable-hook-curl yes - # enable postgres support? - addConfigureOption with-postgres yes - elif test $(compareVersions "$installRemoteModule_version" 4.8.0) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable json support? - addConfigureOption enable-swoole-json yes - # enable curl support? - addConfigureOption enable-swoole-curl yes - # enable postgres support? - addConfigureOption with-postgres yes - else - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable json support? - addConfigureOption enable-swoole-json yes - # enable curl support? - addConfigureOption enable-swoole-curl yes - fi - ;; - operator) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=beta - fi - ;; - parallel) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=0.8.3 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=1.1.4 - fi - fi - ;; - parle) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 704; then - installRemoteModule_version=0.8.3 - else - installRemoteModule_version=beta - fi - fi - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 0.8.4) -ge 0; then - # Enable internal UTF-32 support in parle - addConfigureOption enable-parle-utf32 yes - fi - ;; - pcov) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=0.9.0 - fi - fi - ;; - phalcon) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMINPAT_VERSION -lt 70401; then - installRemoteModule_version=4.1.2 - elif test $PHP_MAJMIN_VERSION -lt 800; then - installRemoteModule_version=5.4.0 - fi - fi - installRemoteModule_cppflags='-Wno-incompatible-pointer-types' - ;; - php_trie) - if ! test -f /usr/local/include/hat-trie/include/tsl/htrie_map.h; then - installRemoteModule_src="$(getPackageSource https://codeload.github.com/Tessil/hat-trie/tar.gz/v0.6.0)" - mkdir -p /usr/local/include/hat-trie - mv "$installRemoteModule_src/include" /usr/local/include/hat-trie - fi - ;; - pq) - # pq must be loaded after raphf - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - ;; - propro) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.0.2 - fi - fi - ;; - protobuf) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=3.12.4 - elif test $PHP_MAJMIN_VERSION -lt 800; then - installRemoteModule_version=3.24.4 - elif test $PHP_MAJMIN_VERSION -lt 801; then - installRemoteModule_version=3.25.3 - fi - fi - ;; - psr) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 506; then - installRemoteModule_version=0.5.1 - elif test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=0.6.1 - elif test $PHP_MAJMIN_VERSION -lt 703; then - installRemoteModule_version=1.1.0 - fi - fi - ;; - pthreads) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.0.10 - fi - fi - ;; - raphf) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.1.2 - fi - fi - ;; - rdkafka) - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version"; then - installRemoteModule_version1='' - if test $PHP_MAJMIN_VERSION -le 505; then - installRemoteModule_version1=3.0.5 - elif test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version1=4.1.2 - fi - installRemoteModule_version2='' - case "$DISTRO" in - alpine) - installRemoteModule_tmp='librdkafka' - ;; - debian) - installRemoteModule_tmp='librdkafka*' - ;; - *) - installRemoteModule_tmp='' - ;; - esac - if test -n "$installRemoteModule_tmp"; then - installRemoteModule_tmp="$(getInstalledPackageVersion "$installRemoteModule_tmp")" - if test -n "$installRemoteModule_tmp" && test $(compareVersions "$installRemoteModule_tmp" '0.11.0') -lt 0; then - installRemoteModule_version2=3.1.3 - fi - fi - if test -z "$installRemoteModule_version1" || test -z "$installRemoteModule_version2"; then - installRemoteModule_version="$installRemoteModule_version1$installRemoteModule_version2" - elif test $(compareVersions "$installRemoteModule_version1" "$installRemoteModule_version2") -le 0; then - installRemoteModule_version="$installRemoteModule_version1" - else - installRemoteModule_version="$installRemoteModule_version2" - fi - fi - ;; - redis) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=4.3.0 - elif test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=5.3.7 - elif test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=6.0.2 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - # Enable igbinary serializer support? - if php --ri igbinary >/dev/null 2>/dev/null; then - addConfigureOption enable-redis-igbinary yes - else - addConfigureOption enable-redis-igbinary no - fi - # Enable lzf compression support? - addConfigureOption enable-redis-lzf yes - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 5.0.0) -ge 0; then - if ! test -e /usr/include/zstd.h || ! test -e /usr/lib/libzstd.so -o -e "/usr/lib/$TARGET_TRIPLET/libzstd.so"; then - installRemoteModule_zstdVersion=1.4.4 - installRemoteModule_zstdVersionMajor=$(echo $installRemoteModule_zstdVersion | cut -d. -f1) - rm -rf /tmp/src/zstd - mv "$(getPackageSource https://github.com/facebook/zstd/releases/download/v$installRemoteModule_zstdVersion/zstd-$installRemoteModule_zstdVersion.tar.gz)" /tmp/src/zstd - cd /tmp/src/zstd - make V=0 -j$(getProcessorCount) lib - cp -f lib/libzstd.so "/usr/lib/$TARGET_TRIPLET/libzstd.so.$installRemoteModule_zstdVersion" - ln -sf "/usr/lib/$TARGET_TRIPLET/libzstd.so.$installRemoteModule_zstdVersion" "/usr/lib/$TARGET_TRIPLET/libzstd.so.$installRemoteModule_zstdVersionMajor" - ln -sf "/usr/lib/$TARGET_TRIPLET/libzstd.so.$installRemoteModule_zstdVersion" "/usr/lib/$TARGET_TRIPLET/libzstd.so" - ln -sf /tmp/src/zstd/lib/zstd.h /usr/include/zstd.h - UNNEEDED_PACKAGE_LINKS="$UNNEEDED_PACKAGE_LINKS /usr/include/zstd.h" - cd - >/dev/null - fi - # Enable zstd compression support? - addConfigureOption enable-redis-zstd yes - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 6.0.0) -ge 0; then - # Enable msgpack serializer support? - if php --ri msgpack >/dev/null 2>/dev/null; then - addConfigureOption enable-redis-msgpack yes - else - addConfigureOption enable-redis-msgpack no - fi - # Enable lz4 compression? - addConfigureOption enable-redis-lz4 yes - # Use system liblz4? - addConfigureOption with-liblz4 yes - fi - fi - ;; - relay) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version="$(curl -sSLf https://builds.r2.relay.so/meta/latest)" - installRemoteModule_version="${installRemoteModule_version#v}" - fi - case $(uname -m) in - aarch64 | arm64 | armv8) - installRemoteModule_hardware=aarch64 - ;; - *) - installRemoteModule_hardware=x86-64 - ;; - esac - installRemoteModule_distro="$DISTRO" - installRemoteModule_flags='' - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -lt 317; then - installRemoteModule_distro=alpine3.9 - else - installRemoteModule_distro=alpine3.17 - fi - ;; - debian) - case "$(dpkg -l 'libssl*' | grep -E '^ii ' | cut -d' ' -f3)" in - libssl3*) - installRemoteModule_flags=+libssl3 - ;; - esac - ;; - esac - # See https://relay.so/builds - installRemoteModule_url="https://builds.r2.relay.so/v${installRemoteModule_version}/relay-v${installRemoteModule_version}-php${PHP_MAJDOTMIN_VERSION}-${installRemoteModule_distro}-${installRemoteModule_hardware}${installRemoteModule_flags}.tar.gz" - printf 'Downloading relay v%s (%s) from %s... ' "$installRemoteModule_version" "$installRemoteModule_hardware" "$installRemoteModule_url" - installRemoteModule_src="$(getPackageSource $installRemoteModule_url)" - echo 'done.' - cp -- "$installRemoteModule_src/relay-pkg.so" "$PHP_EXTDIR/relay.so" - sed -i "s/00000000-0000-0000-0000-000000000000/$(cat /proc/sys/kernel/random/uuid)/" "$PHP_EXTDIR/relay.so" - installRemoteModule_ini_extra="$(grep -vE '^[ \t]*extension[ \t]*=' $installRemoteModule_src/relay.ini)" - installRemoteModule_manuallyInstalled=1 - ;; - saxon) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -ge 800; then - installRemoteModule_version='12.4.2' - else - installRemoteModule_version='12.3' - fi - fi - installRemoteModule_majorVersion="${installRemoteModule_version%%.*}" - if test "$installRemoteModule_majorVersion" -ge 12; then - case $(uname -m) in - aarch64 | arm64 | armv8) - installRemoteModule_url=https://downloads.saxonica.com/SaxonC/EE/${installRemoteModule_majorVersion}/libsaxon-EEC-linux-aarch64-v${installRemoteModule_version}.zip - ;; - *) - installRemoteModule_url=https://downloads.saxonica.com/SaxonC/EE/${installRemoteModule_majorVersion}/libsaxon-EEC-linux-x86_64-v${installRemoteModule_version}.zip - ;; - esac - else - installRemoteModule_url=https://downloads.saxonica.com/SaxonC/EE/${installRemoteModule_majorVersion}/libsaxon-EEC-setup64-v${installRemoteModule_version}.zip - fi - installRemoteModule_dir="$(getPackageSource $installRemoteModule_url)" - if ! test -f /usr/lib/libsaxon-*.so; then - if test "$installRemoteModule_majorVersion" -ge 12; then - cp $installRemoteModule_dir/libs/nix/*.so /usr/lib/ - else - cp $installRemoteModule_dir/*.so /usr/lib/ - fi - ldconfig || true - fi - cd "$installRemoteModule_dir/Saxon.C.API" - phpize - ./configure --enable-saxon - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - ;; - seasclick) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.1.0 - fi - fi - ;; - seaslog) - installRemoteModule_cppflags='-Wno-incompatible-pointer-types' - ;; - smbclient) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.1.1 - elif test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=1.1.2 - fi - fi - ;; - snappy) - if test -z "$installRemoteModule_path"; then - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=0.2.1 - fi - installRemoteModule_src="$(getPackageSource https://github.com/kjdev/php-ext-snappy/archive/refs/tags/$installRemoteModule_version.tar.gz)" - cd "$installRemoteModule_src" - phpize - ./configure --with-snappy-includedir=/usr - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - fi - ;; - snuffleupagus) - if test -z "$installRemoteModule_path"; then - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 800; then - installRemoteModule_version=0.9.0 - elif test $PHP_MAJMIN_VERSION -le 801; then - installRemoteModule_version=0.10.0 - else - installRemoteModule_version=0.11.0 - fi - fi - installRemoteModule_src="$(getPackageSource https://codeload.github.com/jvoisin/snuffleupagus/tar.gz/v$installRemoteModule_version)" - cd "$installRemoteModule_src/src" - phpize - ./configure --enable-snuffleupagus - make -j$(getProcessorCount) install - cd - >/dev/null - cp -a "$installRemoteModule_src/config/default.rules" "$PHP_INI_DIR/conf.d/snuffleupagus.rules" - if test $(compareVersions "$installRemoteModule_version" 0.8.0) -ge 0; then - printf '\n# Disable "PHP version is not officially maintained anymore" message\nsp.global.show_old_php_warning.disable();\n' >>"$PHP_INI_DIR/conf.d/snuffleupagus.rules" - fi - else - if test -f "$installRemoteModule_path/config/default.rules"; then - cp -a "$installRemoteModule_path/config/default.rules" "$PHP_INI_DIR/conf.d/snuffleupagus.rules" - fi - fi - installRemoteModule_ini_extra="$(printf '%ssp.configuration_file=%s\n' "$installRemoteModule_ini_extra" "$PHP_INI_DIR/conf.d/snuffleupagus.rules")" - installRemoteModule_manuallyInstalled=1 - ;; - sodium | libsodium) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=1.0.7 - fi - fi - ;; - solr) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=2.4.0 - elif test $PHP_MAJMIN_VERSION -lt 704; then - installRemoteModule_version=2.6.0 - fi - fi - ;; - sourceguardian) - installSourceGuardian - installRemoteModule_manuallyInstalled=1 - ;; - spx) - if test -z "$installRemoteModule_path"; then - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=v0.4.18 - fi - if test "${installRemoteModule_version%.*}" = "$installRemoteModule_version"; then - installRemoteModule_displayVersion="$installRemoteModule_version" - else - installRemoteModule_displayVersion="git--master-$installRemoteModule_version" - fi - installRemoteModule_src="$(getPackageSource https://codeload.github.com/NoiseByNorthwest/php-spx/tar.gz/$installRemoteModule_version)" - cd -- "$installRemoteModule_src" - phpize - ./configure - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - fi - ;; - sqlsrv | pdo_sqlsrv) - isMicrosoftSqlServerODBCInstalled || installMicrosoftSqlServerODBC - if test -z "$installRemoteModule_version"; then - # https://docs.microsoft.com/it-it/sql/connect/php/system-requirements-for-the-php-sql-driver?view=sql-server-2017 - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=3.0.1 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=5.3.0 - elif test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=5.6.1 - elif test $PHP_MAJMIN_VERSION -le 702; then - installRemoteModule_version=5.8.1 - elif test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=5.9.0 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=5.10.1 - elif test $PHP_MAJMIN_VERSION -le 800; then - installRemoteModule_version=5.11.1 - fi - fi - ;; - ssh2) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.13 - fi - fi - ;; - stomp) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.0.9 - fi - fi - if test "$DISTRO" = debian; then - addConfigureOption with-openssl-dir yes - else - addConfigureOption with-openssl-dir /usr - fi - ;; - swoole) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 502; then - installRemoteModule_version=1.6.10 - elif test $PHP_MAJMIN_VERSION -le 504; then - installRemoteModule_version=2.0.4 - elif test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.0.11 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=4.3.6 - elif test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=4.5.10 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=4.8.11 - elif test $PHP_BITS -eq 32; then - # See https://github.com/swoole/swoole-src/issues/5198#issuecomment-1820162178 - installRemoteModule_version="$(resolvePHPModuleVersion "$installRemoteModule_module" '^5.0')" - else - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -le 312; then - installRemoteModule_version=5.1.2 - fi - ;; - esac - fi - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 800; then - installRemoteModule_version=5.1.3 - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" stable)" - fi - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if php --ri sockets >/dev/null 2>/dev/null; then - installRemoteModule_sockets=yes - else - installRemoteModule_sockets=no - fi - installRemoteModule_openssl=yes - case "$DISTRO_VERSION" in - alpine@3.7 | alpine@3.8) - if test $(compareVersions "$installRemoteModule_version" 4.6.0) -lt 0; then - # see https://github.com/swoole/swoole-src/issues/3934 - installRemoteModule_openssl=no - fi - ;; - esac - if test $PHP_THREADSAFE -eq 1; then - installRemoteModule_zts=yes - else - installRemoteModule_zts=no - fi - installRemoteModule_sqlite=yes - installRemoteModule_iouring=no - installRemoteModule_curl=yes - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -lt 317; then - # we need sqlite3 >= 3.7.7 - installRemoteModule_sqlite=no - fi - case "${IPE_SWOOLE_WITHOUT_IOURING:-}" in - 1 | y* | Y*) ;; - *) - # iouring support in swoole 6 requires liburing 2.5+: available since Alpine 3.19 - # but with Alpine 3.19 we have a "invalid use of incomplete type 'const struct statx'" error - if test $DISTRO_MAJMIN_VERSION -ge 320; then - installRemoteModule_iouring=yes - fi - ;; - esac - ;; - debian) - if test $PHP_MAJMIN_VERSION -ge 800; then - # see https://github.com/swoole/swoole-src/issues/5365 - installRemoteModule_curl=no - fi - if test $DISTRO_MAJMIN_VERSION -lt 1200; then - # we need sqlite3 >= 3.7.7 - installRemoteModule_sqlite=no - fi - case "${IPE_SWOOLE_WITHOUT_IOURING:-}" in - 1 | y* | Y*) ;; - *) - if test $DISTRO_VERSION_NUMBER -ge 13; then - # iouring support in swoole 6 requires liburing 2.5+: available since Debian Trixie (13) - installRemoteModule_iouring=yes - fi - ;; - esac - ;; - esac - installRemoteModule_zstd=yes - case "$DISTRO" in - debian) - if test $DISTRO_VERSION_NUMBER -lt 11; then - # swoole 6 requires libzstd >= 1.4.0, but on debian 10 (buster) we have 1.3.8 - installRemoteModule_zstd=no - fi - ;; - esac - if test $(compareVersions "$installRemoteModule_version" 6.0.0) -ge 0; then - # enable sockets support? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - # enable cares support? - addConfigureOption enable-cares yes - # enable brotli support? - addConfigureOption enable-brotli yes - # enable zstd support? - addConfigureOption enable-zstd $installRemoteModule_zstd - # enable PostgreSQL database support? - addConfigureOption enable-swoole-pgsql yes - # enable ODBC database support? - addConfigureOption with-swoole-odbc no - # enable Oracle database support? - addConfigureOption with-swoole-oracle no - # enable Sqlite database support? - addConfigureOption enable-swoole-sqlite $installRemoteModule_sqlite - # enable swoole thread support (need php zts support)? - addConfigureOption enable-swoole-thread $installRemoteModule_zts - # enable iouring for file async support? - addConfigureOption enable-iouring $installRemoteModule_iouring - elif test $(compareVersions "$installRemoteModule_version" 5.1.0) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - # enable cares support? - addConfigureOption enable-cares yes - # enable brotli support? - addConfigureOption enable-brotli yes - # enable PostgreSQL database support? - addConfigureOption enable-swoole-pgsql yes - # enable ODBC database support? - addConfigureOption with-swoole-odbc no - # enable Oracle database support? - addConfigureOption with-swoole-oracle no - # enable Sqlite database support? - addConfigureOption enable-swoole-sqlite $installRemoteModule_sqlite - elif test $(compareVersions "$installRemoteModule_version" 5.0.1) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - # enable cares support? - addConfigureOption enable-cares yes - # enable brotli support? - addConfigureOption enable-brotli yes - elif test $(compareVersions "$installRemoteModule_version" 5.0.0) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - # enable cares support? - addConfigureOption enable-cares yes - elif test $(compareVersions "$installRemoteModule_version" 4.8.11) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable json support? - addConfigureOption enable-swoole-json yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - # enable cares support? - addConfigureOption enable-cares yes - elif test $(compareVersions "$installRemoteModule_version" 4.6.1) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable json support? - addConfigureOption enable-swoole-json yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - elif test $(compareVersions "$installRemoteModule_version" 4.4.0) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - elif test $(compareVersions "$installRemoteModule_version" 4.2.11) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable postgresql coroutine client support? - addConfigureOption enable-coroutine-postgresql yes - elif test $(compareVersions "$installRemoteModule_version" 4.2.7) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable postgresql coroutine client support? - addConfigureOption enable-coroutine-postgresql yes - # enable kernel debug/trace log? (it will degrade performance) - addConfigureOption enable-debug-log no - elif test $(compareVersions "$installRemoteModule_version" 4.2.6) -ge 0; then - # enable debug/trace log support? - addConfigureOption enable-debug-log no - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable postgresql coroutine client support? - addConfigureOption enable-coroutine-postgresql yes - elif test $(compareVersions "$installRemoteModule_version" 4.2.0) -ge 0; then - # enable debug/trace log support? - addConfigureOption enable-debug-log no - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable async-redis support? - addConfigureOption enable-async-redis yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable postgresql coroutine client support? - addConfigureOption enable-coroutine-postgresql yes - elif test $(compareVersions "$installRemoteModule_version" 2.1.2) -ge 0; then - # enable debug/trace log support? - addConfigureOption enable-swoole-debug no - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable async-redis support? - addConfigureOption enable-async-redis yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable postgresql coroutine client support? - addConfigureOption enable-coroutine-postgresql yes - elif test $(compareVersions "$installRemoteModule_version" 1.10.4) -ge 0 && test $(compareVersions "$installRemoteModule_version" 1.10.5) -le 0; then - # enable debug/trace log support? - addConfigureOption enable-swoole-debug no - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable async-redis support? - addConfigureOption enable-async-redis yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - fi - ;; - tdlib) - if ! test -f /usr/lib/libphpcpp.so || ! test -f /usr/include/phpcpp.h; then - if test $PHP_MAJMIN_VERSION -le 701; then - cd "$(getPackageSource https://codeload.github.com/CopernicaMarketingSoftware/PHP-CPP/tar.gz/v2.1.4)" - elif test $PHP_MAJMIN_VERSION -le 703; then - cd "$(getPackageSource https://codeload.github.com/CopernicaMarketingSoftware/PHP-CPP/tar.gz/v2.2.0)" - else - cd "$(getPackageSource https://codeload.github.com/CopernicaMarketingSoftware/PHP-CPP/tar.gz/444d1f90cf6b7f3cb5178fa0d0b5ab441b0389d0)" - fi - make -j$(getProcessorCount) - make install - cd - >/dev/null - fi - if test -z "$installRemoteModule_path"; then - installRemoteModule_tmp="$(mktemp -p /tmp/src -d)" - git clone --depth=1 --recurse-submodules https://github.com/yaroslavche/phptdlib.git "$installRemoteModule_tmp" - mkdir "$installRemoteModule_tmp/build" - cd "$installRemoteModule_tmp/build" - cmake -D USE_SHARED_PHPCPP:BOOL=ON .. - make - make install - cd - >/dev/null - rm "$PHP_INI_DIR/conf.d/tdlib.ini" - installRemoteModule_manuallyInstalled=1 - fi - ;; - tensor) - installRemoteModule_cppflags='-Wno-incompatible-pointer-types' - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=2.2.3 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=3.0.5 - fi - fi - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -ge 315 && test $DISTRO_MAJMIN_VERSION -le 317; then - if test -e /usr/lib/liblapacke.so.3 && ! test -e /usr/lib/liblapacke.so; then - ln -s /usr/lib/liblapacke.so.3 /usr/lib/liblapacke.so - fi - fi - ;; - esac - ;; - tideways) - case "$DISTRO" in - alpine) - case $(uname -m) in - aarch64 | arm64 | armv8) - installRemoteModule_architecture=alpine-arm64 - ;; - *) - installRemoteModule_architecture=alpine-x86_64 - ;; - esac - ;; - debian) - case $(uname -m) in - aarch64 | arm64 | armv8) - installRemoteModule_architecture=arm64 - ;; - *) - installRemoteModule_architecture=x86_64 - ;; - esac - ;; - esac - installRemoteModule_url="$(curl -sSLf -o - https://tideways.com/profiler/downloads | grep -Eo "\"[^\"]+/tideways-php-([0-9]+\.[0-9]+\.[0-9]+)-$installRemoteModule_architecture.tar.gz\"" | cut -d'"' -f2)" - if test -z "$installRemoteModule_url"; then - echo 'Failed to find the tideways tarball to be downloaded' - exit 1 - fi - printf 'Downloading tideways from %s\n' "$installRemoteModule_url" - installRemoteModule_src="$(getPackageSource $installRemoteModule_url)" - if test -d "$installRemoteModule_src/dist"; then - installRemoteModule_src="$installRemoteModule_src/dist" - fi - installRemoteModule_src="$installRemoteModule_src/tideways-php" - case "$DISTRO" in - alpine) - installRemoteModule_src="$installRemoteModule_src-alpine" - ;; - esac - installRemoteModule_src="$installRemoteModule_src-$PHP_MAJDOTMIN_VERSION" - if test $PHP_THREADSAFE -eq 1; then - installRemoteModule_src="$installRemoteModule_src-zts" - fi - installRemoteModule_src="$installRemoteModule_src.so" - if ! test -f "$installRemoteModule_src"; then - echo 'tideways does not support the current environment' >&2 - exit 1 - fi - mv "$installRemoteModule_src" $(getPHPExtensionsDir)/tideways.so - installRemoteModule_manuallyInstalled=1 - ;; - uopz) - installRemoteModule_cppflags='-Wno-incompatible-pointer-types' - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.0.7 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=5.0.2 - elif test $PHP_MAJMIN_VERSION -le 740; then - installRemoteModule_version=6.1.2 - fi - fi - ;; - uploadprogress) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=1.1.4 - fi - fi - ;; - uuid) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.0.5 - fi - fi - ;; - uv) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 800; then - installRemoteModule_version=0.2.4 - else - installRemoteModule_version=beta - fi - fi - ;; - vld) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=0.14.0 - else - installRemoteModule_version=beta - fi - fi - ;; - wikidiff2) - case "$DISTRO" in - alpine) - if ! isLibDatrieInstalled; then - installLibDatrie - fi - if ! isLibThaiInstalled; then - installLibThai - fi - ;; - esac - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 702; then - installRemoteModule_version=1.13.0 - else - installRemoteModule_version="$(git -c versionsort.suffix=- ls-remote --tags --refs --quiet --exit-code --sort=version:refname https://github.com/wikimedia/mediawiki-php-wikidiff2.git 'refs/tags/*.*.*' | tail -1 | cut -d/ -f3)" - fi - fi - installRemoteModule_src="$(getPackageSource "https://codeload.github.com/wikimedia/mediawiki-php-wikidiff2/tar.gz/refs/tags/$installRemoteModule_version")" - cd -- "$installRemoteModule_src" - phpize - ./configure - make -j$(getProcessorCount) - make install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - ;; - xdebug) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 500; then - installRemoteModule_version=2.0.5 - elif test $PHP_MAJMIN_VERSION -le 503; then - installRemoteModule_version=2.2.7 - elif test $PHP_MAJMIN_VERSION -le 504; then - installRemoteModule_version=2.4.1 - elif test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.5.5 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=2.6.1 - elif test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=2.9.8 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=3.1.6 - fi - fi - ;; - xdiff) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.5.2 - fi - fi - if ! test -f /usr/local/lib/libxdiff.* && ! test -f /usr/lib/libxdiff.* && ! test -f /usr/lib/x86_64*/libxdiff.*; then - installRemoteModule_src="$(getPackageSource https://raw.githubusercontent.com/mlocati/docker-php-extension-installer/assets/resources/libxdiff-0.23.tar.gz)" - cd -- "$installRemoteModule_src" - ./configure --disable-shared --disable-dependency-tracking --with-pic - make -j$(getProcessorCount) - make install - cd - >/dev/null - fi - ;; - xhprof) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.9.4 - fi - fi - ;; - xlswriter) - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 1.2.7) -ge 0; then - # enable reader supports? - addConfigureOption enable-reader yes - fi - ;; - xmldiff) - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version"; then - case "$DISTRO_VERSION" in - debian@8) - # The gcc version of Debian Jessie is too old => error: 'nullptr' was not declared in this scope - installRemoteModule_version=1.1.4 - ;; - esac - fi - ;; - xmlrpc) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=beta - fi - ;; - yac) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.9.2 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 2.2.0) -ge 0; then - # Enable igbinary serializer support - if php --ri igbinary >/dev/null 2>/dev/null; then - addConfigureOption enable-igbinary yes - else - addConfigureOption enable-igbinary no - fi - # Enable json serializer support - if php --ri json >/dev/null 2>/dev/null; then - addConfigureOption enable-json yes - else - addConfigureOption enable-json no - fi - # Enable msgpack serializer support - if php --ri msgpack >/dev/null 2>/dev/null; then - addConfigureOption enable-msgpack yes - else - addConfigureOption enable-msgpack no - fi - fi - ;; - yaml) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.3.1 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=2.0.4 - fi - fi - ;; - yar) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.2.5 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 1.2.4) -ge 0; then - # Enable Msgpack Supports - if php --ri msgpack >/dev/null 2>/dev/null; then - addConfigureOption enable-msgpack yes - else - addConfigureOption enable-msgpack no - fi - fi - ;; - zmq) - if test -z "$installRemoteModule_version"; then - installRemoteModule_src="$(getPackageSource https://github.com/zeromq/php-zmq/tarball/master)" - cd "$installRemoteModule_src" - phpize - ./configure - make -j$(getProcessorCount) - make install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - fi - ;; - zookeeper) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.5.0 - fi - fi - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - case "$DISTRO" in - alpine) - if ! test -f /usr/local/include/zookeeper/zookeeper.h; then - if test $(compareVersions "$installRemoteModule_version" 1.0.0) -lt 0; then - installRemoteModule_src="$(getPackageSource http://archive.apache.org/dist/zookeeper/zookeeper-3.5.9/apache-zookeeper-3.5.9.tar.gz)" - else - installRemoteModule_tmp="$(curl -sSLf https://downloads.apache.org/zookeeper/stable | sed -E 's/["<>]/\n/g' | grep -E '^(apache-)?zookeeper-[0-9]+\.[0-9]+\.[0-9]+\.(tar\.gz|tgz)$' | head -n1)" - if test -z "$installRemoteModule_tmp"; then - echo 'Failed to detect the zookeeper library URL' >&2 - exit 1 - fi - installRemoteModule_src="$(getPackageSource https://downloads.apache.org/zookeeper/stable/$installRemoteModule_tmp)" - fi - cd -- "$installRemoteModule_src" - if test -d ~/.m2; then - installRemoteModule_delm2=n - else - installRemoteModule_delm2=y - fi - mvn -pl zookeeper-jute compile - cd - >/dev/null - cd -- "$installRemoteModule_src/zookeeper-client/zookeeper-client-c" - autoreconf -if - ./configure --without-cppunit - make -j$(getProcessorCount) CFLAGS='-Wno-stringop-truncation -Wno-format-overflow' - make install - cd - >/dev/null - if test $installRemoteModule_delm2 = y; then - rm -rf ~/.m2 - fi - fi - ;; - esac - ;; - zstd) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.11.0 - fi - fi - ;; - esac - if test $installRemoteModule_manuallyInstalled -eq 0; then - if test -n "$installRemoteModule_path"; then - printf ' (installing version %s from %s)\n' "$installRemoteModule_version" "$installRemoteModule_path" - elif test -n "$installRemoteModule_version"; then - printf ' (installing version %s)\n' "$installRemoteModule_version" - fi - installPeclPackage "$installRemoteModule_module" "$installRemoteModule_version" "$installRemoteModule_cppflags" "$installRemoteModule_path" - fi - postProcessModule "$installRemoteModule_module" - if test $installRemoteModule_manuallyInstalled -lt 2; then - case "${IPE_SKIP_CHECK:-}" in - 1 | y* | Y*) ;; - *) - checkModuleWorking "$installRemoteModule_module" "$installRemoteModule_ini_basename" "$installRemoteModule_ini_extra" - ;; - esac - enablePhpExtension "$installRemoteModule_module" "$installRemoteModule_ini_basename" "$installRemoteModule_ini_extra" - fi -} - -# Check if a module/helper may be installed using the pecl archive -# -# Arguments: -# $1: the name of the module -# -# Return: -# 0: true -# 1: false -moduleMayUsePecl() { - case "$1" in - @composer | @fix_letsencrypt) - return 1 - ;; - blackfire | geos | ioncube_loader | snuffleupagus | sourceguardian | spx | tdlib | tideways) - return 1 - ;; - esac - if test -n "$(getModuleSourceCodePath "$1")"; then - return 1 - fi - if stringInList "$1" "$BUNDLED_MODULES"; then - return 1 - fi - return 0 -} - -# Configure the PECL package installer -# -# Updates: -# PHP_MODULES_TO_INSTALL -# Sets: -# USE_PICKLE 0: no, 1: yes (already downloaded), 2: yes (build it from source) -configureInstaller() { - USE_PICKLE=0 - if ! which pecl >/dev/null; then - for PHP_MODULE_TO_INSTALL in $PHP_MODULES_TO_INSTALL; do - if ! moduleMayUsePecl "$PHP_MODULE_TO_INSTALL"; then - continue - fi - if false && anyStringInList '' "$PHP_MODULES_TO_INSTALL"; then - USE_PICKLE=2 - else - curl -sSLf https://github.com/FriendsOfPHP/pickle/releases/latest/download/pickle.phar -o /tmp/pickle - chmod +x /tmp/pickle - USE_PICKLE=1 - fi - break - done - fi - if test $USE_PICKLE -eq 0; then - if test -z "$(pear config-get http_proxy)"; then - if test -n "${http_proxy:-}"; then - pear config-set http_proxy "$http_proxy" || true - elif test -n "${HTTP_PROXY:-}"; then - pear config-set http_proxy "$HTTP_PROXY" || true - fi - fi - pecl channel-update pecl.php.net || true - fi -} - -buildPickle() { - printf '### BUILDING PICKLE ###\n' - buildPickle_tempDir="$(mktemp -p /tmp/src -d)" - cd -- "$buildPickle_tempDir" - printf 'Downloading... ' - git clone --quiet --depth 1 https://github.com/FriendsOfPHP/pickle.git . - git tag 0.7.0 - printf 'done.\n' - printf 'Installing composer... ' - actuallyInstallComposer . composer '--1 --quiet' - printf 'done.\n' - printf 'Installing composer dependencies... ' - ./composer install --no-dev --no-progress --no-suggest --optimize-autoloader --ignore-platform-reqs --quiet --no-cache - printf 'done.\n' - printf 'Building... ' - php -d phar.readonly=0 box.phar build - mv pickle.phar /tmp/pickle - printf 'done.\n' - cd - >/dev/null -} - -# Add a configure option for the pecl/pickle install command -# -# Arguments: -# $1: the option name -# $2: the option value -addConfigureOption() { - if test $USE_PICKLE -eq 0; then - printf -- '%s\n' "$2" >>"$CONFIGURE_FILE" - else - printf -- '--%s=%s\n' "$1" "$2" >>"$CONFIGURE_FILE" - fi -} - -# Actually installs a PECL package -# -# Arguments: -# $1: the package to be installed -# $2: the package version to be installed (optional) -# $3: the value of the CPPFLAGS variable (optional) -# $4: the path of the local package to be installed (optional, downloaded from PECL if omitted/empty) -installPeclPackage() { - if ! test -f "$CONFIGURE_FILE"; then - printf '\n' >"$CONFIGURE_FILE" - fi - installPeclPackage_name="$(getPeclModuleName "$1")" - if test -z "${2:-}"; then - installPeclPackage_fullname="$installPeclPackage_name" - else - installPeclPackage_fullname="$installPeclPackage_name-$2" - fi - installPeclPackage_path="${4:-}" - if test -z "$installPeclPackage_path"; then - installPeclPackage_path="$installPeclPackage_fullname" - fi - if test $USE_PICKLE -eq 0; then - if test -n "${4:-}"; then - if test -f "$installPeclPackage_path/package2.xml"; then - installPeclPackage_path="$installPeclPackage_path/package2.xml" - else - installPeclPackage_path="$installPeclPackage_path/package.xml" - fi - fi - cat "$CONFIGURE_FILE" | MAKE="make -j$(getCompilationProcessorCount $1)" CPPFLAGS="${3:-}" pecl install "$installPeclPackage_path" - else - MAKEFLAGS="-j$(getCompilationProcessorCount $1)" CPPFLAGS="${3:-}" /tmp/pickle install --tmp-dir=/tmp/pickle.tmp --no-interaction --version-override='' --with-configure-options "$CONFIGURE_FILE" -- "$installPeclPackage_path" - fi -} - -# Check if a string is in a list of space-separated string -# -# Arguments: -# $1: the string to be checked -# $2: the string list -# -# Return: -# 0 (true): if the string is in the list -# 1 (false): if the string is not in the list -stringInList() { - for stringInList_listItem in $2; do - if test "$1" = "$stringInList_listItem"; then - return 0 - fi - done - return 1 -} - -# Check if at least one item in a list is in another list -# -# Arguments: -# $1: the space-separated list of items to be searched -# $2: the space-separated list of reference items -# -# Return: -# 0 (true): at least one of the items in $1 is in $2 -# 1 (false): otherwise -anyStringInList() { - for anyStringInList_item in $1; do - if stringInList "$anyStringInList_item" "$2"; then - return 0 - fi - done - return 1 -} - -# Remove a word from a space-separated list -# -# Arguments: -# $1: the word to be removed -# $2: the string list -# -# Output: -# The list without the word -removeStringFromList() { - removeStringFromList_result='' - for removeStringFromList_listItem in $2; do - if test "$1" != "$removeStringFromList_listItem"; then - if test -z "$removeStringFromList_result"; then - removeStringFromList_result="$removeStringFromList_listItem" - else - removeStringFromList_result="$removeStringFromList_result $removeStringFromList_listItem" - fi - fi - done - printf '%s' "$removeStringFromList_result" -} - -# Invoke apt-get update -invokeAptGetUpdate() { - if test -n "${IPE_APTGETUPDATE_ALREADY:-}"; then - apt-get update -q - return - fi - IPE_APTGETUPDATE_ALREADY=y - if grep -q 'VERSION="8 (jessie)"' /etc/os-release; then - invokeAptGetUpdate_fixdistro=jessie - elif grep -q 'VERSION="9 (stretch)"' /etc/os-release; then - invokeAptGetUpdate_fixdistro=stretch - else - invokeAptGetUpdate - return - fi - # See https://www.debian.org/distrib/archive.en.html for a list of mirrors - if test -z "${IPE_DEB_ARCHIVE:-}"; then - IPE_DEB_ARCHIVE=http://archive.kernel.org/debian-archive - fi - if test -z "${IPE_DEB_ARCHIVE_SECURITY:-}"; then - IPE_DEB_ARCHIVE_SECURITY=http://archive.kernel.org/debian-archive/debian-security - fi - sed -ri "s;^(\s*deb\s+http://(httpredir|deb).debian.org/debian\s+$invokeAptGetUpdate_fixdistro-updates\b.*);#\1;" /etc/apt/sources.list - sed -ri "s;^(\s*deb\s+)http://(httpredir|deb).debian.org;\1$IPE_DEB_ARCHIVE;" /etc/apt/sources.list - sed -ri "s;^(\s*deb\s+)http://security.debian.org/debian-security;\1$IPE_DEB_ARCHIVE_SECURITY;" /etc/apt/sources.list - sed -ri "s;^(\s*deb\s+)http://security.debian.org;\1$IPE_DEB_ARCHIVE_SECURITY;" /etc/apt/sources.list - invokeAptGetUpdate_tmp="$(mktemp)" - apt-get update -q 2>"$invokeAptGetUpdate_tmp" - if test -s "$invokeAptGetUpdate_tmp"; then - cat "$invokeAptGetUpdate_tmp" >&2 - if grep -qE ' KEYEXPIRED [0-9]' "$invokeAptGetUpdate_tmp"; then - echo '############' >&2 - echo '# WARNING! #' >&2 - echo '############' >&2 - echo 'apt packages will be installed without checking authenticity!' >&2 - printf 'APT::Get::AllowUnauthenticated "true";\n' >>/etc/apt/apt.conf.d/99unauthenticated - fi - fi - rm "$invokeAptGetUpdate_tmp" -} - -# Fix the Let's Encrypt CA certificates on old distros -fixLetsEncrypt() { - printf '### FIXING LETS ENCRYPT CA CERTIFICATES ###\n' - case "$DISTRO_VERSION" in - alpine@3.7 | alpine@3.8) - printf -- '- old Alpine Linux detected: we should fix the certificates\n' - ;; - debian@8 | debian@9) - printf -- '- old Debian detected: we should fix the certificates\n' - if ! grep -q 'mozilla/ISRG_Root_X1.crt' /etc/ca-certificates.conf && grep -q 'mozilla/DST_Root_CA_X3.crt' /etc/ca-certificates.conf; then - printf -- '- old ca-certificates package detected\n' - fixCACerts_mustUpdate=1 - if test -d /var/lib/apt/lists; then - for fixCACerts_item in $(ls -1 /var/lib/apt/lists); do - case "$fixCACerts_item" in - partial | lock) ;; - *) - fixCACerts_mustUpdate=0 - break - ;; - esac - done - fi - if test $fixCACerts_mustUpdate -eq 1; then - printf -- '- refreshing the APT package list\n' - invokeAptGetUpdate - fi - printf -- '- installing newer ca-certificates package\n' - apt-get install -qqy --no-install-recommends ca-certificates - fi - ;; - *) - printf -- '- patch not required in this distro version\n' - return - ;; - esac - if grep -Eq '^mozilla/ISRG_Root_X1\.crt$' /etc/ca-certificates.conf && grep -Eq '^mozilla/DST_Root_CA_X3\.crt$' /etc/ca-certificates.conf; then - printf -- '- disabling the DST_Root_CA_X3 certificate\n' - sed -i '/^mozilla\/DST_Root_CA_X3/s/^/!/' /etc/ca-certificates.conf - printf -- '- refreshing the certificates\n' - update-ca-certificates -f - else - printf -- '- DST_Root_CA_X3 certificate not found or already disabled\n' - fi -} - -# Cleanup everything at the end of the execution -cleanup() { - if test "${IPE_UNINSTALL_CARGO:-}" = y; then - if test -f "$HOME/.cargo/env"; then - . "$HOME/.cargo/env" - fi - if command -v rustup >/dev/null; then - rustup self uninstall -y - fi - fi - if test -n "$UNNEEDED_PACKAGE_LINKS"; then - printf '### REMOVING UNNEEDED PACKAGE LINKS ###\n' - for cleanup_link in $UNNEEDED_PACKAGE_LINKS; do - if test -L "$cleanup_link"; then - rm -f "$cleanup_link" - fi - done - fi - case "$DISTRO" in - alpine) - if stringInList icu-libs "${PACKAGES_PERSISTENT_NEW:-}" && stringInList icu-data-en "${PACKAGES_PERSISTENT_NEW:-}"; then - apk del icu-data-en >/dev/null 2>&1 || true - fi - if test -n "$PACKAGES_VOLATILE"; then - printf '### REMOVING UNNEEDED PACKAGES ###\n' - apk del --purge $PACKAGES_VOLATILE - fi - ;; - debian) - if test -n "$PACKAGES_VOLATILE"; then - printf '### REMOVING UNNEEDED PACKAGES ###\n' - apt-get remove --purge -y $PACKAGES_VOLATILE - fi - if test -n "$PACKAGES_PREVIOUS"; then - printf '### RESTORING PREVIOUSLY INSTALLED PACKAGES ###\n' - apt-get install -qqy --no-install-recommends --no-upgrade $PACKAGES_PREVIOUS - fi - ;; - esac - docker-php-source delete - rm -rf /tmp/src - rm -rf /tmp/pickle - rm -rf /tmp/pickle.tmp - rm -rf "$CONFIGURE_FILE" - case "${IPE_KEEP_SYSPKG_CACHE:-}" in - 1 | y* | Y*) ;; - *) - case "$DISTRO" in - alpine) - rm -rf /var/cache/apk/* - ;; - debian) - rm -rf /var/lib/apt/lists/* - ;; - esac - rm -rf /tmp/pear - ;; - esac -} - -DEBIAN_FRONTEND=noninteractive -export DEBIAN_FRONTEND -resetIFS -mkdir -p /tmp/src -mkdir -p /tmp/pickle.tmp -IPE_ERRFLAG_FILE="$(mktemp -p /tmp/src)" -CONFIGURE_FILE=/tmp/configure-options -IPE_APK_FLAGS='' -setDistro -case "$DISTRO_VERSION" in - debian@8) - fixMaxOpenFiles || true - ;; -esac -setPHPVersionVariables -setPHPPreinstalledModules -case "$PHP_MAJMIN_VERSION" in - 505 | 506 | 700 | 701 | 702 | 703 | 704 | 800 | 801 | 802 | 803 | 804) ;; - *) - printf "### ERROR: Unsupported PHP version: %s.%s ###\n" $((PHP_MAJMIN_VERSION / 100)) $((PHP_MAJMIN_VERSION % 100)) - ;; -esac -UNNEEDED_PACKAGE_LINKS='' -processCommandArguments "$@" - -if test -z "$PHP_MODULES_TO_INSTALL"; then - exit 0 -fi - -if stringInList @fix_letsencrypt "$PHP_MODULES_TO_INSTALL"; then - # This must be the very first thing we do - fixLetsEncrypt -fi - -sortModulesToInstall - -docker-php-source extract -BUNDLED_MODULES="$(find /usr/src/php/ext -mindepth 2 -maxdepth 2 -type f -name 'config.m4' | xargs -n1 dirname | xargs -n1 basename | xargs)" -configureInstaller - -buildRequiredPackageLists $PHP_MODULES_TO_INSTALL -if test -n "$PACKAGES_PERSISTENT_PRE"; then - markPreinstalledPackagesAsUsed -fi -if test -n "$PACKAGES_PERSISTENT_NEW$PACKAGES_VOLATILE"; then - installRequiredPackages -fi -if test "$PHP_MODULES_TO_INSTALL" != '@composer'; then - setTargetTriplet -fi -if test $USE_PICKLE -gt 1; then - buildPickle -fi - -compileLibs - -for PHP_MODULE_TO_INSTALL in $PHP_MODULES_TO_INSTALL; do - case "$PHP_MODULE_TO_INSTALL" in - @fix_letsencrypt) - # Already done: it must be the first thing we do - ;; - @composer) - installComposer - ;; - *) - if stringInList "$PHP_MODULE_TO_INSTALL" "$BUNDLED_MODULES"; then - installBundledModule "$PHP_MODULE_TO_INSTALL" - else - installRemoteModule "$PHP_MODULE_TO_INSTALL" - fi - ;; - esac -done -cleanup diff --git a/php8/8.0.30/build/php/extensions/install.sh b/php8/8.0.30/build/php/extensions/install.sh deleted file mode 100644 index 45d65e3db..000000000 --- a/php8/8.0.30/build/php/extensions/install.sh +++ /dev/null @@ -1,731 +0,0 @@ -#!/bin/sh - -export MC="-j$(nproc)" - -echo -echo "============================================" -echo "Install extensions from : install.sh" -echo "PHP version : ${PHP_VERSION}" -echo "Extra Extensions : ${PHP_EXTENSIONS}" -echo "Multicore Compilation : ${MC}" -echo "Container package url : ${CONTAINER_PACKAGE_URL}" -echo "Work directory : ${PWD}" -echo "============================================" -echo - - -if [ "${PHP_EXTENSIONS}" != "" ]; then - apk --update add --no-cache --virtual .build-deps autoconf g++ libtool make curl-dev gettext-dev linux-headers git -fi - - -export EXTENSIONS=",${PHP_EXTENSIONS}," - - -# -# Check if current php version is greater than or equal to -# specific version. -# -# For example, to check if current php is greater than or -# equal to PHP 8.0: -# -# isPhpVersionGreaterOrEqual 8 0 -# -# Param 1: Specific PHP Major version -# Param 2: Specific PHP Minor version -# Return : 1 if greater than or equal to, 0 if less than -# -isPhpVersionGreaterOrEqual() - { - local PHP_MAJOR_VERSION=$(php -r "echo PHP_MAJOR_VERSION;") - local PHP_MINOR_VERSION=$(php -r "echo PHP_MINOR_VERSION;") - - if [[ "$PHP_MAJOR_VERSION" -gt "$1" || "$PHP_MAJOR_VERSION" -eq "$1" && "$PHP_MINOR_VERSION" -ge "$2" ]]; then - return 1; - else - return 0; - fi -} - - -# -# Install extension from package file(.tgz), -# For example: -# -# installExtensionFromTgz redis-6.0.2 -# -# Param 1: Package name with version -# Param 2: enable options -# -installExtensionFromTgz() -{ - tgzName=$1 - result="" - extensionName="${tgzName%%-*}" - shift 1 - result=$@ - mkdir ${extensionName} - tar -xf ${tgzName}.tgz -C ${extensionName} --strip-components=1 - ( cd ${extensionName} && phpize && ./configure ${result} && make ${MC} && make install ) - - docker-php-ext-enable ${extensionName} -} - -# install use install-php-extensions -if [[ -z "${EXTENSIONS##*,ioncube_loader,*}" ]]; then - echo "---------- Install ioncube_loader ----------" - install-php-extensions ioncube_loader -fi - -if [[ -z "${EXTENSIONS##*,sourceguardian,*}" ]]; then - echo "---------- Install sourceguardian ----------" - apk add eudev-libs - install-php-extensions sourceguardian -fi - -if [[ -z "${EXTENSIONS##*,memcached,*}" ]]; then - echo "---------- Install memcached ----------" - install-php-extensions memcached -fi - -if [[ -z "${EXTENSIONS##*,ssh2,*}" ]]; then - echo "---------- Install ssh2 ----------" - install-php-extensions ssh2 -fi - -if [[ -z "${EXTENSIONS##*,xmlrpc,*}" ]]; then - echo "---------- Install xmlrpc ----------" - install-php-extensions xmlrpc -fi - -if [[ -z "${EXTENSIONS##*,maxminddb,*}" ]]; then - echo "---------- Install maxminddb ----------" - install-php-extensions maxminddb -fi - -if [[ -z "${EXTENSIONS##*,zstd,*}" ]]; then - echo "---------- Install zstd ----------" - install-php-extensions zstd -fi - -if [[ -z "${EXTENSIONS##*,grpc,*}" ]]; then - echo "---------- Install grpc ----------" - install-php-extensions grpc - docker-php-ext-enable grpc -fi - -if [[ -z "${EXTENSIONS##*,ftp,*}" ]]; then - echo "---------- Install ftp ----------" - install-php-extensions ftp -fi - -if [[ -z "${EXTENSIONS##*,snuffleupagus,*}" ]]; then - echo "---------- Install snuffleupagus ----------" - install-php-extensions snuffleupagus -fi - -if [[ -z "${EXTENSIONS##*,pdo_oci,*}" ]]; then - echo "---------- Install pdo_oci ----------" - install-php-extensions pdo_oci -fi - -if [[ -z "${EXTENSIONS##*,oci8,*}" ]]; then - echo "---------- Install oci8 ----------" - install-php-extensions oci8 -fi - -# end - - -if [[ -z "${EXTENSIONS##*,pdo_mysql,*}" ]]; then - echo "---------- Install pdo_mysql ----------" - docker-php-ext-install ${MC} pdo_mysql -fi - -if [[ -z "${EXTENSIONS##*,pcntl,*}" ]]; then - echo "---------- Install pcntl ----------" - docker-php-ext-install ${MC} pcntl -fi - -if [[ -z "${EXTENSIONS##*,mysqli,*}" ]]; then - echo "---------- Install mysqli ----------" - docker-php-ext-install ${MC} mysqli -fi - -if [[ -z "${EXTENSIONS##*,mbstring,*}" ]]; then - echo "---------- mbstring is installed ----------" -fi - -if [[ -z "${EXTENSIONS##*,exif,*}" ]]; then - echo "---------- Install exif ----------" - docker-php-ext-install ${MC} exif -fi - -if [[ -z "${EXTENSIONS##*,bcmath,*}" ]]; then - echo "---------- Install bcmath ----------" - docker-php-ext-install ${MC} bcmath -fi - -if [[ -z "${EXTENSIONS##*,calendar,*}" ]]; then - echo "---------- Install calendar ----------" - docker-php-ext-install ${MC} calendar -fi - -if [[ -z "${EXTENSIONS##*,zend_test,*}" ]]; then - echo "---------- Install zend_test ----------" - docker-php-ext-install ${MC} zend_test -fi - -if [[ -z "${EXTENSIONS##*,opcache,*}" ]]; then - echo "---------- Install opcache ----------" - docker-php-ext-install opcache -fi - -if [[ -z "${EXTENSIONS##*,sockets,*}" ]]; then - echo "---------- Install sockets ----------" - docker-php-ext-install ${MC} sockets -fi - -if [[ -z "${EXTENSIONS##*,gettext,*}" ]]; then - echo "---------- Install gettext ----------" - apk --no-cache add gettext-dev - docker-php-ext-install ${MC} gettext - -fi - -if [[ -z "${EXTENSIONS##*,shmop,*}" ]]; then - echo "---------- Install shmop ----------" - docker-php-ext-install ${MC} shmop -fi - -if [[ -z "${EXTENSIONS##*,sysvmsg,*}" ]]; then - echo "---------- Install sysvmsg ----------" - docker-php-ext-install ${MC} sysvmsg -fi - -if [[ -z "${EXTENSIONS##*,sysvsem,*}" ]]; then - echo "---------- Install sysvsem ----------" - docker-php-ext-install ${MC} sysvsem -fi - -if [[ -z "${EXTENSIONS##*,sysvshm,*}" ]]; then - echo "---------- Install sysvshm ----------" - docker-php-ext-install ${MC} sysvshm -fi - -if [[ -z "${EXTENSIONS##*,pdo_firebird,*}" ]]; then - echo "---------- Install pdo_firebird ----------" - docker-php-ext-install ${MC} pdo_firebird -fi - -if [[ -z "${EXTENSIONS##*,pdo_dblib,*}" ]]; then - echo "---------- Install pdo_dblib ----------" - docker-php-ext-install ${MC} pdo_dblib -fi - -if [[ -z "${EXTENSIONS##*,pdo_odbc,*}" ]]; then - echo "---------- Install pdo_odbc ----------" - docker-php-ext-install ${MC} pdo_odbc -fi - -if [[ -z "${EXTENSIONS##*,pdo_pgsql,*}" ]]; then - echo "---------- Install pdo_pgsql ----------" - apk --no-cache add postgresql-dev \ - && docker-php-ext-install ${MC} pdo_pgsql -fi - -if [[ -z "${EXTENSIONS##*,pgsql,*}" ]]; then - echo "---------- Install pgsql ----------" - apk --no-cache add postgresql-dev \ - && docker-php-ext-install ${MC} pgsql -fi - -if [[ -z "${EXTENSIONS##*,odbc,*}" ]]; then - echo "---------- Install odbc ----------" - docker-php-ext-install ${MC} odbc -fi - -if [[ -z "${EXTENSIONS##*,dba,*}" ]]; then - echo "---------- Install dba ----------" - docker-php-ext-install ${MC} dba -fi - -if [[ -z "${EXTENSIONS##*,interbase,*}" ]]; then - echo "---------- Install interbase ----------" - echo "Alpine linux do not support interbase/firebird!!!" - #docker-php-ext-install ${MC} interbase -fi - -if [[ -z "${EXTENSIONS##*,hprose,*}" ]]; then - echo "---------- Install hprose ----------" - printf "\n" | pecl install hprose - docker-php-ext-enable hprose -fi - -if [[ -z "${EXTENSIONS##*,gd,*}" ]]; then - echo "---------- Install gd ----------" - isPhpVersionGreaterOrEqual 8 0 - - if [[ "$?" = "1" ]]; then - # "--with-xxx-dir" was removed from php 7.4, - # issue: https://github.com/docker-library/php/issues/912 - options="--with-freetype --with-jpeg --with-webp" - else - options="--with-gd --with-freetype-dir=/usr/include/ --with-png-dir=/usr/include/ --with-jpeg-dir=/usr/include/ --with-webp-dir=/usr/include/" - fi - - apk add --no-cache \ - freetype \ - freetype-dev \ - libpng \ - libpng-dev \ - libjpeg-turbo \ - libjpeg-turbo-dev \ - libwebp-dev \ - && docker-php-ext-configure gd ${options} \ - && docker-php-ext-install ${MC} gd \ - && apk del \ - freetype-dev \ - libpng-dev \ - libjpeg-turbo-dev -fi - -if [[ -z "${EXTENSIONS##*,yaml,*}" ]]; then - echo "---------- Install yaml ----------" - apk add --no-cache yaml-dev - printf "\n" | pecl install yaml - docker-php-ext-enable yaml -fi - -if [[ -z "${EXTENSIONS##*,intl,*}" ]]; then - echo "---------- Install intl ----------" - apk add --no-cache icu-dev - docker-php-ext-install ${MC} intl -fi - -if [[ -z "${EXTENSIONS##*,bz2,*}" ]]; then - echo "---------- Install bz2 ----------" - apk add --no-cache bzip2-dev - docker-php-ext-install ${MC} bz2 -fi - -if [[ -z "${EXTENSIONS##*,soap,*}" ]]; then - echo "---------- Install soap ----------" - apk add --no-cache libxml2-dev - docker-php-ext-install ${MC} soap -fi - -if [[ -z "${EXTENSIONS##*,xsl,*}" ]]; then - echo "---------- Install xsl ----------" - apk add --no-cache libxml2-dev libxslt-dev - docker-php-ext-install ${MC} xsl -fi - -if [[ -z "${EXTENSIONS##*,wddx,*}" ]]; then - echo "---------- Install wddx ----------" - apk add --no-cache libxml2-dev libxslt-dev - docker-php-ext-install ${MC} wddx -fi - -if [[ -z "${EXTENSIONS##*,curl,*}" ]]; then - echo "---------- curl is installed ----------" -fi - -if [[ -z "${EXTENSIONS##*,readline,*}" ]]; then - echo "---------- Install readline ----------" - apk add --no-cache readline-dev - apk add --no-cache libedit-dev - docker-php-ext-install ${MC} readline -fi - -if [[ -z "${EXTENSIONS##*,snmp,*}" ]]; then - echo "---------- Install snmp ----------" - apk add --no-cache net-snmp-dev - docker-php-ext-install ${MC} snmp -fi - -if [[ -z "${EXTENSIONS##*,pspell,*}" ]]; then - echo "---------- Install pspell ----------" - apk add --no-cache aspell-dev - apk add --no-cache aspell-en - docker-php-ext-install ${MC} pspell -fi - -if [[ -z "${EXTENSIONS##*,recode,*}" ]]; then - echo "---------- Install recode ----------" - apk add --no-cache recode-dev - docker-php-ext-install ${MC} recode -fi - -if [[ -z "${EXTENSIONS##*,tidy,*}" ]]; then - echo "---------- Install tidy ----------" - apk add --no-cache tidyhtml-dev - - # Fix: https://github.com/htacg/tidy-html5/issues/235 - ln -s /usr/include/tidybuffio.h /usr/include/buffio.h - - docker-php-ext-install ${MC} tidy -fi - -if [[ -z "${EXTENSIONS##*,gmp,*}" ]]; then - echo "---------- Install gmp ----------" - apk add --no-cache gmp-dev - docker-php-ext-install ${MC} gmp -fi - -if [[ -z "${EXTENSIONS##*,imap,*}" ]]; then - echo "---------- Install imap ----------" - apk add --no-cache imap-dev - docker-php-ext-configure imap --with-imap --with-imap-ssl - docker-php-ext-install ${MC} imap -fi - -if [[ -z "${EXTENSIONS##*,ldap,*}" ]]; then - echo "---------- Install ldap ----------" - apk add --no-cache ldb-dev - apk add --no-cache openldap-dev - docker-php-ext-install ${MC} ldap -fi - -if [[ -z "${EXTENSIONS##*,psr,*}" ]]; then - echo "---------- Install psr ----------" - printf "\n" | pecl install psr - docker-php-ext-enable psr -fi - -if [[ -z "${EXTENSIONS##*,imagick,*}" ]]; then - echo "---------- Install imagick ----------" - apk add --no-cache file-dev - apk add --no-cache imagemagick imagemagick-dev imagemagick-pdf -# cd imagick-3.7.0 && phpize && ./configure -# make -# make install - installExtensionFromTgz imagick-3.7.0 -fi - -if [[ -z "${EXTENSIONS##*,rar,*}" ]]; then - echo "---------- Install rar ----------" - printf "\n" | pecl install rar - docker-php-ext-enable rar -fi - -if [[ -z "${EXTENSIONS##*,ast,*}" ]]; then - echo "---------- Install ast ----------" - printf "\n" | pecl install ast - docker-php-ext-enable ast -fi - -if [[ -z "${EXTENSIONS##*,msgpack,*}" ]]; then - echo "---------- Install msgpack ----------" - printf "\n" | pecl install msgpack - docker-php-ext-enable msgpack -fi - -if [[ -z "${EXTENSIONS##*,igbinary,*}" ]]; then - echo "---------- Install igbinary ----------" - printf "\n" | pecl install igbinary - docker-php-ext-enable igbinary -fi - -if [[ -z "${EXTENSIONS##*,protobuf,*}" ]]; then - isPhpVersionGreaterOrEqual 8 0 - if [[ "$?" = "1" ]]; then - echo "---------- Install protobuf ----------" - printf "\n" | pecl install protobuf - docker-php-ext-enable protobuf - else - echo "yar requires PHP >= 8.0.0, installed version is ${PHP_VERSION}" - fi -fi - -if [[ -z "${EXTENSIONS##*,yac,*}" ]]; then - isPhpVersionGreaterOrEqual 8 0 - if [[ "$?" = "1" ]]; then - echo "---------- Install yac ----------" - printf "\n" | pecl install yac-2.0.2 - docker-php-ext-enable yac - else - echo "yar requires PHP >= 8.0.0, installed version is ${PHP_VERSION}" - fi -fi - -if [[ -z "${EXTENSIONS##*,yar,*}" ]]; then - isPhpVersionGreaterOrEqual 8 0 - if [[ "$?" = "1" ]]; then - echo "---------- Install yar ----------" - printf "\n" | pecl install yar - docker-php-ext-enable yar - else - echo "yar requires PHP >= 8.0.0, installed version is ${PHP_VERSION}" - fi - -fi - - - -if [[ -z "${EXTENSIONS##*,yaconf,*}" ]]; then - isPhpVersionGreaterOrEqual 8 0 - if [[ "$?" = "1" ]]; then - echo "---------- Install yaconf ----------" - printf "\n" | pecl install yaconf - docker-php-ext-enable yaconf - else - echo "yar requires PHP >= 8.0.0, installed version is ${PHP_VERSION}" - fi -fi - -if [[ -z "${EXTENSIONS##*,seaslog,*}" ]]; then - echo "---------- Install seaslog ----------" - printf "\n" | pecl install seaslog - docker-php-ext-enable seaslog -fi - -if [[ -z "${EXTENSIONS##*,varnish,*}" ]]; then - echo "---------- Install varnish ----------" - apk add --no-cache varnish-dev - printf "\n" | pecl install varnish - docker-php-ext-enable varnish -fi - -if [[ -z "${EXTENSIONS##*,pdo_sqlsrv,*}" ]]; then - isPhpVersionGreaterOrEqual 8 0 - if [[ "$?" = "1" ]]; then - echo "---------- Install pdo_sqlsrv ----------" - apk add --no-cache unixodbc-dev - printf "\n" | pecl install pdo_sqlsrv - docker-php-ext-enable pdo_sqlsrv - curl -o /tmp/msodbcsql17_amd64.apk https://download.microsoft.com/download/e/4/e/e4e67866-dffd-428c-aac7-8d28ddafb39b/msodbcsql17_17.5.2.1-1_amd64.apk - apk add --allow-untrusted /tmp/msodbcsql17_amd64.apk - else - echo "pdo_sqlsrv requires PHP >= 8.0.0, installed version is ${PHP_VERSION}" - fi -fi - -if [[ -z "${EXTENSIONS##*,sqlsrv,*}" ]]; then - isPhpVersionGreaterOrEqual 8 0 - if [[ "$?" = "1" ]]; then - echo "---------- Install sqlsrv ----------" - install-php-extensions sqlsrv - else - echo "sqlsrv requires PHP >= 8.0.0, installed version is ${PHP_VERSION}" - fi -fi - -if [[ -z "${EXTENSIONS##*,mcrypt,*}" ]]; then - isPhpVersionGreaterOrEqual 8 0 - if [[ "$?" = "1" ]]; then - echo "---------- Install mcrypt ----------" - apk add --no-cache libmcrypt-dev libmcrypt re2c - printf "\n" |pecl install mcrypt - docker-php-ext-enable mcrypt - else - echo "---------- Install mcrypt ----------" - apk add --no-cache libmcrypt-dev \ - && docker-php-ext-install ${MC} mcrypt - fi -fi - -if [[ -z "${EXTENSIONS##*,mysql,*}" ]]; then - isPhpVersionGreaterOrEqual 8 0 - - if [[ "$?" = "1" ]]; then - echo "---------- mysql was REMOVED from PHP 8.0.0 ----------" - else - echo "---------- Install mysql ----------" - docker-php-ext-install ${MC} mysql - fi -fi - -if [[ -z "${EXTENSIONS##*,sodium,*}" ]]; then - isPhpVersionGreaterOrEqual 8 0 - if [[ "$?" = "1" ]]; then - echo - echo "Sodium is bundled with PHP from PHP 8.0.0" - echo - else - echo "---------- Install sodium ----------" - apk add --no-cache libsodium-dev - docker-php-ext-install ${MC} sodium - fi -fi - -if [[ -z "${EXTENSIONS##*,amqp,*}" ]]; then - echo "---------- Install amqp ----------" - apk add --no-cache -U autoconf - apk add --no-cache -U gcc - apk add --no-cache -U linux-headers - apk add --no-cache -U libc-dev - - apk add --no-cache --update --virtual .phpize-deps-configure $PHPIZE_DEPS \ - && apk add rabbitmq-c-dev \ - && printf '\n' | pecl install amqp \ - && docker-php-ext-enable amqp \ - && apk del .phpize-deps-configure - -fi - -if [[ -z "${EXTENSIONS##*,redis,*}" ]]; then - echo "---------- Install redis ----------" - installExtensionFromTgz redis-6.0.2 -fi - -if [[ -z "${EXTENSIONS##*,apcu,*}" ]]; then - echo "---------- Install apcu ----------" - pecl install apcu - docker-php-ext-enable apcu -fi - -if [[ -z "${EXTENSIONS##*,memcached,*}" ]]; then - echo "---------- Install memcached ----------" - apk add --no-cache libmemcached-dev zlib-dev - pecl install memcached-3.2.3 - docker-php-ext-enable memcached -fi - -if [[ -z "${EXTENSIONS##*,memcache,*}" ]]; then - echo "---------- Install memcache ----------" - pecl install memcache - docker-php-ext-enable memcache -fi - -if [[ -z "${EXTENSIONS##*,xdebug,*}" ]]; then - echo "---------- Install xdebug ----------" - installExtensionFromTgz xdebug-3.2.0 -fi - -if [[ -z "${EXTENSIONS##*,event,*}" ]]; then - echo "---------- Install event ----------" - apk add --no-cache libevent-dev - export is_sockets_installed=$(php -r "echo extension_loaded('sockets');") - - if [[ "${is_sockets_installed}" = "" ]]; then - echo "---------- event is depend on sockets, install sockets first ----------" - docker-php-ext-install sockets - fi - - echo "---------- Install event again ----------" - mkdir event - tar -xf event-3.0.8.tgz -C event --strip-components=1 - cd event && phpize && ./configure && make && make install - - docker-php-ext-enable --ini-name event.ini event -fi - -if [[ -z "${EXTENSIONS##*,mongodb,*}" ]]; then - echo "---------- Install mongodb ----------" - apk add --no-cache openssl-dev - installExtensionFromTgz mongodb-1.15.2 - docker-php-ext-configure mongodb --with-mongodb-ssl=openssl - docker-php-ext-enable mongodb -fi - -if [[ -z "${EXTENSIONS##*,yaf,*}" ]]; then - echo "---------- Install yaf ----------" - pecl install yaf - docker-php-ext-enable yaf -fi - - -if [[ -z "${EXTENSIONS##*,swoole,*}" ]]; then - echo "---------- Install swoole ----------" - install-php-extensions swoole -fi - -if [[ -z "${EXTENSIONS##*,zip,*}" ]]; then - echo "---------- Install zip ----------" - # Fix: https://github.com/docker-library/php/issues/797 - apk add --no-cache libzip-dev - - isPhpVersionGreaterOrEqual 8 0 - if [[ "$?" != "1" ]]; then - docker-php-ext-configure zip --with-libzip=/usr/include - fi - - docker-php-ext-install ${MC} zip -fi - -if [[ -z "${EXTENSIONS##*,xhprof,*}" ]]; then - echo "---------- Install XHProf ----------" - pecl install xhprof - docker-php-ext-enable xhprof - -fi - -if [[ -z "${EXTENSIONS##*,xlswriter,*}" ]]; then - echo "---------- Install xlswriter ----------" - isPhpVersionGreaterOrEqual 8 0 - - if [[ "$?" = "1" ]]; then - printf "\n" | pecl install xlswriter - docker-php-ext-enable xlswriter - else - echo "---------- PHP Version>= 8.0----------" - fi -fi - -if [[ -z "${EXTENSIONS##*,rdkafka,*}" ]]; then - echo "---------- Install rdkafka ----------" - isPhpVersionGreaterOrEqual 8 0 - - if [[ "$?" = "1" ]]; then - apk add librdkafka-dev - printf "\n" | pecl install rdkafka - docker-php-ext-enable rdkafka - else - echo "---------- PHP Version>= 8.0----------" - fi -fi - -if [[ -z "${EXTENSIONS##*,zookeeper,*}" ]]; then - echo "---------- Install zookeeper ----------" - isPhpVersionGreaterOrEqual 8 0 - - if [[ "$?" = "1" ]]; then - apk add re2c - apk add libzookeeper-dev --repository http://${CONTAINER_PACKAGE_URL}/alpine/edge/testing/ - printf "\n" | pecl install zookeeper - docker-php-ext-enable zookeeper - else - echo "---------- PHP Version>= 8.0----------" - fi -fi - -if [[ -z "${EXTENSIONS##*,phalcon,*}" ]]; then - echo "---------- Install phalcon ----------" - isPhpVersionGreaterOrEqual 8 0 - - if [[ "$?" = "1" ]]; then - printf "\n" | pecl install phalcon - docker-php-ext-enable psr - docker-php-ext-enable phalcon - else - echo "---------- PHP Version>= 8.0----------" - fi -fi - -if [[ -z "${EXTENSIONS##*,sdebug,*}" ]]; then - echo "---------- Install sdebug ----------" - isPhpVersionGreaterOrEqual 8 0 - - if [[ "$?" = "1" ]]; then - curl -SL "https://github.com/swoole/sdebug/archive/sdebug_2_9-beta.tar.gz" -o sdebug.tar.gz \ - && mkdir -p sdebug \ - && tar -xf sdebug.tar.gz -C sdebug --strip-components=1 \ - && rm sdebug.tar.gz \ - && ( \ - cd sdebug \ - && phpize \ - && ./configure --enable-xdebug \ - && make clean && make && make install \ - ) \ - && docker-php-ext-enable xdebug - else - echo "---------- PHP Version>= 8.0----------" - fi -fi - -if [ "${PHP_EXTENSIONS}" != "" ]; then -# PHP-Imagick 扩展中有所需的其他依赖项,不进行删除.build-deps -# apk del .build-deps \ - docker-php-source delete -fi diff --git a/php8/8.0.30/build/php/extensions/mongodb-1.15.2.tgz b/php8/8.0.30/build/php/extensions/mongodb-1.15.2.tgz deleted file mode 100644 index 41c2e064b..000000000 Binary files a/php8/8.0.30/build/php/extensions/mongodb-1.15.2.tgz and /dev/null differ diff --git a/php8/8.0.30/build/php/extensions/redis-6.0.2.tgz b/php8/8.0.30/build/php/extensions/redis-6.0.2.tgz deleted file mode 100644 index 2d7b7987f..000000000 Binary files a/php8/8.0.30/build/php/extensions/redis-6.0.2.tgz and /dev/null differ diff --git a/php8/8.0.30/build/php/extensions/swoole-5.0.2.tgz b/php8/8.0.30/build/php/extensions/swoole-5.0.2.tgz deleted file mode 100644 index 7e42418c3..000000000 Binary files a/php8/8.0.30/build/php/extensions/swoole-5.0.2.tgz and /dev/null differ diff --git a/php8/8.0.30/build/php/extensions/xdebug-3.2.0.tgz b/php8/8.0.30/build/php/extensions/xdebug-3.2.0.tgz deleted file mode 100644 index 4023612cb..000000000 Binary files a/php8/8.0.30/build/php/extensions/xdebug-3.2.0.tgz and /dev/null differ diff --git a/php8/8.0.30/build/php/php-fpm.conf b/php8/8.0.30/build/php/php-fpm.conf deleted file mode 100644 index 131835891..000000000 --- a/php8/8.0.30/build/php/php-fpm.conf +++ /dev/null @@ -1,423 +0,0 @@ -; Start a new pool named 'www'. -; the variable $pool can be used in any directive and will be replaced by the -; pool name ('www' here) -[www] - -; Per pool prefix -; It only applies on the following directives: -; - 'access.log' -; - 'slowlog' -; - 'listen' (unixsocket) -; - 'chroot' -; - 'chdir' -; - 'php_values' -; - 'php_admin_values' -; When not set, the global prefix (or NONE) applies instead. -; Note: This directive can also be relative to the global prefix. -; Default Value: none -;prefix = /path/to/pools/$pool - -; Unix user/group of processes -; Note: The user is mandatory. If the group is not set, the default user's group -; will be used. -user = www-data -group = www-data - -; The address on which to accept FastCGI requests. -; Valid syntaxes are: -; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on -; a specific port; -; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on -; a specific port; -; 'port' - to listen on a TCP socket to all addresses -; (IPv6 and IPv4-mapped) on a specific port; -; '/path/to/unix/socket' - to listen on a unix socket. -; Note: This value is mandatory. -listen = 127.0.0.1:9000 - -; Set listen(2) backlog. -; Default Value: 511 (-1 on FreeBSD and OpenBSD) -;listen.backlog = 511 - -; Set permissions for unix socket, if one is used. In Linux, read/write -; permissions must be set in order to allow connections from a web server. Many -; BSD-derived systems allow connections regardless of permissions. -; Default Values: user and group are set as the running user -; mode is set to 0660 -;listen.owner = www-data -;listen.group = www-data -;listen.mode = 0660 -; When POSIX Access Control Lists are supported you can set them using -; these options, value is a comma separated list of user/group names. -; When set, listen.owner and listen.group are ignored -;listen.acl_users = -;listen.acl_groups = - -; List of addresses (IPv4/IPv6) of FastCGI clients which are allowed to connect. -; Equivalent to the FCGI_WEB_SERVER_ADDRS environment variable in the original -; PHP FCGI (5.2.2+). Makes sense only with a tcp listening socket. Each address -; must be separated by a comma. If this value is left blank, connections will be -; accepted from any ip address. -; Default Value: any -;listen.allowed_clients = 127.0.0.1 - -; Specify the nice(2) priority to apply to the pool processes (only if set) -; The value can vary from -19 (highest priority) to 20 (lower priority) -; Note: - It will only work if the FPM master process is launched as root -; - The pool processes will inherit the master process priority -; unless it specified otherwise -; Default Value: no set -; process.priority = -19 - -; Set the process dumpable flag (PR_SET_DUMPABLE prctl) even if the process user -; or group is differrent than the master process user. It allows to create process -; core dump and ptrace the process for the pool user. -; Default Value: no -; process.dumpable = yes - -; Choose how the process manager will control the number of child processes. -; Possible Values: -; static - a fixed number (pm.max_children) of child processes; -; dynamic - the number of child processes are set dynamically based on the -; following directives. With this process management, there will be -; always at least 1 children. -; pm.max_children - the maximum number of children that can -; be alive at the same time. -; pm.start_servers - the number of children created on startup. -; pm.min_spare_servers - the minimum number of children in 'idle' -; state (waiting to process). If the number -; of 'idle' processes is less than this -; number then some children will be created. -; pm.max_spare_servers - the maximum number of children in 'idle' -; state (waiting to process). If the number -; of 'idle' processes is greater than this -; number then some children will be killed. -; ondemand - no children are created at startup. Children will be forked when -; new requests will connect. The following parameter are used: -; pm.max_children - the maximum number of children that -; can be alive at the same time. -; pm.process_idle_timeout - The number of seconds after which -; an idle process will be killed. -; Note: This value is mandatory. -pm = dynamic - -; The number of child processes to be created when pm is set to 'static' and the -; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'. -; This value sets the limit on the number of simultaneous requests that will be -; served. Equivalent to the ApacheMaxClients directive with mpm_prefork. -; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP -; CGI. The below defaults are based on a server without much resources. Don't -; forget to tweak pm.* to fit your needs. -; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand' -; Note: This value is mandatory. -pm.max_children = 10 - -; The number of child processes created on startup. -; Note: Used only when pm is set to 'dynamic' -; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2 -pm.start_servers = 2 - -; The desired minimum number of idle server processes. -; Note: Used only when pm is set to 'dynamic' -; Note: Mandatory when pm is set to 'dynamic' -pm.min_spare_servers = 1 - -; The desired maximum number of idle server processes. -; Note: Used only when pm is set to 'dynamic' -; Note: Mandatory when pm is set to 'dynamic' -pm.max_spare_servers = 3 - -; The number of seconds after which an idle process will be killed. -; Note: Used only when pm is set to 'ondemand' -; Default Value: 10s -;pm.process_idle_timeout = 10s; - -; The number of requests each child process should execute before respawning. -; This can be useful to work around memory leaks in 3rd party libraries. For -; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS. -; Default Value: 0 -;pm.max_requests = 500 - -; The URI to view the FPM status page. If this value is not set, no URI will be -; recognized as a status page. It shows the following informations: -; pool - the name of the pool; -; process manager - static, dynamic or ondemand; -; start time - the date and time FPM has started; -; start since - number of seconds since FPM has started; -; accepted conn - the number of request accepted by the pool; -; listen queue - the number of request in the queue of pending -; connections (see backlog in listen(2)); -; max listen queue - the maximum number of requests in the queue -; of pending connections since FPM has started; -; listen queue len - the size of the socket queue of pending connections; -; idle processes - the number of idle processes; -; active processes - the number of active processes; -; total processes - the number of idle + active processes; -; max active processes - the maximum number of active processes since FPM -; has started; -; max children reached - number of times, the process limit has been reached, -; when pm tries to start more children (works only for -; pm 'dynamic' and 'ondemand'); -; Value are updated in real time. -; Example output: -; pool: www -; process manager: static -; start time: 01/Jul/2011:17:53:49 +0200 -; start since: 62636 -; accepted conn: 190460 -; listen queue: 0 -; max listen queue: 1 -; listen queue len: 42 -; idle processes: 4 -; active processes: 11 -; total processes: 15 -; max active processes: 12 -; max children reached: 0 -; -; By default the status page output is formatted as text/plain. Passing either -; 'html', 'xml' or 'json' in the query string will return the corresponding -; output syntax. Example: -; http://www.foo.bar/status -; http://www.foo.bar/status?json -; http://www.foo.bar/status?html -; http://www.foo.bar/status?xml -; -; By default the status page only outputs short status. Passing 'full' in the -; query string will also return status for each pool process. -; Example: -; http://www.foo.bar/status?full -; http://www.foo.bar/status?json&full -; http://www.foo.bar/status?html&full -; http://www.foo.bar/status?xml&full -; The Full status returns for each process: -; pid - the PID of the process; -; state - the state of the process (Idle, Running, ...); -; start time - the date and time the process has started; -; start since - the number of seconds since the process has started; -; requests - the number of requests the process has served; -; request duration - the duration in µs of the requests; -; request method - the request method (GET, POST, ...); -; request URI - the request URI with the query string; -; content length - the content length of the request (only with POST); -; user - the user (PHP_AUTH_USER) (or '-' if not set); -; script - the main script called (or '-' if not set); -; last request cpu - the %cpu the last request consumed -; it's always 0 if the process is not in Idle state -; because CPU calculation is done when the request -; processing has terminated; -; last request memory - the max amount of memory the last request consumed -; it's always 0 if the process is not in Idle state -; because memory calculation is done when the request -; processing has terminated; -; If the process is in Idle state, then informations are related to the -; last request the process has served. Otherwise informations are related to -; the current request being served. -; Example output: -; ************************ -; pid: 31330 -; state: Running -; start time: 01/Jul/2011:17:53:49 +0200 -; start since: 63087 -; requests: 12808 -; request duration: 1250261 -; request method: GET -; request URI: /test_mem.php?N=10000 -; content length: 0 -; user: - -; script: /home/fat/web/docs/php/test_mem.php -; last request cpu: 0.00 -; last request memory: 0 -; -; Note: There is a real-time FPM status monitoring sample web page available -; It's available in: /usr/local/share/php/fpm/status.html -; -; Note: The value must start with a leading slash (/). The value can be -; anything, but it may not be a good idea to use the .php extension or it -; may conflict with a real PHP file. -; Default Value: not set -;pm.status_path = /status - -; The ping URI to call the monitoring page of FPM. If this value is not set, no -; URI will be recognized as a ping page. This could be used to test from outside -; that FPM is alive and responding, or to -; - create a graph of FPM availability (rrd or such); -; - remove a server from a group if it is not responding (load balancing); -; - trigger alerts for the operating team (24/7). -; Note: The value must start with a leading slash (/). The value can be -; anything, but it may not be a good idea to use the .php extension or it -; may conflict with a real PHP file. -; Default Value: not set -;ping.path = /ping - -; This directive may be used to customize the response of a ping request. The -; response is formatted as text/plain with a 200 response code. -; Default Value: pong -;ping.response = pong - -; The access log file -; Default: not set -;access.log = log/$pool.access.log - -; The access log format. -; The following syntax is allowed -; %%: the '%' character -; %C: %CPU used by the request -; it can accept the following format: -; - %{user}C for user CPU only -; - %{system}C for system CPU only -; - %{total}C for user + system CPU (default) -; %d: time taken to serve the request -; it can accept the following format: -; - %{seconds}d (default) -; - %{miliseconds}d -; - %{mili}d -; - %{microseconds}d -; - %{micro}d -; %e: an environment variable (same as $_ENV or $_SERVER) -; it must be associated with embraces to specify the name of the env -; variable. Some exemples: -; - server specifics like: %{REQUEST_METHOD}e or %{SERVER_PROTOCOL}e -; - HTTP headers like: %{HTTP_HOST}e or %{HTTP_USER_AGENT}e -; %f: script filename -; %l: content-length of the request (for POST request only) -; %m: request method -; %M: peak of memory allocated by PHP -; it can accept the following format: -; - %{bytes}M (default) -; - %{kilobytes}M -; - %{kilo}M -; - %{megabytes}M -; - %{mega}M -; %n: pool name -; %o: output header -; it must be associated with embraces to specify the name of the header: -; - %{Content-Type}o -; - %{X-Powered-By}o -; - %{Transfert-Encoding}o -; - .... -; %p: PID of the child that serviced the request -; %P: PID of the parent of the child that serviced the request -; %q: the query string -; %Q: the '?' character if query string exists -; %r: the request URI (without the query string, see %q and %Q) -; %R: remote IP address -; %s: status (response code) -; %t: server time the request was received -; it can accept a strftime(3) format: -; %d/%b/%Y:%H:%M:%S %z (default) -; The strftime(3) format must be encapsuled in a %{}t tag -; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t -; %T: time the log has been written (the request has finished) -; it can accept a strftime(3) format: -; %d/%b/%Y:%H:%M:%S %z (default) -; The strftime(3) format must be encapsuled in a %{}t tag -; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t -; %u: remote user -; -; Default: "%R - %u %t \"%m %r\" %s" -;access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%" - -; The log file for slow requests -; Default Value: not set -; Note: slowlog is mandatory if request_slowlog_timeout is set -slowlog = /var/log/php/fpm.slow.log - -; The timeout for serving a single request after which a PHP backtrace will be -; dumped to the 'slowlog' file. A value of '0s' means 'off'. -; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) -; Default Value: 0 -request_slowlog_timeout = 3 - -; Depth of slow log stack trace. -; Default Value: 20 -;request_slowlog_trace_depth = 20 - -; The timeout for serving a single request after which the worker process will -; be killed. This option should be used when the 'max_execution_time' ini option -; does not stop script execution for some reason. A value of '0' means 'off'. -; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) -; Default Value: 0 -;request_terminate_timeout = 0 - -; Set open file descriptor rlimit. -; Default Value: system defined value -;rlimit_files = 1024 - -; Set max core size rlimit. -; Possible Values: 'unlimited' or an integer greater or equal to 0 -; Default Value: system defined value -;rlimit_core = 0 - -; Chroot to this directory at the start. This value must be defined as an -; absolute path. When this value is not set, chroot is not used. -; Note: you can prefix with '$prefix' to chroot to the pool prefix or one -; of its subdirectories. If the pool prefix is not set, the global prefix -; will be used instead. -; Note: chrooting is a great security feature and should be used whenever -; possible. However, all PHP paths will be relative to the chroot -; (error_log, sessions.save_path, ...). -; Default Value: not set -;chroot = - -; Chdir to this directory at the start. -; Note: relative path can be used. -; Default Value: current directory or / when chroot -;chdir = /var/www - -; Redirect worker stdout and stderr into main error log. If not set, stdout and -; stderr will be redirected to /dev/null according to FastCGI specs. -; Note: on highloaded environement, this can cause some delay in the page -; process time (several ms). -; Default Value: no -catch_workers_output = yes - -; Clear environment in FPM workers -; Prevents arbitrary environment variables from reaching FPM worker processes -; by clearing the environment in workers before env vars specified in this -; pool configuration are added. -; Setting to "no" will make all environment variables available to PHP code -; via getenv(), $_ENV and $_SERVER. -; Default Value: yes -;clear_env = no - -; Limits the extensions of the main script FPM will allow to parse. This can -; prevent configuration mistakes on the web server side. You should only limit -; FPM to .php extensions to prevent malicious users to use other extensions to -; execute php code. -; Note: set an empty value to allow all extensions. -; Default Value: .php -;security.limit_extensions = .php .php3 .php4 .php5 .php7 - -; Pass environment variables like LD_LIBRARY_PATH. All $VARIABLEs are taken from -; the current environment. -; Default Value: clean env -;env[HOSTNAME] = $HOSTNAME -;env[PATH] = /usr/local/bin:/usr/bin:/bin -;env[TMP] = /tmp -;env[TMPDIR] = /tmp -;env[TEMP] = /tmp - -; Additional php.ini defines, specific to this pool of workers. These settings -; overwrite the values previously defined in the php.ini. The directives are the -; same as the PHP SAPI: -; php_value/php_flag - you can set classic ini defines which can -; be overwritten from PHP call 'ini_set'. -; php_admin_value/php_admin_flag - these directives won't be overwritten by -; PHP call 'ini_set' -; For php_*flag, valid values are on, off, 1, 0, true, false, yes or no. - -; Defining 'extension' will load the corresponding shared extension from -; extension_dir. Defining 'disable_functions' or 'disable_classes' will not -; overwrite previously defined php.ini values, but will append the new value -; instead. - -; Note: path INI options can be relative and will be expanded with the prefix -; (pool, global or /usr/local) - -; Default Value: nothing is defined by default except the values in php.ini and -; specified at startup with the -d argument -;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com -;php_flag[display_errors] = off -;php_admin_value[error_log] = /var/log/fpm-php.www.log -;php_admin_flag[log_errors] = on -;php_admin_value[memory_limit] = 32M diff --git a/php8/8.0.30/build/php/php.ini b/php8/8.0.30/build/php/php.ini deleted file mode 100644 index 82b728e20..000000000 --- a/php8/8.0.30/build/php/php.ini +++ /dev/null @@ -1,1933 +0,0 @@ -[PHP] - -;;;;;;;;;;;;;;;;;;; -; About php.ini ; -;;;;;;;;;;;;;;;;;;; -; PHP's initialization file, generally called php.ini, is responsible for -; configuring many of the aspects of PHP's behavior. - -; PHP attempts to find and load this configuration from a number of locations. -; The following is a summary of its search order: -; 1. SAPI module specific location. -; 2. The PHPRC environment variable. (As of PHP 5.2.0) -; 3. A number of predefined registry keys on Windows (As of PHP 5.2.0) -; 4. Current working directory (except CLI) -; 5. The web server's directory (for SAPI modules), or directory of PHP -; (otherwise in Windows) -; 6. The directory from the --with-config-file-path compile time option, or the -; Windows directory (C:\windows or C:\winnt) -; See the PHP docs for more specific information. -; http://php.net/configuration.file - -; The syntax of the file is extremely simple. Whitespace and lines -; beginning with a semicolon are silently ignored (as you probably guessed). -; Section headers (e.g. [Foo]) are also silently ignored, even though -; they might mean something in the future. - -; Directives following the section heading [PATH=/www/mysite] only -; apply to PHP files in the /www/mysite directory. Directives -; following the section heading [HOST=www.example.com] only apply to -; PHP files served from www.example.com. Directives set in these -; special sections cannot be overridden by user-defined INI files or -; at runtime. Currently, [PATH=] and [HOST=] sections only work under -; CGI/FastCGI. -; http://php.net/ini.sections - -; Directives are specified using the following syntax: -; directive = value -; Directive names are *case sensitive* - foo=bar is different from FOO=bar. -; Directives are variables used to configure PHP or PHP extensions. -; There is no name validation. If PHP can't find an expected -; directive because it is not set or is mistyped, a default value will be used. - -; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one -; of the INI constants (On, Off, True, False, Yes, No and None) or an expression -; (e.g. E_ALL & ~E_NOTICE), a quoted string ("bar"), or a reference to a -; previously set variable or directive (e.g. ${foo}) - -; Expressions in the INI file are limited to bitwise operators and parentheses: -; | bitwise OR -; ^ bitwise XOR -; & bitwise AND -; ~ bitwise NOT -; ! boolean NOT - -; Boolean flags can be turned on using the values 1, On, True or Yes. -; They can be turned off using the values 0, Off, False or No. - -; An empty string can be denoted by simply not writing anything after the equal -; sign, or by using the None keyword: - -; foo = ; sets foo to an empty string -; foo = None ; sets foo to an empty string -; foo = "None" ; sets foo to the string 'None' - -; If you use constants in your value, and these constants belong to a -; dynamically loaded extension (either a PHP extension or a Zend extension), -; you may only use these constants *after* the line that loads the extension. - -;;;;;;;;;;;;;;;;;;; -; About this file ; -;;;;;;;;;;;;;;;;;;; -; PHP comes packaged with two INI files. One that is recommended to be used -; in production environments and one that is recommended to be used in -; development environments. - -; php.ini-production contains settings which hold security, performance and -; best practices at its core. But please be aware, these settings may break -; compatibility with older or less security conscience applications. We -; recommending using the production ini in production and testing environments. - -; php.ini-development is very similar to its production variant, except it is -; much more verbose when it comes to errors. We recommend using the -; development version only in development environments, as errors shown to -; application users can inadvertently leak otherwise secure information. - -; This is php.ini-production INI file. - -;;;;;;;;;;;;;;;;;;; -; Quick Reference ; -;;;;;;;;;;;;;;;;;;; -; The following are all the settings which are different in either the production -; or development versions of the INIs with respect to PHP's default behavior. -; Please see the actual settings later in the document for more details as to why -; we recommend these changes in PHP's behavior. - -; display_errors -; Default Value: On -; Development Value: On -; Production Value: Off - -; display_startup_errors -; Default Value: Off -; Development Value: On -; Production Value: Off - -; error_reporting -; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT - -; html_errors -; Default Value: On -; Development Value: On -; Production value: On - -; log_errors -; Default Value: Off -; Development Value: On -; Production Value: On - -; max_input_time -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) - -; output_buffering -; Default Value: Off -; Development Value: 4096 -; Production Value: 4096 - -; register_argc_argv -; Default Value: On -; Development Value: Off -; Production Value: Off - -; request_order -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" - -; session.gc_divisor -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 - -; session.sid_bits_per_character -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 - -; short_open_tag -; Default Value: On -; Development Value: Off -; Production Value: Off - -; track_errors -; Default Value: Off -; Development Value: On -; Production Value: Off - -; variables_order -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS" - -;;;;;;;;;;;;;;;;;;;; -; php.ini Options ; -;;;;;;;;;;;;;;;;;;;; -; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini" -;user_ini.filename = ".user.ini" - -; To disable this feature set this option to empty value -;user_ini.filename = - -; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes) -;user_ini.cache_ttl = 300 - -;;;;;;;;;;;;;;;;;;;; -; Language Options ; -;;;;;;;;;;;;;;;;;;;; - -; Enable the PHP scripting language engine under Apache. -; http://php.net/engine -engine = On - -; This directive determines whether or not PHP will recognize code between -; tags as PHP source which should be processed as such. It is -; generally recommended that should be used and that this feature -; should be disabled, as enabling it may result in issues when generating XML -; documents, however this remains supported for backward compatibility reasons. -; Note that this directive does not control the would work. -; http://php.net/syntax-highlighting -;highlight.string = #DD0000 -;highlight.comment = #FF9900 -;highlight.keyword = #007700 -;highlight.default = #0000BB -;highlight.html = #000000 - -; If enabled, the request will be allowed to complete even if the user aborts -; the request. Consider enabling it if executing long requests, which may end up -; being interrupted by the user or a browser timing out. PHP's default behavior -; is to disable this feature. -; http://php.net/ignore-user-abort -;ignore_user_abort = On - -; Determines the size of the realpath cache to be used by PHP. This value should -; be increased on systems where PHP opens many files to reflect the quantity of -; the file operations performed. -; http://php.net/realpath-cache-size -;realpath_cache_size = 4096k - -; Duration of time, in seconds for which to cache realpath information for a given -; file or directory. For systems with rarely changing files, consider increasing this -; value. -; http://php.net/realpath-cache-ttl -;realpath_cache_ttl = 120 - -; Enables or disables the circular reference collector. -; http://php.net/zend.enable-gc -zend.enable_gc = On - -; If enabled, scripts may be written in encodings that are incompatible with -; the scanner. CP936, Big5, CP949 and Shift_JIS are the examples of such -; encodings. To use this feature, mbstring extension must be enabled. -; Default: Off -;zend.multibyte = Off - -; Allows to set the default encoding for the scripts. This value will be used -; unless "declare(encoding=...)" directive appears at the top of the script. -; Only affects if zend.multibyte is set. -; Default: "" -;zend.script_encoding = - -;;;;;;;;;;;;;;;;; -; Miscellaneous ; -;;;;;;;;;;;;;;;;; - -; Decides whether PHP may expose the fact that it is installed on the server -; (e.g. by adding its signature to the Web server header). It is no security -; threat in any way, but it makes it possible to determine whether you use PHP -; on your server or not. -; http://php.net/expose-php -expose_php = Off - -;;;;;;;;;;;;;;;;;;; -; Resource Limits ; -;;;;;;;;;;;;;;;;;;; - -; Maximum execution time of each script, in seconds -; http://php.net/max-execution-time -; Note: This directive is hardcoded to 0 for the CLI SAPI -max_execution_time = 30 - -; Maximum amount of time each script may spend parsing request data. It's a good -; idea to limit this time on productions servers in order to eliminate unexpectedly -; long running scripts. -; Note: This directive is hardcoded to -1 for the CLI SAPI -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) -; http://php.net/max-input-time -max_input_time = 60 - -; Maximum input variable nesting level -; http://php.net/max-input-nesting-level -;max_input_nesting_level = 64 - -; How many GET/POST/COOKIE input variables may be accepted -; max_input_vars = 1000 - -; Maximum amount of memory a script may consume (128MB) -; http://php.net/memory-limit -memory_limit = 256M - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; Error handling and logging ; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -; This directive informs PHP of which errors, warnings and notices you would like -; it to take action for. The recommended way of setting values for this -; directive is through the use of the error level constants and bitwise -; operators. The error level constants are below here for convenience as well as -; some common settings and their meanings. -; By default, PHP is set to take action on all errors, notices and warnings EXCEPT -; those related to E_NOTICE and E_STRICT, which together cover best practices and -; recommended coding standards in PHP. For performance reasons, this is the -; recommend error reporting setting. Your production server shouldn't be wasting -; resources complaining about best practices and coding standards. That's what -; development servers and development settings are for. -; Note: The php.ini-development file has this setting as E_ALL. This -; means it pretty much reports everything which is exactly what you want during -; development and early testing. -; -; Error Level Constants: -; E_ALL - All errors and warnings (includes E_STRICT as of PHP 5.4.0) -; E_ERROR - fatal run-time errors -; E_RECOVERABLE_ERROR - almost fatal run-time errors -; E_WARNING - run-time warnings (non-fatal errors) -; E_PARSE - compile-time parse errors -; E_NOTICE - run-time notices (these are warnings which often result -; from a bug in your code, but it's possible that it was -; intentional (e.g., using an uninitialized variable and -; relying on the fact it is automatically initialized to an -; empty string) -; E_STRICT - run-time notices, enable to have PHP suggest changes -; to your code which will ensure the best interoperability -; and forward compatibility of your code -; E_CORE_ERROR - fatal errors that occur during PHP's initial startup -; E_CORE_WARNING - warnings (non-fatal errors) that occur during PHP's -; initial startup -; E_COMPILE_ERROR - fatal compile-time errors -; E_COMPILE_WARNING - compile-time warnings (non-fatal errors) -; E_USER_ERROR - user-generated error message -; E_USER_WARNING - user-generated warning message -; E_USER_NOTICE - user-generated notice message -; E_DEPRECATED - warn about code that will not work in future versions -; of PHP -; E_USER_DEPRECATED - user-generated deprecation warnings -; -; Common Values: -; E_ALL (Show all errors, warnings and notices including coding standards.) -; E_ALL & ~E_NOTICE (Show all errors, except for notices) -; E_ALL & ~E_NOTICE & ~E_STRICT (Show all errors, except for notices and coding standards warnings.) -; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors) -; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT -; http://php.net/error-reporting -error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT - -; This directive controls whether or not and where PHP will output errors, -; notices and warnings too. Error output is very useful during development, but -; it could be very dangerous in production environments. Depending on the code -; which is triggering the error, sensitive information could potentially leak -; out of your application such as database usernames and passwords or worse. -; For production environments, we recommend logging errors rather than -; sending them to STDOUT. -; Possible Values: -; Off = Do not display any errors -; stderr = Display errors to STDERR (affects only CGI/CLI binaries!) -; On or stdout = Display errors to STDOUT -; Default Value: On -; Development Value: On -; Production Value: Off -; http://php.net/display-errors -display_errors = Off - -; The display of errors which occur during PHP's startup sequence are handled -; separately from display_errors. PHP's default behavior is to suppress those -; errors from clients. Turning the display of startup errors on can be useful in -; debugging configuration problems. We strongly recommend you -; set this to 'off' for production servers. -; Default Value: Off -; Development Value: On -; Production Value: Off -; http://php.net/display-startup-errors -display_startup_errors = Off - -; Besides displaying errors, PHP can also log errors to locations such as a -; server-specific log, STDERR, or a location specified by the error_log -; directive found below. While errors should not be displayed on productions -; servers they should still be monitored and logging is a great way to do that. -; Default Value: Off -; Development Value: On -; Production Value: On -; http://php.net/log-errors -log_errors = On - -; Set maximum length of log_errors. In error_log information about the source is -; added. The default is 1024 and 0 allows to not apply any maximum length at all. -; http://php.net/log-errors-max-len -log_errors_max_len = 1024 - -; Do not log repeated messages. Repeated errors must occur in same file on same -; line unless ignore_repeated_source is set true. -; http://php.net/ignore-repeated-errors -ignore_repeated_errors = Off - -; Ignore source of message when ignoring repeated messages. When this setting -; is On you will not log errors with repeated messages from different files or -; source lines. -; http://php.net/ignore-repeated-source -ignore_repeated_source = Off - -; If this parameter is set to Off, then memory leaks will not be shown (on -; stdout or in the log). This has only effect in a debug compile, and if -; error reporting includes E_WARNING in the allowed list -; http://php.net/report-memleaks -report_memleaks = On - -; This setting is on by default. -;report_zend_debug = 0 - -; Store the last error/warning message in $php_errormsg (boolean). Setting this value -; to On can assist in debugging and is appropriate for development servers. It should -; however be disabled on production servers. -; Default Value: Off -; Development Value: On -; Production Value: Off -; http://php.net/track-errors -track_errors = Off - -; Turn off normal error reporting and emit XML-RPC error XML -; http://php.net/xmlrpc-errors -;xmlrpc_errors = 0 - -; An XML-RPC faultCode -;xmlrpc_error_number = 0 - -; When PHP displays or logs an error, it has the capability of formatting the -; error message as HTML for easier reading. This directive controls whether -; the error message is formatted as HTML or not. -; Note: This directive is hardcoded to Off for the CLI SAPI -; Default Value: On -; Development Value: On -; Production value: On -; http://php.net/html-errors -html_errors = On - -; If html_errors is set to On *and* docref_root is not empty, then PHP -; produces clickable error messages that direct to a page describing the error -; or function causing the error in detail. -; You can download a copy of the PHP manual from http://php.net/docs -; and change docref_root to the base URL of your local copy including the -; leading '/'. You must also specify the file extension being used including -; the dot. PHP's default behavior is to leave these settings empty, in which -; case no links to documentation are generated. -; Note: Never use this feature for production boxes. -; http://php.net/docref-root -; Examples -;docref_root = "/phpmanual/" - -; http://php.net/docref-ext -;docref_ext = .html - -; String to output before an error message. PHP's default behavior is to leave -; this setting blank. -; http://php.net/error-prepend-string -; Example: -;error_prepend_string = "" - -; String to output after an error message. PHP's default behavior is to leave -; this setting blank. -; http://php.net/error-append-string -; Example: -;error_append_string = "" - -; Log errors to specified file. PHP's default behavior is to leave this value -; empty. -; http://php.net/error-log -; Example: -;error_log = php_errors.log -; Log errors to syslog (Event Log on Windows). -error_log = /var/log/php/php.error.log - -;windows.show_crt_warning -; Default value: 0 -; Development value: 0 -; Production value: 0 - -;;;;;;;;;;;;;;;;; -; Data Handling ; -;;;;;;;;;;;;;;;;; - -; The separator used in PHP generated URLs to separate arguments. -; PHP's default setting is "&". -; http://php.net/arg-separator.output -; Example: -;arg_separator.output = "&" - -; List of separator(s) used by PHP to parse input URLs into variables. -; PHP's default setting is "&". -; NOTE: Every character in this directive is considered as separator! -; http://php.net/arg-separator.input -; Example: -;arg_separator.input = ";&" - -; This directive determines which super global arrays are registered when PHP -; starts up. G,P,C,E & S are abbreviations for the following respective super -; globals: GET, POST, COOKIE, ENV and SERVER. There is a performance penalty -; paid for the registration of these arrays and because ENV is not as commonly -; used as the others, ENV is not recommended on productions servers. You -; can still get access to the environment variables through getenv() should you -; need to. -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS"; -; http://php.net/variables-order -variables_order = "GPCS" - -; This directive determines which super global data (G,P & C) should be -; registered into the super global array REQUEST. If so, it also determines -; the order in which that data is registered. The values for this directive -; are specified in the same manner as the variables_order directive, -; EXCEPT one. Leaving this value empty will cause PHP to use the value set -; in the variables_order directive. It does not mean it will leave the super -; globals array REQUEST empty. -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" -; http://php.net/request-order -request_order = "GP" - -; This directive determines whether PHP registers $argv & $argc each time it -; runs. $argv contains an array of all the arguments passed to PHP when a script -; is invoked. $argc contains an integer representing the number of arguments -; that were passed when the script was invoked. These arrays are extremely -; useful when running scripts from the command line. When this directive is -; enabled, registering these variables consumes CPU cycles and memory each time -; a script is executed. For performance reasons, this feature should be disabled -; on production servers. -; Note: This directive is hardcoded to On for the CLI SAPI -; Default Value: On -; Development Value: Off -; Production Value: Off -; http://php.net/register-argc-argv -register_argc_argv = Off - -; When enabled, the ENV, REQUEST and SERVER variables are created when they're -; first used (Just In Time) instead of when the script starts. If these -; variables are not used within a script, having this directive on will result -; in a performance gain. The PHP directive register_argc_argv must be disabled -; for this directive to have any affect. -; http://php.net/auto-globals-jit -auto_globals_jit = On - -; Whether PHP will read the POST data. -; This option is enabled by default. -; Most likely, you won't want to disable this option globally. It causes $_POST -; and $_FILES to always be empty; the only way you will be able to read the -; POST data will be through the php://input stream wrapper. This can be useful -; to proxy requests or to process the POST data in a memory efficient fashion. -; http://php.net/enable-post-data-reading -;enable_post_data_reading = Off - -; Maximum size of POST data that PHP will accept. -; Its value may be 0 to disable the limit. It is ignored if POST data reading -; is disabled through enable_post_data_reading. -; http://php.net/post-max-size -post_max_size = 100M - -; Automatically add files before PHP document. -; http://php.net/auto-prepend-file -auto_prepend_file = - -; Automatically add files after PHP document. -; http://php.net/auto-append-file -auto_append_file = - -; By default, PHP will output a media type using the Content-Type header. To -; disable this, simply set it to be empty. -; -; PHP's built-in default media type is set to text/html. -; http://php.net/default-mimetype -default_mimetype = "text/html" - -; PHP's default character set is set to UTF-8. -; http://php.net/default-charset -default_charset = "UTF-8" - -; PHP internal character encoding is set to empty. -; If empty, default_charset is used. -; http://php.net/internal-encoding -;internal_encoding = - -; PHP input character encoding is set to empty. -; If empty, default_charset is used. -; http://php.net/input-encoding -;input_encoding = - -; PHP output character encoding is set to empty. -; If empty, default_charset is used. -; See also output_buffer. -; http://php.net/output-encoding -;output_encoding = - -;;;;;;;;;;;;;;;;;;;;;;;;; -; Paths and Directories ; -;;;;;;;;;;;;;;;;;;;;;;;;; - -; UNIX: "/path1:/path2" -;include_path = ".:/php/includes" -; -; Windows: "\path1;\path2" -;include_path = ".;c:\php\includes" -; -; PHP's default setting for include_path is ".;/path/to/php/pear" -; http://php.net/include-path - -; The root of the PHP pages, used only if nonempty. -; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root -; if you are running php as a CGI under any web server (other than IIS) -; see documentation for security issues. The alternate is to use the -; cgi.force_redirect configuration below -; http://php.net/doc-root -doc_root = - -; The directory under which PHP opens the script using /~username used only -; if nonempty. -; http://php.net/user-dir -user_dir = - -; Directory in which the loadable extensions (modules) reside. -; http://php.net/extension-dir -; extension_dir = "./" -; On windows: -; extension_dir = "ext" - -; Directory where the temporary files should be placed. -; Defaults to the system default (see sys_get_temp_dir) -; sys_temp_dir = "/tmp" - -; Whether or not to enable the dl() function. The dl() function does NOT work -; properly in multithreaded servers, such as IIS or Zeus, and is automatically -; disabled on them. -; http://php.net/enable-dl -enable_dl = Off - -; cgi.force_redirect is necessary to provide security running PHP as a CGI under -; most web servers. Left undefined, PHP turns this on by default. You can -; turn it off here AT YOUR OWN RISK -; **You CAN safely turn this off for IIS, in fact, you MUST.** -; http://php.net/cgi.force-redirect -;cgi.force_redirect = 1 - -; if cgi.nph is enabled it will force cgi to always sent Status: 200 with -; every request. PHP's default behavior is to disable this feature. -;cgi.nph = 1 - -; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape -; (iPlanet) web servers, you MAY need to set an environment variable name that PHP -; will look for to know it is OK to continue execution. Setting this variable MAY -; cause security issues, KNOW WHAT YOU ARE DOING FIRST. -; http://php.net/cgi.redirect-status-env -;cgi.redirect_status_env = - -; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's -; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok -; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting -; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting -; of zero causes PHP to behave as before. Default is 1. You should fix your scripts -; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. -; http://php.net/cgi.fix-pathinfo -;cgi.fix_pathinfo=1 - -; if cgi.discard_path is enabled, the PHP CGI binary can safely be placed outside -; of the web tree and people will not be able to circumvent .htaccess security. -; http://php.net/cgi.dicard-path -;cgi.discard_path=1 - -; FastCGI under IIS (on WINNT based OS) supports the ability to impersonate -; security tokens of the calling client. This allows IIS to define the -; security context that the request runs under. mod_fastcgi under Apache -; does not currently support this feature (03/17/2002) -; Set to 1 if running under IIS. Default is zero. -; http://php.net/fastcgi.impersonate -;fastcgi.impersonate = 1 - -; Disable logging through FastCGI connection. PHP's default behavior is to enable -; this feature. -;fastcgi.logging = 0 - -; cgi.rfc2616_headers configuration option tells PHP what type of headers to -; use when sending HTTP response code. If set to 0, PHP sends Status: header that -; is supported by Apache. When this option is set to 1, PHP will send -; RFC2616 compliant header. -; Default is zero. -; http://php.net/cgi.rfc2616-headers -;cgi.rfc2616_headers = 0 - -; cgi.check_shebang_line controls whether CGI PHP checks for line starting with #! -; (shebang) at the top of the running script. This line might be needed if the -; script support running both as stand-alone script and via PHP CGI<. PHP in CGI -; mode skips this line and ignores its content if this directive is turned on. -; http://php.net/cgi.check-shebang-line -;cgi.check_shebang_line=1 - -;;;;;;;;;;;;;;;; -; File Uploads ; -;;;;;;;;;;;;;;;; - -; Whether to allow HTTP file uploads. -; http://php.net/file-uploads -file_uploads = On - -; Temporary directory for HTTP uploaded files (will use system default if not -; specified). -; http://php.net/upload-tmp-dir -;upload_tmp_dir = - -; Maximum allowed size for uploaded files. -; http://php.net/upload-max-filesize -upload_max_filesize = 50M - -; Maximum number of files that can be uploaded via a single request -max_file_uploads = 20 - -;;;;;;;;;;;;;;;;;; -; Fopen wrappers ; -;;;;;;;;;;;;;;;;;; - -; Whether to allow the treatment of URLs (like http:// or ftp://) as files. -; http://php.net/allow-url-fopen -allow_url_fopen = On - -; Whether to allow include/require to open URLs (like http:// or ftp://) as files. -; http://php.net/allow-url-include -allow_url_include = Off - -; Define the anonymous ftp password (your email address). PHP's default setting -; for this is empty. -; http://php.net/from -;from="john@doe.com" - -; Define the User-Agent string. PHP's default setting for this is empty. -; http://php.net/user-agent -;user_agent="PHP" - -; Default timeout for socket based streams (seconds) -; http://php.net/default-socket-timeout -default_socket_timeout = 60 - -; If your scripts have to deal with files from Macintosh systems, -; or you are running on a Mac and need to deal with files from -; unix or win32 systems, setting this flag will cause PHP to -; automatically detect the EOL character in those files so that -; fgets() and file() will work regardless of the source of the file. -; http://php.net/auto-detect-line-endings -;auto_detect_line_endings = Off - -;;;;;;;;;;;;;;;;;;;;;; -; Dynamic Extensions ; -;;;;;;;;;;;;;;;;;;;;;; - -; If you wish to have an extension loaded automatically, use the following -; syntax: -; -; extension=modulename.extension -; -; For example, on Windows: -; -; extension=mysqli.dll -; -; ... or under UNIX: -; -; extension=mysqli.so -; -; ... or with a path: -; -; extension=/path/to/extension/mysqli.so -; -; If you only provide the name of the extension, PHP will look for it in its -; default extension directory. -; -; Windows Extensions -; Note that ODBC support is built in, so no dll is needed for it. -; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5+) -; extension folders as well as the separate PECL DLL download (PHP 5+). -; Be sure to appropriately set the extension_dir directive. -; -;extension=php_bz2.dll -;extension=php_curl.dll -;extension=php_fileinfo.dll -;extension=php_ftp.dll -;extension=php_gd2.dll -;extension=php_gettext.dll -;extension=php_gmp.dll -;extension=php_intl.dll -;extension=php_imap.dll -;extension=php_interbase.dll -;extension=php_ldap.dll -;extension=php_mbstring.dll -;extension=php_exif.dll ; Must be after mbstring as it depends on it -;extension=php_mysqli.dll -;extension=php_oci8_12c.dll ; Use with Oracle Database 12c Instant Client -;extension=php_openssl.dll -;extension=php_pdo_firebird.dll -;extension=php_pdo_mysql.dll -;extension=php_pdo_oci.dll -;extension=php_pdo_odbc.dll -;extension=php_pdo_pgsql.dll -;extension=php_pdo_sqlite.dll -;extension=php_pgsql.dll -;extension=php_shmop.dll - -; The MIBS data available in the PHP distribution must be installed. -; See http://www.php.net/manual/en/snmp.installation.php -;extension=php_snmp.dll - -;extension=php_soap.dll -;extension=php_sockets.dll -;extension=php_sqlite3.dll -;extension=php_tidy.dll -;extension=php_xmlrpc.dll -;extension=php_xsl.dll - -;;;;;;;;;;;;;;;;;;; -; Module Settings ; -;;;;;;;;;;;;;;;;;;; - -[CLI Server] -; Whether the CLI web server uses ANSI color coding in its terminal output. -cli_server.color = On - -[Date] -; Defines the default timezone used by the date functions -; http://php.net/date.timezone -date.timezone = Asia/Shanghai - -; http://php.net/date.default-latitude -;date.default_latitude = 31.7667 - -; http://php.net/date.default-longitude -;date.default_longitude = 35.2333 - -; http://php.net/date.sunrise-zenith -;date.sunrise_zenith = 90.583333 - -; http://php.net/date.sunset-zenith -;date.sunset_zenith = 90.583333 - -[filter] -; http://php.net/filter.default -;filter.default = unsafe_raw - -; http://php.net/filter.default-flags -;filter.default_flags = - -[iconv] -; Use of this INI entry is deprecated, use global input_encoding instead. -; If empty, default_charset or input_encoding or iconv.input_encoding is used. -; The precedence is: default_charset < intput_encoding < iconv.input_encoding -;iconv.input_encoding = - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;iconv.internal_encoding = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; If empty, default_charset or output_encoding or iconv.output_encoding is used. -; The precedence is: default_charset < output_encoding < iconv.output_encoding -; To use an output encoding conversion, iconv's output handler must be set -; otherwise output encoding conversion cannot be performed. -;iconv.output_encoding = - -[intl] -;intl.default_locale = -; This directive allows you to produce PHP errors when some error -; happens within intl functions. The value is the level of the error produced. -; Default is 0, which does not produce any errors. -;intl.error_level = E_WARNING -;intl.use_exceptions = 0 - -[sqlite3] -;sqlite3.extension_dir = - -[Pcre] -;PCRE library backtracking limit. -; http://php.net/pcre.backtrack-limit -;pcre.backtrack_limit=100000 - -;PCRE library recursion limit. -;Please note that if you set this value to a high number you may consume all -;the available process stack and eventually crash PHP (due to reaching the -;stack size limit imposed by the Operating System). -; http://php.net/pcre.recursion-limit -;pcre.recursion_limit=100000 - -;Enables or disables JIT compilation of patterns. This requires the PCRE -;library to be compiled with JIT support. -;pcre.jit=1 - -[Pdo] -; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off" -; http://php.net/pdo-odbc.connection-pooling -;pdo_odbc.connection_pooling=strict - -;pdo_odbc.db2_instance_name - -[Pdo_mysql] -; If mysqlnd is used: Number of cache slots for the internal result set cache -; http://php.net/pdo_mysql.cache_size -pdo_mysql.cache_size = 2000 - -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -; http://php.net/pdo_mysql.default-socket -pdo_mysql.default_socket= - -[Phar] -; http://php.net/phar.readonly -;phar.readonly = On - -; http://php.net/phar.require-hash -;phar.require_hash = On - -;phar.cache_list = - -[mail function] -; For Win32 only. -; http://php.net/smtp -SMTP = localhost -; http://php.net/smtp-port -smtp_port = 25 - -; For Win32 only. -; http://php.net/sendmail-from -;sendmail_from = me@example.com - -; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). -; http://php.net/sendmail-path -;sendmail_path = - -; Force the addition of the specified parameters to be passed as extra parameters -; to the sendmail binary. These parameters will always replace the value of -; the 5th parameter to mail(). -;mail.force_extra_parameters = - -; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename -mail.add_x_header = On - -; The path to a log file that will log all mail() calls. Log entries include -; the full path of the script, line number, To address and headers. -;mail.log = -; Log mail to syslog (Event Log on Windows). -;mail.log = syslog - -[ODBC] -; http://php.net/odbc.default-db -;odbc.default_db = Not yet implemented - -; http://php.net/odbc.default-user -;odbc.default_user = Not yet implemented - -; http://php.net/odbc.default-pw -;odbc.default_pw = Not yet implemented - -; Controls the ODBC cursor model. -; Default: SQL_CURSOR_STATIC (default). -;odbc.default_cursortype - -; Allow or prevent persistent links. -; http://php.net/odbc.allow-persistent -odbc.allow_persistent = On - -; Check that a connection is still valid before reuse. -; http://php.net/odbc.check-persistent -odbc.check_persistent = On - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/odbc.max-persistent -odbc.max_persistent = -1 - -; Maximum number of links (persistent + non-persistent). -1 means no limit. -; http://php.net/odbc.max-links -odbc.max_links = -1 - -; Handling of LONG fields. Returns number of bytes to variables. 0 means -; passthru. -; http://php.net/odbc.defaultlrl -odbc.defaultlrl = 4096 - -; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char. -; See the documentation on odbc_binmode and odbc_longreadlen for an explanation -; of odbc.defaultlrl and odbc.defaultbinmode -; http://php.net/odbc.defaultbinmode -odbc.defaultbinmode = 1 - -;birdstep.max_links = -1 - -[Interbase] -; Allow or prevent persistent links. -ibase.allow_persistent = 1 - -; Maximum number of persistent links. -1 means no limit. -ibase.max_persistent = -1 - -; Maximum number of links (persistent + non-persistent). -1 means no limit. -ibase.max_links = -1 - -; Default database name for ibase_connect(). -;ibase.default_db = - -; Default username for ibase_connect(). -;ibase.default_user = - -; Default password for ibase_connect(). -;ibase.default_password = - -; Default charset for ibase_connect(). -;ibase.default_charset = - -; Default timestamp format. -ibase.timestampformat = "%Y-%m-%d %H:%M:%S" - -; Default date format. -ibase.dateformat = "%Y-%m-%d" - -; Default time format. -ibase.timeformat = "%H:%M:%S" - -[MySQLi] - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/mysqli.max-persistent -mysqli.max_persistent = -1 - -; Allow accessing, from PHP's perspective, local files with LOAD DATA statements -; http://php.net/mysqli.allow_local_infile -;mysqli.allow_local_infile = On - -; Allow or prevent persistent links. -; http://php.net/mysqli.allow-persistent -mysqli.allow_persistent = On - -; Maximum number of links. -1 means no limit. -; http://php.net/mysqli.max-links -mysqli.max_links = -1 - -; If mysqlnd is used: Number of cache slots for the internal result set cache -; http://php.net/mysqli.cache_size -mysqli.cache_size = 2000 - -; Default port number for mysqli_connect(). If unset, mysqli_connect() will use -; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the -; compile-time value defined MYSQL_PORT (in that order). Win32 will only look -; at MYSQL_PORT. -; http://php.net/mysqli.default-port -mysqli.default_port = 3306 - -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -; http://php.net/mysqli.default-socket -mysqli.default_socket = - -; Default host for mysql_connect() (doesn't apply in safe mode). -; http://php.net/mysqli.default-host -mysqli.default_host = - -; Default user for mysql_connect() (doesn't apply in safe mode). -; http://php.net/mysqli.default-user -mysqli.default_user = - -; Default password for mysqli_connect() (doesn't apply in safe mode). -; Note that this is generally a *bad* idea to store passwords in this file. -; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw") -; and reveal this password! And of course, any users with read access to this -; file will be able to reveal the password as well. -; http://php.net/mysqli.default-pw -mysqli.default_pw = - -; Allow or prevent reconnect -mysqli.reconnect = Off - -[mysqlnd] -; Enable / Disable collection of general statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -; http://php.net/mysqlnd.collect_statistics -mysqlnd.collect_statistics = On - -; Enable / Disable collection of memory usage statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -; http://php.net/mysqlnd.collect_memory_statistics -mysqlnd.collect_memory_statistics = Off - -; Records communication from all extensions using mysqlnd to the specified log -; file. -; http://php.net/mysqlnd.debug -;mysqlnd.debug = - -; Defines which queries will be logged. -; http://php.net/mysqlnd.log_mask -;mysqlnd.log_mask = 0 - -; Default size of the mysqlnd memory pool, which is used by result sets. -; http://php.net/mysqlnd.mempool_default_size -;mysqlnd.mempool_default_size = 16000 - -; Size of a pre-allocated buffer used when sending commands to MySQL in bytes. -; http://php.net/mysqlnd.net_cmd_buffer_size -;mysqlnd.net_cmd_buffer_size = 2048 - -; Size of a pre-allocated buffer used for reading data sent by the server in -; bytes. -; http://php.net/mysqlnd.net_read_buffer_size -;mysqlnd.net_read_buffer_size = 32768 - -; Timeout for network requests in seconds. -; http://php.net/mysqlnd.net_read_timeout -;mysqlnd.net_read_timeout = 31536000 - -; SHA-256 Authentication Plugin related. File with the MySQL server public RSA -; key. -; http://php.net/mysqlnd.sha256_server_public_key -;mysqlnd.sha256_server_public_key = - -[OCI8] - -; Connection: Enables privileged connections using external -; credentials (OCI_SYSOPER, OCI_SYSDBA) -; http://php.net/oci8.privileged-connect -;oci8.privileged_connect = Off - -; Connection: The maximum number of persistent OCI8 connections per -; process. Using -1 means no limit. -; http://php.net/oci8.max-persistent -;oci8.max_persistent = -1 - -; Connection: The maximum number of seconds a process is allowed to -; maintain an idle persistent connection. Using -1 means idle -; persistent connections will be maintained forever. -; http://php.net/oci8.persistent-timeout -;oci8.persistent_timeout = -1 - -; Connection: The number of seconds that must pass before issuing a -; ping during oci_pconnect() to check the connection validity. When -; set to 0, each oci_pconnect() will cause a ping. Using -1 disables -; pings completely. -; http://php.net/oci8.ping-interval -;oci8.ping_interval = 60 - -; Connection: Set this to a user chosen connection class to be used -; for all pooled server requests with Oracle 11g Database Resident -; Connection Pooling (DRCP). To use DRCP, this value should be set to -; the same string for all web servers running the same application, -; the database pool must be configured, and the connection string must -; specify to use a pooled server. -;oci8.connection_class = - -; High Availability: Using On lets PHP receive Fast Application -; Notification (FAN) events generated when a database node fails. The -; database must also be configured to post FAN events. -;oci8.events = Off - -; Tuning: This option enables statement caching, and specifies how -; many statements to cache. Using 0 disables statement caching. -; http://php.net/oci8.statement-cache-size -;oci8.statement_cache_size = 20 - -; Tuning: Enables statement prefetching and sets the default number of -; rows that will be fetched automatically after statement execution. -; http://php.net/oci8.default-prefetch -;oci8.default_prefetch = 100 - -; Compatibility. Using On means oci_close() will not close -; oci_connect() and oci_new_connect() connections. -; http://php.net/oci8.old-oci-close-semantics -;oci8.old_oci_close_semantics = Off - -[PostgreSQL] -; Allow or prevent persistent links. -; http://php.net/pgsql.allow-persistent -pgsql.allow_persistent = On - -; Detect broken persistent links always with pg_pconnect(). -; Auto reset feature requires a little overheads. -; http://php.net/pgsql.auto-reset-persistent -pgsql.auto_reset_persistent = Off - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/pgsql.max-persistent -pgsql.max_persistent = -1 - -; Maximum number of links (persistent+non persistent). -1 means no limit. -; http://php.net/pgsql.max-links -pgsql.max_links = -1 - -; Ignore PostgreSQL backends Notice message or not. -; Notice message logging require a little overheads. -; http://php.net/pgsql.ignore-notice -pgsql.ignore_notice = 0 - -; Log PostgreSQL backends Notice message or not. -; Unless pgsql.ignore_notice=0, module cannot log notice message. -; http://php.net/pgsql.log-notice -pgsql.log_notice = 0 - -[bcmath] -; Number of decimal digits for all bcmath functions. -; http://php.net/bcmath.scale -bcmath.scale = 0 - -[browscap] -; http://php.net/browscap -;browscap = extra/browscap.ini - -[Session] -; Handler used to store/retrieve data. -; http://php.net/session.save-handler -session.save_handler = files - -; Argument passed to save_handler. In the case of files, this is the path -; where data files are stored. Note: Windows users have to change this -; variable in order to use PHP's session functions. -; -; The path can be defined as: -; -; session.save_path = "N;/path" -; -; where N is an integer. Instead of storing all the session files in -; /path, what this will do is use subdirectories N-levels deep, and -; store the session data in those directories. This is useful if -; your OS has problems with many files in one directory, and is -; a more efficient layout for servers that handle many sessions. -; -; NOTE 1: PHP will not create this directory structure automatically. -; You can use the script in the ext/session dir for that purpose. -; NOTE 2: See the section on garbage collection below if you choose to -; use subdirectories for session storage -; -; The file storage module creates files using mode 600 by default. -; You can change that by using -; -; session.save_path = "N;MODE;/path" -; -; where MODE is the octal representation of the mode. Note that this -; does not overwrite the process's umask. -; http://php.net/session.save-path -;session.save_path = "/tmp" - -; Whether to use strict session mode. -; Strict session mode does not accept uninitialized session ID and regenerate -; session ID if browser sends uninitialized session ID. Strict mode protects -; applications from session fixation via session adoption vulnerability. It is -; disabled by default for maximum compatibility, but enabling it is encouraged. -; https://wiki.php.net/rfc/strict_sessions -session.use_strict_mode = 0 - -; Whether to use cookies. -; http://php.net/session.use-cookies -session.use_cookies = 1 - -; http://php.net/session.cookie-secure -;session.cookie_secure = - -; This option forces PHP to fetch and use a cookie for storing and maintaining -; the session id. We encourage this operation as it's very helpful in combating -; session hijacking when not specifying and managing your own session id. It is -; not the be-all and end-all of session hijacking defense, but it's a good start. -; http://php.net/session.use-only-cookies -session.use_only_cookies = 1 - -; Name of the session (used as cookie name). -; http://php.net/session.name -session.name = PHPSESSID - -; Initialize session on request startup. -; http://php.net/session.auto-start -session.auto_start = 0 - -; Lifetime in seconds of cookie or, if 0, until browser is restarted. -; http://php.net/session.cookie-lifetime -session.cookie_lifetime = 0 - -; The path for which the cookie is valid. -; http://php.net/session.cookie-path -session.cookie_path = / - -; The domain for which the cookie is valid. -; http://php.net/session.cookie-domain -session.cookie_domain = - -; Whether or not to add the httpOnly flag to the cookie, which makes it inaccessible to browser scripting languages such as JavaScript. -; http://php.net/session.cookie-httponly -session.cookie_httponly = - -; Handler used to serialize data. php is the standard serializer of PHP. -; http://php.net/session.serialize-handler -session.serialize_handler = php - -; Defines the probability that the 'garbage collection' process is started -; on every session initialization. The probability is calculated by using -; gc_probability/gc_divisor. Where session.gc_probability is the numerator -; and gc_divisor is the denominator in the equation. Setting this value to 1 -; when the session.gc_divisor value is 100 will give you approximately a 1% chance -; the gc will run on any give request. -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; http://php.net/session.gc-probability -session.gc_probability = 1 - -; Defines the probability that the 'garbage collection' process is started on every -; session initialization. The probability is calculated by using the following equation: -; gc_probability/gc_divisor. Where session.gc_probability is the numerator and -; session.gc_divisor is the denominator in the equation. Setting this value to 1 -; when the session.gc_divisor value is 100 will give you approximately a 1% chance -; the gc will run on any give request. Increasing this value to 1000 will give you -; a 0.1% chance the gc will run on any give request. For high volume production servers, -; this is a more efficient approach. -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 -; http://php.net/session.gc-divisor -session.gc_divisor = 1000 - -; After this number of seconds, stored data will be seen as 'garbage' and -; cleaned up by the garbage collection process. -; http://php.net/session.gc-maxlifetime -session.gc_maxlifetime = 1440 - -; NOTE: If you are using the subdirectory option for storing session files -; (see session.save_path above), then garbage collection does *not* -; happen automatically. You will need to do your own garbage -; collection through a shell script, cron entry, or some other method. -; For example, the following script would is the equivalent of -; setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes): -; find /path/to/sessions -cmin +24 -type f | xargs rm - -; Check HTTP Referer to invalidate externally stored URLs containing ids. -; HTTP_REFERER has to contain this substring for the session to be -; considered as valid. -; http://php.net/session.referer-check -session.referer_check = - -; Set to {nocache,private,public,} to determine HTTP caching aspects -; or leave this empty to avoid sending anti-caching headers. -; http://php.net/session.cache-limiter -session.cache_limiter = nocache - -; Document expires after n minutes. -; http://php.net/session.cache-expire -session.cache_expire = 180 - -; trans sid support is disabled by default. -; Use of trans sid may risk your users' security. -; Use this option with caution. -; - User may send URL contains active session ID -; to other person via. email/irc/etc. -; - URL that contains active session ID may be stored -; in publicly accessible computer. -; - User may access your site with the same session ID -; always using URL stored in browser's history or bookmarks. -; http://php.net/session.use-trans-sid -session.use_trans_sid = 0 - -; Set session ID character length. This value could be between 22 to 256. -; Shorter length than default is supported only for compatibility reason. -; Users should use 32 or more chars. -; http://php.net/session.sid-length -; Default Value: 32 -; Development Value: 26 -; Production Value: 26 -session.sid_length = 26 - -; The URL rewriter will look for URLs in a defined set of HTML tags. -; is special; if you include them here, the rewriter will -; add a hidden field with the info which is otherwise appended -; to URLs. tag's action attribute URL will not be modified -; unless it is specified. -; Note that all valid entries require a "=", even if no value follows. -; Default Value: "a=href,area=href,frame=src,form=" -; Development Value: "a=href,area=href,frame=src,form=" -; Production Value: "a=href,area=href,frame=src,form=" -; http://php.net/url-rewriter.tags -session.trans_sid_tags = "a=href,area=href,frame=src,form=" - -; URL rewriter does not rewrite absolute URLs by default. -; To enable rewrites for absolute pathes, target hosts must be specified -; at RUNTIME. i.e. use ini_set() -; tags is special. PHP will check action attribute's URL regardless -; of session.trans_sid_tags setting. -; If no host is defined, HTTP_HOST will be used for allowed host. -; Example value: php.net,www.php.net,wiki.php.net -; Use "," for multiple hosts. No spaces are allowed. -; Default Value: "" -; Development Value: "" -; Production Value: "" -;session.trans_sid_hosts="" - -; Define how many bits are stored in each character when converting -; the binary hash data to something readable. -; Possible values: -; 4 (4 bits: 0-9, a-f) -; 5 (5 bits: 0-9, a-v) -; 6 (6 bits: 0-9, a-z, A-Z, "-", ",") -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 -; http://php.net/session.hash-bits-per-character -session.sid_bits_per_character = 5 - -; Enable upload progress tracking in $_SESSION -; Default Value: On -; Development Value: On -; Production Value: On -; http://php.net/session.upload-progress.enabled -;session.upload_progress.enabled = On - -; Cleanup the progress information as soon as all POST data has been read -; (i.e. upload completed). -; Default Value: On -; Development Value: On -; Production Value: On -; http://php.net/session.upload-progress.cleanup -;session.upload_progress.cleanup = On - -; A prefix used for the upload progress key in $_SESSION -; Default Value: "upload_progress_" -; Development Value: "upload_progress_" -; Production Value: "upload_progress_" -; http://php.net/session.upload-progress.prefix -;session.upload_progress.prefix = "upload_progress_" - -; The index name (concatenated with the prefix) in $_SESSION -; containing the upload progress information -; Default Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Development Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Production Value: "PHP_SESSION_UPLOAD_PROGRESS" -; http://php.net/session.upload-progress.name -;session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS" - -; How frequently the upload progress should be updated. -; Given either in percentages (per-file), or in bytes -; Default Value: "1%" -; Development Value: "1%" -; Production Value: "1%" -; http://php.net/session.upload-progress.freq -;session.upload_progress.freq = "1%" - -; The minimum delay between updates, in seconds -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; http://php.net/session.upload-progress.min-freq -;session.upload_progress.min_freq = "1" - -; Only write session data when session data is changed. Enabled by default. -; http://php.net/session.lazy-write -;session.lazy_write = On - -[Assertion] -; Switch whether to compile assertions at all (to have no overhead at run-time) -; -1: Do not compile at all -; 0: Jump over assertion at run-time -; 1: Execute assertions -; Changing from or to a negative value is only possible in php.ini! (For turning assertions on and off at run-time, see assert.active, when zend.assertions = 1) -; Default Value: 1 -; Development Value: 1 -; Production Value: -1 -; http://php.net/zend.assertions -zend.assertions = -1 - -; Assert(expr); active by default. -; http://php.net/assert.active -;assert.active = On - -; Throw an AssertationException on failed assertions -; http://php.net/assert.exception -;assert.exception = On - -; Issue a PHP warning for each failed assertion. (Overridden by assert.exception if active) -; http://php.net/assert.warning -;assert.warning = On - -; Don't bail out by default. -; http://php.net/assert.bail -;assert.bail = Off - -; User-function to be called if an assertion fails. -; http://php.net/assert.callback -;assert.callback = 0 - -; Eval the expression with current error_reporting(). Set to true if you want -; error_reporting(0) around the eval(). -; http://php.net/assert.quiet-eval -;assert.quiet_eval = 0 - -[COM] -; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs -; http://php.net/com.typelib-file -;com.typelib_file = - -; allow Distributed-COM calls -; http://php.net/com.allow-dcom -;com.allow_dcom = true - -; autoregister constants of a components typlib on com_load() -; http://php.net/com.autoregister-typelib -;com.autoregister_typelib = true - -; register constants casesensitive -; http://php.net/com.autoregister-casesensitive -;com.autoregister_casesensitive = false - -; show warnings on duplicate constant registrations -; http://php.net/com.autoregister-verbose -;com.autoregister_verbose = true - -; The default character set code-page to use when passing strings to and from COM objects. -; Default: system ANSI code page -;com.code_page= - -[mbstring] -; language for internal character representation. -; This affects mb_send_mail() and mbstring.detect_order. -; http://php.net/mbstring.language -;mbstring.language = Japanese - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; internal/script encoding. -; Some encoding cannot work as internal encoding. (e.g. SJIS, BIG5, ISO-2022-*) -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;mbstring.internal_encoding = - -; Use of this INI entry is deprecated, use global input_encoding instead. -; http input encoding. -; mbstring.encoding_traslation = On is needed to use this setting. -; If empty, default_charset or input_encoding or mbstring.input is used. -; The precedence is: default_charset < intput_encoding < mbsting.http_input -; http://php.net/mbstring.http-input -;mbstring.http_input = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; http output encoding. -; mb_output_handler must be registered as output buffer to function. -; If empty, default_charset or output_encoding or mbstring.http_output is used. -; The precedence is: default_charset < output_encoding < mbstring.http_output -; To use an output encoding conversion, mbstring's output handler must be set -; otherwise output encoding conversion cannot be performed. -; http://php.net/mbstring.http-output -;mbstring.http_output = - -; enable automatic encoding translation according to -; mbstring.internal_encoding setting. Input chars are -; converted to internal encoding by setting this to On. -; Note: Do _not_ use automatic encoding translation for -; portable libs/applications. -; http://php.net/mbstring.encoding-translation -;mbstring.encoding_translation = Off - -; automatic encoding detection order. -; "auto" detect order is changed according to mbstring.language -; http://php.net/mbstring.detect-order -;mbstring.detect_order = auto - -; substitute_character used when character cannot be converted -; one from another -; http://php.net/mbstring.substitute-character -;mbstring.substitute_character = none - -; overload(replace) single byte functions by mbstring functions. -; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(), -; etc. Possible values are 0,1,2,4 or combination of them. -; For example, 7 for overload everything. -; 0: No overload -; 1: Overload mail() function -; 2: Overload str*() functions -; 4: Overload ereg*() functions -; http://php.net/mbstring.func-overload -;mbstring.func_overload = 0 - -; enable strict encoding detection. -; Default: Off -;mbstring.strict_detection = On - -; This directive specifies the regex pattern of content types for which mb_output_handler() -; is activated. -; Default: mbstring.http_output_conv_mimetype=^(text/|application/xhtml\+xml) -;mbstring.http_output_conv_mimetype= - -[gd] -; Tell the jpeg decode to ignore warnings and try to create -; a gd image. The warning will then be displayed as notices -; disabled by default -; http://php.net/gd.jpeg-ignore-warning -;gd.jpeg_ignore_warning = 1 - -[exif] -; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS. -; With mbstring support this will automatically be converted into the encoding -; given by corresponding encode setting. When empty mbstring.internal_encoding -; is used. For the decode settings you can distinguish between motorola and -; intel byte order. A decode setting cannot be empty. -; http://php.net/exif.encode-unicode -;exif.encode_unicode = ISO-8859-15 - -; http://php.net/exif.decode-unicode-motorola -;exif.decode_unicode_motorola = UCS-2BE - -; http://php.net/exif.decode-unicode-intel -;exif.decode_unicode_intel = UCS-2LE - -; http://php.net/exif.encode-jis -;exif.encode_jis = - -; http://php.net/exif.decode-jis-motorola -;exif.decode_jis_motorola = JIS - -; http://php.net/exif.decode-jis-intel -;exif.decode_jis_intel = JIS - -[Tidy] -; The path to a default tidy configuration file to use when using tidy -; http://php.net/tidy.default-config -;tidy.default_config = /usr/local/lib/php/default.tcfg - -; Should tidy clean and repair output automatically? -; WARNING: Do not use this option if you are generating non-html content -; such as dynamic images -; http://php.net/tidy.clean-output -tidy.clean_output = Off - -[soap] -; Enables or disables WSDL caching feature. -; http://php.net/soap.wsdl-cache-enabled -soap.wsdl_cache_enabled=1 - -; Sets the directory name where SOAP extension will put cache files. -; http://php.net/soap.wsdl-cache-dir -soap.wsdl_cache_dir="/tmp" - -; (time to live) Sets the number of second while cached file will be used -; instead of original one. -; http://php.net/soap.wsdl-cache-ttl -soap.wsdl_cache_ttl=86400 - -; Sets the size of the cache limit. (Max. number of WSDL files to cache) -soap.wsdl_cache_limit = 5 - -[sysvshm] -; A default size of the shared memory segment -;sysvshm.init_mem = 10000 - -[ldap] -; Sets the maximum number of open links or -1 for unlimited. -ldap.max_links = -1 - -[dba] -;dba.default_handler= - -[opcache] -; Determines if Zend OPCache is enabled -;opcache.enable=1 - -; Determines if Zend OPCache is enabled for the CLI version of PHP -;opcache.enable_cli=1 - -; The OPcache shared memory storage size. -;opcache.memory_consumption=128 - -; The amount of memory for interned strings in Mbytes. -;opcache.interned_strings_buffer=8 - -; The maximum number of keys (scripts) in the OPcache hash table. -; Only numbers between 200 and 1000000 are allowed. -;opcache.max_accelerated_files=10000 - -; The maximum percentage of "wasted" memory until a restart is scheduled. -;opcache.max_wasted_percentage=5 - -; When this directive is enabled, the OPcache appends the current working -; directory to the script key, thus eliminating possible collisions between -; files with the same name (basename). Disabling the directive improves -; performance, but may break existing applications. -;opcache.use_cwd=1 - -; When disabled, you must reset the OPcache manually or restart the -; webserver for changes to the filesystem to take effect. -;opcache.validate_timestamps=1 - -; How often (in seconds) to check file timestamps for changes to the shared -; memory storage allocation. ("1" means validate once per second, but only -; once per request. "0" means always validate) -;opcache.revalidate_freq=2 - -; Enables or disables file search in include_path optimization -;opcache.revalidate_path=0 - -; If disabled, all PHPDoc comments are dropped from the code to reduce the -; size of the optimized code. -;opcache.save_comments=1 - -; If enabled, a fast shutdown sequence is used for the accelerated code -; Depending on the used Memory Manager this may cause some incompatibilities. -;opcache.fast_shutdown=0 - -; Allow file existence override (file_exists, etc.) performance feature. -;opcache.enable_file_override=0 - -; A bitmask, where each bit enables or disables the appropriate OPcache -; passes -;opcache.optimization_level=0xffffffff - -;opcache.inherited_hack=1 -;opcache.dups_fix=0 - -; The location of the OPcache blacklist file (wildcards allowed). -; Each OPcache blacklist file is a text file that holds the names of files -; that should not be accelerated. The file format is to add each filename -; to a new line. The filename may be a full path or just a file prefix -; (i.e., /var/www/x blacklists all the files and directories in /var/www -; that start with 'x'). Line starting with a ; are ignored (comments). -;opcache.blacklist_filename= - -; Allows exclusion of large files from being cached. By default all files -; are cached. -;opcache.max_file_size=0 - -; Check the cache checksum each N requests. -; The default value of "0" means that the checks are disabled. -;opcache.consistency_checks=0 - -; How long to wait (in seconds) for a scheduled restart to begin if the cache -; is not being accessed. -;opcache.force_restart_timeout=180 - -; OPcache error_log file name. Empty string assumes "stderr". -;opcache.error_log= - -; All OPcache errors go to the Web server log. -; By default, only fatal errors (level 0) or errors (level 1) are logged. -; You can also enable warnings (level 2), info messages (level 3) or -; debug messages (level 4). -;opcache.log_verbosity_level=1 - -; Preferred Shared Memory back-end. Leave empty and let the system decide. -;opcache.preferred_memory_model= - -; Protect the shared memory from unexpected writing during script execution. -; Useful for internal debugging only. -;opcache.protect_memory=0 - -; Allows calling OPcache API functions only from PHP scripts which path is -; started from specified string. The default "" means no restriction -;opcache.restrict_api= - -; Mapping base of shared memory segments (for Windows only). All the PHP -; processes have to map shared memory into the same address space. This -; directive allows to manually fix the "Unable to reattach to base address" -; errors. -;opcache.mmap_base= - -; Enables and sets the second level cache directory. -; It should improve performance when SHM memory is full, at server restart or -; SHM reset. The default "" disables file based caching. -;opcache.file_cache= - -; Enables or disables opcode caching in shared memory. -;opcache.file_cache_only=0 - -; Enables or disables checksum validation when script loaded from file cache. -;opcache.file_cache_consistency_checks=1 - -; Implies opcache.file_cache_only=1 for a certain process that failed to -; reattach to the shared memory (for Windows only). Explicitly enabled file -; cache is required. -;opcache.file_cache_fallback=1 - -; Enables or disables copying of PHP code (text segment) into HUGE PAGES. -; This should improve performance, but requires appropriate OS configuration. -;opcache.huge_code_pages=1 - -; Validate cached file permissions. -;opcache.validate_permission=0 - -; Prevent name collisions in chroot'ed environment. -;opcache.validate_root=0 - -[curl] -; A default value for the CURLOPT_CAINFO option. This is required to be an -; absolute path. -;curl.cainfo = - -[openssl] -; The location of a Certificate Authority (CA) file on the local filesystem -; to use when verifying the identity of SSL/TLS peers. Most users should -; not specify a value for this directive as PHP will attempt to use the -; OS-managed cert stores in its absence. If specified, this value may still -; be overridden on a per-stream basis via the "cafile" SSL stream context -; option. -;openssl.cafile= - -; If openssl.cafile is not specified or if the CA file is not found, the -; directory pointed to by openssl.capath is searched for a suitable -; certificate. This value must be a correctly hashed certificate directory. -; Most users should not specify a value for this directive as PHP will -; attempt to use the OS-managed cert stores in its absence. If specified, -; this value may still be overridden on a per-stream basis via the "capath" -; SSL stream context option. -;openssl.capath= - -; Local Variables: -; tab-width: 4 -; End: - -[XDebug] -xdebug.mode=debug -xdebug.remote_handler = "dbgp" -; Set to host.docker.internal on Mac and Windows, otherwise, set to host real ip -xdebug.client_host = host.docker.internal -;xdebug.remote_port = 9000 -xdebug.remote_log = /var/log/php/xdebug.log - -SERVER_ENV=develop - -yaf.use_spl_autoload=1 - -[xhprof] -;xhprof.output_dir = /var/log/php/xhprof.log \ No newline at end of file diff --git a/php8/8.0.30/conf/php-fpm.conf b/php8/8.0.30/conf/php-fpm.conf deleted file mode 100644 index 131835891..000000000 --- a/php8/8.0.30/conf/php-fpm.conf +++ /dev/null @@ -1,423 +0,0 @@ -; Start a new pool named 'www'. -; the variable $pool can be used in any directive and will be replaced by the -; pool name ('www' here) -[www] - -; Per pool prefix -; It only applies on the following directives: -; - 'access.log' -; - 'slowlog' -; - 'listen' (unixsocket) -; - 'chroot' -; - 'chdir' -; - 'php_values' -; - 'php_admin_values' -; When not set, the global prefix (or NONE) applies instead. -; Note: This directive can also be relative to the global prefix. -; Default Value: none -;prefix = /path/to/pools/$pool - -; Unix user/group of processes -; Note: The user is mandatory. If the group is not set, the default user's group -; will be used. -user = www-data -group = www-data - -; The address on which to accept FastCGI requests. -; Valid syntaxes are: -; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on -; a specific port; -; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on -; a specific port; -; 'port' - to listen on a TCP socket to all addresses -; (IPv6 and IPv4-mapped) on a specific port; -; '/path/to/unix/socket' - to listen on a unix socket. -; Note: This value is mandatory. -listen = 127.0.0.1:9000 - -; Set listen(2) backlog. -; Default Value: 511 (-1 on FreeBSD and OpenBSD) -;listen.backlog = 511 - -; Set permissions for unix socket, if one is used. In Linux, read/write -; permissions must be set in order to allow connections from a web server. Many -; BSD-derived systems allow connections regardless of permissions. -; Default Values: user and group are set as the running user -; mode is set to 0660 -;listen.owner = www-data -;listen.group = www-data -;listen.mode = 0660 -; When POSIX Access Control Lists are supported you can set them using -; these options, value is a comma separated list of user/group names. -; When set, listen.owner and listen.group are ignored -;listen.acl_users = -;listen.acl_groups = - -; List of addresses (IPv4/IPv6) of FastCGI clients which are allowed to connect. -; Equivalent to the FCGI_WEB_SERVER_ADDRS environment variable in the original -; PHP FCGI (5.2.2+). Makes sense only with a tcp listening socket. Each address -; must be separated by a comma. If this value is left blank, connections will be -; accepted from any ip address. -; Default Value: any -;listen.allowed_clients = 127.0.0.1 - -; Specify the nice(2) priority to apply to the pool processes (only if set) -; The value can vary from -19 (highest priority) to 20 (lower priority) -; Note: - It will only work if the FPM master process is launched as root -; - The pool processes will inherit the master process priority -; unless it specified otherwise -; Default Value: no set -; process.priority = -19 - -; Set the process dumpable flag (PR_SET_DUMPABLE prctl) even if the process user -; or group is differrent than the master process user. It allows to create process -; core dump and ptrace the process for the pool user. -; Default Value: no -; process.dumpable = yes - -; Choose how the process manager will control the number of child processes. -; Possible Values: -; static - a fixed number (pm.max_children) of child processes; -; dynamic - the number of child processes are set dynamically based on the -; following directives. With this process management, there will be -; always at least 1 children. -; pm.max_children - the maximum number of children that can -; be alive at the same time. -; pm.start_servers - the number of children created on startup. -; pm.min_spare_servers - the minimum number of children in 'idle' -; state (waiting to process). If the number -; of 'idle' processes is less than this -; number then some children will be created. -; pm.max_spare_servers - the maximum number of children in 'idle' -; state (waiting to process). If the number -; of 'idle' processes is greater than this -; number then some children will be killed. -; ondemand - no children are created at startup. Children will be forked when -; new requests will connect. The following parameter are used: -; pm.max_children - the maximum number of children that -; can be alive at the same time. -; pm.process_idle_timeout - The number of seconds after which -; an idle process will be killed. -; Note: This value is mandatory. -pm = dynamic - -; The number of child processes to be created when pm is set to 'static' and the -; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'. -; This value sets the limit on the number of simultaneous requests that will be -; served. Equivalent to the ApacheMaxClients directive with mpm_prefork. -; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP -; CGI. The below defaults are based on a server without much resources. Don't -; forget to tweak pm.* to fit your needs. -; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand' -; Note: This value is mandatory. -pm.max_children = 10 - -; The number of child processes created on startup. -; Note: Used only when pm is set to 'dynamic' -; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2 -pm.start_servers = 2 - -; The desired minimum number of idle server processes. -; Note: Used only when pm is set to 'dynamic' -; Note: Mandatory when pm is set to 'dynamic' -pm.min_spare_servers = 1 - -; The desired maximum number of idle server processes. -; Note: Used only when pm is set to 'dynamic' -; Note: Mandatory when pm is set to 'dynamic' -pm.max_spare_servers = 3 - -; The number of seconds after which an idle process will be killed. -; Note: Used only when pm is set to 'ondemand' -; Default Value: 10s -;pm.process_idle_timeout = 10s; - -; The number of requests each child process should execute before respawning. -; This can be useful to work around memory leaks in 3rd party libraries. For -; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS. -; Default Value: 0 -;pm.max_requests = 500 - -; The URI to view the FPM status page. If this value is not set, no URI will be -; recognized as a status page. It shows the following informations: -; pool - the name of the pool; -; process manager - static, dynamic or ondemand; -; start time - the date and time FPM has started; -; start since - number of seconds since FPM has started; -; accepted conn - the number of request accepted by the pool; -; listen queue - the number of request in the queue of pending -; connections (see backlog in listen(2)); -; max listen queue - the maximum number of requests in the queue -; of pending connections since FPM has started; -; listen queue len - the size of the socket queue of pending connections; -; idle processes - the number of idle processes; -; active processes - the number of active processes; -; total processes - the number of idle + active processes; -; max active processes - the maximum number of active processes since FPM -; has started; -; max children reached - number of times, the process limit has been reached, -; when pm tries to start more children (works only for -; pm 'dynamic' and 'ondemand'); -; Value are updated in real time. -; Example output: -; pool: www -; process manager: static -; start time: 01/Jul/2011:17:53:49 +0200 -; start since: 62636 -; accepted conn: 190460 -; listen queue: 0 -; max listen queue: 1 -; listen queue len: 42 -; idle processes: 4 -; active processes: 11 -; total processes: 15 -; max active processes: 12 -; max children reached: 0 -; -; By default the status page output is formatted as text/plain. Passing either -; 'html', 'xml' or 'json' in the query string will return the corresponding -; output syntax. Example: -; http://www.foo.bar/status -; http://www.foo.bar/status?json -; http://www.foo.bar/status?html -; http://www.foo.bar/status?xml -; -; By default the status page only outputs short status. Passing 'full' in the -; query string will also return status for each pool process. -; Example: -; http://www.foo.bar/status?full -; http://www.foo.bar/status?json&full -; http://www.foo.bar/status?html&full -; http://www.foo.bar/status?xml&full -; The Full status returns for each process: -; pid - the PID of the process; -; state - the state of the process (Idle, Running, ...); -; start time - the date and time the process has started; -; start since - the number of seconds since the process has started; -; requests - the number of requests the process has served; -; request duration - the duration in µs of the requests; -; request method - the request method (GET, POST, ...); -; request URI - the request URI with the query string; -; content length - the content length of the request (only with POST); -; user - the user (PHP_AUTH_USER) (or '-' if not set); -; script - the main script called (or '-' if not set); -; last request cpu - the %cpu the last request consumed -; it's always 0 if the process is not in Idle state -; because CPU calculation is done when the request -; processing has terminated; -; last request memory - the max amount of memory the last request consumed -; it's always 0 if the process is not in Idle state -; because memory calculation is done when the request -; processing has terminated; -; If the process is in Idle state, then informations are related to the -; last request the process has served. Otherwise informations are related to -; the current request being served. -; Example output: -; ************************ -; pid: 31330 -; state: Running -; start time: 01/Jul/2011:17:53:49 +0200 -; start since: 63087 -; requests: 12808 -; request duration: 1250261 -; request method: GET -; request URI: /test_mem.php?N=10000 -; content length: 0 -; user: - -; script: /home/fat/web/docs/php/test_mem.php -; last request cpu: 0.00 -; last request memory: 0 -; -; Note: There is a real-time FPM status monitoring sample web page available -; It's available in: /usr/local/share/php/fpm/status.html -; -; Note: The value must start with a leading slash (/). The value can be -; anything, but it may not be a good idea to use the .php extension or it -; may conflict with a real PHP file. -; Default Value: not set -;pm.status_path = /status - -; The ping URI to call the monitoring page of FPM. If this value is not set, no -; URI will be recognized as a ping page. This could be used to test from outside -; that FPM is alive and responding, or to -; - create a graph of FPM availability (rrd or such); -; - remove a server from a group if it is not responding (load balancing); -; - trigger alerts for the operating team (24/7). -; Note: The value must start with a leading slash (/). The value can be -; anything, but it may not be a good idea to use the .php extension or it -; may conflict with a real PHP file. -; Default Value: not set -;ping.path = /ping - -; This directive may be used to customize the response of a ping request. The -; response is formatted as text/plain with a 200 response code. -; Default Value: pong -;ping.response = pong - -; The access log file -; Default: not set -;access.log = log/$pool.access.log - -; The access log format. -; The following syntax is allowed -; %%: the '%' character -; %C: %CPU used by the request -; it can accept the following format: -; - %{user}C for user CPU only -; - %{system}C for system CPU only -; - %{total}C for user + system CPU (default) -; %d: time taken to serve the request -; it can accept the following format: -; - %{seconds}d (default) -; - %{miliseconds}d -; - %{mili}d -; - %{microseconds}d -; - %{micro}d -; %e: an environment variable (same as $_ENV or $_SERVER) -; it must be associated with embraces to specify the name of the env -; variable. Some exemples: -; - server specifics like: %{REQUEST_METHOD}e or %{SERVER_PROTOCOL}e -; - HTTP headers like: %{HTTP_HOST}e or %{HTTP_USER_AGENT}e -; %f: script filename -; %l: content-length of the request (for POST request only) -; %m: request method -; %M: peak of memory allocated by PHP -; it can accept the following format: -; - %{bytes}M (default) -; - %{kilobytes}M -; - %{kilo}M -; - %{megabytes}M -; - %{mega}M -; %n: pool name -; %o: output header -; it must be associated with embraces to specify the name of the header: -; - %{Content-Type}o -; - %{X-Powered-By}o -; - %{Transfert-Encoding}o -; - .... -; %p: PID of the child that serviced the request -; %P: PID of the parent of the child that serviced the request -; %q: the query string -; %Q: the '?' character if query string exists -; %r: the request URI (without the query string, see %q and %Q) -; %R: remote IP address -; %s: status (response code) -; %t: server time the request was received -; it can accept a strftime(3) format: -; %d/%b/%Y:%H:%M:%S %z (default) -; The strftime(3) format must be encapsuled in a %{}t tag -; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t -; %T: time the log has been written (the request has finished) -; it can accept a strftime(3) format: -; %d/%b/%Y:%H:%M:%S %z (default) -; The strftime(3) format must be encapsuled in a %{}t tag -; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t -; %u: remote user -; -; Default: "%R - %u %t \"%m %r\" %s" -;access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%" - -; The log file for slow requests -; Default Value: not set -; Note: slowlog is mandatory if request_slowlog_timeout is set -slowlog = /var/log/php/fpm.slow.log - -; The timeout for serving a single request after which a PHP backtrace will be -; dumped to the 'slowlog' file. A value of '0s' means 'off'. -; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) -; Default Value: 0 -request_slowlog_timeout = 3 - -; Depth of slow log stack trace. -; Default Value: 20 -;request_slowlog_trace_depth = 20 - -; The timeout for serving a single request after which the worker process will -; be killed. This option should be used when the 'max_execution_time' ini option -; does not stop script execution for some reason. A value of '0' means 'off'. -; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) -; Default Value: 0 -;request_terminate_timeout = 0 - -; Set open file descriptor rlimit. -; Default Value: system defined value -;rlimit_files = 1024 - -; Set max core size rlimit. -; Possible Values: 'unlimited' or an integer greater or equal to 0 -; Default Value: system defined value -;rlimit_core = 0 - -; Chroot to this directory at the start. This value must be defined as an -; absolute path. When this value is not set, chroot is not used. -; Note: you can prefix with '$prefix' to chroot to the pool prefix or one -; of its subdirectories. If the pool prefix is not set, the global prefix -; will be used instead. -; Note: chrooting is a great security feature and should be used whenever -; possible. However, all PHP paths will be relative to the chroot -; (error_log, sessions.save_path, ...). -; Default Value: not set -;chroot = - -; Chdir to this directory at the start. -; Note: relative path can be used. -; Default Value: current directory or / when chroot -;chdir = /var/www - -; Redirect worker stdout and stderr into main error log. If not set, stdout and -; stderr will be redirected to /dev/null according to FastCGI specs. -; Note: on highloaded environement, this can cause some delay in the page -; process time (several ms). -; Default Value: no -catch_workers_output = yes - -; Clear environment in FPM workers -; Prevents arbitrary environment variables from reaching FPM worker processes -; by clearing the environment in workers before env vars specified in this -; pool configuration are added. -; Setting to "no" will make all environment variables available to PHP code -; via getenv(), $_ENV and $_SERVER. -; Default Value: yes -;clear_env = no - -; Limits the extensions of the main script FPM will allow to parse. This can -; prevent configuration mistakes on the web server side. You should only limit -; FPM to .php extensions to prevent malicious users to use other extensions to -; execute php code. -; Note: set an empty value to allow all extensions. -; Default Value: .php -;security.limit_extensions = .php .php3 .php4 .php5 .php7 - -; Pass environment variables like LD_LIBRARY_PATH. All $VARIABLEs are taken from -; the current environment. -; Default Value: clean env -;env[HOSTNAME] = $HOSTNAME -;env[PATH] = /usr/local/bin:/usr/bin:/bin -;env[TMP] = /tmp -;env[TMPDIR] = /tmp -;env[TEMP] = /tmp - -; Additional php.ini defines, specific to this pool of workers. These settings -; overwrite the values previously defined in the php.ini. The directives are the -; same as the PHP SAPI: -; php_value/php_flag - you can set classic ini defines which can -; be overwritten from PHP call 'ini_set'. -; php_admin_value/php_admin_flag - these directives won't be overwritten by -; PHP call 'ini_set' -; For php_*flag, valid values are on, off, 1, 0, true, false, yes or no. - -; Defining 'extension' will load the corresponding shared extension from -; extension_dir. Defining 'disable_functions' or 'disable_classes' will not -; overwrite previously defined php.ini values, but will append the new value -; instead. - -; Note: path INI options can be relative and will be expanded with the prefix -; (pool, global or /usr/local) - -; Default Value: nothing is defined by default except the values in php.ini and -; specified at startup with the -d argument -;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com -;php_flag[display_errors] = off -;php_admin_value[error_log] = /var/log/fpm-php.www.log -;php_admin_flag[log_errors] = on -;php_admin_value[memory_limit] = 32M diff --git a/php8/8.0.30/conf/php.ini b/php8/8.0.30/conf/php.ini deleted file mode 100644 index b6b0aee69..000000000 --- a/php8/8.0.30/conf/php.ini +++ /dev/null @@ -1,1933 +0,0 @@ -[PHP] - -;;;;;;;;;;;;;;;;;;; -; About php.ini ; -;;;;;;;;;;;;;;;;;;; -; PHP's initialization file, generally called php.ini, is responsible for -; configuring many of the aspects of PHP's behavior. - -; PHP attempts to find and load this configuration from a number of locations. -; The following is a summary of its search order: -; 1. SAPI module specific location. -; 2. The PHPRC environment variable. (As of PHP 5.2.0) -; 3. A number of predefined registry keys on Windows (As of PHP 5.2.0) -; 4. Current working directory (except CLI) -; 5. The web server's directory (for SAPI modules), or directory of PHP -; (otherwise in Windows) -; 6. The directory from the --with-config-file-path compile time option, or the -; Windows directory (C:\windows or C:\winnt) -; See the PHP docs for more specific information. -; http://php.net/configuration.file - -; The syntax of the file is extremely simple. Whitespace and lines -; beginning with a semicolon are silently ignored (as you probably guessed). -; Section headers (e.g. [Foo]) are also silently ignored, even though -; they might mean something in the future. - -; Directives following the section heading [PATH=/www/mysite] only -; apply to PHP files in the /www/mysite directory. Directives -; following the section heading [HOST=www.example.com] only apply to -; PHP files served from www.example.com. Directives set in these -; special sections cannot be overridden by user-defined INI files or -; at runtime. Currently, [PATH=] and [HOST=] sections only work under -; CGI/FastCGI. -; http://php.net/ini.sections - -; Directives are specified using the following syntax: -; directive = value -; Directive names are *case sensitive* - foo=bar is different from FOO=bar. -; Directives are variables used to configure PHP or PHP extensions. -; There is no name validation. If PHP can't find an expected -; directive because it is not set or is mistyped, a default value will be used. - -; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one -; of the INI constants (On, Off, True, False, Yes, No and None) or an expression -; (e.g. E_ALL & ~E_NOTICE), a quoted string ("bar"), or a reference to a -; previously set variable or directive (e.g. ${foo}) - -; Expressions in the INI file are limited to bitwise operators and parentheses: -; | bitwise OR -; ^ bitwise XOR -; & bitwise AND -; ~ bitwise NOT -; ! boolean NOT - -; Boolean flags can be turned on using the values 1, On, True or Yes. -; They can be turned off using the values 0, Off, False or No. - -; An empty string can be denoted by simply not writing anything after the equal -; sign, or by using the None keyword: - -; foo = ; sets foo to an empty string -; foo = None ; sets foo to an empty string -; foo = "None" ; sets foo to the string 'None' - -; If you use constants in your value, and these constants belong to a -; dynamically loaded extension (either a PHP extension or a Zend extension), -; you may only use these constants *after* the line that loads the extension. - -;;;;;;;;;;;;;;;;;;; -; About this file ; -;;;;;;;;;;;;;;;;;;; -; PHP comes packaged with two INI files. One that is recommended to be used -; in production environments and one that is recommended to be used in -; development environments. - -; php.ini-production contains settings which hold security, performance and -; best practices at its core. But please be aware, these settings may break -; compatibility with older or less security conscience applications. We -; recommending using the production ini in production and testing environments. - -; php.ini-development is very similar to its production variant, except it is -; much more verbose when it comes to errors. We recommend using the -; development version only in development environments, as errors shown to -; application users can inadvertently leak otherwise secure information. - -; This is php.ini-production INI file. - -;;;;;;;;;;;;;;;;;;; -; Quick Reference ; -;;;;;;;;;;;;;;;;;;; -; The following are all the settings which are different in either the production -; or development versions of the INIs with respect to PHP's default behavior. -; Please see the actual settings later in the document for more details as to why -; we recommend these changes in PHP's behavior. - -; display_errors -; Default Value: On -; Development Value: On -; Production Value: Off - -; display_startup_errors -; Default Value: Off -; Development Value: On -; Production Value: Off - -; error_reporting -; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT - -; html_errors -; Default Value: On -; Development Value: On -; Production value: On - -; log_errors -; Default Value: Off -; Development Value: On -; Production Value: On - -; max_input_time -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) - -; output_buffering -; Default Value: Off -; Development Value: 4096 -; Production Value: 4096 - -; register_argc_argv -; Default Value: On -; Development Value: Off -; Production Value: Off - -; request_order -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" - -; session.gc_divisor -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 - -; session.sid_bits_per_character -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 - -; short_open_tag -; Default Value: On -; Development Value: Off -; Production Value: Off - -; track_errors -; Default Value: Off -; Development Value: On -; Production Value: Off - -; variables_order -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS" - -;;;;;;;;;;;;;;;;;;;; -; php.ini Options ; -;;;;;;;;;;;;;;;;;;;; -; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini" -;user_ini.filename = ".user.ini" - -; To disable this feature set this option to empty value -;user_ini.filename = - -; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes) -;user_ini.cache_ttl = 300 - -;;;;;;;;;;;;;;;;;;;; -; Language Options ; -;;;;;;;;;;;;;;;;;;;; - -; Enable the PHP scripting language engine under Apache. -; http://php.net/engine -engine = On - -; This directive determines whether or not PHP will recognize code between -; tags as PHP source which should be processed as such. It is -; generally recommended that should be used and that this feature -; should be disabled, as enabling it may result in issues when generating XML -; documents, however this remains supported for backward compatibility reasons. -; Note that this directive does not control the would work. -; http://php.net/syntax-highlighting -;highlight.string = #DD0000 -;highlight.comment = #FF9900 -;highlight.keyword = #007700 -;highlight.default = #0000BB -;highlight.html = #000000 - -; If enabled, the request will be allowed to complete even if the user aborts -; the request. Consider enabling it if executing long requests, which may end up -; being interrupted by the user or a browser timing out. PHP's default behavior -; is to disable this feature. -; http://php.net/ignore-user-abort -;ignore_user_abort = On - -; Determines the size of the realpath cache to be used by PHP. This value should -; be increased on systems where PHP opens many files to reflect the quantity of -; the file operations performed. -; http://php.net/realpath-cache-size -;realpath_cache_size = 4096k - -; Duration of time, in seconds for which to cache realpath information for a given -; file or directory. For systems with rarely changing files, consider increasing this -; value. -; http://php.net/realpath-cache-ttl -;realpath_cache_ttl = 120 - -; Enables or disables the circular reference collector. -; http://php.net/zend.enable-gc -zend.enable_gc = On - -; If enabled, scripts may be written in encodings that are incompatible with -; the scanner. CP936, Big5, CP949 and Shift_JIS are the examples of such -; encodings. To use this feature, mbstring extension must be enabled. -; Default: Off -;zend.multibyte = Off - -; Allows to set the default encoding for the scripts. This value will be used -; unless "declare(encoding=...)" directive appears at the top of the script. -; Only affects if zend.multibyte is set. -; Default: "" -;zend.script_encoding = - -;;;;;;;;;;;;;;;;; -; Miscellaneous ; -;;;;;;;;;;;;;;;;; - -; Decides whether PHP may expose the fact that it is installed on the server -; (e.g. by adding its signature to the Web server header). It is no security -; threat in any way, but it makes it possible to determine whether you use PHP -; on your server or not. -; http://php.net/expose-php -expose_php = Off - -;;;;;;;;;;;;;;;;;;; -; Resource Limits ; -;;;;;;;;;;;;;;;;;;; - -; Maximum execution time of each script, in seconds -; http://php.net/max-execution-time -; Note: This directive is hardcoded to 0 for the CLI SAPI -max_execution_time = 30 - -; Maximum amount of time each script may spend parsing request data. It's a good -; idea to limit this time on productions servers in order to eliminate unexpectedly -; long running scripts. -; Note: This directive is hardcoded to -1 for the CLI SAPI -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) -; http://php.net/max-input-time -max_input_time = 60 - -; Maximum input variable nesting level -; http://php.net/max-input-nesting-level -;max_input_nesting_level = 64 - -; How many GET/POST/COOKIE input variables may be accepted -; max_input_vars = 1000 - -; Maximum amount of memory a script may consume (128MB) -; http://php.net/memory-limit -memory_limit = 256M - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; Error handling and logging ; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -; This directive informs PHP of which errors, warnings and notices you would like -; it to take action for. The recommended way of setting values for this -; directive is through the use of the error level constants and bitwise -; operators. The error level constants are below here for convenience as well as -; some common settings and their meanings. -; By default, PHP is set to take action on all errors, notices and warnings EXCEPT -; those related to E_NOTICE and E_STRICT, which together cover best practices and -; recommended coding standards in PHP. For performance reasons, this is the -; recommend error reporting setting. Your production server shouldn't be wasting -; resources complaining about best practices and coding standards. That's what -; development servers and development settings are for. -; Note: The php.ini-development file has this setting as E_ALL. This -; means it pretty much reports everything which is exactly what you want during -; development and early testing. -; -; Error Level Constants: -; E_ALL - All errors and warnings (includes E_STRICT as of PHP 5.4.0) -; E_ERROR - fatal run-time errors -; E_RECOVERABLE_ERROR - almost fatal run-time errors -; E_WARNING - run-time warnings (non-fatal errors) -; E_PARSE - compile-time parse errors -; E_NOTICE - run-time notices (these are warnings which often result -; from a bug in your code, but it's possible that it was -; intentional (e.g., using an uninitialized variable and -; relying on the fact it is automatically initialized to an -; empty string) -; E_STRICT - run-time notices, enable to have PHP suggest changes -; to your code which will ensure the best interoperability -; and forward compatibility of your code -; E_CORE_ERROR - fatal errors that occur during PHP's initial startup -; E_CORE_WARNING - warnings (non-fatal errors) that occur during PHP's -; initial startup -; E_COMPILE_ERROR - fatal compile-time errors -; E_COMPILE_WARNING - compile-time warnings (non-fatal errors) -; E_USER_ERROR - user-generated error message -; E_USER_WARNING - user-generated warning message -; E_USER_NOTICE - user-generated notice message -; E_DEPRECATED - warn about code that will not work in future versions -; of PHP -; E_USER_DEPRECATED - user-generated deprecation warnings -; -; Common Values: -; E_ALL (Show all errors, warnings and notices including coding standards.) -; E_ALL & ~E_NOTICE (Show all errors, except for notices) -; E_ALL & ~E_NOTICE & ~E_STRICT (Show all errors, except for notices and coding standards warnings.) -; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors) -; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT -; http://php.net/error-reporting -error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT - -; This directive controls whether or not and where PHP will output errors, -; notices and warnings too. Error output is very useful during development, but -; it could be very dangerous in production environments. Depending on the code -; which is triggering the error, sensitive information could potentially leak -; out of your application such as database usernames and passwords or worse. -; For production environments, we recommend logging errors rather than -; sending them to STDOUT. -; Possible Values: -; Off = Do not display any errors -; stderr = Display errors to STDERR (affects only CGI/CLI binaries!) -; On or stdout = Display errors to STDOUT -; Default Value: On -; Development Value: On -; Production Value: Off -; http://php.net/display-errors -display_errors = Off - -; The display of errors which occur during PHP's startup sequence are handled -; separately from display_errors. PHP's default behavior is to suppress those -; errors from clients. Turning the display of startup errors on can be useful in -; debugging configuration problems. We strongly recommend you -; set this to 'off' for production servers. -; Default Value: Off -; Development Value: On -; Production Value: Off -; http://php.net/display-startup-errors -display_startup_errors = Off - -; Besides displaying errors, PHP can also log errors to locations such as a -; server-specific log, STDERR, or a location specified by the error_log -; directive found below. While errors should not be displayed on productions -; servers they should still be monitored and logging is a great way to do that. -; Default Value: Off -; Development Value: On -; Production Value: On -; http://php.net/log-errors -log_errors = On - -; Set maximum length of log_errors. In error_log information about the source is -; added. The default is 1024 and 0 allows to not apply any maximum length at all. -; http://php.net/log-errors-max-len -log_errors_max_len = 1024 - -; Do not log repeated messages. Repeated errors must occur in same file on same -; line unless ignore_repeated_source is set true. -; http://php.net/ignore-repeated-errors -ignore_repeated_errors = Off - -; Ignore source of message when ignoring repeated messages. When this setting -; is On you will not log errors with repeated messages from different files or -; source lines. -; http://php.net/ignore-repeated-source -ignore_repeated_source = Off - -; If this parameter is set to Off, then memory leaks will not be shown (on -; stdout or in the log). This has only effect in a debug compile, and if -; error reporting includes E_WARNING in the allowed list -; http://php.net/report-memleaks -report_memleaks = On - -; This setting is on by default. -;report_zend_debug = 0 - -; Store the last error/warning message in $php_errormsg (boolean). Setting this value -; to On can assist in debugging and is appropriate for development servers. It should -; however be disabled on production servers. -; Default Value: Off -; Development Value: On -; Production Value: Off -; http://php.net/track-errors -track_errors = Off - -; Turn off normal error reporting and emit XML-RPC error XML -; http://php.net/xmlrpc-errors -;xmlrpc_errors = 0 - -; An XML-RPC faultCode -;xmlrpc_error_number = 0 - -; When PHP displays or logs an error, it has the capability of formatting the -; error message as HTML for easier reading. This directive controls whether -; the error message is formatted as HTML or not. -; Note: This directive is hardcoded to Off for the CLI SAPI -; Default Value: On -; Development Value: On -; Production value: On -; http://php.net/html-errors -html_errors = On - -; If html_errors is set to On *and* docref_root is not empty, then PHP -; produces clickable error messages that direct to a page describing the error -; or function causing the error in detail. -; You can download a copy of the PHP manual from http://php.net/docs -; and change docref_root to the base URL of your local copy including the -; leading '/'. You must also specify the file extension being used including -; the dot. PHP's default behavior is to leave these settings empty, in which -; case no links to documentation are generated. -; Note: Never use this feature for production boxes. -; http://php.net/docref-root -; Examples -;docref_root = "/phpmanual/" - -; http://php.net/docref-ext -;docref_ext = .html - -; String to output before an error message. PHP's default behavior is to leave -; this setting blank. -; http://php.net/error-prepend-string -; Example: -;error_prepend_string = "" - -; String to output after an error message. PHP's default behavior is to leave -; this setting blank. -; http://php.net/error-append-string -; Example: -;error_append_string = "" - -; Log errors to specified file. PHP's default behavior is to leave this value -; empty. -; http://php.net/error-log -; Example: -;error_log = php_errors.log -; Log errors to syslog (Event Log on Windows). -error_log = /var/log/php/php.error.log - -;windows.show_crt_warning -; Default value: 0 -; Development value: 0 -; Production value: 0 - -;;;;;;;;;;;;;;;;; -; Data Handling ; -;;;;;;;;;;;;;;;;; - -; The separator used in PHP generated URLs to separate arguments. -; PHP's default setting is "&". -; http://php.net/arg-separator.output -; Example: -;arg_separator.output = "&" - -; List of separator(s) used by PHP to parse input URLs into variables. -; PHP's default setting is "&". -; NOTE: Every character in this directive is considered as separator! -; http://php.net/arg-separator.input -; Example: -;arg_separator.input = ";&" - -; This directive determines which super global arrays are registered when PHP -; starts up. G,P,C,E & S are abbreviations for the following respective super -; globals: GET, POST, COOKIE, ENV and SERVER. There is a performance penalty -; paid for the registration of these arrays and because ENV is not as commonly -; used as the others, ENV is not recommended on productions servers. You -; can still get access to the environment variables through getenv() should you -; need to. -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS"; -; http://php.net/variables-order -variables_order = "GPCS" - -; This directive determines which super global data (G,P & C) should be -; registered into the super global array REQUEST. If so, it also determines -; the order in which that data is registered. The values for this directive -; are specified in the same manner as the variables_order directive, -; EXCEPT one. Leaving this value empty will cause PHP to use the value set -; in the variables_order directive. It does not mean it will leave the super -; globals array REQUEST empty. -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" -; http://php.net/request-order -request_order = "GP" - -; This directive determines whether PHP registers $argv & $argc each time it -; runs. $argv contains an array of all the arguments passed to PHP when a script -; is invoked. $argc contains an integer representing the number of arguments -; that were passed when the script was invoked. These arrays are extremely -; useful when running scripts from the command line. When this directive is -; enabled, registering these variables consumes CPU cycles and memory each time -; a script is executed. For performance reasons, this feature should be disabled -; on production servers. -; Note: This directive is hardcoded to On for the CLI SAPI -; Default Value: On -; Development Value: Off -; Production Value: Off -; http://php.net/register-argc-argv -register_argc_argv = Off - -; When enabled, the ENV, REQUEST and SERVER variables are created when they're -; first used (Just In Time) instead of when the script starts. If these -; variables are not used within a script, having this directive on will result -; in a performance gain. The PHP directive register_argc_argv must be disabled -; for this directive to have any affect. -; http://php.net/auto-globals-jit -auto_globals_jit = On - -; Whether PHP will read the POST data. -; This option is enabled by default. -; Most likely, you won't want to disable this option globally. It causes $_POST -; and $_FILES to always be empty; the only way you will be able to read the -; POST data will be through the php://input stream wrapper. This can be useful -; to proxy requests or to process the POST data in a memory efficient fashion. -; http://php.net/enable-post-data-reading -;enable_post_data_reading = Off - -; Maximum size of POST data that PHP will accept. -; Its value may be 0 to disable the limit. It is ignored if POST data reading -; is disabled through enable_post_data_reading. -; http://php.net/post-max-size -post_max_size = 100M - -; Automatically add files before PHP document. -; http://php.net/auto-prepend-file -auto_prepend_file = - -; Automatically add files after PHP document. -; http://php.net/auto-append-file -auto_append_file = - -; By default, PHP will output a media type using the Content-Type header. To -; disable this, simply set it to be empty. -; -; PHP's built-in default media type is set to text/html. -; http://php.net/default-mimetype -default_mimetype = "text/html" - -; PHP's default character set is set to UTF-8. -; http://php.net/default-charset -default_charset = "UTF-8" - -; PHP internal character encoding is set to empty. -; If empty, default_charset is used. -; http://php.net/internal-encoding -;internal_encoding = - -; PHP input character encoding is set to empty. -; If empty, default_charset is used. -; http://php.net/input-encoding -;input_encoding = - -; PHP output character encoding is set to empty. -; If empty, default_charset is used. -; See also output_buffer. -; http://php.net/output-encoding -;output_encoding = - -;;;;;;;;;;;;;;;;;;;;;;;;; -; Paths and Directories ; -;;;;;;;;;;;;;;;;;;;;;;;;; - -; UNIX: "/path1:/path2" -;include_path = ".:/php/includes" -; -; Windows: "\path1;\path2" -;include_path = ".;c:\php\includes" -; -; PHP's default setting for include_path is ".;/path/to/php/pear" -; http://php.net/include-path - -; The root of the PHP pages, used only if nonempty. -; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root -; if you are running php as a CGI under any web server (other than IIS) -; see documentation for security issues. The alternate is to use the -; cgi.force_redirect configuration below -; http://php.net/doc-root -doc_root = - -; The directory under which PHP opens the script using /~username used only -; if nonempty. -; http://php.net/user-dir -user_dir = - -; Directory in which the loadable extensions (modules) reside. -; http://php.net/extension-dir -; extension_dir = "./" -; On windows: -; extension_dir = "ext" - -; Directory where the temporary files should be placed. -; Defaults to the system default (see sys_get_temp_dir) -; sys_temp_dir = "/tmp" - -; Whether or not to enable the dl() function. The dl() function does NOT work -; properly in multithreaded servers, such as IIS or Zeus, and is automatically -; disabled on them. -; http://php.net/enable-dl -enable_dl = Off - -; cgi.force_redirect is necessary to provide security running PHP as a CGI under -; most web servers. Left undefined, PHP turns this on by default. You can -; turn it off here AT YOUR OWN RISK -; **You CAN safely turn this off for IIS, in fact, you MUST.** -; http://php.net/cgi.force-redirect -;cgi.force_redirect = 1 - -; if cgi.nph is enabled it will force cgi to always sent Status: 200 with -; every request. PHP's default behavior is to disable this feature. -;cgi.nph = 1 - -; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape -; (iPlanet) web servers, you MAY need to set an environment variable name that PHP -; will look for to know it is OK to continue execution. Setting this variable MAY -; cause security issues, KNOW WHAT YOU ARE DOING FIRST. -; http://php.net/cgi.redirect-status-env -;cgi.redirect_status_env = - -; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's -; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok -; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting -; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting -; of zero causes PHP to behave as before. Default is 1. You should fix your scripts -; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. -; http://php.net/cgi.fix-pathinfo -;cgi.fix_pathinfo=1 - -; if cgi.discard_path is enabled, the PHP CGI binary can safely be placed outside -; of the web tree and people will not be able to circumvent .htaccess security. -; http://php.net/cgi.dicard-path -;cgi.discard_path=1 - -; FastCGI under IIS (on WINNT based OS) supports the ability to impersonate -; security tokens of the calling client. This allows IIS to define the -; security context that the request runs under. mod_fastcgi under Apache -; does not currently support this feature (03/17/2002) -; Set to 1 if running under IIS. Default is zero. -; http://php.net/fastcgi.impersonate -;fastcgi.impersonate = 1 - -; Disable logging through FastCGI connection. PHP's default behavior is to enable -; this feature. -;fastcgi.logging = 0 - -; cgi.rfc2616_headers configuration option tells PHP what type of headers to -; use when sending HTTP response code. If set to 0, PHP sends Status: header that -; is supported by Apache. When this option is set to 1, PHP will send -; RFC2616 compliant header. -; Default is zero. -; http://php.net/cgi.rfc2616-headers -;cgi.rfc2616_headers = 0 - -; cgi.check_shebang_line controls whether CGI PHP checks for line starting with #! -; (shebang) at the top of the running script. This line might be needed if the -; script support running both as stand-alone script and via PHP CGI<. PHP in CGI -; mode skips this line and ignores its content if this directive is turned on. -; http://php.net/cgi.check-shebang-line -;cgi.check_shebang_line=1 - -;;;;;;;;;;;;;;;; -; File Uploads ; -;;;;;;;;;;;;;;;; - -; Whether to allow HTTP file uploads. -; http://php.net/file-uploads -file_uploads = On - -; Temporary directory for HTTP uploaded files (will use system default if not -; specified). -; http://php.net/upload-tmp-dir -;upload_tmp_dir = - -; Maximum allowed size for uploaded files. -; http://php.net/upload-max-filesize -upload_max_filesize = 50M - -; Maximum number of files that can be uploaded via a single request -max_file_uploads = 20 - -;;;;;;;;;;;;;;;;;; -; Fopen wrappers ; -;;;;;;;;;;;;;;;;;; - -; Whether to allow the treatment of URLs (like http:// or ftp://) as files. -; http://php.net/allow-url-fopen -allow_url_fopen = On - -; Whether to allow include/require to open URLs (like http:// or ftp://) as files. -; http://php.net/allow-url-include -allow_url_include = Off - -; Define the anonymous ftp password (your email address). PHP's default setting -; for this is empty. -; http://php.net/from -;from="john@doe.com" - -; Define the User-Agent string. PHP's default setting for this is empty. -; http://php.net/user-agent -;user_agent="PHP" - -; Default timeout for socket based streams (seconds) -; http://php.net/default-socket-timeout -default_socket_timeout = 60 - -; If your scripts have to deal with files from Macintosh systems, -; or you are running on a Mac and need to deal with files from -; unix or win32 systems, setting this flag will cause PHP to -; automatically detect the EOL character in those files so that -; fgets() and file() will work regardless of the source of the file. -; http://php.net/auto-detect-line-endings -;auto_detect_line_endings = Off - -;;;;;;;;;;;;;;;;;;;;;; -; Dynamic Extensions ; -;;;;;;;;;;;;;;;;;;;;;; - -; If you wish to have an extension loaded automatically, use the following -; syntax: -; -; extension=modulename.extension -; -; For example, on Windows: -; -; extension=mysqli.dll -; -; ... or under UNIX: -; -; extension=mysqli.so -; -; ... or with a path: -; -; extension=/path/to/extension/mysqli.so -; -; If you only provide the name of the extension, PHP will look for it in its -; default extension directory. -; -; Windows Extensions -; Note that ODBC support is built in, so no dll is needed for it. -; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5+) -; extension folders as well as the separate PECL DLL download (PHP 5+). -; Be sure to appropriately set the extension_dir directive. -; -;extension=php_bz2.dll -;extension=php_curl.dll -;extension=php_fileinfo.dll -;extension=php_ftp.dll -;extension=php_gd2.dll -;extension=php_gettext.dll -;extension=php_gmp.dll -;extension=php_intl.dll -;extension=php_imap.dll -;extension=php_interbase.dll -;extension=php_ldap.dll -;extension=php_mbstring.dll -;extension=php_exif.dll ; Must be after mbstring as it depends on it -;extension=php_mysqli.dll -;extension=php_oci8_12c.dll ; Use with Oracle Database 12c Instant Client -;extension=php_openssl.dll -;extension=php_pdo_firebird.dll -;extension=php_pdo_mysql.dll -;extension=php_pdo_oci.dll -;extension=php_pdo_odbc.dll -;extension=php_pdo_pgsql.dll -;extension=php_pdo_sqlite.dll -;extension=php_pgsql.dll -;extension=php_shmop.dll - -; The MIBS data available in the PHP distribution must be installed. -; See http://www.php.net/manual/en/snmp.installation.php -;extension=php_snmp.dll - -;extension=php_soap.dll -;extension=php_sockets.dll -;extension=php_sqlite3.dll -;extension=php_tidy.dll -;extension=php_xmlrpc.dll -;extension=php_xsl.dll - -;;;;;;;;;;;;;;;;;;; -; Module Settings ; -;;;;;;;;;;;;;;;;;;; - -[CLI Server] -; Whether the CLI web server uses ANSI color coding in its terminal output. -cli_server.color = On - -[Date] -; Defines the default timezone used by the date functions -; http://php.net/date.timezone -date.timezone = Asia/Shanghai - -; http://php.net/date.default-latitude -;date.default_latitude = 31.7667 - -; http://php.net/date.default-longitude -;date.default_longitude = 35.2333 - -; http://php.net/date.sunrise-zenith -;date.sunrise_zenith = 90.583333 - -; http://php.net/date.sunset-zenith -;date.sunset_zenith = 90.583333 - -[filter] -; http://php.net/filter.default -;filter.default = unsafe_raw - -; http://php.net/filter.default-flags -;filter.default_flags = - -[iconv] -; Use of this INI entry is deprecated, use global input_encoding instead. -; If empty, default_charset or input_encoding or iconv.input_encoding is used. -; The precedence is: default_charset < intput_encoding < iconv.input_encoding -;iconv.input_encoding = - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;iconv.internal_encoding = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; If empty, default_charset or output_encoding or iconv.output_encoding is used. -; The precedence is: default_charset < output_encoding < iconv.output_encoding -; To use an output encoding conversion, iconv's output handler must be set -; otherwise output encoding conversion cannot be performed. -;iconv.output_encoding = - -[intl] -;intl.default_locale = -; This directive allows you to produce PHP errors when some error -; happens within intl functions. The value is the level of the error produced. -; Default is 0, which does not produce any errors. -;intl.error_level = E_WARNING -;intl.use_exceptions = 0 - -[sqlite3] -;sqlite3.extension_dir = - -[Pcre] -;PCRE library backtracking limit. -; http://php.net/pcre.backtrack-limit -;pcre.backtrack_limit=100000 - -;PCRE library recursion limit. -;Please note that if you set this value to a high number you may consume all -;the available process stack and eventually crash PHP (due to reaching the -;stack size limit imposed by the Operating System). -; http://php.net/pcre.recursion-limit -;pcre.recursion_limit=100000 - -;Enables or disables JIT compilation of patterns. This requires the PCRE -;library to be compiled with JIT support. -;pcre.jit=1 - -[Pdo] -; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off" -; http://php.net/pdo-odbc.connection-pooling -;pdo_odbc.connection_pooling=strict - -;pdo_odbc.db2_instance_name - -[Pdo_mysql] -; If mysqlnd is used: Number of cache slots for the internal result set cache -; http://php.net/pdo_mysql.cache_size -pdo_mysql.cache_size = 2000 - -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -; http://php.net/pdo_mysql.default-socket -pdo_mysql.default_socket= - -[Phar] -; http://php.net/phar.readonly -;phar.readonly = On - -; http://php.net/phar.require-hash -;phar.require_hash = On - -;phar.cache_list = - -[mail function] -; For Win32 only. -; http://php.net/smtp -SMTP = localhost -; http://php.net/smtp-port -smtp_port = 25 - -; For Win32 only. -; http://php.net/sendmail-from -;sendmail_from = me@example.com - -; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). -; http://php.net/sendmail-path -;sendmail_path = - -; Force the addition of the specified parameters to be passed as extra parameters -; to the sendmail binary. These parameters will always replace the value of -; the 5th parameter to mail(). -;mail.force_extra_parameters = - -; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename -mail.add_x_header = On - -; The path to a log file that will log all mail() calls. Log entries include -; the full path of the script, line number, To address and headers. -;mail.log = -; Log mail to syslog (Event Log on Windows). -;mail.log = syslog - -[ODBC] -; http://php.net/odbc.default-db -;odbc.default_db = Not yet implemented - -; http://php.net/odbc.default-user -;odbc.default_user = Not yet implemented - -; http://php.net/odbc.default-pw -;odbc.default_pw = Not yet implemented - -; Controls the ODBC cursor model. -; Default: SQL_CURSOR_STATIC (default). -;odbc.default_cursortype - -; Allow or prevent persistent links. -; http://php.net/odbc.allow-persistent -odbc.allow_persistent = On - -; Check that a connection is still valid before reuse. -; http://php.net/odbc.check-persistent -odbc.check_persistent = On - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/odbc.max-persistent -odbc.max_persistent = -1 - -; Maximum number of links (persistent + non-persistent). -1 means no limit. -; http://php.net/odbc.max-links -odbc.max_links = -1 - -; Handling of LONG fields. Returns number of bytes to variables. 0 means -; passthru. -; http://php.net/odbc.defaultlrl -odbc.defaultlrl = 4096 - -; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char. -; See the documentation on odbc_binmode and odbc_longreadlen for an explanation -; of odbc.defaultlrl and odbc.defaultbinmode -; http://php.net/odbc.defaultbinmode -odbc.defaultbinmode = 1 - -;birdstep.max_links = -1 - -[Interbase] -; Allow or prevent persistent links. -ibase.allow_persistent = 1 - -; Maximum number of persistent links. -1 means no limit. -ibase.max_persistent = -1 - -; Maximum number of links (persistent + non-persistent). -1 means no limit. -ibase.max_links = -1 - -; Default database name for ibase_connect(). -;ibase.default_db = - -; Default username for ibase_connect(). -;ibase.default_user = - -; Default password for ibase_connect(). -;ibase.default_password = - -; Default charset for ibase_connect(). -;ibase.default_charset = - -; Default timestamp format. -ibase.timestampformat = "%Y-%m-%d %H:%M:%S" - -; Default date format. -ibase.dateformat = "%Y-%m-%d" - -; Default time format. -ibase.timeformat = "%H:%M:%S" - -[MySQLi] - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/mysqli.max-persistent -mysqli.max_persistent = -1 - -; Allow accessing, from PHP's perspective, local files with LOAD DATA statements -; http://php.net/mysqli.allow_local_infile -;mysqli.allow_local_infile = On - -; Allow or prevent persistent links. -; http://php.net/mysqli.allow-persistent -mysqli.allow_persistent = On - -; Maximum number of links. -1 means no limit. -; http://php.net/mysqli.max-links -mysqli.max_links = -1 - -; If mysqlnd is used: Number of cache slots for the internal result set cache -; http://php.net/mysqli.cache_size -mysqli.cache_size = 2000 - -; Default port number for mysqli_connect(). If unset, mysqli_connect() will use -; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the -; compile-time value defined MYSQL_PORT (in that order). Win32 will only look -; at MYSQL_PORT. -; http://php.net/mysqli.default-port -mysqli.default_port = 3306 - -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -; http://php.net/mysqli.default-socket -mysqli.default_socket = - -; Default host for mysql_connect() (doesn't apply in safe mode). -; http://php.net/mysqli.default-host -mysqli.default_host = - -; Default user for mysql_connect() (doesn't apply in safe mode). -; http://php.net/mysqli.default-user -mysqli.default_user = - -; Default password for mysqli_connect() (doesn't apply in safe mode). -; Note that this is generally a *bad* idea to store passwords in this file. -; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw") -; and reveal this password! And of course, any users with read access to this -; file will be able to reveal the password as well. -; http://php.net/mysqli.default-pw -mysqli.default_pw = - -; Allow or prevent reconnect -mysqli.reconnect = Off - -[mysqlnd] -; Enable / Disable collection of general statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -; http://php.net/mysqlnd.collect_statistics -mysqlnd.collect_statistics = On - -; Enable / Disable collection of memory usage statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -; http://php.net/mysqlnd.collect_memory_statistics -mysqlnd.collect_memory_statistics = Off - -; Records communication from all extensions using mysqlnd to the specified log -; file. -; http://php.net/mysqlnd.debug -;mysqlnd.debug = - -; Defines which queries will be logged. -; http://php.net/mysqlnd.log_mask -;mysqlnd.log_mask = 0 - -; Default size of the mysqlnd memory pool, which is used by result sets. -; http://php.net/mysqlnd.mempool_default_size -;mysqlnd.mempool_default_size = 16000 - -; Size of a pre-allocated buffer used when sending commands to MySQL in bytes. -; http://php.net/mysqlnd.net_cmd_buffer_size -;mysqlnd.net_cmd_buffer_size = 2048 - -; Size of a pre-allocated buffer used for reading data sent by the server in -; bytes. -; http://php.net/mysqlnd.net_read_buffer_size -;mysqlnd.net_read_buffer_size = 32768 - -; Timeout for network requests in seconds. -; http://php.net/mysqlnd.net_read_timeout -;mysqlnd.net_read_timeout = 31536000 - -; SHA-256 Authentication Plugin related. File with the MySQL server public RSA -; key. -; http://php.net/mysqlnd.sha256_server_public_key -;mysqlnd.sha256_server_public_key = - -[OCI8] - -; Connection: Enables privileged connections using external -; credentials (OCI_SYSOPER, OCI_SYSDBA) -; http://php.net/oci8.privileged-connect -;oci8.privileged_connect = Off - -; Connection: The maximum number of persistent OCI8 connections per -; process. Using -1 means no limit. -; http://php.net/oci8.max-persistent -;oci8.max_persistent = -1 - -; Connection: The maximum number of seconds a process is allowed to -; maintain an idle persistent connection. Using -1 means idle -; persistent connections will be maintained forever. -; http://php.net/oci8.persistent-timeout -;oci8.persistent_timeout = -1 - -; Connection: The number of seconds that must pass before issuing a -; ping during oci_pconnect() to check the connection validity. When -; set to 0, each oci_pconnect() will cause a ping. Using -1 disables -; pings completely. -; http://php.net/oci8.ping-interval -;oci8.ping_interval = 60 - -; Connection: Set this to a user chosen connection class to be used -; for all pooled server requests with Oracle 11g Database Resident -; Connection Pooling (DRCP). To use DRCP, this value should be set to -; the same string for all web servers running the same application, -; the database pool must be configured, and the connection string must -; specify to use a pooled server. -;oci8.connection_class = - -; High Availability: Using On lets PHP receive Fast Application -; Notification (FAN) events generated when a database node fails. The -; database must also be configured to post FAN events. -;oci8.events = Off - -; Tuning: This option enables statement caching, and specifies how -; many statements to cache. Using 0 disables statement caching. -; http://php.net/oci8.statement-cache-size -;oci8.statement_cache_size = 20 - -; Tuning: Enables statement prefetching and sets the default number of -; rows that will be fetched automatically after statement execution. -; http://php.net/oci8.default-prefetch -;oci8.default_prefetch = 100 - -; Compatibility. Using On means oci_close() will not close -; oci_connect() and oci_new_connect() connections. -; http://php.net/oci8.old-oci-close-semantics -;oci8.old_oci_close_semantics = Off - -[PostgreSQL] -; Allow or prevent persistent links. -; http://php.net/pgsql.allow-persistent -pgsql.allow_persistent = On - -; Detect broken persistent links always with pg_pconnect(). -; Auto reset feature requires a little overheads. -; http://php.net/pgsql.auto-reset-persistent -pgsql.auto_reset_persistent = Off - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/pgsql.max-persistent -pgsql.max_persistent = -1 - -; Maximum number of links (persistent+non persistent). -1 means no limit. -; http://php.net/pgsql.max-links -pgsql.max_links = -1 - -; Ignore PostgreSQL backends Notice message or not. -; Notice message logging require a little overheads. -; http://php.net/pgsql.ignore-notice -pgsql.ignore_notice = 0 - -; Log PostgreSQL backends Notice message or not. -; Unless pgsql.ignore_notice=0, module cannot log notice message. -; http://php.net/pgsql.log-notice -pgsql.log_notice = 0 - -[bcmath] -; Number of decimal digits for all bcmath functions. -; http://php.net/bcmath.scale -bcmath.scale = 0 - -[browscap] -; http://php.net/browscap -;browscap = extra/browscap.ini - -[Session] -; Handler used to store/retrieve data. -; http://php.net/session.save-handler -session.save_handler = files - -; Argument passed to save_handler. In the case of files, this is the path -; where data files are stored. Note: Windows users have to change this -; variable in order to use PHP's session functions. -; -; The path can be defined as: -; -; session.save_path = "N;/path" -; -; where N is an integer. Instead of storing all the session files in -; /path, what this will do is use subdirectories N-levels deep, and -; store the session data in those directories. This is useful if -; your OS has problems with many files in one directory, and is -; a more efficient layout for servers that handle many sessions. -; -; NOTE 1: PHP will not create this directory structure automatically. -; You can use the script in the ext/session dir for that purpose. -; NOTE 2: See the section on garbage collection below if you choose to -; use subdirectories for session storage -; -; The file storage module creates files using mode 600 by default. -; You can change that by using -; -; session.save_path = "N;MODE;/path" -; -; where MODE is the octal representation of the mode. Note that this -; does not overwrite the process's umask. -; http://php.net/session.save-path -;session.save_path = "/tmp" - -; Whether to use strict session mode. -; Strict session mode does not accept uninitialized session ID and regenerate -; session ID if browser sends uninitialized session ID. Strict mode protects -; applications from session fixation via session adoption vulnerability. It is -; disabled by default for maximum compatibility, but enabling it is encouraged. -; https://wiki.php.net/rfc/strict_sessions -session.use_strict_mode = 0 - -; Whether to use cookies. -; http://php.net/session.use-cookies -session.use_cookies = 1 - -; http://php.net/session.cookie-secure -;session.cookie_secure = - -; This option forces PHP to fetch and use a cookie for storing and maintaining -; the session id. We encourage this operation as it's very helpful in combating -; session hijacking when not specifying and managing your own session id. It is -; not the be-all and end-all of session hijacking defense, but it's a good start. -; http://php.net/session.use-only-cookies -session.use_only_cookies = 1 - -; Name of the session (used as cookie name). -; http://php.net/session.name -session.name = PHPSESSID - -; Initialize session on request startup. -; http://php.net/session.auto-start -session.auto_start = 0 - -; Lifetime in seconds of cookie or, if 0, until browser is restarted. -; http://php.net/session.cookie-lifetime -session.cookie_lifetime = 0 - -; The path for which the cookie is valid. -; http://php.net/session.cookie-path -session.cookie_path = / - -; The domain for which the cookie is valid. -; http://php.net/session.cookie-domain -session.cookie_domain = - -; Whether or not to add the httpOnly flag to the cookie, which makes it inaccessible to browser scripting languages such as JavaScript. -; http://php.net/session.cookie-httponly -session.cookie_httponly = - -; Handler used to serialize data. php is the standard serializer of PHP. -; http://php.net/session.serialize-handler -session.serialize_handler = php - -; Defines the probability that the 'garbage collection' process is started -; on every session initialization. The probability is calculated by using -; gc_probability/gc_divisor. Where session.gc_probability is the numerator -; and gc_divisor is the denominator in the equation. Setting this value to 1 -; when the session.gc_divisor value is 100 will give you approximately a 1% chance -; the gc will run on any give request. -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; http://php.net/session.gc-probability -session.gc_probability = 1 - -; Defines the probability that the 'garbage collection' process is started on every -; session initialization. The probability is calculated by using the following equation: -; gc_probability/gc_divisor. Where session.gc_probability is the numerator and -; session.gc_divisor is the denominator in the equation. Setting this value to 1 -; when the session.gc_divisor value is 100 will give you approximately a 1% chance -; the gc will run on any give request. Increasing this value to 1000 will give you -; a 0.1% chance the gc will run on any give request. For high volume production servers, -; this is a more efficient approach. -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 -; http://php.net/session.gc-divisor -session.gc_divisor = 1000 - -; After this number of seconds, stored data will be seen as 'garbage' and -; cleaned up by the garbage collection process. -; http://php.net/session.gc-maxlifetime -session.gc_maxlifetime = 1440 - -; NOTE: If you are using the subdirectory option for storing session files -; (see session.save_path above), then garbage collection does *not* -; happen automatically. You will need to do your own garbage -; collection through a shell script, cron entry, or some other method. -; For example, the following script would is the equivalent of -; setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes): -; find /path/to/sessions -cmin +24 -type f | xargs rm - -; Check HTTP Referer to invalidate externally stored URLs containing ids. -; HTTP_REFERER has to contain this substring for the session to be -; considered as valid. -; http://php.net/session.referer-check -session.referer_check = - -; Set to {nocache,private,public,} to determine HTTP caching aspects -; or leave this empty to avoid sending anti-caching headers. -; http://php.net/session.cache-limiter -session.cache_limiter = nocache - -; Document expires after n minutes. -; http://php.net/session.cache-expire -session.cache_expire = 180 - -; trans sid support is disabled by default. -; Use of trans sid may risk your users' security. -; Use this option with caution. -; - User may send URL contains active session ID -; to other person via. email/irc/etc. -; - URL that contains active session ID may be stored -; in publicly accessible computer. -; - User may access your site with the same session ID -; always using URL stored in browser's history or bookmarks. -; http://php.net/session.use-trans-sid -session.use_trans_sid = 0 - -; Set session ID character length. This value could be between 22 to 256. -; Shorter length than default is supported only for compatibility reason. -; Users should use 32 or more chars. -; http://php.net/session.sid-length -; Default Value: 32 -; Development Value: 26 -; Production Value: 26 -session.sid_length = 26 - -; The URL rewriter will look for URLs in a defined set of HTML tags. -; is special; if you include them here, the rewriter will -; add a hidden field with the info which is otherwise appended -; to URLs. tag's action attribute URL will not be modified -; unless it is specified. -; Note that all valid entries require a "=", even if no value follows. -; Default Value: "a=href,area=href,frame=src,form=" -; Development Value: "a=href,area=href,frame=src,form=" -; Production Value: "a=href,area=href,frame=src,form=" -; http://php.net/url-rewriter.tags -session.trans_sid_tags = "a=href,area=href,frame=src,form=" - -; URL rewriter does not rewrite absolute URLs by default. -; To enable rewrites for absolute pathes, target hosts must be specified -; at RUNTIME. i.e. use ini_set() -; tags is special. PHP will check action attribute's URL regardless -; of session.trans_sid_tags setting. -; If no host is defined, HTTP_HOST will be used for allowed host. -; Example value: php.net,www.php.net,wiki.php.net -; Use "," for multiple hosts. No spaces are allowed. -; Default Value: "" -; Development Value: "" -; Production Value: "" -;session.trans_sid_hosts="" - -; Define how many bits are stored in each character when converting -; the binary hash data to something readable. -; Possible values: -; 4 (4 bits: 0-9, a-f) -; 5 (5 bits: 0-9, a-v) -; 6 (6 bits: 0-9, a-z, A-Z, "-", ",") -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 -; http://php.net/session.hash-bits-per-character -session.sid_bits_per_character = 5 - -; Enable upload progress tracking in $_SESSION -; Default Value: On -; Development Value: On -; Production Value: On -; http://php.net/session.upload-progress.enabled -;session.upload_progress.enabled = On - -; Cleanup the progress information as soon as all POST data has been read -; (i.e. upload completed). -; Default Value: On -; Development Value: On -; Production Value: On -; http://php.net/session.upload-progress.cleanup -;session.upload_progress.cleanup = On - -; A prefix used for the upload progress key in $_SESSION -; Default Value: "upload_progress_" -; Development Value: "upload_progress_" -; Production Value: "upload_progress_" -; http://php.net/session.upload-progress.prefix -;session.upload_progress.prefix = "upload_progress_" - -; The index name (concatenated with the prefix) in $_SESSION -; containing the upload progress information -; Default Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Development Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Production Value: "PHP_SESSION_UPLOAD_PROGRESS" -; http://php.net/session.upload-progress.name -;session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS" - -; How frequently the upload progress should be updated. -; Given either in percentages (per-file), or in bytes -; Default Value: "1%" -; Development Value: "1%" -; Production Value: "1%" -; http://php.net/session.upload-progress.freq -;session.upload_progress.freq = "1%" - -; The minimum delay between updates, in seconds -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; http://php.net/session.upload-progress.min-freq -;session.upload_progress.min_freq = "1" - -; Only write session data when session data is changed. Enabled by default. -; http://php.net/session.lazy-write -;session.lazy_write = On - -[Assertion] -; Switch whether to compile assertions at all (to have no overhead at run-time) -; -1: Do not compile at all -; 0: Jump over assertion at run-time -; 1: Execute assertions -; Changing from or to a negative value is only possible in php.ini! (For turning assertions on and off at run-time, see assert.active, when zend.assertions = 1) -; Default Value: 1 -; Development Value: 1 -; Production Value: -1 -; http://php.net/zend.assertions -zend.assertions = -1 - -; Assert(expr); active by default. -; http://php.net/assert.active -;assert.active = On - -; Throw an AssertationException on failed assertions -; http://php.net/assert.exception -;assert.exception = On - -; Issue a PHP warning for each failed assertion. (Overridden by assert.exception if active) -; http://php.net/assert.warning -;assert.warning = On - -; Don't bail out by default. -; http://php.net/assert.bail -;assert.bail = Off - -; User-function to be called if an assertion fails. -; http://php.net/assert.callback -;assert.callback = 0 - -; Eval the expression with current error_reporting(). Set to true if you want -; error_reporting(0) around the eval(). -; http://php.net/assert.quiet-eval -;assert.quiet_eval = 0 - -[COM] -; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs -; http://php.net/com.typelib-file -;com.typelib_file = - -; allow Distributed-COM calls -; http://php.net/com.allow-dcom -;com.allow_dcom = true - -; autoregister constants of a components typlib on com_load() -; http://php.net/com.autoregister-typelib -;com.autoregister_typelib = true - -; register constants casesensitive -; http://php.net/com.autoregister-casesensitive -;com.autoregister_casesensitive = false - -; show warnings on duplicate constant registrations -; http://php.net/com.autoregister-verbose -;com.autoregister_verbose = true - -; The default character set code-page to use when passing strings to and from COM objects. -; Default: system ANSI code page -;com.code_page= - -[mbstring] -; language for internal character representation. -; This affects mb_send_mail() and mbstring.detect_order. -; http://php.net/mbstring.language -;mbstring.language = Japanese - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; internal/script encoding. -; Some encoding cannot work as internal encoding. (e.g. SJIS, BIG5, ISO-2022-*) -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;mbstring.internal_encoding = - -; Use of this INI entry is deprecated, use global input_encoding instead. -; http input encoding. -; mbstring.encoding_traslation = On is needed to use this setting. -; If empty, default_charset or input_encoding or mbstring.input is used. -; The precedence is: default_charset < intput_encoding < mbsting.http_input -; http://php.net/mbstring.http-input -;mbstring.http_input = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; http output encoding. -; mb_output_handler must be registered as output buffer to function. -; If empty, default_charset or output_encoding or mbstring.http_output is used. -; The precedence is: default_charset < output_encoding < mbstring.http_output -; To use an output encoding conversion, mbstring's output handler must be set -; otherwise output encoding conversion cannot be performed. -; http://php.net/mbstring.http-output -;mbstring.http_output = - -; enable automatic encoding translation according to -; mbstring.internal_encoding setting. Input chars are -; converted to internal encoding by setting this to On. -; Note: Do _not_ use automatic encoding translation for -; portable libs/applications. -; http://php.net/mbstring.encoding-translation -;mbstring.encoding_translation = Off - -; automatic encoding detection order. -; "auto" detect order is changed according to mbstring.language -; http://php.net/mbstring.detect-order -;mbstring.detect_order = auto - -; substitute_character used when character cannot be converted -; one from another -; http://php.net/mbstring.substitute-character -;mbstring.substitute_character = none - -; overload(replace) single byte functions by mbstring functions. -; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(), -; etc. Possible values are 0,1,2,4 or combination of them. -; For example, 7 for overload everything. -; 0: No overload -; 1: Overload mail() function -; 2: Overload str*() functions -; 4: Overload ereg*() functions -; http://php.net/mbstring.func-overload -;mbstring.func_overload = 0 - -; enable strict encoding detection. -; Default: Off -;mbstring.strict_detection = On - -; This directive specifies the regex pattern of content types for which mb_output_handler() -; is activated. -; Default: mbstring.http_output_conv_mimetype=^(text/|application/xhtml\+xml) -;mbstring.http_output_conv_mimetype= - -[gd] -; Tell the jpeg decode to ignore warnings and try to create -; a gd image. The warning will then be displayed as notices -; disabled by default -; http://php.net/gd.jpeg-ignore-warning -;gd.jpeg_ignore_warning = 1 - -[exif] -; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS. -; With mbstring support this will automatically be converted into the encoding -; given by corresponding encode setting. When empty mbstring.internal_encoding -; is used. For the decode settings you can distinguish between motorola and -; intel byte order. A decode setting cannot be empty. -; http://php.net/exif.encode-unicode -;exif.encode_unicode = ISO-8859-15 - -; http://php.net/exif.decode-unicode-motorola -;exif.decode_unicode_motorola = UCS-2BE - -; http://php.net/exif.decode-unicode-intel -;exif.decode_unicode_intel = UCS-2LE - -; http://php.net/exif.encode-jis -;exif.encode_jis = - -; http://php.net/exif.decode-jis-motorola -;exif.decode_jis_motorola = JIS - -; http://php.net/exif.decode-jis-intel -;exif.decode_jis_intel = JIS - -[Tidy] -; The path to a default tidy configuration file to use when using tidy -; http://php.net/tidy.default-config -;tidy.default_config = /usr/local/lib/php/default.tcfg - -; Should tidy clean and repair output automatically? -; WARNING: Do not use this option if you are generating non-html content -; such as dynamic images -; http://php.net/tidy.clean-output -tidy.clean_output = Off - -[soap] -; Enables or disables WSDL caching feature. -; http://php.net/soap.wsdl-cache-enabled -soap.wsdl_cache_enabled=1 - -; Sets the directory name where SOAP extension will put cache files. -; http://php.net/soap.wsdl-cache-dir -soap.wsdl_cache_dir="/tmp" - -; (time to live) Sets the number of second while cached file will be used -; instead of original one. -; http://php.net/soap.wsdl-cache-ttl -soap.wsdl_cache_ttl=86400 - -; Sets the size of the cache limit. (Max. number of WSDL files to cache) -soap.wsdl_cache_limit = 5 - -[sysvshm] -; A default size of the shared memory segment -;sysvshm.init_mem = 10000 - -[ldap] -; Sets the maximum number of open links or -1 for unlimited. -ldap.max_links = -1 - -[dba] -;dba.default_handler= - -[opcache] -; Determines if Zend OPCache is enabled -;opcache.enable=1 - -; Determines if Zend OPCache is enabled for the CLI version of PHP -;opcache.enable_cli=1 - -; The OPcache shared memory storage size. -;opcache.memory_consumption=128 - -; The amount of memory for interned strings in Mbytes. -;opcache.interned_strings_buffer=8 - -; The maximum number of keys (scripts) in the OPcache hash table. -; Only numbers between 200 and 1000000 are allowed. -;opcache.max_accelerated_files=10000 - -; The maximum percentage of "wasted" memory until a restart is scheduled. -;opcache.max_wasted_percentage=5 - -; When this directive is enabled, the OPcache appends the current working -; directory to the script key, thus eliminating possible collisions between -; files with the same name (basename). Disabling the directive improves -; performance, but may break existing applications. -;opcache.use_cwd=1 - -; When disabled, you must reset the OPcache manually or restart the -; webserver for changes to the filesystem to take effect. -;opcache.validate_timestamps=1 - -; How often (in seconds) to check file timestamps for changes to the shared -; memory storage allocation. ("1" means validate once per second, but only -; once per request. "0" means always validate) -;opcache.revalidate_freq=2 - -; Enables or disables file search in include_path optimization -;opcache.revalidate_path=0 - -; If disabled, all PHPDoc comments are dropped from the code to reduce the -; size of the optimized code. -;opcache.save_comments=1 - -; If enabled, a fast shutdown sequence is used for the accelerated code -; Depending on the used Memory Manager this may cause some incompatibilities. -;opcache.fast_shutdown=0 - -; Allow file existence override (file_exists, etc.) performance feature. -;opcache.enable_file_override=0 - -; A bitmask, where each bit enables or disables the appropriate OPcache -; passes -;opcache.optimization_level=0xffffffff - -;opcache.inherited_hack=1 -;opcache.dups_fix=0 - -; The location of the OPcache blacklist file (wildcards allowed). -; Each OPcache blacklist file is a text file that holds the names of files -; that should not be accelerated. The file format is to add each filename -; to a new line. The filename may be a full path or just a file prefix -; (i.e., /var/www/x blacklists all the files and directories in /var/www -; that start with 'x'). Line starting with a ; are ignored (comments). -;opcache.blacklist_filename= - -; Allows exclusion of large files from being cached. By default all files -; are cached. -;opcache.max_file_size=0 - -; Check the cache checksum each N requests. -; The default value of "0" means that the checks are disabled. -;opcache.consistency_checks=0 - -; How long to wait (in seconds) for a scheduled restart to begin if the cache -; is not being accessed. -;opcache.force_restart_timeout=180 - -; OPcache error_log file name. Empty string assumes "stderr". -;opcache.error_log= - -; All OPcache errors go to the Web server log. -; By default, only fatal errors (level 0) or errors (level 1) are logged. -; You can also enable warnings (level 2), info messages (level 3) or -; debug messages (level 4). -;opcache.log_verbosity_level=1 - -; Preferred Shared Memory back-end. Leave empty and let the system decide. -;opcache.preferred_memory_model= - -; Protect the shared memory from unexpected writing during script execution. -; Useful for internal debugging only. -;opcache.protect_memory=0 - -; Allows calling OPcache API functions only from PHP scripts which path is -; started from specified string. The default "" means no restriction -;opcache.restrict_api= - -; Mapping base of shared memory segments (for Windows only). All the PHP -; processes have to map shared memory into the same address space. This -; directive allows to manually fix the "Unable to reattach to base address" -; errors. -;opcache.mmap_base= - -; Enables and sets the second level cache directory. -; It should improve performance when SHM memory is full, at server restart or -; SHM reset. The default "" disables file based caching. -;opcache.file_cache= - -; Enables or disables opcode caching in shared memory. -;opcache.file_cache_only=0 - -; Enables or disables checksum validation when script loaded from file cache. -;opcache.file_cache_consistency_checks=1 - -; Implies opcache.file_cache_only=1 for a certain process that failed to -; reattach to the shared memory (for Windows only). Explicitly enabled file -; cache is required. -;opcache.file_cache_fallback=1 - -; Enables or disables copying of PHP code (text segment) into HUGE PAGES. -; This should improve performance, but requires appropriate OS configuration. -;opcache.huge_code_pages=1 - -; Validate cached file permissions. -;opcache.validate_permission=0 - -; Prevent name collisions in chroot'ed environment. -;opcache.validate_root=0 - -[curl] -; A default value for the CURLOPT_CAINFO option. This is required to be an -; absolute path. -;curl.cainfo = - -[openssl] -; The location of a Certificate Authority (CA) file on the local filesystem -; to use when verifying the identity of SSL/TLS peers. Most users should -; not specify a value for this directive as PHP will attempt to use the -; OS-managed cert stores in its absence. If specified, this value may still -; be overridden on a per-stream basis via the "cafile" SSL stream context -; option. -;openssl.cafile= - -; If openssl.cafile is not specified or if the CA file is not found, the -; directory pointed to by openssl.capath is searched for a suitable -; certificate. This value must be a correctly hashed certificate directory. -; Most users should not specify a value for this directive as PHP will -; attempt to use the OS-managed cert stores in its absence. If specified, -; this value may still be overridden on a per-stream basis via the "capath" -; SSL stream context option. -;openssl.capath= - -; Local Variables: -; tab-width: 4 -; End: - -[XDebug] -xdebug.remote_enable = 1 -xdebug.remote_handler = "dbgp" -; Set to host.docker.internal on Mac and Windows, otherwise, set to host real ip -xdebug.remote_host = host.docker.internal -;xdebug.remote_port = 9000 -xdebug.remote_log = /var/log/php/xdebug.log - -SERVER_ENV=develop - -yaf.use_spl_autoload=1 - -[xhprof] -;xhprof.output_dir = /var/log/php/xhprof.log \ No newline at end of file diff --git a/php8/8.0.30/data.yml b/php8/8.0.30/data.yml deleted file mode 100755 index deeede5ad..000000000 --- a/php8/8.0.30/data.yml +++ /dev/null @@ -1,18 +0,0 @@ -additionalProperties: - formFields: - - default: 9000 - envKey: PANEL_APP_PORT_HTTP - labelEn: PHP-FPM Port - labelZh: PHP-FPM 端口 - label: - en: PHP-FPM Port - ja: PHP-FPM ポート - ms: Port PHP-FPM - pt-br: Porta PHP-FPM - ru: Порт PHP-FPM - ko: PHP-FPM 포트 - zh-Hant: PHP-FPM 埠 - zh: PHP-FPM 端口 - required: true - rule: paramPort - type: number diff --git a/php8/8.0.30/docker-compose.yml b/php8/8.0.30/docker-compose.yml deleted file mode 100644 index dc530c778..000000000 --- a/php8/8.0.30/docker-compose.yml +++ /dev/null @@ -1,21 +0,0 @@ -services: - php: - image: ${IMAGE_NAME} - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - volumes: - - ${PANEL_WEBSITE_DIR}:/www/ - - ./conf/php.ini:/usr/local/etc/php/php.ini - - ./conf/php-fpm.conf:/usr/local/etc/php-fpm.d/www.conf - - ./log:/var/log/php - - ./composer:/tmp/composer - - ./extensions:/php/extensions - ports: - - 127.0.0.1:${PANEL_APP_PORT_HTTP}:9000 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/php8/8.1.31/build/.env b/php8/8.1.31/build/.env deleted file mode 100644 index bba01c0d5..000000000 --- a/php8/8.1.31/build/.env +++ /dev/null @@ -1,14 +0,0 @@ -CONTAINER_PACKAGE_URL=mirrors.ustc.edu.cn - -PHP_VERSION=8.1.31 -PHP_PHP_CONF_FILE=./php/php.ini -PHP_FPM_CONF_FILE=./php/php-fpm.conf -PHP_LOG_DIR=./logs/php -PHP_EXTENSIONS= - -SOURCE_DIR=./www - -TZ=Asia/Shanghai -DATA_DIR=./data -IMAGE_NAME=1panel-php:8.1.31 -INSTALL_SUPERVISOR=0 \ No newline at end of file diff --git a/php8/8.1.31/build/config.json b/php8/8.1.31/build/config.json deleted file mode 100644 index 28ee3c56b..000000000 --- a/php8/8.1.31/build/config.json +++ /dev/null @@ -1,134 +0,0 @@ -{ - "formFields": [ - { - "type": "select", - "multiple": true, - "labelZh": "扩展", - "labelEn": "Extensions", - "default": ["mysqli","pdo_mysql"], - "values": [ - { - "label": "opcache", - "value": "opcache" - }, - { - "label": "memcached", - "value": "memcached" - }, - { - "label": "memcache", - "value": "memcache" - }, - { - "label": "redis", - "value": "redis" - }, - { - "label": "mcrypt", - "value": "mcrypt" - }, - { - "label": "xdebug", - "value": "xdebug" - }, - { - "label": "imap", - "value": "imap" - }, - { - "label": "exif", - "value": "exif" - }, - { - "label": "intl", - "value": "intl" - }, - { - "label": "swoole", - "value": "swoole" - }, - { - "label": "yaf", - "value": "yaf" - }, - { - "label": "pgsql", - "value": "pgsql" - }, - { - "label": "pdo_pgsql", - "value": "pdo_pgsql" - }, - { - "label": "snmp", - "value": "snmp" - }, { - "label": "ldap", - "value": "ldap" - }, - { - "label": "pspell", - "value": "pspell" - }, - { - "label": "bz2", - "value": "bz2" - }, - { - "label": "sysvshm", - "value": "sysvshm" - }, - { - "label": "calendar", - "value": "calendar" - }, - { - "label": "gmp", - "value": "gmp" - }, - { - "label": "sysvmsg", - "value": "sysvmsg" - }, - { - "label": "igbinary", - "value": "igbinary" - }, - { - "label": "mysqli", - "value": "mysqli" - }, - { - "label": "pdo_mysql", - "value": "pdo_mysql" - }, - { - "label": "mbstring", - "value": "mbstring" - }, - { - "label": "gd", - "value": "gd" - }, - { - "label": "ioncube_loader", - "value": "ioncube_loader" - }, - { - "label": "curl", - "value": "curl" - }, - { - "label": "sg15", - "value": "sourceguardian" - }, - { - "label": "imagick", - "value": "imagick" - } - ], - "envKey": "PHP_EXTENSIONS", - "edit": true - } - ] -} \ No newline at end of file diff --git a/php8/8.1.31/build/docker-compose.yml b/php8/8.1.31/build/docker-compose.yml deleted file mode 100644 index 21e9fa737..000000000 --- a/php8/8.1.31/build/docker-compose.yml +++ /dev/null @@ -1,19 +0,0 @@ -services: - 1panel-php: - build: - context: ./php - args: - PHP_IMAGE: php:${PHP_VERSION}-fpm-alpine - CONTAINER_PACKAGE_URL: ${CONTAINER_PACKAGE_URL} - PHP_EXTENSIONS: ${PHP_EXTENSIONS} - TZ: ${TZ} - image: ${IMAGE_NAME} - volumes: - - ${SOURCE_DIR}:/www/ - - ${PHP_PHP_CONF_FILE}:/usr/local/etc/php/php.ini - - ${PHP_FPM_CONF_FILE}:/usr/local/etc/php-fpm.d/www.conf - - ${PHP_LOG_DIR}:/var/log/php - - ${DATA_DIR}/composer:/tmp/composer - restart: always - cap_add: - - SYS_PTRACE diff --git a/php8/8.1.31/build/php/Dockerfile b/php8/8.1.31/build/php/Dockerfile deleted file mode 100644 index e0e0cb64c..000000000 --- a/php8/8.1.31/build/php/Dockerfile +++ /dev/null @@ -1,39 +0,0 @@ -ARG PHP_IMAGE -FROM ${PHP_IMAGE} - -ARG TZ -ARG PHP_EXTENSIONS -ARG CONTAINER_PACKAGE_URL - - -RUN if [ $CONTAINER_PACKAGE_URL ] ; then sed -i "s/dl-cdn.alpinelinux.org/${CONTAINER_PACKAGE_URL}/g" /etc/apk/repositories ; fi - -ADD ./extensions/install-php-extensions /usr/local/bin/ -RUN chmod uga+x /usr/local/bin/install-php-extensions - -COPY ./extensions /tmp/extensions -WORKDIR /tmp/extensions -RUN chmod +x install.sh \ - && sh install.sh \ - && rm -rf /tmp/extensions - - -RUN apk --no-cache add tzdata \ - && cp "/usr/share/zoneinfo/$TZ" /etc/localtime \ - && echo "$TZ" > /etc/timezone - -# Fix: https://github.com/docker-library/php/issues/240 -RUN apk add gnu-libiconv libstdc++ --no-cache --repository http://${CONTAINER_PACKAGE_URL}/alpine/edge/community/ --allow-untrusted -ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so php - - -# Install composer and change it's cache home -RUN curl -o /usr/bin/composer https://mirrors.aliyun.com/composer/composer.phar \ - && chmod +x /usr/bin/composer -ENV COMPOSER_HOME=/tmp/composer - -# php image's www-data user uid & gid are 82, change them to 1000 (primary user) -RUN apk --no-cache add shadow && usermod -u 1000 www-data && groupmod -g 1000 www-data - - -WORKDIR /www \ No newline at end of file diff --git a/php8/8.1.31/build/php/extensions/event-3.0.8.tgz b/php8/8.1.31/build/php/extensions/event-3.0.8.tgz deleted file mode 100644 index e7a471bbe..000000000 Binary files a/php8/8.1.31/build/php/extensions/event-3.0.8.tgz and /dev/null differ diff --git a/php8/8.1.31/build/php/extensions/imagick-3.7.0.tgz b/php8/8.1.31/build/php/extensions/imagick-3.7.0.tgz deleted file mode 100644 index 80d674cda..000000000 Binary files a/php8/8.1.31/build/php/extensions/imagick-3.7.0.tgz and /dev/null differ diff --git a/php8/8.1.31/build/php/extensions/install-composer.sh b/php8/8.1.31/build/php/extensions/install-composer.sh deleted file mode 100644 index 34074732d..000000000 --- a/php8/8.1.31/build/php/extensions/install-composer.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/sh - -# The latest mirror's composer version only support for PHP 7.2.5 -# And if your PHP version is lesser than that, will be download supported version. -supportLatest=$(php -r "echo version_compare(PHP_VERSION, '7.2.5', '>');") - -if [ "$supportLatest" -eq "1" ]; then - curl -o /usr/bin/composer https://mirrors.aliyun.com/composer/composer.phar \ - && chmod +x /usr/bin/composer -else - curl -o /tmp/composer-setup.php https://getcomposer.org/installer \ - && php /tmp/composer-setup.php --install-dir=/tmp \ - && mv /tmp/composer.phar /usr/bin/composer \ - && chmod +x /usr/bin/composer \ - && rm -rf /tmp/composer-setup.php -fi \ No newline at end of file diff --git a/php8/8.1.31/build/php/extensions/install-php-extensions b/php8/8.1.31/build/php/extensions/install-php-extensions deleted file mode 100644 index ffe08e487..000000000 --- a/php8/8.1.31/build/php/extensions/install-php-extensions +++ /dev/null @@ -1,5156 +0,0 @@ -#!/bin/sh - -# This script wraps docker-php-ext-install, properly configuring the system. -# -# Copyright (c) Michele Locati, 2018-2023 -# -# Source: https://github.com/mlocati/docker-php-extension-installer -# -# License: MIT - see https://github.com/mlocati/docker-php-extension-installer/blob/master/LICENSE - -# Let's set a sane environment -set -o errexit -set -o nounset - -if test "${IPE_DEBUG:-}" = "1"; then - set -x -fi - -if ! which docker-php-ext-configure >/dev/null || ! which docker-php-ext-enable >/dev/null || ! which docker-php-ext-install >/dev/null || ! which docker-php-source >/dev/null; then - printf 'The script %s is meant to be used with official Docker PHP Images - https://hub.docker.com/_/php\n' "$0" >&2 - exit 1 -fi - -IPE_VERSION=2.7.31 - -StandWithUkraine() { - if test -t 1 && ! grep -Eq '^VERSION=.*jessie' /etc/os-release; then - printf '\e[37;44m#StandWith\e[30;43mUkraine\e[0m\n' - else - printf '#StandWithUkraine\n' - fi -} - -if test "$IPE_VERSION" = master && test "${CI:-}" != true; then - cat <&2 - exit 1 - fi - DISTRO="$(cat /etc/os-release | grep -E ^ID= | cut -d = -f 2)" - DISTRO_VERSION_NUMBER="$(cat /etc/os-release | grep -E ^VERSION_ID= | cut -d = -f 2 | cut -d '"' -f 2 | cut -d . -f 1,2)" - DISTRO_VERSION="$(printf '%s@%s' $DISTRO $DISTRO_VERSION_NUMBER)" - DISTRO_MAJMIN_VERSION="$(echo "$DISTRO_VERSION_NUMBER" | awk -F. '{print $1*100+$2}')" -} - -# Set: -# - PHP_MAJMIN_VERSION: Major-Minor version, format MMmm (example 800 for PHP 8.0.1) -# - PHP_MAJDOTMIN_VERSION: Major-Minor version, format M.m (example 8.0 for PHP 8.0.1) -# - PHP_MAJMINPAT_VERSION: Major-Minor-Patch version, format MMmmpp (example 80001 for PHP 8.0.1) variables containing integers value -# - PHP_MAJDOTMINDOTPAT_VERSION: Major-Minor-Patch version, format M.m.p (example 8.0.1 for PHP 8.0.1) -# - PHP_THREADSAFE: 1 if PHP is thread-safe (TS), 0 if not thread-safe (NTS) -# - PHP_DEBUGBUILD: 1 if PHP is debug build (configured with "--enable-debug"), 0 otherwise -# - PHP_BITS: 32 if PHP is compiled for 32-bit, 64 if 64-bit -# - PHP_EXTDIR: the absolute path where the PHP extensions reside -setPHPVersionVariables() { - PHP_MAJDOTMINDOTPAT_VERSION="$(php-config --version)" - PHP_MAJMIN_VERSION=$(printf '%s' "$PHP_MAJDOTMINDOTPAT_VERSION" | awk -F. '{print $1*100+$2}') - PHP_MAJDOTMIN_VERSION=$(printf '%s' "$PHP_MAJDOTMINDOTPAT_VERSION" | cut -d. -f1-2) - PHP_MAJMINPAT_VERSION=$(printf '%s' "$PHP_MAJDOTMINDOTPAT_VERSION" | awk -F. '{print $1*10000+$2*100+$3}') - PHP_THREADSAFE=$(php -n -r 'echo ZEND_THREAD_SAFE ? 1 : 0;') - PHP_DEBUGBUILD=$(php -n -r 'echo ZEND_DEBUG_BUILD ? 1 : 0;') - PHP_BITS=$(php -n -r 'echo PHP_INT_SIZE * 8;') - PHP_EXTDIR="$(php -d display_errors=stderr -r 'echo realpath(ini_get("extension_dir"));')" -} - -# Fix apt-get being very slow on Debian Jessie -# See https://bugs.launchpad.net/ubuntu/+source/apt/+bug/1332440 -fixMaxOpenFiles() { - fixMaxOpenFiles_cur=$(ulimit -n 2>/dev/null || echo 0) - if test "$fixMaxOpenFiles_cur" -gt 10000; then - ulimit -n 10000 - fi -} - -# Get the directory containing the compiled PHP extensions -# -# Output: -# The absolute path of the extensions dir -getPHPExtensionsDir() { - php -i | grep -E '^extension_dir' | head -n1 | tr -s '[:space:]*=>[:space:]*' '|' | cut -d'|' -f2 -} - -# Normalize the name of a PHP extension -# -# Arguments: -# $1: the name of the module to be normalized -# -# Output: -# The normalized module name -normalizePHPModuleName() { - normalizePHPModuleName_name="$1" - case "$normalizePHPModuleName_name" in - *A* | *B* | *C* | *D* | *E* | *F* | *G* | *H* | *I* | *J* | *K* | *L* | *M* | *N* | *O* | *P* | *Q* | *R* | *S* | *T* | *U* | *V* | *W* | *X* | *Y* | *Z*) - normalizePHPModuleName_name="$(LC_CTYPE=C printf '%s' "$normalizePHPModuleName_name" | tr '[:upper:]' '[:lower:]')" - ;; - esac - case "$normalizePHPModuleName_name" in - datadog_trace) - normalizePHPModuleName_name=ddtrace - ;; - ioncube | ioncube\ loader) - normalizePHPModuleName_name='ioncube_loader' - ;; - pecl_http) - normalizePHPModuleName_name='http' - ;; - zend\ opcache) - normalizePHPModuleName_name='opcache' - ;; - libsodium) - if test $PHP_MAJMIN_VERSION -ge 700; then - normalizePHPModuleName_name='sodium' - fi - ;; - sodium) - if test $PHP_MAJMIN_VERSION -lt 700; then - normalizePHPModuleName_name='libsodium' - fi - ;; - *\ *) - printf '### WARNING Unrecognized module name: %s ###\n' "$1" >&2 - ;; - esac - printf '%s' "$normalizePHPModuleName_name" -} - -# Get the PECL name of PHP extension -# -# Arguments: -# $1: the name of the extension -# -# Output: -# The PECL name of the extension -getPeclModuleName() { - normalizePHPModuleName_name="$1" - case "$normalizePHPModuleName_name" in - ddtrace) - normalizePHPModuleName_name=datadog_trace - ;; - http) - normalizePHPModuleName_name=pecl_http - ;; - sodium) - normalizePHPModuleName_name=libsodium - ;; - esac - printf '%s' "$normalizePHPModuleName_name" -} - -# Parse a package.xml (or package2.xml) file and extract the module name and version -# -# Arguments: -# $1: the patho to the XML file -# -# Set these variables: -# - EXTRACTPACKAGEVERSIONFROMXML_NAME -# - EXTRACTPACKAGEVERSIONFROMXML_VERSION -# -# Output: -# Nothing -# -# Return: -# 0 (true): if the string is in the list -# 1 (false): if the string is not in the list -extractPackageVersionFromXML() { - if ! test -f "$1"; then - printf 'Unable to find the file\n%s\n' >&2 - return 1 - fi - extractPackageVersionFromXML_code="$( - cat <<'EOT' -$doc = new DOMDocument(); -if (!$doc->load($argv[1])) { - fwrite(STDERR, "Failed to load XML file\n"); - exit(1); -} -set_error_handler( - static function($errno, $errstr) { - fwrite(STDERR, trim((string) $errstr) . "\n"); - exit(1); - }, - -1 -); -$xpath = new DOMXpath($doc); -$xpath->registerNamespace('v20', 'http://pear.php.net/dtd/package-2.0'); -$xpath->registerNamespace('v21', 'http://pear.php.net/dtd/package-2.1'); -if ($xpath->query('/v20:package/v20:dependencies')->length === 1) { - $ns = 'v20:'; -} elseif ($xpath->query('/v21:package/v21:dependencies')->length === 1) { - $ns = 'v21:'; -} elseif ($xpath->query('/package')->length === 1) { - $ns = ''; -} else { - fwrite(STDERR, "Unsupported namespace of the XML of package version details\n"); -} -$nodes = $xpath->query("/{$ns}package/{$ns}name"); -$name = trim((string) $nodes[0]->nodeValue); -if ($ns === '') { - $nodes = $xpath->query("/{$ns}package/{$ns}version"); -} else { - $nodes = $xpath->query("/{$ns}package/{$ns}version/{$ns}release"); -} -$version = trim((string) $nodes[0]->nodeValue); -echo "EXTRACTPACKAGEVERSIONFROMXML_NAME='{$name}'\n"; -echo "EXTRACTPACKAGEVERSIONFROMXML_VERSION='{$version}'\n"; -exit(0); -EOT - )" - extractPackageVersionFromXML_vars="$(php -n -d display_errors=stderr -r "$extractPackageVersionFromXML_code" "$1")" - if test -z "$extractPackageVersionFromXML_vars"; then - return 1 - fi - eval "$extractPackageVersionFromXML_vars" - return 0 -} - -# Parse a module name (and optionally version) as received via command arguments, extracting the version and normalizing it -# Examples: -# xdebug-2.9.8 -# xdebug-^2 -# xdebug-^2.9 -# -# Arguments: -# $1: the name of the module to be normalized -# -# Set these variables: -# - PROCESSED_PHP_MODULE_ARGUMENT -# -# Optionally set these variables: -# - PHP_WANTEDMODULEVERSION_<...> (where <...> is the normalized module name) -# - PHP_MODULESOURCECODEPATH_<...> (where <...> is the normalized module name) -# -# Output: -# Nothing -processPHPModuleArgument() { - processPHPModuleArgument_arg="$1" - # Convert GitHub short form to long url, - # for example: from - # php-memcached-dev/php-memcached@8f106564e6bb005ca6100b12ccc89000daafa9d8 - # to - # https://codeload.github.com/php-memcached-dev/php-memcached/tar.gz/8f106564e6bb005ca6100b12ccc89000daafa9d8 - processPHPModuleArgument_arg="$(printf '%s' "$processPHPModuleArgument_arg" | sed -E 's/^([a-zA-Z0-9_.\-]+\/[a-zA-Z0-9_.\-]+)@(.+$)/https:\/\/codeload.github.com\/\1\/tar.gz\/\2/')" - # Let's check if $processPHPModuleArgument_arg is an URL - if printf '%s' "$processPHPModuleArgument_arg" | grep -Eq '^https?://[^ ]+/[^ ]+$'; then - printf 'Downloading source from %s\n' "$processPHPModuleArgument_arg" - processPHPModuleArgument_arg="$(getPackageSource "$processPHPModuleArgument_arg")" - fi - # Let's check if $processPHPModuleArgument_arg the absolute path of an existing directory - if test "$processPHPModuleArgument_arg" != "${processPHPModuleArgument_arg#/}" && test -d "$processPHPModuleArgument_arg"; then - if test -f "$processPHPModuleArgument_arg/package2.xml"; then - printf 'Checking package2.xml of directory %s... ' "$processPHPModuleArgument_arg" - if ! extractPackageVersionFromXML "$processPHPModuleArgument_arg/package2.xml"; then - return 1 - fi - elif test -f "$processPHPModuleArgument_arg/package.xml"; then - printf 'Checking package.xml of directory %s... ' "$processPHPModuleArgument_arg" - if ! extractPackageVersionFromXML "$processPHPModuleArgument_arg/package.xml"; then - return 1 - fi - else - printf 'Unable to find the package.xml file in the directory\n%s\n' "$processPHPModuleArgument_arg" - return 1 - fi - printf 'good (name: %s, version: %s)\n' "$EXTRACTPACKAGEVERSIONFROMXML_NAME" "$EXTRACTPACKAGEVERSIONFROMXML_VERSION" - PROCESSED_PHP_MODULE_ARGUMENT="$(normalizePHPModuleName "$EXTRACTPACKAGEVERSIONFROMXML_NAME")" - processPHPModuleArgument_version="$EXTRACTPACKAGEVERSIONFROMXML_VERSION" - if printf '%s' "$PROCESSED_PHP_MODULE_ARGUMENT" | grep -Eq '^[a-zA-Z0-9_]+$'; then - eval PHP_MODULESOURCECODEPATH_$PROCESSED_PHP_MODULE_ARGUMENT="$processPHPModuleArgument_arg" - else - printf 'Unable to parse the following module name:\n%s\n' "$PROCESSED_PHP_MODULE_ARGUMENT" >&2 - exit 1 - fi - else - PROCESSED_PHP_MODULE_ARGUMENT="${processPHPModuleArgument_arg%%-*}" - if test -n "$PROCESSED_PHP_MODULE_ARGUMENT" && test "$PROCESSED_PHP_MODULE_ARGUMENT" != "$processPHPModuleArgument_arg"; then - processPHPModuleArgument_version="${processPHPModuleArgument_arg#*-}" - else - processPHPModuleArgument_version='' - fi - PROCESSED_PHP_MODULE_ARGUMENT="$(normalizePHPModuleName "$PROCESSED_PHP_MODULE_ARGUMENT")" - fi - if test -n "$processPHPModuleArgument_version"; then - if printf '%s' "$PROCESSED_PHP_MODULE_ARGUMENT" | grep -Eq '^[a-zA-Z0-9_]+$'; then - eval PHP_WANTEDMODULEVERSION_$PROCESSED_PHP_MODULE_ARGUMENT="$processPHPModuleArgument_version" - elif printf '%s' "$PROCESSED_PHP_MODULE_ARGUMENT" | grep -Eq '^@[a-zA-Z0-9_]+$'; then - eval PHP_WANTEDMODULEVERSION__${PROCESSED_PHP_MODULE_ARGUMENT#@}="$processPHPModuleArgument_version" - else - printf 'Unable to parse the following module name:\n%s\n' "$PROCESSED_PHP_MODULE_ARGUMENT" >&2 - fi - fi -} - -# Get the wanted PHP module version, as specified in the command line arguments. -# -# Arguments: -# $1: the name of the module to be normalized -# -# Output: -# The wanted version (if any) -getWantedPHPModuleVersion() { - if printf '%s' "$1" | grep -Eq '^[a-zA-Z0-9_]+$'; then - eval printf '%s' "\${PHP_WANTEDMODULEVERSION_$1:-}" - elif printf '%s' "$1" | grep -Eq '^@[a-zA-Z0-9_]+$'; then - eval printf '%s' "\${PHP_WANTEDMODULEVERSION__${1#@}:-}" - fi -} - -# Get source code path of a PHP module version, as specified in the command line arguments. -# -# Arguments: -# $1: the name of the module to be normalized -# -# Output: -# The wanted version (if any) -getModuleSourceCodePath() { - if printf '%s' "$1" | grep -Eq '^[a-zA-Z0-9_]+$'; then - eval printf '%s' "\${PHP_MODULESOURCECODEPATH_$1:-}" - fi -} - -# Get the actual PHP module version, resolving it if it starts with '^' -# -# Arguments: -# $1: the name of the module -# $2: the wanted version (optional, if omitted we'll use getWantedPHPModuleVersion) -# -# Output: -# The version to be used -resolvePHPModuleVersion() { - resolvePHPModuleVersion_module="$1" - if test $# -lt 2; then - resolvePHPModuleVersion_raw="$(getWantedPHPModuleVersion "$installRemoteModule_module")" - else - resolvePHPModuleVersion_raw="$2" - fi - resolvePHPModuleVersion_afterCaret="${resolvePHPModuleVersion_raw#^}" - if test "$resolvePHPModuleVersion_raw" = "$resolvePHPModuleVersion_afterCaret"; then - printf '%s' "$resolvePHPModuleVersion_raw" - return - fi - case "$resolvePHPModuleVersion_afterCaret" in - ?*@snapshot | ?*@devel | ?*@alpha | ?*@beta | ?*@stable) - resolvePHPModuleVersion_wantedStability="${resolvePHPModuleVersion_afterCaret##*@}" - resolvePHPModuleVersion_wantedVersion="${resolvePHPModuleVersion_afterCaret%@*}" - ;; - *) - resolvePHPModuleVersion_wantedStability='' - resolvePHPModuleVersion_wantedVersion="$resolvePHPModuleVersion_afterCaret" - ;; - esac - resolvePHPModuleVersion_peclModule="$(getPeclModuleName "$resolvePHPModuleVersion_module")" - resolvePHPModuleVersion_xml="$(curl -sSLf "http://pecl.php.net/rest/r/$resolvePHPModuleVersion_peclModule/allreleases.xml")" - # remove line endings, collapse spaces - resolvePHPModuleVersion_versions="$(printf '%s' "$resolvePHPModuleVersion_xml" | tr -s ' \t\r\n' ' ')" - # one line per release (eg 1.2.3stable) - resolvePHPModuleVersion_versions="$(printf '%s' "$resolvePHPModuleVersion_versions" | sed -r 's#$resolvePHPModuleVersion_wantedStability")" - fi - # remove everything's up to '' (included) - resolvePHPModuleVersion_versions="$(printf '%s' "$resolvePHPModuleVersion_versions" | sed 's#^.*##')" - # keep just the versions - resolvePHPModuleVersion_versions="$(printf '%s' "$resolvePHPModuleVersion_versions" | cut -d'<' -f1)" - resetIFS - for resolvePHPModuleVersion_version in $resolvePHPModuleVersion_versions; do - resolvePHPModuleVersion_suffix="${resolvePHPModuleVersion_version#$resolvePHPModuleVersion_wantedVersion}" - if test "$resolvePHPModuleVersion_version" != "${resolvePHPModuleVersion_version#$resolvePHPModuleVersion_wantedVersion.}"; then - # Example: looking for 1.0, found 1.0.1 - printf '%s' "$resolvePHPModuleVersion_version" - return - fi - done - for resolvePHPModuleVersion_version in $resolvePHPModuleVersion_versions; do - resolvePHPModuleVersion_suffix="${resolvePHPModuleVersion_version#$resolvePHPModuleVersion_wantedVersion}" - if test "$resolvePHPModuleVersion_version" = "$resolvePHPModuleVersion_suffix"; then - continue - fi - if test -z "$resolvePHPModuleVersion_suffix"; then - # Example: looking for 1.0, found exactly it - printf '%s' "$resolvePHPModuleVersion_version" - return - fi - case "$resolvePHPModuleVersion_suffix" in - [0-9]) - # Example: looking for 1.1, but this is 1.10 - ;; - *) - # Example: looking for 1.1, this is 1.1rc1 - printf '%s' "$resolvePHPModuleVersion_version" - return - ;; - esac - done - printf 'Unable to find a version of "%s" compatible with "%s"\nAvailable versions are:\n%s\n' "$resolvePHPModuleVersion_module" "$resolvePHPModuleVersion_raw" "$resolvePHPModuleVersion_versions" >&2 - exit 1 -} - -# Get the actual version of a PECL pmodule, resolving 'latest', 'stable', 'beta', 'alpha', 'devel'. -# -# Arguments: -# $1: the module name as known on the PECL archive -# $2: the version to be resolved -# Output: -# $2 itself if $1 is not 'latest', 'stable', 'beta', 'alpha', or 'devel', the actual version otherwise -resolvePeclStabilityVersion() { - case "$2" in - latest | stable | beta | alpha | devel) ;; - *) - printf '%s' "$2" - return - ;; - esac - resolvePeclStabilityVersion_peclModule="$(getPeclModuleName "$1")" - peclStabilityFlagToVersion_url="http://pecl.php.net/rest/r/$resolvePeclStabilityVersion_peclModule/$2.txt" - if ! peclStabilityFlagToVersion_result="$(curl -sSLf "$peclStabilityFlagToVersion_url")"; then - peclStabilityFlagToVersion_result='' - fi - if test -z "$peclStabilityFlagToVersion_result"; then - printf 'Failed to resolve the PECL package version "%s" of %s from %s\n' "$2" "$1" "$peclStabilityFlagToVersion_url" >&2 - exit 1 - fi - printf '%s' "$peclStabilityFlagToVersion_result" -} - -# Set these variables: -# - PHP_PREINSTALLED_MODULES the normalized list of PHP modules installed before running this script -setPHPPreinstalledModules() { - PHP_PREINSTALLED_MODULES='' - IFS=' -' - for getPHPInstalledModules_module in $(php -m); do - getPHPInstalledModules_moduleNormalized='' - case "$getPHPInstalledModules_module" in - \[PHP\ Modules\]) ;; - \[Zend\ Modules\]) - break - ;; - *) - getPHPInstalledModules_moduleNormalized="$(normalizePHPModuleName "$getPHPInstalledModules_module")" - if ! stringInList "$getPHPInstalledModules_moduleNormalized" "$PHP_PREINSTALLED_MODULES"; then - PHP_PREINSTALLED_MODULES="$PHP_PREINSTALLED_MODULES $getPHPInstalledModules_moduleNormalized" - fi - ;; - esac - done - if command -v composer >/dev/null; then - PHP_PREINSTALLED_MODULES="$PHP_PREINSTALLED_MODULES @composer" - fi - resetIFS - PHP_PREINSTALLED_MODULES="${PHP_PREINSTALLED_MODULES# }" -} - -# Get the handles of the modules to be installed -# -# Arguments: -# $@: all module handles -# -# Set: -# PHP_MODULES_TO_INSTALL -# -# Output: -# Nothing -processCommandArguments() { - processCommandArguments_endArgs=0 - PHP_MODULES_TO_INSTALL='' - # Support deprecated flag IPE_FIX_CACERTS - case "${IPE_FIX_CACERTS:-}" in - 1 | y* | Y*) - PHP_MODULES_TO_INSTALL="$PHP_MODULES_TO_INSTALL @fix_letsencrypt" - ;; - esac - while :; do - if test $# -lt 1; then - break - fi - processCommandArguments_skip=0 - if test $processCommandArguments_endArgs -eq 0; then - case "$1" in - --cleanup) - printf '### WARNING the %s option is deprecated (we always cleanup everything) ###\n' "$1" >&2 - processCommandArguments_skip=1 - ;; - --) - processCommandArguments_skip=1 - processCommandArguments_endArgs=1 - ;; - -*) - printf 'Unrecognized option: %s\n' "$1" >&2 - exit 1 - ;; - esac - fi - if test $processCommandArguments_skip -eq 0; then - processPHPModuleArgument "$1" - processCommandArguments_name="$PROCESSED_PHP_MODULE_ARGUMENT" - if stringInList "$processCommandArguments_name" "$PHP_MODULES_TO_INSTALL"; then - printf '### WARNING Duplicated module name specified: %s ###\n' "$processCommandArguments_name" >&2 - elif stringInList "$processCommandArguments_name" "$PHP_PREINSTALLED_MODULES"; then - printf '### WARNING Module already installed: %s ###\n' "$processCommandArguments_name" >&2 - else - PHP_MODULES_TO_INSTALL="$PHP_MODULES_TO_INSTALL $processCommandArguments_name" - fi - fi - shift - done - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL# }" -} - -# Add a module that's required by another module -# -# Arguments: -# $1: module that requires another module -# $2: the required module -# -# Update: -# PHP_MODULES_TO_INSTALL -# -# Output: -# Nothing -checkRequiredModule() { - if ! stringInList "$1" "$PHP_MODULES_TO_INSTALL"; then - return - fi - if stringInList "$2" "$PHP_PREINSTALLED_MODULES"; then - return - fi - PHP_MODULES_TO_INSTALL="$(removeStringFromList "$1" "$PHP_MODULES_TO_INSTALL")" - if ! stringInList "$2" "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$PHP_MODULES_TO_INSTALL $2" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL# }" - fi - PHP_MODULES_TO_INSTALL="$PHP_MODULES_TO_INSTALL $1" -} - -# Sort the modules to be installed, in order to fix dependencies -# -# Update: -# PHP_MODULES_TO_INSTALL -# -# Output: -# Nothing -sortModulesToInstall() { - # apcu_bc requires apcu - checkRequiredModule 'apcu_bc' 'apcu' - # http requires propro (for PHP < 8) and raphf - if test $PHP_MAJMIN_VERSION -le 704; then - checkRequiredModule 'http' 'propro' - fi - checkRequiredModule 'http' 'raphf' - # event requires sockets (for PHP <= 5.6) - if test $PHP_MAJMIN_VERSION -le 506; then - checkRequiredModule event sockets - fi - # relay requires msgpack - checkRequiredModule relay msgpack - # relay requires igbinary - checkRequiredModule relay igbinary - # pq requires raphf - checkRequiredModule pq raphf - # phalcon up to v5.0.0beta3 requires psr - if test $PHP_MAJMINPAT_VERSION -lt 70401; then - checkRequiredModule phalcon psr - fi - # Some module installation may use sockets if available: move it before other modules - if stringInList 'sockets' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'sockets' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="sockets $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # Some module installation may use igbinary if available: move it before other modules - if stringInList 'igbinary' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'igbinary' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="igbinary $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # Some module installation may use msgpack if available: move it before other modules - if stringInList 'msgpack' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'msgpack' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="msgpack $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # Some module installation may use socket if available: move it before other modules - if stringInList 'socket' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'socket' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="socket $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # Some module installation may use apcu if available: move it before other modules - if stringInList 'apcu' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'apcu' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="apcu $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # Some module installation may use raphf if available: move it before other modules - if stringInList 'raphf' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'raphf' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="raphf $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # In any case, first of all, we need to install composer - if stringInList '@composer' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList '@composer' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="@composer $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi -} - -# Expand the IPE_ASPELL_LANGUAGES environment variable into apk/apt package names -expandASpellDictionaries() { - expandASpellDictionaries_languages="${IPE_ASPELL_LANGUAGES:-en}" - expandASpellDictionaries_result='' - resetIFS - for expandASpellDictionaries_language in $expandASpellDictionaries_languages; do - expandASpellDictionaries_result="$expandASpellDictionaries_result aspell-$expandASpellDictionaries_language" - done - printf '%s' "${expandASpellDictionaries_result# }" -} - -# Get the required APT/APK packages for a specific PHP version and for the list of module handles -# -# Arguments: -# $@: the PHP module handles -# -# Set: -# PACKAGES_PERSISTENT_NEW the list of packages required at runtume that must be installed -# PACKAGES_PERSISTENT_PRE the list of packages required at runtume that are already installed -# PACKAGES_VOLATILE the list of packages required at compile time that must be installed -# PACKAGES_PREVIOUS the list of packages (with their version) that are installed right now (calculated only on Debian and only if PACKAGES_PERSISTENT_NEW or PACKAGES_VOLATILE are not empty) -# COMPILE_LIBS -buildRequiredPackageLists() { - buildRequiredPackageLists_persistent='' - buildRequiredPackageLists_volatile='' - COMPILE_LIBS='' - case "$DISTRO" in - alpine) - apk update - ;; - debian) - invokeAptGetUpdate - ;; - esac - case "$DISTRO_VERSION" in - alpine@*) - if test $# -gt 1 || test "${1:-}" != '@composer'; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $PHPIZE_DEPS" - fi - if test -z "$(apk info 2>/dev/null | grep -E ^libssl)"; then - buildRequiredPackageLists_libssl="$(apk search | grep -E '^libssl[0-9]' | head -1 | cut -d- -f1)" - elif test -z "$(apk info 2>/dev/null | grep -E '^libressl.*-libtls')" && test -z "$(apk info 2>/dev/null | grep -E '^libressl.*-libssl')" && test -z "$(apk info 2>/dev/null | grep -E '^libretls-')"; then - buildRequiredPackageLists_libssl=$(apk search -q libressl*-libtls) - else - buildRequiredPackageLists_libssl='' - fi - if test $DISTRO_MAJMIN_VERSION -le 313; then - buildRequiredPackageLists_libssldev='libressl-dev' - else - buildRequiredPackageLists_libssldev='libretls-dev' - fi - buildRequiredPackageLists_icuPersistent='' - if test $DISTRO_MAJMIN_VERSION -ge 316; then - case "${IPE_ICU_EN_ONLY:-}" in - 1 | y* | Y*) ;; - *) - buildRequiredPackageLists_icuPersistent='icu-data-full' - ;; - esac - fi - ;; - debian@9) - buildRequiredPackageLists_libssldev='libssl1.0-dev' - ;; - debian@*) - buildRequiredPackageLists_libssldev='^libssl([0-9]+(\.[0-9]+)*)?-dev$' - ;; - esac - if test $USE_PICKLE -gt 1; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile git" - fi - while :; do - if test $# -lt 1; then - break - fi - case "$1@$DISTRO" in - @composer@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent unzip" - ;; - amqp@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent rabbitmq-c" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile rabbitmq-c-dev" - ;; - amqp@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^librabbitmq[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile librabbitmq-dev libssh-dev" - ;; - bz2@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libbz2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile bzip2-dev" - ;; - bz2@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libbz2-dev" - ;; - cassandra@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent cassandra-cpp-driver gmp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cassandra-cpp-driver-dev gmp-dev" - ;; - cmark@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake" - ;; - cmark@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake" - ;; - ddtrace@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libgcc" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile curl-dev" - ;; - ddtrace@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libcurl4-openssl-dev" - ;; - dba@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent db" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile db-dev" - ;; - dba@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile ^libdb5\.3-dev$" - if test $PHP_MAJMIN_VERSION -le 505; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile patch" - fi - ;; - decimal@debian) - if test $DISTRO_MAJMIN_VERSION -lt 1200; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libmpdec[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmpdec-dev" - fi - ;; - ecma_intl@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent icu-libs $buildRequiredPackageLists_icuPersistent" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev libidn-dev" - ;; - ecma_intl@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libicu[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libicu-dev" - ;; - enchant@alpine) - if test $DISTRO_MAJMIN_VERSION -ge 312; then - if test $PHP_MAJMIN_VERSION -ge 800; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent enchant2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile enchant2-dev" - else - # The system provides libenchant2, supported since PHP 8.0: we need to build libenchant1 on our own - if ! isLibenchant1Installed; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent glib aspell-libs libhunspell" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile glib-dev aspell-dev hunspell-dev" - COMPILE_LIBS="$COMPILE_LIBS libenchant1" - fi - fi - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent enchant" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile enchant-dev" - fi - ;; - enchant@debian) - if test $DISTRO_VERSION_NUMBER -ge 11; then - if test $PHP_MAJMIN_VERSION -ge 800; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libenchant-2-2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libenchant-2-dev" - else - if ! isLibenchant1Installed; then - # The system provides libenchant2, supported since PHP 8.0: we need to build libenchant1 on our own - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent aspell-en libhunspell-1.7-0" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libglib2.0-dev libaspell-dev libhunspell-dev" - COMPILE_LIBS="$COMPILE_LIBS libenchant1" - fi - fi - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libenchant1c2a" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libenchant-dev" - fi - ;; - event@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libevent $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libevent-dev $buildRequiredPackageLists_libssldev" - ;; - event@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libevent[0-9\.\-]*$ ^libevent-openssl[0-9\.\-]*$ ^libevent-extra[0-9\.\-]*$ ^libevent-pthreads[0-9\.\-]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libevent-dev $buildRequiredPackageLists_libssldev" - ;; - ffi@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libffi" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libffi-dev" - ;; - ffi@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libffi-dev" - ;; - ftp@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev" - ;; - ftp@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev" - ;; - gd@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent freetype libjpeg-turbo libpng libxpm" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetype-dev libjpeg-turbo-dev libpng-dev libxpm-dev" - if test $PHP_MAJMIN_VERSION -le 506; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libvpx" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libvpx-dev" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libwebp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libwebp-dev" - if test $PHP_MAJMIN_VERSION -ge 801; then - if test $DISTRO_MAJMIN_VERSION -ge 315; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libavif aom-libs libdav1d" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libavif-dev aom-dev dav1d-dev" - elif isLibaomInstalled && isLibdav1dInstalled && isLibyuvInstalled && isLibavifInstalled; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - else - case "${IPE_GD_WITHOUTAVIF:-}" in - 1 | y* | Y*) ;; - *) - if ! isLibaomInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libaom" - fi - if ! isLibdav1dInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libdav1d" - fi - if ! isLibyuvInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libyuv" - fi - if ! isLibavifInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libavif" - fi - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake nasm meson" - ;; - esac - fi - fi - fi - ;; - gd@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libfreetype6 libjpeg62-turbo ^libpng[0-9]+-[0-9]+$ libxpm4" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libfreetype6-dev libjpeg62-turbo-dev libpng-dev libxpm-dev" - if test $PHP_MAJMIN_VERSION -le 506; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libvpx[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libvpx-dev" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libwebp[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libwebp-dev" - if test $PHP_MAJMIN_VERSION -ge 801; then - if test $DISTRO_VERSION_NUMBER -ge 12; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libavif[0-9]+$ ^libaom[0-9]+$ ^libdav1d[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libavif-dev libaom-dev libdav1d-dev" - elif ! isLibaomInstalled || ! isLibdav1dInstalled || ! isLibyuvInstalled || ! isLibavifInstalled; then - case "${IPE_GD_WITHOUTAVIF:-}" in - 1 | y* | Y*) ;; - *) - if ! isLibaomInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libaom" - fi - if ! isLibdav1dInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libdav1d" - fi - if ! isLibyuvInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libyuv" - fi - if ! isLibavifInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libavif" - fi - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake nasm meson" - ;; - esac - fi - fi - fi - ;; - gearman@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++ libuuid" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile boost-dev gperf libmemcached-dev libevent-dev util-linux-dev" - ;; - gearman@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libgearman[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgearman-dev" - ;; - geoip@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent geoip" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile geoip-dev" - ;; - geoip@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libgeoip1[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgeoip-dev" - ;; - geos@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent geos-dev" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile geos" - ;; - geos@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libgeos-c1(v[0-9]*)?$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgeos-dev" - ;; - gettext@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libintl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile gettext-dev" - ;; - gmagick@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent graphicsmagick libgomp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile graphicsmagick-dev libtool" - ;; - gmagick@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libgraphicsmagick(-q16-)?[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgraphicsmagick1-dev" - ;; - gmp@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gmp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile gmp-dev" - ;; - gmp@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgmp-dev" - ;; - gnupg@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gpgme" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile gpgme-dev" - ;; - gnupg@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libgpgme[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile ^libgpgme[0-9]*-dev$" - ;; - grpc@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev linux-headers" - ;; - grpc@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev" - ;; - http@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libevent" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev curl-dev libevent-dev" - if test $PHP_MAJMIN_VERSION -le 506; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libidn" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libidn-dev" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent icu-libs $buildRequiredPackageLists_icuPersistent libidn" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev libidn-dev" - fi - ;; - http@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libcurl3-gnutls ^libevent[0-9\.\-]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev libgnutls28-dev libcurl4-gnutls-dev libevent-dev" - if test $PHP_MAJMIN_VERSION -le 506; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile ^libidn1[0-9+]-dev$" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libicu[0-9]+$ ^libidn2-[0-9+]$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libicu-dev ^libidn2-[0-9+]-dev$ ^libgcrypt[0-9]+-dev$" - fi - ;; - imagick@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent imagemagick libgomp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile imagemagick-dev" - if [ $DISTRO_MAJMIN_VERSION -ge 319 ]; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ghostscript libheif libjxl libraw librsvg" - fi - ;; - imagick@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libmagickwand-6.q16-[0-9]+$ ^libmagickcore-6.q16-[0-9]+-extra$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmagickwand-dev" - ;; - imap@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent c-client $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile krb5-dev imap-dev $buildRequiredPackageLists_libssldev" - ;; - imap@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libc-client2007e" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libkrb5-dev" - case "$DISTRO_VERSION" in - debian@9) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev comerr-dev krb5-multidev libc-client2007e libgssrpc4 libkadm5clnt-mit11 libkadm5srv-mit11 libkdb5-8 libpam0g-dev libssl-doc mlock" - ;; - *) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libc-client-dev" - ;; - esac - ;; - interbase@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev ncurses-dev" - if ! isFirebirdInstalled; then - COMPILE_LIBS="$COMPILE_LIBS firebird" - fi - ;; - interbase@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libfbclient2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile firebird-dev libib-util" - ;; - intl@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent icu-libs $buildRequiredPackageLists_icuPersistent" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev" - ;; - intl@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libicu[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libicu-dev" - ;; - ion@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake git" - ;; - ion@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake git" - ;; - ldap@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libldap" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile openldap-dev" - ;; - ldap@debian) - if test $DISTRO_VERSION_NUMBER -ge 9; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libldap-common" - fi - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libldap2-dev" - ;; - luasandbox@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lua5.1-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile lua5.1-dev" - ;; - luasandbox@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblua5.1-0" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liblua5.1-0-dev" - ;; - lz4@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lz4-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile lz4-dev" - ;; - lz4@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblz4-1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liblz4-dev" - ;; - maxminddb@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmaxminddb" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmaxminddb-dev" - ;; - maxminddb@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libmaxminddb[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmaxminddb-dev" - ;; - memprof@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent judy" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile judy-dev bsd-compat-headers" - ;; - memprof@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libjudydebian1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libjudy-dev" - ;; - mcrypt@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmcrypt" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmcrypt-dev" - ;; - mcrypt@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmcrypt4" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmcrypt-dev" - ;; - memcache@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev" - ;; - memcache@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev" - ;; - memcached@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmemcached-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmemcached-dev zlib-dev" - ;; - memcached@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmemcachedutil2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmemcached-dev zlib1g-dev" - if test $DISTRO_MAJMIN_VERSION -ge 12; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev" - fi - ;; - mongo@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsasl $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev cyrus-sasl-dev" - ;; - mongo@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev libsasl2-dev" - ;; - mongodb@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent icu-libs $buildRequiredPackageLists_icuPersistent libsasl $buildRequiredPackageLists_libssl snappy" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev cyrus-sasl-dev snappy-dev $buildRequiredPackageLists_libssldev zlib-dev" - if test $PHP_MAJMIN_VERSION -ge 704; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent zstd-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zstd-dev" - fi - ;; - mongodb@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libsnappy[0-9]+(v[0-9]+)?$ ^libicu[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libicu-dev libsasl2-dev libsnappy-dev $buildRequiredPackageLists_libssldev zlib1g-dev" - if test $PHP_MAJMIN_VERSION -ge 704; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libzstd[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libzstd-dev" - fi - ;; - mosquitto@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent mosquitto-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile mosquitto-dev" - ;; - mosquitto@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmosquitto1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmosquitto-dev" - ;; - mssql@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent freetds" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - mssql@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsybdb5" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - oauth@alpine) - if test $PHP_MAJMIN_VERSION -ge 700; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile pcre-dev" - fi - ;; - oauth@debian) - if test $PHP_MAJMIN_VERSION -ge 700; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libpcre3-dev" - fi - ;; - oci8@alpine | pdo_oci@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libaio libc6-compat libnsl" - if test $DISTRO_MAJMIN_VERSION -le 307; then - # The unzip tool of Alpine 3.7 can't extract symlinks from ZIP archives: let's use bsdtar instead - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libarchive-tools" - fi - ;; - oci8@debian | pdo_oci@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libaio[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unzip" - ;; - odbc@alpine | pdo_odbc@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent unixodbc" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unixodbc-dev" - ;; - odbc@debian | pdo_odbc@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libodbc1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unixodbc-dev" - ;; - openswoole@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent postgresql-libs libstdc++ $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile curl-dev postgresql-dev linux-headers $buildRequiredPackageLists_libssldev" - ;; - openswoole@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libcurl3-gnutls libpq5" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev libcurl4-gnutls-dev libpq-dev" - ;; - parle@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - ;; - pdo_dblib@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent freetds" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - pdo_dblib@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsybdb5" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - pdo_firebird@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev ncurses-dev" - if ! isFirebirdInstalled; then - COMPILE_LIBS="$COMPILE_LIBS firebird" - if test $PHP_MAJMIN_VERSION -ge 804; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev" - if ! isLibTommathInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libtommath" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake" - fi - if ! isLibTomcryptInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libtomcrypt" - fi - fi - fi - ;; - pdo_firebird@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libfbclient2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile firebird-dev libib-util" - ;; - pgsql@alpine | pdo_pgsql@alpine | pq@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent postgresql-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile postgresql-dev" - ;; - pgsql@debian | pdo_pgsql@debian | pq@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libpq5" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libpq-dev" - ;; - php_trie@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - ;; - phpy@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent python3" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile python3-dev" - ;; - phpy@debian) - if test $DISTRO_VERSION_NUMBER -ge 12; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libpython3.11" - elif test $DISTRO_VERSION_NUMBER -ge 11; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libpython3.9" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libpython3.7" - fi - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile python3-dev" - ;; - pkcs11@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent softhsm" - ;; - pkcs11@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsofthsm2" - ;; - pspell@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent aspell-libs $(expandASpellDictionaries)" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile aspell-dev" - ;; - pspell@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libaspell15 $(expandASpellDictionaries)" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libpspell-dev" - ;; - rdkafka@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent librdkafka" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile librdkafka-dev" - ;; - rdkafka@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^librdkafka\+*[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile librdkafka-dev" - ;; - recode@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent recode" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile recode-dev" - ;; - recode@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent librecode0" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile librecode-dev" - ;; - redis@alpine) - if test $PHP_MAJMIN_VERSION -ge 700; then - case "$DISTRO_VERSION" in - alpine@3.7) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent zstd" - ;; - *) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent zstd-libs" - ;; - esac - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zstd-dev" - if test $PHP_MAJMIN_VERSION -ge 702; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lz4-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile lz4-dev" - fi - fi - ;; - redis@debian) - if test $PHP_MAJMIN_VERSION -ge 700; then - case "$DISTRO_VERSION" in - debian@8) - ## There's no APT package for libzstd - ;; - debian@9) - ## libzstd is too old (available: 1.1.2, required: 1.3.0+) - ;; - *) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libzstd[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libzstd-dev" - ;; - esac - fi - if test $PHP_MAJMIN_VERSION -ge 702; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblz4-1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liblz4-dev" - fi - ;; - relay@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lz4-libs zstd-libs" - if test $DISTRO_MAJMIN_VERSION -ge 317; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent $buildRequiredPackageLists_libssl" - fi - ;; - saxon@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_volatile unzip" - ;; - seasclick@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - ;; - simdjson@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - ;; - smbclient@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsmbclient" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile samba-dev" - ;; - smbclient@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsmbclient" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsmbclient-dev" - ;; - snappy@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent snappy" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile snappy-dev" - ;; - snappy@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libsnappy1(v[0-9]+)?$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsnappy-dev" - ;; - snmp@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent net-snmp-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile net-snmp-dev" - ;; - snmp@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent snmp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsnmp-dev" - ;; - snuffleupagus@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent pcre" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile pcre-dev" - ;; - snuffleupagus@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libpcre3-dev" - ;; - soap@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - soap@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - sockets@alpine) - if test $PHP_MAJMIN_VERSION -ge 802; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile linux-headers" - fi - ;; - sodium@alpine | libsodium@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsodium" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsodium-dev" - ;; - sodium@debian | libsodium@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libsodium[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsodium-dev" - ;; - solr@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile curl-dev libxml2-dev" - ;; - solr@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libcurl3-gnutls" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libcurl4-gnutls-dev libxml2-dev" - ;; - sourceguardian@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent eudev-libs" - ;; - spx@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev" - ;; - spx@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev" - ;; - sqlsrv@alpine | pdo_sqlsrv@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++ unixodbc" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unixodbc-dev" - ;; - sqlsrv@debian | pdo_sqlsrv@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent unixodbc" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unixodbc-dev" - if ! isMicrosoftSqlServerODBCInstalled; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile gnupg apt-transport-https" - fi - ;; - ssh2@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libssh2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libssh2-dev" - ;; - ssh2@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libssh2-1-dev" - ;; - stomp@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev" - ;; - stomp@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev" - ;; - swoole@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent postgresql-libs libstdc++ $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile curl-dev postgresql-dev linux-headers $buildRequiredPackageLists_libssldev" - if test $PHP_MAJMIN_VERSION -ge 702; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent c-ares" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile c-ares-dev" - if test $PHP_MAJMIN_VERSION -ge 801; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent zstd-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile sqlite-dev zstd-dev" - fi - fi - case "${IPE_SWOOLE_WITHOUT_IOURING:-}" in - 1 | y* | Y*) ;; - *) - # iouring support in swoole 6 requires liburing 2.5+: available since Alpine 3.19 - # but with Alpine 3.19 we have a "invalid use of incomplete type 'const struct statx'" error - if test $DISTRO_MAJMIN_VERSION -ge 320; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liburing" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liburing-dev" - fi - ;; - esac - ;; - swoole@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libcurl3-gnutls libpq5" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev libcurl4-gnutls-dev libpq-dev" - if test $PHP_MAJMIN_VERSION -ge 702; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libc-ares2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libc-ares-dev" - if test $PHP_MAJMIN_VERSION -ge 800; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libbrotli1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev libbrotli-dev" - if test $PHP_MAJMIN_VERSION -ge 801; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsqlite3-dev" - if test $DISTRO_VERSION_NUMBER -ge 11; then - # swoole 6 requires libzstd >= 1.4.0, but on debian 10 (buster) we have 1.3.8 - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libzstd[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libzstd-dev" - fi - fi - fi - fi - if test $DISTRO_VERSION_NUMBER -ge 13; then - # iouring support in swoole 6 requires liburing 2.5+: available since Debian Trixie (13) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liburing2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liburing-dev" - fi - ;; - sybase_ct@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent freetds" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - sybase_ct@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libct4" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - tdlib@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++ $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile git cmake gperf zlib-dev $buildRequiredPackageLists_libssldev linux-headers readline-dev" - ;; - tdlib@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile git cmake gperf zlib1g-dev $buildRequiredPackageLists_libssldev" - ;; - tensor@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent openblas" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile lapack-dev openblas-dev" - if test $DISTRO_MAJMIN_VERSION -le 317; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lapack" - if test $DISTRO_MAJMIN_VERSION -le 316; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libexecinfo" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libexecinfo-dev" - if test $DISTRO_MAJMIN_VERSION -le 310; then - if ! stringInList --force-overwrite "$IPE_APK_FLAGS"; then - IPE_APK_FLAGS="$IPE_APK_FLAGS --force-overwrite" - fi - fi - fi - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblapack" - fi - ;; - tensor@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblapacke" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liblapack-dev libopenblas-dev liblapacke-dev" - if test $DISTRO_VERSION_NUMBER -le 9; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-6 libopenblas-base" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-6-dev" - elif test $DISTRO_VERSION_NUMBER -le 10; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-8 libopenblas-base" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-8-dev" - elif test $DISTRO_VERSION_NUMBER -le 11; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-10 libopenblas-base" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-10-dev" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-12 libopenblas0" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-12-dev" - fi - ;; - tidy@alpine) - if test $DISTRO_MAJMIN_VERSION -ge 315; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent tidyhtml" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent tidyhtml-libs" - fi - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile tidyhtml-dev" - ;; - tidy@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libtidy-?[0-9][0-9.\-]*(deb[0-9])?$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libtidy-dev" - ;; - uuid@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libuuid" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile util-linux-dev" - ;; - uuid@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile uuid-dev" - ;; - uv@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libuv" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libuv-dev" - ;; - uv@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libuv1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libuv1-dev" - ;; - vips@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent vips" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile vips-dev" - ;; - vips@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libvips" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libvips-dev" - ;; - wddx@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - wddx@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - wikidiff2@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile git" - ;; - wikidiff2@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libthai0" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile git libthai-dev" - ;; - xdebug@alpine) - if test $PHP_MAJMIN_VERSION -ge 800; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile linux-headers" - fi - ;; - xlswriter@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev" - ;; - xlswriter@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev" - ;; - xmldiff@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - xmldiff@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - xmlrpc@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - xmlrpc@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - xpass@alpine) - if ! isLibXCryptInstalled; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile linux-headers" - COMPILE_LIBS="$COMPILE_LIBS libxcrypt" - fi - ;; - xsl@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libxslt" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxslt-dev libgcrypt-dev" - ;; - xsl@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libxslt1\.1$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxslt-dev" - ;; - yaml@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent yaml" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile yaml-dev" - ;; - yaml@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libyaml-0-2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libyaml-dev" - ;; - yar@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile curl-dev" - ;; - yar@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libcurl3-gnutls" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libcurl4-gnutls-dev" - ;; - zip@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libzip" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake gnutls-dev libzip-dev $buildRequiredPackageLists_libssldev zlib-dev" - ;; - zip@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libzip[0-9]$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake gnutls-dev $buildRequiredPackageLists_libssldev libzip-dev libbz2-dev zlib1g-dev" - case "$DISTRO_VERSION" in - debian@8) - # Debian Jessie doesn't seem to provide libmbedtls - ;; - *) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libmbedtls[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmbedtls-dev" - ;; - esac - ;; - zmq@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent zeromq-dev" - ;; - zmq@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libzmq3-dev" - ;; - zookeeper@alpine) - if ! test -f /usr/local/include/zookeeper/zookeeper.h; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile maven automake libtool openjdk8" - fi - ;; - zookeeper@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libzookeeper-mt2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libzookeeper-mt-dev" - ;; - esac - shift - done - PACKAGES_PERSISTENT_NEW='' - PACKAGES_PERSISTENT_PRE='' - PACKAGES_VOLATILE='' - PACKAGES_PREVIOUS='' - if test -z "$buildRequiredPackageLists_persistent$buildRequiredPackageLists_volatile"; then - return - fi - if test -n "$buildRequiredPackageLists_persistent"; then - PACKAGES_PERSISTENT_NEW="$(expandPackagesToBeInstalled $buildRequiredPackageLists_persistent)" - if test -s "$IPE_ERRFLAG_FILE"; then - exit 1 - fi - resetIFS - for buildRequiredPackageLists_package in $buildRequiredPackageLists_persistent; do - buildRequiredPackageLists_package="$(expandInstalledSystemPackageName "$buildRequiredPackageLists_package")" - if test -n "$buildRequiredPackageLists_package"; then - PACKAGES_PERSISTENT_PRE="$PACKAGES_PERSISTENT_PRE $buildRequiredPackageLists_package" - fi - done - PACKAGES_PERSISTENT_PRE="${PACKAGES_PERSISTENT_PRE# }" - fi - if test -n "$buildRequiredPackageLists_volatile"; then - buildRequiredPackageLists_packages="$(expandPackagesToBeInstalled $buildRequiredPackageLists_volatile)" - if test -s "$IPE_ERRFLAG_FILE"; then - exit 1 - fi - resetIFS - for buildRequiredPackageLists_package in $buildRequiredPackageLists_packages; do - if ! stringInList "$buildRequiredPackageLists_package" "$PACKAGES_PERSISTENT_NEW"; then - if test "$buildRequiredPackageLists_package" != icu-data-en || ! stringInList icu-data-full "$PACKAGES_PERSISTENT_NEW"; then - PACKAGES_VOLATILE="$PACKAGES_VOLATILE $buildRequiredPackageLists_package" - fi - fi - done - PACKAGES_VOLATILE="${PACKAGES_VOLATILE# }" - fi - if test -n "$PACKAGES_PERSISTENT_NEW$PACKAGES_VOLATILE"; then - case "$DISTRO" in - debian) - PACKAGES_PREVIOUS="$(dpkg --get-selections | grep -E '\sinstall$' | awk '{ print $1 }')" - ;; - esac - fi -} - -# Get the full list of APT/APK packages that will be installed, given the required packages -# -# Arguments: -# $1: the list of required APT/APK packages -# -# Output: -# Space-separated list of every APT/APK packages that will be installed -expandPackagesToBeInstalled() { - expandPackagesToBeInstalled_result='' - case "$DISTRO" in - alpine) - expandPackagesToBeInstalled_log="$(apk add --simulate $@ 2>&1 || printf '\nERROR: apk failed\n')" - if test -n "$(printf '%s' "$expandPackagesToBeInstalled_log" | grep -E '^ERROR:')"; then - printf 'FAILED TO LIST THE WHOLE PACKAGE LIST FOR\n' >&2 - printf '%s ' "$@" >&2 - printf '\n\nCOMMAND OUTPUT:\n%s\n' "$expandPackagesToBeInstalled_log" >&2 - echo 'y' >"$IPE_ERRFLAG_FILE" - exit 1 - fi - IFS=' -' - for expandPackagesToBeInstalled_line in $expandPackagesToBeInstalled_log; do - if test -n "$(printf '%s' "$expandPackagesToBeInstalled_line" | grep -E '^\([0-9]*/[0-9]*) Installing ')"; then - expandPackagesToBeInstalled_result="$expandPackagesToBeInstalled_result $(printf '%s' "$expandPackagesToBeInstalled_line" | cut -d ' ' -f 3)" - fi - done - resetIFS - ;; - debian) - expandPackagesToBeInstalled_log="$(apt-get install -sy --no-install-recommends $@ 2>&1 || printf '\nE: apt-get failed\n')" - if test -n "$(printf '%s' "$expandPackagesToBeInstalled_log" | grep -E '^E:')"; then - printf 'FAILED TO LIST THE WHOLE PACKAGE LIST FOR\n' >&2 - printf '%s ' "$@" >&2 - printf '\n\nCOMMAND OUTPUT:\n%s\n' "$expandPackagesToBeInstalled_log" >&2 - echo 'y' >"$IPE_ERRFLAG_FILE" - exit 1 - fi - expandPackagesToBeInstalled_inNewPackages=0 - IFS=' -' - for expandPackagesToBeInstalled_line in $expandPackagesToBeInstalled_log; do - if test $expandPackagesToBeInstalled_inNewPackages -eq 0; then - if test "$expandPackagesToBeInstalled_line" = 'The following NEW packages will be installed:'; then - expandPackagesToBeInstalled_inNewPackages=1 - fi - elif test "$expandPackagesToBeInstalled_line" = "${expandPackagesToBeInstalled_line# }"; then - break - else - resetIFS - for expandPackagesToBeInstalled_newPackage in $expandPackagesToBeInstalled_line; do - expandPackagesToBeInstalled_result="$expandPackagesToBeInstalled_result $expandPackagesToBeInstalled_newPackage" - done - IFS=' -' - fi - done - resetIFS - ;; - esac - printf '%s' "${expandPackagesToBeInstalled_result# }" -} - -# Check if a system package is installed; if so we prints its name. -# -# Arguments: -# $1: the name of the package to be checked (regular expressions accepted: they must start with a ^) -expandInstalledSystemPackageName() { - if test "$1" = "${1#^}"; then - expandInstalledSystemPackageName_grepflags='-Fx' - else - expandInstalledSystemPackageName_grepflags='-E' - fi - case "$DISTRO" in - alpine) - apk info | grep $expandInstalledSystemPackageName_grepflags -- "$1" || test $? -eq 1 - ;; - debian) - dpkg --get-selections | grep -E '\sinstall$' | awk '{ print $1 }' | cut -d: -f1 | grep $expandInstalledSystemPackageName_grepflags -- "$1" || test $? -eq 1 - ;; - esac -} - -# Retrieve the number of available cores (alternative to nproc if not available) -# -# Output: -# The number of processor cores available -getProcessorCount() { - if test -n "${IPE_PROCESSOR_COUNT:-}"; then - echo $IPE_PROCESSOR_COUNT - return - fi - if command -v nproc >/dev/null 2>&1; then - nproc - else - getProcessorCount_tmp=$(cat /proc/cpuinfo | grep -E '^processor\s*:\s*\d+$' | wc -l) - if test $getProcessorCount_tmp -ge 1; then - echo $getProcessorCount_tmp - else - echo 1 - fi - fi -} - -# Set these variables: -# - TARGET_TRIPLET the build target tripled (eg 'x86_64-linux-gnu', 'x86_64-alpine-linux-musl') -setTargetTriplet() { - TARGET_TRIPLET="$(gcc -print-multiarch 2>/dev/null || true)" - if test -z "$TARGET_TRIPLET"; then - TARGET_TRIPLET="$(gcc -dumpmachine)" - fi -} - -# Retrieve the number of processors to be used when compiling an extension -# -# Arguments: -# $1: the handle of the PHP extension to be compiled -# Output: -# The number of processors to be used -getCompilationProcessorCount() { - case "$1" in - '') - # The above extensions don't support parallel compilation - echo 1 - ;; - *) - # All the other extensions support parallel compilation - getProcessorCount - ;; - esac -} - -# Get the full path of a PHP extension given its name. -# -# Arguments: -# $1: the name of the PHP extension -# -# Output: -# The absolute path of the PHP extension file (or nothing if the file can't be found) -getModuleFullPath() { - case "$1" in - apcu_bc) - getModuleFullPath_path="$PHP_EXTDIR/apc.so" - ;; - seasclick) - getModuleFullPath_path="$PHP_EXTDIR/SeasClick.so" - ;; - *) - getModuleFullPath_path="$PHP_EXTDIR/$1.so" - ;; - esac - if ! test -f "$getModuleFullPath_path"; then - printf 'Unable to find the file of the PHP extension "%s"\n' "$1" >&2 - exit 1 - fi - printf '%s' "$getModuleFullPath_path" -} - -# Post-process a PHP module just compiled and installed in the PHP extension directory -# -# Arguments: -# $1: the name of the PHP extension -# -# Return: -# 0 (true): if suceeded -# non-zero (false): in case of errors -postProcessModule() { - postProcessModule_file="$(getModuleFullPath "$1")" - if test $PHP_DEBUGBUILD -ne 1; then - printf 'Removing symbols from %s... ' "$postProcessModule_file" - postProcessModule_preSize="$(stat -c %s "$postProcessModule_file")" - strip --strip-all "$postProcessModule_file" - postProcessModule_postSize="$(stat -c %s "$postProcessModule_file")" - printf 'done (%s bytes saved).\n' "$((postProcessModule_preSize - postProcessModule_postSize))" - fi - return $? -} - -# Get the type of the php.ini entry to be used for a PHP extension -# -# Arguments: -# $1: the name of the PHP extension -# -# Output: -# zend_extension or extension -getModuleIniEntryType() { - case "$1" in - ioncube_loader | sourceguardian) - # On PHP 5.5, docker-php-ext-enable fails to detect that ionCube Loader and sourceguardian are Zend extensions - if test $PHP_MAJMIN_VERSION -le 505; then - printf 'zend_extension' - return 0 - fi - ;; - esac - getModuleIniEntryType_file="$(getModuleFullPath "$1")" - if readelf --wide --syms "$getModuleIniEntryType_file" | grep -Eq ' zend_extension_entry$'; then - printf 'zend_extension' - else - printf 'extension' - fi -} - -# Create the contents of a PHP ini file that enables an extension -# -# Arguments: -# $1: the name of the PHP extension -# $2: additional php.ini configuration (optional) -# -# Output: -# The contents of the ini file -buildPhpExtensionIniContent() { - buildPhpExtensionIniContent_type="$(getModuleIniEntryType "$1")" - buildPhpExtensionIniContent_soFile="$(getModuleFullPath "$1")" - buildPhpExtensionIniContent_result="$(printf '%s=%s' "$buildPhpExtensionIniContent_type" "${buildPhpExtensionIniContent_soFile##$PHP_EXTDIR/}")" - if test -n "${2:-}"; then - buildPhpExtensionIniContent_result="$(printf '%s\n%s' "$buildPhpExtensionIniContent_result" "$2")" - fi - printf '%s' "$buildPhpExtensionIniContent_result" -} - -# Check that a PHP module actually works (better to run this check before enabling the extension) -# -# Arguments: -# $1: the name of the PHP extension -# $2: base name (without path and extension) of additional php.ini configuration (optional) -# $3: additional php.ini configuration (optional) -# -# Return: -# 0 (true): if the string is in the list -# 1 (false): if the string is not in the list -checkModuleWorking() { - if test -n "${2:-}"; then - checkModuleWorking_iniFile="$PHP_INI_DIR/conf.d/$2--temp.ini" - else - checkModuleWorking_iniFile="$PHP_INI_DIR/conf.d/docker-php-ext-$1--temp.ini" - fi - checkModuleWorking_iniContent="$(buildPhpExtensionIniContent "$1" "${3:-}")" - printf 'Check if the %s module can be loaded... ' "$1" - checkModuleWorking_errBefore="$(php -r 'return;' 2>&1 || true)" - printf '%s' "$checkModuleWorking_iniContent" >"$checkModuleWorking_iniFile" - checkModuleWorking_errAfter="$(php -r 'return;' 2>&1 || true)" - rm "$checkModuleWorking_iniFile" - if test "$checkModuleWorking_errAfter" != "$checkModuleWorking_errBefore"; then - printf 'Error loading the "%s" extension:\n%s\n' "$1" "$checkModuleWorking_errAfter" >&2 - return 1 - fi - printf 'ok.\n' - return 0 -} - -# Enable a PHP extension -# -# Arguments: -# $1: the name of the PHP extension to be enabled -# $2: base name (without path and extension) of additional php.ini configuration (optional) -# $3: additional php.ini configuration (optional) -enablePhpExtension() { - if test -n "${2:-}"; then - enablePhpExtension_iniFile="$PHP_INI_DIR/conf.d/$2.ini" - else - enablePhpExtension_iniFile="$PHP_INI_DIR/conf.d/docker-php-ext-$1.ini" - fi - enablePhpExtension_iniContent="$(buildPhpExtensionIniContent "$1" "${3:-}")" - case "${IPE_DONT_ENABLE:-}" in - 1 | y* | Y*) - enablePhpExtension_enableCommand="/usr/local/bin/docker-php-ext-enable-$1" - printf '%s' "$enablePhpExtension_iniContent" >"$enablePhpExtension_iniFile-disabled" - printf '\n' >>"$enablePhpExtension_iniFile-disabled" - cat <"$enablePhpExtension_enableCommand" -#!/bin/sh - -if test -f '$enablePhpExtension_iniFile-disabled'; then - echo 'Enabling extension $1' - mv '$enablePhpExtension_iniFile-disabled' '$enablePhpExtension_iniFile' -else - echo 'The extension $1 has already been enabled' -fi -EOT - chmod +x "$enablePhpExtension_enableCommand" - printf '## Extension %s not enabled.\nYou can enable it by running the following command:\n%s\n\n' "$1" "$(basename "$enablePhpExtension_enableCommand")" - ;; - *) - printf '%s' "$enablePhpExtension_iniContent" >"$enablePhpExtension_iniFile" - printf '\n' >>"$enablePhpExtension_iniFile" - ;; - esac -} - -# Mark the pre-installed APT/APK packages as used -# that way they won't be uninstalled by accident -markPreinstalledPackagesAsUsed() { - printf '### MARKING PRE-INSTALLED PACKAGES AS IN-USE ###\n' - case "$DISTRO" in - alpine) - printf '# Packages: %s\n' "$PACKAGES_PERSISTENT_PRE" - apk add $PACKAGES_PERSISTENT_PRE - ;; - debian) - apt-mark manual $PACKAGES_PERSISTENT_PRE - ;; - esac -} - -# Install the required APT/APK packages -# -# Arguments: -# $@: the list of APT/APK packages to be installed -installRequiredPackages() { - printf '### INSTALLING REQUIRED PACKAGES ###\n' - printf '# Packages to be kept after installation: %s\n' "$PACKAGES_PERSISTENT_NEW" - printf '# Packages to be used only for installation: %s\n' "$PACKAGES_VOLATILE" - case "$DISTRO" in - alpine) - apk add $IPE_APK_FLAGS $PACKAGES_PERSISTENT_NEW $PACKAGES_VOLATILE - # https://gitlab.alpinelinux.org/alpine/aports/-/issues/12763#note_172090 - # https://github.com/mlocati/docker-php-extension-installer/issues/385 - # https://github.com/mlocati/docker-php-extension-installer/issues/537#issuecomment-1078748882 - for installRequiredPackages_item in wget; do - if test -n "$(expandInstalledSystemPackageName "$installRequiredPackages_item")"; then - apk add --upgrade "$installRequiredPackages_item" - fi - done - ;; - debian) - apt-get install -qqy --no-install-recommends $PACKAGES_PERSISTENT_NEW $PACKAGES_VOLATILE - ;; - esac -} - -# Get the version of an installed APT/APK package -# -# Arguments: -# $1: the name of the installed package -# -# Output: -# The numeric part of the package version, with from 1 to 3 numbers -# -# Example: -# 1 -# 1.2 -# 1.2.3 -getInstalledPackageVersion() { - case "$DISTRO" in - alpine) - apk info "$1" | head -n1 | cut -c $((${#1} + 2))- | grep -o -E '^[0-9]+(\.[0-9]+){0,2}' - ;; - debian) - dpkg-query --showformat='${Version}' --show "$1" 2>/dev/null | grep -o -E '^[0-9]+(\.[0-9]+){0,2}' - ;; - esac -} - -# Compare two versions -# -# Arguments: -# $1: the first version -# $2: the second version -# -# Output -# -1 if $1 is less than $2 -# 0 if $1 is the same as $2 -# 1 if $1 is greater than $2 -compareVersions() { - compareVersions_v1="$1.0.0" - compareVersions_v2="$2.0.0" - compareVersions_vMin="$(printf '%s\n%s' "$compareVersions_v1" "$compareVersions_v2" | sort -t '.' -n -k1,1 -k2,2 -k3,3 | head -n 1)" - if test "$compareVersions_vMin" != "$compareVersions_v1"; then - echo '1' - elif test "$compareVersions_vMin" = "$compareVersions_v2"; then - echo '0' - else - echo '-1' - fi -} - -# Install Oracle Instant Client & SDK -# -# Set: -# ORACLE_INSTANTCLIENT_LIBPATH -installOracleInstantClient() { - case "${IPE_INSTANTCLIENT_BASIC:-}" in - 1 | y* | Y*) - installOracleInstantClient_handle=basic - ;; - *) - installOracleInstantClient_handle=basiclite - ;; - esac - case $PHP_BITS in - 32) - installOracleInstantClient_client=client - installOracleInstantClient_version='19.9' - installOracleInstantClient_ic=https://download.oracle.com/otn_software/linux/instantclient/199000/instantclient-$installOracleInstantClient_handle-linux-$installOracleInstantClient_version.0.0.0dbru.zip - installOracleInstantClient_sdk=https://download.oracle.com/otn_software/linux/instantclient/199000/instantclient-sdk-linux-$installOracleInstantClient_version.0.0.0dbru.zip - ;; - *) - case $(uname -m) in - aarch64*) - installOracleInstantClient_client=client64 - installOracleInstantClient_version='19.10' - installOracleInstantClient_ic=https://download.oracle.com/otn_software/linux/instantclient/191000/instantclient-$installOracleInstantClient_handle-linux.arm64-$installOracleInstantClient_version.0.0.0dbru.zip - installOracleInstantClient_sdk=https://download.oracle.com/otn_software/linux/instantclient/191000/instantclient-sdk-linux.arm64-$installOracleInstantClient_version.0.0.0dbru.zip - ;; - *) - installOracleInstantClient_client=client64 - installOracleInstantClient_version='21.1' - installOracleInstantClient_ic=https://download.oracle.com/otn_software/linux/instantclient/211000/instantclient-$installOracleInstantClient_handle-linux.x64-$installOracleInstantClient_version.0.0.0.zip - installOracleInstantClient_sdk=https://download.oracle.com/otn_software/linux/instantclient/211000/instantclient-sdk-linux.x64-$installOracleInstantClient_version.0.0.0.zip - ;; - esac - ;; - esac - ORACLE_INSTANTCLIENT_LIBPATH=/usr/lib/oracle/$installOracleInstantClient_version/$installOracleInstantClient_client/lib - if ! test -e "$ORACLE_INSTANTCLIENT_LIBPATH"; then - printf 'Downloading Oracle Instant Client v%s (%s)... ' "$installOracleInstantClient_version" "$installOracleInstantClient_handle" - installOracleInstantClient_src="$(getPackageSource $installOracleInstantClient_ic)" - mkdir -p "/usr/lib/oracle/$installOracleInstantClient_version/$installOracleInstantClient_client" - mv "$installOracleInstantClient_src" "$ORACLE_INSTANTCLIENT_LIBPATH" - echo 'done.' - fi - if ! test -e "$ORACLE_INSTANTCLIENT_LIBPATH/sdk" && ! test -L "$ORACLE_INSTANTCLIENT_LIBPATH/sdk"; then - printf 'Downloading Oracle Instant SDK v%s... ' "$installOracleInstantClient_version" - installOracleInstantClient_src="$(getPackageSource $installOracleInstantClient_sdk)" - ln -sf "$installOracleInstantClient_src/sdk" "$ORACLE_INSTANTCLIENT_LIBPATH/sdk" - UNNEEDED_PACKAGE_LINKS="$UNNEEDED_PACKAGE_LINKS $ORACLE_INSTANTCLIENT_LIBPATH/sdk" - echo 'done.' - fi - case "$DISTRO" in - alpine) - if ! test -e /usr/lib/libresolv.so.2 && test -e /lib/libc.so.6; then - ln -s /lib/libc.so.6 /usr/lib/libresolv.so.2 - fi - installOracleInstantClient_ldconf=/etc/ld-musl-${TARGET_TRIPLET%-alpine-linux-musl}.path - if test -e "$installOracleInstantClient_ldconf"; then - if ! cat "$installOracleInstantClient_ldconf" | grep -q "$ORACLE_INSTANTCLIENT_LIBPATH"; then - cat "$ORACLE_INSTANTCLIENT_LIBPATH" | awk -v suffix=":$ORACLE_INSTANTCLIENT_LIBPATH" '{print NR==1 ? $0suffix : $0}' >"$ORACLE_INSTANTCLIENT_LIBPATH" - fi - else - case $PHP_BITS in - 32) - echo "/lib:/usr/local/lib:/usr/lib:$ORACLE_INSTANTCLIENT_LIBPATH" >"$installOracleInstantClient_ldconf" - ;; - *) - echo "/lib64:/lib:/usr/local/lib:/usr/lib:$ORACLE_INSTANTCLIENT_LIBPATH" >"$installOracleInstantClient_ldconf" - ;; - esac - fi - ;; - debian) - if ! test -e /etc/ld.so.conf.d/oracle-instantclient.conf; then - echo "$ORACLE_INSTANTCLIENT_LIBPATH" >/etc/ld.so.conf.d/oracle-instantclient.conf - ldconfig - fi - ;; - esac -} - -# Check if the Microsoft SQL Server ODBC Driver is installed -# -# Return: -# 0 (true): if the string is in the list -# 1 (false): if the string is not in the list -isMicrosoftSqlServerODBCInstalled() { - test -d /opt/microsoft/msodbcsql*/ -} - -# Install the Microsoft SQL Server ODBC Driver -# see https://learn.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server -installMicrosoftSqlServerODBC() { - printf 'Installing the Microsoft SQL Server ODBC Driver\n' - case "$DISTRO" in - alpine) - rm -rf /tmp/src/msodbcsql.apk - if test $PHP_MAJMIN_VERSION -le 703; then - curl -sSLf -o /tmp/src/msodbcsql.apk https://download.microsoft.com/download/e/4/e/e4e67866-dffd-428c-aac7-8d28ddafb39b/msodbcsql17_17.10.6.1-1_amd64.apk - else - case $(uname -m) in - aarch64 | arm64 | armv8) - installMicrosoftSqlServerODBC_arch=arm64 - ;; - *) - installMicrosoftSqlServerODBC_arch=amd64 - ;; - esac - curl -sSLf -o /tmp/src/msodbcsql.apk https://download.microsoft.com/download/3/5/5/355d7943-a338-41a7-858d-53b259ea33f5/msodbcsql18_18.3.3.1-1_$installMicrosoftSqlServerODBC_arch.apk - fi - printf '\n' | apk add --allow-untrusted /tmp/src/msodbcsql.apk - rm -rf /tmp/src/msodbcsql.apk - ;; - debian) - printf -- '- installing the Microsoft APT key\n' - if test $DISTRO_VERSION_NUMBER -eq 11; then - curl -sSLf -o /etc/apt/trusted.gpg.d/microsoft.asc https://packages.microsoft.com/keys/microsoft.asc - elif test $DISTRO_VERSION_NUMBER -ge 12; then - curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor --yes --output /usr/share/keyrings/microsoft-prod.gpg - else - # apt-key is deprecated - curl -sSLf https://packages.microsoft.com/keys/microsoft.asc | apt-key add - - fi - if ! test -f /etc/apt/sources.list.d/mssql-release.list; then - printf -- '- adding the Microsoft APT source list\n' - curl -sSLf https://packages.microsoft.com/config/debian/$DISTRO_VERSION_NUMBER/prod.list >/etc/apt/sources.list.d/mssql-release.list - invokeAptGetUpdate - fi - printf -- '- installing the APT package\n' - if test $PHP_MAJMIN_VERSION -le 703; then - ACCEPT_EULA=Y apt-get install -qqy --no-install-recommends msodbcsql17 - elif test $DISTRO_VERSION_NUMBER -ge 9 && test $DISTRO_VERSION_NUMBER -le 12; then - # On Debian 9 to 12 we have both msodbcsql17 and msodbcsql18: let's install just one - ACCEPT_EULA=Y apt-get install -qqy --no-install-recommends msodbcsql18 - else - ACCEPT_EULA=Y apt-get install -qqy --no-install-recommends '^msodbcsql[0-9]+$' - fi - ;; - esac -} - -# Check if libaom is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibaomInstalled() { - if ! test -f /usr/local/lib/libaom.so && ! test -f /usr/lib/libaom.so && ! test -f /usr/lib/x86_64*/libaom.so; then - return 1 - fi - if ! test -f /usr/local/include/aom/aom_codec.h && ! test -f /usr/include/aom/aom_codec.h; then - return 1 - fi - return 0 -} - -# Install libaom -installLibaom() { - printf 'Installing libaom\n' - installLibaom_version=3.10.0 - installLibaom_dir="$(getPackageSource https://aomedia.googlesource.com/aom/+archive/v$installLibaom_version.tar.gz)" - mkdir -- "$installLibaom_dir/my.build" - cd -- "$installLibaom_dir/my.build" - cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=1 -DENABLE_DOCS=0 -DENABLE_EXAMPLES=0 -DENABLE_TESTDATA=0 -DENABLE_TESTS=0 -DENABLE_TOOLS=0 -DCMAKE_INSTALL_LIBDIR:PATH=lib .. - ninja -j $(getProcessorCount) install - cd - >/dev/null - ldconfig || true -} - -# Check if libdav1d is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibdav1dInstalled() { - if ! test -f /usr/local/lib/libdav1d.so && ! test -f /usr/lib/libdav1d.so && ! test -f /usr/lib/x86_64*/libdav1d.so; then - return 1 - fi - if ! test -f /usr/local/include/dav1d/dav1d.h && ! test -f /usr/include/dav1d/dav1d.h; then - return 1 - fi - return 0 -} - -# Install libdav1d -installLibdav1d() { - printf 'Installing libdav1d\n' - installLibdav1d_dir="$(getPackageSource https://github.com/videolan/dav1d/archive/refs/tags/1.3.0.tar.gz)" - mkdir -- "$installLibdav1d_dir/build" - cd -- "$installLibdav1d_dir/build" - meson --buildtype release -Dprefix=/usr .. - ninja -j $(getProcessorCount) install - cd - >/dev/null - if test -f /usr/lib/$TARGET_TRIPLET/libdav1d.so && ! test -f /usr/lib/libdav1d.so; then - ln -s /usr/lib/$TARGET_TRIPLET/libdav1d.so /usr/lib/ - fi - ldconfig || true -} - -# Check if libyuv is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibyuvInstalled() { - if ! test -f /usr/local/lib/libyuv.so && ! test -f /usr/lib/libyuv.so && ! test -f /usr/lib/x86_64*/libyuv.so && ! test -f /usr/lib/x86_64*/libyuv.so.*; then - return 1 - fi - if ! test -f /usr/local/include/libyuv.h && ! test -f /usr/include/libyuv.h; then - return 1 - fi - return 0 -} - -# Install libyuv -installLibyuv() { - printf 'Installing libyuv\n' - installLibyuv_dir="$(getPackageSource https://chromium.googlesource.com/libyuv/libyuv/+archive/d359a9f922af840b043535d43cf9d38b220d102e.tar.gz)" - mkdir -- "$installLibyuv_dir/build" - cd -- "$installLibyuv_dir/build" - cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr -B. .. - make -j$(getProcessorCount) install - cd - >/dev/null -} - -# Check if libavif is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibavifInstalled() { - if ! test -f /usr/local/lib/libavif.so && ! test -f /usr/lib/libavif.so && ! test -f /usr/lib/x86_64*/libavif.so; then - return 1 - fi - if ! test -f /usr/local/include/avif/avif.h && ! test -f /usr/include/avif/avif.h; then - return 1 - fi - return 0 -} - -# Install libavif -installLibavif() { - printf 'Installing libavif\n' - installLibavif_dir="$(getPackageSource https://codeload.github.com/AOMediaCodec/libavif/tar.gz/refs/tags/v1.0.3)" - mkdir -- "$installLibavif_dir/build" - cd -- "$installLibavif_dir/build" - cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON -DAVIF_CODEC_AOM=ON -DCMAKE_INSTALL_LIBDIR:PATH=lib - make -j$(getProcessorCount) install - cd - >/dev/null -} - -# Install libmpdec -installLibMPDec() { - installLibMPDec_src="$(getPackageSource https://www.bytereef.org/software/mpdecimal/releases/mpdecimal-2.5.1.tar.gz)" - cd -- "$installLibMPDec_src" - ./configure --disable-cxx - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -# Check if libdatrie is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibDatrieInstalled() { - if ! test -f /usr/local/lib/libdatrie.so && ! test -f /usr/lib/libdatrie.so && ! test -f /usr/lib/x86_64*/libdatrie.so; then - return 1 - fi - if ! test -f /usr/local/include/datrie/trie.h && ! test -f /usr/include/datrie/trie.h; then - return 1 - fi - return 0 -} - -# Install libdatrie -installLibDatrie() { - printf 'Installing libdatrie\n' - installLibDatrie_src="$(getPackageSource https://github.com/tlwg/libdatrie/releases/download/v0.2.13/libdatrie-0.2.13.tar.xz)" - cd -- "$installLibDatrie_src" - ./configure - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -# Check if libdatrie is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibThaiInstalled() { - return 1 - if ! test -f /usr/local/lib/libthai.so && ! test -f /usr/lib/libthai.so && ! test -f /usr/lib/x86_64*/libthai.so; then - return 1 - fi - if ! test -f /usr/local/include/thai/thailib.h && ! test -f /usr/include/thai/thailib.h; then - return 1 - fi - return 0 -} - -# Install libdatrie -installLibThai() { - printf 'Installing libthai\n' - installLibThai_src="$(getPackageSource https://github.com/tlwg/libthai/releases/download/v0.1.29/libthai-0.1.29.tar.xz)" - cd -- "$installLibThai_src" - ./configure - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -isLibTommathInstalled() { - if test -f /usr/local/lib/libtommath.a && test -f /usr/local/include/tommath.h; then - return 0 - fi - return 1 -} - -installLibTommath() { - printf 'Installing libtommath\n' - installLibTommath_src="$(getPackageSource https://github.com/libtom/libtommath/releases/download/v1.3.0/ltm-1.3.0.tar.xz)" - mkdir -p "$installLibTommath_src/build" - cd -- "$installLibTommath_src/build" - CFLAGS='-fPIC' cmake -DCMAKE_BUILD_TYPE=Release .. - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -isLibTomcryptInstalled() { - if test -f /usr/local/lib/libtomcrypt.a && test -f /usr/local/include/tomcrypt.h; then - return 0 - fi - return 1 -} - -installLibTomcrypt() { - printf 'Installing libtomcrypt\n' - installLibTomcrypt_src="$(getPackageSource https://github.com/libtom/libtomcrypt/releases/download/v1.18.2/crypt-1.18.2.tar.xz)" - cd -- "$installLibTomcrypt_src" - CFLAGS='-fPIC' make -j$(getProcessorCount) - make install -} - -isFirebirdInstalled() { - if test -f /usr/lib/libfbclient.so && test -f /usr/include/ibase.h; then - return 0 - fi - if test -d /tmp/src/firebird; then - return 0 - fi - return 1 -} - -installFirebird() { - printf 'Installing firebird\n' - if test $PHP_MAJMIN_VERSION -ge 804; then - installFirebird_src="$(getPackageSource https://github.com/FirebirdSQL/firebird/releases/download/v5.0.2/Firebird-5.0.2.1613-0-source.tar.xz)" - cd -- "$installFirebird_src" - ./configure --enable-client-only - make -j$(getProcessorCount) - cp -Rd gen/Release/firebird/include/* /usr/include - cp -Rd gen/Release/firebird/lib/* /usr/lib - cd - >/dev/null - else - mv "$(getPackageSource https://github.com/FirebirdSQL/firebird/releases/download/R2_5_9/Firebird-2.5.9.27139-0.tar.bz2)" /tmp/src/firebird - cd /tmp/src/firebird - # Patch rwlock.h (this has been fixed in later release of firebird 3.x) - sed -i '194s/.*/#if 0/' src/common/classes/rwlock.h - ./configure --with-system-icu - # -j option can't be used: make targets must be compiled sequentially - make -s btyacc_binary gpre_boot libfbstatic libfbclient - cp gen/firebird/lib/libfbclient.so /usr/lib/ - ln -s /usr/lib/libfbclient.so /usr/lib/libfbclient.so.2 - cd - >/dev/null - fi -} - -isLibXCryptInstalled() { - if ! test -f /usr/local/lib/libcrypt.so && ! test -f /usr/lib/libcrypt.so && ! test -f /usr/lib/x86_64*/libcrypt.so; then - return 1 - fi - return 0 -} - -installLibXCrypt() { - printf 'Installing libxcrypt\n' - installLibXCrypt_version=4.4.36 - installLibXCrypt_src="$(getPackageSource "https://github.com/besser82/libxcrypt/releases/download/v$installLibXCrypt_version/libxcrypt-$installLibXCrypt_version.tar.xz")" - cd -- "$installLibXCrypt_src" - ./configure --prefix /usr - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -isLibenchant1Installed() { - if test -f /usr/lib/libenchant.so || test -f /usr/local/lib/libenchant.so; then - return 0 - fi - return 1 -} - -installLibenchant1() { - printf 'Installing libenchant1\n' - installLibenchant1_src="$(getPackageSource https://github.com/rrthomas/enchant/releases/download/enchant-1-6-1/enchant-1.6.1.tar.gz)" - cd -- "$installLibenchant1_src" - ./configure - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -# Install Composer -installComposer() { - installComposer_version="$(getWantedPHPModuleVersion @composer)" - installComposer_version="${installComposer_version#^}" - if test -z "$installComposer_version"; then - installComposer_fullname=composer - installComposer_flags='' - else - installComposer_fullname="$(printf 'composer v%s' "$installComposer_version")" - if printf '%s' "$installComposer_version" | grep -Eq '^[0-9]+$'; then - installComposer_flags="--$installComposer_version" - else - installComposer_flags="--version=$installComposer_version" - fi - fi - printf '### INSTALLING %s ###\n' "$installComposer_fullname" - actuallyInstallComposer /usr/local/bin composer "$installComposer_flags" -} - -# Actually install composer -# -# Arguments: -# $1: the directory where composer should be installed (required) -# $2: the composer filename (optional, default: composer) -# $3. additional flags for the composer installed (optional) -actuallyInstallComposer() { - actuallyInstallComposer_installer="$(mktemp -p /tmp/src)" - curl -sSLf -o "$actuallyInstallComposer_installer" https://getcomposer.org/installer - actuallyInstallComposer_expectedSignature="$(curl -sSLf https://composer.github.io/installer.sig)" - actuallyInstallComposer_actualSignature="$(php -n -r "echo hash_file('sha384', '$actuallyInstallComposer_installer');")" - if test "$actuallyInstallComposer_expectedSignature" != "$actuallyInstallComposer_actualSignature"; then - printf 'Verification of composer installer failed!\nExpected signature: %s\nActual signature: %s\n' "$actuallyInstallComposer_expectedSignature" "$actuallyInstallComposer_actualSignature" >&2 - exit 1 - fi - actuallyInstallComposer_flags="--install-dir=$1" - if test -n "${2:-}"; then - actuallyInstallComposer_flags="$actuallyInstallComposer_flags --filename=$2" - else - actuallyInstallComposer_flags="$actuallyInstallComposer_flags --filename=composer" - fi - if test -n "${3:-}"; then - actuallyInstallComposer_flags="$actuallyInstallComposer_flags $3" - fi - php "$actuallyInstallComposer_installer" $actuallyInstallComposer_flags - rm -- "$actuallyInstallComposer_installer" -} - -# Install ionCube Loader -installIonCubeLoader() { - installIonCubeLoader_version='' - case "$DISTRO" in - alpine) - # For 14.4.0 we have a Segmentation Fault - installIonCubeLoader_version=14.0.0 - ;; - esac - installIonCubeLoader_versionForUrl='' - installIonCubeLoader_versionForMessage=latest - if test -n "$installIonCubeLoader_version"; then - installIonCubeLoader_versionForUrl="_$installIonCubeLoader_version" - installIonCubeLoader_versionForMessage="v$installIonCubeLoader_version" - fi - # See https://www.ioncube.com/loaders.php - case $PHP_BITS in - 32) - case $(uname -m) in - aarch* | arm*) - installIonCubeLoader_url="https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_armv7l$installIonCubeLoader_versionForUrl.tar.gz" - ;; - *) - installIonCubeLoader_url="https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86$installIonCubeLoader_versionForUrl.tar.gz" - ;; - esac - ;; - *) - case $(uname -m) in - aarch64 | arm64 | armv8) - installIonCubeLoader_url="https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_aarch64$installIonCubeLoader_versionForUrl.tar.gz" - ;; - *) - installIonCubeLoader_url="https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64$installIonCubeLoader_versionForUrl.tar.gz" - ;; - esac - ;; - esac - printf 'Downloading ionCube Loader (%s)... ' "$installIonCubeLoader_versionForMessage" - installIonCubeLoader_dir="$(getPackageSource $installIonCubeLoader_url)" - echo 'done.' - installIonCubeLoader_so=$(php -r "printf('ioncube_loader_lin_%s.%s%s.so', PHP_MAJOR_VERSION, PHP_MINOR_VERSION, ZEND_THREAD_SAFE ? '_ts' : '');") - cp "$installIonCubeLoader_dir/$installIonCubeLoader_so" "$(getPHPExtensionsDir)/ioncube_loader.so" -} - -# Install SourceGuardian Loader -installSourceGuardian() { - # See https://www.sourceguardian.com/loaders.html - case $PHP_BITS in - 32) - installSourceGuardian_url=https://www.sourceguardian.com/loaders/download/loaders.linux-i386.tar.gz - ;; - *) - case $(uname -m) in - aarch64 | arm64 | armv8) - installSourceGuardian_url=https://www.sourceguardian.com/loaders/download/loaders.linux-aarch64.tar.gz - ;; - *) - installSourceGuardian_url=https://www.sourceguardian.com/loaders/download/loaders.linux-x86_64.tar.gz - ;; - esac - ;; - esac - printf 'Downloading SourceGuardian... ' - installSourceGuardian_dir="$(getPackageSource $installSourceGuardian_url)" - printf 'done (version: %s)\n' "$(cat "$installSourceGuardian_dir/version")" - for installSourceGuardian_phpv in $PHP_MAJDOTMINDOTPAT_VERSION $PHP_MAJDOTMIN_VERSION; do - installSourceGuardian_file="$installSourceGuardian_dir/ixed.$PHP_MAJDOTMIN_VERSION" - if test $PHP_THREADSAFE -eq 1; then - installSourceGuardian_file="${installSourceGuardian_file}ts" - fi - installSourceGuardian_file="${installSourceGuardian_file}.lin" - if test -f "$installSourceGuardian_file"; then - mv "$installSourceGuardian_file" "$(getPHPExtensionsDir)/sourceguardian.so" - return - fi - done - printf 'Unable to find a SourceGuardian compatible with PHP %s or PHP %s.\nAvailable SourceGuardian versions:\n' "$PHP_MAJDOTMINDOTPAT_VERSION" "$PHP_MAJDOTMIN_VERSION" >&2 - ls -1 "$installSourceGuardian_dir" | grep -E '^ixed\..*\.lin$' | sed -E 's/^[^0-9]+([0-9]+(\.[0-9]+)*).*$/\1/' | sort | uniq >&2 - exit 1 -} - -# Install Cargo (if not yet installed) -installCargo() { - if command -v cargo >/dev/null; then - return - fi - installCargo_cargoversion= - if ! test -f "$HOME/.cargo/env"; then - printf '# Installing cargo\n' - case "$DISTRO" in - alpine) - # see https://github.com/hyperledger/indy-vdr/issues/69#issuecomment-998104850 - export RUSTFLAGS='-C target-feature=-crt-static' - ;; - esac - curl https://sh.rustup.rs -sSf | sh -s -- -y -q - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -le 310; then - # With version 1.84.0 we have this error: - # Error relocating /root/.rustup/toolchains/stable-x86_64-unknown-linux-musl/bin/cargo: posix_spawn_file_actions_addchdir_np: symbol not found - # See https://github.com/rust-lang/rust/pull/131851#issue-2595663507 - installCargo_cargoversion=1.83.0 - fi - ;; - esac - fi - . "$HOME/.cargo/env" - if test -n "$installCargo_cargoversion"; then - rustup default -- "$installCargo_cargoversion" - fi - if test -z "${IPE_UNINSTALL_CARGO:-}"; then - IPE_UNINSTALL_CARGO=y - fi -} - -installNewRelic() { - printf '# Installing newrelic\n' - # see https://docs.newrelic.com/docs/apm/agents/php-agent/getting-started/php-agent-compatibility-requirements/ - if test $PHP_MAJMIN_VERSION -le 701; then - installNewRelic_baseUrl=https://download.newrelic.com/php_agent/archive/10.21.0.11/ - else - installNewRelic_baseUrl=https://download.newrelic.com/php_agent/release/ - fi - installNewRelic_search='\bnewrelic-php[0-9.]*-[0-9]+(\.[0-9]+)*-linux' - case "$DISTRO" in - alpine) - installNewRelic_search="$installNewRelic_search-musl" - ;; - esac - installNewRelic_file="$(curl -sSLf -o- "$installNewRelic_baseUrl" | sed -E 's/<[^>]*>//g' | grep -Eo "$installNewRelic_search.tar.gz" | sort | head -1)" - installNewRelic_url="$installNewRelic_baseUrl$installNewRelic_file" - installNewRelic_src="$(getPackageSource "$installNewRelic_url")" - cd -- "$installNewRelic_src" - NR_INSTALL_USE_CP_NOT_LN=1 NR_INSTALL_SILENT=1 ./newrelic-install install - case "${IPE_NEWRELIC_DAEMON:-}" in - 1 | y* | Y*) - NR_INSTALL_USE_CP_NOT_LN=1 NR_INSTALL_SILENT=1 ./newrelic-install install_daemon - ;; - esac - case "${IPE_NEWRELIC_KEEPLOG:-}" in - 1 | y* | Y*) ;; - *) - rm -f /tmp/nrinstall-*.tar - ;; - esac - cd - >/dev/null - cat <&2 - fi - if test -n "$(getModuleSourceCodePath "$1")"; then - printf '### WARNING the module "%s" is bundled with PHP, you can NOT specify a source code path for it\n' "$1" >&2 - fi - case "$1" in - dba) - if test -e /usr/lib/$TARGET_TRIPLET/libdb-5.3.so && ! test -e /usr/lib/libdb-5.3.so; then - ln -s /usr/lib/$TARGET_TRIPLET/libdb-5.3.so /usr/lib/ - fi - if test $PHP_MAJMIN_VERSION -le 505; then - docker-php-source extract - patch /usr/src/php/ext/dba/config.m4 </dev/null - ;; - oci8 | pdo_oci) - installOracleInstantClient - if test "$1" = oci8; then - docker-php-ext-configure "$1" "--with-oci8=instantclient,$ORACLE_INSTANTCLIENT_LIBPATH" - elif test "$1" = pdo_oci; then - docker-php-ext-configure "$1" "--with-pdo-oci=instantclient,$ORACLE_INSTANTCLIENT_LIBPATH" - fi - ;; - pdo_odbc) - docker-php-ext-configure pdo_odbc --with-pdo-odbc=unixODBC,/usr - ;; - snmp) - case "$DISTRO" in - alpine) - mkdir -p -m 0755 /var/lib/net-snmp/mib_indexes - ;; - esac - ;; - sockets) - case "$PHP_MAJDOTMINDOTPAT_VERSION" in - 8.0.15 | 8.1.2) - sed -i '70 i #ifndef _GNU_SOURCE' /usr/src/php/ext/sockets/config.m4 - sed -i '71 i #define _GNU_SOURCE' /usr/src/php/ext/sockets/config.m4 - sed -i '72 i #endif' /usr/src/php/ext/sockets/config.m4 - ;; - esac - ;; - sybase_ct) - docker-php-ext-configure sybase_ct --with-sybase-ct=/usr - ;; - tidy) - case "$DISTRO" in - alpine) - if ! test -f /usr/include/buffio.h; then - ln -s /usr/include/tidybuffio.h /usr/include/buffio.h - UNNEEDED_PACKAGE_LINKS="$UNNEEDED_PACKAGE_LINKS /usr/include/buffio.h" - fi - ;; - esac - ;; - zip) - if test $PHP_MAJMIN_VERSION -le 505; then - docker-php-ext-configure zip - elif test $PHP_MAJMIN_VERSION -le 703; then - docker-php-ext-configure zip --with-libzip - else - docker-php-ext-configure zip --with-zip - fi - ;; - esac - installBundledModule_errBefore="$(php -r 'return;' 2>&1 || true)" - docker-php-ext-install -j$(getProcessorCount) "$1" - case "$1" in - imap) - case "$DISTRO_VERSION" in - debian@9) - dpkg -r libc-client2007e-dev - ;; - esac - ;; - esac - case "${IPE_SKIP_CHECK:-}" in - 1 | y* | Y*) ;; - *) - php -r 'return;' >/dev/null 2>/dev/null || true - installBundledModule_errAfter="$(php -r 'return;' 2>&1 || true)" - if test "$installBundledModule_errAfter" != "$installBundledModule_errBefore"; then - printf 'PHP has problems after installing the "%s" extension:\n%s\n' "$1" "$installBundledModule_errAfter" >&2 - rm "$PHP_INI_DIR/conf.d/docker-php-ext-$1.ini" || true - return 1 - fi - ;; - esac -} - -# Fetch a tar.gz file, extract it and returns the path of the extracted folder. -# -# Arguments: -# $1: the URL of the file to be downloaded -# -# Output: -# The path of the extracted directory -getPackageSource() { - mkdir -p /tmp/src - getPackageSource_tempFile=$(mktemp -p /tmp/src) - curl -sSLf -o "$getPackageSource_tempFile" "$1" - getPackageSource_tempDir=$(mktemp -p /tmp/src -d) - cd "$getPackageSource_tempDir" - tar -xzf "$getPackageSource_tempFile" 2>/dev/null || tar -xf "$getPackageSource_tempFile" 2>/dev/null || ( - if command -v bsdtar >/dev/null; then - bsdtar -xf "$getPackageSource_tempFile" - else - unzip -q "$getPackageSource_tempFile" - fi - ) - cd - >/dev/null - unlink "$getPackageSource_tempFile" - getPackageSource_outDir='' - for getPackageSource_i in $(ls "$getPackageSource_tempDir"); do - if test -n "$getPackageSource_outDir" || test -f "$getPackageSource_tempDir/$getPackageSource_i"; then - getPackageSource_outDir='' - break - fi - getPackageSource_outDir="$getPackageSource_tempDir/$getPackageSource_i" - done - if test -n "$getPackageSource_outDir"; then - printf '%s' "$getPackageSource_outDir" - else - printf '%s' "$getPackageSource_tempDir" - fi -} - -# Install a PECL/remote PHP module given its handle -# -# Arguments: -# $1: the handle of the PHP module -installRemoteModule() { - installRemoteModule_module="$1" - printf '### INSTALLING REMOTE MODULE %s ###\n' "$installRemoteModule_module" - installRemoteModule_version="$(resolvePHPModuleVersion "$installRemoteModule_module")" - installRemoteModule_path="$(getModuleSourceCodePath "$installRemoteModule_module")" - rm -rf "$CONFIGURE_FILE" - installRemoteModule_manuallyInstalled=0 - installRemoteModule_cppflags='' - installRemoteModule_ini_basename='' - installRemoteModule_ini_extra='' - case "$installRemoteModule_module" in - amqp) - if test -z "$installRemoteModule_version"; then - if test "$DISTRO_VERSION" = debian@8; then - # in Debian Jessie we have librabbitmq version 0.5.2 - installRemoteModule_version=1.9.3 - elif test $PHP_MAJMIN_VERSION -le 505; then - installRemoteModule_version=1.9.4 - elif test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=1.11.0 - fi - fi - ;; - apcu) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=4.0.11 - fi - fi - ;; - apcu_bc) - # apcu_bc must be loaded after apcu - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - ;; - ast) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=1.0.16 - fi - fi - ;; - bitset) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.0.4 - fi - fi - ;; - blackfire) - case $(uname -m) in - i386 | i686 | x86) - installRemoteModule_tmp1=i386 - ;; - aarch64 | arm64 | armv8) - installRemoteModule_tmp1=arm64 - ;; - *) - installRemoteModule_tmp1=amd64 - ;; - esac - case $DISTRO in - alpine) - installRemoteModule_distro=alpine - ;; - *) - installRemoteModule_distro=linux - ;; - esac - installRemoteModule_tmp2=$(php -r 'echo PHP_MAJOR_VERSION . PHP_MINOR_VERSION . (ZEND_THREAD_SAFE ? "-zts" : "");') - installRemoteModule_tmp="$(mktemp -p /tmp/src -d)" - cd "$installRemoteModule_tmp" - curl -sSLf --user-agent Docker https://blackfire.io/api/v1/releases/probe/php/$installRemoteModule_distro/$installRemoteModule_tmp1/$installRemoteModule_tmp2 | tar xz - mv blackfire-*.so $(getPHPExtensionsDir)/blackfire.so - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - installRemoteModule_ini_extra="$(printf '%sblackfire.agent_socket=tcp://blackfire:8307\n' "$installRemoteModule_ini_extra")" - ;; - cassandra) - installRemoteModule_src="$(getPackageSource https://github.com/nano-interactive/ext-cassandra/tarball/1cf12c5ce49ed43a2c449bee4b7b23ce02a37bf0)" - cd "$installRemoteModule_src/ext" - phpize - ./configure - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - ;; - cmark) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=1.1.0 - fi - fi - if ! test -e /usr/local/lib/libcmark.so && ! test -e /usr/local/lib64/libcmark.so && ! test -e /usr/lib/libcmark.so && ! test -e /usr/lib64/libcmark.so && ! test -e /lib/libcmark.so; then - if test $(compareVersions "$(cmake --version | head -n1 | sed -E 's/^.* //')" '3.7') -lt 0; then - installRemoteModule_tmp=0.29.0 - else - installRemoteModule_tmp=0.31.1 - fi - cd "$(getPackageSource https://github.com/commonmark/cmark/archive/$installRemoteModule_tmp.tar.gz)" - make -s -j$(getProcessorCount) cmake_build - make -s -j$(getProcessorCount) install - cd - >/dev/null - case "$DISTRO" in - alpine) - if test -e /usr/local/lib64/libcmark.so.$installRemoteModule_tmp && ! test -e /usr/local/lib/libcmark.so.$installRemoteModule_tmp; then - ln -s /usr/local/lib64/libcmark.so.$installRemoteModule_tmp /usr/local/lib/ - fi - ;; - *) - ldconfig || true - ;; - esac - fi - ;; - csv) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=0.3.1 - fi - fi - ;; - ddtrace) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=0.75.0 - fi - if test -z "$installRemoteModule_version"; then - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -le 312; then - # cc is not supported due to a memcmp related bug - installRemoteModule_version=1.1.0 - fi - ;; - esac - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 0.75.0) -ge 0; then - installCargo - fi - ;; - decimal) - case "$DISTRO" in - alpine) - if ! test -f /usr/local/lib/libmpdec.so; then - installLibMPDec - fi - ;; - debian) - if test $DISTRO_MAJMIN_VERSION -ge 1200; then - if test -z "$(ldconfig -p | grep -E '\slibmpdec.so\s')"; then - installLibMPDec - fi - fi - ;; - esac - ;; - ds) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 703; then - installRemoteModule_version=1.3.0 - elif test $PHP_MAJMIN_VERSION -lt 704; then - installRemoteModule_version=1.4.0 - fi - fi - ;; - ecma_intl) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=alpha - fi - ;; - ev) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 800; then - installRemoteModule_version=1.1.5 - fi - fi - ;; - event) - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 2.4.0) -ge 0; then - # Enable internal debugging in Event - addConfigureOption enable-event-debug no - # Enable sockets support in Event - if php --ri sockets >/dev/null 2>/dev/null; then - addConfigureOption enable-event-sockets yes - else - addConfigureOption enable-event-sockets no - fi - # libevent installation prefix - addConfigureOption with-event-libevent-dir /usr - # Include libevent's pthreads library and enable thread safety support in Event - addConfigureOption with-event-pthreads yes - # Include libevent protocol-specific functionality support including HTTP, DNS, and RPC - addConfigureOption with-event-extra yes - # Include libevent OpenSSL support - addConfigureOption with-event-openssl yes - # PHP Namespace for all Event classes - if test -n "${IPE_EVENT_NAMESPACE:-}"; then - addConfigureOption with-event-ns "$IPE_EVENT_NAMESPACE" - else - addConfigureOption with-event-ns no - fi - # openssl installation prefix - addConfigureOption with-openssl-dir yes - elif test $(compareVersions "$installRemoteModule_version" 1.7.6) -ge 0; then - # Enable internal debugging in Event - addConfigureOption enable-event-debug no - # Enable sockets support in Event - if php --ri sockets >/dev/null 2>/dev/null; then - addConfigureOption enable-event-sockets yes - else - addConfigureOption enable-event-sockets no - fi - # libevent installation prefix - addConfigureOption with-event-libevent-dir /usr - # Include libevent's pthreads library and enable thread safety support in Event - addConfigureOption with-event-pthreads yes - # Include libevent protocol-specific functionality support including HTTP, DNS, and RPC - addConfigureOption with-event-extra yes - # Include libevent OpenSSL support - addConfigureOption with-event-openssl yes - # openssl installation prefix - addConfigureOption with-openssl-dir no - elif test $(compareVersions "$installRemoteModule_version" 1.3.0) -ge 0; then - # Enable internal debugging in event - addConfigureOption enable-event-debug no - # libevent installation prefix - addConfigureOption with-event-libevent-dir /usr - # Include libevent's pthreads library and enable thread safety support in event - addConfigureOption with-event-pthreads yes - # Include libevent protocol-specific functionality support including HTTP, DNS, and RPC - addConfigureOption with-event-extra yes - # Include libevent OpenSSL support - addConfigureOption with-event-openssl yes - # openssl installation prefix - addConfigureOption with-openssl-dir no - fi - # event must be loaded after sockets - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - ;; - gearman) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.1.2 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=2.1.3 - fi - fi - case "$DISTRO" in - alpine) - if ! test -e /usr/local/include/libgearman/gearman.h || ! test -e /usr/local/lib/libgearman.so; then - installRemoteModule_src="$(getPackageSource https://github.com/gearman/gearmand/releases/download/1.1.21/gearmand-1.1.21.tar.gz)" - cd -- "$installRemoteModule_src" - ./configure - make -j$(getProcessorCount) install-binPROGRAMS - make -j$(getProcessorCount) install-nobase_includeHEADERS - cd - >/dev/null - fi - ;; - esac - ;; - geoip) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=beta - fi - ;; - geos) - if test -z "$installRemoteModule_path"; then - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=dfe1ab17b0f155cc315bc13c75689371676e02e1 - fi - installRemoteModule_src="$(getPackageSource https://github.com/libgeos/php-geos/archive/$installRemoteModule_version.tar.gz)" - cd "$installRemoteModule_src" - ./autogen.sh - ./configure - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - fi - ;; - geospatial) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.2.1 - else - installRemoteModule_version=beta - fi - fi - ;; - gmagick) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.1.7RC3 - else - installRemoteModule_version=beta - fi - fi - ;; - grpc) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.33.1 - else - case "$DISTRO_VERSION" in - debian@8) - installRemoteModule_version=1.46.3 - ;; - alpine@3.7 | alpine@3.8 | debian@9) # With newer version: "This package requires GCC 7 or higher" - installRemoteModule_version=1.52.1 - ;; - esac - fi - fi - if test -z "$installRemoteModule_version" || test "$installRemoteModule_version" = 1.35.0; then - case "$DISTRO_VERSION" in - alpine@3.13) - installRemoteModule_cppflags='-Wno-maybe-uninitialized' - ;; - esac - fi - ;; - http) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.6.0 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=3.2.4 - fi - fi - if test $PHP_MAJMIN_VERSION -ge 700; then - if ! test -e /usr/local/lib/libidnkit.so; then - installRemoteModule_src="$(getPackageSource https://jprs.co.jp/idn/idnkit-2.3.tar.bz2)" - cd -- "$installRemoteModule_src" - CFLAGS=-Wno-incompatible-pointer-types ./configure - make -j$(getProcessorCount) install - cd - >/dev/null - fi - fi - # http must be loaded after raphf and propro - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - ;; - igbinary) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.0.8 - fi - fi - ;; - imap) - # Include Kerberos Support - addConfigureOption with-kerberos yes - # Include SSL Support - addConfigureOption with-imap-ssl yes - ;; - imagick) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 506; then - installRemoteModule_version=3.7.0 - fi - fi - ;; - inotify) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.1.6 - fi - fi - ;; - ion) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=alpha - fi - if ! test -f /usr/local/lib/libionc.so || ! test -f /usr/local/include/ionc/ion.h; then - echo 'Installing ion-c... ' - installRemoteModule_src="$(mktemp -p /tmp/src -d)" - git clone -q -c advice.detachedHead=false --depth 1 --branch v1.1.3 https://github.com/amzn/ion-c.git "$installRemoteModule_src/ion" - ( - cd "$installRemoteModule_src/ion" - git submodule init -q - git submodule update -q - mkdir -p build - cd build - CFLAGS='-Wno-incompatible-pointer-types -Wno-stringop-overflow -Wno-discarded-qualifiers' cmake -DCMAKE_BUILD_TYPE=Release .. -Wno-dev - make clean - make -j$(getProcessorCount) install - ) - rm -rf "$installRemoteModule_src" - fi - addConfigureOption with-ion "shared,/usr/local" - ;; - ioncube_loader) - installIonCubeLoader - installRemoteModule_manuallyInstalled=1 - ;; - jsmin) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=2.0.1 - fi - fi - ;; - jsonpath) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 800; then - installRemoteModule_version=1.0.1 - fi - fi - ;; - luasandbox) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 702; then - installRemoteModule_version=3.0.3 - fi - fi - ;; - lz4) - if test -z "$installRemoteModule_path"; then - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=0.4.3 - fi - installRemoteModule_src="$(getPackageSource https://github.com/kjdev/php-ext-lz4/archive/refs/tags/$installRemoteModule_version.tar.gz)" - cd "$installRemoteModule_src" - phpize - ./configure --with-lz4-includedir=/usr - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - fi - ;; - lzf) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 702; then - installRemoteModule_version=1.6.8 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" '1.5.0') -ge 0; then - # Sacrifice speed in favour of compression ratio? - case "${IPE_LZF_BETTERCOMPRESSION:-}" in - 1 | y* | Y*) - addConfigureOption 'enable-lzf-better-compression' 'yes' - ;; - *) - addConfigureOption 'enable-lzf-better-compression' 'no' - ;; - esac - fi - ;; - mailparse) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.1.6 - elif test $PHP_MAJMIN_VERSION -le 702; then - installRemoteModule_version=3.1.3 - fi - fi - ;; - memcache) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.2.7 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=4.0.5.2 - fi - fi - ;; - memcached) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.2.0 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - # Set the path to libmemcached install prefix - addConfigureOption 'with-libmemcached-dir' 'no' - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" '3.0.0') -ge 0; then - # Set the path to ZLIB install prefix - addConfigureOption 'with-zlib-dir' 'no' - # Use system FastLZ library - addConfigureOption 'with-system-fastlz' 'no' - # Enable memcached igbinary serializer support - if php --ri igbinary >/dev/null 2>/dev/null; then - addConfigureOption 'enable-memcached-igbinary' 'yes' - else - addConfigureOption 'enable-memcached-igbinary' 'no' - fi - # Enable memcached msgpack serializer support - if php --ri msgpack >/dev/null 2>/dev/null; then - addConfigureOption 'enable-memcached-msgpack' 'yes' - else - addConfigureOption 'enable-memcached-msgpack' 'no' - fi - # Enable memcached json serializer support - addConfigureOption 'enable-memcached-json' 'yes' - # Enable memcached protocol support - addConfigureOption 'enable-memcached-protocol' 'no' # https://github.com/php-memcached-dev/php-memcached/issues/418#issuecomment-449587972 - # Enable memcached sasl support - addConfigureOption 'enable-memcached-sasl' 'yes' - # Enable memcached session handler support - addConfigureOption 'enable-memcached-session' 'yes' - fi - # memcached must be loaded after msgpack - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - ;; - memprof) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.0.0 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=2.1.0 - fi - fi - ;; - mongo) - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" '1.5.0') -ge 0; then - # Build with Cyrus SASL (MongoDB Enterprise Authentication) support? - addConfigureOption '-with-mongo-sasl' 'yes' - fi - ;; - mongodb) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 505; then - installRemoteModule_version=1.5.5 - elif test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.7.5 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=1.9.2 - elif test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=1.11.1 - elif test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=1.16.2 - elif test $PHP_MAJMIN_VERSION -le 800; then - installRemoteModule_version=1.20.1 - fi - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 1.17.0) -ge 0; then - # Enable developer flags? (yes/no) - addConfigureOption enable-mongodb-developer-flags no - # Enable code coverage? (yes/no) - addConfigureOption enable-mongodb-coverage no - # Use system libraries for libbson, libmongoc, and libmongocrypt? (yes/no) - addConfigureOption with-mongodb-system-libs no - # Enable client-side encryption? (auto/yes/no) - addConfigureOption with-mongodb-client-side-encryption yes - # Enable Snappy for compression? (auto/yes/no) - addConfigureOption with-mongodb-snappy yes - # Enable zlib for compression? (auto/system/bundled/no) - addConfigureOption with-mongodb-zlib yes - # Enable zstd for compression? (auto/yes/no) - addConfigureOption with-mongodb-zstd yes - # Enable SASL for Kerberos authentication? (auto/cyrus/no) - addConfigureOption with-mongodb-sasl yes - # Enable crypto and TLS? (auto/openssl/libressl/darwin/no) - addConfigureOption with-mongodb-ssl yes - # Use system crypto profile (OpenSSL only)? (yes/no) - addConfigureOption enable-mongodb-crypto-system-profile yes - # Use bundled or system utf8proc for SCRAM-SHA-256 SASLprep? (bundled/system) - addConfigureOption with-mongodb-utf8proc bundled - fi - ;; - mosquitto) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=beta - fi - ;; - msgpack) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.5.7 - fi - fi - ;; - newrelic) - installNewRelic - installRemoteModule_manuallyInstalled=2 - ;; - oauth) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.2.3 - fi - fi - ;; - oci8 | pdo_oci) - installOracleInstantClient - if test "$installRemoteModule_module" = oci8; then - addConfigureOption with-oci8 "instantclient,$ORACLE_INSTANTCLIENT_LIBPATH" - elif test "$installRemoteModule_module" = pdo_oci; then - addConfigureOption with-pdo-oci "instantclient,$ORACLE_INSTANTCLIENT_LIBPATH" - fi - ;; - opencensus) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=alpha - fi - ;; - openswoole) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 704; then - installRemoteModule_version=4.10.0 - elif test $PHP_MAJMIN_VERSION -lt 801; then - installRemoteModule_version=22.0.0 - elif test $PHP_MAJMIN_VERSION -lt 802; then - installRemoteModule_version=22.1.2 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if php --ri sockets >/dev/null 2>/dev/null; then - installRemoteModule_sockets=yes - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - else - installRemoteModule_sockets=no - fi - installRemoteModule_openssl=yes - if test -n "$installRemoteModule_version" && test $(compareVersions "$installRemoteModule_version" 22.1.2) -ge 0; then - # enable coroutine sockets? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 protocol? - addConfigureOption enable-http2 yes - # enable coroutine mysqlnd? - addConfigureOption enable-mysqlnd yes - # enable coroutine curl? - addConfigureOption enable-hook-curl yes - # enable coroutine postgres? - addConfigureOption with-postgres yes - elif test $(compareVersions "$installRemoteModule_version" 22.1.1) -ge 0; then - # enable c-ares support? - addConfigureOption enable-cares yes - # enable coroutine sockets? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 protocol? - addConfigureOption enable-http2 yes - # enable coroutine mysqlnd? - addConfigureOption enable-mysqlnd yes - # enable coroutine curl? - addConfigureOption enable-hook-curl yes - # enable coroutine postgres? - addConfigureOption with-postgres yes - elif test $(compareVersions "$installRemoteModule_version" 22.1.0) -ge 0; then - # enable coroutine sockets? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 protocol? - addConfigureOption enable-http2 yes - # enable coroutine mysqlnd? - addConfigureOption enable-mysqlnd yes - # enable coroutine curl? - addConfigureOption enable-hook-curl yes - # enable coroutine postgres? - addConfigureOption with-postgres yes - elif test $(compareVersions "$installRemoteModule_version" 22.0.0) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable hook curl support? - addConfigureOption enable-hook-curl yes - # enable postgres support? - addConfigureOption with-postgres yes - elif test $(compareVersions "$installRemoteModule_version" 4.8.0) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable json support? - addConfigureOption enable-swoole-json yes - # enable curl support? - addConfigureOption enable-swoole-curl yes - # enable postgres support? - addConfigureOption with-postgres yes - else - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable json support? - addConfigureOption enable-swoole-json yes - # enable curl support? - addConfigureOption enable-swoole-curl yes - fi - ;; - operator) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=beta - fi - ;; - parallel) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=0.8.3 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=1.1.4 - fi - fi - ;; - parle) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 704; then - installRemoteModule_version=0.8.3 - else - installRemoteModule_version=beta - fi - fi - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 0.8.4) -ge 0; then - # Enable internal UTF-32 support in parle - addConfigureOption enable-parle-utf32 yes - fi - ;; - pcov) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=0.9.0 - fi - fi - ;; - phalcon) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMINPAT_VERSION -lt 70401; then - installRemoteModule_version=4.1.2 - elif test $PHP_MAJMIN_VERSION -lt 800; then - installRemoteModule_version=5.4.0 - fi - fi - installRemoteModule_cppflags='-Wno-incompatible-pointer-types' - ;; - php_trie) - if ! test -f /usr/local/include/hat-trie/include/tsl/htrie_map.h; then - installRemoteModule_src="$(getPackageSource https://codeload.github.com/Tessil/hat-trie/tar.gz/v0.6.0)" - mkdir -p /usr/local/include/hat-trie - mv "$installRemoteModule_src/include" /usr/local/include/hat-trie - fi - ;; - pq) - # pq must be loaded after raphf - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - ;; - propro) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.0.2 - fi - fi - ;; - protobuf) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=3.12.4 - elif test $PHP_MAJMIN_VERSION -lt 800; then - installRemoteModule_version=3.24.4 - elif test $PHP_MAJMIN_VERSION -lt 801; then - installRemoteModule_version=3.25.3 - fi - fi - ;; - psr) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 506; then - installRemoteModule_version=0.5.1 - elif test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=0.6.1 - elif test $PHP_MAJMIN_VERSION -lt 703; then - installRemoteModule_version=1.1.0 - fi - fi - ;; - pthreads) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.0.10 - fi - fi - ;; - raphf) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.1.2 - fi - fi - ;; - rdkafka) - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version"; then - installRemoteModule_version1='' - if test $PHP_MAJMIN_VERSION -le 505; then - installRemoteModule_version1=3.0.5 - elif test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version1=4.1.2 - fi - installRemoteModule_version2='' - case "$DISTRO" in - alpine) - installRemoteModule_tmp='librdkafka' - ;; - debian) - installRemoteModule_tmp='librdkafka*' - ;; - *) - installRemoteModule_tmp='' - ;; - esac - if test -n "$installRemoteModule_tmp"; then - installRemoteModule_tmp="$(getInstalledPackageVersion "$installRemoteModule_tmp")" - if test -n "$installRemoteModule_tmp" && test $(compareVersions "$installRemoteModule_tmp" '0.11.0') -lt 0; then - installRemoteModule_version2=3.1.3 - fi - fi - if test -z "$installRemoteModule_version1" || test -z "$installRemoteModule_version2"; then - installRemoteModule_version="$installRemoteModule_version1$installRemoteModule_version2" - elif test $(compareVersions "$installRemoteModule_version1" "$installRemoteModule_version2") -le 0; then - installRemoteModule_version="$installRemoteModule_version1" - else - installRemoteModule_version="$installRemoteModule_version2" - fi - fi - ;; - redis) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=4.3.0 - elif test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=5.3.7 - elif test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=6.0.2 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - # Enable igbinary serializer support? - if php --ri igbinary >/dev/null 2>/dev/null; then - addConfigureOption enable-redis-igbinary yes - else - addConfigureOption enable-redis-igbinary no - fi - # Enable lzf compression support? - addConfigureOption enable-redis-lzf yes - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 5.0.0) -ge 0; then - if ! test -e /usr/include/zstd.h || ! test -e /usr/lib/libzstd.so -o -e "/usr/lib/$TARGET_TRIPLET/libzstd.so"; then - installRemoteModule_zstdVersion=1.4.4 - installRemoteModule_zstdVersionMajor=$(echo $installRemoteModule_zstdVersion | cut -d. -f1) - rm -rf /tmp/src/zstd - mv "$(getPackageSource https://github.com/facebook/zstd/releases/download/v$installRemoteModule_zstdVersion/zstd-$installRemoteModule_zstdVersion.tar.gz)" /tmp/src/zstd - cd /tmp/src/zstd - make V=0 -j$(getProcessorCount) lib - cp -f lib/libzstd.so "/usr/lib/$TARGET_TRIPLET/libzstd.so.$installRemoteModule_zstdVersion" - ln -sf "/usr/lib/$TARGET_TRIPLET/libzstd.so.$installRemoteModule_zstdVersion" "/usr/lib/$TARGET_TRIPLET/libzstd.so.$installRemoteModule_zstdVersionMajor" - ln -sf "/usr/lib/$TARGET_TRIPLET/libzstd.so.$installRemoteModule_zstdVersion" "/usr/lib/$TARGET_TRIPLET/libzstd.so" - ln -sf /tmp/src/zstd/lib/zstd.h /usr/include/zstd.h - UNNEEDED_PACKAGE_LINKS="$UNNEEDED_PACKAGE_LINKS /usr/include/zstd.h" - cd - >/dev/null - fi - # Enable zstd compression support? - addConfigureOption enable-redis-zstd yes - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 6.0.0) -ge 0; then - # Enable msgpack serializer support? - if php --ri msgpack >/dev/null 2>/dev/null; then - addConfigureOption enable-redis-msgpack yes - else - addConfigureOption enable-redis-msgpack no - fi - # Enable lz4 compression? - addConfigureOption enable-redis-lz4 yes - # Use system liblz4? - addConfigureOption with-liblz4 yes - fi - fi - ;; - relay) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version="$(curl -sSLf https://builds.r2.relay.so/meta/latest)" - installRemoteModule_version="${installRemoteModule_version#v}" - fi - case $(uname -m) in - aarch64 | arm64 | armv8) - installRemoteModule_hardware=aarch64 - ;; - *) - installRemoteModule_hardware=x86-64 - ;; - esac - installRemoteModule_distro="$DISTRO" - installRemoteModule_flags='' - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -lt 317; then - installRemoteModule_distro=alpine3.9 - else - installRemoteModule_distro=alpine3.17 - fi - ;; - debian) - case "$(dpkg -l 'libssl*' | grep -E '^ii ' | cut -d' ' -f3)" in - libssl3*) - installRemoteModule_flags=+libssl3 - ;; - esac - ;; - esac - # See https://relay.so/builds - installRemoteModule_url="https://builds.r2.relay.so/v${installRemoteModule_version}/relay-v${installRemoteModule_version}-php${PHP_MAJDOTMIN_VERSION}-${installRemoteModule_distro}-${installRemoteModule_hardware}${installRemoteModule_flags}.tar.gz" - printf 'Downloading relay v%s (%s) from %s... ' "$installRemoteModule_version" "$installRemoteModule_hardware" "$installRemoteModule_url" - installRemoteModule_src="$(getPackageSource $installRemoteModule_url)" - echo 'done.' - cp -- "$installRemoteModule_src/relay-pkg.so" "$PHP_EXTDIR/relay.so" - sed -i "s/00000000-0000-0000-0000-000000000000/$(cat /proc/sys/kernel/random/uuid)/" "$PHP_EXTDIR/relay.so" - installRemoteModule_ini_extra="$(grep -vE '^[ \t]*extension[ \t]*=' $installRemoteModule_src/relay.ini)" - installRemoteModule_manuallyInstalled=1 - ;; - saxon) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -ge 800; then - installRemoteModule_version='12.4.2' - else - installRemoteModule_version='12.3' - fi - fi - installRemoteModule_majorVersion="${installRemoteModule_version%%.*}" - if test "$installRemoteModule_majorVersion" -ge 12; then - case $(uname -m) in - aarch64 | arm64 | armv8) - installRemoteModule_url=https://downloads.saxonica.com/SaxonC/EE/${installRemoteModule_majorVersion}/libsaxon-EEC-linux-aarch64-v${installRemoteModule_version}.zip - ;; - *) - installRemoteModule_url=https://downloads.saxonica.com/SaxonC/EE/${installRemoteModule_majorVersion}/libsaxon-EEC-linux-x86_64-v${installRemoteModule_version}.zip - ;; - esac - else - installRemoteModule_url=https://downloads.saxonica.com/SaxonC/EE/${installRemoteModule_majorVersion}/libsaxon-EEC-setup64-v${installRemoteModule_version}.zip - fi - installRemoteModule_dir="$(getPackageSource $installRemoteModule_url)" - if ! test -f /usr/lib/libsaxon-*.so; then - if test "$installRemoteModule_majorVersion" -ge 12; then - cp $installRemoteModule_dir/libs/nix/*.so /usr/lib/ - else - cp $installRemoteModule_dir/*.so /usr/lib/ - fi - ldconfig || true - fi - cd "$installRemoteModule_dir/Saxon.C.API" - phpize - ./configure --enable-saxon - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - ;; - seasclick) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.1.0 - fi - fi - ;; - seaslog) - installRemoteModule_cppflags='-Wno-incompatible-pointer-types' - ;; - smbclient) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.1.1 - elif test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=1.1.2 - fi - fi - ;; - snappy) - if test -z "$installRemoteModule_path"; then - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=0.2.1 - fi - installRemoteModule_src="$(getPackageSource https://github.com/kjdev/php-ext-snappy/archive/refs/tags/$installRemoteModule_version.tar.gz)" - cd "$installRemoteModule_src" - phpize - ./configure --with-snappy-includedir=/usr - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - fi - ;; - snuffleupagus) - if test -z "$installRemoteModule_path"; then - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 800; then - installRemoteModule_version=0.9.0 - elif test $PHP_MAJMIN_VERSION -le 801; then - installRemoteModule_version=0.10.0 - else - installRemoteModule_version=0.11.0 - fi - fi - installRemoteModule_src="$(getPackageSource https://codeload.github.com/jvoisin/snuffleupagus/tar.gz/v$installRemoteModule_version)" - cd "$installRemoteModule_src/src" - phpize - ./configure --enable-snuffleupagus - make -j$(getProcessorCount) install - cd - >/dev/null - cp -a "$installRemoteModule_src/config/default.rules" "$PHP_INI_DIR/conf.d/snuffleupagus.rules" - if test $(compareVersions "$installRemoteModule_version" 0.8.0) -ge 0; then - printf '\n# Disable "PHP version is not officially maintained anymore" message\nsp.global.show_old_php_warning.disable();\n' >>"$PHP_INI_DIR/conf.d/snuffleupagus.rules" - fi - else - if test -f "$installRemoteModule_path/config/default.rules"; then - cp -a "$installRemoteModule_path/config/default.rules" "$PHP_INI_DIR/conf.d/snuffleupagus.rules" - fi - fi - installRemoteModule_ini_extra="$(printf '%ssp.configuration_file=%s\n' "$installRemoteModule_ini_extra" "$PHP_INI_DIR/conf.d/snuffleupagus.rules")" - installRemoteModule_manuallyInstalled=1 - ;; - sodium | libsodium) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=1.0.7 - fi - fi - ;; - solr) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=2.4.0 - elif test $PHP_MAJMIN_VERSION -lt 704; then - installRemoteModule_version=2.6.0 - fi - fi - ;; - sourceguardian) - installSourceGuardian - installRemoteModule_manuallyInstalled=1 - ;; - spx) - if test -z "$installRemoteModule_path"; then - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=v0.4.18 - fi - if test "${installRemoteModule_version%.*}" = "$installRemoteModule_version"; then - installRemoteModule_displayVersion="$installRemoteModule_version" - else - installRemoteModule_displayVersion="git--master-$installRemoteModule_version" - fi - installRemoteModule_src="$(getPackageSource https://codeload.github.com/NoiseByNorthwest/php-spx/tar.gz/$installRemoteModule_version)" - cd -- "$installRemoteModule_src" - phpize - ./configure - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - fi - ;; - sqlsrv | pdo_sqlsrv) - isMicrosoftSqlServerODBCInstalled || installMicrosoftSqlServerODBC - if test -z "$installRemoteModule_version"; then - # https://docs.microsoft.com/it-it/sql/connect/php/system-requirements-for-the-php-sql-driver?view=sql-server-2017 - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=3.0.1 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=5.3.0 - elif test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=5.6.1 - elif test $PHP_MAJMIN_VERSION -le 702; then - installRemoteModule_version=5.8.1 - elif test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=5.9.0 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=5.10.1 - elif test $PHP_MAJMIN_VERSION -le 800; then - installRemoteModule_version=5.11.1 - fi - fi - ;; - ssh2) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.13 - fi - fi - ;; - stomp) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.0.9 - fi - fi - if test "$DISTRO" = debian; then - addConfigureOption with-openssl-dir yes - else - addConfigureOption with-openssl-dir /usr - fi - ;; - swoole) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 502; then - installRemoteModule_version=1.6.10 - elif test $PHP_MAJMIN_VERSION -le 504; then - installRemoteModule_version=2.0.4 - elif test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.0.11 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=4.3.6 - elif test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=4.5.10 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=4.8.11 - elif test $PHP_BITS -eq 32; then - # See https://github.com/swoole/swoole-src/issues/5198#issuecomment-1820162178 - installRemoteModule_version="$(resolvePHPModuleVersion "$installRemoteModule_module" '^5.0')" - else - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -le 312; then - installRemoteModule_version=5.1.2 - fi - ;; - esac - fi - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 800; then - installRemoteModule_version=5.1.3 - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" stable)" - fi - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if php --ri sockets >/dev/null 2>/dev/null; then - installRemoteModule_sockets=yes - else - installRemoteModule_sockets=no - fi - installRemoteModule_openssl=yes - case "$DISTRO_VERSION" in - alpine@3.7 | alpine@3.8) - if test $(compareVersions "$installRemoteModule_version" 4.6.0) -lt 0; then - # see https://github.com/swoole/swoole-src/issues/3934 - installRemoteModule_openssl=no - fi - ;; - esac - if test $PHP_THREADSAFE -eq 1; then - installRemoteModule_zts=yes - else - installRemoteModule_zts=no - fi - installRemoteModule_sqlite=yes - installRemoteModule_iouring=no - installRemoteModule_curl=yes - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -lt 317; then - # we need sqlite3 >= 3.7.7 - installRemoteModule_sqlite=no - fi - case "${IPE_SWOOLE_WITHOUT_IOURING:-}" in - 1 | y* | Y*) ;; - *) - # iouring support in swoole 6 requires liburing 2.5+: available since Alpine 3.19 - # but with Alpine 3.19 we have a "invalid use of incomplete type 'const struct statx'" error - if test $DISTRO_MAJMIN_VERSION -ge 320; then - installRemoteModule_iouring=yes - fi - ;; - esac - ;; - debian) - if test $PHP_MAJMIN_VERSION -ge 800; then - # see https://github.com/swoole/swoole-src/issues/5365 - installRemoteModule_curl=no - fi - if test $DISTRO_MAJMIN_VERSION -lt 1200; then - # we need sqlite3 >= 3.7.7 - installRemoteModule_sqlite=no - fi - case "${IPE_SWOOLE_WITHOUT_IOURING:-}" in - 1 | y* | Y*) ;; - *) - if test $DISTRO_VERSION_NUMBER -ge 13; then - # iouring support in swoole 6 requires liburing 2.5+: available since Debian Trixie (13) - installRemoteModule_iouring=yes - fi - ;; - esac - ;; - esac - installRemoteModule_zstd=yes - case "$DISTRO" in - debian) - if test $DISTRO_VERSION_NUMBER -lt 11; then - # swoole 6 requires libzstd >= 1.4.0, but on debian 10 (buster) we have 1.3.8 - installRemoteModule_zstd=no - fi - ;; - esac - if test $(compareVersions "$installRemoteModule_version" 6.0.0) -ge 0; then - # enable sockets support? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - # enable cares support? - addConfigureOption enable-cares yes - # enable brotli support? - addConfigureOption enable-brotli yes - # enable zstd support? - addConfigureOption enable-zstd $installRemoteModule_zstd - # enable PostgreSQL database support? - addConfigureOption enable-swoole-pgsql yes - # enable ODBC database support? - addConfigureOption with-swoole-odbc no - # enable Oracle database support? - addConfigureOption with-swoole-oracle no - # enable Sqlite database support? - addConfigureOption enable-swoole-sqlite $installRemoteModule_sqlite - # enable swoole thread support (need php zts support)? - addConfigureOption enable-swoole-thread $installRemoteModule_zts - # enable iouring for file async support? - addConfigureOption enable-iouring $installRemoteModule_iouring - elif test $(compareVersions "$installRemoteModule_version" 5.1.0) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - # enable cares support? - addConfigureOption enable-cares yes - # enable brotli support? - addConfigureOption enable-brotli yes - # enable PostgreSQL database support? - addConfigureOption enable-swoole-pgsql yes - # enable ODBC database support? - addConfigureOption with-swoole-odbc no - # enable Oracle database support? - addConfigureOption with-swoole-oracle no - # enable Sqlite database support? - addConfigureOption enable-swoole-sqlite $installRemoteModule_sqlite - elif test $(compareVersions "$installRemoteModule_version" 5.0.1) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - # enable cares support? - addConfigureOption enable-cares yes - # enable brotli support? - addConfigureOption enable-brotli yes - elif test $(compareVersions "$installRemoteModule_version" 5.0.0) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - # enable cares support? - addConfigureOption enable-cares yes - elif test $(compareVersions "$installRemoteModule_version" 4.8.11) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable json support? - addConfigureOption enable-swoole-json yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - # enable cares support? - addConfigureOption enable-cares yes - elif test $(compareVersions "$installRemoteModule_version" 4.6.1) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable json support? - addConfigureOption enable-swoole-json yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - elif test $(compareVersions "$installRemoteModule_version" 4.4.0) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - elif test $(compareVersions "$installRemoteModule_version" 4.2.11) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable postgresql coroutine client support? - addConfigureOption enable-coroutine-postgresql yes - elif test $(compareVersions "$installRemoteModule_version" 4.2.7) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable postgresql coroutine client support? - addConfigureOption enable-coroutine-postgresql yes - # enable kernel debug/trace log? (it will degrade performance) - addConfigureOption enable-debug-log no - elif test $(compareVersions "$installRemoteModule_version" 4.2.6) -ge 0; then - # enable debug/trace log support? - addConfigureOption enable-debug-log no - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable postgresql coroutine client support? - addConfigureOption enable-coroutine-postgresql yes - elif test $(compareVersions "$installRemoteModule_version" 4.2.0) -ge 0; then - # enable debug/trace log support? - addConfigureOption enable-debug-log no - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable async-redis support? - addConfigureOption enable-async-redis yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable postgresql coroutine client support? - addConfigureOption enable-coroutine-postgresql yes - elif test $(compareVersions "$installRemoteModule_version" 2.1.2) -ge 0; then - # enable debug/trace log support? - addConfigureOption enable-swoole-debug no - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable async-redis support? - addConfigureOption enable-async-redis yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable postgresql coroutine client support? - addConfigureOption enable-coroutine-postgresql yes - elif test $(compareVersions "$installRemoteModule_version" 1.10.4) -ge 0 && test $(compareVersions "$installRemoteModule_version" 1.10.5) -le 0; then - # enable debug/trace log support? - addConfigureOption enable-swoole-debug no - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable async-redis support? - addConfigureOption enable-async-redis yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - fi - ;; - tdlib) - if ! test -f /usr/lib/libphpcpp.so || ! test -f /usr/include/phpcpp.h; then - if test $PHP_MAJMIN_VERSION -le 701; then - cd "$(getPackageSource https://codeload.github.com/CopernicaMarketingSoftware/PHP-CPP/tar.gz/v2.1.4)" - elif test $PHP_MAJMIN_VERSION -le 703; then - cd "$(getPackageSource https://codeload.github.com/CopernicaMarketingSoftware/PHP-CPP/tar.gz/v2.2.0)" - else - cd "$(getPackageSource https://codeload.github.com/CopernicaMarketingSoftware/PHP-CPP/tar.gz/444d1f90cf6b7f3cb5178fa0d0b5ab441b0389d0)" - fi - make -j$(getProcessorCount) - make install - cd - >/dev/null - fi - if test -z "$installRemoteModule_path"; then - installRemoteModule_tmp="$(mktemp -p /tmp/src -d)" - git clone --depth=1 --recurse-submodules https://github.com/yaroslavche/phptdlib.git "$installRemoteModule_tmp" - mkdir "$installRemoteModule_tmp/build" - cd "$installRemoteModule_tmp/build" - cmake -D USE_SHARED_PHPCPP:BOOL=ON .. - make - make install - cd - >/dev/null - rm "$PHP_INI_DIR/conf.d/tdlib.ini" - installRemoteModule_manuallyInstalled=1 - fi - ;; - tensor) - installRemoteModule_cppflags='-Wno-incompatible-pointer-types' - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=2.2.3 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=3.0.5 - fi - fi - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -ge 315 && test $DISTRO_MAJMIN_VERSION -le 317; then - if test -e /usr/lib/liblapacke.so.3 && ! test -e /usr/lib/liblapacke.so; then - ln -s /usr/lib/liblapacke.so.3 /usr/lib/liblapacke.so - fi - fi - ;; - esac - ;; - tideways) - case "$DISTRO" in - alpine) - case $(uname -m) in - aarch64 | arm64 | armv8) - installRemoteModule_architecture=alpine-arm64 - ;; - *) - installRemoteModule_architecture=alpine-x86_64 - ;; - esac - ;; - debian) - case $(uname -m) in - aarch64 | arm64 | armv8) - installRemoteModule_architecture=arm64 - ;; - *) - installRemoteModule_architecture=x86_64 - ;; - esac - ;; - esac - installRemoteModule_url="$(curl -sSLf -o - https://tideways.com/profiler/downloads | grep -Eo "\"[^\"]+/tideways-php-([0-9]+\.[0-9]+\.[0-9]+)-$installRemoteModule_architecture.tar.gz\"" | cut -d'"' -f2)" - if test -z "$installRemoteModule_url"; then - echo 'Failed to find the tideways tarball to be downloaded' - exit 1 - fi - printf 'Downloading tideways from %s\n' "$installRemoteModule_url" - installRemoteModule_src="$(getPackageSource $installRemoteModule_url)" - if test -d "$installRemoteModule_src/dist"; then - installRemoteModule_src="$installRemoteModule_src/dist" - fi - installRemoteModule_src="$installRemoteModule_src/tideways-php" - case "$DISTRO" in - alpine) - installRemoteModule_src="$installRemoteModule_src-alpine" - ;; - esac - installRemoteModule_src="$installRemoteModule_src-$PHP_MAJDOTMIN_VERSION" - if test $PHP_THREADSAFE -eq 1; then - installRemoteModule_src="$installRemoteModule_src-zts" - fi - installRemoteModule_src="$installRemoteModule_src.so" - if ! test -f "$installRemoteModule_src"; then - echo 'tideways does not support the current environment' >&2 - exit 1 - fi - mv "$installRemoteModule_src" $(getPHPExtensionsDir)/tideways.so - installRemoteModule_manuallyInstalled=1 - ;; - uopz) - installRemoteModule_cppflags='-Wno-incompatible-pointer-types' - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.0.7 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=5.0.2 - elif test $PHP_MAJMIN_VERSION -le 740; then - installRemoteModule_version=6.1.2 - fi - fi - ;; - uploadprogress) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=1.1.4 - fi - fi - ;; - uuid) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.0.5 - fi - fi - ;; - uv) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 800; then - installRemoteModule_version=0.2.4 - else - installRemoteModule_version=beta - fi - fi - ;; - vld) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=0.14.0 - else - installRemoteModule_version=beta - fi - fi - ;; - wikidiff2) - case "$DISTRO" in - alpine) - if ! isLibDatrieInstalled; then - installLibDatrie - fi - if ! isLibThaiInstalled; then - installLibThai - fi - ;; - esac - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 702; then - installRemoteModule_version=1.13.0 - else - installRemoteModule_version="$(git -c versionsort.suffix=- ls-remote --tags --refs --quiet --exit-code --sort=version:refname https://github.com/wikimedia/mediawiki-php-wikidiff2.git 'refs/tags/*.*.*' | tail -1 | cut -d/ -f3)" - fi - fi - installRemoteModule_src="$(getPackageSource "https://codeload.github.com/wikimedia/mediawiki-php-wikidiff2/tar.gz/refs/tags/$installRemoteModule_version")" - cd -- "$installRemoteModule_src" - phpize - ./configure - make -j$(getProcessorCount) - make install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - ;; - xdebug) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 500; then - installRemoteModule_version=2.0.5 - elif test $PHP_MAJMIN_VERSION -le 503; then - installRemoteModule_version=2.2.7 - elif test $PHP_MAJMIN_VERSION -le 504; then - installRemoteModule_version=2.4.1 - elif test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.5.5 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=2.6.1 - elif test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=2.9.8 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=3.1.6 - fi - fi - ;; - xdiff) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.5.2 - fi - fi - if ! test -f /usr/local/lib/libxdiff.* && ! test -f /usr/lib/libxdiff.* && ! test -f /usr/lib/x86_64*/libxdiff.*; then - installRemoteModule_src="$(getPackageSource https://raw.githubusercontent.com/mlocati/docker-php-extension-installer/assets/resources/libxdiff-0.23.tar.gz)" - cd -- "$installRemoteModule_src" - ./configure --disable-shared --disable-dependency-tracking --with-pic - make -j$(getProcessorCount) - make install - cd - >/dev/null - fi - ;; - xhprof) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.9.4 - fi - fi - ;; - xlswriter) - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 1.2.7) -ge 0; then - # enable reader supports? - addConfigureOption enable-reader yes - fi - ;; - xmldiff) - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version"; then - case "$DISTRO_VERSION" in - debian@8) - # The gcc version of Debian Jessie is too old => error: 'nullptr' was not declared in this scope - installRemoteModule_version=1.1.4 - ;; - esac - fi - ;; - xmlrpc) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=beta - fi - ;; - yac) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.9.2 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 2.2.0) -ge 0; then - # Enable igbinary serializer support - if php --ri igbinary >/dev/null 2>/dev/null; then - addConfigureOption enable-igbinary yes - else - addConfigureOption enable-igbinary no - fi - # Enable json serializer support - if php --ri json >/dev/null 2>/dev/null; then - addConfigureOption enable-json yes - else - addConfigureOption enable-json no - fi - # Enable msgpack serializer support - if php --ri msgpack >/dev/null 2>/dev/null; then - addConfigureOption enable-msgpack yes - else - addConfigureOption enable-msgpack no - fi - fi - ;; - yaml) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.3.1 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=2.0.4 - fi - fi - ;; - yar) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.2.5 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 1.2.4) -ge 0; then - # Enable Msgpack Supports - if php --ri msgpack >/dev/null 2>/dev/null; then - addConfigureOption enable-msgpack yes - else - addConfigureOption enable-msgpack no - fi - fi - ;; - zmq) - if test -z "$installRemoteModule_version"; then - installRemoteModule_src="$(getPackageSource https://github.com/zeromq/php-zmq/tarball/master)" - cd "$installRemoteModule_src" - phpize - ./configure - make -j$(getProcessorCount) - make install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - fi - ;; - zookeeper) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.5.0 - fi - fi - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - case "$DISTRO" in - alpine) - if ! test -f /usr/local/include/zookeeper/zookeeper.h; then - if test $(compareVersions "$installRemoteModule_version" 1.0.0) -lt 0; then - installRemoteModule_src="$(getPackageSource http://archive.apache.org/dist/zookeeper/zookeeper-3.5.9/apache-zookeeper-3.5.9.tar.gz)" - else - installRemoteModule_tmp="$(curl -sSLf https://downloads.apache.org/zookeeper/stable | sed -E 's/["<>]/\n/g' | grep -E '^(apache-)?zookeeper-[0-9]+\.[0-9]+\.[0-9]+\.(tar\.gz|tgz)$' | head -n1)" - if test -z "$installRemoteModule_tmp"; then - echo 'Failed to detect the zookeeper library URL' >&2 - exit 1 - fi - installRemoteModule_src="$(getPackageSource https://downloads.apache.org/zookeeper/stable/$installRemoteModule_tmp)" - fi - cd -- "$installRemoteModule_src" - if test -d ~/.m2; then - installRemoteModule_delm2=n - else - installRemoteModule_delm2=y - fi - mvn -pl zookeeper-jute compile - cd - >/dev/null - cd -- "$installRemoteModule_src/zookeeper-client/zookeeper-client-c" - autoreconf -if - ./configure --without-cppunit - make -j$(getProcessorCount) CFLAGS='-Wno-stringop-truncation -Wno-format-overflow' - make install - cd - >/dev/null - if test $installRemoteModule_delm2 = y; then - rm -rf ~/.m2 - fi - fi - ;; - esac - ;; - zstd) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.11.0 - fi - fi - ;; - esac - if test $installRemoteModule_manuallyInstalled -eq 0; then - if test -n "$installRemoteModule_path"; then - printf ' (installing version %s from %s)\n' "$installRemoteModule_version" "$installRemoteModule_path" - elif test -n "$installRemoteModule_version"; then - printf ' (installing version %s)\n' "$installRemoteModule_version" - fi - installPeclPackage "$installRemoteModule_module" "$installRemoteModule_version" "$installRemoteModule_cppflags" "$installRemoteModule_path" - fi - postProcessModule "$installRemoteModule_module" - if test $installRemoteModule_manuallyInstalled -lt 2; then - case "${IPE_SKIP_CHECK:-}" in - 1 | y* | Y*) ;; - *) - checkModuleWorking "$installRemoteModule_module" "$installRemoteModule_ini_basename" "$installRemoteModule_ini_extra" - ;; - esac - enablePhpExtension "$installRemoteModule_module" "$installRemoteModule_ini_basename" "$installRemoteModule_ini_extra" - fi -} - -# Check if a module/helper may be installed using the pecl archive -# -# Arguments: -# $1: the name of the module -# -# Return: -# 0: true -# 1: false -moduleMayUsePecl() { - case "$1" in - @composer | @fix_letsencrypt) - return 1 - ;; - blackfire | geos | ioncube_loader | snuffleupagus | sourceguardian | spx | tdlib | tideways) - return 1 - ;; - esac - if test -n "$(getModuleSourceCodePath "$1")"; then - return 1 - fi - if stringInList "$1" "$BUNDLED_MODULES"; then - return 1 - fi - return 0 -} - -# Configure the PECL package installer -# -# Updates: -# PHP_MODULES_TO_INSTALL -# Sets: -# USE_PICKLE 0: no, 1: yes (already downloaded), 2: yes (build it from source) -configureInstaller() { - USE_PICKLE=0 - if ! which pecl >/dev/null; then - for PHP_MODULE_TO_INSTALL in $PHP_MODULES_TO_INSTALL; do - if ! moduleMayUsePecl "$PHP_MODULE_TO_INSTALL"; then - continue - fi - if false && anyStringInList '' "$PHP_MODULES_TO_INSTALL"; then - USE_PICKLE=2 - else - curl -sSLf https://github.com/FriendsOfPHP/pickle/releases/latest/download/pickle.phar -o /tmp/pickle - chmod +x /tmp/pickle - USE_PICKLE=1 - fi - break - done - fi - if test $USE_PICKLE -eq 0; then - if test -z "$(pear config-get http_proxy)"; then - if test -n "${http_proxy:-}"; then - pear config-set http_proxy "$http_proxy" || true - elif test -n "${HTTP_PROXY:-}"; then - pear config-set http_proxy "$HTTP_PROXY" || true - fi - fi - pecl channel-update pecl.php.net || true - fi -} - -buildPickle() { - printf '### BUILDING PICKLE ###\n' - buildPickle_tempDir="$(mktemp -p /tmp/src -d)" - cd -- "$buildPickle_tempDir" - printf 'Downloading... ' - git clone --quiet --depth 1 https://github.com/FriendsOfPHP/pickle.git . - git tag 0.7.0 - printf 'done.\n' - printf 'Installing composer... ' - actuallyInstallComposer . composer '--1 --quiet' - printf 'done.\n' - printf 'Installing composer dependencies... ' - ./composer install --no-dev --no-progress --no-suggest --optimize-autoloader --ignore-platform-reqs --quiet --no-cache - printf 'done.\n' - printf 'Building... ' - php -d phar.readonly=0 box.phar build - mv pickle.phar /tmp/pickle - printf 'done.\n' - cd - >/dev/null -} - -# Add a configure option for the pecl/pickle install command -# -# Arguments: -# $1: the option name -# $2: the option value -addConfigureOption() { - if test $USE_PICKLE -eq 0; then - printf -- '%s\n' "$2" >>"$CONFIGURE_FILE" - else - printf -- '--%s=%s\n' "$1" "$2" >>"$CONFIGURE_FILE" - fi -} - -# Actually installs a PECL package -# -# Arguments: -# $1: the package to be installed -# $2: the package version to be installed (optional) -# $3: the value of the CPPFLAGS variable (optional) -# $4: the path of the local package to be installed (optional, downloaded from PECL if omitted/empty) -installPeclPackage() { - if ! test -f "$CONFIGURE_FILE"; then - printf '\n' >"$CONFIGURE_FILE" - fi - installPeclPackage_name="$(getPeclModuleName "$1")" - if test -z "${2:-}"; then - installPeclPackage_fullname="$installPeclPackage_name" - else - installPeclPackage_fullname="$installPeclPackage_name-$2" - fi - installPeclPackage_path="${4:-}" - if test -z "$installPeclPackage_path"; then - installPeclPackage_path="$installPeclPackage_fullname" - fi - if test $USE_PICKLE -eq 0; then - if test -n "${4:-}"; then - if test -f "$installPeclPackage_path/package2.xml"; then - installPeclPackage_path="$installPeclPackage_path/package2.xml" - else - installPeclPackage_path="$installPeclPackage_path/package.xml" - fi - fi - cat "$CONFIGURE_FILE" | MAKE="make -j$(getCompilationProcessorCount $1)" CPPFLAGS="${3:-}" pecl install "$installPeclPackage_path" - else - MAKEFLAGS="-j$(getCompilationProcessorCount $1)" CPPFLAGS="${3:-}" /tmp/pickle install --tmp-dir=/tmp/pickle.tmp --no-interaction --version-override='' --with-configure-options "$CONFIGURE_FILE" -- "$installPeclPackage_path" - fi -} - -# Check if a string is in a list of space-separated string -# -# Arguments: -# $1: the string to be checked -# $2: the string list -# -# Return: -# 0 (true): if the string is in the list -# 1 (false): if the string is not in the list -stringInList() { - for stringInList_listItem in $2; do - if test "$1" = "$stringInList_listItem"; then - return 0 - fi - done - return 1 -} - -# Check if at least one item in a list is in another list -# -# Arguments: -# $1: the space-separated list of items to be searched -# $2: the space-separated list of reference items -# -# Return: -# 0 (true): at least one of the items in $1 is in $2 -# 1 (false): otherwise -anyStringInList() { - for anyStringInList_item in $1; do - if stringInList "$anyStringInList_item" "$2"; then - return 0 - fi - done - return 1 -} - -# Remove a word from a space-separated list -# -# Arguments: -# $1: the word to be removed -# $2: the string list -# -# Output: -# The list without the word -removeStringFromList() { - removeStringFromList_result='' - for removeStringFromList_listItem in $2; do - if test "$1" != "$removeStringFromList_listItem"; then - if test -z "$removeStringFromList_result"; then - removeStringFromList_result="$removeStringFromList_listItem" - else - removeStringFromList_result="$removeStringFromList_result $removeStringFromList_listItem" - fi - fi - done - printf '%s' "$removeStringFromList_result" -} - -# Invoke apt-get update -invokeAptGetUpdate() { - if test -n "${IPE_APTGETUPDATE_ALREADY:-}"; then - apt-get update -q - return - fi - IPE_APTGETUPDATE_ALREADY=y - if grep -q 'VERSION="8 (jessie)"' /etc/os-release; then - invokeAptGetUpdate_fixdistro=jessie - elif grep -q 'VERSION="9 (stretch)"' /etc/os-release; then - invokeAptGetUpdate_fixdistro=stretch - else - invokeAptGetUpdate - return - fi - # See https://www.debian.org/distrib/archive.en.html for a list of mirrors - if test -z "${IPE_DEB_ARCHIVE:-}"; then - IPE_DEB_ARCHIVE=http://archive.kernel.org/debian-archive - fi - if test -z "${IPE_DEB_ARCHIVE_SECURITY:-}"; then - IPE_DEB_ARCHIVE_SECURITY=http://archive.kernel.org/debian-archive/debian-security - fi - sed -ri "s;^(\s*deb\s+http://(httpredir|deb).debian.org/debian\s+$invokeAptGetUpdate_fixdistro-updates\b.*);#\1;" /etc/apt/sources.list - sed -ri "s;^(\s*deb\s+)http://(httpredir|deb).debian.org;\1$IPE_DEB_ARCHIVE;" /etc/apt/sources.list - sed -ri "s;^(\s*deb\s+)http://security.debian.org/debian-security;\1$IPE_DEB_ARCHIVE_SECURITY;" /etc/apt/sources.list - sed -ri "s;^(\s*deb\s+)http://security.debian.org;\1$IPE_DEB_ARCHIVE_SECURITY;" /etc/apt/sources.list - invokeAptGetUpdate_tmp="$(mktemp)" - apt-get update -q 2>"$invokeAptGetUpdate_tmp" - if test -s "$invokeAptGetUpdate_tmp"; then - cat "$invokeAptGetUpdate_tmp" >&2 - if grep -qE ' KEYEXPIRED [0-9]' "$invokeAptGetUpdate_tmp"; then - echo '############' >&2 - echo '# WARNING! #' >&2 - echo '############' >&2 - echo 'apt packages will be installed without checking authenticity!' >&2 - printf 'APT::Get::AllowUnauthenticated "true";\n' >>/etc/apt/apt.conf.d/99unauthenticated - fi - fi - rm "$invokeAptGetUpdate_tmp" -} - -# Fix the Let's Encrypt CA certificates on old distros -fixLetsEncrypt() { - printf '### FIXING LETS ENCRYPT CA CERTIFICATES ###\n' - case "$DISTRO_VERSION" in - alpine@3.7 | alpine@3.8) - printf -- '- old Alpine Linux detected: we should fix the certificates\n' - ;; - debian@8 | debian@9) - printf -- '- old Debian detected: we should fix the certificates\n' - if ! grep -q 'mozilla/ISRG_Root_X1.crt' /etc/ca-certificates.conf && grep -q 'mozilla/DST_Root_CA_X3.crt' /etc/ca-certificates.conf; then - printf -- '- old ca-certificates package detected\n' - fixCACerts_mustUpdate=1 - if test -d /var/lib/apt/lists; then - for fixCACerts_item in $(ls -1 /var/lib/apt/lists); do - case "$fixCACerts_item" in - partial | lock) ;; - *) - fixCACerts_mustUpdate=0 - break - ;; - esac - done - fi - if test $fixCACerts_mustUpdate -eq 1; then - printf -- '- refreshing the APT package list\n' - invokeAptGetUpdate - fi - printf -- '- installing newer ca-certificates package\n' - apt-get install -qqy --no-install-recommends ca-certificates - fi - ;; - *) - printf -- '- patch not required in this distro version\n' - return - ;; - esac - if grep -Eq '^mozilla/ISRG_Root_X1\.crt$' /etc/ca-certificates.conf && grep -Eq '^mozilla/DST_Root_CA_X3\.crt$' /etc/ca-certificates.conf; then - printf -- '- disabling the DST_Root_CA_X3 certificate\n' - sed -i '/^mozilla\/DST_Root_CA_X3/s/^/!/' /etc/ca-certificates.conf - printf -- '- refreshing the certificates\n' - update-ca-certificates -f - else - printf -- '- DST_Root_CA_X3 certificate not found or already disabled\n' - fi -} - -# Cleanup everything at the end of the execution -cleanup() { - if test "${IPE_UNINSTALL_CARGO:-}" = y; then - if test -f "$HOME/.cargo/env"; then - . "$HOME/.cargo/env" - fi - if command -v rustup >/dev/null; then - rustup self uninstall -y - fi - fi - if test -n "$UNNEEDED_PACKAGE_LINKS"; then - printf '### REMOVING UNNEEDED PACKAGE LINKS ###\n' - for cleanup_link in $UNNEEDED_PACKAGE_LINKS; do - if test -L "$cleanup_link"; then - rm -f "$cleanup_link" - fi - done - fi - case "$DISTRO" in - alpine) - if stringInList icu-libs "${PACKAGES_PERSISTENT_NEW:-}" && stringInList icu-data-en "${PACKAGES_PERSISTENT_NEW:-}"; then - apk del icu-data-en >/dev/null 2>&1 || true - fi - if test -n "$PACKAGES_VOLATILE"; then - printf '### REMOVING UNNEEDED PACKAGES ###\n' - apk del --purge $PACKAGES_VOLATILE - fi - ;; - debian) - if test -n "$PACKAGES_VOLATILE"; then - printf '### REMOVING UNNEEDED PACKAGES ###\n' - apt-get remove --purge -y $PACKAGES_VOLATILE - fi - if test -n "$PACKAGES_PREVIOUS"; then - printf '### RESTORING PREVIOUSLY INSTALLED PACKAGES ###\n' - apt-get install -qqy --no-install-recommends --no-upgrade $PACKAGES_PREVIOUS - fi - ;; - esac - docker-php-source delete - rm -rf /tmp/src - rm -rf /tmp/pickle - rm -rf /tmp/pickle.tmp - rm -rf "$CONFIGURE_FILE" - case "${IPE_KEEP_SYSPKG_CACHE:-}" in - 1 | y* | Y*) ;; - *) - case "$DISTRO" in - alpine) - rm -rf /var/cache/apk/* - ;; - debian) - rm -rf /var/lib/apt/lists/* - ;; - esac - rm -rf /tmp/pear - ;; - esac -} - -DEBIAN_FRONTEND=noninteractive -export DEBIAN_FRONTEND -resetIFS -mkdir -p /tmp/src -mkdir -p /tmp/pickle.tmp -IPE_ERRFLAG_FILE="$(mktemp -p /tmp/src)" -CONFIGURE_FILE=/tmp/configure-options -IPE_APK_FLAGS='' -setDistro -case "$DISTRO_VERSION" in - debian@8) - fixMaxOpenFiles || true - ;; -esac -setPHPVersionVariables -setPHPPreinstalledModules -case "$PHP_MAJMIN_VERSION" in - 505 | 506 | 700 | 701 | 702 | 703 | 704 | 800 | 801 | 802 | 803 | 804) ;; - *) - printf "### ERROR: Unsupported PHP version: %s.%s ###\n" $((PHP_MAJMIN_VERSION / 100)) $((PHP_MAJMIN_VERSION % 100)) - ;; -esac -UNNEEDED_PACKAGE_LINKS='' -processCommandArguments "$@" - -if test -z "$PHP_MODULES_TO_INSTALL"; then - exit 0 -fi - -if stringInList @fix_letsencrypt "$PHP_MODULES_TO_INSTALL"; then - # This must be the very first thing we do - fixLetsEncrypt -fi - -sortModulesToInstall - -docker-php-source extract -BUNDLED_MODULES="$(find /usr/src/php/ext -mindepth 2 -maxdepth 2 -type f -name 'config.m4' | xargs -n1 dirname | xargs -n1 basename | xargs)" -configureInstaller - -buildRequiredPackageLists $PHP_MODULES_TO_INSTALL -if test -n "$PACKAGES_PERSISTENT_PRE"; then - markPreinstalledPackagesAsUsed -fi -if test -n "$PACKAGES_PERSISTENT_NEW$PACKAGES_VOLATILE"; then - installRequiredPackages -fi -if test "$PHP_MODULES_TO_INSTALL" != '@composer'; then - setTargetTriplet -fi -if test $USE_PICKLE -gt 1; then - buildPickle -fi - -compileLibs - -for PHP_MODULE_TO_INSTALL in $PHP_MODULES_TO_INSTALL; do - case "$PHP_MODULE_TO_INSTALL" in - @fix_letsencrypt) - # Already done: it must be the first thing we do - ;; - @composer) - installComposer - ;; - *) - if stringInList "$PHP_MODULE_TO_INSTALL" "$BUNDLED_MODULES"; then - installBundledModule "$PHP_MODULE_TO_INSTALL" - else - installRemoteModule "$PHP_MODULE_TO_INSTALL" - fi - ;; - esac -done -cleanup diff --git a/php8/8.1.31/build/php/extensions/install.sh b/php8/8.1.31/build/php/extensions/install.sh deleted file mode 100644 index 45d65e3db..000000000 --- a/php8/8.1.31/build/php/extensions/install.sh +++ /dev/null @@ -1,731 +0,0 @@ -#!/bin/sh - -export MC="-j$(nproc)" - -echo -echo "============================================" -echo "Install extensions from : install.sh" -echo "PHP version : ${PHP_VERSION}" -echo "Extra Extensions : ${PHP_EXTENSIONS}" -echo "Multicore Compilation : ${MC}" -echo "Container package url : ${CONTAINER_PACKAGE_URL}" -echo "Work directory : ${PWD}" -echo "============================================" -echo - - -if [ "${PHP_EXTENSIONS}" != "" ]; then - apk --update add --no-cache --virtual .build-deps autoconf g++ libtool make curl-dev gettext-dev linux-headers git -fi - - -export EXTENSIONS=",${PHP_EXTENSIONS}," - - -# -# Check if current php version is greater than or equal to -# specific version. -# -# For example, to check if current php is greater than or -# equal to PHP 8.0: -# -# isPhpVersionGreaterOrEqual 8 0 -# -# Param 1: Specific PHP Major version -# Param 2: Specific PHP Minor version -# Return : 1 if greater than or equal to, 0 if less than -# -isPhpVersionGreaterOrEqual() - { - local PHP_MAJOR_VERSION=$(php -r "echo PHP_MAJOR_VERSION;") - local PHP_MINOR_VERSION=$(php -r "echo PHP_MINOR_VERSION;") - - if [[ "$PHP_MAJOR_VERSION" -gt "$1" || "$PHP_MAJOR_VERSION" -eq "$1" && "$PHP_MINOR_VERSION" -ge "$2" ]]; then - return 1; - else - return 0; - fi -} - - -# -# Install extension from package file(.tgz), -# For example: -# -# installExtensionFromTgz redis-6.0.2 -# -# Param 1: Package name with version -# Param 2: enable options -# -installExtensionFromTgz() -{ - tgzName=$1 - result="" - extensionName="${tgzName%%-*}" - shift 1 - result=$@ - mkdir ${extensionName} - tar -xf ${tgzName}.tgz -C ${extensionName} --strip-components=1 - ( cd ${extensionName} && phpize && ./configure ${result} && make ${MC} && make install ) - - docker-php-ext-enable ${extensionName} -} - -# install use install-php-extensions -if [[ -z "${EXTENSIONS##*,ioncube_loader,*}" ]]; then - echo "---------- Install ioncube_loader ----------" - install-php-extensions ioncube_loader -fi - -if [[ -z "${EXTENSIONS##*,sourceguardian,*}" ]]; then - echo "---------- Install sourceguardian ----------" - apk add eudev-libs - install-php-extensions sourceguardian -fi - -if [[ -z "${EXTENSIONS##*,memcached,*}" ]]; then - echo "---------- Install memcached ----------" - install-php-extensions memcached -fi - -if [[ -z "${EXTENSIONS##*,ssh2,*}" ]]; then - echo "---------- Install ssh2 ----------" - install-php-extensions ssh2 -fi - -if [[ -z "${EXTENSIONS##*,xmlrpc,*}" ]]; then - echo "---------- Install xmlrpc ----------" - install-php-extensions xmlrpc -fi - -if [[ -z "${EXTENSIONS##*,maxminddb,*}" ]]; then - echo "---------- Install maxminddb ----------" - install-php-extensions maxminddb -fi - -if [[ -z "${EXTENSIONS##*,zstd,*}" ]]; then - echo "---------- Install zstd ----------" - install-php-extensions zstd -fi - -if [[ -z "${EXTENSIONS##*,grpc,*}" ]]; then - echo "---------- Install grpc ----------" - install-php-extensions grpc - docker-php-ext-enable grpc -fi - -if [[ -z "${EXTENSIONS##*,ftp,*}" ]]; then - echo "---------- Install ftp ----------" - install-php-extensions ftp -fi - -if [[ -z "${EXTENSIONS##*,snuffleupagus,*}" ]]; then - echo "---------- Install snuffleupagus ----------" - install-php-extensions snuffleupagus -fi - -if [[ -z "${EXTENSIONS##*,pdo_oci,*}" ]]; then - echo "---------- Install pdo_oci ----------" - install-php-extensions pdo_oci -fi - -if [[ -z "${EXTENSIONS##*,oci8,*}" ]]; then - echo "---------- Install oci8 ----------" - install-php-extensions oci8 -fi - -# end - - -if [[ -z "${EXTENSIONS##*,pdo_mysql,*}" ]]; then - echo "---------- Install pdo_mysql ----------" - docker-php-ext-install ${MC} pdo_mysql -fi - -if [[ -z "${EXTENSIONS##*,pcntl,*}" ]]; then - echo "---------- Install pcntl ----------" - docker-php-ext-install ${MC} pcntl -fi - -if [[ -z "${EXTENSIONS##*,mysqli,*}" ]]; then - echo "---------- Install mysqli ----------" - docker-php-ext-install ${MC} mysqli -fi - -if [[ -z "${EXTENSIONS##*,mbstring,*}" ]]; then - echo "---------- mbstring is installed ----------" -fi - -if [[ -z "${EXTENSIONS##*,exif,*}" ]]; then - echo "---------- Install exif ----------" - docker-php-ext-install ${MC} exif -fi - -if [[ -z "${EXTENSIONS##*,bcmath,*}" ]]; then - echo "---------- Install bcmath ----------" - docker-php-ext-install ${MC} bcmath -fi - -if [[ -z "${EXTENSIONS##*,calendar,*}" ]]; then - echo "---------- Install calendar ----------" - docker-php-ext-install ${MC} calendar -fi - -if [[ -z "${EXTENSIONS##*,zend_test,*}" ]]; then - echo "---------- Install zend_test ----------" - docker-php-ext-install ${MC} zend_test -fi - -if [[ -z "${EXTENSIONS##*,opcache,*}" ]]; then - echo "---------- Install opcache ----------" - docker-php-ext-install opcache -fi - -if [[ -z "${EXTENSIONS##*,sockets,*}" ]]; then - echo "---------- Install sockets ----------" - docker-php-ext-install ${MC} sockets -fi - -if [[ -z "${EXTENSIONS##*,gettext,*}" ]]; then - echo "---------- Install gettext ----------" - apk --no-cache add gettext-dev - docker-php-ext-install ${MC} gettext - -fi - -if [[ -z "${EXTENSIONS##*,shmop,*}" ]]; then - echo "---------- Install shmop ----------" - docker-php-ext-install ${MC} shmop -fi - -if [[ -z "${EXTENSIONS##*,sysvmsg,*}" ]]; then - echo "---------- Install sysvmsg ----------" - docker-php-ext-install ${MC} sysvmsg -fi - -if [[ -z "${EXTENSIONS##*,sysvsem,*}" ]]; then - echo "---------- Install sysvsem ----------" - docker-php-ext-install ${MC} sysvsem -fi - -if [[ -z "${EXTENSIONS##*,sysvshm,*}" ]]; then - echo "---------- Install sysvshm ----------" - docker-php-ext-install ${MC} sysvshm -fi - -if [[ -z "${EXTENSIONS##*,pdo_firebird,*}" ]]; then - echo "---------- Install pdo_firebird ----------" - docker-php-ext-install ${MC} pdo_firebird -fi - -if [[ -z "${EXTENSIONS##*,pdo_dblib,*}" ]]; then - echo "---------- Install pdo_dblib ----------" - docker-php-ext-install ${MC} pdo_dblib -fi - -if [[ -z "${EXTENSIONS##*,pdo_odbc,*}" ]]; then - echo "---------- Install pdo_odbc ----------" - docker-php-ext-install ${MC} pdo_odbc -fi - -if [[ -z "${EXTENSIONS##*,pdo_pgsql,*}" ]]; then - echo "---------- Install pdo_pgsql ----------" - apk --no-cache add postgresql-dev \ - && docker-php-ext-install ${MC} pdo_pgsql -fi - -if [[ -z "${EXTENSIONS##*,pgsql,*}" ]]; then - echo "---------- Install pgsql ----------" - apk --no-cache add postgresql-dev \ - && docker-php-ext-install ${MC} pgsql -fi - -if [[ -z "${EXTENSIONS##*,odbc,*}" ]]; then - echo "---------- Install odbc ----------" - docker-php-ext-install ${MC} odbc -fi - -if [[ -z "${EXTENSIONS##*,dba,*}" ]]; then - echo "---------- Install dba ----------" - docker-php-ext-install ${MC} dba -fi - -if [[ -z "${EXTENSIONS##*,interbase,*}" ]]; then - echo "---------- Install interbase ----------" - echo "Alpine linux do not support interbase/firebird!!!" - #docker-php-ext-install ${MC} interbase -fi - -if [[ -z "${EXTENSIONS##*,hprose,*}" ]]; then - echo "---------- Install hprose ----------" - printf "\n" | pecl install hprose - docker-php-ext-enable hprose -fi - -if [[ -z "${EXTENSIONS##*,gd,*}" ]]; then - echo "---------- Install gd ----------" - isPhpVersionGreaterOrEqual 8 0 - - if [[ "$?" = "1" ]]; then - # "--with-xxx-dir" was removed from php 7.4, - # issue: https://github.com/docker-library/php/issues/912 - options="--with-freetype --with-jpeg --with-webp" - else - options="--with-gd --with-freetype-dir=/usr/include/ --with-png-dir=/usr/include/ --with-jpeg-dir=/usr/include/ --with-webp-dir=/usr/include/" - fi - - apk add --no-cache \ - freetype \ - freetype-dev \ - libpng \ - libpng-dev \ - libjpeg-turbo \ - libjpeg-turbo-dev \ - libwebp-dev \ - && docker-php-ext-configure gd ${options} \ - && docker-php-ext-install ${MC} gd \ - && apk del \ - freetype-dev \ - libpng-dev \ - libjpeg-turbo-dev -fi - -if [[ -z "${EXTENSIONS##*,yaml,*}" ]]; then - echo "---------- Install yaml ----------" - apk add --no-cache yaml-dev - printf "\n" | pecl install yaml - docker-php-ext-enable yaml -fi - -if [[ -z "${EXTENSIONS##*,intl,*}" ]]; then - echo "---------- Install intl ----------" - apk add --no-cache icu-dev - docker-php-ext-install ${MC} intl -fi - -if [[ -z "${EXTENSIONS##*,bz2,*}" ]]; then - echo "---------- Install bz2 ----------" - apk add --no-cache bzip2-dev - docker-php-ext-install ${MC} bz2 -fi - -if [[ -z "${EXTENSIONS##*,soap,*}" ]]; then - echo "---------- Install soap ----------" - apk add --no-cache libxml2-dev - docker-php-ext-install ${MC} soap -fi - -if [[ -z "${EXTENSIONS##*,xsl,*}" ]]; then - echo "---------- Install xsl ----------" - apk add --no-cache libxml2-dev libxslt-dev - docker-php-ext-install ${MC} xsl -fi - -if [[ -z "${EXTENSIONS##*,wddx,*}" ]]; then - echo "---------- Install wddx ----------" - apk add --no-cache libxml2-dev libxslt-dev - docker-php-ext-install ${MC} wddx -fi - -if [[ -z "${EXTENSIONS##*,curl,*}" ]]; then - echo "---------- curl is installed ----------" -fi - -if [[ -z "${EXTENSIONS##*,readline,*}" ]]; then - echo "---------- Install readline ----------" - apk add --no-cache readline-dev - apk add --no-cache libedit-dev - docker-php-ext-install ${MC} readline -fi - -if [[ -z "${EXTENSIONS##*,snmp,*}" ]]; then - echo "---------- Install snmp ----------" - apk add --no-cache net-snmp-dev - docker-php-ext-install ${MC} snmp -fi - -if [[ -z "${EXTENSIONS##*,pspell,*}" ]]; then - echo "---------- Install pspell ----------" - apk add --no-cache aspell-dev - apk add --no-cache aspell-en - docker-php-ext-install ${MC} pspell -fi - -if [[ -z "${EXTENSIONS##*,recode,*}" ]]; then - echo "---------- Install recode ----------" - apk add --no-cache recode-dev - docker-php-ext-install ${MC} recode -fi - -if [[ -z "${EXTENSIONS##*,tidy,*}" ]]; then - echo "---------- Install tidy ----------" - apk add --no-cache tidyhtml-dev - - # Fix: https://github.com/htacg/tidy-html5/issues/235 - ln -s /usr/include/tidybuffio.h /usr/include/buffio.h - - docker-php-ext-install ${MC} tidy -fi - -if [[ -z "${EXTENSIONS##*,gmp,*}" ]]; then - echo "---------- Install gmp ----------" - apk add --no-cache gmp-dev - docker-php-ext-install ${MC} gmp -fi - -if [[ -z "${EXTENSIONS##*,imap,*}" ]]; then - echo "---------- Install imap ----------" - apk add --no-cache imap-dev - docker-php-ext-configure imap --with-imap --with-imap-ssl - docker-php-ext-install ${MC} imap -fi - -if [[ -z "${EXTENSIONS##*,ldap,*}" ]]; then - echo "---------- Install ldap ----------" - apk add --no-cache ldb-dev - apk add --no-cache openldap-dev - docker-php-ext-install ${MC} ldap -fi - -if [[ -z "${EXTENSIONS##*,psr,*}" ]]; then - echo "---------- Install psr ----------" - printf "\n" | pecl install psr - docker-php-ext-enable psr -fi - -if [[ -z "${EXTENSIONS##*,imagick,*}" ]]; then - echo "---------- Install imagick ----------" - apk add --no-cache file-dev - apk add --no-cache imagemagick imagemagick-dev imagemagick-pdf -# cd imagick-3.7.0 && phpize && ./configure -# make -# make install - installExtensionFromTgz imagick-3.7.0 -fi - -if [[ -z "${EXTENSIONS##*,rar,*}" ]]; then - echo "---------- Install rar ----------" - printf "\n" | pecl install rar - docker-php-ext-enable rar -fi - -if [[ -z "${EXTENSIONS##*,ast,*}" ]]; then - echo "---------- Install ast ----------" - printf "\n" | pecl install ast - docker-php-ext-enable ast -fi - -if [[ -z "${EXTENSIONS##*,msgpack,*}" ]]; then - echo "---------- Install msgpack ----------" - printf "\n" | pecl install msgpack - docker-php-ext-enable msgpack -fi - -if [[ -z "${EXTENSIONS##*,igbinary,*}" ]]; then - echo "---------- Install igbinary ----------" - printf "\n" | pecl install igbinary - docker-php-ext-enable igbinary -fi - -if [[ -z "${EXTENSIONS##*,protobuf,*}" ]]; then - isPhpVersionGreaterOrEqual 8 0 - if [[ "$?" = "1" ]]; then - echo "---------- Install protobuf ----------" - printf "\n" | pecl install protobuf - docker-php-ext-enable protobuf - else - echo "yar requires PHP >= 8.0.0, installed version is ${PHP_VERSION}" - fi -fi - -if [[ -z "${EXTENSIONS##*,yac,*}" ]]; then - isPhpVersionGreaterOrEqual 8 0 - if [[ "$?" = "1" ]]; then - echo "---------- Install yac ----------" - printf "\n" | pecl install yac-2.0.2 - docker-php-ext-enable yac - else - echo "yar requires PHP >= 8.0.0, installed version is ${PHP_VERSION}" - fi -fi - -if [[ -z "${EXTENSIONS##*,yar,*}" ]]; then - isPhpVersionGreaterOrEqual 8 0 - if [[ "$?" = "1" ]]; then - echo "---------- Install yar ----------" - printf "\n" | pecl install yar - docker-php-ext-enable yar - else - echo "yar requires PHP >= 8.0.0, installed version is ${PHP_VERSION}" - fi - -fi - - - -if [[ -z "${EXTENSIONS##*,yaconf,*}" ]]; then - isPhpVersionGreaterOrEqual 8 0 - if [[ "$?" = "1" ]]; then - echo "---------- Install yaconf ----------" - printf "\n" | pecl install yaconf - docker-php-ext-enable yaconf - else - echo "yar requires PHP >= 8.0.0, installed version is ${PHP_VERSION}" - fi -fi - -if [[ -z "${EXTENSIONS##*,seaslog,*}" ]]; then - echo "---------- Install seaslog ----------" - printf "\n" | pecl install seaslog - docker-php-ext-enable seaslog -fi - -if [[ -z "${EXTENSIONS##*,varnish,*}" ]]; then - echo "---------- Install varnish ----------" - apk add --no-cache varnish-dev - printf "\n" | pecl install varnish - docker-php-ext-enable varnish -fi - -if [[ -z "${EXTENSIONS##*,pdo_sqlsrv,*}" ]]; then - isPhpVersionGreaterOrEqual 8 0 - if [[ "$?" = "1" ]]; then - echo "---------- Install pdo_sqlsrv ----------" - apk add --no-cache unixodbc-dev - printf "\n" | pecl install pdo_sqlsrv - docker-php-ext-enable pdo_sqlsrv - curl -o /tmp/msodbcsql17_amd64.apk https://download.microsoft.com/download/e/4/e/e4e67866-dffd-428c-aac7-8d28ddafb39b/msodbcsql17_17.5.2.1-1_amd64.apk - apk add --allow-untrusted /tmp/msodbcsql17_amd64.apk - else - echo "pdo_sqlsrv requires PHP >= 8.0.0, installed version is ${PHP_VERSION}" - fi -fi - -if [[ -z "${EXTENSIONS##*,sqlsrv,*}" ]]; then - isPhpVersionGreaterOrEqual 8 0 - if [[ "$?" = "1" ]]; then - echo "---------- Install sqlsrv ----------" - install-php-extensions sqlsrv - else - echo "sqlsrv requires PHP >= 8.0.0, installed version is ${PHP_VERSION}" - fi -fi - -if [[ -z "${EXTENSIONS##*,mcrypt,*}" ]]; then - isPhpVersionGreaterOrEqual 8 0 - if [[ "$?" = "1" ]]; then - echo "---------- Install mcrypt ----------" - apk add --no-cache libmcrypt-dev libmcrypt re2c - printf "\n" |pecl install mcrypt - docker-php-ext-enable mcrypt - else - echo "---------- Install mcrypt ----------" - apk add --no-cache libmcrypt-dev \ - && docker-php-ext-install ${MC} mcrypt - fi -fi - -if [[ -z "${EXTENSIONS##*,mysql,*}" ]]; then - isPhpVersionGreaterOrEqual 8 0 - - if [[ "$?" = "1" ]]; then - echo "---------- mysql was REMOVED from PHP 8.0.0 ----------" - else - echo "---------- Install mysql ----------" - docker-php-ext-install ${MC} mysql - fi -fi - -if [[ -z "${EXTENSIONS##*,sodium,*}" ]]; then - isPhpVersionGreaterOrEqual 8 0 - if [[ "$?" = "1" ]]; then - echo - echo "Sodium is bundled with PHP from PHP 8.0.0" - echo - else - echo "---------- Install sodium ----------" - apk add --no-cache libsodium-dev - docker-php-ext-install ${MC} sodium - fi -fi - -if [[ -z "${EXTENSIONS##*,amqp,*}" ]]; then - echo "---------- Install amqp ----------" - apk add --no-cache -U autoconf - apk add --no-cache -U gcc - apk add --no-cache -U linux-headers - apk add --no-cache -U libc-dev - - apk add --no-cache --update --virtual .phpize-deps-configure $PHPIZE_DEPS \ - && apk add rabbitmq-c-dev \ - && printf '\n' | pecl install amqp \ - && docker-php-ext-enable amqp \ - && apk del .phpize-deps-configure - -fi - -if [[ -z "${EXTENSIONS##*,redis,*}" ]]; then - echo "---------- Install redis ----------" - installExtensionFromTgz redis-6.0.2 -fi - -if [[ -z "${EXTENSIONS##*,apcu,*}" ]]; then - echo "---------- Install apcu ----------" - pecl install apcu - docker-php-ext-enable apcu -fi - -if [[ -z "${EXTENSIONS##*,memcached,*}" ]]; then - echo "---------- Install memcached ----------" - apk add --no-cache libmemcached-dev zlib-dev - pecl install memcached-3.2.3 - docker-php-ext-enable memcached -fi - -if [[ -z "${EXTENSIONS##*,memcache,*}" ]]; then - echo "---------- Install memcache ----------" - pecl install memcache - docker-php-ext-enable memcache -fi - -if [[ -z "${EXTENSIONS##*,xdebug,*}" ]]; then - echo "---------- Install xdebug ----------" - installExtensionFromTgz xdebug-3.2.0 -fi - -if [[ -z "${EXTENSIONS##*,event,*}" ]]; then - echo "---------- Install event ----------" - apk add --no-cache libevent-dev - export is_sockets_installed=$(php -r "echo extension_loaded('sockets');") - - if [[ "${is_sockets_installed}" = "" ]]; then - echo "---------- event is depend on sockets, install sockets first ----------" - docker-php-ext-install sockets - fi - - echo "---------- Install event again ----------" - mkdir event - tar -xf event-3.0.8.tgz -C event --strip-components=1 - cd event && phpize && ./configure && make && make install - - docker-php-ext-enable --ini-name event.ini event -fi - -if [[ -z "${EXTENSIONS##*,mongodb,*}" ]]; then - echo "---------- Install mongodb ----------" - apk add --no-cache openssl-dev - installExtensionFromTgz mongodb-1.15.2 - docker-php-ext-configure mongodb --with-mongodb-ssl=openssl - docker-php-ext-enable mongodb -fi - -if [[ -z "${EXTENSIONS##*,yaf,*}" ]]; then - echo "---------- Install yaf ----------" - pecl install yaf - docker-php-ext-enable yaf -fi - - -if [[ -z "${EXTENSIONS##*,swoole,*}" ]]; then - echo "---------- Install swoole ----------" - install-php-extensions swoole -fi - -if [[ -z "${EXTENSIONS##*,zip,*}" ]]; then - echo "---------- Install zip ----------" - # Fix: https://github.com/docker-library/php/issues/797 - apk add --no-cache libzip-dev - - isPhpVersionGreaterOrEqual 8 0 - if [[ "$?" != "1" ]]; then - docker-php-ext-configure zip --with-libzip=/usr/include - fi - - docker-php-ext-install ${MC} zip -fi - -if [[ -z "${EXTENSIONS##*,xhprof,*}" ]]; then - echo "---------- Install XHProf ----------" - pecl install xhprof - docker-php-ext-enable xhprof - -fi - -if [[ -z "${EXTENSIONS##*,xlswriter,*}" ]]; then - echo "---------- Install xlswriter ----------" - isPhpVersionGreaterOrEqual 8 0 - - if [[ "$?" = "1" ]]; then - printf "\n" | pecl install xlswriter - docker-php-ext-enable xlswriter - else - echo "---------- PHP Version>= 8.0----------" - fi -fi - -if [[ -z "${EXTENSIONS##*,rdkafka,*}" ]]; then - echo "---------- Install rdkafka ----------" - isPhpVersionGreaterOrEqual 8 0 - - if [[ "$?" = "1" ]]; then - apk add librdkafka-dev - printf "\n" | pecl install rdkafka - docker-php-ext-enable rdkafka - else - echo "---------- PHP Version>= 8.0----------" - fi -fi - -if [[ -z "${EXTENSIONS##*,zookeeper,*}" ]]; then - echo "---------- Install zookeeper ----------" - isPhpVersionGreaterOrEqual 8 0 - - if [[ "$?" = "1" ]]; then - apk add re2c - apk add libzookeeper-dev --repository http://${CONTAINER_PACKAGE_URL}/alpine/edge/testing/ - printf "\n" | pecl install zookeeper - docker-php-ext-enable zookeeper - else - echo "---------- PHP Version>= 8.0----------" - fi -fi - -if [[ -z "${EXTENSIONS##*,phalcon,*}" ]]; then - echo "---------- Install phalcon ----------" - isPhpVersionGreaterOrEqual 8 0 - - if [[ "$?" = "1" ]]; then - printf "\n" | pecl install phalcon - docker-php-ext-enable psr - docker-php-ext-enable phalcon - else - echo "---------- PHP Version>= 8.0----------" - fi -fi - -if [[ -z "${EXTENSIONS##*,sdebug,*}" ]]; then - echo "---------- Install sdebug ----------" - isPhpVersionGreaterOrEqual 8 0 - - if [[ "$?" = "1" ]]; then - curl -SL "https://github.com/swoole/sdebug/archive/sdebug_2_9-beta.tar.gz" -o sdebug.tar.gz \ - && mkdir -p sdebug \ - && tar -xf sdebug.tar.gz -C sdebug --strip-components=1 \ - && rm sdebug.tar.gz \ - && ( \ - cd sdebug \ - && phpize \ - && ./configure --enable-xdebug \ - && make clean && make && make install \ - ) \ - && docker-php-ext-enable xdebug - else - echo "---------- PHP Version>= 8.0----------" - fi -fi - -if [ "${PHP_EXTENSIONS}" != "" ]; then -# PHP-Imagick 扩展中有所需的其他依赖项,不进行删除.build-deps -# apk del .build-deps \ - docker-php-source delete -fi diff --git a/php8/8.1.31/build/php/extensions/mongodb-1.15.2.tgz b/php8/8.1.31/build/php/extensions/mongodb-1.15.2.tgz deleted file mode 100644 index 41c2e064b..000000000 Binary files a/php8/8.1.31/build/php/extensions/mongodb-1.15.2.tgz and /dev/null differ diff --git a/php8/8.1.31/build/php/extensions/redis-6.0.2.tgz b/php8/8.1.31/build/php/extensions/redis-6.0.2.tgz deleted file mode 100644 index 2d7b7987f..000000000 Binary files a/php8/8.1.31/build/php/extensions/redis-6.0.2.tgz and /dev/null differ diff --git a/php8/8.1.31/build/php/extensions/swoole-5.0.2.tgz b/php8/8.1.31/build/php/extensions/swoole-5.0.2.tgz deleted file mode 100644 index 7e42418c3..000000000 Binary files a/php8/8.1.31/build/php/extensions/swoole-5.0.2.tgz and /dev/null differ diff --git a/php8/8.1.31/build/php/extensions/xdebug-3.2.0.tgz b/php8/8.1.31/build/php/extensions/xdebug-3.2.0.tgz deleted file mode 100644 index 4023612cb..000000000 Binary files a/php8/8.1.31/build/php/extensions/xdebug-3.2.0.tgz and /dev/null differ diff --git a/php8/8.1.31/build/php/php-fpm.conf b/php8/8.1.31/build/php/php-fpm.conf deleted file mode 100644 index 131835891..000000000 --- a/php8/8.1.31/build/php/php-fpm.conf +++ /dev/null @@ -1,423 +0,0 @@ -; Start a new pool named 'www'. -; the variable $pool can be used in any directive and will be replaced by the -; pool name ('www' here) -[www] - -; Per pool prefix -; It only applies on the following directives: -; - 'access.log' -; - 'slowlog' -; - 'listen' (unixsocket) -; - 'chroot' -; - 'chdir' -; - 'php_values' -; - 'php_admin_values' -; When not set, the global prefix (or NONE) applies instead. -; Note: This directive can also be relative to the global prefix. -; Default Value: none -;prefix = /path/to/pools/$pool - -; Unix user/group of processes -; Note: The user is mandatory. If the group is not set, the default user's group -; will be used. -user = www-data -group = www-data - -; The address on which to accept FastCGI requests. -; Valid syntaxes are: -; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on -; a specific port; -; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on -; a specific port; -; 'port' - to listen on a TCP socket to all addresses -; (IPv6 and IPv4-mapped) on a specific port; -; '/path/to/unix/socket' - to listen on a unix socket. -; Note: This value is mandatory. -listen = 127.0.0.1:9000 - -; Set listen(2) backlog. -; Default Value: 511 (-1 on FreeBSD and OpenBSD) -;listen.backlog = 511 - -; Set permissions for unix socket, if one is used. In Linux, read/write -; permissions must be set in order to allow connections from a web server. Many -; BSD-derived systems allow connections regardless of permissions. -; Default Values: user and group are set as the running user -; mode is set to 0660 -;listen.owner = www-data -;listen.group = www-data -;listen.mode = 0660 -; When POSIX Access Control Lists are supported you can set them using -; these options, value is a comma separated list of user/group names. -; When set, listen.owner and listen.group are ignored -;listen.acl_users = -;listen.acl_groups = - -; List of addresses (IPv4/IPv6) of FastCGI clients which are allowed to connect. -; Equivalent to the FCGI_WEB_SERVER_ADDRS environment variable in the original -; PHP FCGI (5.2.2+). Makes sense only with a tcp listening socket. Each address -; must be separated by a comma. If this value is left blank, connections will be -; accepted from any ip address. -; Default Value: any -;listen.allowed_clients = 127.0.0.1 - -; Specify the nice(2) priority to apply to the pool processes (only if set) -; The value can vary from -19 (highest priority) to 20 (lower priority) -; Note: - It will only work if the FPM master process is launched as root -; - The pool processes will inherit the master process priority -; unless it specified otherwise -; Default Value: no set -; process.priority = -19 - -; Set the process dumpable flag (PR_SET_DUMPABLE prctl) even if the process user -; or group is differrent than the master process user. It allows to create process -; core dump and ptrace the process for the pool user. -; Default Value: no -; process.dumpable = yes - -; Choose how the process manager will control the number of child processes. -; Possible Values: -; static - a fixed number (pm.max_children) of child processes; -; dynamic - the number of child processes are set dynamically based on the -; following directives. With this process management, there will be -; always at least 1 children. -; pm.max_children - the maximum number of children that can -; be alive at the same time. -; pm.start_servers - the number of children created on startup. -; pm.min_spare_servers - the minimum number of children in 'idle' -; state (waiting to process). If the number -; of 'idle' processes is less than this -; number then some children will be created. -; pm.max_spare_servers - the maximum number of children in 'idle' -; state (waiting to process). If the number -; of 'idle' processes is greater than this -; number then some children will be killed. -; ondemand - no children are created at startup. Children will be forked when -; new requests will connect. The following parameter are used: -; pm.max_children - the maximum number of children that -; can be alive at the same time. -; pm.process_idle_timeout - The number of seconds after which -; an idle process will be killed. -; Note: This value is mandatory. -pm = dynamic - -; The number of child processes to be created when pm is set to 'static' and the -; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'. -; This value sets the limit on the number of simultaneous requests that will be -; served. Equivalent to the ApacheMaxClients directive with mpm_prefork. -; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP -; CGI. The below defaults are based on a server without much resources. Don't -; forget to tweak pm.* to fit your needs. -; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand' -; Note: This value is mandatory. -pm.max_children = 10 - -; The number of child processes created on startup. -; Note: Used only when pm is set to 'dynamic' -; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2 -pm.start_servers = 2 - -; The desired minimum number of idle server processes. -; Note: Used only when pm is set to 'dynamic' -; Note: Mandatory when pm is set to 'dynamic' -pm.min_spare_servers = 1 - -; The desired maximum number of idle server processes. -; Note: Used only when pm is set to 'dynamic' -; Note: Mandatory when pm is set to 'dynamic' -pm.max_spare_servers = 3 - -; The number of seconds after which an idle process will be killed. -; Note: Used only when pm is set to 'ondemand' -; Default Value: 10s -;pm.process_idle_timeout = 10s; - -; The number of requests each child process should execute before respawning. -; This can be useful to work around memory leaks in 3rd party libraries. For -; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS. -; Default Value: 0 -;pm.max_requests = 500 - -; The URI to view the FPM status page. If this value is not set, no URI will be -; recognized as a status page. It shows the following informations: -; pool - the name of the pool; -; process manager - static, dynamic or ondemand; -; start time - the date and time FPM has started; -; start since - number of seconds since FPM has started; -; accepted conn - the number of request accepted by the pool; -; listen queue - the number of request in the queue of pending -; connections (see backlog in listen(2)); -; max listen queue - the maximum number of requests in the queue -; of pending connections since FPM has started; -; listen queue len - the size of the socket queue of pending connections; -; idle processes - the number of idle processes; -; active processes - the number of active processes; -; total processes - the number of idle + active processes; -; max active processes - the maximum number of active processes since FPM -; has started; -; max children reached - number of times, the process limit has been reached, -; when pm tries to start more children (works only for -; pm 'dynamic' and 'ondemand'); -; Value are updated in real time. -; Example output: -; pool: www -; process manager: static -; start time: 01/Jul/2011:17:53:49 +0200 -; start since: 62636 -; accepted conn: 190460 -; listen queue: 0 -; max listen queue: 1 -; listen queue len: 42 -; idle processes: 4 -; active processes: 11 -; total processes: 15 -; max active processes: 12 -; max children reached: 0 -; -; By default the status page output is formatted as text/plain. Passing either -; 'html', 'xml' or 'json' in the query string will return the corresponding -; output syntax. Example: -; http://www.foo.bar/status -; http://www.foo.bar/status?json -; http://www.foo.bar/status?html -; http://www.foo.bar/status?xml -; -; By default the status page only outputs short status. Passing 'full' in the -; query string will also return status for each pool process. -; Example: -; http://www.foo.bar/status?full -; http://www.foo.bar/status?json&full -; http://www.foo.bar/status?html&full -; http://www.foo.bar/status?xml&full -; The Full status returns for each process: -; pid - the PID of the process; -; state - the state of the process (Idle, Running, ...); -; start time - the date and time the process has started; -; start since - the number of seconds since the process has started; -; requests - the number of requests the process has served; -; request duration - the duration in µs of the requests; -; request method - the request method (GET, POST, ...); -; request URI - the request URI with the query string; -; content length - the content length of the request (only with POST); -; user - the user (PHP_AUTH_USER) (or '-' if not set); -; script - the main script called (or '-' if not set); -; last request cpu - the %cpu the last request consumed -; it's always 0 if the process is not in Idle state -; because CPU calculation is done when the request -; processing has terminated; -; last request memory - the max amount of memory the last request consumed -; it's always 0 if the process is not in Idle state -; because memory calculation is done when the request -; processing has terminated; -; If the process is in Idle state, then informations are related to the -; last request the process has served. Otherwise informations are related to -; the current request being served. -; Example output: -; ************************ -; pid: 31330 -; state: Running -; start time: 01/Jul/2011:17:53:49 +0200 -; start since: 63087 -; requests: 12808 -; request duration: 1250261 -; request method: GET -; request URI: /test_mem.php?N=10000 -; content length: 0 -; user: - -; script: /home/fat/web/docs/php/test_mem.php -; last request cpu: 0.00 -; last request memory: 0 -; -; Note: There is a real-time FPM status monitoring sample web page available -; It's available in: /usr/local/share/php/fpm/status.html -; -; Note: The value must start with a leading slash (/). The value can be -; anything, but it may not be a good idea to use the .php extension or it -; may conflict with a real PHP file. -; Default Value: not set -;pm.status_path = /status - -; The ping URI to call the monitoring page of FPM. If this value is not set, no -; URI will be recognized as a ping page. This could be used to test from outside -; that FPM is alive and responding, or to -; - create a graph of FPM availability (rrd or such); -; - remove a server from a group if it is not responding (load balancing); -; - trigger alerts for the operating team (24/7). -; Note: The value must start with a leading slash (/). The value can be -; anything, but it may not be a good idea to use the .php extension or it -; may conflict with a real PHP file. -; Default Value: not set -;ping.path = /ping - -; This directive may be used to customize the response of a ping request. The -; response is formatted as text/plain with a 200 response code. -; Default Value: pong -;ping.response = pong - -; The access log file -; Default: not set -;access.log = log/$pool.access.log - -; The access log format. -; The following syntax is allowed -; %%: the '%' character -; %C: %CPU used by the request -; it can accept the following format: -; - %{user}C for user CPU only -; - %{system}C for system CPU only -; - %{total}C for user + system CPU (default) -; %d: time taken to serve the request -; it can accept the following format: -; - %{seconds}d (default) -; - %{miliseconds}d -; - %{mili}d -; - %{microseconds}d -; - %{micro}d -; %e: an environment variable (same as $_ENV or $_SERVER) -; it must be associated with embraces to specify the name of the env -; variable. Some exemples: -; - server specifics like: %{REQUEST_METHOD}e or %{SERVER_PROTOCOL}e -; - HTTP headers like: %{HTTP_HOST}e or %{HTTP_USER_AGENT}e -; %f: script filename -; %l: content-length of the request (for POST request only) -; %m: request method -; %M: peak of memory allocated by PHP -; it can accept the following format: -; - %{bytes}M (default) -; - %{kilobytes}M -; - %{kilo}M -; - %{megabytes}M -; - %{mega}M -; %n: pool name -; %o: output header -; it must be associated with embraces to specify the name of the header: -; - %{Content-Type}o -; - %{X-Powered-By}o -; - %{Transfert-Encoding}o -; - .... -; %p: PID of the child that serviced the request -; %P: PID of the parent of the child that serviced the request -; %q: the query string -; %Q: the '?' character if query string exists -; %r: the request URI (without the query string, see %q and %Q) -; %R: remote IP address -; %s: status (response code) -; %t: server time the request was received -; it can accept a strftime(3) format: -; %d/%b/%Y:%H:%M:%S %z (default) -; The strftime(3) format must be encapsuled in a %{}t tag -; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t -; %T: time the log has been written (the request has finished) -; it can accept a strftime(3) format: -; %d/%b/%Y:%H:%M:%S %z (default) -; The strftime(3) format must be encapsuled in a %{}t tag -; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t -; %u: remote user -; -; Default: "%R - %u %t \"%m %r\" %s" -;access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%" - -; The log file for slow requests -; Default Value: not set -; Note: slowlog is mandatory if request_slowlog_timeout is set -slowlog = /var/log/php/fpm.slow.log - -; The timeout for serving a single request after which a PHP backtrace will be -; dumped to the 'slowlog' file. A value of '0s' means 'off'. -; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) -; Default Value: 0 -request_slowlog_timeout = 3 - -; Depth of slow log stack trace. -; Default Value: 20 -;request_slowlog_trace_depth = 20 - -; The timeout for serving a single request after which the worker process will -; be killed. This option should be used when the 'max_execution_time' ini option -; does not stop script execution for some reason. A value of '0' means 'off'. -; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) -; Default Value: 0 -;request_terminate_timeout = 0 - -; Set open file descriptor rlimit. -; Default Value: system defined value -;rlimit_files = 1024 - -; Set max core size rlimit. -; Possible Values: 'unlimited' or an integer greater or equal to 0 -; Default Value: system defined value -;rlimit_core = 0 - -; Chroot to this directory at the start. This value must be defined as an -; absolute path. When this value is not set, chroot is not used. -; Note: you can prefix with '$prefix' to chroot to the pool prefix or one -; of its subdirectories. If the pool prefix is not set, the global prefix -; will be used instead. -; Note: chrooting is a great security feature and should be used whenever -; possible. However, all PHP paths will be relative to the chroot -; (error_log, sessions.save_path, ...). -; Default Value: not set -;chroot = - -; Chdir to this directory at the start. -; Note: relative path can be used. -; Default Value: current directory or / when chroot -;chdir = /var/www - -; Redirect worker stdout and stderr into main error log. If not set, stdout and -; stderr will be redirected to /dev/null according to FastCGI specs. -; Note: on highloaded environement, this can cause some delay in the page -; process time (several ms). -; Default Value: no -catch_workers_output = yes - -; Clear environment in FPM workers -; Prevents arbitrary environment variables from reaching FPM worker processes -; by clearing the environment in workers before env vars specified in this -; pool configuration are added. -; Setting to "no" will make all environment variables available to PHP code -; via getenv(), $_ENV and $_SERVER. -; Default Value: yes -;clear_env = no - -; Limits the extensions of the main script FPM will allow to parse. This can -; prevent configuration mistakes on the web server side. You should only limit -; FPM to .php extensions to prevent malicious users to use other extensions to -; execute php code. -; Note: set an empty value to allow all extensions. -; Default Value: .php -;security.limit_extensions = .php .php3 .php4 .php5 .php7 - -; Pass environment variables like LD_LIBRARY_PATH. All $VARIABLEs are taken from -; the current environment. -; Default Value: clean env -;env[HOSTNAME] = $HOSTNAME -;env[PATH] = /usr/local/bin:/usr/bin:/bin -;env[TMP] = /tmp -;env[TMPDIR] = /tmp -;env[TEMP] = /tmp - -; Additional php.ini defines, specific to this pool of workers. These settings -; overwrite the values previously defined in the php.ini. The directives are the -; same as the PHP SAPI: -; php_value/php_flag - you can set classic ini defines which can -; be overwritten from PHP call 'ini_set'. -; php_admin_value/php_admin_flag - these directives won't be overwritten by -; PHP call 'ini_set' -; For php_*flag, valid values are on, off, 1, 0, true, false, yes or no. - -; Defining 'extension' will load the corresponding shared extension from -; extension_dir. Defining 'disable_functions' or 'disable_classes' will not -; overwrite previously defined php.ini values, but will append the new value -; instead. - -; Note: path INI options can be relative and will be expanded with the prefix -; (pool, global or /usr/local) - -; Default Value: nothing is defined by default except the values in php.ini and -; specified at startup with the -d argument -;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com -;php_flag[display_errors] = off -;php_admin_value[error_log] = /var/log/fpm-php.www.log -;php_admin_flag[log_errors] = on -;php_admin_value[memory_limit] = 32M diff --git a/php8/8.1.31/build/php/php.ini b/php8/8.1.31/build/php/php.ini deleted file mode 100644 index 82b728e20..000000000 --- a/php8/8.1.31/build/php/php.ini +++ /dev/null @@ -1,1933 +0,0 @@ -[PHP] - -;;;;;;;;;;;;;;;;;;; -; About php.ini ; -;;;;;;;;;;;;;;;;;;; -; PHP's initialization file, generally called php.ini, is responsible for -; configuring many of the aspects of PHP's behavior. - -; PHP attempts to find and load this configuration from a number of locations. -; The following is a summary of its search order: -; 1. SAPI module specific location. -; 2. The PHPRC environment variable. (As of PHP 5.2.0) -; 3. A number of predefined registry keys on Windows (As of PHP 5.2.0) -; 4. Current working directory (except CLI) -; 5. The web server's directory (for SAPI modules), or directory of PHP -; (otherwise in Windows) -; 6. The directory from the --with-config-file-path compile time option, or the -; Windows directory (C:\windows or C:\winnt) -; See the PHP docs for more specific information. -; http://php.net/configuration.file - -; The syntax of the file is extremely simple. Whitespace and lines -; beginning with a semicolon are silently ignored (as you probably guessed). -; Section headers (e.g. [Foo]) are also silently ignored, even though -; they might mean something in the future. - -; Directives following the section heading [PATH=/www/mysite] only -; apply to PHP files in the /www/mysite directory. Directives -; following the section heading [HOST=www.example.com] only apply to -; PHP files served from www.example.com. Directives set in these -; special sections cannot be overridden by user-defined INI files or -; at runtime. Currently, [PATH=] and [HOST=] sections only work under -; CGI/FastCGI. -; http://php.net/ini.sections - -; Directives are specified using the following syntax: -; directive = value -; Directive names are *case sensitive* - foo=bar is different from FOO=bar. -; Directives are variables used to configure PHP or PHP extensions. -; There is no name validation. If PHP can't find an expected -; directive because it is not set or is mistyped, a default value will be used. - -; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one -; of the INI constants (On, Off, True, False, Yes, No and None) or an expression -; (e.g. E_ALL & ~E_NOTICE), a quoted string ("bar"), or a reference to a -; previously set variable or directive (e.g. ${foo}) - -; Expressions in the INI file are limited to bitwise operators and parentheses: -; | bitwise OR -; ^ bitwise XOR -; & bitwise AND -; ~ bitwise NOT -; ! boolean NOT - -; Boolean flags can be turned on using the values 1, On, True or Yes. -; They can be turned off using the values 0, Off, False or No. - -; An empty string can be denoted by simply not writing anything after the equal -; sign, or by using the None keyword: - -; foo = ; sets foo to an empty string -; foo = None ; sets foo to an empty string -; foo = "None" ; sets foo to the string 'None' - -; If you use constants in your value, and these constants belong to a -; dynamically loaded extension (either a PHP extension or a Zend extension), -; you may only use these constants *after* the line that loads the extension. - -;;;;;;;;;;;;;;;;;;; -; About this file ; -;;;;;;;;;;;;;;;;;;; -; PHP comes packaged with two INI files. One that is recommended to be used -; in production environments and one that is recommended to be used in -; development environments. - -; php.ini-production contains settings which hold security, performance and -; best practices at its core. But please be aware, these settings may break -; compatibility with older or less security conscience applications. We -; recommending using the production ini in production and testing environments. - -; php.ini-development is very similar to its production variant, except it is -; much more verbose when it comes to errors. We recommend using the -; development version only in development environments, as errors shown to -; application users can inadvertently leak otherwise secure information. - -; This is php.ini-production INI file. - -;;;;;;;;;;;;;;;;;;; -; Quick Reference ; -;;;;;;;;;;;;;;;;;;; -; The following are all the settings which are different in either the production -; or development versions of the INIs with respect to PHP's default behavior. -; Please see the actual settings later in the document for more details as to why -; we recommend these changes in PHP's behavior. - -; display_errors -; Default Value: On -; Development Value: On -; Production Value: Off - -; display_startup_errors -; Default Value: Off -; Development Value: On -; Production Value: Off - -; error_reporting -; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT - -; html_errors -; Default Value: On -; Development Value: On -; Production value: On - -; log_errors -; Default Value: Off -; Development Value: On -; Production Value: On - -; max_input_time -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) - -; output_buffering -; Default Value: Off -; Development Value: 4096 -; Production Value: 4096 - -; register_argc_argv -; Default Value: On -; Development Value: Off -; Production Value: Off - -; request_order -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" - -; session.gc_divisor -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 - -; session.sid_bits_per_character -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 - -; short_open_tag -; Default Value: On -; Development Value: Off -; Production Value: Off - -; track_errors -; Default Value: Off -; Development Value: On -; Production Value: Off - -; variables_order -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS" - -;;;;;;;;;;;;;;;;;;;; -; php.ini Options ; -;;;;;;;;;;;;;;;;;;;; -; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini" -;user_ini.filename = ".user.ini" - -; To disable this feature set this option to empty value -;user_ini.filename = - -; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes) -;user_ini.cache_ttl = 300 - -;;;;;;;;;;;;;;;;;;;; -; Language Options ; -;;;;;;;;;;;;;;;;;;;; - -; Enable the PHP scripting language engine under Apache. -; http://php.net/engine -engine = On - -; This directive determines whether or not PHP will recognize code between -; tags as PHP source which should be processed as such. It is -; generally recommended that should be used and that this feature -; should be disabled, as enabling it may result in issues when generating XML -; documents, however this remains supported for backward compatibility reasons. -; Note that this directive does not control the would work. -; http://php.net/syntax-highlighting -;highlight.string = #DD0000 -;highlight.comment = #FF9900 -;highlight.keyword = #007700 -;highlight.default = #0000BB -;highlight.html = #000000 - -; If enabled, the request will be allowed to complete even if the user aborts -; the request. Consider enabling it if executing long requests, which may end up -; being interrupted by the user or a browser timing out. PHP's default behavior -; is to disable this feature. -; http://php.net/ignore-user-abort -;ignore_user_abort = On - -; Determines the size of the realpath cache to be used by PHP. This value should -; be increased on systems where PHP opens many files to reflect the quantity of -; the file operations performed. -; http://php.net/realpath-cache-size -;realpath_cache_size = 4096k - -; Duration of time, in seconds for which to cache realpath information for a given -; file or directory. For systems with rarely changing files, consider increasing this -; value. -; http://php.net/realpath-cache-ttl -;realpath_cache_ttl = 120 - -; Enables or disables the circular reference collector. -; http://php.net/zend.enable-gc -zend.enable_gc = On - -; If enabled, scripts may be written in encodings that are incompatible with -; the scanner. CP936, Big5, CP949 and Shift_JIS are the examples of such -; encodings. To use this feature, mbstring extension must be enabled. -; Default: Off -;zend.multibyte = Off - -; Allows to set the default encoding for the scripts. This value will be used -; unless "declare(encoding=...)" directive appears at the top of the script. -; Only affects if zend.multibyte is set. -; Default: "" -;zend.script_encoding = - -;;;;;;;;;;;;;;;;; -; Miscellaneous ; -;;;;;;;;;;;;;;;;; - -; Decides whether PHP may expose the fact that it is installed on the server -; (e.g. by adding its signature to the Web server header). It is no security -; threat in any way, but it makes it possible to determine whether you use PHP -; on your server or not. -; http://php.net/expose-php -expose_php = Off - -;;;;;;;;;;;;;;;;;;; -; Resource Limits ; -;;;;;;;;;;;;;;;;;;; - -; Maximum execution time of each script, in seconds -; http://php.net/max-execution-time -; Note: This directive is hardcoded to 0 for the CLI SAPI -max_execution_time = 30 - -; Maximum amount of time each script may spend parsing request data. It's a good -; idea to limit this time on productions servers in order to eliminate unexpectedly -; long running scripts. -; Note: This directive is hardcoded to -1 for the CLI SAPI -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) -; http://php.net/max-input-time -max_input_time = 60 - -; Maximum input variable nesting level -; http://php.net/max-input-nesting-level -;max_input_nesting_level = 64 - -; How many GET/POST/COOKIE input variables may be accepted -; max_input_vars = 1000 - -; Maximum amount of memory a script may consume (128MB) -; http://php.net/memory-limit -memory_limit = 256M - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; Error handling and logging ; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -; This directive informs PHP of which errors, warnings and notices you would like -; it to take action for. The recommended way of setting values for this -; directive is through the use of the error level constants and bitwise -; operators. The error level constants are below here for convenience as well as -; some common settings and their meanings. -; By default, PHP is set to take action on all errors, notices and warnings EXCEPT -; those related to E_NOTICE and E_STRICT, which together cover best practices and -; recommended coding standards in PHP. For performance reasons, this is the -; recommend error reporting setting. Your production server shouldn't be wasting -; resources complaining about best practices and coding standards. That's what -; development servers and development settings are for. -; Note: The php.ini-development file has this setting as E_ALL. This -; means it pretty much reports everything which is exactly what you want during -; development and early testing. -; -; Error Level Constants: -; E_ALL - All errors and warnings (includes E_STRICT as of PHP 5.4.0) -; E_ERROR - fatal run-time errors -; E_RECOVERABLE_ERROR - almost fatal run-time errors -; E_WARNING - run-time warnings (non-fatal errors) -; E_PARSE - compile-time parse errors -; E_NOTICE - run-time notices (these are warnings which often result -; from a bug in your code, but it's possible that it was -; intentional (e.g., using an uninitialized variable and -; relying on the fact it is automatically initialized to an -; empty string) -; E_STRICT - run-time notices, enable to have PHP suggest changes -; to your code which will ensure the best interoperability -; and forward compatibility of your code -; E_CORE_ERROR - fatal errors that occur during PHP's initial startup -; E_CORE_WARNING - warnings (non-fatal errors) that occur during PHP's -; initial startup -; E_COMPILE_ERROR - fatal compile-time errors -; E_COMPILE_WARNING - compile-time warnings (non-fatal errors) -; E_USER_ERROR - user-generated error message -; E_USER_WARNING - user-generated warning message -; E_USER_NOTICE - user-generated notice message -; E_DEPRECATED - warn about code that will not work in future versions -; of PHP -; E_USER_DEPRECATED - user-generated deprecation warnings -; -; Common Values: -; E_ALL (Show all errors, warnings and notices including coding standards.) -; E_ALL & ~E_NOTICE (Show all errors, except for notices) -; E_ALL & ~E_NOTICE & ~E_STRICT (Show all errors, except for notices and coding standards warnings.) -; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors) -; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT -; http://php.net/error-reporting -error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT - -; This directive controls whether or not and where PHP will output errors, -; notices and warnings too. Error output is very useful during development, but -; it could be very dangerous in production environments. Depending on the code -; which is triggering the error, sensitive information could potentially leak -; out of your application such as database usernames and passwords or worse. -; For production environments, we recommend logging errors rather than -; sending them to STDOUT. -; Possible Values: -; Off = Do not display any errors -; stderr = Display errors to STDERR (affects only CGI/CLI binaries!) -; On or stdout = Display errors to STDOUT -; Default Value: On -; Development Value: On -; Production Value: Off -; http://php.net/display-errors -display_errors = Off - -; The display of errors which occur during PHP's startup sequence are handled -; separately from display_errors. PHP's default behavior is to suppress those -; errors from clients. Turning the display of startup errors on can be useful in -; debugging configuration problems. We strongly recommend you -; set this to 'off' for production servers. -; Default Value: Off -; Development Value: On -; Production Value: Off -; http://php.net/display-startup-errors -display_startup_errors = Off - -; Besides displaying errors, PHP can also log errors to locations such as a -; server-specific log, STDERR, or a location specified by the error_log -; directive found below. While errors should not be displayed on productions -; servers they should still be monitored and logging is a great way to do that. -; Default Value: Off -; Development Value: On -; Production Value: On -; http://php.net/log-errors -log_errors = On - -; Set maximum length of log_errors. In error_log information about the source is -; added. The default is 1024 and 0 allows to not apply any maximum length at all. -; http://php.net/log-errors-max-len -log_errors_max_len = 1024 - -; Do not log repeated messages. Repeated errors must occur in same file on same -; line unless ignore_repeated_source is set true. -; http://php.net/ignore-repeated-errors -ignore_repeated_errors = Off - -; Ignore source of message when ignoring repeated messages. When this setting -; is On you will not log errors with repeated messages from different files or -; source lines. -; http://php.net/ignore-repeated-source -ignore_repeated_source = Off - -; If this parameter is set to Off, then memory leaks will not be shown (on -; stdout or in the log). This has only effect in a debug compile, and if -; error reporting includes E_WARNING in the allowed list -; http://php.net/report-memleaks -report_memleaks = On - -; This setting is on by default. -;report_zend_debug = 0 - -; Store the last error/warning message in $php_errormsg (boolean). Setting this value -; to On can assist in debugging and is appropriate for development servers. It should -; however be disabled on production servers. -; Default Value: Off -; Development Value: On -; Production Value: Off -; http://php.net/track-errors -track_errors = Off - -; Turn off normal error reporting and emit XML-RPC error XML -; http://php.net/xmlrpc-errors -;xmlrpc_errors = 0 - -; An XML-RPC faultCode -;xmlrpc_error_number = 0 - -; When PHP displays or logs an error, it has the capability of formatting the -; error message as HTML for easier reading. This directive controls whether -; the error message is formatted as HTML or not. -; Note: This directive is hardcoded to Off for the CLI SAPI -; Default Value: On -; Development Value: On -; Production value: On -; http://php.net/html-errors -html_errors = On - -; If html_errors is set to On *and* docref_root is not empty, then PHP -; produces clickable error messages that direct to a page describing the error -; or function causing the error in detail. -; You can download a copy of the PHP manual from http://php.net/docs -; and change docref_root to the base URL of your local copy including the -; leading '/'. You must also specify the file extension being used including -; the dot. PHP's default behavior is to leave these settings empty, in which -; case no links to documentation are generated. -; Note: Never use this feature for production boxes. -; http://php.net/docref-root -; Examples -;docref_root = "/phpmanual/" - -; http://php.net/docref-ext -;docref_ext = .html - -; String to output before an error message. PHP's default behavior is to leave -; this setting blank. -; http://php.net/error-prepend-string -; Example: -;error_prepend_string = "" - -; String to output after an error message. PHP's default behavior is to leave -; this setting blank. -; http://php.net/error-append-string -; Example: -;error_append_string = "" - -; Log errors to specified file. PHP's default behavior is to leave this value -; empty. -; http://php.net/error-log -; Example: -;error_log = php_errors.log -; Log errors to syslog (Event Log on Windows). -error_log = /var/log/php/php.error.log - -;windows.show_crt_warning -; Default value: 0 -; Development value: 0 -; Production value: 0 - -;;;;;;;;;;;;;;;;; -; Data Handling ; -;;;;;;;;;;;;;;;;; - -; The separator used in PHP generated URLs to separate arguments. -; PHP's default setting is "&". -; http://php.net/arg-separator.output -; Example: -;arg_separator.output = "&" - -; List of separator(s) used by PHP to parse input URLs into variables. -; PHP's default setting is "&". -; NOTE: Every character in this directive is considered as separator! -; http://php.net/arg-separator.input -; Example: -;arg_separator.input = ";&" - -; This directive determines which super global arrays are registered when PHP -; starts up. G,P,C,E & S are abbreviations for the following respective super -; globals: GET, POST, COOKIE, ENV and SERVER. There is a performance penalty -; paid for the registration of these arrays and because ENV is not as commonly -; used as the others, ENV is not recommended on productions servers. You -; can still get access to the environment variables through getenv() should you -; need to. -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS"; -; http://php.net/variables-order -variables_order = "GPCS" - -; This directive determines which super global data (G,P & C) should be -; registered into the super global array REQUEST. If so, it also determines -; the order in which that data is registered. The values for this directive -; are specified in the same manner as the variables_order directive, -; EXCEPT one. Leaving this value empty will cause PHP to use the value set -; in the variables_order directive. It does not mean it will leave the super -; globals array REQUEST empty. -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" -; http://php.net/request-order -request_order = "GP" - -; This directive determines whether PHP registers $argv & $argc each time it -; runs. $argv contains an array of all the arguments passed to PHP when a script -; is invoked. $argc contains an integer representing the number of arguments -; that were passed when the script was invoked. These arrays are extremely -; useful when running scripts from the command line. When this directive is -; enabled, registering these variables consumes CPU cycles and memory each time -; a script is executed. For performance reasons, this feature should be disabled -; on production servers. -; Note: This directive is hardcoded to On for the CLI SAPI -; Default Value: On -; Development Value: Off -; Production Value: Off -; http://php.net/register-argc-argv -register_argc_argv = Off - -; When enabled, the ENV, REQUEST and SERVER variables are created when they're -; first used (Just In Time) instead of when the script starts. If these -; variables are not used within a script, having this directive on will result -; in a performance gain. The PHP directive register_argc_argv must be disabled -; for this directive to have any affect. -; http://php.net/auto-globals-jit -auto_globals_jit = On - -; Whether PHP will read the POST data. -; This option is enabled by default. -; Most likely, you won't want to disable this option globally. It causes $_POST -; and $_FILES to always be empty; the only way you will be able to read the -; POST data will be through the php://input stream wrapper. This can be useful -; to proxy requests or to process the POST data in a memory efficient fashion. -; http://php.net/enable-post-data-reading -;enable_post_data_reading = Off - -; Maximum size of POST data that PHP will accept. -; Its value may be 0 to disable the limit. It is ignored if POST data reading -; is disabled through enable_post_data_reading. -; http://php.net/post-max-size -post_max_size = 100M - -; Automatically add files before PHP document. -; http://php.net/auto-prepend-file -auto_prepend_file = - -; Automatically add files after PHP document. -; http://php.net/auto-append-file -auto_append_file = - -; By default, PHP will output a media type using the Content-Type header. To -; disable this, simply set it to be empty. -; -; PHP's built-in default media type is set to text/html. -; http://php.net/default-mimetype -default_mimetype = "text/html" - -; PHP's default character set is set to UTF-8. -; http://php.net/default-charset -default_charset = "UTF-8" - -; PHP internal character encoding is set to empty. -; If empty, default_charset is used. -; http://php.net/internal-encoding -;internal_encoding = - -; PHP input character encoding is set to empty. -; If empty, default_charset is used. -; http://php.net/input-encoding -;input_encoding = - -; PHP output character encoding is set to empty. -; If empty, default_charset is used. -; See also output_buffer. -; http://php.net/output-encoding -;output_encoding = - -;;;;;;;;;;;;;;;;;;;;;;;;; -; Paths and Directories ; -;;;;;;;;;;;;;;;;;;;;;;;;; - -; UNIX: "/path1:/path2" -;include_path = ".:/php/includes" -; -; Windows: "\path1;\path2" -;include_path = ".;c:\php\includes" -; -; PHP's default setting for include_path is ".;/path/to/php/pear" -; http://php.net/include-path - -; The root of the PHP pages, used only if nonempty. -; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root -; if you are running php as a CGI under any web server (other than IIS) -; see documentation for security issues. The alternate is to use the -; cgi.force_redirect configuration below -; http://php.net/doc-root -doc_root = - -; The directory under which PHP opens the script using /~username used only -; if nonempty. -; http://php.net/user-dir -user_dir = - -; Directory in which the loadable extensions (modules) reside. -; http://php.net/extension-dir -; extension_dir = "./" -; On windows: -; extension_dir = "ext" - -; Directory where the temporary files should be placed. -; Defaults to the system default (see sys_get_temp_dir) -; sys_temp_dir = "/tmp" - -; Whether or not to enable the dl() function. The dl() function does NOT work -; properly in multithreaded servers, such as IIS or Zeus, and is automatically -; disabled on them. -; http://php.net/enable-dl -enable_dl = Off - -; cgi.force_redirect is necessary to provide security running PHP as a CGI under -; most web servers. Left undefined, PHP turns this on by default. You can -; turn it off here AT YOUR OWN RISK -; **You CAN safely turn this off for IIS, in fact, you MUST.** -; http://php.net/cgi.force-redirect -;cgi.force_redirect = 1 - -; if cgi.nph is enabled it will force cgi to always sent Status: 200 with -; every request. PHP's default behavior is to disable this feature. -;cgi.nph = 1 - -; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape -; (iPlanet) web servers, you MAY need to set an environment variable name that PHP -; will look for to know it is OK to continue execution. Setting this variable MAY -; cause security issues, KNOW WHAT YOU ARE DOING FIRST. -; http://php.net/cgi.redirect-status-env -;cgi.redirect_status_env = - -; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's -; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok -; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting -; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting -; of zero causes PHP to behave as before. Default is 1. You should fix your scripts -; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. -; http://php.net/cgi.fix-pathinfo -;cgi.fix_pathinfo=1 - -; if cgi.discard_path is enabled, the PHP CGI binary can safely be placed outside -; of the web tree and people will not be able to circumvent .htaccess security. -; http://php.net/cgi.dicard-path -;cgi.discard_path=1 - -; FastCGI under IIS (on WINNT based OS) supports the ability to impersonate -; security tokens of the calling client. This allows IIS to define the -; security context that the request runs under. mod_fastcgi under Apache -; does not currently support this feature (03/17/2002) -; Set to 1 if running under IIS. Default is zero. -; http://php.net/fastcgi.impersonate -;fastcgi.impersonate = 1 - -; Disable logging through FastCGI connection. PHP's default behavior is to enable -; this feature. -;fastcgi.logging = 0 - -; cgi.rfc2616_headers configuration option tells PHP what type of headers to -; use when sending HTTP response code. If set to 0, PHP sends Status: header that -; is supported by Apache. When this option is set to 1, PHP will send -; RFC2616 compliant header. -; Default is zero. -; http://php.net/cgi.rfc2616-headers -;cgi.rfc2616_headers = 0 - -; cgi.check_shebang_line controls whether CGI PHP checks for line starting with #! -; (shebang) at the top of the running script. This line might be needed if the -; script support running both as stand-alone script and via PHP CGI<. PHP in CGI -; mode skips this line and ignores its content if this directive is turned on. -; http://php.net/cgi.check-shebang-line -;cgi.check_shebang_line=1 - -;;;;;;;;;;;;;;;; -; File Uploads ; -;;;;;;;;;;;;;;;; - -; Whether to allow HTTP file uploads. -; http://php.net/file-uploads -file_uploads = On - -; Temporary directory for HTTP uploaded files (will use system default if not -; specified). -; http://php.net/upload-tmp-dir -;upload_tmp_dir = - -; Maximum allowed size for uploaded files. -; http://php.net/upload-max-filesize -upload_max_filesize = 50M - -; Maximum number of files that can be uploaded via a single request -max_file_uploads = 20 - -;;;;;;;;;;;;;;;;;; -; Fopen wrappers ; -;;;;;;;;;;;;;;;;;; - -; Whether to allow the treatment of URLs (like http:// or ftp://) as files. -; http://php.net/allow-url-fopen -allow_url_fopen = On - -; Whether to allow include/require to open URLs (like http:// or ftp://) as files. -; http://php.net/allow-url-include -allow_url_include = Off - -; Define the anonymous ftp password (your email address). PHP's default setting -; for this is empty. -; http://php.net/from -;from="john@doe.com" - -; Define the User-Agent string. PHP's default setting for this is empty. -; http://php.net/user-agent -;user_agent="PHP" - -; Default timeout for socket based streams (seconds) -; http://php.net/default-socket-timeout -default_socket_timeout = 60 - -; If your scripts have to deal with files from Macintosh systems, -; or you are running on a Mac and need to deal with files from -; unix or win32 systems, setting this flag will cause PHP to -; automatically detect the EOL character in those files so that -; fgets() and file() will work regardless of the source of the file. -; http://php.net/auto-detect-line-endings -;auto_detect_line_endings = Off - -;;;;;;;;;;;;;;;;;;;;;; -; Dynamic Extensions ; -;;;;;;;;;;;;;;;;;;;;;; - -; If you wish to have an extension loaded automatically, use the following -; syntax: -; -; extension=modulename.extension -; -; For example, on Windows: -; -; extension=mysqli.dll -; -; ... or under UNIX: -; -; extension=mysqli.so -; -; ... or with a path: -; -; extension=/path/to/extension/mysqli.so -; -; If you only provide the name of the extension, PHP will look for it in its -; default extension directory. -; -; Windows Extensions -; Note that ODBC support is built in, so no dll is needed for it. -; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5+) -; extension folders as well as the separate PECL DLL download (PHP 5+). -; Be sure to appropriately set the extension_dir directive. -; -;extension=php_bz2.dll -;extension=php_curl.dll -;extension=php_fileinfo.dll -;extension=php_ftp.dll -;extension=php_gd2.dll -;extension=php_gettext.dll -;extension=php_gmp.dll -;extension=php_intl.dll -;extension=php_imap.dll -;extension=php_interbase.dll -;extension=php_ldap.dll -;extension=php_mbstring.dll -;extension=php_exif.dll ; Must be after mbstring as it depends on it -;extension=php_mysqli.dll -;extension=php_oci8_12c.dll ; Use with Oracle Database 12c Instant Client -;extension=php_openssl.dll -;extension=php_pdo_firebird.dll -;extension=php_pdo_mysql.dll -;extension=php_pdo_oci.dll -;extension=php_pdo_odbc.dll -;extension=php_pdo_pgsql.dll -;extension=php_pdo_sqlite.dll -;extension=php_pgsql.dll -;extension=php_shmop.dll - -; The MIBS data available in the PHP distribution must be installed. -; See http://www.php.net/manual/en/snmp.installation.php -;extension=php_snmp.dll - -;extension=php_soap.dll -;extension=php_sockets.dll -;extension=php_sqlite3.dll -;extension=php_tidy.dll -;extension=php_xmlrpc.dll -;extension=php_xsl.dll - -;;;;;;;;;;;;;;;;;;; -; Module Settings ; -;;;;;;;;;;;;;;;;;;; - -[CLI Server] -; Whether the CLI web server uses ANSI color coding in its terminal output. -cli_server.color = On - -[Date] -; Defines the default timezone used by the date functions -; http://php.net/date.timezone -date.timezone = Asia/Shanghai - -; http://php.net/date.default-latitude -;date.default_latitude = 31.7667 - -; http://php.net/date.default-longitude -;date.default_longitude = 35.2333 - -; http://php.net/date.sunrise-zenith -;date.sunrise_zenith = 90.583333 - -; http://php.net/date.sunset-zenith -;date.sunset_zenith = 90.583333 - -[filter] -; http://php.net/filter.default -;filter.default = unsafe_raw - -; http://php.net/filter.default-flags -;filter.default_flags = - -[iconv] -; Use of this INI entry is deprecated, use global input_encoding instead. -; If empty, default_charset or input_encoding or iconv.input_encoding is used. -; The precedence is: default_charset < intput_encoding < iconv.input_encoding -;iconv.input_encoding = - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;iconv.internal_encoding = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; If empty, default_charset or output_encoding or iconv.output_encoding is used. -; The precedence is: default_charset < output_encoding < iconv.output_encoding -; To use an output encoding conversion, iconv's output handler must be set -; otherwise output encoding conversion cannot be performed. -;iconv.output_encoding = - -[intl] -;intl.default_locale = -; This directive allows you to produce PHP errors when some error -; happens within intl functions. The value is the level of the error produced. -; Default is 0, which does not produce any errors. -;intl.error_level = E_WARNING -;intl.use_exceptions = 0 - -[sqlite3] -;sqlite3.extension_dir = - -[Pcre] -;PCRE library backtracking limit. -; http://php.net/pcre.backtrack-limit -;pcre.backtrack_limit=100000 - -;PCRE library recursion limit. -;Please note that if you set this value to a high number you may consume all -;the available process stack and eventually crash PHP (due to reaching the -;stack size limit imposed by the Operating System). -; http://php.net/pcre.recursion-limit -;pcre.recursion_limit=100000 - -;Enables or disables JIT compilation of patterns. This requires the PCRE -;library to be compiled with JIT support. -;pcre.jit=1 - -[Pdo] -; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off" -; http://php.net/pdo-odbc.connection-pooling -;pdo_odbc.connection_pooling=strict - -;pdo_odbc.db2_instance_name - -[Pdo_mysql] -; If mysqlnd is used: Number of cache slots for the internal result set cache -; http://php.net/pdo_mysql.cache_size -pdo_mysql.cache_size = 2000 - -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -; http://php.net/pdo_mysql.default-socket -pdo_mysql.default_socket= - -[Phar] -; http://php.net/phar.readonly -;phar.readonly = On - -; http://php.net/phar.require-hash -;phar.require_hash = On - -;phar.cache_list = - -[mail function] -; For Win32 only. -; http://php.net/smtp -SMTP = localhost -; http://php.net/smtp-port -smtp_port = 25 - -; For Win32 only. -; http://php.net/sendmail-from -;sendmail_from = me@example.com - -; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). -; http://php.net/sendmail-path -;sendmail_path = - -; Force the addition of the specified parameters to be passed as extra parameters -; to the sendmail binary. These parameters will always replace the value of -; the 5th parameter to mail(). -;mail.force_extra_parameters = - -; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename -mail.add_x_header = On - -; The path to a log file that will log all mail() calls. Log entries include -; the full path of the script, line number, To address and headers. -;mail.log = -; Log mail to syslog (Event Log on Windows). -;mail.log = syslog - -[ODBC] -; http://php.net/odbc.default-db -;odbc.default_db = Not yet implemented - -; http://php.net/odbc.default-user -;odbc.default_user = Not yet implemented - -; http://php.net/odbc.default-pw -;odbc.default_pw = Not yet implemented - -; Controls the ODBC cursor model. -; Default: SQL_CURSOR_STATIC (default). -;odbc.default_cursortype - -; Allow or prevent persistent links. -; http://php.net/odbc.allow-persistent -odbc.allow_persistent = On - -; Check that a connection is still valid before reuse. -; http://php.net/odbc.check-persistent -odbc.check_persistent = On - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/odbc.max-persistent -odbc.max_persistent = -1 - -; Maximum number of links (persistent + non-persistent). -1 means no limit. -; http://php.net/odbc.max-links -odbc.max_links = -1 - -; Handling of LONG fields. Returns number of bytes to variables. 0 means -; passthru. -; http://php.net/odbc.defaultlrl -odbc.defaultlrl = 4096 - -; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char. -; See the documentation on odbc_binmode and odbc_longreadlen for an explanation -; of odbc.defaultlrl and odbc.defaultbinmode -; http://php.net/odbc.defaultbinmode -odbc.defaultbinmode = 1 - -;birdstep.max_links = -1 - -[Interbase] -; Allow or prevent persistent links. -ibase.allow_persistent = 1 - -; Maximum number of persistent links. -1 means no limit. -ibase.max_persistent = -1 - -; Maximum number of links (persistent + non-persistent). -1 means no limit. -ibase.max_links = -1 - -; Default database name for ibase_connect(). -;ibase.default_db = - -; Default username for ibase_connect(). -;ibase.default_user = - -; Default password for ibase_connect(). -;ibase.default_password = - -; Default charset for ibase_connect(). -;ibase.default_charset = - -; Default timestamp format. -ibase.timestampformat = "%Y-%m-%d %H:%M:%S" - -; Default date format. -ibase.dateformat = "%Y-%m-%d" - -; Default time format. -ibase.timeformat = "%H:%M:%S" - -[MySQLi] - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/mysqli.max-persistent -mysqli.max_persistent = -1 - -; Allow accessing, from PHP's perspective, local files with LOAD DATA statements -; http://php.net/mysqli.allow_local_infile -;mysqli.allow_local_infile = On - -; Allow or prevent persistent links. -; http://php.net/mysqli.allow-persistent -mysqli.allow_persistent = On - -; Maximum number of links. -1 means no limit. -; http://php.net/mysqli.max-links -mysqli.max_links = -1 - -; If mysqlnd is used: Number of cache slots for the internal result set cache -; http://php.net/mysqli.cache_size -mysqli.cache_size = 2000 - -; Default port number for mysqli_connect(). If unset, mysqli_connect() will use -; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the -; compile-time value defined MYSQL_PORT (in that order). Win32 will only look -; at MYSQL_PORT. -; http://php.net/mysqli.default-port -mysqli.default_port = 3306 - -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -; http://php.net/mysqli.default-socket -mysqli.default_socket = - -; Default host for mysql_connect() (doesn't apply in safe mode). -; http://php.net/mysqli.default-host -mysqli.default_host = - -; Default user for mysql_connect() (doesn't apply in safe mode). -; http://php.net/mysqli.default-user -mysqli.default_user = - -; Default password for mysqli_connect() (doesn't apply in safe mode). -; Note that this is generally a *bad* idea to store passwords in this file. -; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw") -; and reveal this password! And of course, any users with read access to this -; file will be able to reveal the password as well. -; http://php.net/mysqli.default-pw -mysqli.default_pw = - -; Allow or prevent reconnect -mysqli.reconnect = Off - -[mysqlnd] -; Enable / Disable collection of general statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -; http://php.net/mysqlnd.collect_statistics -mysqlnd.collect_statistics = On - -; Enable / Disable collection of memory usage statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -; http://php.net/mysqlnd.collect_memory_statistics -mysqlnd.collect_memory_statistics = Off - -; Records communication from all extensions using mysqlnd to the specified log -; file. -; http://php.net/mysqlnd.debug -;mysqlnd.debug = - -; Defines which queries will be logged. -; http://php.net/mysqlnd.log_mask -;mysqlnd.log_mask = 0 - -; Default size of the mysqlnd memory pool, which is used by result sets. -; http://php.net/mysqlnd.mempool_default_size -;mysqlnd.mempool_default_size = 16000 - -; Size of a pre-allocated buffer used when sending commands to MySQL in bytes. -; http://php.net/mysqlnd.net_cmd_buffer_size -;mysqlnd.net_cmd_buffer_size = 2048 - -; Size of a pre-allocated buffer used for reading data sent by the server in -; bytes. -; http://php.net/mysqlnd.net_read_buffer_size -;mysqlnd.net_read_buffer_size = 32768 - -; Timeout for network requests in seconds. -; http://php.net/mysqlnd.net_read_timeout -;mysqlnd.net_read_timeout = 31536000 - -; SHA-256 Authentication Plugin related. File with the MySQL server public RSA -; key. -; http://php.net/mysqlnd.sha256_server_public_key -;mysqlnd.sha256_server_public_key = - -[OCI8] - -; Connection: Enables privileged connections using external -; credentials (OCI_SYSOPER, OCI_SYSDBA) -; http://php.net/oci8.privileged-connect -;oci8.privileged_connect = Off - -; Connection: The maximum number of persistent OCI8 connections per -; process. Using -1 means no limit. -; http://php.net/oci8.max-persistent -;oci8.max_persistent = -1 - -; Connection: The maximum number of seconds a process is allowed to -; maintain an idle persistent connection. Using -1 means idle -; persistent connections will be maintained forever. -; http://php.net/oci8.persistent-timeout -;oci8.persistent_timeout = -1 - -; Connection: The number of seconds that must pass before issuing a -; ping during oci_pconnect() to check the connection validity. When -; set to 0, each oci_pconnect() will cause a ping. Using -1 disables -; pings completely. -; http://php.net/oci8.ping-interval -;oci8.ping_interval = 60 - -; Connection: Set this to a user chosen connection class to be used -; for all pooled server requests with Oracle 11g Database Resident -; Connection Pooling (DRCP). To use DRCP, this value should be set to -; the same string for all web servers running the same application, -; the database pool must be configured, and the connection string must -; specify to use a pooled server. -;oci8.connection_class = - -; High Availability: Using On lets PHP receive Fast Application -; Notification (FAN) events generated when a database node fails. The -; database must also be configured to post FAN events. -;oci8.events = Off - -; Tuning: This option enables statement caching, and specifies how -; many statements to cache. Using 0 disables statement caching. -; http://php.net/oci8.statement-cache-size -;oci8.statement_cache_size = 20 - -; Tuning: Enables statement prefetching and sets the default number of -; rows that will be fetched automatically after statement execution. -; http://php.net/oci8.default-prefetch -;oci8.default_prefetch = 100 - -; Compatibility. Using On means oci_close() will not close -; oci_connect() and oci_new_connect() connections. -; http://php.net/oci8.old-oci-close-semantics -;oci8.old_oci_close_semantics = Off - -[PostgreSQL] -; Allow or prevent persistent links. -; http://php.net/pgsql.allow-persistent -pgsql.allow_persistent = On - -; Detect broken persistent links always with pg_pconnect(). -; Auto reset feature requires a little overheads. -; http://php.net/pgsql.auto-reset-persistent -pgsql.auto_reset_persistent = Off - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/pgsql.max-persistent -pgsql.max_persistent = -1 - -; Maximum number of links (persistent+non persistent). -1 means no limit. -; http://php.net/pgsql.max-links -pgsql.max_links = -1 - -; Ignore PostgreSQL backends Notice message or not. -; Notice message logging require a little overheads. -; http://php.net/pgsql.ignore-notice -pgsql.ignore_notice = 0 - -; Log PostgreSQL backends Notice message or not. -; Unless pgsql.ignore_notice=0, module cannot log notice message. -; http://php.net/pgsql.log-notice -pgsql.log_notice = 0 - -[bcmath] -; Number of decimal digits for all bcmath functions. -; http://php.net/bcmath.scale -bcmath.scale = 0 - -[browscap] -; http://php.net/browscap -;browscap = extra/browscap.ini - -[Session] -; Handler used to store/retrieve data. -; http://php.net/session.save-handler -session.save_handler = files - -; Argument passed to save_handler. In the case of files, this is the path -; where data files are stored. Note: Windows users have to change this -; variable in order to use PHP's session functions. -; -; The path can be defined as: -; -; session.save_path = "N;/path" -; -; where N is an integer. Instead of storing all the session files in -; /path, what this will do is use subdirectories N-levels deep, and -; store the session data in those directories. This is useful if -; your OS has problems with many files in one directory, and is -; a more efficient layout for servers that handle many sessions. -; -; NOTE 1: PHP will not create this directory structure automatically. -; You can use the script in the ext/session dir for that purpose. -; NOTE 2: See the section on garbage collection below if you choose to -; use subdirectories for session storage -; -; The file storage module creates files using mode 600 by default. -; You can change that by using -; -; session.save_path = "N;MODE;/path" -; -; where MODE is the octal representation of the mode. Note that this -; does not overwrite the process's umask. -; http://php.net/session.save-path -;session.save_path = "/tmp" - -; Whether to use strict session mode. -; Strict session mode does not accept uninitialized session ID and regenerate -; session ID if browser sends uninitialized session ID. Strict mode protects -; applications from session fixation via session adoption vulnerability. It is -; disabled by default for maximum compatibility, but enabling it is encouraged. -; https://wiki.php.net/rfc/strict_sessions -session.use_strict_mode = 0 - -; Whether to use cookies. -; http://php.net/session.use-cookies -session.use_cookies = 1 - -; http://php.net/session.cookie-secure -;session.cookie_secure = - -; This option forces PHP to fetch and use a cookie for storing and maintaining -; the session id. We encourage this operation as it's very helpful in combating -; session hijacking when not specifying and managing your own session id. It is -; not the be-all and end-all of session hijacking defense, but it's a good start. -; http://php.net/session.use-only-cookies -session.use_only_cookies = 1 - -; Name of the session (used as cookie name). -; http://php.net/session.name -session.name = PHPSESSID - -; Initialize session on request startup. -; http://php.net/session.auto-start -session.auto_start = 0 - -; Lifetime in seconds of cookie or, if 0, until browser is restarted. -; http://php.net/session.cookie-lifetime -session.cookie_lifetime = 0 - -; The path for which the cookie is valid. -; http://php.net/session.cookie-path -session.cookie_path = / - -; The domain for which the cookie is valid. -; http://php.net/session.cookie-domain -session.cookie_domain = - -; Whether or not to add the httpOnly flag to the cookie, which makes it inaccessible to browser scripting languages such as JavaScript. -; http://php.net/session.cookie-httponly -session.cookie_httponly = - -; Handler used to serialize data. php is the standard serializer of PHP. -; http://php.net/session.serialize-handler -session.serialize_handler = php - -; Defines the probability that the 'garbage collection' process is started -; on every session initialization. The probability is calculated by using -; gc_probability/gc_divisor. Where session.gc_probability is the numerator -; and gc_divisor is the denominator in the equation. Setting this value to 1 -; when the session.gc_divisor value is 100 will give you approximately a 1% chance -; the gc will run on any give request. -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; http://php.net/session.gc-probability -session.gc_probability = 1 - -; Defines the probability that the 'garbage collection' process is started on every -; session initialization. The probability is calculated by using the following equation: -; gc_probability/gc_divisor. Where session.gc_probability is the numerator and -; session.gc_divisor is the denominator in the equation. Setting this value to 1 -; when the session.gc_divisor value is 100 will give you approximately a 1% chance -; the gc will run on any give request. Increasing this value to 1000 will give you -; a 0.1% chance the gc will run on any give request. For high volume production servers, -; this is a more efficient approach. -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 -; http://php.net/session.gc-divisor -session.gc_divisor = 1000 - -; After this number of seconds, stored data will be seen as 'garbage' and -; cleaned up by the garbage collection process. -; http://php.net/session.gc-maxlifetime -session.gc_maxlifetime = 1440 - -; NOTE: If you are using the subdirectory option for storing session files -; (see session.save_path above), then garbage collection does *not* -; happen automatically. You will need to do your own garbage -; collection through a shell script, cron entry, or some other method. -; For example, the following script would is the equivalent of -; setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes): -; find /path/to/sessions -cmin +24 -type f | xargs rm - -; Check HTTP Referer to invalidate externally stored URLs containing ids. -; HTTP_REFERER has to contain this substring for the session to be -; considered as valid. -; http://php.net/session.referer-check -session.referer_check = - -; Set to {nocache,private,public,} to determine HTTP caching aspects -; or leave this empty to avoid sending anti-caching headers. -; http://php.net/session.cache-limiter -session.cache_limiter = nocache - -; Document expires after n minutes. -; http://php.net/session.cache-expire -session.cache_expire = 180 - -; trans sid support is disabled by default. -; Use of trans sid may risk your users' security. -; Use this option with caution. -; - User may send URL contains active session ID -; to other person via. email/irc/etc. -; - URL that contains active session ID may be stored -; in publicly accessible computer. -; - User may access your site with the same session ID -; always using URL stored in browser's history or bookmarks. -; http://php.net/session.use-trans-sid -session.use_trans_sid = 0 - -; Set session ID character length. This value could be between 22 to 256. -; Shorter length than default is supported only for compatibility reason. -; Users should use 32 or more chars. -; http://php.net/session.sid-length -; Default Value: 32 -; Development Value: 26 -; Production Value: 26 -session.sid_length = 26 - -; The URL rewriter will look for URLs in a defined set of HTML tags. -; is special; if you include them here, the rewriter will -; add a hidden field with the info which is otherwise appended -; to URLs. tag's action attribute URL will not be modified -; unless it is specified. -; Note that all valid entries require a "=", even if no value follows. -; Default Value: "a=href,area=href,frame=src,form=" -; Development Value: "a=href,area=href,frame=src,form=" -; Production Value: "a=href,area=href,frame=src,form=" -; http://php.net/url-rewriter.tags -session.trans_sid_tags = "a=href,area=href,frame=src,form=" - -; URL rewriter does not rewrite absolute URLs by default. -; To enable rewrites for absolute pathes, target hosts must be specified -; at RUNTIME. i.e. use ini_set() -; tags is special. PHP will check action attribute's URL regardless -; of session.trans_sid_tags setting. -; If no host is defined, HTTP_HOST will be used for allowed host. -; Example value: php.net,www.php.net,wiki.php.net -; Use "," for multiple hosts. No spaces are allowed. -; Default Value: "" -; Development Value: "" -; Production Value: "" -;session.trans_sid_hosts="" - -; Define how many bits are stored in each character when converting -; the binary hash data to something readable. -; Possible values: -; 4 (4 bits: 0-9, a-f) -; 5 (5 bits: 0-9, a-v) -; 6 (6 bits: 0-9, a-z, A-Z, "-", ",") -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 -; http://php.net/session.hash-bits-per-character -session.sid_bits_per_character = 5 - -; Enable upload progress tracking in $_SESSION -; Default Value: On -; Development Value: On -; Production Value: On -; http://php.net/session.upload-progress.enabled -;session.upload_progress.enabled = On - -; Cleanup the progress information as soon as all POST data has been read -; (i.e. upload completed). -; Default Value: On -; Development Value: On -; Production Value: On -; http://php.net/session.upload-progress.cleanup -;session.upload_progress.cleanup = On - -; A prefix used for the upload progress key in $_SESSION -; Default Value: "upload_progress_" -; Development Value: "upload_progress_" -; Production Value: "upload_progress_" -; http://php.net/session.upload-progress.prefix -;session.upload_progress.prefix = "upload_progress_" - -; The index name (concatenated with the prefix) in $_SESSION -; containing the upload progress information -; Default Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Development Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Production Value: "PHP_SESSION_UPLOAD_PROGRESS" -; http://php.net/session.upload-progress.name -;session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS" - -; How frequently the upload progress should be updated. -; Given either in percentages (per-file), or in bytes -; Default Value: "1%" -; Development Value: "1%" -; Production Value: "1%" -; http://php.net/session.upload-progress.freq -;session.upload_progress.freq = "1%" - -; The minimum delay between updates, in seconds -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; http://php.net/session.upload-progress.min-freq -;session.upload_progress.min_freq = "1" - -; Only write session data when session data is changed. Enabled by default. -; http://php.net/session.lazy-write -;session.lazy_write = On - -[Assertion] -; Switch whether to compile assertions at all (to have no overhead at run-time) -; -1: Do not compile at all -; 0: Jump over assertion at run-time -; 1: Execute assertions -; Changing from or to a negative value is only possible in php.ini! (For turning assertions on and off at run-time, see assert.active, when zend.assertions = 1) -; Default Value: 1 -; Development Value: 1 -; Production Value: -1 -; http://php.net/zend.assertions -zend.assertions = -1 - -; Assert(expr); active by default. -; http://php.net/assert.active -;assert.active = On - -; Throw an AssertationException on failed assertions -; http://php.net/assert.exception -;assert.exception = On - -; Issue a PHP warning for each failed assertion. (Overridden by assert.exception if active) -; http://php.net/assert.warning -;assert.warning = On - -; Don't bail out by default. -; http://php.net/assert.bail -;assert.bail = Off - -; User-function to be called if an assertion fails. -; http://php.net/assert.callback -;assert.callback = 0 - -; Eval the expression with current error_reporting(). Set to true if you want -; error_reporting(0) around the eval(). -; http://php.net/assert.quiet-eval -;assert.quiet_eval = 0 - -[COM] -; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs -; http://php.net/com.typelib-file -;com.typelib_file = - -; allow Distributed-COM calls -; http://php.net/com.allow-dcom -;com.allow_dcom = true - -; autoregister constants of a components typlib on com_load() -; http://php.net/com.autoregister-typelib -;com.autoregister_typelib = true - -; register constants casesensitive -; http://php.net/com.autoregister-casesensitive -;com.autoregister_casesensitive = false - -; show warnings on duplicate constant registrations -; http://php.net/com.autoregister-verbose -;com.autoregister_verbose = true - -; The default character set code-page to use when passing strings to and from COM objects. -; Default: system ANSI code page -;com.code_page= - -[mbstring] -; language for internal character representation. -; This affects mb_send_mail() and mbstring.detect_order. -; http://php.net/mbstring.language -;mbstring.language = Japanese - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; internal/script encoding. -; Some encoding cannot work as internal encoding. (e.g. SJIS, BIG5, ISO-2022-*) -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;mbstring.internal_encoding = - -; Use of this INI entry is deprecated, use global input_encoding instead. -; http input encoding. -; mbstring.encoding_traslation = On is needed to use this setting. -; If empty, default_charset or input_encoding or mbstring.input is used. -; The precedence is: default_charset < intput_encoding < mbsting.http_input -; http://php.net/mbstring.http-input -;mbstring.http_input = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; http output encoding. -; mb_output_handler must be registered as output buffer to function. -; If empty, default_charset or output_encoding or mbstring.http_output is used. -; The precedence is: default_charset < output_encoding < mbstring.http_output -; To use an output encoding conversion, mbstring's output handler must be set -; otherwise output encoding conversion cannot be performed. -; http://php.net/mbstring.http-output -;mbstring.http_output = - -; enable automatic encoding translation according to -; mbstring.internal_encoding setting. Input chars are -; converted to internal encoding by setting this to On. -; Note: Do _not_ use automatic encoding translation for -; portable libs/applications. -; http://php.net/mbstring.encoding-translation -;mbstring.encoding_translation = Off - -; automatic encoding detection order. -; "auto" detect order is changed according to mbstring.language -; http://php.net/mbstring.detect-order -;mbstring.detect_order = auto - -; substitute_character used when character cannot be converted -; one from another -; http://php.net/mbstring.substitute-character -;mbstring.substitute_character = none - -; overload(replace) single byte functions by mbstring functions. -; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(), -; etc. Possible values are 0,1,2,4 or combination of them. -; For example, 7 for overload everything. -; 0: No overload -; 1: Overload mail() function -; 2: Overload str*() functions -; 4: Overload ereg*() functions -; http://php.net/mbstring.func-overload -;mbstring.func_overload = 0 - -; enable strict encoding detection. -; Default: Off -;mbstring.strict_detection = On - -; This directive specifies the regex pattern of content types for which mb_output_handler() -; is activated. -; Default: mbstring.http_output_conv_mimetype=^(text/|application/xhtml\+xml) -;mbstring.http_output_conv_mimetype= - -[gd] -; Tell the jpeg decode to ignore warnings and try to create -; a gd image. The warning will then be displayed as notices -; disabled by default -; http://php.net/gd.jpeg-ignore-warning -;gd.jpeg_ignore_warning = 1 - -[exif] -; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS. -; With mbstring support this will automatically be converted into the encoding -; given by corresponding encode setting. When empty mbstring.internal_encoding -; is used. For the decode settings you can distinguish between motorola and -; intel byte order. A decode setting cannot be empty. -; http://php.net/exif.encode-unicode -;exif.encode_unicode = ISO-8859-15 - -; http://php.net/exif.decode-unicode-motorola -;exif.decode_unicode_motorola = UCS-2BE - -; http://php.net/exif.decode-unicode-intel -;exif.decode_unicode_intel = UCS-2LE - -; http://php.net/exif.encode-jis -;exif.encode_jis = - -; http://php.net/exif.decode-jis-motorola -;exif.decode_jis_motorola = JIS - -; http://php.net/exif.decode-jis-intel -;exif.decode_jis_intel = JIS - -[Tidy] -; The path to a default tidy configuration file to use when using tidy -; http://php.net/tidy.default-config -;tidy.default_config = /usr/local/lib/php/default.tcfg - -; Should tidy clean and repair output automatically? -; WARNING: Do not use this option if you are generating non-html content -; such as dynamic images -; http://php.net/tidy.clean-output -tidy.clean_output = Off - -[soap] -; Enables or disables WSDL caching feature. -; http://php.net/soap.wsdl-cache-enabled -soap.wsdl_cache_enabled=1 - -; Sets the directory name where SOAP extension will put cache files. -; http://php.net/soap.wsdl-cache-dir -soap.wsdl_cache_dir="/tmp" - -; (time to live) Sets the number of second while cached file will be used -; instead of original one. -; http://php.net/soap.wsdl-cache-ttl -soap.wsdl_cache_ttl=86400 - -; Sets the size of the cache limit. (Max. number of WSDL files to cache) -soap.wsdl_cache_limit = 5 - -[sysvshm] -; A default size of the shared memory segment -;sysvshm.init_mem = 10000 - -[ldap] -; Sets the maximum number of open links or -1 for unlimited. -ldap.max_links = -1 - -[dba] -;dba.default_handler= - -[opcache] -; Determines if Zend OPCache is enabled -;opcache.enable=1 - -; Determines if Zend OPCache is enabled for the CLI version of PHP -;opcache.enable_cli=1 - -; The OPcache shared memory storage size. -;opcache.memory_consumption=128 - -; The amount of memory for interned strings in Mbytes. -;opcache.interned_strings_buffer=8 - -; The maximum number of keys (scripts) in the OPcache hash table. -; Only numbers between 200 and 1000000 are allowed. -;opcache.max_accelerated_files=10000 - -; The maximum percentage of "wasted" memory until a restart is scheduled. -;opcache.max_wasted_percentage=5 - -; When this directive is enabled, the OPcache appends the current working -; directory to the script key, thus eliminating possible collisions between -; files with the same name (basename). Disabling the directive improves -; performance, but may break existing applications. -;opcache.use_cwd=1 - -; When disabled, you must reset the OPcache manually or restart the -; webserver for changes to the filesystem to take effect. -;opcache.validate_timestamps=1 - -; How often (in seconds) to check file timestamps for changes to the shared -; memory storage allocation. ("1" means validate once per second, but only -; once per request. "0" means always validate) -;opcache.revalidate_freq=2 - -; Enables or disables file search in include_path optimization -;opcache.revalidate_path=0 - -; If disabled, all PHPDoc comments are dropped from the code to reduce the -; size of the optimized code. -;opcache.save_comments=1 - -; If enabled, a fast shutdown sequence is used for the accelerated code -; Depending on the used Memory Manager this may cause some incompatibilities. -;opcache.fast_shutdown=0 - -; Allow file existence override (file_exists, etc.) performance feature. -;opcache.enable_file_override=0 - -; A bitmask, where each bit enables or disables the appropriate OPcache -; passes -;opcache.optimization_level=0xffffffff - -;opcache.inherited_hack=1 -;opcache.dups_fix=0 - -; The location of the OPcache blacklist file (wildcards allowed). -; Each OPcache blacklist file is a text file that holds the names of files -; that should not be accelerated. The file format is to add each filename -; to a new line. The filename may be a full path or just a file prefix -; (i.e., /var/www/x blacklists all the files and directories in /var/www -; that start with 'x'). Line starting with a ; are ignored (comments). -;opcache.blacklist_filename= - -; Allows exclusion of large files from being cached. By default all files -; are cached. -;opcache.max_file_size=0 - -; Check the cache checksum each N requests. -; The default value of "0" means that the checks are disabled. -;opcache.consistency_checks=0 - -; How long to wait (in seconds) for a scheduled restart to begin if the cache -; is not being accessed. -;opcache.force_restart_timeout=180 - -; OPcache error_log file name. Empty string assumes "stderr". -;opcache.error_log= - -; All OPcache errors go to the Web server log. -; By default, only fatal errors (level 0) or errors (level 1) are logged. -; You can also enable warnings (level 2), info messages (level 3) or -; debug messages (level 4). -;opcache.log_verbosity_level=1 - -; Preferred Shared Memory back-end. Leave empty and let the system decide. -;opcache.preferred_memory_model= - -; Protect the shared memory from unexpected writing during script execution. -; Useful for internal debugging only. -;opcache.protect_memory=0 - -; Allows calling OPcache API functions only from PHP scripts which path is -; started from specified string. The default "" means no restriction -;opcache.restrict_api= - -; Mapping base of shared memory segments (for Windows only). All the PHP -; processes have to map shared memory into the same address space. This -; directive allows to manually fix the "Unable to reattach to base address" -; errors. -;opcache.mmap_base= - -; Enables and sets the second level cache directory. -; It should improve performance when SHM memory is full, at server restart or -; SHM reset. The default "" disables file based caching. -;opcache.file_cache= - -; Enables or disables opcode caching in shared memory. -;opcache.file_cache_only=0 - -; Enables or disables checksum validation when script loaded from file cache. -;opcache.file_cache_consistency_checks=1 - -; Implies opcache.file_cache_only=1 for a certain process that failed to -; reattach to the shared memory (for Windows only). Explicitly enabled file -; cache is required. -;opcache.file_cache_fallback=1 - -; Enables or disables copying of PHP code (text segment) into HUGE PAGES. -; This should improve performance, but requires appropriate OS configuration. -;opcache.huge_code_pages=1 - -; Validate cached file permissions. -;opcache.validate_permission=0 - -; Prevent name collisions in chroot'ed environment. -;opcache.validate_root=0 - -[curl] -; A default value for the CURLOPT_CAINFO option. This is required to be an -; absolute path. -;curl.cainfo = - -[openssl] -; The location of a Certificate Authority (CA) file on the local filesystem -; to use when verifying the identity of SSL/TLS peers. Most users should -; not specify a value for this directive as PHP will attempt to use the -; OS-managed cert stores in its absence. If specified, this value may still -; be overridden on a per-stream basis via the "cafile" SSL stream context -; option. -;openssl.cafile= - -; If openssl.cafile is not specified or if the CA file is not found, the -; directory pointed to by openssl.capath is searched for a suitable -; certificate. This value must be a correctly hashed certificate directory. -; Most users should not specify a value for this directive as PHP will -; attempt to use the OS-managed cert stores in its absence. If specified, -; this value may still be overridden on a per-stream basis via the "capath" -; SSL stream context option. -;openssl.capath= - -; Local Variables: -; tab-width: 4 -; End: - -[XDebug] -xdebug.mode=debug -xdebug.remote_handler = "dbgp" -; Set to host.docker.internal on Mac and Windows, otherwise, set to host real ip -xdebug.client_host = host.docker.internal -;xdebug.remote_port = 9000 -xdebug.remote_log = /var/log/php/xdebug.log - -SERVER_ENV=develop - -yaf.use_spl_autoload=1 - -[xhprof] -;xhprof.output_dir = /var/log/php/xhprof.log \ No newline at end of file diff --git a/php8/8.1.31/conf/php-fpm.conf b/php8/8.1.31/conf/php-fpm.conf deleted file mode 100644 index 131835891..000000000 --- a/php8/8.1.31/conf/php-fpm.conf +++ /dev/null @@ -1,423 +0,0 @@ -; Start a new pool named 'www'. -; the variable $pool can be used in any directive and will be replaced by the -; pool name ('www' here) -[www] - -; Per pool prefix -; It only applies on the following directives: -; - 'access.log' -; - 'slowlog' -; - 'listen' (unixsocket) -; - 'chroot' -; - 'chdir' -; - 'php_values' -; - 'php_admin_values' -; When not set, the global prefix (or NONE) applies instead. -; Note: This directive can also be relative to the global prefix. -; Default Value: none -;prefix = /path/to/pools/$pool - -; Unix user/group of processes -; Note: The user is mandatory. If the group is not set, the default user's group -; will be used. -user = www-data -group = www-data - -; The address on which to accept FastCGI requests. -; Valid syntaxes are: -; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on -; a specific port; -; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on -; a specific port; -; 'port' - to listen on a TCP socket to all addresses -; (IPv6 and IPv4-mapped) on a specific port; -; '/path/to/unix/socket' - to listen on a unix socket. -; Note: This value is mandatory. -listen = 127.0.0.1:9000 - -; Set listen(2) backlog. -; Default Value: 511 (-1 on FreeBSD and OpenBSD) -;listen.backlog = 511 - -; Set permissions for unix socket, if one is used. In Linux, read/write -; permissions must be set in order to allow connections from a web server. Many -; BSD-derived systems allow connections regardless of permissions. -; Default Values: user and group are set as the running user -; mode is set to 0660 -;listen.owner = www-data -;listen.group = www-data -;listen.mode = 0660 -; When POSIX Access Control Lists are supported you can set them using -; these options, value is a comma separated list of user/group names. -; When set, listen.owner and listen.group are ignored -;listen.acl_users = -;listen.acl_groups = - -; List of addresses (IPv4/IPv6) of FastCGI clients which are allowed to connect. -; Equivalent to the FCGI_WEB_SERVER_ADDRS environment variable in the original -; PHP FCGI (5.2.2+). Makes sense only with a tcp listening socket. Each address -; must be separated by a comma. If this value is left blank, connections will be -; accepted from any ip address. -; Default Value: any -;listen.allowed_clients = 127.0.0.1 - -; Specify the nice(2) priority to apply to the pool processes (only if set) -; The value can vary from -19 (highest priority) to 20 (lower priority) -; Note: - It will only work if the FPM master process is launched as root -; - The pool processes will inherit the master process priority -; unless it specified otherwise -; Default Value: no set -; process.priority = -19 - -; Set the process dumpable flag (PR_SET_DUMPABLE prctl) even if the process user -; or group is differrent than the master process user. It allows to create process -; core dump and ptrace the process for the pool user. -; Default Value: no -; process.dumpable = yes - -; Choose how the process manager will control the number of child processes. -; Possible Values: -; static - a fixed number (pm.max_children) of child processes; -; dynamic - the number of child processes are set dynamically based on the -; following directives. With this process management, there will be -; always at least 1 children. -; pm.max_children - the maximum number of children that can -; be alive at the same time. -; pm.start_servers - the number of children created on startup. -; pm.min_spare_servers - the minimum number of children in 'idle' -; state (waiting to process). If the number -; of 'idle' processes is less than this -; number then some children will be created. -; pm.max_spare_servers - the maximum number of children in 'idle' -; state (waiting to process). If the number -; of 'idle' processes is greater than this -; number then some children will be killed. -; ondemand - no children are created at startup. Children will be forked when -; new requests will connect. The following parameter are used: -; pm.max_children - the maximum number of children that -; can be alive at the same time. -; pm.process_idle_timeout - The number of seconds after which -; an idle process will be killed. -; Note: This value is mandatory. -pm = dynamic - -; The number of child processes to be created when pm is set to 'static' and the -; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'. -; This value sets the limit on the number of simultaneous requests that will be -; served. Equivalent to the ApacheMaxClients directive with mpm_prefork. -; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP -; CGI. The below defaults are based on a server without much resources. Don't -; forget to tweak pm.* to fit your needs. -; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand' -; Note: This value is mandatory. -pm.max_children = 10 - -; The number of child processes created on startup. -; Note: Used only when pm is set to 'dynamic' -; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2 -pm.start_servers = 2 - -; The desired minimum number of idle server processes. -; Note: Used only when pm is set to 'dynamic' -; Note: Mandatory when pm is set to 'dynamic' -pm.min_spare_servers = 1 - -; The desired maximum number of idle server processes. -; Note: Used only when pm is set to 'dynamic' -; Note: Mandatory when pm is set to 'dynamic' -pm.max_spare_servers = 3 - -; The number of seconds after which an idle process will be killed. -; Note: Used only when pm is set to 'ondemand' -; Default Value: 10s -;pm.process_idle_timeout = 10s; - -; The number of requests each child process should execute before respawning. -; This can be useful to work around memory leaks in 3rd party libraries. For -; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS. -; Default Value: 0 -;pm.max_requests = 500 - -; The URI to view the FPM status page. If this value is not set, no URI will be -; recognized as a status page. It shows the following informations: -; pool - the name of the pool; -; process manager - static, dynamic or ondemand; -; start time - the date and time FPM has started; -; start since - number of seconds since FPM has started; -; accepted conn - the number of request accepted by the pool; -; listen queue - the number of request in the queue of pending -; connections (see backlog in listen(2)); -; max listen queue - the maximum number of requests in the queue -; of pending connections since FPM has started; -; listen queue len - the size of the socket queue of pending connections; -; idle processes - the number of idle processes; -; active processes - the number of active processes; -; total processes - the number of idle + active processes; -; max active processes - the maximum number of active processes since FPM -; has started; -; max children reached - number of times, the process limit has been reached, -; when pm tries to start more children (works only for -; pm 'dynamic' and 'ondemand'); -; Value are updated in real time. -; Example output: -; pool: www -; process manager: static -; start time: 01/Jul/2011:17:53:49 +0200 -; start since: 62636 -; accepted conn: 190460 -; listen queue: 0 -; max listen queue: 1 -; listen queue len: 42 -; idle processes: 4 -; active processes: 11 -; total processes: 15 -; max active processes: 12 -; max children reached: 0 -; -; By default the status page output is formatted as text/plain. Passing either -; 'html', 'xml' or 'json' in the query string will return the corresponding -; output syntax. Example: -; http://www.foo.bar/status -; http://www.foo.bar/status?json -; http://www.foo.bar/status?html -; http://www.foo.bar/status?xml -; -; By default the status page only outputs short status. Passing 'full' in the -; query string will also return status for each pool process. -; Example: -; http://www.foo.bar/status?full -; http://www.foo.bar/status?json&full -; http://www.foo.bar/status?html&full -; http://www.foo.bar/status?xml&full -; The Full status returns for each process: -; pid - the PID of the process; -; state - the state of the process (Idle, Running, ...); -; start time - the date and time the process has started; -; start since - the number of seconds since the process has started; -; requests - the number of requests the process has served; -; request duration - the duration in µs of the requests; -; request method - the request method (GET, POST, ...); -; request URI - the request URI with the query string; -; content length - the content length of the request (only with POST); -; user - the user (PHP_AUTH_USER) (or '-' if not set); -; script - the main script called (or '-' if not set); -; last request cpu - the %cpu the last request consumed -; it's always 0 if the process is not in Idle state -; because CPU calculation is done when the request -; processing has terminated; -; last request memory - the max amount of memory the last request consumed -; it's always 0 if the process is not in Idle state -; because memory calculation is done when the request -; processing has terminated; -; If the process is in Idle state, then informations are related to the -; last request the process has served. Otherwise informations are related to -; the current request being served. -; Example output: -; ************************ -; pid: 31330 -; state: Running -; start time: 01/Jul/2011:17:53:49 +0200 -; start since: 63087 -; requests: 12808 -; request duration: 1250261 -; request method: GET -; request URI: /test_mem.php?N=10000 -; content length: 0 -; user: - -; script: /home/fat/web/docs/php/test_mem.php -; last request cpu: 0.00 -; last request memory: 0 -; -; Note: There is a real-time FPM status monitoring sample web page available -; It's available in: /usr/local/share/php/fpm/status.html -; -; Note: The value must start with a leading slash (/). The value can be -; anything, but it may not be a good idea to use the .php extension or it -; may conflict with a real PHP file. -; Default Value: not set -;pm.status_path = /status - -; The ping URI to call the monitoring page of FPM. If this value is not set, no -; URI will be recognized as a ping page. This could be used to test from outside -; that FPM is alive and responding, or to -; - create a graph of FPM availability (rrd or such); -; - remove a server from a group if it is not responding (load balancing); -; - trigger alerts for the operating team (24/7). -; Note: The value must start with a leading slash (/). The value can be -; anything, but it may not be a good idea to use the .php extension or it -; may conflict with a real PHP file. -; Default Value: not set -;ping.path = /ping - -; This directive may be used to customize the response of a ping request. The -; response is formatted as text/plain with a 200 response code. -; Default Value: pong -;ping.response = pong - -; The access log file -; Default: not set -;access.log = log/$pool.access.log - -; The access log format. -; The following syntax is allowed -; %%: the '%' character -; %C: %CPU used by the request -; it can accept the following format: -; - %{user}C for user CPU only -; - %{system}C for system CPU only -; - %{total}C for user + system CPU (default) -; %d: time taken to serve the request -; it can accept the following format: -; - %{seconds}d (default) -; - %{miliseconds}d -; - %{mili}d -; - %{microseconds}d -; - %{micro}d -; %e: an environment variable (same as $_ENV or $_SERVER) -; it must be associated with embraces to specify the name of the env -; variable. Some exemples: -; - server specifics like: %{REQUEST_METHOD}e or %{SERVER_PROTOCOL}e -; - HTTP headers like: %{HTTP_HOST}e or %{HTTP_USER_AGENT}e -; %f: script filename -; %l: content-length of the request (for POST request only) -; %m: request method -; %M: peak of memory allocated by PHP -; it can accept the following format: -; - %{bytes}M (default) -; - %{kilobytes}M -; - %{kilo}M -; - %{megabytes}M -; - %{mega}M -; %n: pool name -; %o: output header -; it must be associated with embraces to specify the name of the header: -; - %{Content-Type}o -; - %{X-Powered-By}o -; - %{Transfert-Encoding}o -; - .... -; %p: PID of the child that serviced the request -; %P: PID of the parent of the child that serviced the request -; %q: the query string -; %Q: the '?' character if query string exists -; %r: the request URI (without the query string, see %q and %Q) -; %R: remote IP address -; %s: status (response code) -; %t: server time the request was received -; it can accept a strftime(3) format: -; %d/%b/%Y:%H:%M:%S %z (default) -; The strftime(3) format must be encapsuled in a %{}t tag -; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t -; %T: time the log has been written (the request has finished) -; it can accept a strftime(3) format: -; %d/%b/%Y:%H:%M:%S %z (default) -; The strftime(3) format must be encapsuled in a %{}t tag -; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t -; %u: remote user -; -; Default: "%R - %u %t \"%m %r\" %s" -;access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%" - -; The log file for slow requests -; Default Value: not set -; Note: slowlog is mandatory if request_slowlog_timeout is set -slowlog = /var/log/php/fpm.slow.log - -; The timeout for serving a single request after which a PHP backtrace will be -; dumped to the 'slowlog' file. A value of '0s' means 'off'. -; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) -; Default Value: 0 -request_slowlog_timeout = 3 - -; Depth of slow log stack trace. -; Default Value: 20 -;request_slowlog_trace_depth = 20 - -; The timeout for serving a single request after which the worker process will -; be killed. This option should be used when the 'max_execution_time' ini option -; does not stop script execution for some reason. A value of '0' means 'off'. -; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) -; Default Value: 0 -;request_terminate_timeout = 0 - -; Set open file descriptor rlimit. -; Default Value: system defined value -;rlimit_files = 1024 - -; Set max core size rlimit. -; Possible Values: 'unlimited' or an integer greater or equal to 0 -; Default Value: system defined value -;rlimit_core = 0 - -; Chroot to this directory at the start. This value must be defined as an -; absolute path. When this value is not set, chroot is not used. -; Note: you can prefix with '$prefix' to chroot to the pool prefix or one -; of its subdirectories. If the pool prefix is not set, the global prefix -; will be used instead. -; Note: chrooting is a great security feature and should be used whenever -; possible. However, all PHP paths will be relative to the chroot -; (error_log, sessions.save_path, ...). -; Default Value: not set -;chroot = - -; Chdir to this directory at the start. -; Note: relative path can be used. -; Default Value: current directory or / when chroot -;chdir = /var/www - -; Redirect worker stdout and stderr into main error log. If not set, stdout and -; stderr will be redirected to /dev/null according to FastCGI specs. -; Note: on highloaded environement, this can cause some delay in the page -; process time (several ms). -; Default Value: no -catch_workers_output = yes - -; Clear environment in FPM workers -; Prevents arbitrary environment variables from reaching FPM worker processes -; by clearing the environment in workers before env vars specified in this -; pool configuration are added. -; Setting to "no" will make all environment variables available to PHP code -; via getenv(), $_ENV and $_SERVER. -; Default Value: yes -;clear_env = no - -; Limits the extensions of the main script FPM will allow to parse. This can -; prevent configuration mistakes on the web server side. You should only limit -; FPM to .php extensions to prevent malicious users to use other extensions to -; execute php code. -; Note: set an empty value to allow all extensions. -; Default Value: .php -;security.limit_extensions = .php .php3 .php4 .php5 .php7 - -; Pass environment variables like LD_LIBRARY_PATH. All $VARIABLEs are taken from -; the current environment. -; Default Value: clean env -;env[HOSTNAME] = $HOSTNAME -;env[PATH] = /usr/local/bin:/usr/bin:/bin -;env[TMP] = /tmp -;env[TMPDIR] = /tmp -;env[TEMP] = /tmp - -; Additional php.ini defines, specific to this pool of workers. These settings -; overwrite the values previously defined in the php.ini. The directives are the -; same as the PHP SAPI: -; php_value/php_flag - you can set classic ini defines which can -; be overwritten from PHP call 'ini_set'. -; php_admin_value/php_admin_flag - these directives won't be overwritten by -; PHP call 'ini_set' -; For php_*flag, valid values are on, off, 1, 0, true, false, yes or no. - -; Defining 'extension' will load the corresponding shared extension from -; extension_dir. Defining 'disable_functions' or 'disable_classes' will not -; overwrite previously defined php.ini values, but will append the new value -; instead. - -; Note: path INI options can be relative and will be expanded with the prefix -; (pool, global or /usr/local) - -; Default Value: nothing is defined by default except the values in php.ini and -; specified at startup with the -d argument -;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com -;php_flag[display_errors] = off -;php_admin_value[error_log] = /var/log/fpm-php.www.log -;php_admin_flag[log_errors] = on -;php_admin_value[memory_limit] = 32M diff --git a/php8/8.1.31/conf/php.ini b/php8/8.1.31/conf/php.ini deleted file mode 100644 index b6b0aee69..000000000 --- a/php8/8.1.31/conf/php.ini +++ /dev/null @@ -1,1933 +0,0 @@ -[PHP] - -;;;;;;;;;;;;;;;;;;; -; About php.ini ; -;;;;;;;;;;;;;;;;;;; -; PHP's initialization file, generally called php.ini, is responsible for -; configuring many of the aspects of PHP's behavior. - -; PHP attempts to find and load this configuration from a number of locations. -; The following is a summary of its search order: -; 1. SAPI module specific location. -; 2. The PHPRC environment variable. (As of PHP 5.2.0) -; 3. A number of predefined registry keys on Windows (As of PHP 5.2.0) -; 4. Current working directory (except CLI) -; 5. The web server's directory (for SAPI modules), or directory of PHP -; (otherwise in Windows) -; 6. The directory from the --with-config-file-path compile time option, or the -; Windows directory (C:\windows or C:\winnt) -; See the PHP docs for more specific information. -; http://php.net/configuration.file - -; The syntax of the file is extremely simple. Whitespace and lines -; beginning with a semicolon are silently ignored (as you probably guessed). -; Section headers (e.g. [Foo]) are also silently ignored, even though -; they might mean something in the future. - -; Directives following the section heading [PATH=/www/mysite] only -; apply to PHP files in the /www/mysite directory. Directives -; following the section heading [HOST=www.example.com] only apply to -; PHP files served from www.example.com. Directives set in these -; special sections cannot be overridden by user-defined INI files or -; at runtime. Currently, [PATH=] and [HOST=] sections only work under -; CGI/FastCGI. -; http://php.net/ini.sections - -; Directives are specified using the following syntax: -; directive = value -; Directive names are *case sensitive* - foo=bar is different from FOO=bar. -; Directives are variables used to configure PHP or PHP extensions. -; There is no name validation. If PHP can't find an expected -; directive because it is not set or is mistyped, a default value will be used. - -; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one -; of the INI constants (On, Off, True, False, Yes, No and None) or an expression -; (e.g. E_ALL & ~E_NOTICE), a quoted string ("bar"), or a reference to a -; previously set variable or directive (e.g. ${foo}) - -; Expressions in the INI file are limited to bitwise operators and parentheses: -; | bitwise OR -; ^ bitwise XOR -; & bitwise AND -; ~ bitwise NOT -; ! boolean NOT - -; Boolean flags can be turned on using the values 1, On, True or Yes. -; They can be turned off using the values 0, Off, False or No. - -; An empty string can be denoted by simply not writing anything after the equal -; sign, or by using the None keyword: - -; foo = ; sets foo to an empty string -; foo = None ; sets foo to an empty string -; foo = "None" ; sets foo to the string 'None' - -; If you use constants in your value, and these constants belong to a -; dynamically loaded extension (either a PHP extension or a Zend extension), -; you may only use these constants *after* the line that loads the extension. - -;;;;;;;;;;;;;;;;;;; -; About this file ; -;;;;;;;;;;;;;;;;;;; -; PHP comes packaged with two INI files. One that is recommended to be used -; in production environments and one that is recommended to be used in -; development environments. - -; php.ini-production contains settings which hold security, performance and -; best practices at its core. But please be aware, these settings may break -; compatibility with older or less security conscience applications. We -; recommending using the production ini in production and testing environments. - -; php.ini-development is very similar to its production variant, except it is -; much more verbose when it comes to errors. We recommend using the -; development version only in development environments, as errors shown to -; application users can inadvertently leak otherwise secure information. - -; This is php.ini-production INI file. - -;;;;;;;;;;;;;;;;;;; -; Quick Reference ; -;;;;;;;;;;;;;;;;;;; -; The following are all the settings which are different in either the production -; or development versions of the INIs with respect to PHP's default behavior. -; Please see the actual settings later in the document for more details as to why -; we recommend these changes in PHP's behavior. - -; display_errors -; Default Value: On -; Development Value: On -; Production Value: Off - -; display_startup_errors -; Default Value: Off -; Development Value: On -; Production Value: Off - -; error_reporting -; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT - -; html_errors -; Default Value: On -; Development Value: On -; Production value: On - -; log_errors -; Default Value: Off -; Development Value: On -; Production Value: On - -; max_input_time -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) - -; output_buffering -; Default Value: Off -; Development Value: 4096 -; Production Value: 4096 - -; register_argc_argv -; Default Value: On -; Development Value: Off -; Production Value: Off - -; request_order -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" - -; session.gc_divisor -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 - -; session.sid_bits_per_character -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 - -; short_open_tag -; Default Value: On -; Development Value: Off -; Production Value: Off - -; track_errors -; Default Value: Off -; Development Value: On -; Production Value: Off - -; variables_order -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS" - -;;;;;;;;;;;;;;;;;;;; -; php.ini Options ; -;;;;;;;;;;;;;;;;;;;; -; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini" -;user_ini.filename = ".user.ini" - -; To disable this feature set this option to empty value -;user_ini.filename = - -; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes) -;user_ini.cache_ttl = 300 - -;;;;;;;;;;;;;;;;;;;; -; Language Options ; -;;;;;;;;;;;;;;;;;;;; - -; Enable the PHP scripting language engine under Apache. -; http://php.net/engine -engine = On - -; This directive determines whether or not PHP will recognize code between -; tags as PHP source which should be processed as such. It is -; generally recommended that should be used and that this feature -; should be disabled, as enabling it may result in issues when generating XML -; documents, however this remains supported for backward compatibility reasons. -; Note that this directive does not control the would work. -; http://php.net/syntax-highlighting -;highlight.string = #DD0000 -;highlight.comment = #FF9900 -;highlight.keyword = #007700 -;highlight.default = #0000BB -;highlight.html = #000000 - -; If enabled, the request will be allowed to complete even if the user aborts -; the request. Consider enabling it if executing long requests, which may end up -; being interrupted by the user or a browser timing out. PHP's default behavior -; is to disable this feature. -; http://php.net/ignore-user-abort -;ignore_user_abort = On - -; Determines the size of the realpath cache to be used by PHP. This value should -; be increased on systems where PHP opens many files to reflect the quantity of -; the file operations performed. -; http://php.net/realpath-cache-size -;realpath_cache_size = 4096k - -; Duration of time, in seconds for which to cache realpath information for a given -; file or directory. For systems with rarely changing files, consider increasing this -; value. -; http://php.net/realpath-cache-ttl -;realpath_cache_ttl = 120 - -; Enables or disables the circular reference collector. -; http://php.net/zend.enable-gc -zend.enable_gc = On - -; If enabled, scripts may be written in encodings that are incompatible with -; the scanner. CP936, Big5, CP949 and Shift_JIS are the examples of such -; encodings. To use this feature, mbstring extension must be enabled. -; Default: Off -;zend.multibyte = Off - -; Allows to set the default encoding for the scripts. This value will be used -; unless "declare(encoding=...)" directive appears at the top of the script. -; Only affects if zend.multibyte is set. -; Default: "" -;zend.script_encoding = - -;;;;;;;;;;;;;;;;; -; Miscellaneous ; -;;;;;;;;;;;;;;;;; - -; Decides whether PHP may expose the fact that it is installed on the server -; (e.g. by adding its signature to the Web server header). It is no security -; threat in any way, but it makes it possible to determine whether you use PHP -; on your server or not. -; http://php.net/expose-php -expose_php = Off - -;;;;;;;;;;;;;;;;;;; -; Resource Limits ; -;;;;;;;;;;;;;;;;;;; - -; Maximum execution time of each script, in seconds -; http://php.net/max-execution-time -; Note: This directive is hardcoded to 0 for the CLI SAPI -max_execution_time = 30 - -; Maximum amount of time each script may spend parsing request data. It's a good -; idea to limit this time on productions servers in order to eliminate unexpectedly -; long running scripts. -; Note: This directive is hardcoded to -1 for the CLI SAPI -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) -; http://php.net/max-input-time -max_input_time = 60 - -; Maximum input variable nesting level -; http://php.net/max-input-nesting-level -;max_input_nesting_level = 64 - -; How many GET/POST/COOKIE input variables may be accepted -; max_input_vars = 1000 - -; Maximum amount of memory a script may consume (128MB) -; http://php.net/memory-limit -memory_limit = 256M - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; Error handling and logging ; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -; This directive informs PHP of which errors, warnings and notices you would like -; it to take action for. The recommended way of setting values for this -; directive is through the use of the error level constants and bitwise -; operators. The error level constants are below here for convenience as well as -; some common settings and their meanings. -; By default, PHP is set to take action on all errors, notices and warnings EXCEPT -; those related to E_NOTICE and E_STRICT, which together cover best practices and -; recommended coding standards in PHP. For performance reasons, this is the -; recommend error reporting setting. Your production server shouldn't be wasting -; resources complaining about best practices and coding standards. That's what -; development servers and development settings are for. -; Note: The php.ini-development file has this setting as E_ALL. This -; means it pretty much reports everything which is exactly what you want during -; development and early testing. -; -; Error Level Constants: -; E_ALL - All errors and warnings (includes E_STRICT as of PHP 5.4.0) -; E_ERROR - fatal run-time errors -; E_RECOVERABLE_ERROR - almost fatal run-time errors -; E_WARNING - run-time warnings (non-fatal errors) -; E_PARSE - compile-time parse errors -; E_NOTICE - run-time notices (these are warnings which often result -; from a bug in your code, but it's possible that it was -; intentional (e.g., using an uninitialized variable and -; relying on the fact it is automatically initialized to an -; empty string) -; E_STRICT - run-time notices, enable to have PHP suggest changes -; to your code which will ensure the best interoperability -; and forward compatibility of your code -; E_CORE_ERROR - fatal errors that occur during PHP's initial startup -; E_CORE_WARNING - warnings (non-fatal errors) that occur during PHP's -; initial startup -; E_COMPILE_ERROR - fatal compile-time errors -; E_COMPILE_WARNING - compile-time warnings (non-fatal errors) -; E_USER_ERROR - user-generated error message -; E_USER_WARNING - user-generated warning message -; E_USER_NOTICE - user-generated notice message -; E_DEPRECATED - warn about code that will not work in future versions -; of PHP -; E_USER_DEPRECATED - user-generated deprecation warnings -; -; Common Values: -; E_ALL (Show all errors, warnings and notices including coding standards.) -; E_ALL & ~E_NOTICE (Show all errors, except for notices) -; E_ALL & ~E_NOTICE & ~E_STRICT (Show all errors, except for notices and coding standards warnings.) -; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors) -; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT -; http://php.net/error-reporting -error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT - -; This directive controls whether or not and where PHP will output errors, -; notices and warnings too. Error output is very useful during development, but -; it could be very dangerous in production environments. Depending on the code -; which is triggering the error, sensitive information could potentially leak -; out of your application such as database usernames and passwords or worse. -; For production environments, we recommend logging errors rather than -; sending them to STDOUT. -; Possible Values: -; Off = Do not display any errors -; stderr = Display errors to STDERR (affects only CGI/CLI binaries!) -; On or stdout = Display errors to STDOUT -; Default Value: On -; Development Value: On -; Production Value: Off -; http://php.net/display-errors -display_errors = Off - -; The display of errors which occur during PHP's startup sequence are handled -; separately from display_errors. PHP's default behavior is to suppress those -; errors from clients. Turning the display of startup errors on can be useful in -; debugging configuration problems. We strongly recommend you -; set this to 'off' for production servers. -; Default Value: Off -; Development Value: On -; Production Value: Off -; http://php.net/display-startup-errors -display_startup_errors = Off - -; Besides displaying errors, PHP can also log errors to locations such as a -; server-specific log, STDERR, or a location specified by the error_log -; directive found below. While errors should not be displayed on productions -; servers they should still be monitored and logging is a great way to do that. -; Default Value: Off -; Development Value: On -; Production Value: On -; http://php.net/log-errors -log_errors = On - -; Set maximum length of log_errors. In error_log information about the source is -; added. The default is 1024 and 0 allows to not apply any maximum length at all. -; http://php.net/log-errors-max-len -log_errors_max_len = 1024 - -; Do not log repeated messages. Repeated errors must occur in same file on same -; line unless ignore_repeated_source is set true. -; http://php.net/ignore-repeated-errors -ignore_repeated_errors = Off - -; Ignore source of message when ignoring repeated messages. When this setting -; is On you will not log errors with repeated messages from different files or -; source lines. -; http://php.net/ignore-repeated-source -ignore_repeated_source = Off - -; If this parameter is set to Off, then memory leaks will not be shown (on -; stdout or in the log). This has only effect in a debug compile, and if -; error reporting includes E_WARNING in the allowed list -; http://php.net/report-memleaks -report_memleaks = On - -; This setting is on by default. -;report_zend_debug = 0 - -; Store the last error/warning message in $php_errormsg (boolean). Setting this value -; to On can assist in debugging and is appropriate for development servers. It should -; however be disabled on production servers. -; Default Value: Off -; Development Value: On -; Production Value: Off -; http://php.net/track-errors -track_errors = Off - -; Turn off normal error reporting and emit XML-RPC error XML -; http://php.net/xmlrpc-errors -;xmlrpc_errors = 0 - -; An XML-RPC faultCode -;xmlrpc_error_number = 0 - -; When PHP displays or logs an error, it has the capability of formatting the -; error message as HTML for easier reading. This directive controls whether -; the error message is formatted as HTML or not. -; Note: This directive is hardcoded to Off for the CLI SAPI -; Default Value: On -; Development Value: On -; Production value: On -; http://php.net/html-errors -html_errors = On - -; If html_errors is set to On *and* docref_root is not empty, then PHP -; produces clickable error messages that direct to a page describing the error -; or function causing the error in detail. -; You can download a copy of the PHP manual from http://php.net/docs -; and change docref_root to the base URL of your local copy including the -; leading '/'. You must also specify the file extension being used including -; the dot. PHP's default behavior is to leave these settings empty, in which -; case no links to documentation are generated. -; Note: Never use this feature for production boxes. -; http://php.net/docref-root -; Examples -;docref_root = "/phpmanual/" - -; http://php.net/docref-ext -;docref_ext = .html - -; String to output before an error message. PHP's default behavior is to leave -; this setting blank. -; http://php.net/error-prepend-string -; Example: -;error_prepend_string = "" - -; String to output after an error message. PHP's default behavior is to leave -; this setting blank. -; http://php.net/error-append-string -; Example: -;error_append_string = "" - -; Log errors to specified file. PHP's default behavior is to leave this value -; empty. -; http://php.net/error-log -; Example: -;error_log = php_errors.log -; Log errors to syslog (Event Log on Windows). -error_log = /var/log/php/php.error.log - -;windows.show_crt_warning -; Default value: 0 -; Development value: 0 -; Production value: 0 - -;;;;;;;;;;;;;;;;; -; Data Handling ; -;;;;;;;;;;;;;;;;; - -; The separator used in PHP generated URLs to separate arguments. -; PHP's default setting is "&". -; http://php.net/arg-separator.output -; Example: -;arg_separator.output = "&" - -; List of separator(s) used by PHP to parse input URLs into variables. -; PHP's default setting is "&". -; NOTE: Every character in this directive is considered as separator! -; http://php.net/arg-separator.input -; Example: -;arg_separator.input = ";&" - -; This directive determines which super global arrays are registered when PHP -; starts up. G,P,C,E & S are abbreviations for the following respective super -; globals: GET, POST, COOKIE, ENV and SERVER. There is a performance penalty -; paid for the registration of these arrays and because ENV is not as commonly -; used as the others, ENV is not recommended on productions servers. You -; can still get access to the environment variables through getenv() should you -; need to. -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS"; -; http://php.net/variables-order -variables_order = "GPCS" - -; This directive determines which super global data (G,P & C) should be -; registered into the super global array REQUEST. If so, it also determines -; the order in which that data is registered. The values for this directive -; are specified in the same manner as the variables_order directive, -; EXCEPT one. Leaving this value empty will cause PHP to use the value set -; in the variables_order directive. It does not mean it will leave the super -; globals array REQUEST empty. -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" -; http://php.net/request-order -request_order = "GP" - -; This directive determines whether PHP registers $argv & $argc each time it -; runs. $argv contains an array of all the arguments passed to PHP when a script -; is invoked. $argc contains an integer representing the number of arguments -; that were passed when the script was invoked. These arrays are extremely -; useful when running scripts from the command line. When this directive is -; enabled, registering these variables consumes CPU cycles and memory each time -; a script is executed. For performance reasons, this feature should be disabled -; on production servers. -; Note: This directive is hardcoded to On for the CLI SAPI -; Default Value: On -; Development Value: Off -; Production Value: Off -; http://php.net/register-argc-argv -register_argc_argv = Off - -; When enabled, the ENV, REQUEST and SERVER variables are created when they're -; first used (Just In Time) instead of when the script starts. If these -; variables are not used within a script, having this directive on will result -; in a performance gain. The PHP directive register_argc_argv must be disabled -; for this directive to have any affect. -; http://php.net/auto-globals-jit -auto_globals_jit = On - -; Whether PHP will read the POST data. -; This option is enabled by default. -; Most likely, you won't want to disable this option globally. It causes $_POST -; and $_FILES to always be empty; the only way you will be able to read the -; POST data will be through the php://input stream wrapper. This can be useful -; to proxy requests or to process the POST data in a memory efficient fashion. -; http://php.net/enable-post-data-reading -;enable_post_data_reading = Off - -; Maximum size of POST data that PHP will accept. -; Its value may be 0 to disable the limit. It is ignored if POST data reading -; is disabled through enable_post_data_reading. -; http://php.net/post-max-size -post_max_size = 100M - -; Automatically add files before PHP document. -; http://php.net/auto-prepend-file -auto_prepend_file = - -; Automatically add files after PHP document. -; http://php.net/auto-append-file -auto_append_file = - -; By default, PHP will output a media type using the Content-Type header. To -; disable this, simply set it to be empty. -; -; PHP's built-in default media type is set to text/html. -; http://php.net/default-mimetype -default_mimetype = "text/html" - -; PHP's default character set is set to UTF-8. -; http://php.net/default-charset -default_charset = "UTF-8" - -; PHP internal character encoding is set to empty. -; If empty, default_charset is used. -; http://php.net/internal-encoding -;internal_encoding = - -; PHP input character encoding is set to empty. -; If empty, default_charset is used. -; http://php.net/input-encoding -;input_encoding = - -; PHP output character encoding is set to empty. -; If empty, default_charset is used. -; See also output_buffer. -; http://php.net/output-encoding -;output_encoding = - -;;;;;;;;;;;;;;;;;;;;;;;;; -; Paths and Directories ; -;;;;;;;;;;;;;;;;;;;;;;;;; - -; UNIX: "/path1:/path2" -;include_path = ".:/php/includes" -; -; Windows: "\path1;\path2" -;include_path = ".;c:\php\includes" -; -; PHP's default setting for include_path is ".;/path/to/php/pear" -; http://php.net/include-path - -; The root of the PHP pages, used only if nonempty. -; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root -; if you are running php as a CGI under any web server (other than IIS) -; see documentation for security issues. The alternate is to use the -; cgi.force_redirect configuration below -; http://php.net/doc-root -doc_root = - -; The directory under which PHP opens the script using /~username used only -; if nonempty. -; http://php.net/user-dir -user_dir = - -; Directory in which the loadable extensions (modules) reside. -; http://php.net/extension-dir -; extension_dir = "./" -; On windows: -; extension_dir = "ext" - -; Directory where the temporary files should be placed. -; Defaults to the system default (see sys_get_temp_dir) -; sys_temp_dir = "/tmp" - -; Whether or not to enable the dl() function. The dl() function does NOT work -; properly in multithreaded servers, such as IIS or Zeus, and is automatically -; disabled on them. -; http://php.net/enable-dl -enable_dl = Off - -; cgi.force_redirect is necessary to provide security running PHP as a CGI under -; most web servers. Left undefined, PHP turns this on by default. You can -; turn it off here AT YOUR OWN RISK -; **You CAN safely turn this off for IIS, in fact, you MUST.** -; http://php.net/cgi.force-redirect -;cgi.force_redirect = 1 - -; if cgi.nph is enabled it will force cgi to always sent Status: 200 with -; every request. PHP's default behavior is to disable this feature. -;cgi.nph = 1 - -; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape -; (iPlanet) web servers, you MAY need to set an environment variable name that PHP -; will look for to know it is OK to continue execution. Setting this variable MAY -; cause security issues, KNOW WHAT YOU ARE DOING FIRST. -; http://php.net/cgi.redirect-status-env -;cgi.redirect_status_env = - -; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's -; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok -; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting -; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting -; of zero causes PHP to behave as before. Default is 1. You should fix your scripts -; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. -; http://php.net/cgi.fix-pathinfo -;cgi.fix_pathinfo=1 - -; if cgi.discard_path is enabled, the PHP CGI binary can safely be placed outside -; of the web tree and people will not be able to circumvent .htaccess security. -; http://php.net/cgi.dicard-path -;cgi.discard_path=1 - -; FastCGI under IIS (on WINNT based OS) supports the ability to impersonate -; security tokens of the calling client. This allows IIS to define the -; security context that the request runs under. mod_fastcgi under Apache -; does not currently support this feature (03/17/2002) -; Set to 1 if running under IIS. Default is zero. -; http://php.net/fastcgi.impersonate -;fastcgi.impersonate = 1 - -; Disable logging through FastCGI connection. PHP's default behavior is to enable -; this feature. -;fastcgi.logging = 0 - -; cgi.rfc2616_headers configuration option tells PHP what type of headers to -; use when sending HTTP response code. If set to 0, PHP sends Status: header that -; is supported by Apache. When this option is set to 1, PHP will send -; RFC2616 compliant header. -; Default is zero. -; http://php.net/cgi.rfc2616-headers -;cgi.rfc2616_headers = 0 - -; cgi.check_shebang_line controls whether CGI PHP checks for line starting with #! -; (shebang) at the top of the running script. This line might be needed if the -; script support running both as stand-alone script and via PHP CGI<. PHP in CGI -; mode skips this line and ignores its content if this directive is turned on. -; http://php.net/cgi.check-shebang-line -;cgi.check_shebang_line=1 - -;;;;;;;;;;;;;;;; -; File Uploads ; -;;;;;;;;;;;;;;;; - -; Whether to allow HTTP file uploads. -; http://php.net/file-uploads -file_uploads = On - -; Temporary directory for HTTP uploaded files (will use system default if not -; specified). -; http://php.net/upload-tmp-dir -;upload_tmp_dir = - -; Maximum allowed size for uploaded files. -; http://php.net/upload-max-filesize -upload_max_filesize = 50M - -; Maximum number of files that can be uploaded via a single request -max_file_uploads = 20 - -;;;;;;;;;;;;;;;;;; -; Fopen wrappers ; -;;;;;;;;;;;;;;;;;; - -; Whether to allow the treatment of URLs (like http:// or ftp://) as files. -; http://php.net/allow-url-fopen -allow_url_fopen = On - -; Whether to allow include/require to open URLs (like http:// or ftp://) as files. -; http://php.net/allow-url-include -allow_url_include = Off - -; Define the anonymous ftp password (your email address). PHP's default setting -; for this is empty. -; http://php.net/from -;from="john@doe.com" - -; Define the User-Agent string. PHP's default setting for this is empty. -; http://php.net/user-agent -;user_agent="PHP" - -; Default timeout for socket based streams (seconds) -; http://php.net/default-socket-timeout -default_socket_timeout = 60 - -; If your scripts have to deal with files from Macintosh systems, -; or you are running on a Mac and need to deal with files from -; unix or win32 systems, setting this flag will cause PHP to -; automatically detect the EOL character in those files so that -; fgets() and file() will work regardless of the source of the file. -; http://php.net/auto-detect-line-endings -;auto_detect_line_endings = Off - -;;;;;;;;;;;;;;;;;;;;;; -; Dynamic Extensions ; -;;;;;;;;;;;;;;;;;;;;;; - -; If you wish to have an extension loaded automatically, use the following -; syntax: -; -; extension=modulename.extension -; -; For example, on Windows: -; -; extension=mysqli.dll -; -; ... or under UNIX: -; -; extension=mysqli.so -; -; ... or with a path: -; -; extension=/path/to/extension/mysqli.so -; -; If you only provide the name of the extension, PHP will look for it in its -; default extension directory. -; -; Windows Extensions -; Note that ODBC support is built in, so no dll is needed for it. -; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5+) -; extension folders as well as the separate PECL DLL download (PHP 5+). -; Be sure to appropriately set the extension_dir directive. -; -;extension=php_bz2.dll -;extension=php_curl.dll -;extension=php_fileinfo.dll -;extension=php_ftp.dll -;extension=php_gd2.dll -;extension=php_gettext.dll -;extension=php_gmp.dll -;extension=php_intl.dll -;extension=php_imap.dll -;extension=php_interbase.dll -;extension=php_ldap.dll -;extension=php_mbstring.dll -;extension=php_exif.dll ; Must be after mbstring as it depends on it -;extension=php_mysqli.dll -;extension=php_oci8_12c.dll ; Use with Oracle Database 12c Instant Client -;extension=php_openssl.dll -;extension=php_pdo_firebird.dll -;extension=php_pdo_mysql.dll -;extension=php_pdo_oci.dll -;extension=php_pdo_odbc.dll -;extension=php_pdo_pgsql.dll -;extension=php_pdo_sqlite.dll -;extension=php_pgsql.dll -;extension=php_shmop.dll - -; The MIBS data available in the PHP distribution must be installed. -; See http://www.php.net/manual/en/snmp.installation.php -;extension=php_snmp.dll - -;extension=php_soap.dll -;extension=php_sockets.dll -;extension=php_sqlite3.dll -;extension=php_tidy.dll -;extension=php_xmlrpc.dll -;extension=php_xsl.dll - -;;;;;;;;;;;;;;;;;;; -; Module Settings ; -;;;;;;;;;;;;;;;;;;; - -[CLI Server] -; Whether the CLI web server uses ANSI color coding in its terminal output. -cli_server.color = On - -[Date] -; Defines the default timezone used by the date functions -; http://php.net/date.timezone -date.timezone = Asia/Shanghai - -; http://php.net/date.default-latitude -;date.default_latitude = 31.7667 - -; http://php.net/date.default-longitude -;date.default_longitude = 35.2333 - -; http://php.net/date.sunrise-zenith -;date.sunrise_zenith = 90.583333 - -; http://php.net/date.sunset-zenith -;date.sunset_zenith = 90.583333 - -[filter] -; http://php.net/filter.default -;filter.default = unsafe_raw - -; http://php.net/filter.default-flags -;filter.default_flags = - -[iconv] -; Use of this INI entry is deprecated, use global input_encoding instead. -; If empty, default_charset or input_encoding or iconv.input_encoding is used. -; The precedence is: default_charset < intput_encoding < iconv.input_encoding -;iconv.input_encoding = - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;iconv.internal_encoding = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; If empty, default_charset or output_encoding or iconv.output_encoding is used. -; The precedence is: default_charset < output_encoding < iconv.output_encoding -; To use an output encoding conversion, iconv's output handler must be set -; otherwise output encoding conversion cannot be performed. -;iconv.output_encoding = - -[intl] -;intl.default_locale = -; This directive allows you to produce PHP errors when some error -; happens within intl functions. The value is the level of the error produced. -; Default is 0, which does not produce any errors. -;intl.error_level = E_WARNING -;intl.use_exceptions = 0 - -[sqlite3] -;sqlite3.extension_dir = - -[Pcre] -;PCRE library backtracking limit. -; http://php.net/pcre.backtrack-limit -;pcre.backtrack_limit=100000 - -;PCRE library recursion limit. -;Please note that if you set this value to a high number you may consume all -;the available process stack and eventually crash PHP (due to reaching the -;stack size limit imposed by the Operating System). -; http://php.net/pcre.recursion-limit -;pcre.recursion_limit=100000 - -;Enables or disables JIT compilation of patterns. This requires the PCRE -;library to be compiled with JIT support. -;pcre.jit=1 - -[Pdo] -; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off" -; http://php.net/pdo-odbc.connection-pooling -;pdo_odbc.connection_pooling=strict - -;pdo_odbc.db2_instance_name - -[Pdo_mysql] -; If mysqlnd is used: Number of cache slots for the internal result set cache -; http://php.net/pdo_mysql.cache_size -pdo_mysql.cache_size = 2000 - -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -; http://php.net/pdo_mysql.default-socket -pdo_mysql.default_socket= - -[Phar] -; http://php.net/phar.readonly -;phar.readonly = On - -; http://php.net/phar.require-hash -;phar.require_hash = On - -;phar.cache_list = - -[mail function] -; For Win32 only. -; http://php.net/smtp -SMTP = localhost -; http://php.net/smtp-port -smtp_port = 25 - -; For Win32 only. -; http://php.net/sendmail-from -;sendmail_from = me@example.com - -; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). -; http://php.net/sendmail-path -;sendmail_path = - -; Force the addition of the specified parameters to be passed as extra parameters -; to the sendmail binary. These parameters will always replace the value of -; the 5th parameter to mail(). -;mail.force_extra_parameters = - -; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename -mail.add_x_header = On - -; The path to a log file that will log all mail() calls. Log entries include -; the full path of the script, line number, To address and headers. -;mail.log = -; Log mail to syslog (Event Log on Windows). -;mail.log = syslog - -[ODBC] -; http://php.net/odbc.default-db -;odbc.default_db = Not yet implemented - -; http://php.net/odbc.default-user -;odbc.default_user = Not yet implemented - -; http://php.net/odbc.default-pw -;odbc.default_pw = Not yet implemented - -; Controls the ODBC cursor model. -; Default: SQL_CURSOR_STATIC (default). -;odbc.default_cursortype - -; Allow or prevent persistent links. -; http://php.net/odbc.allow-persistent -odbc.allow_persistent = On - -; Check that a connection is still valid before reuse. -; http://php.net/odbc.check-persistent -odbc.check_persistent = On - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/odbc.max-persistent -odbc.max_persistent = -1 - -; Maximum number of links (persistent + non-persistent). -1 means no limit. -; http://php.net/odbc.max-links -odbc.max_links = -1 - -; Handling of LONG fields. Returns number of bytes to variables. 0 means -; passthru. -; http://php.net/odbc.defaultlrl -odbc.defaultlrl = 4096 - -; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char. -; See the documentation on odbc_binmode and odbc_longreadlen for an explanation -; of odbc.defaultlrl and odbc.defaultbinmode -; http://php.net/odbc.defaultbinmode -odbc.defaultbinmode = 1 - -;birdstep.max_links = -1 - -[Interbase] -; Allow or prevent persistent links. -ibase.allow_persistent = 1 - -; Maximum number of persistent links. -1 means no limit. -ibase.max_persistent = -1 - -; Maximum number of links (persistent + non-persistent). -1 means no limit. -ibase.max_links = -1 - -; Default database name for ibase_connect(). -;ibase.default_db = - -; Default username for ibase_connect(). -;ibase.default_user = - -; Default password for ibase_connect(). -;ibase.default_password = - -; Default charset for ibase_connect(). -;ibase.default_charset = - -; Default timestamp format. -ibase.timestampformat = "%Y-%m-%d %H:%M:%S" - -; Default date format. -ibase.dateformat = "%Y-%m-%d" - -; Default time format. -ibase.timeformat = "%H:%M:%S" - -[MySQLi] - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/mysqli.max-persistent -mysqli.max_persistent = -1 - -; Allow accessing, from PHP's perspective, local files with LOAD DATA statements -; http://php.net/mysqli.allow_local_infile -;mysqli.allow_local_infile = On - -; Allow or prevent persistent links. -; http://php.net/mysqli.allow-persistent -mysqli.allow_persistent = On - -; Maximum number of links. -1 means no limit. -; http://php.net/mysqli.max-links -mysqli.max_links = -1 - -; If mysqlnd is used: Number of cache slots for the internal result set cache -; http://php.net/mysqli.cache_size -mysqli.cache_size = 2000 - -; Default port number for mysqli_connect(). If unset, mysqli_connect() will use -; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the -; compile-time value defined MYSQL_PORT (in that order). Win32 will only look -; at MYSQL_PORT. -; http://php.net/mysqli.default-port -mysqli.default_port = 3306 - -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -; http://php.net/mysqli.default-socket -mysqli.default_socket = - -; Default host for mysql_connect() (doesn't apply in safe mode). -; http://php.net/mysqli.default-host -mysqli.default_host = - -; Default user for mysql_connect() (doesn't apply in safe mode). -; http://php.net/mysqli.default-user -mysqli.default_user = - -; Default password for mysqli_connect() (doesn't apply in safe mode). -; Note that this is generally a *bad* idea to store passwords in this file. -; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw") -; and reveal this password! And of course, any users with read access to this -; file will be able to reveal the password as well. -; http://php.net/mysqli.default-pw -mysqli.default_pw = - -; Allow or prevent reconnect -mysqli.reconnect = Off - -[mysqlnd] -; Enable / Disable collection of general statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -; http://php.net/mysqlnd.collect_statistics -mysqlnd.collect_statistics = On - -; Enable / Disable collection of memory usage statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -; http://php.net/mysqlnd.collect_memory_statistics -mysqlnd.collect_memory_statistics = Off - -; Records communication from all extensions using mysqlnd to the specified log -; file. -; http://php.net/mysqlnd.debug -;mysqlnd.debug = - -; Defines which queries will be logged. -; http://php.net/mysqlnd.log_mask -;mysqlnd.log_mask = 0 - -; Default size of the mysqlnd memory pool, which is used by result sets. -; http://php.net/mysqlnd.mempool_default_size -;mysqlnd.mempool_default_size = 16000 - -; Size of a pre-allocated buffer used when sending commands to MySQL in bytes. -; http://php.net/mysqlnd.net_cmd_buffer_size -;mysqlnd.net_cmd_buffer_size = 2048 - -; Size of a pre-allocated buffer used for reading data sent by the server in -; bytes. -; http://php.net/mysqlnd.net_read_buffer_size -;mysqlnd.net_read_buffer_size = 32768 - -; Timeout for network requests in seconds. -; http://php.net/mysqlnd.net_read_timeout -;mysqlnd.net_read_timeout = 31536000 - -; SHA-256 Authentication Plugin related. File with the MySQL server public RSA -; key. -; http://php.net/mysqlnd.sha256_server_public_key -;mysqlnd.sha256_server_public_key = - -[OCI8] - -; Connection: Enables privileged connections using external -; credentials (OCI_SYSOPER, OCI_SYSDBA) -; http://php.net/oci8.privileged-connect -;oci8.privileged_connect = Off - -; Connection: The maximum number of persistent OCI8 connections per -; process. Using -1 means no limit. -; http://php.net/oci8.max-persistent -;oci8.max_persistent = -1 - -; Connection: The maximum number of seconds a process is allowed to -; maintain an idle persistent connection. Using -1 means idle -; persistent connections will be maintained forever. -; http://php.net/oci8.persistent-timeout -;oci8.persistent_timeout = -1 - -; Connection: The number of seconds that must pass before issuing a -; ping during oci_pconnect() to check the connection validity. When -; set to 0, each oci_pconnect() will cause a ping. Using -1 disables -; pings completely. -; http://php.net/oci8.ping-interval -;oci8.ping_interval = 60 - -; Connection: Set this to a user chosen connection class to be used -; for all pooled server requests with Oracle 11g Database Resident -; Connection Pooling (DRCP). To use DRCP, this value should be set to -; the same string for all web servers running the same application, -; the database pool must be configured, and the connection string must -; specify to use a pooled server. -;oci8.connection_class = - -; High Availability: Using On lets PHP receive Fast Application -; Notification (FAN) events generated when a database node fails. The -; database must also be configured to post FAN events. -;oci8.events = Off - -; Tuning: This option enables statement caching, and specifies how -; many statements to cache. Using 0 disables statement caching. -; http://php.net/oci8.statement-cache-size -;oci8.statement_cache_size = 20 - -; Tuning: Enables statement prefetching and sets the default number of -; rows that will be fetched automatically after statement execution. -; http://php.net/oci8.default-prefetch -;oci8.default_prefetch = 100 - -; Compatibility. Using On means oci_close() will not close -; oci_connect() and oci_new_connect() connections. -; http://php.net/oci8.old-oci-close-semantics -;oci8.old_oci_close_semantics = Off - -[PostgreSQL] -; Allow or prevent persistent links. -; http://php.net/pgsql.allow-persistent -pgsql.allow_persistent = On - -; Detect broken persistent links always with pg_pconnect(). -; Auto reset feature requires a little overheads. -; http://php.net/pgsql.auto-reset-persistent -pgsql.auto_reset_persistent = Off - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/pgsql.max-persistent -pgsql.max_persistent = -1 - -; Maximum number of links (persistent+non persistent). -1 means no limit. -; http://php.net/pgsql.max-links -pgsql.max_links = -1 - -; Ignore PostgreSQL backends Notice message or not. -; Notice message logging require a little overheads. -; http://php.net/pgsql.ignore-notice -pgsql.ignore_notice = 0 - -; Log PostgreSQL backends Notice message or not. -; Unless pgsql.ignore_notice=0, module cannot log notice message. -; http://php.net/pgsql.log-notice -pgsql.log_notice = 0 - -[bcmath] -; Number of decimal digits for all bcmath functions. -; http://php.net/bcmath.scale -bcmath.scale = 0 - -[browscap] -; http://php.net/browscap -;browscap = extra/browscap.ini - -[Session] -; Handler used to store/retrieve data. -; http://php.net/session.save-handler -session.save_handler = files - -; Argument passed to save_handler. In the case of files, this is the path -; where data files are stored. Note: Windows users have to change this -; variable in order to use PHP's session functions. -; -; The path can be defined as: -; -; session.save_path = "N;/path" -; -; where N is an integer. Instead of storing all the session files in -; /path, what this will do is use subdirectories N-levels deep, and -; store the session data in those directories. This is useful if -; your OS has problems with many files in one directory, and is -; a more efficient layout for servers that handle many sessions. -; -; NOTE 1: PHP will not create this directory structure automatically. -; You can use the script in the ext/session dir for that purpose. -; NOTE 2: See the section on garbage collection below if you choose to -; use subdirectories for session storage -; -; The file storage module creates files using mode 600 by default. -; You can change that by using -; -; session.save_path = "N;MODE;/path" -; -; where MODE is the octal representation of the mode. Note that this -; does not overwrite the process's umask. -; http://php.net/session.save-path -;session.save_path = "/tmp" - -; Whether to use strict session mode. -; Strict session mode does not accept uninitialized session ID and regenerate -; session ID if browser sends uninitialized session ID. Strict mode protects -; applications from session fixation via session adoption vulnerability. It is -; disabled by default for maximum compatibility, but enabling it is encouraged. -; https://wiki.php.net/rfc/strict_sessions -session.use_strict_mode = 0 - -; Whether to use cookies. -; http://php.net/session.use-cookies -session.use_cookies = 1 - -; http://php.net/session.cookie-secure -;session.cookie_secure = - -; This option forces PHP to fetch and use a cookie for storing and maintaining -; the session id. We encourage this operation as it's very helpful in combating -; session hijacking when not specifying and managing your own session id. It is -; not the be-all and end-all of session hijacking defense, but it's a good start. -; http://php.net/session.use-only-cookies -session.use_only_cookies = 1 - -; Name of the session (used as cookie name). -; http://php.net/session.name -session.name = PHPSESSID - -; Initialize session on request startup. -; http://php.net/session.auto-start -session.auto_start = 0 - -; Lifetime in seconds of cookie or, if 0, until browser is restarted. -; http://php.net/session.cookie-lifetime -session.cookie_lifetime = 0 - -; The path for which the cookie is valid. -; http://php.net/session.cookie-path -session.cookie_path = / - -; The domain for which the cookie is valid. -; http://php.net/session.cookie-domain -session.cookie_domain = - -; Whether or not to add the httpOnly flag to the cookie, which makes it inaccessible to browser scripting languages such as JavaScript. -; http://php.net/session.cookie-httponly -session.cookie_httponly = - -; Handler used to serialize data. php is the standard serializer of PHP. -; http://php.net/session.serialize-handler -session.serialize_handler = php - -; Defines the probability that the 'garbage collection' process is started -; on every session initialization. The probability is calculated by using -; gc_probability/gc_divisor. Where session.gc_probability is the numerator -; and gc_divisor is the denominator in the equation. Setting this value to 1 -; when the session.gc_divisor value is 100 will give you approximately a 1% chance -; the gc will run on any give request. -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; http://php.net/session.gc-probability -session.gc_probability = 1 - -; Defines the probability that the 'garbage collection' process is started on every -; session initialization. The probability is calculated by using the following equation: -; gc_probability/gc_divisor. Where session.gc_probability is the numerator and -; session.gc_divisor is the denominator in the equation. Setting this value to 1 -; when the session.gc_divisor value is 100 will give you approximately a 1% chance -; the gc will run on any give request. Increasing this value to 1000 will give you -; a 0.1% chance the gc will run on any give request. For high volume production servers, -; this is a more efficient approach. -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 -; http://php.net/session.gc-divisor -session.gc_divisor = 1000 - -; After this number of seconds, stored data will be seen as 'garbage' and -; cleaned up by the garbage collection process. -; http://php.net/session.gc-maxlifetime -session.gc_maxlifetime = 1440 - -; NOTE: If you are using the subdirectory option for storing session files -; (see session.save_path above), then garbage collection does *not* -; happen automatically. You will need to do your own garbage -; collection through a shell script, cron entry, or some other method. -; For example, the following script would is the equivalent of -; setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes): -; find /path/to/sessions -cmin +24 -type f | xargs rm - -; Check HTTP Referer to invalidate externally stored URLs containing ids. -; HTTP_REFERER has to contain this substring for the session to be -; considered as valid. -; http://php.net/session.referer-check -session.referer_check = - -; Set to {nocache,private,public,} to determine HTTP caching aspects -; or leave this empty to avoid sending anti-caching headers. -; http://php.net/session.cache-limiter -session.cache_limiter = nocache - -; Document expires after n minutes. -; http://php.net/session.cache-expire -session.cache_expire = 180 - -; trans sid support is disabled by default. -; Use of trans sid may risk your users' security. -; Use this option with caution. -; - User may send URL contains active session ID -; to other person via. email/irc/etc. -; - URL that contains active session ID may be stored -; in publicly accessible computer. -; - User may access your site with the same session ID -; always using URL stored in browser's history or bookmarks. -; http://php.net/session.use-trans-sid -session.use_trans_sid = 0 - -; Set session ID character length. This value could be between 22 to 256. -; Shorter length than default is supported only for compatibility reason. -; Users should use 32 or more chars. -; http://php.net/session.sid-length -; Default Value: 32 -; Development Value: 26 -; Production Value: 26 -session.sid_length = 26 - -; The URL rewriter will look for URLs in a defined set of HTML tags. -; is special; if you include them here, the rewriter will -; add a hidden field with the info which is otherwise appended -; to URLs. tag's action attribute URL will not be modified -; unless it is specified. -; Note that all valid entries require a "=", even if no value follows. -; Default Value: "a=href,area=href,frame=src,form=" -; Development Value: "a=href,area=href,frame=src,form=" -; Production Value: "a=href,area=href,frame=src,form=" -; http://php.net/url-rewriter.tags -session.trans_sid_tags = "a=href,area=href,frame=src,form=" - -; URL rewriter does not rewrite absolute URLs by default. -; To enable rewrites for absolute pathes, target hosts must be specified -; at RUNTIME. i.e. use ini_set() -; tags is special. PHP will check action attribute's URL regardless -; of session.trans_sid_tags setting. -; If no host is defined, HTTP_HOST will be used for allowed host. -; Example value: php.net,www.php.net,wiki.php.net -; Use "," for multiple hosts. No spaces are allowed. -; Default Value: "" -; Development Value: "" -; Production Value: "" -;session.trans_sid_hosts="" - -; Define how many bits are stored in each character when converting -; the binary hash data to something readable. -; Possible values: -; 4 (4 bits: 0-9, a-f) -; 5 (5 bits: 0-9, a-v) -; 6 (6 bits: 0-9, a-z, A-Z, "-", ",") -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 -; http://php.net/session.hash-bits-per-character -session.sid_bits_per_character = 5 - -; Enable upload progress tracking in $_SESSION -; Default Value: On -; Development Value: On -; Production Value: On -; http://php.net/session.upload-progress.enabled -;session.upload_progress.enabled = On - -; Cleanup the progress information as soon as all POST data has been read -; (i.e. upload completed). -; Default Value: On -; Development Value: On -; Production Value: On -; http://php.net/session.upload-progress.cleanup -;session.upload_progress.cleanup = On - -; A prefix used for the upload progress key in $_SESSION -; Default Value: "upload_progress_" -; Development Value: "upload_progress_" -; Production Value: "upload_progress_" -; http://php.net/session.upload-progress.prefix -;session.upload_progress.prefix = "upload_progress_" - -; The index name (concatenated with the prefix) in $_SESSION -; containing the upload progress information -; Default Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Development Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Production Value: "PHP_SESSION_UPLOAD_PROGRESS" -; http://php.net/session.upload-progress.name -;session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS" - -; How frequently the upload progress should be updated. -; Given either in percentages (per-file), or in bytes -; Default Value: "1%" -; Development Value: "1%" -; Production Value: "1%" -; http://php.net/session.upload-progress.freq -;session.upload_progress.freq = "1%" - -; The minimum delay between updates, in seconds -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; http://php.net/session.upload-progress.min-freq -;session.upload_progress.min_freq = "1" - -; Only write session data when session data is changed. Enabled by default. -; http://php.net/session.lazy-write -;session.lazy_write = On - -[Assertion] -; Switch whether to compile assertions at all (to have no overhead at run-time) -; -1: Do not compile at all -; 0: Jump over assertion at run-time -; 1: Execute assertions -; Changing from or to a negative value is only possible in php.ini! (For turning assertions on and off at run-time, see assert.active, when zend.assertions = 1) -; Default Value: 1 -; Development Value: 1 -; Production Value: -1 -; http://php.net/zend.assertions -zend.assertions = -1 - -; Assert(expr); active by default. -; http://php.net/assert.active -;assert.active = On - -; Throw an AssertationException on failed assertions -; http://php.net/assert.exception -;assert.exception = On - -; Issue a PHP warning for each failed assertion. (Overridden by assert.exception if active) -; http://php.net/assert.warning -;assert.warning = On - -; Don't bail out by default. -; http://php.net/assert.bail -;assert.bail = Off - -; User-function to be called if an assertion fails. -; http://php.net/assert.callback -;assert.callback = 0 - -; Eval the expression with current error_reporting(). Set to true if you want -; error_reporting(0) around the eval(). -; http://php.net/assert.quiet-eval -;assert.quiet_eval = 0 - -[COM] -; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs -; http://php.net/com.typelib-file -;com.typelib_file = - -; allow Distributed-COM calls -; http://php.net/com.allow-dcom -;com.allow_dcom = true - -; autoregister constants of a components typlib on com_load() -; http://php.net/com.autoregister-typelib -;com.autoregister_typelib = true - -; register constants casesensitive -; http://php.net/com.autoregister-casesensitive -;com.autoregister_casesensitive = false - -; show warnings on duplicate constant registrations -; http://php.net/com.autoregister-verbose -;com.autoregister_verbose = true - -; The default character set code-page to use when passing strings to and from COM objects. -; Default: system ANSI code page -;com.code_page= - -[mbstring] -; language for internal character representation. -; This affects mb_send_mail() and mbstring.detect_order. -; http://php.net/mbstring.language -;mbstring.language = Japanese - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; internal/script encoding. -; Some encoding cannot work as internal encoding. (e.g. SJIS, BIG5, ISO-2022-*) -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;mbstring.internal_encoding = - -; Use of this INI entry is deprecated, use global input_encoding instead. -; http input encoding. -; mbstring.encoding_traslation = On is needed to use this setting. -; If empty, default_charset or input_encoding or mbstring.input is used. -; The precedence is: default_charset < intput_encoding < mbsting.http_input -; http://php.net/mbstring.http-input -;mbstring.http_input = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; http output encoding. -; mb_output_handler must be registered as output buffer to function. -; If empty, default_charset or output_encoding or mbstring.http_output is used. -; The precedence is: default_charset < output_encoding < mbstring.http_output -; To use an output encoding conversion, mbstring's output handler must be set -; otherwise output encoding conversion cannot be performed. -; http://php.net/mbstring.http-output -;mbstring.http_output = - -; enable automatic encoding translation according to -; mbstring.internal_encoding setting. Input chars are -; converted to internal encoding by setting this to On. -; Note: Do _not_ use automatic encoding translation for -; portable libs/applications. -; http://php.net/mbstring.encoding-translation -;mbstring.encoding_translation = Off - -; automatic encoding detection order. -; "auto" detect order is changed according to mbstring.language -; http://php.net/mbstring.detect-order -;mbstring.detect_order = auto - -; substitute_character used when character cannot be converted -; one from another -; http://php.net/mbstring.substitute-character -;mbstring.substitute_character = none - -; overload(replace) single byte functions by mbstring functions. -; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(), -; etc. Possible values are 0,1,2,4 or combination of them. -; For example, 7 for overload everything. -; 0: No overload -; 1: Overload mail() function -; 2: Overload str*() functions -; 4: Overload ereg*() functions -; http://php.net/mbstring.func-overload -;mbstring.func_overload = 0 - -; enable strict encoding detection. -; Default: Off -;mbstring.strict_detection = On - -; This directive specifies the regex pattern of content types for which mb_output_handler() -; is activated. -; Default: mbstring.http_output_conv_mimetype=^(text/|application/xhtml\+xml) -;mbstring.http_output_conv_mimetype= - -[gd] -; Tell the jpeg decode to ignore warnings and try to create -; a gd image. The warning will then be displayed as notices -; disabled by default -; http://php.net/gd.jpeg-ignore-warning -;gd.jpeg_ignore_warning = 1 - -[exif] -; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS. -; With mbstring support this will automatically be converted into the encoding -; given by corresponding encode setting. When empty mbstring.internal_encoding -; is used. For the decode settings you can distinguish between motorola and -; intel byte order. A decode setting cannot be empty. -; http://php.net/exif.encode-unicode -;exif.encode_unicode = ISO-8859-15 - -; http://php.net/exif.decode-unicode-motorola -;exif.decode_unicode_motorola = UCS-2BE - -; http://php.net/exif.decode-unicode-intel -;exif.decode_unicode_intel = UCS-2LE - -; http://php.net/exif.encode-jis -;exif.encode_jis = - -; http://php.net/exif.decode-jis-motorola -;exif.decode_jis_motorola = JIS - -; http://php.net/exif.decode-jis-intel -;exif.decode_jis_intel = JIS - -[Tidy] -; The path to a default tidy configuration file to use when using tidy -; http://php.net/tidy.default-config -;tidy.default_config = /usr/local/lib/php/default.tcfg - -; Should tidy clean and repair output automatically? -; WARNING: Do not use this option if you are generating non-html content -; such as dynamic images -; http://php.net/tidy.clean-output -tidy.clean_output = Off - -[soap] -; Enables or disables WSDL caching feature. -; http://php.net/soap.wsdl-cache-enabled -soap.wsdl_cache_enabled=1 - -; Sets the directory name where SOAP extension will put cache files. -; http://php.net/soap.wsdl-cache-dir -soap.wsdl_cache_dir="/tmp" - -; (time to live) Sets the number of second while cached file will be used -; instead of original one. -; http://php.net/soap.wsdl-cache-ttl -soap.wsdl_cache_ttl=86400 - -; Sets the size of the cache limit. (Max. number of WSDL files to cache) -soap.wsdl_cache_limit = 5 - -[sysvshm] -; A default size of the shared memory segment -;sysvshm.init_mem = 10000 - -[ldap] -; Sets the maximum number of open links or -1 for unlimited. -ldap.max_links = -1 - -[dba] -;dba.default_handler= - -[opcache] -; Determines if Zend OPCache is enabled -;opcache.enable=1 - -; Determines if Zend OPCache is enabled for the CLI version of PHP -;opcache.enable_cli=1 - -; The OPcache shared memory storage size. -;opcache.memory_consumption=128 - -; The amount of memory for interned strings in Mbytes. -;opcache.interned_strings_buffer=8 - -; The maximum number of keys (scripts) in the OPcache hash table. -; Only numbers between 200 and 1000000 are allowed. -;opcache.max_accelerated_files=10000 - -; The maximum percentage of "wasted" memory until a restart is scheduled. -;opcache.max_wasted_percentage=5 - -; When this directive is enabled, the OPcache appends the current working -; directory to the script key, thus eliminating possible collisions between -; files with the same name (basename). Disabling the directive improves -; performance, but may break existing applications. -;opcache.use_cwd=1 - -; When disabled, you must reset the OPcache manually or restart the -; webserver for changes to the filesystem to take effect. -;opcache.validate_timestamps=1 - -; How often (in seconds) to check file timestamps for changes to the shared -; memory storage allocation. ("1" means validate once per second, but only -; once per request. "0" means always validate) -;opcache.revalidate_freq=2 - -; Enables or disables file search in include_path optimization -;opcache.revalidate_path=0 - -; If disabled, all PHPDoc comments are dropped from the code to reduce the -; size of the optimized code. -;opcache.save_comments=1 - -; If enabled, a fast shutdown sequence is used for the accelerated code -; Depending on the used Memory Manager this may cause some incompatibilities. -;opcache.fast_shutdown=0 - -; Allow file existence override (file_exists, etc.) performance feature. -;opcache.enable_file_override=0 - -; A bitmask, where each bit enables or disables the appropriate OPcache -; passes -;opcache.optimization_level=0xffffffff - -;opcache.inherited_hack=1 -;opcache.dups_fix=0 - -; The location of the OPcache blacklist file (wildcards allowed). -; Each OPcache blacklist file is a text file that holds the names of files -; that should not be accelerated. The file format is to add each filename -; to a new line. The filename may be a full path or just a file prefix -; (i.e., /var/www/x blacklists all the files and directories in /var/www -; that start with 'x'). Line starting with a ; are ignored (comments). -;opcache.blacklist_filename= - -; Allows exclusion of large files from being cached. By default all files -; are cached. -;opcache.max_file_size=0 - -; Check the cache checksum each N requests. -; The default value of "0" means that the checks are disabled. -;opcache.consistency_checks=0 - -; How long to wait (in seconds) for a scheduled restart to begin if the cache -; is not being accessed. -;opcache.force_restart_timeout=180 - -; OPcache error_log file name. Empty string assumes "stderr". -;opcache.error_log= - -; All OPcache errors go to the Web server log. -; By default, only fatal errors (level 0) or errors (level 1) are logged. -; You can also enable warnings (level 2), info messages (level 3) or -; debug messages (level 4). -;opcache.log_verbosity_level=1 - -; Preferred Shared Memory back-end. Leave empty and let the system decide. -;opcache.preferred_memory_model= - -; Protect the shared memory from unexpected writing during script execution. -; Useful for internal debugging only. -;opcache.protect_memory=0 - -; Allows calling OPcache API functions only from PHP scripts which path is -; started from specified string. The default "" means no restriction -;opcache.restrict_api= - -; Mapping base of shared memory segments (for Windows only). All the PHP -; processes have to map shared memory into the same address space. This -; directive allows to manually fix the "Unable to reattach to base address" -; errors. -;opcache.mmap_base= - -; Enables and sets the second level cache directory. -; It should improve performance when SHM memory is full, at server restart or -; SHM reset. The default "" disables file based caching. -;opcache.file_cache= - -; Enables or disables opcode caching in shared memory. -;opcache.file_cache_only=0 - -; Enables or disables checksum validation when script loaded from file cache. -;opcache.file_cache_consistency_checks=1 - -; Implies opcache.file_cache_only=1 for a certain process that failed to -; reattach to the shared memory (for Windows only). Explicitly enabled file -; cache is required. -;opcache.file_cache_fallback=1 - -; Enables or disables copying of PHP code (text segment) into HUGE PAGES. -; This should improve performance, but requires appropriate OS configuration. -;opcache.huge_code_pages=1 - -; Validate cached file permissions. -;opcache.validate_permission=0 - -; Prevent name collisions in chroot'ed environment. -;opcache.validate_root=0 - -[curl] -; A default value for the CURLOPT_CAINFO option. This is required to be an -; absolute path. -;curl.cainfo = - -[openssl] -; The location of a Certificate Authority (CA) file on the local filesystem -; to use when verifying the identity of SSL/TLS peers. Most users should -; not specify a value for this directive as PHP will attempt to use the -; OS-managed cert stores in its absence. If specified, this value may still -; be overridden on a per-stream basis via the "cafile" SSL stream context -; option. -;openssl.cafile= - -; If openssl.cafile is not specified or if the CA file is not found, the -; directory pointed to by openssl.capath is searched for a suitable -; certificate. This value must be a correctly hashed certificate directory. -; Most users should not specify a value for this directive as PHP will -; attempt to use the OS-managed cert stores in its absence. If specified, -; this value may still be overridden on a per-stream basis via the "capath" -; SSL stream context option. -;openssl.capath= - -; Local Variables: -; tab-width: 4 -; End: - -[XDebug] -xdebug.remote_enable = 1 -xdebug.remote_handler = "dbgp" -; Set to host.docker.internal on Mac and Windows, otherwise, set to host real ip -xdebug.remote_host = host.docker.internal -;xdebug.remote_port = 9000 -xdebug.remote_log = /var/log/php/xdebug.log - -SERVER_ENV=develop - -yaf.use_spl_autoload=1 - -[xhprof] -;xhprof.output_dir = /var/log/php/xhprof.log \ No newline at end of file diff --git a/php8/8.1.31/data.yml b/php8/8.1.31/data.yml deleted file mode 100755 index deeede5ad..000000000 --- a/php8/8.1.31/data.yml +++ /dev/null @@ -1,18 +0,0 @@ -additionalProperties: - formFields: - - default: 9000 - envKey: PANEL_APP_PORT_HTTP - labelEn: PHP-FPM Port - labelZh: PHP-FPM 端口 - label: - en: PHP-FPM Port - ja: PHP-FPM ポート - ms: Port PHP-FPM - pt-br: Porta PHP-FPM - ru: Порт PHP-FPM - ko: PHP-FPM 포트 - zh-Hant: PHP-FPM 埠 - zh: PHP-FPM 端口 - required: true - rule: paramPort - type: number diff --git a/php8/8.1.31/docker-compose.yml b/php8/8.1.31/docker-compose.yml deleted file mode 100644 index dc530c778..000000000 --- a/php8/8.1.31/docker-compose.yml +++ /dev/null @@ -1,21 +0,0 @@ -services: - php: - image: ${IMAGE_NAME} - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - volumes: - - ${PANEL_WEBSITE_DIR}:/www/ - - ./conf/php.ini:/usr/local/etc/php/php.ini - - ./conf/php-fpm.conf:/usr/local/etc/php-fpm.d/www.conf - - ./log:/var/log/php - - ./composer:/tmp/composer - - ./extensions:/php/extensions - ports: - - 127.0.0.1:${PANEL_APP_PORT_HTTP}:9000 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/php8/8.2.28/build/.env b/php8/8.2.28/build/.env deleted file mode 100644 index 6e249fb56..000000000 --- a/php8/8.2.28/build/.env +++ /dev/null @@ -1,14 +0,0 @@ -CONTAINER_PACKAGE_URL=mirrors.ustc.edu.cn - -PHP_VERSION=8.2.28 -PHP_PHP_CONF_FILE=./php/php.ini -PHP_FPM_CONF_FILE=./php/php-fpm.conf -PHP_LOG_DIR=./logs/php -PHP_EXTENSIONS= - -SOURCE_DIR=./www - -TZ=Asia/Shanghai -DATA_DIR=./data -IMAGE_NAME=1panel-php:8.2.28 -INSTALL_SUPERVISOR=0 \ No newline at end of file diff --git a/php8/8.2.28/build/config.json b/php8/8.2.28/build/config.json deleted file mode 100644 index 28ee3c56b..000000000 --- a/php8/8.2.28/build/config.json +++ /dev/null @@ -1,134 +0,0 @@ -{ - "formFields": [ - { - "type": "select", - "multiple": true, - "labelZh": "扩展", - "labelEn": "Extensions", - "default": ["mysqli","pdo_mysql"], - "values": [ - { - "label": "opcache", - "value": "opcache" - }, - { - "label": "memcached", - "value": "memcached" - }, - { - "label": "memcache", - "value": "memcache" - }, - { - "label": "redis", - "value": "redis" - }, - { - "label": "mcrypt", - "value": "mcrypt" - }, - { - "label": "xdebug", - "value": "xdebug" - }, - { - "label": "imap", - "value": "imap" - }, - { - "label": "exif", - "value": "exif" - }, - { - "label": "intl", - "value": "intl" - }, - { - "label": "swoole", - "value": "swoole" - }, - { - "label": "yaf", - "value": "yaf" - }, - { - "label": "pgsql", - "value": "pgsql" - }, - { - "label": "pdo_pgsql", - "value": "pdo_pgsql" - }, - { - "label": "snmp", - "value": "snmp" - }, { - "label": "ldap", - "value": "ldap" - }, - { - "label": "pspell", - "value": "pspell" - }, - { - "label": "bz2", - "value": "bz2" - }, - { - "label": "sysvshm", - "value": "sysvshm" - }, - { - "label": "calendar", - "value": "calendar" - }, - { - "label": "gmp", - "value": "gmp" - }, - { - "label": "sysvmsg", - "value": "sysvmsg" - }, - { - "label": "igbinary", - "value": "igbinary" - }, - { - "label": "mysqli", - "value": "mysqli" - }, - { - "label": "pdo_mysql", - "value": "pdo_mysql" - }, - { - "label": "mbstring", - "value": "mbstring" - }, - { - "label": "gd", - "value": "gd" - }, - { - "label": "ioncube_loader", - "value": "ioncube_loader" - }, - { - "label": "curl", - "value": "curl" - }, - { - "label": "sg15", - "value": "sourceguardian" - }, - { - "label": "imagick", - "value": "imagick" - } - ], - "envKey": "PHP_EXTENSIONS", - "edit": true - } - ] -} \ No newline at end of file diff --git a/php8/8.2.28/build/docker-compose.yml b/php8/8.2.28/build/docker-compose.yml deleted file mode 100644 index 21e9fa737..000000000 --- a/php8/8.2.28/build/docker-compose.yml +++ /dev/null @@ -1,19 +0,0 @@ -services: - 1panel-php: - build: - context: ./php - args: - PHP_IMAGE: php:${PHP_VERSION}-fpm-alpine - CONTAINER_PACKAGE_URL: ${CONTAINER_PACKAGE_URL} - PHP_EXTENSIONS: ${PHP_EXTENSIONS} - TZ: ${TZ} - image: ${IMAGE_NAME} - volumes: - - ${SOURCE_DIR}:/www/ - - ${PHP_PHP_CONF_FILE}:/usr/local/etc/php/php.ini - - ${PHP_FPM_CONF_FILE}:/usr/local/etc/php-fpm.d/www.conf - - ${PHP_LOG_DIR}:/var/log/php - - ${DATA_DIR}/composer:/tmp/composer - restart: always - cap_add: - - SYS_PTRACE diff --git a/php8/8.2.28/build/php/Dockerfile b/php8/8.2.28/build/php/Dockerfile deleted file mode 100644 index e0e0cb64c..000000000 --- a/php8/8.2.28/build/php/Dockerfile +++ /dev/null @@ -1,39 +0,0 @@ -ARG PHP_IMAGE -FROM ${PHP_IMAGE} - -ARG TZ -ARG PHP_EXTENSIONS -ARG CONTAINER_PACKAGE_URL - - -RUN if [ $CONTAINER_PACKAGE_URL ] ; then sed -i "s/dl-cdn.alpinelinux.org/${CONTAINER_PACKAGE_URL}/g" /etc/apk/repositories ; fi - -ADD ./extensions/install-php-extensions /usr/local/bin/ -RUN chmod uga+x /usr/local/bin/install-php-extensions - -COPY ./extensions /tmp/extensions -WORKDIR /tmp/extensions -RUN chmod +x install.sh \ - && sh install.sh \ - && rm -rf /tmp/extensions - - -RUN apk --no-cache add tzdata \ - && cp "/usr/share/zoneinfo/$TZ" /etc/localtime \ - && echo "$TZ" > /etc/timezone - -# Fix: https://github.com/docker-library/php/issues/240 -RUN apk add gnu-libiconv libstdc++ --no-cache --repository http://${CONTAINER_PACKAGE_URL}/alpine/edge/community/ --allow-untrusted -ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so php - - -# Install composer and change it's cache home -RUN curl -o /usr/bin/composer https://mirrors.aliyun.com/composer/composer.phar \ - && chmod +x /usr/bin/composer -ENV COMPOSER_HOME=/tmp/composer - -# php image's www-data user uid & gid are 82, change them to 1000 (primary user) -RUN apk --no-cache add shadow && usermod -u 1000 www-data && groupmod -g 1000 www-data - - -WORKDIR /www \ No newline at end of file diff --git a/php8/8.2.28/build/php/extensions/event-3.0.8.tgz b/php8/8.2.28/build/php/extensions/event-3.0.8.tgz deleted file mode 100644 index e7a471bbe..000000000 Binary files a/php8/8.2.28/build/php/extensions/event-3.0.8.tgz and /dev/null differ diff --git a/php8/8.2.28/build/php/extensions/imagick-3.7.0.tgz b/php8/8.2.28/build/php/extensions/imagick-3.7.0.tgz deleted file mode 100644 index 80d674cda..000000000 Binary files a/php8/8.2.28/build/php/extensions/imagick-3.7.0.tgz and /dev/null differ diff --git a/php8/8.2.28/build/php/extensions/install-composer.sh b/php8/8.2.28/build/php/extensions/install-composer.sh deleted file mode 100644 index 34074732d..000000000 --- a/php8/8.2.28/build/php/extensions/install-composer.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/sh - -# The latest mirror's composer version only support for PHP 7.2.5 -# And if your PHP version is lesser than that, will be download supported version. -supportLatest=$(php -r "echo version_compare(PHP_VERSION, '7.2.5', '>');") - -if [ "$supportLatest" -eq "1" ]; then - curl -o /usr/bin/composer https://mirrors.aliyun.com/composer/composer.phar \ - && chmod +x /usr/bin/composer -else - curl -o /tmp/composer-setup.php https://getcomposer.org/installer \ - && php /tmp/composer-setup.php --install-dir=/tmp \ - && mv /tmp/composer.phar /usr/bin/composer \ - && chmod +x /usr/bin/composer \ - && rm -rf /tmp/composer-setup.php -fi \ No newline at end of file diff --git a/php8/8.2.28/build/php/extensions/install-php-extensions b/php8/8.2.28/build/php/extensions/install-php-extensions deleted file mode 100644 index ffe08e487..000000000 --- a/php8/8.2.28/build/php/extensions/install-php-extensions +++ /dev/null @@ -1,5156 +0,0 @@ -#!/bin/sh - -# This script wraps docker-php-ext-install, properly configuring the system. -# -# Copyright (c) Michele Locati, 2018-2023 -# -# Source: https://github.com/mlocati/docker-php-extension-installer -# -# License: MIT - see https://github.com/mlocati/docker-php-extension-installer/blob/master/LICENSE - -# Let's set a sane environment -set -o errexit -set -o nounset - -if test "${IPE_DEBUG:-}" = "1"; then - set -x -fi - -if ! which docker-php-ext-configure >/dev/null || ! which docker-php-ext-enable >/dev/null || ! which docker-php-ext-install >/dev/null || ! which docker-php-source >/dev/null; then - printf 'The script %s is meant to be used with official Docker PHP Images - https://hub.docker.com/_/php\n' "$0" >&2 - exit 1 -fi - -IPE_VERSION=2.7.31 - -StandWithUkraine() { - if test -t 1 && ! grep -Eq '^VERSION=.*jessie' /etc/os-release; then - printf '\e[37;44m#StandWith\e[30;43mUkraine\e[0m\n' - else - printf '#StandWithUkraine\n' - fi -} - -if test "$IPE_VERSION" = master && test "${CI:-}" != true; then - cat <&2 - exit 1 - fi - DISTRO="$(cat /etc/os-release | grep -E ^ID= | cut -d = -f 2)" - DISTRO_VERSION_NUMBER="$(cat /etc/os-release | grep -E ^VERSION_ID= | cut -d = -f 2 | cut -d '"' -f 2 | cut -d . -f 1,2)" - DISTRO_VERSION="$(printf '%s@%s' $DISTRO $DISTRO_VERSION_NUMBER)" - DISTRO_MAJMIN_VERSION="$(echo "$DISTRO_VERSION_NUMBER" | awk -F. '{print $1*100+$2}')" -} - -# Set: -# - PHP_MAJMIN_VERSION: Major-Minor version, format MMmm (example 800 for PHP 8.0.1) -# - PHP_MAJDOTMIN_VERSION: Major-Minor version, format M.m (example 8.0 for PHP 8.0.1) -# - PHP_MAJMINPAT_VERSION: Major-Minor-Patch version, format MMmmpp (example 80001 for PHP 8.0.1) variables containing integers value -# - PHP_MAJDOTMINDOTPAT_VERSION: Major-Minor-Patch version, format M.m.p (example 8.0.1 for PHP 8.0.1) -# - PHP_THREADSAFE: 1 if PHP is thread-safe (TS), 0 if not thread-safe (NTS) -# - PHP_DEBUGBUILD: 1 if PHP is debug build (configured with "--enable-debug"), 0 otherwise -# - PHP_BITS: 32 if PHP is compiled for 32-bit, 64 if 64-bit -# - PHP_EXTDIR: the absolute path where the PHP extensions reside -setPHPVersionVariables() { - PHP_MAJDOTMINDOTPAT_VERSION="$(php-config --version)" - PHP_MAJMIN_VERSION=$(printf '%s' "$PHP_MAJDOTMINDOTPAT_VERSION" | awk -F. '{print $1*100+$2}') - PHP_MAJDOTMIN_VERSION=$(printf '%s' "$PHP_MAJDOTMINDOTPAT_VERSION" | cut -d. -f1-2) - PHP_MAJMINPAT_VERSION=$(printf '%s' "$PHP_MAJDOTMINDOTPAT_VERSION" | awk -F. '{print $1*10000+$2*100+$3}') - PHP_THREADSAFE=$(php -n -r 'echo ZEND_THREAD_SAFE ? 1 : 0;') - PHP_DEBUGBUILD=$(php -n -r 'echo ZEND_DEBUG_BUILD ? 1 : 0;') - PHP_BITS=$(php -n -r 'echo PHP_INT_SIZE * 8;') - PHP_EXTDIR="$(php -d display_errors=stderr -r 'echo realpath(ini_get("extension_dir"));')" -} - -# Fix apt-get being very slow on Debian Jessie -# See https://bugs.launchpad.net/ubuntu/+source/apt/+bug/1332440 -fixMaxOpenFiles() { - fixMaxOpenFiles_cur=$(ulimit -n 2>/dev/null || echo 0) - if test "$fixMaxOpenFiles_cur" -gt 10000; then - ulimit -n 10000 - fi -} - -# Get the directory containing the compiled PHP extensions -# -# Output: -# The absolute path of the extensions dir -getPHPExtensionsDir() { - php -i | grep -E '^extension_dir' | head -n1 | tr -s '[:space:]*=>[:space:]*' '|' | cut -d'|' -f2 -} - -# Normalize the name of a PHP extension -# -# Arguments: -# $1: the name of the module to be normalized -# -# Output: -# The normalized module name -normalizePHPModuleName() { - normalizePHPModuleName_name="$1" - case "$normalizePHPModuleName_name" in - *A* | *B* | *C* | *D* | *E* | *F* | *G* | *H* | *I* | *J* | *K* | *L* | *M* | *N* | *O* | *P* | *Q* | *R* | *S* | *T* | *U* | *V* | *W* | *X* | *Y* | *Z*) - normalizePHPModuleName_name="$(LC_CTYPE=C printf '%s' "$normalizePHPModuleName_name" | tr '[:upper:]' '[:lower:]')" - ;; - esac - case "$normalizePHPModuleName_name" in - datadog_trace) - normalizePHPModuleName_name=ddtrace - ;; - ioncube | ioncube\ loader) - normalizePHPModuleName_name='ioncube_loader' - ;; - pecl_http) - normalizePHPModuleName_name='http' - ;; - zend\ opcache) - normalizePHPModuleName_name='opcache' - ;; - libsodium) - if test $PHP_MAJMIN_VERSION -ge 700; then - normalizePHPModuleName_name='sodium' - fi - ;; - sodium) - if test $PHP_MAJMIN_VERSION -lt 700; then - normalizePHPModuleName_name='libsodium' - fi - ;; - *\ *) - printf '### WARNING Unrecognized module name: %s ###\n' "$1" >&2 - ;; - esac - printf '%s' "$normalizePHPModuleName_name" -} - -# Get the PECL name of PHP extension -# -# Arguments: -# $1: the name of the extension -# -# Output: -# The PECL name of the extension -getPeclModuleName() { - normalizePHPModuleName_name="$1" - case "$normalizePHPModuleName_name" in - ddtrace) - normalizePHPModuleName_name=datadog_trace - ;; - http) - normalizePHPModuleName_name=pecl_http - ;; - sodium) - normalizePHPModuleName_name=libsodium - ;; - esac - printf '%s' "$normalizePHPModuleName_name" -} - -# Parse a package.xml (or package2.xml) file and extract the module name and version -# -# Arguments: -# $1: the patho to the XML file -# -# Set these variables: -# - EXTRACTPACKAGEVERSIONFROMXML_NAME -# - EXTRACTPACKAGEVERSIONFROMXML_VERSION -# -# Output: -# Nothing -# -# Return: -# 0 (true): if the string is in the list -# 1 (false): if the string is not in the list -extractPackageVersionFromXML() { - if ! test -f "$1"; then - printf 'Unable to find the file\n%s\n' >&2 - return 1 - fi - extractPackageVersionFromXML_code="$( - cat <<'EOT' -$doc = new DOMDocument(); -if (!$doc->load($argv[1])) { - fwrite(STDERR, "Failed to load XML file\n"); - exit(1); -} -set_error_handler( - static function($errno, $errstr) { - fwrite(STDERR, trim((string) $errstr) . "\n"); - exit(1); - }, - -1 -); -$xpath = new DOMXpath($doc); -$xpath->registerNamespace('v20', 'http://pear.php.net/dtd/package-2.0'); -$xpath->registerNamespace('v21', 'http://pear.php.net/dtd/package-2.1'); -if ($xpath->query('/v20:package/v20:dependencies')->length === 1) { - $ns = 'v20:'; -} elseif ($xpath->query('/v21:package/v21:dependencies')->length === 1) { - $ns = 'v21:'; -} elseif ($xpath->query('/package')->length === 1) { - $ns = ''; -} else { - fwrite(STDERR, "Unsupported namespace of the XML of package version details\n"); -} -$nodes = $xpath->query("/{$ns}package/{$ns}name"); -$name = trim((string) $nodes[0]->nodeValue); -if ($ns === '') { - $nodes = $xpath->query("/{$ns}package/{$ns}version"); -} else { - $nodes = $xpath->query("/{$ns}package/{$ns}version/{$ns}release"); -} -$version = trim((string) $nodes[0]->nodeValue); -echo "EXTRACTPACKAGEVERSIONFROMXML_NAME='{$name}'\n"; -echo "EXTRACTPACKAGEVERSIONFROMXML_VERSION='{$version}'\n"; -exit(0); -EOT - )" - extractPackageVersionFromXML_vars="$(php -n -d display_errors=stderr -r "$extractPackageVersionFromXML_code" "$1")" - if test -z "$extractPackageVersionFromXML_vars"; then - return 1 - fi - eval "$extractPackageVersionFromXML_vars" - return 0 -} - -# Parse a module name (and optionally version) as received via command arguments, extracting the version and normalizing it -# Examples: -# xdebug-2.9.8 -# xdebug-^2 -# xdebug-^2.9 -# -# Arguments: -# $1: the name of the module to be normalized -# -# Set these variables: -# - PROCESSED_PHP_MODULE_ARGUMENT -# -# Optionally set these variables: -# - PHP_WANTEDMODULEVERSION_<...> (where <...> is the normalized module name) -# - PHP_MODULESOURCECODEPATH_<...> (where <...> is the normalized module name) -# -# Output: -# Nothing -processPHPModuleArgument() { - processPHPModuleArgument_arg="$1" - # Convert GitHub short form to long url, - # for example: from - # php-memcached-dev/php-memcached@8f106564e6bb005ca6100b12ccc89000daafa9d8 - # to - # https://codeload.github.com/php-memcached-dev/php-memcached/tar.gz/8f106564e6bb005ca6100b12ccc89000daafa9d8 - processPHPModuleArgument_arg="$(printf '%s' "$processPHPModuleArgument_arg" | sed -E 's/^([a-zA-Z0-9_.\-]+\/[a-zA-Z0-9_.\-]+)@(.+$)/https:\/\/codeload.github.com\/\1\/tar.gz\/\2/')" - # Let's check if $processPHPModuleArgument_arg is an URL - if printf '%s' "$processPHPModuleArgument_arg" | grep -Eq '^https?://[^ ]+/[^ ]+$'; then - printf 'Downloading source from %s\n' "$processPHPModuleArgument_arg" - processPHPModuleArgument_arg="$(getPackageSource "$processPHPModuleArgument_arg")" - fi - # Let's check if $processPHPModuleArgument_arg the absolute path of an existing directory - if test "$processPHPModuleArgument_arg" != "${processPHPModuleArgument_arg#/}" && test -d "$processPHPModuleArgument_arg"; then - if test -f "$processPHPModuleArgument_arg/package2.xml"; then - printf 'Checking package2.xml of directory %s... ' "$processPHPModuleArgument_arg" - if ! extractPackageVersionFromXML "$processPHPModuleArgument_arg/package2.xml"; then - return 1 - fi - elif test -f "$processPHPModuleArgument_arg/package.xml"; then - printf 'Checking package.xml of directory %s... ' "$processPHPModuleArgument_arg" - if ! extractPackageVersionFromXML "$processPHPModuleArgument_arg/package.xml"; then - return 1 - fi - else - printf 'Unable to find the package.xml file in the directory\n%s\n' "$processPHPModuleArgument_arg" - return 1 - fi - printf 'good (name: %s, version: %s)\n' "$EXTRACTPACKAGEVERSIONFROMXML_NAME" "$EXTRACTPACKAGEVERSIONFROMXML_VERSION" - PROCESSED_PHP_MODULE_ARGUMENT="$(normalizePHPModuleName "$EXTRACTPACKAGEVERSIONFROMXML_NAME")" - processPHPModuleArgument_version="$EXTRACTPACKAGEVERSIONFROMXML_VERSION" - if printf '%s' "$PROCESSED_PHP_MODULE_ARGUMENT" | grep -Eq '^[a-zA-Z0-9_]+$'; then - eval PHP_MODULESOURCECODEPATH_$PROCESSED_PHP_MODULE_ARGUMENT="$processPHPModuleArgument_arg" - else - printf 'Unable to parse the following module name:\n%s\n' "$PROCESSED_PHP_MODULE_ARGUMENT" >&2 - exit 1 - fi - else - PROCESSED_PHP_MODULE_ARGUMENT="${processPHPModuleArgument_arg%%-*}" - if test -n "$PROCESSED_PHP_MODULE_ARGUMENT" && test "$PROCESSED_PHP_MODULE_ARGUMENT" != "$processPHPModuleArgument_arg"; then - processPHPModuleArgument_version="${processPHPModuleArgument_arg#*-}" - else - processPHPModuleArgument_version='' - fi - PROCESSED_PHP_MODULE_ARGUMENT="$(normalizePHPModuleName "$PROCESSED_PHP_MODULE_ARGUMENT")" - fi - if test -n "$processPHPModuleArgument_version"; then - if printf '%s' "$PROCESSED_PHP_MODULE_ARGUMENT" | grep -Eq '^[a-zA-Z0-9_]+$'; then - eval PHP_WANTEDMODULEVERSION_$PROCESSED_PHP_MODULE_ARGUMENT="$processPHPModuleArgument_version" - elif printf '%s' "$PROCESSED_PHP_MODULE_ARGUMENT" | grep -Eq '^@[a-zA-Z0-9_]+$'; then - eval PHP_WANTEDMODULEVERSION__${PROCESSED_PHP_MODULE_ARGUMENT#@}="$processPHPModuleArgument_version" - else - printf 'Unable to parse the following module name:\n%s\n' "$PROCESSED_PHP_MODULE_ARGUMENT" >&2 - fi - fi -} - -# Get the wanted PHP module version, as specified in the command line arguments. -# -# Arguments: -# $1: the name of the module to be normalized -# -# Output: -# The wanted version (if any) -getWantedPHPModuleVersion() { - if printf '%s' "$1" | grep -Eq '^[a-zA-Z0-9_]+$'; then - eval printf '%s' "\${PHP_WANTEDMODULEVERSION_$1:-}" - elif printf '%s' "$1" | grep -Eq '^@[a-zA-Z0-9_]+$'; then - eval printf '%s' "\${PHP_WANTEDMODULEVERSION__${1#@}:-}" - fi -} - -# Get source code path of a PHP module version, as specified in the command line arguments. -# -# Arguments: -# $1: the name of the module to be normalized -# -# Output: -# The wanted version (if any) -getModuleSourceCodePath() { - if printf '%s' "$1" | grep -Eq '^[a-zA-Z0-9_]+$'; then - eval printf '%s' "\${PHP_MODULESOURCECODEPATH_$1:-}" - fi -} - -# Get the actual PHP module version, resolving it if it starts with '^' -# -# Arguments: -# $1: the name of the module -# $2: the wanted version (optional, if omitted we'll use getWantedPHPModuleVersion) -# -# Output: -# The version to be used -resolvePHPModuleVersion() { - resolvePHPModuleVersion_module="$1" - if test $# -lt 2; then - resolvePHPModuleVersion_raw="$(getWantedPHPModuleVersion "$installRemoteModule_module")" - else - resolvePHPModuleVersion_raw="$2" - fi - resolvePHPModuleVersion_afterCaret="${resolvePHPModuleVersion_raw#^}" - if test "$resolvePHPModuleVersion_raw" = "$resolvePHPModuleVersion_afterCaret"; then - printf '%s' "$resolvePHPModuleVersion_raw" - return - fi - case "$resolvePHPModuleVersion_afterCaret" in - ?*@snapshot | ?*@devel | ?*@alpha | ?*@beta | ?*@stable) - resolvePHPModuleVersion_wantedStability="${resolvePHPModuleVersion_afterCaret##*@}" - resolvePHPModuleVersion_wantedVersion="${resolvePHPModuleVersion_afterCaret%@*}" - ;; - *) - resolvePHPModuleVersion_wantedStability='' - resolvePHPModuleVersion_wantedVersion="$resolvePHPModuleVersion_afterCaret" - ;; - esac - resolvePHPModuleVersion_peclModule="$(getPeclModuleName "$resolvePHPModuleVersion_module")" - resolvePHPModuleVersion_xml="$(curl -sSLf "http://pecl.php.net/rest/r/$resolvePHPModuleVersion_peclModule/allreleases.xml")" - # remove line endings, collapse spaces - resolvePHPModuleVersion_versions="$(printf '%s' "$resolvePHPModuleVersion_xml" | tr -s ' \t\r\n' ' ')" - # one line per release (eg 1.2.3stable) - resolvePHPModuleVersion_versions="$(printf '%s' "$resolvePHPModuleVersion_versions" | sed -r 's#$resolvePHPModuleVersion_wantedStability")" - fi - # remove everything's up to '' (included) - resolvePHPModuleVersion_versions="$(printf '%s' "$resolvePHPModuleVersion_versions" | sed 's#^.*##')" - # keep just the versions - resolvePHPModuleVersion_versions="$(printf '%s' "$resolvePHPModuleVersion_versions" | cut -d'<' -f1)" - resetIFS - for resolvePHPModuleVersion_version in $resolvePHPModuleVersion_versions; do - resolvePHPModuleVersion_suffix="${resolvePHPModuleVersion_version#$resolvePHPModuleVersion_wantedVersion}" - if test "$resolvePHPModuleVersion_version" != "${resolvePHPModuleVersion_version#$resolvePHPModuleVersion_wantedVersion.}"; then - # Example: looking for 1.0, found 1.0.1 - printf '%s' "$resolvePHPModuleVersion_version" - return - fi - done - for resolvePHPModuleVersion_version in $resolvePHPModuleVersion_versions; do - resolvePHPModuleVersion_suffix="${resolvePHPModuleVersion_version#$resolvePHPModuleVersion_wantedVersion}" - if test "$resolvePHPModuleVersion_version" = "$resolvePHPModuleVersion_suffix"; then - continue - fi - if test -z "$resolvePHPModuleVersion_suffix"; then - # Example: looking for 1.0, found exactly it - printf '%s' "$resolvePHPModuleVersion_version" - return - fi - case "$resolvePHPModuleVersion_suffix" in - [0-9]) - # Example: looking for 1.1, but this is 1.10 - ;; - *) - # Example: looking for 1.1, this is 1.1rc1 - printf '%s' "$resolvePHPModuleVersion_version" - return - ;; - esac - done - printf 'Unable to find a version of "%s" compatible with "%s"\nAvailable versions are:\n%s\n' "$resolvePHPModuleVersion_module" "$resolvePHPModuleVersion_raw" "$resolvePHPModuleVersion_versions" >&2 - exit 1 -} - -# Get the actual version of a PECL pmodule, resolving 'latest', 'stable', 'beta', 'alpha', 'devel'. -# -# Arguments: -# $1: the module name as known on the PECL archive -# $2: the version to be resolved -# Output: -# $2 itself if $1 is not 'latest', 'stable', 'beta', 'alpha', or 'devel', the actual version otherwise -resolvePeclStabilityVersion() { - case "$2" in - latest | stable | beta | alpha | devel) ;; - *) - printf '%s' "$2" - return - ;; - esac - resolvePeclStabilityVersion_peclModule="$(getPeclModuleName "$1")" - peclStabilityFlagToVersion_url="http://pecl.php.net/rest/r/$resolvePeclStabilityVersion_peclModule/$2.txt" - if ! peclStabilityFlagToVersion_result="$(curl -sSLf "$peclStabilityFlagToVersion_url")"; then - peclStabilityFlagToVersion_result='' - fi - if test -z "$peclStabilityFlagToVersion_result"; then - printf 'Failed to resolve the PECL package version "%s" of %s from %s\n' "$2" "$1" "$peclStabilityFlagToVersion_url" >&2 - exit 1 - fi - printf '%s' "$peclStabilityFlagToVersion_result" -} - -# Set these variables: -# - PHP_PREINSTALLED_MODULES the normalized list of PHP modules installed before running this script -setPHPPreinstalledModules() { - PHP_PREINSTALLED_MODULES='' - IFS=' -' - for getPHPInstalledModules_module in $(php -m); do - getPHPInstalledModules_moduleNormalized='' - case "$getPHPInstalledModules_module" in - \[PHP\ Modules\]) ;; - \[Zend\ Modules\]) - break - ;; - *) - getPHPInstalledModules_moduleNormalized="$(normalizePHPModuleName "$getPHPInstalledModules_module")" - if ! stringInList "$getPHPInstalledModules_moduleNormalized" "$PHP_PREINSTALLED_MODULES"; then - PHP_PREINSTALLED_MODULES="$PHP_PREINSTALLED_MODULES $getPHPInstalledModules_moduleNormalized" - fi - ;; - esac - done - if command -v composer >/dev/null; then - PHP_PREINSTALLED_MODULES="$PHP_PREINSTALLED_MODULES @composer" - fi - resetIFS - PHP_PREINSTALLED_MODULES="${PHP_PREINSTALLED_MODULES# }" -} - -# Get the handles of the modules to be installed -# -# Arguments: -# $@: all module handles -# -# Set: -# PHP_MODULES_TO_INSTALL -# -# Output: -# Nothing -processCommandArguments() { - processCommandArguments_endArgs=0 - PHP_MODULES_TO_INSTALL='' - # Support deprecated flag IPE_FIX_CACERTS - case "${IPE_FIX_CACERTS:-}" in - 1 | y* | Y*) - PHP_MODULES_TO_INSTALL="$PHP_MODULES_TO_INSTALL @fix_letsencrypt" - ;; - esac - while :; do - if test $# -lt 1; then - break - fi - processCommandArguments_skip=0 - if test $processCommandArguments_endArgs -eq 0; then - case "$1" in - --cleanup) - printf '### WARNING the %s option is deprecated (we always cleanup everything) ###\n' "$1" >&2 - processCommandArguments_skip=1 - ;; - --) - processCommandArguments_skip=1 - processCommandArguments_endArgs=1 - ;; - -*) - printf 'Unrecognized option: %s\n' "$1" >&2 - exit 1 - ;; - esac - fi - if test $processCommandArguments_skip -eq 0; then - processPHPModuleArgument "$1" - processCommandArguments_name="$PROCESSED_PHP_MODULE_ARGUMENT" - if stringInList "$processCommandArguments_name" "$PHP_MODULES_TO_INSTALL"; then - printf '### WARNING Duplicated module name specified: %s ###\n' "$processCommandArguments_name" >&2 - elif stringInList "$processCommandArguments_name" "$PHP_PREINSTALLED_MODULES"; then - printf '### WARNING Module already installed: %s ###\n' "$processCommandArguments_name" >&2 - else - PHP_MODULES_TO_INSTALL="$PHP_MODULES_TO_INSTALL $processCommandArguments_name" - fi - fi - shift - done - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL# }" -} - -# Add a module that's required by another module -# -# Arguments: -# $1: module that requires another module -# $2: the required module -# -# Update: -# PHP_MODULES_TO_INSTALL -# -# Output: -# Nothing -checkRequiredModule() { - if ! stringInList "$1" "$PHP_MODULES_TO_INSTALL"; then - return - fi - if stringInList "$2" "$PHP_PREINSTALLED_MODULES"; then - return - fi - PHP_MODULES_TO_INSTALL="$(removeStringFromList "$1" "$PHP_MODULES_TO_INSTALL")" - if ! stringInList "$2" "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$PHP_MODULES_TO_INSTALL $2" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL# }" - fi - PHP_MODULES_TO_INSTALL="$PHP_MODULES_TO_INSTALL $1" -} - -# Sort the modules to be installed, in order to fix dependencies -# -# Update: -# PHP_MODULES_TO_INSTALL -# -# Output: -# Nothing -sortModulesToInstall() { - # apcu_bc requires apcu - checkRequiredModule 'apcu_bc' 'apcu' - # http requires propro (for PHP < 8) and raphf - if test $PHP_MAJMIN_VERSION -le 704; then - checkRequiredModule 'http' 'propro' - fi - checkRequiredModule 'http' 'raphf' - # event requires sockets (for PHP <= 5.6) - if test $PHP_MAJMIN_VERSION -le 506; then - checkRequiredModule event sockets - fi - # relay requires msgpack - checkRequiredModule relay msgpack - # relay requires igbinary - checkRequiredModule relay igbinary - # pq requires raphf - checkRequiredModule pq raphf - # phalcon up to v5.0.0beta3 requires psr - if test $PHP_MAJMINPAT_VERSION -lt 70401; then - checkRequiredModule phalcon psr - fi - # Some module installation may use sockets if available: move it before other modules - if stringInList 'sockets' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'sockets' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="sockets $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # Some module installation may use igbinary if available: move it before other modules - if stringInList 'igbinary' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'igbinary' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="igbinary $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # Some module installation may use msgpack if available: move it before other modules - if stringInList 'msgpack' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'msgpack' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="msgpack $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # Some module installation may use socket if available: move it before other modules - if stringInList 'socket' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'socket' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="socket $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # Some module installation may use apcu if available: move it before other modules - if stringInList 'apcu' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'apcu' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="apcu $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # Some module installation may use raphf if available: move it before other modules - if stringInList 'raphf' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'raphf' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="raphf $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # In any case, first of all, we need to install composer - if stringInList '@composer' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList '@composer' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="@composer $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi -} - -# Expand the IPE_ASPELL_LANGUAGES environment variable into apk/apt package names -expandASpellDictionaries() { - expandASpellDictionaries_languages="${IPE_ASPELL_LANGUAGES:-en}" - expandASpellDictionaries_result='' - resetIFS - for expandASpellDictionaries_language in $expandASpellDictionaries_languages; do - expandASpellDictionaries_result="$expandASpellDictionaries_result aspell-$expandASpellDictionaries_language" - done - printf '%s' "${expandASpellDictionaries_result# }" -} - -# Get the required APT/APK packages for a specific PHP version and for the list of module handles -# -# Arguments: -# $@: the PHP module handles -# -# Set: -# PACKAGES_PERSISTENT_NEW the list of packages required at runtume that must be installed -# PACKAGES_PERSISTENT_PRE the list of packages required at runtume that are already installed -# PACKAGES_VOLATILE the list of packages required at compile time that must be installed -# PACKAGES_PREVIOUS the list of packages (with their version) that are installed right now (calculated only on Debian and only if PACKAGES_PERSISTENT_NEW or PACKAGES_VOLATILE are not empty) -# COMPILE_LIBS -buildRequiredPackageLists() { - buildRequiredPackageLists_persistent='' - buildRequiredPackageLists_volatile='' - COMPILE_LIBS='' - case "$DISTRO" in - alpine) - apk update - ;; - debian) - invokeAptGetUpdate - ;; - esac - case "$DISTRO_VERSION" in - alpine@*) - if test $# -gt 1 || test "${1:-}" != '@composer'; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $PHPIZE_DEPS" - fi - if test -z "$(apk info 2>/dev/null | grep -E ^libssl)"; then - buildRequiredPackageLists_libssl="$(apk search | grep -E '^libssl[0-9]' | head -1 | cut -d- -f1)" - elif test -z "$(apk info 2>/dev/null | grep -E '^libressl.*-libtls')" && test -z "$(apk info 2>/dev/null | grep -E '^libressl.*-libssl')" && test -z "$(apk info 2>/dev/null | grep -E '^libretls-')"; then - buildRequiredPackageLists_libssl=$(apk search -q libressl*-libtls) - else - buildRequiredPackageLists_libssl='' - fi - if test $DISTRO_MAJMIN_VERSION -le 313; then - buildRequiredPackageLists_libssldev='libressl-dev' - else - buildRequiredPackageLists_libssldev='libretls-dev' - fi - buildRequiredPackageLists_icuPersistent='' - if test $DISTRO_MAJMIN_VERSION -ge 316; then - case "${IPE_ICU_EN_ONLY:-}" in - 1 | y* | Y*) ;; - *) - buildRequiredPackageLists_icuPersistent='icu-data-full' - ;; - esac - fi - ;; - debian@9) - buildRequiredPackageLists_libssldev='libssl1.0-dev' - ;; - debian@*) - buildRequiredPackageLists_libssldev='^libssl([0-9]+(\.[0-9]+)*)?-dev$' - ;; - esac - if test $USE_PICKLE -gt 1; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile git" - fi - while :; do - if test $# -lt 1; then - break - fi - case "$1@$DISTRO" in - @composer@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent unzip" - ;; - amqp@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent rabbitmq-c" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile rabbitmq-c-dev" - ;; - amqp@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^librabbitmq[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile librabbitmq-dev libssh-dev" - ;; - bz2@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libbz2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile bzip2-dev" - ;; - bz2@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libbz2-dev" - ;; - cassandra@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent cassandra-cpp-driver gmp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cassandra-cpp-driver-dev gmp-dev" - ;; - cmark@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake" - ;; - cmark@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake" - ;; - ddtrace@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libgcc" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile curl-dev" - ;; - ddtrace@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libcurl4-openssl-dev" - ;; - dba@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent db" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile db-dev" - ;; - dba@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile ^libdb5\.3-dev$" - if test $PHP_MAJMIN_VERSION -le 505; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile patch" - fi - ;; - decimal@debian) - if test $DISTRO_MAJMIN_VERSION -lt 1200; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libmpdec[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmpdec-dev" - fi - ;; - ecma_intl@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent icu-libs $buildRequiredPackageLists_icuPersistent" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev libidn-dev" - ;; - ecma_intl@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libicu[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libicu-dev" - ;; - enchant@alpine) - if test $DISTRO_MAJMIN_VERSION -ge 312; then - if test $PHP_MAJMIN_VERSION -ge 800; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent enchant2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile enchant2-dev" - else - # The system provides libenchant2, supported since PHP 8.0: we need to build libenchant1 on our own - if ! isLibenchant1Installed; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent glib aspell-libs libhunspell" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile glib-dev aspell-dev hunspell-dev" - COMPILE_LIBS="$COMPILE_LIBS libenchant1" - fi - fi - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent enchant" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile enchant-dev" - fi - ;; - enchant@debian) - if test $DISTRO_VERSION_NUMBER -ge 11; then - if test $PHP_MAJMIN_VERSION -ge 800; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libenchant-2-2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libenchant-2-dev" - else - if ! isLibenchant1Installed; then - # The system provides libenchant2, supported since PHP 8.0: we need to build libenchant1 on our own - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent aspell-en libhunspell-1.7-0" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libglib2.0-dev libaspell-dev libhunspell-dev" - COMPILE_LIBS="$COMPILE_LIBS libenchant1" - fi - fi - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libenchant1c2a" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libenchant-dev" - fi - ;; - event@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libevent $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libevent-dev $buildRequiredPackageLists_libssldev" - ;; - event@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libevent[0-9\.\-]*$ ^libevent-openssl[0-9\.\-]*$ ^libevent-extra[0-9\.\-]*$ ^libevent-pthreads[0-9\.\-]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libevent-dev $buildRequiredPackageLists_libssldev" - ;; - ffi@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libffi" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libffi-dev" - ;; - ffi@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libffi-dev" - ;; - ftp@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev" - ;; - ftp@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev" - ;; - gd@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent freetype libjpeg-turbo libpng libxpm" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetype-dev libjpeg-turbo-dev libpng-dev libxpm-dev" - if test $PHP_MAJMIN_VERSION -le 506; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libvpx" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libvpx-dev" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libwebp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libwebp-dev" - if test $PHP_MAJMIN_VERSION -ge 801; then - if test $DISTRO_MAJMIN_VERSION -ge 315; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libavif aom-libs libdav1d" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libavif-dev aom-dev dav1d-dev" - elif isLibaomInstalled && isLibdav1dInstalled && isLibyuvInstalled && isLibavifInstalled; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - else - case "${IPE_GD_WITHOUTAVIF:-}" in - 1 | y* | Y*) ;; - *) - if ! isLibaomInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libaom" - fi - if ! isLibdav1dInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libdav1d" - fi - if ! isLibyuvInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libyuv" - fi - if ! isLibavifInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libavif" - fi - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake nasm meson" - ;; - esac - fi - fi - fi - ;; - gd@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libfreetype6 libjpeg62-turbo ^libpng[0-9]+-[0-9]+$ libxpm4" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libfreetype6-dev libjpeg62-turbo-dev libpng-dev libxpm-dev" - if test $PHP_MAJMIN_VERSION -le 506; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libvpx[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libvpx-dev" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libwebp[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libwebp-dev" - if test $PHP_MAJMIN_VERSION -ge 801; then - if test $DISTRO_VERSION_NUMBER -ge 12; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libavif[0-9]+$ ^libaom[0-9]+$ ^libdav1d[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libavif-dev libaom-dev libdav1d-dev" - elif ! isLibaomInstalled || ! isLibdav1dInstalled || ! isLibyuvInstalled || ! isLibavifInstalled; then - case "${IPE_GD_WITHOUTAVIF:-}" in - 1 | y* | Y*) ;; - *) - if ! isLibaomInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libaom" - fi - if ! isLibdav1dInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libdav1d" - fi - if ! isLibyuvInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libyuv" - fi - if ! isLibavifInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libavif" - fi - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake nasm meson" - ;; - esac - fi - fi - fi - ;; - gearman@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++ libuuid" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile boost-dev gperf libmemcached-dev libevent-dev util-linux-dev" - ;; - gearman@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libgearman[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgearman-dev" - ;; - geoip@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent geoip" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile geoip-dev" - ;; - geoip@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libgeoip1[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgeoip-dev" - ;; - geos@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent geos-dev" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile geos" - ;; - geos@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libgeos-c1(v[0-9]*)?$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgeos-dev" - ;; - gettext@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libintl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile gettext-dev" - ;; - gmagick@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent graphicsmagick libgomp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile graphicsmagick-dev libtool" - ;; - gmagick@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libgraphicsmagick(-q16-)?[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgraphicsmagick1-dev" - ;; - gmp@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gmp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile gmp-dev" - ;; - gmp@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgmp-dev" - ;; - gnupg@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gpgme" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile gpgme-dev" - ;; - gnupg@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libgpgme[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile ^libgpgme[0-9]*-dev$" - ;; - grpc@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev linux-headers" - ;; - grpc@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev" - ;; - http@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libevent" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev curl-dev libevent-dev" - if test $PHP_MAJMIN_VERSION -le 506; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libidn" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libidn-dev" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent icu-libs $buildRequiredPackageLists_icuPersistent libidn" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev libidn-dev" - fi - ;; - http@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libcurl3-gnutls ^libevent[0-9\.\-]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev libgnutls28-dev libcurl4-gnutls-dev libevent-dev" - if test $PHP_MAJMIN_VERSION -le 506; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile ^libidn1[0-9+]-dev$" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libicu[0-9]+$ ^libidn2-[0-9+]$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libicu-dev ^libidn2-[0-9+]-dev$ ^libgcrypt[0-9]+-dev$" - fi - ;; - imagick@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent imagemagick libgomp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile imagemagick-dev" - if [ $DISTRO_MAJMIN_VERSION -ge 319 ]; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ghostscript libheif libjxl libraw librsvg" - fi - ;; - imagick@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libmagickwand-6.q16-[0-9]+$ ^libmagickcore-6.q16-[0-9]+-extra$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmagickwand-dev" - ;; - imap@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent c-client $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile krb5-dev imap-dev $buildRequiredPackageLists_libssldev" - ;; - imap@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libc-client2007e" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libkrb5-dev" - case "$DISTRO_VERSION" in - debian@9) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev comerr-dev krb5-multidev libc-client2007e libgssrpc4 libkadm5clnt-mit11 libkadm5srv-mit11 libkdb5-8 libpam0g-dev libssl-doc mlock" - ;; - *) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libc-client-dev" - ;; - esac - ;; - interbase@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev ncurses-dev" - if ! isFirebirdInstalled; then - COMPILE_LIBS="$COMPILE_LIBS firebird" - fi - ;; - interbase@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libfbclient2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile firebird-dev libib-util" - ;; - intl@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent icu-libs $buildRequiredPackageLists_icuPersistent" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev" - ;; - intl@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libicu[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libicu-dev" - ;; - ion@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake git" - ;; - ion@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake git" - ;; - ldap@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libldap" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile openldap-dev" - ;; - ldap@debian) - if test $DISTRO_VERSION_NUMBER -ge 9; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libldap-common" - fi - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libldap2-dev" - ;; - luasandbox@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lua5.1-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile lua5.1-dev" - ;; - luasandbox@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblua5.1-0" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liblua5.1-0-dev" - ;; - lz4@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lz4-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile lz4-dev" - ;; - lz4@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblz4-1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liblz4-dev" - ;; - maxminddb@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmaxminddb" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmaxminddb-dev" - ;; - maxminddb@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libmaxminddb[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmaxminddb-dev" - ;; - memprof@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent judy" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile judy-dev bsd-compat-headers" - ;; - memprof@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libjudydebian1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libjudy-dev" - ;; - mcrypt@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmcrypt" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmcrypt-dev" - ;; - mcrypt@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmcrypt4" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmcrypt-dev" - ;; - memcache@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev" - ;; - memcache@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev" - ;; - memcached@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmemcached-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmemcached-dev zlib-dev" - ;; - memcached@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmemcachedutil2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmemcached-dev zlib1g-dev" - if test $DISTRO_MAJMIN_VERSION -ge 12; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev" - fi - ;; - mongo@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsasl $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev cyrus-sasl-dev" - ;; - mongo@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev libsasl2-dev" - ;; - mongodb@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent icu-libs $buildRequiredPackageLists_icuPersistent libsasl $buildRequiredPackageLists_libssl snappy" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev cyrus-sasl-dev snappy-dev $buildRequiredPackageLists_libssldev zlib-dev" - if test $PHP_MAJMIN_VERSION -ge 704; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent zstd-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zstd-dev" - fi - ;; - mongodb@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libsnappy[0-9]+(v[0-9]+)?$ ^libicu[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libicu-dev libsasl2-dev libsnappy-dev $buildRequiredPackageLists_libssldev zlib1g-dev" - if test $PHP_MAJMIN_VERSION -ge 704; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libzstd[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libzstd-dev" - fi - ;; - mosquitto@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent mosquitto-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile mosquitto-dev" - ;; - mosquitto@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmosquitto1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmosquitto-dev" - ;; - mssql@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent freetds" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - mssql@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsybdb5" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - oauth@alpine) - if test $PHP_MAJMIN_VERSION -ge 700; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile pcre-dev" - fi - ;; - oauth@debian) - if test $PHP_MAJMIN_VERSION -ge 700; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libpcre3-dev" - fi - ;; - oci8@alpine | pdo_oci@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libaio libc6-compat libnsl" - if test $DISTRO_MAJMIN_VERSION -le 307; then - # The unzip tool of Alpine 3.7 can't extract symlinks from ZIP archives: let's use bsdtar instead - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libarchive-tools" - fi - ;; - oci8@debian | pdo_oci@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libaio[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unzip" - ;; - odbc@alpine | pdo_odbc@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent unixodbc" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unixodbc-dev" - ;; - odbc@debian | pdo_odbc@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libodbc1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unixodbc-dev" - ;; - openswoole@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent postgresql-libs libstdc++ $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile curl-dev postgresql-dev linux-headers $buildRequiredPackageLists_libssldev" - ;; - openswoole@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libcurl3-gnutls libpq5" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev libcurl4-gnutls-dev libpq-dev" - ;; - parle@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - ;; - pdo_dblib@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent freetds" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - pdo_dblib@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsybdb5" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - pdo_firebird@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev ncurses-dev" - if ! isFirebirdInstalled; then - COMPILE_LIBS="$COMPILE_LIBS firebird" - if test $PHP_MAJMIN_VERSION -ge 804; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev" - if ! isLibTommathInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libtommath" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake" - fi - if ! isLibTomcryptInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libtomcrypt" - fi - fi - fi - ;; - pdo_firebird@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libfbclient2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile firebird-dev libib-util" - ;; - pgsql@alpine | pdo_pgsql@alpine | pq@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent postgresql-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile postgresql-dev" - ;; - pgsql@debian | pdo_pgsql@debian | pq@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libpq5" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libpq-dev" - ;; - php_trie@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - ;; - phpy@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent python3" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile python3-dev" - ;; - phpy@debian) - if test $DISTRO_VERSION_NUMBER -ge 12; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libpython3.11" - elif test $DISTRO_VERSION_NUMBER -ge 11; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libpython3.9" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libpython3.7" - fi - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile python3-dev" - ;; - pkcs11@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent softhsm" - ;; - pkcs11@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsofthsm2" - ;; - pspell@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent aspell-libs $(expandASpellDictionaries)" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile aspell-dev" - ;; - pspell@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libaspell15 $(expandASpellDictionaries)" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libpspell-dev" - ;; - rdkafka@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent librdkafka" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile librdkafka-dev" - ;; - rdkafka@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^librdkafka\+*[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile librdkafka-dev" - ;; - recode@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent recode" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile recode-dev" - ;; - recode@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent librecode0" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile librecode-dev" - ;; - redis@alpine) - if test $PHP_MAJMIN_VERSION -ge 700; then - case "$DISTRO_VERSION" in - alpine@3.7) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent zstd" - ;; - *) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent zstd-libs" - ;; - esac - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zstd-dev" - if test $PHP_MAJMIN_VERSION -ge 702; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lz4-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile lz4-dev" - fi - fi - ;; - redis@debian) - if test $PHP_MAJMIN_VERSION -ge 700; then - case "$DISTRO_VERSION" in - debian@8) - ## There's no APT package for libzstd - ;; - debian@9) - ## libzstd is too old (available: 1.1.2, required: 1.3.0+) - ;; - *) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libzstd[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libzstd-dev" - ;; - esac - fi - if test $PHP_MAJMIN_VERSION -ge 702; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblz4-1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liblz4-dev" - fi - ;; - relay@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lz4-libs zstd-libs" - if test $DISTRO_MAJMIN_VERSION -ge 317; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent $buildRequiredPackageLists_libssl" - fi - ;; - saxon@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_volatile unzip" - ;; - seasclick@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - ;; - simdjson@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - ;; - smbclient@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsmbclient" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile samba-dev" - ;; - smbclient@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsmbclient" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsmbclient-dev" - ;; - snappy@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent snappy" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile snappy-dev" - ;; - snappy@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libsnappy1(v[0-9]+)?$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsnappy-dev" - ;; - snmp@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent net-snmp-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile net-snmp-dev" - ;; - snmp@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent snmp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsnmp-dev" - ;; - snuffleupagus@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent pcre" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile pcre-dev" - ;; - snuffleupagus@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libpcre3-dev" - ;; - soap@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - soap@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - sockets@alpine) - if test $PHP_MAJMIN_VERSION -ge 802; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile linux-headers" - fi - ;; - sodium@alpine | libsodium@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsodium" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsodium-dev" - ;; - sodium@debian | libsodium@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libsodium[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsodium-dev" - ;; - solr@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile curl-dev libxml2-dev" - ;; - solr@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libcurl3-gnutls" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libcurl4-gnutls-dev libxml2-dev" - ;; - sourceguardian@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent eudev-libs" - ;; - spx@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev" - ;; - spx@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev" - ;; - sqlsrv@alpine | pdo_sqlsrv@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++ unixodbc" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unixodbc-dev" - ;; - sqlsrv@debian | pdo_sqlsrv@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent unixodbc" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unixodbc-dev" - if ! isMicrosoftSqlServerODBCInstalled; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile gnupg apt-transport-https" - fi - ;; - ssh2@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libssh2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libssh2-dev" - ;; - ssh2@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libssh2-1-dev" - ;; - stomp@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev" - ;; - stomp@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev" - ;; - swoole@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent postgresql-libs libstdc++ $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile curl-dev postgresql-dev linux-headers $buildRequiredPackageLists_libssldev" - if test $PHP_MAJMIN_VERSION -ge 702; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent c-ares" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile c-ares-dev" - if test $PHP_MAJMIN_VERSION -ge 801; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent zstd-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile sqlite-dev zstd-dev" - fi - fi - case "${IPE_SWOOLE_WITHOUT_IOURING:-}" in - 1 | y* | Y*) ;; - *) - # iouring support in swoole 6 requires liburing 2.5+: available since Alpine 3.19 - # but with Alpine 3.19 we have a "invalid use of incomplete type 'const struct statx'" error - if test $DISTRO_MAJMIN_VERSION -ge 320; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liburing" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liburing-dev" - fi - ;; - esac - ;; - swoole@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libcurl3-gnutls libpq5" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev libcurl4-gnutls-dev libpq-dev" - if test $PHP_MAJMIN_VERSION -ge 702; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libc-ares2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libc-ares-dev" - if test $PHP_MAJMIN_VERSION -ge 800; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libbrotli1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev libbrotli-dev" - if test $PHP_MAJMIN_VERSION -ge 801; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsqlite3-dev" - if test $DISTRO_VERSION_NUMBER -ge 11; then - # swoole 6 requires libzstd >= 1.4.0, but on debian 10 (buster) we have 1.3.8 - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libzstd[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libzstd-dev" - fi - fi - fi - fi - if test $DISTRO_VERSION_NUMBER -ge 13; then - # iouring support in swoole 6 requires liburing 2.5+: available since Debian Trixie (13) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liburing2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liburing-dev" - fi - ;; - sybase_ct@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent freetds" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - sybase_ct@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libct4" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - tdlib@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++ $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile git cmake gperf zlib-dev $buildRequiredPackageLists_libssldev linux-headers readline-dev" - ;; - tdlib@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile git cmake gperf zlib1g-dev $buildRequiredPackageLists_libssldev" - ;; - tensor@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent openblas" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile lapack-dev openblas-dev" - if test $DISTRO_MAJMIN_VERSION -le 317; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lapack" - if test $DISTRO_MAJMIN_VERSION -le 316; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libexecinfo" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libexecinfo-dev" - if test $DISTRO_MAJMIN_VERSION -le 310; then - if ! stringInList --force-overwrite "$IPE_APK_FLAGS"; then - IPE_APK_FLAGS="$IPE_APK_FLAGS --force-overwrite" - fi - fi - fi - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblapack" - fi - ;; - tensor@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblapacke" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liblapack-dev libopenblas-dev liblapacke-dev" - if test $DISTRO_VERSION_NUMBER -le 9; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-6 libopenblas-base" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-6-dev" - elif test $DISTRO_VERSION_NUMBER -le 10; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-8 libopenblas-base" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-8-dev" - elif test $DISTRO_VERSION_NUMBER -le 11; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-10 libopenblas-base" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-10-dev" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-12 libopenblas0" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-12-dev" - fi - ;; - tidy@alpine) - if test $DISTRO_MAJMIN_VERSION -ge 315; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent tidyhtml" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent tidyhtml-libs" - fi - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile tidyhtml-dev" - ;; - tidy@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libtidy-?[0-9][0-9.\-]*(deb[0-9])?$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libtidy-dev" - ;; - uuid@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libuuid" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile util-linux-dev" - ;; - uuid@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile uuid-dev" - ;; - uv@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libuv" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libuv-dev" - ;; - uv@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libuv1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libuv1-dev" - ;; - vips@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent vips" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile vips-dev" - ;; - vips@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libvips" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libvips-dev" - ;; - wddx@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - wddx@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - wikidiff2@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile git" - ;; - wikidiff2@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libthai0" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile git libthai-dev" - ;; - xdebug@alpine) - if test $PHP_MAJMIN_VERSION -ge 800; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile linux-headers" - fi - ;; - xlswriter@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev" - ;; - xlswriter@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev" - ;; - xmldiff@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - xmldiff@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - xmlrpc@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - xmlrpc@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - xpass@alpine) - if ! isLibXCryptInstalled; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile linux-headers" - COMPILE_LIBS="$COMPILE_LIBS libxcrypt" - fi - ;; - xsl@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libxslt" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxslt-dev libgcrypt-dev" - ;; - xsl@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libxslt1\.1$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxslt-dev" - ;; - yaml@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent yaml" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile yaml-dev" - ;; - yaml@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libyaml-0-2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libyaml-dev" - ;; - yar@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile curl-dev" - ;; - yar@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libcurl3-gnutls" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libcurl4-gnutls-dev" - ;; - zip@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libzip" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake gnutls-dev libzip-dev $buildRequiredPackageLists_libssldev zlib-dev" - ;; - zip@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libzip[0-9]$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake gnutls-dev $buildRequiredPackageLists_libssldev libzip-dev libbz2-dev zlib1g-dev" - case "$DISTRO_VERSION" in - debian@8) - # Debian Jessie doesn't seem to provide libmbedtls - ;; - *) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libmbedtls[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmbedtls-dev" - ;; - esac - ;; - zmq@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent zeromq-dev" - ;; - zmq@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libzmq3-dev" - ;; - zookeeper@alpine) - if ! test -f /usr/local/include/zookeeper/zookeeper.h; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile maven automake libtool openjdk8" - fi - ;; - zookeeper@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libzookeeper-mt2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libzookeeper-mt-dev" - ;; - esac - shift - done - PACKAGES_PERSISTENT_NEW='' - PACKAGES_PERSISTENT_PRE='' - PACKAGES_VOLATILE='' - PACKAGES_PREVIOUS='' - if test -z "$buildRequiredPackageLists_persistent$buildRequiredPackageLists_volatile"; then - return - fi - if test -n "$buildRequiredPackageLists_persistent"; then - PACKAGES_PERSISTENT_NEW="$(expandPackagesToBeInstalled $buildRequiredPackageLists_persistent)" - if test -s "$IPE_ERRFLAG_FILE"; then - exit 1 - fi - resetIFS - for buildRequiredPackageLists_package in $buildRequiredPackageLists_persistent; do - buildRequiredPackageLists_package="$(expandInstalledSystemPackageName "$buildRequiredPackageLists_package")" - if test -n "$buildRequiredPackageLists_package"; then - PACKAGES_PERSISTENT_PRE="$PACKAGES_PERSISTENT_PRE $buildRequiredPackageLists_package" - fi - done - PACKAGES_PERSISTENT_PRE="${PACKAGES_PERSISTENT_PRE# }" - fi - if test -n "$buildRequiredPackageLists_volatile"; then - buildRequiredPackageLists_packages="$(expandPackagesToBeInstalled $buildRequiredPackageLists_volatile)" - if test -s "$IPE_ERRFLAG_FILE"; then - exit 1 - fi - resetIFS - for buildRequiredPackageLists_package in $buildRequiredPackageLists_packages; do - if ! stringInList "$buildRequiredPackageLists_package" "$PACKAGES_PERSISTENT_NEW"; then - if test "$buildRequiredPackageLists_package" != icu-data-en || ! stringInList icu-data-full "$PACKAGES_PERSISTENT_NEW"; then - PACKAGES_VOLATILE="$PACKAGES_VOLATILE $buildRequiredPackageLists_package" - fi - fi - done - PACKAGES_VOLATILE="${PACKAGES_VOLATILE# }" - fi - if test -n "$PACKAGES_PERSISTENT_NEW$PACKAGES_VOLATILE"; then - case "$DISTRO" in - debian) - PACKAGES_PREVIOUS="$(dpkg --get-selections | grep -E '\sinstall$' | awk '{ print $1 }')" - ;; - esac - fi -} - -# Get the full list of APT/APK packages that will be installed, given the required packages -# -# Arguments: -# $1: the list of required APT/APK packages -# -# Output: -# Space-separated list of every APT/APK packages that will be installed -expandPackagesToBeInstalled() { - expandPackagesToBeInstalled_result='' - case "$DISTRO" in - alpine) - expandPackagesToBeInstalled_log="$(apk add --simulate $@ 2>&1 || printf '\nERROR: apk failed\n')" - if test -n "$(printf '%s' "$expandPackagesToBeInstalled_log" | grep -E '^ERROR:')"; then - printf 'FAILED TO LIST THE WHOLE PACKAGE LIST FOR\n' >&2 - printf '%s ' "$@" >&2 - printf '\n\nCOMMAND OUTPUT:\n%s\n' "$expandPackagesToBeInstalled_log" >&2 - echo 'y' >"$IPE_ERRFLAG_FILE" - exit 1 - fi - IFS=' -' - for expandPackagesToBeInstalled_line in $expandPackagesToBeInstalled_log; do - if test -n "$(printf '%s' "$expandPackagesToBeInstalled_line" | grep -E '^\([0-9]*/[0-9]*) Installing ')"; then - expandPackagesToBeInstalled_result="$expandPackagesToBeInstalled_result $(printf '%s' "$expandPackagesToBeInstalled_line" | cut -d ' ' -f 3)" - fi - done - resetIFS - ;; - debian) - expandPackagesToBeInstalled_log="$(apt-get install -sy --no-install-recommends $@ 2>&1 || printf '\nE: apt-get failed\n')" - if test -n "$(printf '%s' "$expandPackagesToBeInstalled_log" | grep -E '^E:')"; then - printf 'FAILED TO LIST THE WHOLE PACKAGE LIST FOR\n' >&2 - printf '%s ' "$@" >&2 - printf '\n\nCOMMAND OUTPUT:\n%s\n' "$expandPackagesToBeInstalled_log" >&2 - echo 'y' >"$IPE_ERRFLAG_FILE" - exit 1 - fi - expandPackagesToBeInstalled_inNewPackages=0 - IFS=' -' - for expandPackagesToBeInstalled_line in $expandPackagesToBeInstalled_log; do - if test $expandPackagesToBeInstalled_inNewPackages -eq 0; then - if test "$expandPackagesToBeInstalled_line" = 'The following NEW packages will be installed:'; then - expandPackagesToBeInstalled_inNewPackages=1 - fi - elif test "$expandPackagesToBeInstalled_line" = "${expandPackagesToBeInstalled_line# }"; then - break - else - resetIFS - for expandPackagesToBeInstalled_newPackage in $expandPackagesToBeInstalled_line; do - expandPackagesToBeInstalled_result="$expandPackagesToBeInstalled_result $expandPackagesToBeInstalled_newPackage" - done - IFS=' -' - fi - done - resetIFS - ;; - esac - printf '%s' "${expandPackagesToBeInstalled_result# }" -} - -# Check if a system package is installed; if so we prints its name. -# -# Arguments: -# $1: the name of the package to be checked (regular expressions accepted: they must start with a ^) -expandInstalledSystemPackageName() { - if test "$1" = "${1#^}"; then - expandInstalledSystemPackageName_grepflags='-Fx' - else - expandInstalledSystemPackageName_grepflags='-E' - fi - case "$DISTRO" in - alpine) - apk info | grep $expandInstalledSystemPackageName_grepflags -- "$1" || test $? -eq 1 - ;; - debian) - dpkg --get-selections | grep -E '\sinstall$' | awk '{ print $1 }' | cut -d: -f1 | grep $expandInstalledSystemPackageName_grepflags -- "$1" || test $? -eq 1 - ;; - esac -} - -# Retrieve the number of available cores (alternative to nproc if not available) -# -# Output: -# The number of processor cores available -getProcessorCount() { - if test -n "${IPE_PROCESSOR_COUNT:-}"; then - echo $IPE_PROCESSOR_COUNT - return - fi - if command -v nproc >/dev/null 2>&1; then - nproc - else - getProcessorCount_tmp=$(cat /proc/cpuinfo | grep -E '^processor\s*:\s*\d+$' | wc -l) - if test $getProcessorCount_tmp -ge 1; then - echo $getProcessorCount_tmp - else - echo 1 - fi - fi -} - -# Set these variables: -# - TARGET_TRIPLET the build target tripled (eg 'x86_64-linux-gnu', 'x86_64-alpine-linux-musl') -setTargetTriplet() { - TARGET_TRIPLET="$(gcc -print-multiarch 2>/dev/null || true)" - if test -z "$TARGET_TRIPLET"; then - TARGET_TRIPLET="$(gcc -dumpmachine)" - fi -} - -# Retrieve the number of processors to be used when compiling an extension -# -# Arguments: -# $1: the handle of the PHP extension to be compiled -# Output: -# The number of processors to be used -getCompilationProcessorCount() { - case "$1" in - '') - # The above extensions don't support parallel compilation - echo 1 - ;; - *) - # All the other extensions support parallel compilation - getProcessorCount - ;; - esac -} - -# Get the full path of a PHP extension given its name. -# -# Arguments: -# $1: the name of the PHP extension -# -# Output: -# The absolute path of the PHP extension file (or nothing if the file can't be found) -getModuleFullPath() { - case "$1" in - apcu_bc) - getModuleFullPath_path="$PHP_EXTDIR/apc.so" - ;; - seasclick) - getModuleFullPath_path="$PHP_EXTDIR/SeasClick.so" - ;; - *) - getModuleFullPath_path="$PHP_EXTDIR/$1.so" - ;; - esac - if ! test -f "$getModuleFullPath_path"; then - printf 'Unable to find the file of the PHP extension "%s"\n' "$1" >&2 - exit 1 - fi - printf '%s' "$getModuleFullPath_path" -} - -# Post-process a PHP module just compiled and installed in the PHP extension directory -# -# Arguments: -# $1: the name of the PHP extension -# -# Return: -# 0 (true): if suceeded -# non-zero (false): in case of errors -postProcessModule() { - postProcessModule_file="$(getModuleFullPath "$1")" - if test $PHP_DEBUGBUILD -ne 1; then - printf 'Removing symbols from %s... ' "$postProcessModule_file" - postProcessModule_preSize="$(stat -c %s "$postProcessModule_file")" - strip --strip-all "$postProcessModule_file" - postProcessModule_postSize="$(stat -c %s "$postProcessModule_file")" - printf 'done (%s bytes saved).\n' "$((postProcessModule_preSize - postProcessModule_postSize))" - fi - return $? -} - -# Get the type of the php.ini entry to be used for a PHP extension -# -# Arguments: -# $1: the name of the PHP extension -# -# Output: -# zend_extension or extension -getModuleIniEntryType() { - case "$1" in - ioncube_loader | sourceguardian) - # On PHP 5.5, docker-php-ext-enable fails to detect that ionCube Loader and sourceguardian are Zend extensions - if test $PHP_MAJMIN_VERSION -le 505; then - printf 'zend_extension' - return 0 - fi - ;; - esac - getModuleIniEntryType_file="$(getModuleFullPath "$1")" - if readelf --wide --syms "$getModuleIniEntryType_file" | grep -Eq ' zend_extension_entry$'; then - printf 'zend_extension' - else - printf 'extension' - fi -} - -# Create the contents of a PHP ini file that enables an extension -# -# Arguments: -# $1: the name of the PHP extension -# $2: additional php.ini configuration (optional) -# -# Output: -# The contents of the ini file -buildPhpExtensionIniContent() { - buildPhpExtensionIniContent_type="$(getModuleIniEntryType "$1")" - buildPhpExtensionIniContent_soFile="$(getModuleFullPath "$1")" - buildPhpExtensionIniContent_result="$(printf '%s=%s' "$buildPhpExtensionIniContent_type" "${buildPhpExtensionIniContent_soFile##$PHP_EXTDIR/}")" - if test -n "${2:-}"; then - buildPhpExtensionIniContent_result="$(printf '%s\n%s' "$buildPhpExtensionIniContent_result" "$2")" - fi - printf '%s' "$buildPhpExtensionIniContent_result" -} - -# Check that a PHP module actually works (better to run this check before enabling the extension) -# -# Arguments: -# $1: the name of the PHP extension -# $2: base name (without path and extension) of additional php.ini configuration (optional) -# $3: additional php.ini configuration (optional) -# -# Return: -# 0 (true): if the string is in the list -# 1 (false): if the string is not in the list -checkModuleWorking() { - if test -n "${2:-}"; then - checkModuleWorking_iniFile="$PHP_INI_DIR/conf.d/$2--temp.ini" - else - checkModuleWorking_iniFile="$PHP_INI_DIR/conf.d/docker-php-ext-$1--temp.ini" - fi - checkModuleWorking_iniContent="$(buildPhpExtensionIniContent "$1" "${3:-}")" - printf 'Check if the %s module can be loaded... ' "$1" - checkModuleWorking_errBefore="$(php -r 'return;' 2>&1 || true)" - printf '%s' "$checkModuleWorking_iniContent" >"$checkModuleWorking_iniFile" - checkModuleWorking_errAfter="$(php -r 'return;' 2>&1 || true)" - rm "$checkModuleWorking_iniFile" - if test "$checkModuleWorking_errAfter" != "$checkModuleWorking_errBefore"; then - printf 'Error loading the "%s" extension:\n%s\n' "$1" "$checkModuleWorking_errAfter" >&2 - return 1 - fi - printf 'ok.\n' - return 0 -} - -# Enable a PHP extension -# -# Arguments: -# $1: the name of the PHP extension to be enabled -# $2: base name (without path and extension) of additional php.ini configuration (optional) -# $3: additional php.ini configuration (optional) -enablePhpExtension() { - if test -n "${2:-}"; then - enablePhpExtension_iniFile="$PHP_INI_DIR/conf.d/$2.ini" - else - enablePhpExtension_iniFile="$PHP_INI_DIR/conf.d/docker-php-ext-$1.ini" - fi - enablePhpExtension_iniContent="$(buildPhpExtensionIniContent "$1" "${3:-}")" - case "${IPE_DONT_ENABLE:-}" in - 1 | y* | Y*) - enablePhpExtension_enableCommand="/usr/local/bin/docker-php-ext-enable-$1" - printf '%s' "$enablePhpExtension_iniContent" >"$enablePhpExtension_iniFile-disabled" - printf '\n' >>"$enablePhpExtension_iniFile-disabled" - cat <"$enablePhpExtension_enableCommand" -#!/bin/sh - -if test -f '$enablePhpExtension_iniFile-disabled'; then - echo 'Enabling extension $1' - mv '$enablePhpExtension_iniFile-disabled' '$enablePhpExtension_iniFile' -else - echo 'The extension $1 has already been enabled' -fi -EOT - chmod +x "$enablePhpExtension_enableCommand" - printf '## Extension %s not enabled.\nYou can enable it by running the following command:\n%s\n\n' "$1" "$(basename "$enablePhpExtension_enableCommand")" - ;; - *) - printf '%s' "$enablePhpExtension_iniContent" >"$enablePhpExtension_iniFile" - printf '\n' >>"$enablePhpExtension_iniFile" - ;; - esac -} - -# Mark the pre-installed APT/APK packages as used -# that way they won't be uninstalled by accident -markPreinstalledPackagesAsUsed() { - printf '### MARKING PRE-INSTALLED PACKAGES AS IN-USE ###\n' - case "$DISTRO" in - alpine) - printf '# Packages: %s\n' "$PACKAGES_PERSISTENT_PRE" - apk add $PACKAGES_PERSISTENT_PRE - ;; - debian) - apt-mark manual $PACKAGES_PERSISTENT_PRE - ;; - esac -} - -# Install the required APT/APK packages -# -# Arguments: -# $@: the list of APT/APK packages to be installed -installRequiredPackages() { - printf '### INSTALLING REQUIRED PACKAGES ###\n' - printf '# Packages to be kept after installation: %s\n' "$PACKAGES_PERSISTENT_NEW" - printf '# Packages to be used only for installation: %s\n' "$PACKAGES_VOLATILE" - case "$DISTRO" in - alpine) - apk add $IPE_APK_FLAGS $PACKAGES_PERSISTENT_NEW $PACKAGES_VOLATILE - # https://gitlab.alpinelinux.org/alpine/aports/-/issues/12763#note_172090 - # https://github.com/mlocati/docker-php-extension-installer/issues/385 - # https://github.com/mlocati/docker-php-extension-installer/issues/537#issuecomment-1078748882 - for installRequiredPackages_item in wget; do - if test -n "$(expandInstalledSystemPackageName "$installRequiredPackages_item")"; then - apk add --upgrade "$installRequiredPackages_item" - fi - done - ;; - debian) - apt-get install -qqy --no-install-recommends $PACKAGES_PERSISTENT_NEW $PACKAGES_VOLATILE - ;; - esac -} - -# Get the version of an installed APT/APK package -# -# Arguments: -# $1: the name of the installed package -# -# Output: -# The numeric part of the package version, with from 1 to 3 numbers -# -# Example: -# 1 -# 1.2 -# 1.2.3 -getInstalledPackageVersion() { - case "$DISTRO" in - alpine) - apk info "$1" | head -n1 | cut -c $((${#1} + 2))- | grep -o -E '^[0-9]+(\.[0-9]+){0,2}' - ;; - debian) - dpkg-query --showformat='${Version}' --show "$1" 2>/dev/null | grep -o -E '^[0-9]+(\.[0-9]+){0,2}' - ;; - esac -} - -# Compare two versions -# -# Arguments: -# $1: the first version -# $2: the second version -# -# Output -# -1 if $1 is less than $2 -# 0 if $1 is the same as $2 -# 1 if $1 is greater than $2 -compareVersions() { - compareVersions_v1="$1.0.0" - compareVersions_v2="$2.0.0" - compareVersions_vMin="$(printf '%s\n%s' "$compareVersions_v1" "$compareVersions_v2" | sort -t '.' -n -k1,1 -k2,2 -k3,3 | head -n 1)" - if test "$compareVersions_vMin" != "$compareVersions_v1"; then - echo '1' - elif test "$compareVersions_vMin" = "$compareVersions_v2"; then - echo '0' - else - echo '-1' - fi -} - -# Install Oracle Instant Client & SDK -# -# Set: -# ORACLE_INSTANTCLIENT_LIBPATH -installOracleInstantClient() { - case "${IPE_INSTANTCLIENT_BASIC:-}" in - 1 | y* | Y*) - installOracleInstantClient_handle=basic - ;; - *) - installOracleInstantClient_handle=basiclite - ;; - esac - case $PHP_BITS in - 32) - installOracleInstantClient_client=client - installOracleInstantClient_version='19.9' - installOracleInstantClient_ic=https://download.oracle.com/otn_software/linux/instantclient/199000/instantclient-$installOracleInstantClient_handle-linux-$installOracleInstantClient_version.0.0.0dbru.zip - installOracleInstantClient_sdk=https://download.oracle.com/otn_software/linux/instantclient/199000/instantclient-sdk-linux-$installOracleInstantClient_version.0.0.0dbru.zip - ;; - *) - case $(uname -m) in - aarch64*) - installOracleInstantClient_client=client64 - installOracleInstantClient_version='19.10' - installOracleInstantClient_ic=https://download.oracle.com/otn_software/linux/instantclient/191000/instantclient-$installOracleInstantClient_handle-linux.arm64-$installOracleInstantClient_version.0.0.0dbru.zip - installOracleInstantClient_sdk=https://download.oracle.com/otn_software/linux/instantclient/191000/instantclient-sdk-linux.arm64-$installOracleInstantClient_version.0.0.0dbru.zip - ;; - *) - installOracleInstantClient_client=client64 - installOracleInstantClient_version='21.1' - installOracleInstantClient_ic=https://download.oracle.com/otn_software/linux/instantclient/211000/instantclient-$installOracleInstantClient_handle-linux.x64-$installOracleInstantClient_version.0.0.0.zip - installOracleInstantClient_sdk=https://download.oracle.com/otn_software/linux/instantclient/211000/instantclient-sdk-linux.x64-$installOracleInstantClient_version.0.0.0.zip - ;; - esac - ;; - esac - ORACLE_INSTANTCLIENT_LIBPATH=/usr/lib/oracle/$installOracleInstantClient_version/$installOracleInstantClient_client/lib - if ! test -e "$ORACLE_INSTANTCLIENT_LIBPATH"; then - printf 'Downloading Oracle Instant Client v%s (%s)... ' "$installOracleInstantClient_version" "$installOracleInstantClient_handle" - installOracleInstantClient_src="$(getPackageSource $installOracleInstantClient_ic)" - mkdir -p "/usr/lib/oracle/$installOracleInstantClient_version/$installOracleInstantClient_client" - mv "$installOracleInstantClient_src" "$ORACLE_INSTANTCLIENT_LIBPATH" - echo 'done.' - fi - if ! test -e "$ORACLE_INSTANTCLIENT_LIBPATH/sdk" && ! test -L "$ORACLE_INSTANTCLIENT_LIBPATH/sdk"; then - printf 'Downloading Oracle Instant SDK v%s... ' "$installOracleInstantClient_version" - installOracleInstantClient_src="$(getPackageSource $installOracleInstantClient_sdk)" - ln -sf "$installOracleInstantClient_src/sdk" "$ORACLE_INSTANTCLIENT_LIBPATH/sdk" - UNNEEDED_PACKAGE_LINKS="$UNNEEDED_PACKAGE_LINKS $ORACLE_INSTANTCLIENT_LIBPATH/sdk" - echo 'done.' - fi - case "$DISTRO" in - alpine) - if ! test -e /usr/lib/libresolv.so.2 && test -e /lib/libc.so.6; then - ln -s /lib/libc.so.6 /usr/lib/libresolv.so.2 - fi - installOracleInstantClient_ldconf=/etc/ld-musl-${TARGET_TRIPLET%-alpine-linux-musl}.path - if test -e "$installOracleInstantClient_ldconf"; then - if ! cat "$installOracleInstantClient_ldconf" | grep -q "$ORACLE_INSTANTCLIENT_LIBPATH"; then - cat "$ORACLE_INSTANTCLIENT_LIBPATH" | awk -v suffix=":$ORACLE_INSTANTCLIENT_LIBPATH" '{print NR==1 ? $0suffix : $0}' >"$ORACLE_INSTANTCLIENT_LIBPATH" - fi - else - case $PHP_BITS in - 32) - echo "/lib:/usr/local/lib:/usr/lib:$ORACLE_INSTANTCLIENT_LIBPATH" >"$installOracleInstantClient_ldconf" - ;; - *) - echo "/lib64:/lib:/usr/local/lib:/usr/lib:$ORACLE_INSTANTCLIENT_LIBPATH" >"$installOracleInstantClient_ldconf" - ;; - esac - fi - ;; - debian) - if ! test -e /etc/ld.so.conf.d/oracle-instantclient.conf; then - echo "$ORACLE_INSTANTCLIENT_LIBPATH" >/etc/ld.so.conf.d/oracle-instantclient.conf - ldconfig - fi - ;; - esac -} - -# Check if the Microsoft SQL Server ODBC Driver is installed -# -# Return: -# 0 (true): if the string is in the list -# 1 (false): if the string is not in the list -isMicrosoftSqlServerODBCInstalled() { - test -d /opt/microsoft/msodbcsql*/ -} - -# Install the Microsoft SQL Server ODBC Driver -# see https://learn.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server -installMicrosoftSqlServerODBC() { - printf 'Installing the Microsoft SQL Server ODBC Driver\n' - case "$DISTRO" in - alpine) - rm -rf /tmp/src/msodbcsql.apk - if test $PHP_MAJMIN_VERSION -le 703; then - curl -sSLf -o /tmp/src/msodbcsql.apk https://download.microsoft.com/download/e/4/e/e4e67866-dffd-428c-aac7-8d28ddafb39b/msodbcsql17_17.10.6.1-1_amd64.apk - else - case $(uname -m) in - aarch64 | arm64 | armv8) - installMicrosoftSqlServerODBC_arch=arm64 - ;; - *) - installMicrosoftSqlServerODBC_arch=amd64 - ;; - esac - curl -sSLf -o /tmp/src/msodbcsql.apk https://download.microsoft.com/download/3/5/5/355d7943-a338-41a7-858d-53b259ea33f5/msodbcsql18_18.3.3.1-1_$installMicrosoftSqlServerODBC_arch.apk - fi - printf '\n' | apk add --allow-untrusted /tmp/src/msodbcsql.apk - rm -rf /tmp/src/msodbcsql.apk - ;; - debian) - printf -- '- installing the Microsoft APT key\n' - if test $DISTRO_VERSION_NUMBER -eq 11; then - curl -sSLf -o /etc/apt/trusted.gpg.d/microsoft.asc https://packages.microsoft.com/keys/microsoft.asc - elif test $DISTRO_VERSION_NUMBER -ge 12; then - curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor --yes --output /usr/share/keyrings/microsoft-prod.gpg - else - # apt-key is deprecated - curl -sSLf https://packages.microsoft.com/keys/microsoft.asc | apt-key add - - fi - if ! test -f /etc/apt/sources.list.d/mssql-release.list; then - printf -- '- adding the Microsoft APT source list\n' - curl -sSLf https://packages.microsoft.com/config/debian/$DISTRO_VERSION_NUMBER/prod.list >/etc/apt/sources.list.d/mssql-release.list - invokeAptGetUpdate - fi - printf -- '- installing the APT package\n' - if test $PHP_MAJMIN_VERSION -le 703; then - ACCEPT_EULA=Y apt-get install -qqy --no-install-recommends msodbcsql17 - elif test $DISTRO_VERSION_NUMBER -ge 9 && test $DISTRO_VERSION_NUMBER -le 12; then - # On Debian 9 to 12 we have both msodbcsql17 and msodbcsql18: let's install just one - ACCEPT_EULA=Y apt-get install -qqy --no-install-recommends msodbcsql18 - else - ACCEPT_EULA=Y apt-get install -qqy --no-install-recommends '^msodbcsql[0-9]+$' - fi - ;; - esac -} - -# Check if libaom is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibaomInstalled() { - if ! test -f /usr/local/lib/libaom.so && ! test -f /usr/lib/libaom.so && ! test -f /usr/lib/x86_64*/libaom.so; then - return 1 - fi - if ! test -f /usr/local/include/aom/aom_codec.h && ! test -f /usr/include/aom/aom_codec.h; then - return 1 - fi - return 0 -} - -# Install libaom -installLibaom() { - printf 'Installing libaom\n' - installLibaom_version=3.10.0 - installLibaom_dir="$(getPackageSource https://aomedia.googlesource.com/aom/+archive/v$installLibaom_version.tar.gz)" - mkdir -- "$installLibaom_dir/my.build" - cd -- "$installLibaom_dir/my.build" - cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=1 -DENABLE_DOCS=0 -DENABLE_EXAMPLES=0 -DENABLE_TESTDATA=0 -DENABLE_TESTS=0 -DENABLE_TOOLS=0 -DCMAKE_INSTALL_LIBDIR:PATH=lib .. - ninja -j $(getProcessorCount) install - cd - >/dev/null - ldconfig || true -} - -# Check if libdav1d is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibdav1dInstalled() { - if ! test -f /usr/local/lib/libdav1d.so && ! test -f /usr/lib/libdav1d.so && ! test -f /usr/lib/x86_64*/libdav1d.so; then - return 1 - fi - if ! test -f /usr/local/include/dav1d/dav1d.h && ! test -f /usr/include/dav1d/dav1d.h; then - return 1 - fi - return 0 -} - -# Install libdav1d -installLibdav1d() { - printf 'Installing libdav1d\n' - installLibdav1d_dir="$(getPackageSource https://github.com/videolan/dav1d/archive/refs/tags/1.3.0.tar.gz)" - mkdir -- "$installLibdav1d_dir/build" - cd -- "$installLibdav1d_dir/build" - meson --buildtype release -Dprefix=/usr .. - ninja -j $(getProcessorCount) install - cd - >/dev/null - if test -f /usr/lib/$TARGET_TRIPLET/libdav1d.so && ! test -f /usr/lib/libdav1d.so; then - ln -s /usr/lib/$TARGET_TRIPLET/libdav1d.so /usr/lib/ - fi - ldconfig || true -} - -# Check if libyuv is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibyuvInstalled() { - if ! test -f /usr/local/lib/libyuv.so && ! test -f /usr/lib/libyuv.so && ! test -f /usr/lib/x86_64*/libyuv.so && ! test -f /usr/lib/x86_64*/libyuv.so.*; then - return 1 - fi - if ! test -f /usr/local/include/libyuv.h && ! test -f /usr/include/libyuv.h; then - return 1 - fi - return 0 -} - -# Install libyuv -installLibyuv() { - printf 'Installing libyuv\n' - installLibyuv_dir="$(getPackageSource https://chromium.googlesource.com/libyuv/libyuv/+archive/d359a9f922af840b043535d43cf9d38b220d102e.tar.gz)" - mkdir -- "$installLibyuv_dir/build" - cd -- "$installLibyuv_dir/build" - cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr -B. .. - make -j$(getProcessorCount) install - cd - >/dev/null -} - -# Check if libavif is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibavifInstalled() { - if ! test -f /usr/local/lib/libavif.so && ! test -f /usr/lib/libavif.so && ! test -f /usr/lib/x86_64*/libavif.so; then - return 1 - fi - if ! test -f /usr/local/include/avif/avif.h && ! test -f /usr/include/avif/avif.h; then - return 1 - fi - return 0 -} - -# Install libavif -installLibavif() { - printf 'Installing libavif\n' - installLibavif_dir="$(getPackageSource https://codeload.github.com/AOMediaCodec/libavif/tar.gz/refs/tags/v1.0.3)" - mkdir -- "$installLibavif_dir/build" - cd -- "$installLibavif_dir/build" - cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON -DAVIF_CODEC_AOM=ON -DCMAKE_INSTALL_LIBDIR:PATH=lib - make -j$(getProcessorCount) install - cd - >/dev/null -} - -# Install libmpdec -installLibMPDec() { - installLibMPDec_src="$(getPackageSource https://www.bytereef.org/software/mpdecimal/releases/mpdecimal-2.5.1.tar.gz)" - cd -- "$installLibMPDec_src" - ./configure --disable-cxx - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -# Check if libdatrie is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibDatrieInstalled() { - if ! test -f /usr/local/lib/libdatrie.so && ! test -f /usr/lib/libdatrie.so && ! test -f /usr/lib/x86_64*/libdatrie.so; then - return 1 - fi - if ! test -f /usr/local/include/datrie/trie.h && ! test -f /usr/include/datrie/trie.h; then - return 1 - fi - return 0 -} - -# Install libdatrie -installLibDatrie() { - printf 'Installing libdatrie\n' - installLibDatrie_src="$(getPackageSource https://github.com/tlwg/libdatrie/releases/download/v0.2.13/libdatrie-0.2.13.tar.xz)" - cd -- "$installLibDatrie_src" - ./configure - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -# Check if libdatrie is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibThaiInstalled() { - return 1 - if ! test -f /usr/local/lib/libthai.so && ! test -f /usr/lib/libthai.so && ! test -f /usr/lib/x86_64*/libthai.so; then - return 1 - fi - if ! test -f /usr/local/include/thai/thailib.h && ! test -f /usr/include/thai/thailib.h; then - return 1 - fi - return 0 -} - -# Install libdatrie -installLibThai() { - printf 'Installing libthai\n' - installLibThai_src="$(getPackageSource https://github.com/tlwg/libthai/releases/download/v0.1.29/libthai-0.1.29.tar.xz)" - cd -- "$installLibThai_src" - ./configure - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -isLibTommathInstalled() { - if test -f /usr/local/lib/libtommath.a && test -f /usr/local/include/tommath.h; then - return 0 - fi - return 1 -} - -installLibTommath() { - printf 'Installing libtommath\n' - installLibTommath_src="$(getPackageSource https://github.com/libtom/libtommath/releases/download/v1.3.0/ltm-1.3.0.tar.xz)" - mkdir -p "$installLibTommath_src/build" - cd -- "$installLibTommath_src/build" - CFLAGS='-fPIC' cmake -DCMAKE_BUILD_TYPE=Release .. - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -isLibTomcryptInstalled() { - if test -f /usr/local/lib/libtomcrypt.a && test -f /usr/local/include/tomcrypt.h; then - return 0 - fi - return 1 -} - -installLibTomcrypt() { - printf 'Installing libtomcrypt\n' - installLibTomcrypt_src="$(getPackageSource https://github.com/libtom/libtomcrypt/releases/download/v1.18.2/crypt-1.18.2.tar.xz)" - cd -- "$installLibTomcrypt_src" - CFLAGS='-fPIC' make -j$(getProcessorCount) - make install -} - -isFirebirdInstalled() { - if test -f /usr/lib/libfbclient.so && test -f /usr/include/ibase.h; then - return 0 - fi - if test -d /tmp/src/firebird; then - return 0 - fi - return 1 -} - -installFirebird() { - printf 'Installing firebird\n' - if test $PHP_MAJMIN_VERSION -ge 804; then - installFirebird_src="$(getPackageSource https://github.com/FirebirdSQL/firebird/releases/download/v5.0.2/Firebird-5.0.2.1613-0-source.tar.xz)" - cd -- "$installFirebird_src" - ./configure --enable-client-only - make -j$(getProcessorCount) - cp -Rd gen/Release/firebird/include/* /usr/include - cp -Rd gen/Release/firebird/lib/* /usr/lib - cd - >/dev/null - else - mv "$(getPackageSource https://github.com/FirebirdSQL/firebird/releases/download/R2_5_9/Firebird-2.5.9.27139-0.tar.bz2)" /tmp/src/firebird - cd /tmp/src/firebird - # Patch rwlock.h (this has been fixed in later release of firebird 3.x) - sed -i '194s/.*/#if 0/' src/common/classes/rwlock.h - ./configure --with-system-icu - # -j option can't be used: make targets must be compiled sequentially - make -s btyacc_binary gpre_boot libfbstatic libfbclient - cp gen/firebird/lib/libfbclient.so /usr/lib/ - ln -s /usr/lib/libfbclient.so /usr/lib/libfbclient.so.2 - cd - >/dev/null - fi -} - -isLibXCryptInstalled() { - if ! test -f /usr/local/lib/libcrypt.so && ! test -f /usr/lib/libcrypt.so && ! test -f /usr/lib/x86_64*/libcrypt.so; then - return 1 - fi - return 0 -} - -installLibXCrypt() { - printf 'Installing libxcrypt\n' - installLibXCrypt_version=4.4.36 - installLibXCrypt_src="$(getPackageSource "https://github.com/besser82/libxcrypt/releases/download/v$installLibXCrypt_version/libxcrypt-$installLibXCrypt_version.tar.xz")" - cd -- "$installLibXCrypt_src" - ./configure --prefix /usr - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -isLibenchant1Installed() { - if test -f /usr/lib/libenchant.so || test -f /usr/local/lib/libenchant.so; then - return 0 - fi - return 1 -} - -installLibenchant1() { - printf 'Installing libenchant1\n' - installLibenchant1_src="$(getPackageSource https://github.com/rrthomas/enchant/releases/download/enchant-1-6-1/enchant-1.6.1.tar.gz)" - cd -- "$installLibenchant1_src" - ./configure - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -# Install Composer -installComposer() { - installComposer_version="$(getWantedPHPModuleVersion @composer)" - installComposer_version="${installComposer_version#^}" - if test -z "$installComposer_version"; then - installComposer_fullname=composer - installComposer_flags='' - else - installComposer_fullname="$(printf 'composer v%s' "$installComposer_version")" - if printf '%s' "$installComposer_version" | grep -Eq '^[0-9]+$'; then - installComposer_flags="--$installComposer_version" - else - installComposer_flags="--version=$installComposer_version" - fi - fi - printf '### INSTALLING %s ###\n' "$installComposer_fullname" - actuallyInstallComposer /usr/local/bin composer "$installComposer_flags" -} - -# Actually install composer -# -# Arguments: -# $1: the directory where composer should be installed (required) -# $2: the composer filename (optional, default: composer) -# $3. additional flags for the composer installed (optional) -actuallyInstallComposer() { - actuallyInstallComposer_installer="$(mktemp -p /tmp/src)" - curl -sSLf -o "$actuallyInstallComposer_installer" https://getcomposer.org/installer - actuallyInstallComposer_expectedSignature="$(curl -sSLf https://composer.github.io/installer.sig)" - actuallyInstallComposer_actualSignature="$(php -n -r "echo hash_file('sha384', '$actuallyInstallComposer_installer');")" - if test "$actuallyInstallComposer_expectedSignature" != "$actuallyInstallComposer_actualSignature"; then - printf 'Verification of composer installer failed!\nExpected signature: %s\nActual signature: %s\n' "$actuallyInstallComposer_expectedSignature" "$actuallyInstallComposer_actualSignature" >&2 - exit 1 - fi - actuallyInstallComposer_flags="--install-dir=$1" - if test -n "${2:-}"; then - actuallyInstallComposer_flags="$actuallyInstallComposer_flags --filename=$2" - else - actuallyInstallComposer_flags="$actuallyInstallComposer_flags --filename=composer" - fi - if test -n "${3:-}"; then - actuallyInstallComposer_flags="$actuallyInstallComposer_flags $3" - fi - php "$actuallyInstallComposer_installer" $actuallyInstallComposer_flags - rm -- "$actuallyInstallComposer_installer" -} - -# Install ionCube Loader -installIonCubeLoader() { - installIonCubeLoader_version='' - case "$DISTRO" in - alpine) - # For 14.4.0 we have a Segmentation Fault - installIonCubeLoader_version=14.0.0 - ;; - esac - installIonCubeLoader_versionForUrl='' - installIonCubeLoader_versionForMessage=latest - if test -n "$installIonCubeLoader_version"; then - installIonCubeLoader_versionForUrl="_$installIonCubeLoader_version" - installIonCubeLoader_versionForMessage="v$installIonCubeLoader_version" - fi - # See https://www.ioncube.com/loaders.php - case $PHP_BITS in - 32) - case $(uname -m) in - aarch* | arm*) - installIonCubeLoader_url="https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_armv7l$installIonCubeLoader_versionForUrl.tar.gz" - ;; - *) - installIonCubeLoader_url="https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86$installIonCubeLoader_versionForUrl.tar.gz" - ;; - esac - ;; - *) - case $(uname -m) in - aarch64 | arm64 | armv8) - installIonCubeLoader_url="https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_aarch64$installIonCubeLoader_versionForUrl.tar.gz" - ;; - *) - installIonCubeLoader_url="https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64$installIonCubeLoader_versionForUrl.tar.gz" - ;; - esac - ;; - esac - printf 'Downloading ionCube Loader (%s)... ' "$installIonCubeLoader_versionForMessage" - installIonCubeLoader_dir="$(getPackageSource $installIonCubeLoader_url)" - echo 'done.' - installIonCubeLoader_so=$(php -r "printf('ioncube_loader_lin_%s.%s%s.so', PHP_MAJOR_VERSION, PHP_MINOR_VERSION, ZEND_THREAD_SAFE ? '_ts' : '');") - cp "$installIonCubeLoader_dir/$installIonCubeLoader_so" "$(getPHPExtensionsDir)/ioncube_loader.so" -} - -# Install SourceGuardian Loader -installSourceGuardian() { - # See https://www.sourceguardian.com/loaders.html - case $PHP_BITS in - 32) - installSourceGuardian_url=https://www.sourceguardian.com/loaders/download/loaders.linux-i386.tar.gz - ;; - *) - case $(uname -m) in - aarch64 | arm64 | armv8) - installSourceGuardian_url=https://www.sourceguardian.com/loaders/download/loaders.linux-aarch64.tar.gz - ;; - *) - installSourceGuardian_url=https://www.sourceguardian.com/loaders/download/loaders.linux-x86_64.tar.gz - ;; - esac - ;; - esac - printf 'Downloading SourceGuardian... ' - installSourceGuardian_dir="$(getPackageSource $installSourceGuardian_url)" - printf 'done (version: %s)\n' "$(cat "$installSourceGuardian_dir/version")" - for installSourceGuardian_phpv in $PHP_MAJDOTMINDOTPAT_VERSION $PHP_MAJDOTMIN_VERSION; do - installSourceGuardian_file="$installSourceGuardian_dir/ixed.$PHP_MAJDOTMIN_VERSION" - if test $PHP_THREADSAFE -eq 1; then - installSourceGuardian_file="${installSourceGuardian_file}ts" - fi - installSourceGuardian_file="${installSourceGuardian_file}.lin" - if test -f "$installSourceGuardian_file"; then - mv "$installSourceGuardian_file" "$(getPHPExtensionsDir)/sourceguardian.so" - return - fi - done - printf 'Unable to find a SourceGuardian compatible with PHP %s or PHP %s.\nAvailable SourceGuardian versions:\n' "$PHP_MAJDOTMINDOTPAT_VERSION" "$PHP_MAJDOTMIN_VERSION" >&2 - ls -1 "$installSourceGuardian_dir" | grep -E '^ixed\..*\.lin$' | sed -E 's/^[^0-9]+([0-9]+(\.[0-9]+)*).*$/\1/' | sort | uniq >&2 - exit 1 -} - -# Install Cargo (if not yet installed) -installCargo() { - if command -v cargo >/dev/null; then - return - fi - installCargo_cargoversion= - if ! test -f "$HOME/.cargo/env"; then - printf '# Installing cargo\n' - case "$DISTRO" in - alpine) - # see https://github.com/hyperledger/indy-vdr/issues/69#issuecomment-998104850 - export RUSTFLAGS='-C target-feature=-crt-static' - ;; - esac - curl https://sh.rustup.rs -sSf | sh -s -- -y -q - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -le 310; then - # With version 1.84.0 we have this error: - # Error relocating /root/.rustup/toolchains/stable-x86_64-unknown-linux-musl/bin/cargo: posix_spawn_file_actions_addchdir_np: symbol not found - # See https://github.com/rust-lang/rust/pull/131851#issue-2595663507 - installCargo_cargoversion=1.83.0 - fi - ;; - esac - fi - . "$HOME/.cargo/env" - if test -n "$installCargo_cargoversion"; then - rustup default -- "$installCargo_cargoversion" - fi - if test -z "${IPE_UNINSTALL_CARGO:-}"; then - IPE_UNINSTALL_CARGO=y - fi -} - -installNewRelic() { - printf '# Installing newrelic\n' - # see https://docs.newrelic.com/docs/apm/agents/php-agent/getting-started/php-agent-compatibility-requirements/ - if test $PHP_MAJMIN_VERSION -le 701; then - installNewRelic_baseUrl=https://download.newrelic.com/php_agent/archive/10.21.0.11/ - else - installNewRelic_baseUrl=https://download.newrelic.com/php_agent/release/ - fi - installNewRelic_search='\bnewrelic-php[0-9.]*-[0-9]+(\.[0-9]+)*-linux' - case "$DISTRO" in - alpine) - installNewRelic_search="$installNewRelic_search-musl" - ;; - esac - installNewRelic_file="$(curl -sSLf -o- "$installNewRelic_baseUrl" | sed -E 's/<[^>]*>//g' | grep -Eo "$installNewRelic_search.tar.gz" | sort | head -1)" - installNewRelic_url="$installNewRelic_baseUrl$installNewRelic_file" - installNewRelic_src="$(getPackageSource "$installNewRelic_url")" - cd -- "$installNewRelic_src" - NR_INSTALL_USE_CP_NOT_LN=1 NR_INSTALL_SILENT=1 ./newrelic-install install - case "${IPE_NEWRELIC_DAEMON:-}" in - 1 | y* | Y*) - NR_INSTALL_USE_CP_NOT_LN=1 NR_INSTALL_SILENT=1 ./newrelic-install install_daemon - ;; - esac - case "${IPE_NEWRELIC_KEEPLOG:-}" in - 1 | y* | Y*) ;; - *) - rm -f /tmp/nrinstall-*.tar - ;; - esac - cd - >/dev/null - cat <&2 - fi - if test -n "$(getModuleSourceCodePath "$1")"; then - printf '### WARNING the module "%s" is bundled with PHP, you can NOT specify a source code path for it\n' "$1" >&2 - fi - case "$1" in - dba) - if test -e /usr/lib/$TARGET_TRIPLET/libdb-5.3.so && ! test -e /usr/lib/libdb-5.3.so; then - ln -s /usr/lib/$TARGET_TRIPLET/libdb-5.3.so /usr/lib/ - fi - if test $PHP_MAJMIN_VERSION -le 505; then - docker-php-source extract - patch /usr/src/php/ext/dba/config.m4 </dev/null - ;; - oci8 | pdo_oci) - installOracleInstantClient - if test "$1" = oci8; then - docker-php-ext-configure "$1" "--with-oci8=instantclient,$ORACLE_INSTANTCLIENT_LIBPATH" - elif test "$1" = pdo_oci; then - docker-php-ext-configure "$1" "--with-pdo-oci=instantclient,$ORACLE_INSTANTCLIENT_LIBPATH" - fi - ;; - pdo_odbc) - docker-php-ext-configure pdo_odbc --with-pdo-odbc=unixODBC,/usr - ;; - snmp) - case "$DISTRO" in - alpine) - mkdir -p -m 0755 /var/lib/net-snmp/mib_indexes - ;; - esac - ;; - sockets) - case "$PHP_MAJDOTMINDOTPAT_VERSION" in - 8.0.15 | 8.1.2) - sed -i '70 i #ifndef _GNU_SOURCE' /usr/src/php/ext/sockets/config.m4 - sed -i '71 i #define _GNU_SOURCE' /usr/src/php/ext/sockets/config.m4 - sed -i '72 i #endif' /usr/src/php/ext/sockets/config.m4 - ;; - esac - ;; - sybase_ct) - docker-php-ext-configure sybase_ct --with-sybase-ct=/usr - ;; - tidy) - case "$DISTRO" in - alpine) - if ! test -f /usr/include/buffio.h; then - ln -s /usr/include/tidybuffio.h /usr/include/buffio.h - UNNEEDED_PACKAGE_LINKS="$UNNEEDED_PACKAGE_LINKS /usr/include/buffio.h" - fi - ;; - esac - ;; - zip) - if test $PHP_MAJMIN_VERSION -le 505; then - docker-php-ext-configure zip - elif test $PHP_MAJMIN_VERSION -le 703; then - docker-php-ext-configure zip --with-libzip - else - docker-php-ext-configure zip --with-zip - fi - ;; - esac - installBundledModule_errBefore="$(php -r 'return;' 2>&1 || true)" - docker-php-ext-install -j$(getProcessorCount) "$1" - case "$1" in - imap) - case "$DISTRO_VERSION" in - debian@9) - dpkg -r libc-client2007e-dev - ;; - esac - ;; - esac - case "${IPE_SKIP_CHECK:-}" in - 1 | y* | Y*) ;; - *) - php -r 'return;' >/dev/null 2>/dev/null || true - installBundledModule_errAfter="$(php -r 'return;' 2>&1 || true)" - if test "$installBundledModule_errAfter" != "$installBundledModule_errBefore"; then - printf 'PHP has problems after installing the "%s" extension:\n%s\n' "$1" "$installBundledModule_errAfter" >&2 - rm "$PHP_INI_DIR/conf.d/docker-php-ext-$1.ini" || true - return 1 - fi - ;; - esac -} - -# Fetch a tar.gz file, extract it and returns the path of the extracted folder. -# -# Arguments: -# $1: the URL of the file to be downloaded -# -# Output: -# The path of the extracted directory -getPackageSource() { - mkdir -p /tmp/src - getPackageSource_tempFile=$(mktemp -p /tmp/src) - curl -sSLf -o "$getPackageSource_tempFile" "$1" - getPackageSource_tempDir=$(mktemp -p /tmp/src -d) - cd "$getPackageSource_tempDir" - tar -xzf "$getPackageSource_tempFile" 2>/dev/null || tar -xf "$getPackageSource_tempFile" 2>/dev/null || ( - if command -v bsdtar >/dev/null; then - bsdtar -xf "$getPackageSource_tempFile" - else - unzip -q "$getPackageSource_tempFile" - fi - ) - cd - >/dev/null - unlink "$getPackageSource_tempFile" - getPackageSource_outDir='' - for getPackageSource_i in $(ls "$getPackageSource_tempDir"); do - if test -n "$getPackageSource_outDir" || test -f "$getPackageSource_tempDir/$getPackageSource_i"; then - getPackageSource_outDir='' - break - fi - getPackageSource_outDir="$getPackageSource_tempDir/$getPackageSource_i" - done - if test -n "$getPackageSource_outDir"; then - printf '%s' "$getPackageSource_outDir" - else - printf '%s' "$getPackageSource_tempDir" - fi -} - -# Install a PECL/remote PHP module given its handle -# -# Arguments: -# $1: the handle of the PHP module -installRemoteModule() { - installRemoteModule_module="$1" - printf '### INSTALLING REMOTE MODULE %s ###\n' "$installRemoteModule_module" - installRemoteModule_version="$(resolvePHPModuleVersion "$installRemoteModule_module")" - installRemoteModule_path="$(getModuleSourceCodePath "$installRemoteModule_module")" - rm -rf "$CONFIGURE_FILE" - installRemoteModule_manuallyInstalled=0 - installRemoteModule_cppflags='' - installRemoteModule_ini_basename='' - installRemoteModule_ini_extra='' - case "$installRemoteModule_module" in - amqp) - if test -z "$installRemoteModule_version"; then - if test "$DISTRO_VERSION" = debian@8; then - # in Debian Jessie we have librabbitmq version 0.5.2 - installRemoteModule_version=1.9.3 - elif test $PHP_MAJMIN_VERSION -le 505; then - installRemoteModule_version=1.9.4 - elif test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=1.11.0 - fi - fi - ;; - apcu) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=4.0.11 - fi - fi - ;; - apcu_bc) - # apcu_bc must be loaded after apcu - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - ;; - ast) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=1.0.16 - fi - fi - ;; - bitset) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.0.4 - fi - fi - ;; - blackfire) - case $(uname -m) in - i386 | i686 | x86) - installRemoteModule_tmp1=i386 - ;; - aarch64 | arm64 | armv8) - installRemoteModule_tmp1=arm64 - ;; - *) - installRemoteModule_tmp1=amd64 - ;; - esac - case $DISTRO in - alpine) - installRemoteModule_distro=alpine - ;; - *) - installRemoteModule_distro=linux - ;; - esac - installRemoteModule_tmp2=$(php -r 'echo PHP_MAJOR_VERSION . PHP_MINOR_VERSION . (ZEND_THREAD_SAFE ? "-zts" : "");') - installRemoteModule_tmp="$(mktemp -p /tmp/src -d)" - cd "$installRemoteModule_tmp" - curl -sSLf --user-agent Docker https://blackfire.io/api/v1/releases/probe/php/$installRemoteModule_distro/$installRemoteModule_tmp1/$installRemoteModule_tmp2 | tar xz - mv blackfire-*.so $(getPHPExtensionsDir)/blackfire.so - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - installRemoteModule_ini_extra="$(printf '%sblackfire.agent_socket=tcp://blackfire:8307\n' "$installRemoteModule_ini_extra")" - ;; - cassandra) - installRemoteModule_src="$(getPackageSource https://github.com/nano-interactive/ext-cassandra/tarball/1cf12c5ce49ed43a2c449bee4b7b23ce02a37bf0)" - cd "$installRemoteModule_src/ext" - phpize - ./configure - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - ;; - cmark) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=1.1.0 - fi - fi - if ! test -e /usr/local/lib/libcmark.so && ! test -e /usr/local/lib64/libcmark.so && ! test -e /usr/lib/libcmark.so && ! test -e /usr/lib64/libcmark.so && ! test -e /lib/libcmark.so; then - if test $(compareVersions "$(cmake --version | head -n1 | sed -E 's/^.* //')" '3.7') -lt 0; then - installRemoteModule_tmp=0.29.0 - else - installRemoteModule_tmp=0.31.1 - fi - cd "$(getPackageSource https://github.com/commonmark/cmark/archive/$installRemoteModule_tmp.tar.gz)" - make -s -j$(getProcessorCount) cmake_build - make -s -j$(getProcessorCount) install - cd - >/dev/null - case "$DISTRO" in - alpine) - if test -e /usr/local/lib64/libcmark.so.$installRemoteModule_tmp && ! test -e /usr/local/lib/libcmark.so.$installRemoteModule_tmp; then - ln -s /usr/local/lib64/libcmark.so.$installRemoteModule_tmp /usr/local/lib/ - fi - ;; - *) - ldconfig || true - ;; - esac - fi - ;; - csv) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=0.3.1 - fi - fi - ;; - ddtrace) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=0.75.0 - fi - if test -z "$installRemoteModule_version"; then - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -le 312; then - # cc is not supported due to a memcmp related bug - installRemoteModule_version=1.1.0 - fi - ;; - esac - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 0.75.0) -ge 0; then - installCargo - fi - ;; - decimal) - case "$DISTRO" in - alpine) - if ! test -f /usr/local/lib/libmpdec.so; then - installLibMPDec - fi - ;; - debian) - if test $DISTRO_MAJMIN_VERSION -ge 1200; then - if test -z "$(ldconfig -p | grep -E '\slibmpdec.so\s')"; then - installLibMPDec - fi - fi - ;; - esac - ;; - ds) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 703; then - installRemoteModule_version=1.3.0 - elif test $PHP_MAJMIN_VERSION -lt 704; then - installRemoteModule_version=1.4.0 - fi - fi - ;; - ecma_intl) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=alpha - fi - ;; - ev) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 800; then - installRemoteModule_version=1.1.5 - fi - fi - ;; - event) - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 2.4.0) -ge 0; then - # Enable internal debugging in Event - addConfigureOption enable-event-debug no - # Enable sockets support in Event - if php --ri sockets >/dev/null 2>/dev/null; then - addConfigureOption enable-event-sockets yes - else - addConfigureOption enable-event-sockets no - fi - # libevent installation prefix - addConfigureOption with-event-libevent-dir /usr - # Include libevent's pthreads library and enable thread safety support in Event - addConfigureOption with-event-pthreads yes - # Include libevent protocol-specific functionality support including HTTP, DNS, and RPC - addConfigureOption with-event-extra yes - # Include libevent OpenSSL support - addConfigureOption with-event-openssl yes - # PHP Namespace for all Event classes - if test -n "${IPE_EVENT_NAMESPACE:-}"; then - addConfigureOption with-event-ns "$IPE_EVENT_NAMESPACE" - else - addConfigureOption with-event-ns no - fi - # openssl installation prefix - addConfigureOption with-openssl-dir yes - elif test $(compareVersions "$installRemoteModule_version" 1.7.6) -ge 0; then - # Enable internal debugging in Event - addConfigureOption enable-event-debug no - # Enable sockets support in Event - if php --ri sockets >/dev/null 2>/dev/null; then - addConfigureOption enable-event-sockets yes - else - addConfigureOption enable-event-sockets no - fi - # libevent installation prefix - addConfigureOption with-event-libevent-dir /usr - # Include libevent's pthreads library and enable thread safety support in Event - addConfigureOption with-event-pthreads yes - # Include libevent protocol-specific functionality support including HTTP, DNS, and RPC - addConfigureOption with-event-extra yes - # Include libevent OpenSSL support - addConfigureOption with-event-openssl yes - # openssl installation prefix - addConfigureOption with-openssl-dir no - elif test $(compareVersions "$installRemoteModule_version" 1.3.0) -ge 0; then - # Enable internal debugging in event - addConfigureOption enable-event-debug no - # libevent installation prefix - addConfigureOption with-event-libevent-dir /usr - # Include libevent's pthreads library and enable thread safety support in event - addConfigureOption with-event-pthreads yes - # Include libevent protocol-specific functionality support including HTTP, DNS, and RPC - addConfigureOption with-event-extra yes - # Include libevent OpenSSL support - addConfigureOption with-event-openssl yes - # openssl installation prefix - addConfigureOption with-openssl-dir no - fi - # event must be loaded after sockets - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - ;; - gearman) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.1.2 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=2.1.3 - fi - fi - case "$DISTRO" in - alpine) - if ! test -e /usr/local/include/libgearman/gearman.h || ! test -e /usr/local/lib/libgearman.so; then - installRemoteModule_src="$(getPackageSource https://github.com/gearman/gearmand/releases/download/1.1.21/gearmand-1.1.21.tar.gz)" - cd -- "$installRemoteModule_src" - ./configure - make -j$(getProcessorCount) install-binPROGRAMS - make -j$(getProcessorCount) install-nobase_includeHEADERS - cd - >/dev/null - fi - ;; - esac - ;; - geoip) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=beta - fi - ;; - geos) - if test -z "$installRemoteModule_path"; then - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=dfe1ab17b0f155cc315bc13c75689371676e02e1 - fi - installRemoteModule_src="$(getPackageSource https://github.com/libgeos/php-geos/archive/$installRemoteModule_version.tar.gz)" - cd "$installRemoteModule_src" - ./autogen.sh - ./configure - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - fi - ;; - geospatial) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.2.1 - else - installRemoteModule_version=beta - fi - fi - ;; - gmagick) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.1.7RC3 - else - installRemoteModule_version=beta - fi - fi - ;; - grpc) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.33.1 - else - case "$DISTRO_VERSION" in - debian@8) - installRemoteModule_version=1.46.3 - ;; - alpine@3.7 | alpine@3.8 | debian@9) # With newer version: "This package requires GCC 7 or higher" - installRemoteModule_version=1.52.1 - ;; - esac - fi - fi - if test -z "$installRemoteModule_version" || test "$installRemoteModule_version" = 1.35.0; then - case "$DISTRO_VERSION" in - alpine@3.13) - installRemoteModule_cppflags='-Wno-maybe-uninitialized' - ;; - esac - fi - ;; - http) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.6.0 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=3.2.4 - fi - fi - if test $PHP_MAJMIN_VERSION -ge 700; then - if ! test -e /usr/local/lib/libidnkit.so; then - installRemoteModule_src="$(getPackageSource https://jprs.co.jp/idn/idnkit-2.3.tar.bz2)" - cd -- "$installRemoteModule_src" - CFLAGS=-Wno-incompatible-pointer-types ./configure - make -j$(getProcessorCount) install - cd - >/dev/null - fi - fi - # http must be loaded after raphf and propro - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - ;; - igbinary) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.0.8 - fi - fi - ;; - imap) - # Include Kerberos Support - addConfigureOption with-kerberos yes - # Include SSL Support - addConfigureOption with-imap-ssl yes - ;; - imagick) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 506; then - installRemoteModule_version=3.7.0 - fi - fi - ;; - inotify) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.1.6 - fi - fi - ;; - ion) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=alpha - fi - if ! test -f /usr/local/lib/libionc.so || ! test -f /usr/local/include/ionc/ion.h; then - echo 'Installing ion-c... ' - installRemoteModule_src="$(mktemp -p /tmp/src -d)" - git clone -q -c advice.detachedHead=false --depth 1 --branch v1.1.3 https://github.com/amzn/ion-c.git "$installRemoteModule_src/ion" - ( - cd "$installRemoteModule_src/ion" - git submodule init -q - git submodule update -q - mkdir -p build - cd build - CFLAGS='-Wno-incompatible-pointer-types -Wno-stringop-overflow -Wno-discarded-qualifiers' cmake -DCMAKE_BUILD_TYPE=Release .. -Wno-dev - make clean - make -j$(getProcessorCount) install - ) - rm -rf "$installRemoteModule_src" - fi - addConfigureOption with-ion "shared,/usr/local" - ;; - ioncube_loader) - installIonCubeLoader - installRemoteModule_manuallyInstalled=1 - ;; - jsmin) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=2.0.1 - fi - fi - ;; - jsonpath) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 800; then - installRemoteModule_version=1.0.1 - fi - fi - ;; - luasandbox) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 702; then - installRemoteModule_version=3.0.3 - fi - fi - ;; - lz4) - if test -z "$installRemoteModule_path"; then - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=0.4.3 - fi - installRemoteModule_src="$(getPackageSource https://github.com/kjdev/php-ext-lz4/archive/refs/tags/$installRemoteModule_version.tar.gz)" - cd "$installRemoteModule_src" - phpize - ./configure --with-lz4-includedir=/usr - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - fi - ;; - lzf) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 702; then - installRemoteModule_version=1.6.8 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" '1.5.0') -ge 0; then - # Sacrifice speed in favour of compression ratio? - case "${IPE_LZF_BETTERCOMPRESSION:-}" in - 1 | y* | Y*) - addConfigureOption 'enable-lzf-better-compression' 'yes' - ;; - *) - addConfigureOption 'enable-lzf-better-compression' 'no' - ;; - esac - fi - ;; - mailparse) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.1.6 - elif test $PHP_MAJMIN_VERSION -le 702; then - installRemoteModule_version=3.1.3 - fi - fi - ;; - memcache) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.2.7 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=4.0.5.2 - fi - fi - ;; - memcached) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.2.0 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - # Set the path to libmemcached install prefix - addConfigureOption 'with-libmemcached-dir' 'no' - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" '3.0.0') -ge 0; then - # Set the path to ZLIB install prefix - addConfigureOption 'with-zlib-dir' 'no' - # Use system FastLZ library - addConfigureOption 'with-system-fastlz' 'no' - # Enable memcached igbinary serializer support - if php --ri igbinary >/dev/null 2>/dev/null; then - addConfigureOption 'enable-memcached-igbinary' 'yes' - else - addConfigureOption 'enable-memcached-igbinary' 'no' - fi - # Enable memcached msgpack serializer support - if php --ri msgpack >/dev/null 2>/dev/null; then - addConfigureOption 'enable-memcached-msgpack' 'yes' - else - addConfigureOption 'enable-memcached-msgpack' 'no' - fi - # Enable memcached json serializer support - addConfigureOption 'enable-memcached-json' 'yes' - # Enable memcached protocol support - addConfigureOption 'enable-memcached-protocol' 'no' # https://github.com/php-memcached-dev/php-memcached/issues/418#issuecomment-449587972 - # Enable memcached sasl support - addConfigureOption 'enable-memcached-sasl' 'yes' - # Enable memcached session handler support - addConfigureOption 'enable-memcached-session' 'yes' - fi - # memcached must be loaded after msgpack - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - ;; - memprof) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.0.0 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=2.1.0 - fi - fi - ;; - mongo) - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" '1.5.0') -ge 0; then - # Build with Cyrus SASL (MongoDB Enterprise Authentication) support? - addConfigureOption '-with-mongo-sasl' 'yes' - fi - ;; - mongodb) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 505; then - installRemoteModule_version=1.5.5 - elif test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.7.5 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=1.9.2 - elif test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=1.11.1 - elif test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=1.16.2 - elif test $PHP_MAJMIN_VERSION -le 800; then - installRemoteModule_version=1.20.1 - fi - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 1.17.0) -ge 0; then - # Enable developer flags? (yes/no) - addConfigureOption enable-mongodb-developer-flags no - # Enable code coverage? (yes/no) - addConfigureOption enable-mongodb-coverage no - # Use system libraries for libbson, libmongoc, and libmongocrypt? (yes/no) - addConfigureOption with-mongodb-system-libs no - # Enable client-side encryption? (auto/yes/no) - addConfigureOption with-mongodb-client-side-encryption yes - # Enable Snappy for compression? (auto/yes/no) - addConfigureOption with-mongodb-snappy yes - # Enable zlib for compression? (auto/system/bundled/no) - addConfigureOption with-mongodb-zlib yes - # Enable zstd for compression? (auto/yes/no) - addConfigureOption with-mongodb-zstd yes - # Enable SASL for Kerberos authentication? (auto/cyrus/no) - addConfigureOption with-mongodb-sasl yes - # Enable crypto and TLS? (auto/openssl/libressl/darwin/no) - addConfigureOption with-mongodb-ssl yes - # Use system crypto profile (OpenSSL only)? (yes/no) - addConfigureOption enable-mongodb-crypto-system-profile yes - # Use bundled or system utf8proc for SCRAM-SHA-256 SASLprep? (bundled/system) - addConfigureOption with-mongodb-utf8proc bundled - fi - ;; - mosquitto) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=beta - fi - ;; - msgpack) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.5.7 - fi - fi - ;; - newrelic) - installNewRelic - installRemoteModule_manuallyInstalled=2 - ;; - oauth) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.2.3 - fi - fi - ;; - oci8 | pdo_oci) - installOracleInstantClient - if test "$installRemoteModule_module" = oci8; then - addConfigureOption with-oci8 "instantclient,$ORACLE_INSTANTCLIENT_LIBPATH" - elif test "$installRemoteModule_module" = pdo_oci; then - addConfigureOption with-pdo-oci "instantclient,$ORACLE_INSTANTCLIENT_LIBPATH" - fi - ;; - opencensus) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=alpha - fi - ;; - openswoole) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 704; then - installRemoteModule_version=4.10.0 - elif test $PHP_MAJMIN_VERSION -lt 801; then - installRemoteModule_version=22.0.0 - elif test $PHP_MAJMIN_VERSION -lt 802; then - installRemoteModule_version=22.1.2 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if php --ri sockets >/dev/null 2>/dev/null; then - installRemoteModule_sockets=yes - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - else - installRemoteModule_sockets=no - fi - installRemoteModule_openssl=yes - if test -n "$installRemoteModule_version" && test $(compareVersions "$installRemoteModule_version" 22.1.2) -ge 0; then - # enable coroutine sockets? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 protocol? - addConfigureOption enable-http2 yes - # enable coroutine mysqlnd? - addConfigureOption enable-mysqlnd yes - # enable coroutine curl? - addConfigureOption enable-hook-curl yes - # enable coroutine postgres? - addConfigureOption with-postgres yes - elif test $(compareVersions "$installRemoteModule_version" 22.1.1) -ge 0; then - # enable c-ares support? - addConfigureOption enable-cares yes - # enable coroutine sockets? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 protocol? - addConfigureOption enable-http2 yes - # enable coroutine mysqlnd? - addConfigureOption enable-mysqlnd yes - # enable coroutine curl? - addConfigureOption enable-hook-curl yes - # enable coroutine postgres? - addConfigureOption with-postgres yes - elif test $(compareVersions "$installRemoteModule_version" 22.1.0) -ge 0; then - # enable coroutine sockets? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 protocol? - addConfigureOption enable-http2 yes - # enable coroutine mysqlnd? - addConfigureOption enable-mysqlnd yes - # enable coroutine curl? - addConfigureOption enable-hook-curl yes - # enable coroutine postgres? - addConfigureOption with-postgres yes - elif test $(compareVersions "$installRemoteModule_version" 22.0.0) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable hook curl support? - addConfigureOption enable-hook-curl yes - # enable postgres support? - addConfigureOption with-postgres yes - elif test $(compareVersions "$installRemoteModule_version" 4.8.0) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable json support? - addConfigureOption enable-swoole-json yes - # enable curl support? - addConfigureOption enable-swoole-curl yes - # enable postgres support? - addConfigureOption with-postgres yes - else - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable json support? - addConfigureOption enable-swoole-json yes - # enable curl support? - addConfigureOption enable-swoole-curl yes - fi - ;; - operator) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=beta - fi - ;; - parallel) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=0.8.3 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=1.1.4 - fi - fi - ;; - parle) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 704; then - installRemoteModule_version=0.8.3 - else - installRemoteModule_version=beta - fi - fi - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 0.8.4) -ge 0; then - # Enable internal UTF-32 support in parle - addConfigureOption enable-parle-utf32 yes - fi - ;; - pcov) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=0.9.0 - fi - fi - ;; - phalcon) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMINPAT_VERSION -lt 70401; then - installRemoteModule_version=4.1.2 - elif test $PHP_MAJMIN_VERSION -lt 800; then - installRemoteModule_version=5.4.0 - fi - fi - installRemoteModule_cppflags='-Wno-incompatible-pointer-types' - ;; - php_trie) - if ! test -f /usr/local/include/hat-trie/include/tsl/htrie_map.h; then - installRemoteModule_src="$(getPackageSource https://codeload.github.com/Tessil/hat-trie/tar.gz/v0.6.0)" - mkdir -p /usr/local/include/hat-trie - mv "$installRemoteModule_src/include" /usr/local/include/hat-trie - fi - ;; - pq) - # pq must be loaded after raphf - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - ;; - propro) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.0.2 - fi - fi - ;; - protobuf) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=3.12.4 - elif test $PHP_MAJMIN_VERSION -lt 800; then - installRemoteModule_version=3.24.4 - elif test $PHP_MAJMIN_VERSION -lt 801; then - installRemoteModule_version=3.25.3 - fi - fi - ;; - psr) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 506; then - installRemoteModule_version=0.5.1 - elif test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=0.6.1 - elif test $PHP_MAJMIN_VERSION -lt 703; then - installRemoteModule_version=1.1.0 - fi - fi - ;; - pthreads) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.0.10 - fi - fi - ;; - raphf) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.1.2 - fi - fi - ;; - rdkafka) - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version"; then - installRemoteModule_version1='' - if test $PHP_MAJMIN_VERSION -le 505; then - installRemoteModule_version1=3.0.5 - elif test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version1=4.1.2 - fi - installRemoteModule_version2='' - case "$DISTRO" in - alpine) - installRemoteModule_tmp='librdkafka' - ;; - debian) - installRemoteModule_tmp='librdkafka*' - ;; - *) - installRemoteModule_tmp='' - ;; - esac - if test -n "$installRemoteModule_tmp"; then - installRemoteModule_tmp="$(getInstalledPackageVersion "$installRemoteModule_tmp")" - if test -n "$installRemoteModule_tmp" && test $(compareVersions "$installRemoteModule_tmp" '0.11.0') -lt 0; then - installRemoteModule_version2=3.1.3 - fi - fi - if test -z "$installRemoteModule_version1" || test -z "$installRemoteModule_version2"; then - installRemoteModule_version="$installRemoteModule_version1$installRemoteModule_version2" - elif test $(compareVersions "$installRemoteModule_version1" "$installRemoteModule_version2") -le 0; then - installRemoteModule_version="$installRemoteModule_version1" - else - installRemoteModule_version="$installRemoteModule_version2" - fi - fi - ;; - redis) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=4.3.0 - elif test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=5.3.7 - elif test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=6.0.2 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - # Enable igbinary serializer support? - if php --ri igbinary >/dev/null 2>/dev/null; then - addConfigureOption enable-redis-igbinary yes - else - addConfigureOption enable-redis-igbinary no - fi - # Enable lzf compression support? - addConfigureOption enable-redis-lzf yes - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 5.0.0) -ge 0; then - if ! test -e /usr/include/zstd.h || ! test -e /usr/lib/libzstd.so -o -e "/usr/lib/$TARGET_TRIPLET/libzstd.so"; then - installRemoteModule_zstdVersion=1.4.4 - installRemoteModule_zstdVersionMajor=$(echo $installRemoteModule_zstdVersion | cut -d. -f1) - rm -rf /tmp/src/zstd - mv "$(getPackageSource https://github.com/facebook/zstd/releases/download/v$installRemoteModule_zstdVersion/zstd-$installRemoteModule_zstdVersion.tar.gz)" /tmp/src/zstd - cd /tmp/src/zstd - make V=0 -j$(getProcessorCount) lib - cp -f lib/libzstd.so "/usr/lib/$TARGET_TRIPLET/libzstd.so.$installRemoteModule_zstdVersion" - ln -sf "/usr/lib/$TARGET_TRIPLET/libzstd.so.$installRemoteModule_zstdVersion" "/usr/lib/$TARGET_TRIPLET/libzstd.so.$installRemoteModule_zstdVersionMajor" - ln -sf "/usr/lib/$TARGET_TRIPLET/libzstd.so.$installRemoteModule_zstdVersion" "/usr/lib/$TARGET_TRIPLET/libzstd.so" - ln -sf /tmp/src/zstd/lib/zstd.h /usr/include/zstd.h - UNNEEDED_PACKAGE_LINKS="$UNNEEDED_PACKAGE_LINKS /usr/include/zstd.h" - cd - >/dev/null - fi - # Enable zstd compression support? - addConfigureOption enable-redis-zstd yes - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 6.0.0) -ge 0; then - # Enable msgpack serializer support? - if php --ri msgpack >/dev/null 2>/dev/null; then - addConfigureOption enable-redis-msgpack yes - else - addConfigureOption enable-redis-msgpack no - fi - # Enable lz4 compression? - addConfigureOption enable-redis-lz4 yes - # Use system liblz4? - addConfigureOption with-liblz4 yes - fi - fi - ;; - relay) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version="$(curl -sSLf https://builds.r2.relay.so/meta/latest)" - installRemoteModule_version="${installRemoteModule_version#v}" - fi - case $(uname -m) in - aarch64 | arm64 | armv8) - installRemoteModule_hardware=aarch64 - ;; - *) - installRemoteModule_hardware=x86-64 - ;; - esac - installRemoteModule_distro="$DISTRO" - installRemoteModule_flags='' - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -lt 317; then - installRemoteModule_distro=alpine3.9 - else - installRemoteModule_distro=alpine3.17 - fi - ;; - debian) - case "$(dpkg -l 'libssl*' | grep -E '^ii ' | cut -d' ' -f3)" in - libssl3*) - installRemoteModule_flags=+libssl3 - ;; - esac - ;; - esac - # See https://relay.so/builds - installRemoteModule_url="https://builds.r2.relay.so/v${installRemoteModule_version}/relay-v${installRemoteModule_version}-php${PHP_MAJDOTMIN_VERSION}-${installRemoteModule_distro}-${installRemoteModule_hardware}${installRemoteModule_flags}.tar.gz" - printf 'Downloading relay v%s (%s) from %s... ' "$installRemoteModule_version" "$installRemoteModule_hardware" "$installRemoteModule_url" - installRemoteModule_src="$(getPackageSource $installRemoteModule_url)" - echo 'done.' - cp -- "$installRemoteModule_src/relay-pkg.so" "$PHP_EXTDIR/relay.so" - sed -i "s/00000000-0000-0000-0000-000000000000/$(cat /proc/sys/kernel/random/uuid)/" "$PHP_EXTDIR/relay.so" - installRemoteModule_ini_extra="$(grep -vE '^[ \t]*extension[ \t]*=' $installRemoteModule_src/relay.ini)" - installRemoteModule_manuallyInstalled=1 - ;; - saxon) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -ge 800; then - installRemoteModule_version='12.4.2' - else - installRemoteModule_version='12.3' - fi - fi - installRemoteModule_majorVersion="${installRemoteModule_version%%.*}" - if test "$installRemoteModule_majorVersion" -ge 12; then - case $(uname -m) in - aarch64 | arm64 | armv8) - installRemoteModule_url=https://downloads.saxonica.com/SaxonC/EE/${installRemoteModule_majorVersion}/libsaxon-EEC-linux-aarch64-v${installRemoteModule_version}.zip - ;; - *) - installRemoteModule_url=https://downloads.saxonica.com/SaxonC/EE/${installRemoteModule_majorVersion}/libsaxon-EEC-linux-x86_64-v${installRemoteModule_version}.zip - ;; - esac - else - installRemoteModule_url=https://downloads.saxonica.com/SaxonC/EE/${installRemoteModule_majorVersion}/libsaxon-EEC-setup64-v${installRemoteModule_version}.zip - fi - installRemoteModule_dir="$(getPackageSource $installRemoteModule_url)" - if ! test -f /usr/lib/libsaxon-*.so; then - if test "$installRemoteModule_majorVersion" -ge 12; then - cp $installRemoteModule_dir/libs/nix/*.so /usr/lib/ - else - cp $installRemoteModule_dir/*.so /usr/lib/ - fi - ldconfig || true - fi - cd "$installRemoteModule_dir/Saxon.C.API" - phpize - ./configure --enable-saxon - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - ;; - seasclick) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.1.0 - fi - fi - ;; - seaslog) - installRemoteModule_cppflags='-Wno-incompatible-pointer-types' - ;; - smbclient) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.1.1 - elif test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=1.1.2 - fi - fi - ;; - snappy) - if test -z "$installRemoteModule_path"; then - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=0.2.1 - fi - installRemoteModule_src="$(getPackageSource https://github.com/kjdev/php-ext-snappy/archive/refs/tags/$installRemoteModule_version.tar.gz)" - cd "$installRemoteModule_src" - phpize - ./configure --with-snappy-includedir=/usr - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - fi - ;; - snuffleupagus) - if test -z "$installRemoteModule_path"; then - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 800; then - installRemoteModule_version=0.9.0 - elif test $PHP_MAJMIN_VERSION -le 801; then - installRemoteModule_version=0.10.0 - else - installRemoteModule_version=0.11.0 - fi - fi - installRemoteModule_src="$(getPackageSource https://codeload.github.com/jvoisin/snuffleupagus/tar.gz/v$installRemoteModule_version)" - cd "$installRemoteModule_src/src" - phpize - ./configure --enable-snuffleupagus - make -j$(getProcessorCount) install - cd - >/dev/null - cp -a "$installRemoteModule_src/config/default.rules" "$PHP_INI_DIR/conf.d/snuffleupagus.rules" - if test $(compareVersions "$installRemoteModule_version" 0.8.0) -ge 0; then - printf '\n# Disable "PHP version is not officially maintained anymore" message\nsp.global.show_old_php_warning.disable();\n' >>"$PHP_INI_DIR/conf.d/snuffleupagus.rules" - fi - else - if test -f "$installRemoteModule_path/config/default.rules"; then - cp -a "$installRemoteModule_path/config/default.rules" "$PHP_INI_DIR/conf.d/snuffleupagus.rules" - fi - fi - installRemoteModule_ini_extra="$(printf '%ssp.configuration_file=%s\n' "$installRemoteModule_ini_extra" "$PHP_INI_DIR/conf.d/snuffleupagus.rules")" - installRemoteModule_manuallyInstalled=1 - ;; - sodium | libsodium) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=1.0.7 - fi - fi - ;; - solr) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=2.4.0 - elif test $PHP_MAJMIN_VERSION -lt 704; then - installRemoteModule_version=2.6.0 - fi - fi - ;; - sourceguardian) - installSourceGuardian - installRemoteModule_manuallyInstalled=1 - ;; - spx) - if test -z "$installRemoteModule_path"; then - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=v0.4.18 - fi - if test "${installRemoteModule_version%.*}" = "$installRemoteModule_version"; then - installRemoteModule_displayVersion="$installRemoteModule_version" - else - installRemoteModule_displayVersion="git--master-$installRemoteModule_version" - fi - installRemoteModule_src="$(getPackageSource https://codeload.github.com/NoiseByNorthwest/php-spx/tar.gz/$installRemoteModule_version)" - cd -- "$installRemoteModule_src" - phpize - ./configure - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - fi - ;; - sqlsrv | pdo_sqlsrv) - isMicrosoftSqlServerODBCInstalled || installMicrosoftSqlServerODBC - if test -z "$installRemoteModule_version"; then - # https://docs.microsoft.com/it-it/sql/connect/php/system-requirements-for-the-php-sql-driver?view=sql-server-2017 - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=3.0.1 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=5.3.0 - elif test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=5.6.1 - elif test $PHP_MAJMIN_VERSION -le 702; then - installRemoteModule_version=5.8.1 - elif test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=5.9.0 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=5.10.1 - elif test $PHP_MAJMIN_VERSION -le 800; then - installRemoteModule_version=5.11.1 - fi - fi - ;; - ssh2) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.13 - fi - fi - ;; - stomp) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.0.9 - fi - fi - if test "$DISTRO" = debian; then - addConfigureOption with-openssl-dir yes - else - addConfigureOption with-openssl-dir /usr - fi - ;; - swoole) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 502; then - installRemoteModule_version=1.6.10 - elif test $PHP_MAJMIN_VERSION -le 504; then - installRemoteModule_version=2.0.4 - elif test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.0.11 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=4.3.6 - elif test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=4.5.10 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=4.8.11 - elif test $PHP_BITS -eq 32; then - # See https://github.com/swoole/swoole-src/issues/5198#issuecomment-1820162178 - installRemoteModule_version="$(resolvePHPModuleVersion "$installRemoteModule_module" '^5.0')" - else - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -le 312; then - installRemoteModule_version=5.1.2 - fi - ;; - esac - fi - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 800; then - installRemoteModule_version=5.1.3 - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" stable)" - fi - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if php --ri sockets >/dev/null 2>/dev/null; then - installRemoteModule_sockets=yes - else - installRemoteModule_sockets=no - fi - installRemoteModule_openssl=yes - case "$DISTRO_VERSION" in - alpine@3.7 | alpine@3.8) - if test $(compareVersions "$installRemoteModule_version" 4.6.0) -lt 0; then - # see https://github.com/swoole/swoole-src/issues/3934 - installRemoteModule_openssl=no - fi - ;; - esac - if test $PHP_THREADSAFE -eq 1; then - installRemoteModule_zts=yes - else - installRemoteModule_zts=no - fi - installRemoteModule_sqlite=yes - installRemoteModule_iouring=no - installRemoteModule_curl=yes - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -lt 317; then - # we need sqlite3 >= 3.7.7 - installRemoteModule_sqlite=no - fi - case "${IPE_SWOOLE_WITHOUT_IOURING:-}" in - 1 | y* | Y*) ;; - *) - # iouring support in swoole 6 requires liburing 2.5+: available since Alpine 3.19 - # but with Alpine 3.19 we have a "invalid use of incomplete type 'const struct statx'" error - if test $DISTRO_MAJMIN_VERSION -ge 320; then - installRemoteModule_iouring=yes - fi - ;; - esac - ;; - debian) - if test $PHP_MAJMIN_VERSION -ge 800; then - # see https://github.com/swoole/swoole-src/issues/5365 - installRemoteModule_curl=no - fi - if test $DISTRO_MAJMIN_VERSION -lt 1200; then - # we need sqlite3 >= 3.7.7 - installRemoteModule_sqlite=no - fi - case "${IPE_SWOOLE_WITHOUT_IOURING:-}" in - 1 | y* | Y*) ;; - *) - if test $DISTRO_VERSION_NUMBER -ge 13; then - # iouring support in swoole 6 requires liburing 2.5+: available since Debian Trixie (13) - installRemoteModule_iouring=yes - fi - ;; - esac - ;; - esac - installRemoteModule_zstd=yes - case "$DISTRO" in - debian) - if test $DISTRO_VERSION_NUMBER -lt 11; then - # swoole 6 requires libzstd >= 1.4.0, but on debian 10 (buster) we have 1.3.8 - installRemoteModule_zstd=no - fi - ;; - esac - if test $(compareVersions "$installRemoteModule_version" 6.0.0) -ge 0; then - # enable sockets support? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - # enable cares support? - addConfigureOption enable-cares yes - # enable brotli support? - addConfigureOption enable-brotli yes - # enable zstd support? - addConfigureOption enable-zstd $installRemoteModule_zstd - # enable PostgreSQL database support? - addConfigureOption enable-swoole-pgsql yes - # enable ODBC database support? - addConfigureOption with-swoole-odbc no - # enable Oracle database support? - addConfigureOption with-swoole-oracle no - # enable Sqlite database support? - addConfigureOption enable-swoole-sqlite $installRemoteModule_sqlite - # enable swoole thread support (need php zts support)? - addConfigureOption enable-swoole-thread $installRemoteModule_zts - # enable iouring for file async support? - addConfigureOption enable-iouring $installRemoteModule_iouring - elif test $(compareVersions "$installRemoteModule_version" 5.1.0) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - # enable cares support? - addConfigureOption enable-cares yes - # enable brotli support? - addConfigureOption enable-brotli yes - # enable PostgreSQL database support? - addConfigureOption enable-swoole-pgsql yes - # enable ODBC database support? - addConfigureOption with-swoole-odbc no - # enable Oracle database support? - addConfigureOption with-swoole-oracle no - # enable Sqlite database support? - addConfigureOption enable-swoole-sqlite $installRemoteModule_sqlite - elif test $(compareVersions "$installRemoteModule_version" 5.0.1) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - # enable cares support? - addConfigureOption enable-cares yes - # enable brotli support? - addConfigureOption enable-brotli yes - elif test $(compareVersions "$installRemoteModule_version" 5.0.0) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - # enable cares support? - addConfigureOption enable-cares yes - elif test $(compareVersions "$installRemoteModule_version" 4.8.11) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable json support? - addConfigureOption enable-swoole-json yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - # enable cares support? - addConfigureOption enable-cares yes - elif test $(compareVersions "$installRemoteModule_version" 4.6.1) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable json support? - addConfigureOption enable-swoole-json yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - elif test $(compareVersions "$installRemoteModule_version" 4.4.0) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - elif test $(compareVersions "$installRemoteModule_version" 4.2.11) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable postgresql coroutine client support? - addConfigureOption enable-coroutine-postgresql yes - elif test $(compareVersions "$installRemoteModule_version" 4.2.7) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable postgresql coroutine client support? - addConfigureOption enable-coroutine-postgresql yes - # enable kernel debug/trace log? (it will degrade performance) - addConfigureOption enable-debug-log no - elif test $(compareVersions "$installRemoteModule_version" 4.2.6) -ge 0; then - # enable debug/trace log support? - addConfigureOption enable-debug-log no - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable postgresql coroutine client support? - addConfigureOption enable-coroutine-postgresql yes - elif test $(compareVersions "$installRemoteModule_version" 4.2.0) -ge 0; then - # enable debug/trace log support? - addConfigureOption enable-debug-log no - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable async-redis support? - addConfigureOption enable-async-redis yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable postgresql coroutine client support? - addConfigureOption enable-coroutine-postgresql yes - elif test $(compareVersions "$installRemoteModule_version" 2.1.2) -ge 0; then - # enable debug/trace log support? - addConfigureOption enable-swoole-debug no - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable async-redis support? - addConfigureOption enable-async-redis yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable postgresql coroutine client support? - addConfigureOption enable-coroutine-postgresql yes - elif test $(compareVersions "$installRemoteModule_version" 1.10.4) -ge 0 && test $(compareVersions "$installRemoteModule_version" 1.10.5) -le 0; then - # enable debug/trace log support? - addConfigureOption enable-swoole-debug no - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable async-redis support? - addConfigureOption enable-async-redis yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - fi - ;; - tdlib) - if ! test -f /usr/lib/libphpcpp.so || ! test -f /usr/include/phpcpp.h; then - if test $PHP_MAJMIN_VERSION -le 701; then - cd "$(getPackageSource https://codeload.github.com/CopernicaMarketingSoftware/PHP-CPP/tar.gz/v2.1.4)" - elif test $PHP_MAJMIN_VERSION -le 703; then - cd "$(getPackageSource https://codeload.github.com/CopernicaMarketingSoftware/PHP-CPP/tar.gz/v2.2.0)" - else - cd "$(getPackageSource https://codeload.github.com/CopernicaMarketingSoftware/PHP-CPP/tar.gz/444d1f90cf6b7f3cb5178fa0d0b5ab441b0389d0)" - fi - make -j$(getProcessorCount) - make install - cd - >/dev/null - fi - if test -z "$installRemoteModule_path"; then - installRemoteModule_tmp="$(mktemp -p /tmp/src -d)" - git clone --depth=1 --recurse-submodules https://github.com/yaroslavche/phptdlib.git "$installRemoteModule_tmp" - mkdir "$installRemoteModule_tmp/build" - cd "$installRemoteModule_tmp/build" - cmake -D USE_SHARED_PHPCPP:BOOL=ON .. - make - make install - cd - >/dev/null - rm "$PHP_INI_DIR/conf.d/tdlib.ini" - installRemoteModule_manuallyInstalled=1 - fi - ;; - tensor) - installRemoteModule_cppflags='-Wno-incompatible-pointer-types' - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=2.2.3 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=3.0.5 - fi - fi - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -ge 315 && test $DISTRO_MAJMIN_VERSION -le 317; then - if test -e /usr/lib/liblapacke.so.3 && ! test -e /usr/lib/liblapacke.so; then - ln -s /usr/lib/liblapacke.so.3 /usr/lib/liblapacke.so - fi - fi - ;; - esac - ;; - tideways) - case "$DISTRO" in - alpine) - case $(uname -m) in - aarch64 | arm64 | armv8) - installRemoteModule_architecture=alpine-arm64 - ;; - *) - installRemoteModule_architecture=alpine-x86_64 - ;; - esac - ;; - debian) - case $(uname -m) in - aarch64 | arm64 | armv8) - installRemoteModule_architecture=arm64 - ;; - *) - installRemoteModule_architecture=x86_64 - ;; - esac - ;; - esac - installRemoteModule_url="$(curl -sSLf -o - https://tideways.com/profiler/downloads | grep -Eo "\"[^\"]+/tideways-php-([0-9]+\.[0-9]+\.[0-9]+)-$installRemoteModule_architecture.tar.gz\"" | cut -d'"' -f2)" - if test -z "$installRemoteModule_url"; then - echo 'Failed to find the tideways tarball to be downloaded' - exit 1 - fi - printf 'Downloading tideways from %s\n' "$installRemoteModule_url" - installRemoteModule_src="$(getPackageSource $installRemoteModule_url)" - if test -d "$installRemoteModule_src/dist"; then - installRemoteModule_src="$installRemoteModule_src/dist" - fi - installRemoteModule_src="$installRemoteModule_src/tideways-php" - case "$DISTRO" in - alpine) - installRemoteModule_src="$installRemoteModule_src-alpine" - ;; - esac - installRemoteModule_src="$installRemoteModule_src-$PHP_MAJDOTMIN_VERSION" - if test $PHP_THREADSAFE -eq 1; then - installRemoteModule_src="$installRemoteModule_src-zts" - fi - installRemoteModule_src="$installRemoteModule_src.so" - if ! test -f "$installRemoteModule_src"; then - echo 'tideways does not support the current environment' >&2 - exit 1 - fi - mv "$installRemoteModule_src" $(getPHPExtensionsDir)/tideways.so - installRemoteModule_manuallyInstalled=1 - ;; - uopz) - installRemoteModule_cppflags='-Wno-incompatible-pointer-types' - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.0.7 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=5.0.2 - elif test $PHP_MAJMIN_VERSION -le 740; then - installRemoteModule_version=6.1.2 - fi - fi - ;; - uploadprogress) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=1.1.4 - fi - fi - ;; - uuid) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.0.5 - fi - fi - ;; - uv) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 800; then - installRemoteModule_version=0.2.4 - else - installRemoteModule_version=beta - fi - fi - ;; - vld) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=0.14.0 - else - installRemoteModule_version=beta - fi - fi - ;; - wikidiff2) - case "$DISTRO" in - alpine) - if ! isLibDatrieInstalled; then - installLibDatrie - fi - if ! isLibThaiInstalled; then - installLibThai - fi - ;; - esac - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 702; then - installRemoteModule_version=1.13.0 - else - installRemoteModule_version="$(git -c versionsort.suffix=- ls-remote --tags --refs --quiet --exit-code --sort=version:refname https://github.com/wikimedia/mediawiki-php-wikidiff2.git 'refs/tags/*.*.*' | tail -1 | cut -d/ -f3)" - fi - fi - installRemoteModule_src="$(getPackageSource "https://codeload.github.com/wikimedia/mediawiki-php-wikidiff2/tar.gz/refs/tags/$installRemoteModule_version")" - cd -- "$installRemoteModule_src" - phpize - ./configure - make -j$(getProcessorCount) - make install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - ;; - xdebug) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 500; then - installRemoteModule_version=2.0.5 - elif test $PHP_MAJMIN_VERSION -le 503; then - installRemoteModule_version=2.2.7 - elif test $PHP_MAJMIN_VERSION -le 504; then - installRemoteModule_version=2.4.1 - elif test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.5.5 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=2.6.1 - elif test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=2.9.8 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=3.1.6 - fi - fi - ;; - xdiff) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.5.2 - fi - fi - if ! test -f /usr/local/lib/libxdiff.* && ! test -f /usr/lib/libxdiff.* && ! test -f /usr/lib/x86_64*/libxdiff.*; then - installRemoteModule_src="$(getPackageSource https://raw.githubusercontent.com/mlocati/docker-php-extension-installer/assets/resources/libxdiff-0.23.tar.gz)" - cd -- "$installRemoteModule_src" - ./configure --disable-shared --disable-dependency-tracking --with-pic - make -j$(getProcessorCount) - make install - cd - >/dev/null - fi - ;; - xhprof) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.9.4 - fi - fi - ;; - xlswriter) - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 1.2.7) -ge 0; then - # enable reader supports? - addConfigureOption enable-reader yes - fi - ;; - xmldiff) - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version"; then - case "$DISTRO_VERSION" in - debian@8) - # The gcc version of Debian Jessie is too old => error: 'nullptr' was not declared in this scope - installRemoteModule_version=1.1.4 - ;; - esac - fi - ;; - xmlrpc) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=beta - fi - ;; - yac) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.9.2 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 2.2.0) -ge 0; then - # Enable igbinary serializer support - if php --ri igbinary >/dev/null 2>/dev/null; then - addConfigureOption enable-igbinary yes - else - addConfigureOption enable-igbinary no - fi - # Enable json serializer support - if php --ri json >/dev/null 2>/dev/null; then - addConfigureOption enable-json yes - else - addConfigureOption enable-json no - fi - # Enable msgpack serializer support - if php --ri msgpack >/dev/null 2>/dev/null; then - addConfigureOption enable-msgpack yes - else - addConfigureOption enable-msgpack no - fi - fi - ;; - yaml) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.3.1 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=2.0.4 - fi - fi - ;; - yar) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.2.5 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 1.2.4) -ge 0; then - # Enable Msgpack Supports - if php --ri msgpack >/dev/null 2>/dev/null; then - addConfigureOption enable-msgpack yes - else - addConfigureOption enable-msgpack no - fi - fi - ;; - zmq) - if test -z "$installRemoteModule_version"; then - installRemoteModule_src="$(getPackageSource https://github.com/zeromq/php-zmq/tarball/master)" - cd "$installRemoteModule_src" - phpize - ./configure - make -j$(getProcessorCount) - make install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - fi - ;; - zookeeper) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.5.0 - fi - fi - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - case "$DISTRO" in - alpine) - if ! test -f /usr/local/include/zookeeper/zookeeper.h; then - if test $(compareVersions "$installRemoteModule_version" 1.0.0) -lt 0; then - installRemoteModule_src="$(getPackageSource http://archive.apache.org/dist/zookeeper/zookeeper-3.5.9/apache-zookeeper-3.5.9.tar.gz)" - else - installRemoteModule_tmp="$(curl -sSLf https://downloads.apache.org/zookeeper/stable | sed -E 's/["<>]/\n/g' | grep -E '^(apache-)?zookeeper-[0-9]+\.[0-9]+\.[0-9]+\.(tar\.gz|tgz)$' | head -n1)" - if test -z "$installRemoteModule_tmp"; then - echo 'Failed to detect the zookeeper library URL' >&2 - exit 1 - fi - installRemoteModule_src="$(getPackageSource https://downloads.apache.org/zookeeper/stable/$installRemoteModule_tmp)" - fi - cd -- "$installRemoteModule_src" - if test -d ~/.m2; then - installRemoteModule_delm2=n - else - installRemoteModule_delm2=y - fi - mvn -pl zookeeper-jute compile - cd - >/dev/null - cd -- "$installRemoteModule_src/zookeeper-client/zookeeper-client-c" - autoreconf -if - ./configure --without-cppunit - make -j$(getProcessorCount) CFLAGS='-Wno-stringop-truncation -Wno-format-overflow' - make install - cd - >/dev/null - if test $installRemoteModule_delm2 = y; then - rm -rf ~/.m2 - fi - fi - ;; - esac - ;; - zstd) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.11.0 - fi - fi - ;; - esac - if test $installRemoteModule_manuallyInstalled -eq 0; then - if test -n "$installRemoteModule_path"; then - printf ' (installing version %s from %s)\n' "$installRemoteModule_version" "$installRemoteModule_path" - elif test -n "$installRemoteModule_version"; then - printf ' (installing version %s)\n' "$installRemoteModule_version" - fi - installPeclPackage "$installRemoteModule_module" "$installRemoteModule_version" "$installRemoteModule_cppflags" "$installRemoteModule_path" - fi - postProcessModule "$installRemoteModule_module" - if test $installRemoteModule_manuallyInstalled -lt 2; then - case "${IPE_SKIP_CHECK:-}" in - 1 | y* | Y*) ;; - *) - checkModuleWorking "$installRemoteModule_module" "$installRemoteModule_ini_basename" "$installRemoteModule_ini_extra" - ;; - esac - enablePhpExtension "$installRemoteModule_module" "$installRemoteModule_ini_basename" "$installRemoteModule_ini_extra" - fi -} - -# Check if a module/helper may be installed using the pecl archive -# -# Arguments: -# $1: the name of the module -# -# Return: -# 0: true -# 1: false -moduleMayUsePecl() { - case "$1" in - @composer | @fix_letsencrypt) - return 1 - ;; - blackfire | geos | ioncube_loader | snuffleupagus | sourceguardian | spx | tdlib | tideways) - return 1 - ;; - esac - if test -n "$(getModuleSourceCodePath "$1")"; then - return 1 - fi - if stringInList "$1" "$BUNDLED_MODULES"; then - return 1 - fi - return 0 -} - -# Configure the PECL package installer -# -# Updates: -# PHP_MODULES_TO_INSTALL -# Sets: -# USE_PICKLE 0: no, 1: yes (already downloaded), 2: yes (build it from source) -configureInstaller() { - USE_PICKLE=0 - if ! which pecl >/dev/null; then - for PHP_MODULE_TO_INSTALL in $PHP_MODULES_TO_INSTALL; do - if ! moduleMayUsePecl "$PHP_MODULE_TO_INSTALL"; then - continue - fi - if false && anyStringInList '' "$PHP_MODULES_TO_INSTALL"; then - USE_PICKLE=2 - else - curl -sSLf https://github.com/FriendsOfPHP/pickle/releases/latest/download/pickle.phar -o /tmp/pickle - chmod +x /tmp/pickle - USE_PICKLE=1 - fi - break - done - fi - if test $USE_PICKLE -eq 0; then - if test -z "$(pear config-get http_proxy)"; then - if test -n "${http_proxy:-}"; then - pear config-set http_proxy "$http_proxy" || true - elif test -n "${HTTP_PROXY:-}"; then - pear config-set http_proxy "$HTTP_PROXY" || true - fi - fi - pecl channel-update pecl.php.net || true - fi -} - -buildPickle() { - printf '### BUILDING PICKLE ###\n' - buildPickle_tempDir="$(mktemp -p /tmp/src -d)" - cd -- "$buildPickle_tempDir" - printf 'Downloading... ' - git clone --quiet --depth 1 https://github.com/FriendsOfPHP/pickle.git . - git tag 0.7.0 - printf 'done.\n' - printf 'Installing composer... ' - actuallyInstallComposer . composer '--1 --quiet' - printf 'done.\n' - printf 'Installing composer dependencies... ' - ./composer install --no-dev --no-progress --no-suggest --optimize-autoloader --ignore-platform-reqs --quiet --no-cache - printf 'done.\n' - printf 'Building... ' - php -d phar.readonly=0 box.phar build - mv pickle.phar /tmp/pickle - printf 'done.\n' - cd - >/dev/null -} - -# Add a configure option for the pecl/pickle install command -# -# Arguments: -# $1: the option name -# $2: the option value -addConfigureOption() { - if test $USE_PICKLE -eq 0; then - printf -- '%s\n' "$2" >>"$CONFIGURE_FILE" - else - printf -- '--%s=%s\n' "$1" "$2" >>"$CONFIGURE_FILE" - fi -} - -# Actually installs a PECL package -# -# Arguments: -# $1: the package to be installed -# $2: the package version to be installed (optional) -# $3: the value of the CPPFLAGS variable (optional) -# $4: the path of the local package to be installed (optional, downloaded from PECL if omitted/empty) -installPeclPackage() { - if ! test -f "$CONFIGURE_FILE"; then - printf '\n' >"$CONFIGURE_FILE" - fi - installPeclPackage_name="$(getPeclModuleName "$1")" - if test -z "${2:-}"; then - installPeclPackage_fullname="$installPeclPackage_name" - else - installPeclPackage_fullname="$installPeclPackage_name-$2" - fi - installPeclPackage_path="${4:-}" - if test -z "$installPeclPackage_path"; then - installPeclPackage_path="$installPeclPackage_fullname" - fi - if test $USE_PICKLE -eq 0; then - if test -n "${4:-}"; then - if test -f "$installPeclPackage_path/package2.xml"; then - installPeclPackage_path="$installPeclPackage_path/package2.xml" - else - installPeclPackage_path="$installPeclPackage_path/package.xml" - fi - fi - cat "$CONFIGURE_FILE" | MAKE="make -j$(getCompilationProcessorCount $1)" CPPFLAGS="${3:-}" pecl install "$installPeclPackage_path" - else - MAKEFLAGS="-j$(getCompilationProcessorCount $1)" CPPFLAGS="${3:-}" /tmp/pickle install --tmp-dir=/tmp/pickle.tmp --no-interaction --version-override='' --with-configure-options "$CONFIGURE_FILE" -- "$installPeclPackage_path" - fi -} - -# Check if a string is in a list of space-separated string -# -# Arguments: -# $1: the string to be checked -# $2: the string list -# -# Return: -# 0 (true): if the string is in the list -# 1 (false): if the string is not in the list -stringInList() { - for stringInList_listItem in $2; do - if test "$1" = "$stringInList_listItem"; then - return 0 - fi - done - return 1 -} - -# Check if at least one item in a list is in another list -# -# Arguments: -# $1: the space-separated list of items to be searched -# $2: the space-separated list of reference items -# -# Return: -# 0 (true): at least one of the items in $1 is in $2 -# 1 (false): otherwise -anyStringInList() { - for anyStringInList_item in $1; do - if stringInList "$anyStringInList_item" "$2"; then - return 0 - fi - done - return 1 -} - -# Remove a word from a space-separated list -# -# Arguments: -# $1: the word to be removed -# $2: the string list -# -# Output: -# The list without the word -removeStringFromList() { - removeStringFromList_result='' - for removeStringFromList_listItem in $2; do - if test "$1" != "$removeStringFromList_listItem"; then - if test -z "$removeStringFromList_result"; then - removeStringFromList_result="$removeStringFromList_listItem" - else - removeStringFromList_result="$removeStringFromList_result $removeStringFromList_listItem" - fi - fi - done - printf '%s' "$removeStringFromList_result" -} - -# Invoke apt-get update -invokeAptGetUpdate() { - if test -n "${IPE_APTGETUPDATE_ALREADY:-}"; then - apt-get update -q - return - fi - IPE_APTGETUPDATE_ALREADY=y - if grep -q 'VERSION="8 (jessie)"' /etc/os-release; then - invokeAptGetUpdate_fixdistro=jessie - elif grep -q 'VERSION="9 (stretch)"' /etc/os-release; then - invokeAptGetUpdate_fixdistro=stretch - else - invokeAptGetUpdate - return - fi - # See https://www.debian.org/distrib/archive.en.html for a list of mirrors - if test -z "${IPE_DEB_ARCHIVE:-}"; then - IPE_DEB_ARCHIVE=http://archive.kernel.org/debian-archive - fi - if test -z "${IPE_DEB_ARCHIVE_SECURITY:-}"; then - IPE_DEB_ARCHIVE_SECURITY=http://archive.kernel.org/debian-archive/debian-security - fi - sed -ri "s;^(\s*deb\s+http://(httpredir|deb).debian.org/debian\s+$invokeAptGetUpdate_fixdistro-updates\b.*);#\1;" /etc/apt/sources.list - sed -ri "s;^(\s*deb\s+)http://(httpredir|deb).debian.org;\1$IPE_DEB_ARCHIVE;" /etc/apt/sources.list - sed -ri "s;^(\s*deb\s+)http://security.debian.org/debian-security;\1$IPE_DEB_ARCHIVE_SECURITY;" /etc/apt/sources.list - sed -ri "s;^(\s*deb\s+)http://security.debian.org;\1$IPE_DEB_ARCHIVE_SECURITY;" /etc/apt/sources.list - invokeAptGetUpdate_tmp="$(mktemp)" - apt-get update -q 2>"$invokeAptGetUpdate_tmp" - if test -s "$invokeAptGetUpdate_tmp"; then - cat "$invokeAptGetUpdate_tmp" >&2 - if grep -qE ' KEYEXPIRED [0-9]' "$invokeAptGetUpdate_tmp"; then - echo '############' >&2 - echo '# WARNING! #' >&2 - echo '############' >&2 - echo 'apt packages will be installed without checking authenticity!' >&2 - printf 'APT::Get::AllowUnauthenticated "true";\n' >>/etc/apt/apt.conf.d/99unauthenticated - fi - fi - rm "$invokeAptGetUpdate_tmp" -} - -# Fix the Let's Encrypt CA certificates on old distros -fixLetsEncrypt() { - printf '### FIXING LETS ENCRYPT CA CERTIFICATES ###\n' - case "$DISTRO_VERSION" in - alpine@3.7 | alpine@3.8) - printf -- '- old Alpine Linux detected: we should fix the certificates\n' - ;; - debian@8 | debian@9) - printf -- '- old Debian detected: we should fix the certificates\n' - if ! grep -q 'mozilla/ISRG_Root_X1.crt' /etc/ca-certificates.conf && grep -q 'mozilla/DST_Root_CA_X3.crt' /etc/ca-certificates.conf; then - printf -- '- old ca-certificates package detected\n' - fixCACerts_mustUpdate=1 - if test -d /var/lib/apt/lists; then - for fixCACerts_item in $(ls -1 /var/lib/apt/lists); do - case "$fixCACerts_item" in - partial | lock) ;; - *) - fixCACerts_mustUpdate=0 - break - ;; - esac - done - fi - if test $fixCACerts_mustUpdate -eq 1; then - printf -- '- refreshing the APT package list\n' - invokeAptGetUpdate - fi - printf -- '- installing newer ca-certificates package\n' - apt-get install -qqy --no-install-recommends ca-certificates - fi - ;; - *) - printf -- '- patch not required in this distro version\n' - return - ;; - esac - if grep -Eq '^mozilla/ISRG_Root_X1\.crt$' /etc/ca-certificates.conf && grep -Eq '^mozilla/DST_Root_CA_X3\.crt$' /etc/ca-certificates.conf; then - printf -- '- disabling the DST_Root_CA_X3 certificate\n' - sed -i '/^mozilla\/DST_Root_CA_X3/s/^/!/' /etc/ca-certificates.conf - printf -- '- refreshing the certificates\n' - update-ca-certificates -f - else - printf -- '- DST_Root_CA_X3 certificate not found or already disabled\n' - fi -} - -# Cleanup everything at the end of the execution -cleanup() { - if test "${IPE_UNINSTALL_CARGO:-}" = y; then - if test -f "$HOME/.cargo/env"; then - . "$HOME/.cargo/env" - fi - if command -v rustup >/dev/null; then - rustup self uninstall -y - fi - fi - if test -n "$UNNEEDED_PACKAGE_LINKS"; then - printf '### REMOVING UNNEEDED PACKAGE LINKS ###\n' - for cleanup_link in $UNNEEDED_PACKAGE_LINKS; do - if test -L "$cleanup_link"; then - rm -f "$cleanup_link" - fi - done - fi - case "$DISTRO" in - alpine) - if stringInList icu-libs "${PACKAGES_PERSISTENT_NEW:-}" && stringInList icu-data-en "${PACKAGES_PERSISTENT_NEW:-}"; then - apk del icu-data-en >/dev/null 2>&1 || true - fi - if test -n "$PACKAGES_VOLATILE"; then - printf '### REMOVING UNNEEDED PACKAGES ###\n' - apk del --purge $PACKAGES_VOLATILE - fi - ;; - debian) - if test -n "$PACKAGES_VOLATILE"; then - printf '### REMOVING UNNEEDED PACKAGES ###\n' - apt-get remove --purge -y $PACKAGES_VOLATILE - fi - if test -n "$PACKAGES_PREVIOUS"; then - printf '### RESTORING PREVIOUSLY INSTALLED PACKAGES ###\n' - apt-get install -qqy --no-install-recommends --no-upgrade $PACKAGES_PREVIOUS - fi - ;; - esac - docker-php-source delete - rm -rf /tmp/src - rm -rf /tmp/pickle - rm -rf /tmp/pickle.tmp - rm -rf "$CONFIGURE_FILE" - case "${IPE_KEEP_SYSPKG_CACHE:-}" in - 1 | y* | Y*) ;; - *) - case "$DISTRO" in - alpine) - rm -rf /var/cache/apk/* - ;; - debian) - rm -rf /var/lib/apt/lists/* - ;; - esac - rm -rf /tmp/pear - ;; - esac -} - -DEBIAN_FRONTEND=noninteractive -export DEBIAN_FRONTEND -resetIFS -mkdir -p /tmp/src -mkdir -p /tmp/pickle.tmp -IPE_ERRFLAG_FILE="$(mktemp -p /tmp/src)" -CONFIGURE_FILE=/tmp/configure-options -IPE_APK_FLAGS='' -setDistro -case "$DISTRO_VERSION" in - debian@8) - fixMaxOpenFiles || true - ;; -esac -setPHPVersionVariables -setPHPPreinstalledModules -case "$PHP_MAJMIN_VERSION" in - 505 | 506 | 700 | 701 | 702 | 703 | 704 | 800 | 801 | 802 | 803 | 804) ;; - *) - printf "### ERROR: Unsupported PHP version: %s.%s ###\n" $((PHP_MAJMIN_VERSION / 100)) $((PHP_MAJMIN_VERSION % 100)) - ;; -esac -UNNEEDED_PACKAGE_LINKS='' -processCommandArguments "$@" - -if test -z "$PHP_MODULES_TO_INSTALL"; then - exit 0 -fi - -if stringInList @fix_letsencrypt "$PHP_MODULES_TO_INSTALL"; then - # This must be the very first thing we do - fixLetsEncrypt -fi - -sortModulesToInstall - -docker-php-source extract -BUNDLED_MODULES="$(find /usr/src/php/ext -mindepth 2 -maxdepth 2 -type f -name 'config.m4' | xargs -n1 dirname | xargs -n1 basename | xargs)" -configureInstaller - -buildRequiredPackageLists $PHP_MODULES_TO_INSTALL -if test -n "$PACKAGES_PERSISTENT_PRE"; then - markPreinstalledPackagesAsUsed -fi -if test -n "$PACKAGES_PERSISTENT_NEW$PACKAGES_VOLATILE"; then - installRequiredPackages -fi -if test "$PHP_MODULES_TO_INSTALL" != '@composer'; then - setTargetTriplet -fi -if test $USE_PICKLE -gt 1; then - buildPickle -fi - -compileLibs - -for PHP_MODULE_TO_INSTALL in $PHP_MODULES_TO_INSTALL; do - case "$PHP_MODULE_TO_INSTALL" in - @fix_letsencrypt) - # Already done: it must be the first thing we do - ;; - @composer) - installComposer - ;; - *) - if stringInList "$PHP_MODULE_TO_INSTALL" "$BUNDLED_MODULES"; then - installBundledModule "$PHP_MODULE_TO_INSTALL" - else - installRemoteModule "$PHP_MODULE_TO_INSTALL" - fi - ;; - esac -done -cleanup diff --git a/php8/8.2.28/build/php/extensions/install.sh b/php8/8.2.28/build/php/extensions/install.sh deleted file mode 100644 index 45d65e3db..000000000 --- a/php8/8.2.28/build/php/extensions/install.sh +++ /dev/null @@ -1,731 +0,0 @@ -#!/bin/sh - -export MC="-j$(nproc)" - -echo -echo "============================================" -echo "Install extensions from : install.sh" -echo "PHP version : ${PHP_VERSION}" -echo "Extra Extensions : ${PHP_EXTENSIONS}" -echo "Multicore Compilation : ${MC}" -echo "Container package url : ${CONTAINER_PACKAGE_URL}" -echo "Work directory : ${PWD}" -echo "============================================" -echo - - -if [ "${PHP_EXTENSIONS}" != "" ]; then - apk --update add --no-cache --virtual .build-deps autoconf g++ libtool make curl-dev gettext-dev linux-headers git -fi - - -export EXTENSIONS=",${PHP_EXTENSIONS}," - - -# -# Check if current php version is greater than or equal to -# specific version. -# -# For example, to check if current php is greater than or -# equal to PHP 8.0: -# -# isPhpVersionGreaterOrEqual 8 0 -# -# Param 1: Specific PHP Major version -# Param 2: Specific PHP Minor version -# Return : 1 if greater than or equal to, 0 if less than -# -isPhpVersionGreaterOrEqual() - { - local PHP_MAJOR_VERSION=$(php -r "echo PHP_MAJOR_VERSION;") - local PHP_MINOR_VERSION=$(php -r "echo PHP_MINOR_VERSION;") - - if [[ "$PHP_MAJOR_VERSION" -gt "$1" || "$PHP_MAJOR_VERSION" -eq "$1" && "$PHP_MINOR_VERSION" -ge "$2" ]]; then - return 1; - else - return 0; - fi -} - - -# -# Install extension from package file(.tgz), -# For example: -# -# installExtensionFromTgz redis-6.0.2 -# -# Param 1: Package name with version -# Param 2: enable options -# -installExtensionFromTgz() -{ - tgzName=$1 - result="" - extensionName="${tgzName%%-*}" - shift 1 - result=$@ - mkdir ${extensionName} - tar -xf ${tgzName}.tgz -C ${extensionName} --strip-components=1 - ( cd ${extensionName} && phpize && ./configure ${result} && make ${MC} && make install ) - - docker-php-ext-enable ${extensionName} -} - -# install use install-php-extensions -if [[ -z "${EXTENSIONS##*,ioncube_loader,*}" ]]; then - echo "---------- Install ioncube_loader ----------" - install-php-extensions ioncube_loader -fi - -if [[ -z "${EXTENSIONS##*,sourceguardian,*}" ]]; then - echo "---------- Install sourceguardian ----------" - apk add eudev-libs - install-php-extensions sourceguardian -fi - -if [[ -z "${EXTENSIONS##*,memcached,*}" ]]; then - echo "---------- Install memcached ----------" - install-php-extensions memcached -fi - -if [[ -z "${EXTENSIONS##*,ssh2,*}" ]]; then - echo "---------- Install ssh2 ----------" - install-php-extensions ssh2 -fi - -if [[ -z "${EXTENSIONS##*,xmlrpc,*}" ]]; then - echo "---------- Install xmlrpc ----------" - install-php-extensions xmlrpc -fi - -if [[ -z "${EXTENSIONS##*,maxminddb,*}" ]]; then - echo "---------- Install maxminddb ----------" - install-php-extensions maxminddb -fi - -if [[ -z "${EXTENSIONS##*,zstd,*}" ]]; then - echo "---------- Install zstd ----------" - install-php-extensions zstd -fi - -if [[ -z "${EXTENSIONS##*,grpc,*}" ]]; then - echo "---------- Install grpc ----------" - install-php-extensions grpc - docker-php-ext-enable grpc -fi - -if [[ -z "${EXTENSIONS##*,ftp,*}" ]]; then - echo "---------- Install ftp ----------" - install-php-extensions ftp -fi - -if [[ -z "${EXTENSIONS##*,snuffleupagus,*}" ]]; then - echo "---------- Install snuffleupagus ----------" - install-php-extensions snuffleupagus -fi - -if [[ -z "${EXTENSIONS##*,pdo_oci,*}" ]]; then - echo "---------- Install pdo_oci ----------" - install-php-extensions pdo_oci -fi - -if [[ -z "${EXTENSIONS##*,oci8,*}" ]]; then - echo "---------- Install oci8 ----------" - install-php-extensions oci8 -fi - -# end - - -if [[ -z "${EXTENSIONS##*,pdo_mysql,*}" ]]; then - echo "---------- Install pdo_mysql ----------" - docker-php-ext-install ${MC} pdo_mysql -fi - -if [[ -z "${EXTENSIONS##*,pcntl,*}" ]]; then - echo "---------- Install pcntl ----------" - docker-php-ext-install ${MC} pcntl -fi - -if [[ -z "${EXTENSIONS##*,mysqli,*}" ]]; then - echo "---------- Install mysqli ----------" - docker-php-ext-install ${MC} mysqli -fi - -if [[ -z "${EXTENSIONS##*,mbstring,*}" ]]; then - echo "---------- mbstring is installed ----------" -fi - -if [[ -z "${EXTENSIONS##*,exif,*}" ]]; then - echo "---------- Install exif ----------" - docker-php-ext-install ${MC} exif -fi - -if [[ -z "${EXTENSIONS##*,bcmath,*}" ]]; then - echo "---------- Install bcmath ----------" - docker-php-ext-install ${MC} bcmath -fi - -if [[ -z "${EXTENSIONS##*,calendar,*}" ]]; then - echo "---------- Install calendar ----------" - docker-php-ext-install ${MC} calendar -fi - -if [[ -z "${EXTENSIONS##*,zend_test,*}" ]]; then - echo "---------- Install zend_test ----------" - docker-php-ext-install ${MC} zend_test -fi - -if [[ -z "${EXTENSIONS##*,opcache,*}" ]]; then - echo "---------- Install opcache ----------" - docker-php-ext-install opcache -fi - -if [[ -z "${EXTENSIONS##*,sockets,*}" ]]; then - echo "---------- Install sockets ----------" - docker-php-ext-install ${MC} sockets -fi - -if [[ -z "${EXTENSIONS##*,gettext,*}" ]]; then - echo "---------- Install gettext ----------" - apk --no-cache add gettext-dev - docker-php-ext-install ${MC} gettext - -fi - -if [[ -z "${EXTENSIONS##*,shmop,*}" ]]; then - echo "---------- Install shmop ----------" - docker-php-ext-install ${MC} shmop -fi - -if [[ -z "${EXTENSIONS##*,sysvmsg,*}" ]]; then - echo "---------- Install sysvmsg ----------" - docker-php-ext-install ${MC} sysvmsg -fi - -if [[ -z "${EXTENSIONS##*,sysvsem,*}" ]]; then - echo "---------- Install sysvsem ----------" - docker-php-ext-install ${MC} sysvsem -fi - -if [[ -z "${EXTENSIONS##*,sysvshm,*}" ]]; then - echo "---------- Install sysvshm ----------" - docker-php-ext-install ${MC} sysvshm -fi - -if [[ -z "${EXTENSIONS##*,pdo_firebird,*}" ]]; then - echo "---------- Install pdo_firebird ----------" - docker-php-ext-install ${MC} pdo_firebird -fi - -if [[ -z "${EXTENSIONS##*,pdo_dblib,*}" ]]; then - echo "---------- Install pdo_dblib ----------" - docker-php-ext-install ${MC} pdo_dblib -fi - -if [[ -z "${EXTENSIONS##*,pdo_odbc,*}" ]]; then - echo "---------- Install pdo_odbc ----------" - docker-php-ext-install ${MC} pdo_odbc -fi - -if [[ -z "${EXTENSIONS##*,pdo_pgsql,*}" ]]; then - echo "---------- Install pdo_pgsql ----------" - apk --no-cache add postgresql-dev \ - && docker-php-ext-install ${MC} pdo_pgsql -fi - -if [[ -z "${EXTENSIONS##*,pgsql,*}" ]]; then - echo "---------- Install pgsql ----------" - apk --no-cache add postgresql-dev \ - && docker-php-ext-install ${MC} pgsql -fi - -if [[ -z "${EXTENSIONS##*,odbc,*}" ]]; then - echo "---------- Install odbc ----------" - docker-php-ext-install ${MC} odbc -fi - -if [[ -z "${EXTENSIONS##*,dba,*}" ]]; then - echo "---------- Install dba ----------" - docker-php-ext-install ${MC} dba -fi - -if [[ -z "${EXTENSIONS##*,interbase,*}" ]]; then - echo "---------- Install interbase ----------" - echo "Alpine linux do not support interbase/firebird!!!" - #docker-php-ext-install ${MC} interbase -fi - -if [[ -z "${EXTENSIONS##*,hprose,*}" ]]; then - echo "---------- Install hprose ----------" - printf "\n" | pecl install hprose - docker-php-ext-enable hprose -fi - -if [[ -z "${EXTENSIONS##*,gd,*}" ]]; then - echo "---------- Install gd ----------" - isPhpVersionGreaterOrEqual 8 0 - - if [[ "$?" = "1" ]]; then - # "--with-xxx-dir" was removed from php 7.4, - # issue: https://github.com/docker-library/php/issues/912 - options="--with-freetype --with-jpeg --with-webp" - else - options="--with-gd --with-freetype-dir=/usr/include/ --with-png-dir=/usr/include/ --with-jpeg-dir=/usr/include/ --with-webp-dir=/usr/include/" - fi - - apk add --no-cache \ - freetype \ - freetype-dev \ - libpng \ - libpng-dev \ - libjpeg-turbo \ - libjpeg-turbo-dev \ - libwebp-dev \ - && docker-php-ext-configure gd ${options} \ - && docker-php-ext-install ${MC} gd \ - && apk del \ - freetype-dev \ - libpng-dev \ - libjpeg-turbo-dev -fi - -if [[ -z "${EXTENSIONS##*,yaml,*}" ]]; then - echo "---------- Install yaml ----------" - apk add --no-cache yaml-dev - printf "\n" | pecl install yaml - docker-php-ext-enable yaml -fi - -if [[ -z "${EXTENSIONS##*,intl,*}" ]]; then - echo "---------- Install intl ----------" - apk add --no-cache icu-dev - docker-php-ext-install ${MC} intl -fi - -if [[ -z "${EXTENSIONS##*,bz2,*}" ]]; then - echo "---------- Install bz2 ----------" - apk add --no-cache bzip2-dev - docker-php-ext-install ${MC} bz2 -fi - -if [[ -z "${EXTENSIONS##*,soap,*}" ]]; then - echo "---------- Install soap ----------" - apk add --no-cache libxml2-dev - docker-php-ext-install ${MC} soap -fi - -if [[ -z "${EXTENSIONS##*,xsl,*}" ]]; then - echo "---------- Install xsl ----------" - apk add --no-cache libxml2-dev libxslt-dev - docker-php-ext-install ${MC} xsl -fi - -if [[ -z "${EXTENSIONS##*,wddx,*}" ]]; then - echo "---------- Install wddx ----------" - apk add --no-cache libxml2-dev libxslt-dev - docker-php-ext-install ${MC} wddx -fi - -if [[ -z "${EXTENSIONS##*,curl,*}" ]]; then - echo "---------- curl is installed ----------" -fi - -if [[ -z "${EXTENSIONS##*,readline,*}" ]]; then - echo "---------- Install readline ----------" - apk add --no-cache readline-dev - apk add --no-cache libedit-dev - docker-php-ext-install ${MC} readline -fi - -if [[ -z "${EXTENSIONS##*,snmp,*}" ]]; then - echo "---------- Install snmp ----------" - apk add --no-cache net-snmp-dev - docker-php-ext-install ${MC} snmp -fi - -if [[ -z "${EXTENSIONS##*,pspell,*}" ]]; then - echo "---------- Install pspell ----------" - apk add --no-cache aspell-dev - apk add --no-cache aspell-en - docker-php-ext-install ${MC} pspell -fi - -if [[ -z "${EXTENSIONS##*,recode,*}" ]]; then - echo "---------- Install recode ----------" - apk add --no-cache recode-dev - docker-php-ext-install ${MC} recode -fi - -if [[ -z "${EXTENSIONS##*,tidy,*}" ]]; then - echo "---------- Install tidy ----------" - apk add --no-cache tidyhtml-dev - - # Fix: https://github.com/htacg/tidy-html5/issues/235 - ln -s /usr/include/tidybuffio.h /usr/include/buffio.h - - docker-php-ext-install ${MC} tidy -fi - -if [[ -z "${EXTENSIONS##*,gmp,*}" ]]; then - echo "---------- Install gmp ----------" - apk add --no-cache gmp-dev - docker-php-ext-install ${MC} gmp -fi - -if [[ -z "${EXTENSIONS##*,imap,*}" ]]; then - echo "---------- Install imap ----------" - apk add --no-cache imap-dev - docker-php-ext-configure imap --with-imap --with-imap-ssl - docker-php-ext-install ${MC} imap -fi - -if [[ -z "${EXTENSIONS##*,ldap,*}" ]]; then - echo "---------- Install ldap ----------" - apk add --no-cache ldb-dev - apk add --no-cache openldap-dev - docker-php-ext-install ${MC} ldap -fi - -if [[ -z "${EXTENSIONS##*,psr,*}" ]]; then - echo "---------- Install psr ----------" - printf "\n" | pecl install psr - docker-php-ext-enable psr -fi - -if [[ -z "${EXTENSIONS##*,imagick,*}" ]]; then - echo "---------- Install imagick ----------" - apk add --no-cache file-dev - apk add --no-cache imagemagick imagemagick-dev imagemagick-pdf -# cd imagick-3.7.0 && phpize && ./configure -# make -# make install - installExtensionFromTgz imagick-3.7.0 -fi - -if [[ -z "${EXTENSIONS##*,rar,*}" ]]; then - echo "---------- Install rar ----------" - printf "\n" | pecl install rar - docker-php-ext-enable rar -fi - -if [[ -z "${EXTENSIONS##*,ast,*}" ]]; then - echo "---------- Install ast ----------" - printf "\n" | pecl install ast - docker-php-ext-enable ast -fi - -if [[ -z "${EXTENSIONS##*,msgpack,*}" ]]; then - echo "---------- Install msgpack ----------" - printf "\n" | pecl install msgpack - docker-php-ext-enable msgpack -fi - -if [[ -z "${EXTENSIONS##*,igbinary,*}" ]]; then - echo "---------- Install igbinary ----------" - printf "\n" | pecl install igbinary - docker-php-ext-enable igbinary -fi - -if [[ -z "${EXTENSIONS##*,protobuf,*}" ]]; then - isPhpVersionGreaterOrEqual 8 0 - if [[ "$?" = "1" ]]; then - echo "---------- Install protobuf ----------" - printf "\n" | pecl install protobuf - docker-php-ext-enable protobuf - else - echo "yar requires PHP >= 8.0.0, installed version is ${PHP_VERSION}" - fi -fi - -if [[ -z "${EXTENSIONS##*,yac,*}" ]]; then - isPhpVersionGreaterOrEqual 8 0 - if [[ "$?" = "1" ]]; then - echo "---------- Install yac ----------" - printf "\n" | pecl install yac-2.0.2 - docker-php-ext-enable yac - else - echo "yar requires PHP >= 8.0.0, installed version is ${PHP_VERSION}" - fi -fi - -if [[ -z "${EXTENSIONS##*,yar,*}" ]]; then - isPhpVersionGreaterOrEqual 8 0 - if [[ "$?" = "1" ]]; then - echo "---------- Install yar ----------" - printf "\n" | pecl install yar - docker-php-ext-enable yar - else - echo "yar requires PHP >= 8.0.0, installed version is ${PHP_VERSION}" - fi - -fi - - - -if [[ -z "${EXTENSIONS##*,yaconf,*}" ]]; then - isPhpVersionGreaterOrEqual 8 0 - if [[ "$?" = "1" ]]; then - echo "---------- Install yaconf ----------" - printf "\n" | pecl install yaconf - docker-php-ext-enable yaconf - else - echo "yar requires PHP >= 8.0.0, installed version is ${PHP_VERSION}" - fi -fi - -if [[ -z "${EXTENSIONS##*,seaslog,*}" ]]; then - echo "---------- Install seaslog ----------" - printf "\n" | pecl install seaslog - docker-php-ext-enable seaslog -fi - -if [[ -z "${EXTENSIONS##*,varnish,*}" ]]; then - echo "---------- Install varnish ----------" - apk add --no-cache varnish-dev - printf "\n" | pecl install varnish - docker-php-ext-enable varnish -fi - -if [[ -z "${EXTENSIONS##*,pdo_sqlsrv,*}" ]]; then - isPhpVersionGreaterOrEqual 8 0 - if [[ "$?" = "1" ]]; then - echo "---------- Install pdo_sqlsrv ----------" - apk add --no-cache unixodbc-dev - printf "\n" | pecl install pdo_sqlsrv - docker-php-ext-enable pdo_sqlsrv - curl -o /tmp/msodbcsql17_amd64.apk https://download.microsoft.com/download/e/4/e/e4e67866-dffd-428c-aac7-8d28ddafb39b/msodbcsql17_17.5.2.1-1_amd64.apk - apk add --allow-untrusted /tmp/msodbcsql17_amd64.apk - else - echo "pdo_sqlsrv requires PHP >= 8.0.0, installed version is ${PHP_VERSION}" - fi -fi - -if [[ -z "${EXTENSIONS##*,sqlsrv,*}" ]]; then - isPhpVersionGreaterOrEqual 8 0 - if [[ "$?" = "1" ]]; then - echo "---------- Install sqlsrv ----------" - install-php-extensions sqlsrv - else - echo "sqlsrv requires PHP >= 8.0.0, installed version is ${PHP_VERSION}" - fi -fi - -if [[ -z "${EXTENSIONS##*,mcrypt,*}" ]]; then - isPhpVersionGreaterOrEqual 8 0 - if [[ "$?" = "1" ]]; then - echo "---------- Install mcrypt ----------" - apk add --no-cache libmcrypt-dev libmcrypt re2c - printf "\n" |pecl install mcrypt - docker-php-ext-enable mcrypt - else - echo "---------- Install mcrypt ----------" - apk add --no-cache libmcrypt-dev \ - && docker-php-ext-install ${MC} mcrypt - fi -fi - -if [[ -z "${EXTENSIONS##*,mysql,*}" ]]; then - isPhpVersionGreaterOrEqual 8 0 - - if [[ "$?" = "1" ]]; then - echo "---------- mysql was REMOVED from PHP 8.0.0 ----------" - else - echo "---------- Install mysql ----------" - docker-php-ext-install ${MC} mysql - fi -fi - -if [[ -z "${EXTENSIONS##*,sodium,*}" ]]; then - isPhpVersionGreaterOrEqual 8 0 - if [[ "$?" = "1" ]]; then - echo - echo "Sodium is bundled with PHP from PHP 8.0.0" - echo - else - echo "---------- Install sodium ----------" - apk add --no-cache libsodium-dev - docker-php-ext-install ${MC} sodium - fi -fi - -if [[ -z "${EXTENSIONS##*,amqp,*}" ]]; then - echo "---------- Install amqp ----------" - apk add --no-cache -U autoconf - apk add --no-cache -U gcc - apk add --no-cache -U linux-headers - apk add --no-cache -U libc-dev - - apk add --no-cache --update --virtual .phpize-deps-configure $PHPIZE_DEPS \ - && apk add rabbitmq-c-dev \ - && printf '\n' | pecl install amqp \ - && docker-php-ext-enable amqp \ - && apk del .phpize-deps-configure - -fi - -if [[ -z "${EXTENSIONS##*,redis,*}" ]]; then - echo "---------- Install redis ----------" - installExtensionFromTgz redis-6.0.2 -fi - -if [[ -z "${EXTENSIONS##*,apcu,*}" ]]; then - echo "---------- Install apcu ----------" - pecl install apcu - docker-php-ext-enable apcu -fi - -if [[ -z "${EXTENSIONS##*,memcached,*}" ]]; then - echo "---------- Install memcached ----------" - apk add --no-cache libmemcached-dev zlib-dev - pecl install memcached-3.2.3 - docker-php-ext-enable memcached -fi - -if [[ -z "${EXTENSIONS##*,memcache,*}" ]]; then - echo "---------- Install memcache ----------" - pecl install memcache - docker-php-ext-enable memcache -fi - -if [[ -z "${EXTENSIONS##*,xdebug,*}" ]]; then - echo "---------- Install xdebug ----------" - installExtensionFromTgz xdebug-3.2.0 -fi - -if [[ -z "${EXTENSIONS##*,event,*}" ]]; then - echo "---------- Install event ----------" - apk add --no-cache libevent-dev - export is_sockets_installed=$(php -r "echo extension_loaded('sockets');") - - if [[ "${is_sockets_installed}" = "" ]]; then - echo "---------- event is depend on sockets, install sockets first ----------" - docker-php-ext-install sockets - fi - - echo "---------- Install event again ----------" - mkdir event - tar -xf event-3.0.8.tgz -C event --strip-components=1 - cd event && phpize && ./configure && make && make install - - docker-php-ext-enable --ini-name event.ini event -fi - -if [[ -z "${EXTENSIONS##*,mongodb,*}" ]]; then - echo "---------- Install mongodb ----------" - apk add --no-cache openssl-dev - installExtensionFromTgz mongodb-1.15.2 - docker-php-ext-configure mongodb --with-mongodb-ssl=openssl - docker-php-ext-enable mongodb -fi - -if [[ -z "${EXTENSIONS##*,yaf,*}" ]]; then - echo "---------- Install yaf ----------" - pecl install yaf - docker-php-ext-enable yaf -fi - - -if [[ -z "${EXTENSIONS##*,swoole,*}" ]]; then - echo "---------- Install swoole ----------" - install-php-extensions swoole -fi - -if [[ -z "${EXTENSIONS##*,zip,*}" ]]; then - echo "---------- Install zip ----------" - # Fix: https://github.com/docker-library/php/issues/797 - apk add --no-cache libzip-dev - - isPhpVersionGreaterOrEqual 8 0 - if [[ "$?" != "1" ]]; then - docker-php-ext-configure zip --with-libzip=/usr/include - fi - - docker-php-ext-install ${MC} zip -fi - -if [[ -z "${EXTENSIONS##*,xhprof,*}" ]]; then - echo "---------- Install XHProf ----------" - pecl install xhprof - docker-php-ext-enable xhprof - -fi - -if [[ -z "${EXTENSIONS##*,xlswriter,*}" ]]; then - echo "---------- Install xlswriter ----------" - isPhpVersionGreaterOrEqual 8 0 - - if [[ "$?" = "1" ]]; then - printf "\n" | pecl install xlswriter - docker-php-ext-enable xlswriter - else - echo "---------- PHP Version>= 8.0----------" - fi -fi - -if [[ -z "${EXTENSIONS##*,rdkafka,*}" ]]; then - echo "---------- Install rdkafka ----------" - isPhpVersionGreaterOrEqual 8 0 - - if [[ "$?" = "1" ]]; then - apk add librdkafka-dev - printf "\n" | pecl install rdkafka - docker-php-ext-enable rdkafka - else - echo "---------- PHP Version>= 8.0----------" - fi -fi - -if [[ -z "${EXTENSIONS##*,zookeeper,*}" ]]; then - echo "---------- Install zookeeper ----------" - isPhpVersionGreaterOrEqual 8 0 - - if [[ "$?" = "1" ]]; then - apk add re2c - apk add libzookeeper-dev --repository http://${CONTAINER_PACKAGE_URL}/alpine/edge/testing/ - printf "\n" | pecl install zookeeper - docker-php-ext-enable zookeeper - else - echo "---------- PHP Version>= 8.0----------" - fi -fi - -if [[ -z "${EXTENSIONS##*,phalcon,*}" ]]; then - echo "---------- Install phalcon ----------" - isPhpVersionGreaterOrEqual 8 0 - - if [[ "$?" = "1" ]]; then - printf "\n" | pecl install phalcon - docker-php-ext-enable psr - docker-php-ext-enable phalcon - else - echo "---------- PHP Version>= 8.0----------" - fi -fi - -if [[ -z "${EXTENSIONS##*,sdebug,*}" ]]; then - echo "---------- Install sdebug ----------" - isPhpVersionGreaterOrEqual 8 0 - - if [[ "$?" = "1" ]]; then - curl -SL "https://github.com/swoole/sdebug/archive/sdebug_2_9-beta.tar.gz" -o sdebug.tar.gz \ - && mkdir -p sdebug \ - && tar -xf sdebug.tar.gz -C sdebug --strip-components=1 \ - && rm sdebug.tar.gz \ - && ( \ - cd sdebug \ - && phpize \ - && ./configure --enable-xdebug \ - && make clean && make && make install \ - ) \ - && docker-php-ext-enable xdebug - else - echo "---------- PHP Version>= 8.0----------" - fi -fi - -if [ "${PHP_EXTENSIONS}" != "" ]; then -# PHP-Imagick 扩展中有所需的其他依赖项,不进行删除.build-deps -# apk del .build-deps \ - docker-php-source delete -fi diff --git a/php8/8.2.28/build/php/extensions/mongodb-1.15.2.tgz b/php8/8.2.28/build/php/extensions/mongodb-1.15.2.tgz deleted file mode 100644 index 41c2e064b..000000000 Binary files a/php8/8.2.28/build/php/extensions/mongodb-1.15.2.tgz and /dev/null differ diff --git a/php8/8.2.28/build/php/extensions/redis-6.0.2.tgz b/php8/8.2.28/build/php/extensions/redis-6.0.2.tgz deleted file mode 100644 index 2d7b7987f..000000000 Binary files a/php8/8.2.28/build/php/extensions/redis-6.0.2.tgz and /dev/null differ diff --git a/php8/8.2.28/build/php/extensions/swoole-5.0.2.tgz b/php8/8.2.28/build/php/extensions/swoole-5.0.2.tgz deleted file mode 100644 index 7e42418c3..000000000 Binary files a/php8/8.2.28/build/php/extensions/swoole-5.0.2.tgz and /dev/null differ diff --git a/php8/8.2.28/build/php/extensions/xdebug-3.2.0.tgz b/php8/8.2.28/build/php/extensions/xdebug-3.2.0.tgz deleted file mode 100644 index 4023612cb..000000000 Binary files a/php8/8.2.28/build/php/extensions/xdebug-3.2.0.tgz and /dev/null differ diff --git a/php8/8.2.28/build/php/php-fpm.conf b/php8/8.2.28/build/php/php-fpm.conf deleted file mode 100644 index 131835891..000000000 --- a/php8/8.2.28/build/php/php-fpm.conf +++ /dev/null @@ -1,423 +0,0 @@ -; Start a new pool named 'www'. -; the variable $pool can be used in any directive and will be replaced by the -; pool name ('www' here) -[www] - -; Per pool prefix -; It only applies on the following directives: -; - 'access.log' -; - 'slowlog' -; - 'listen' (unixsocket) -; - 'chroot' -; - 'chdir' -; - 'php_values' -; - 'php_admin_values' -; When not set, the global prefix (or NONE) applies instead. -; Note: This directive can also be relative to the global prefix. -; Default Value: none -;prefix = /path/to/pools/$pool - -; Unix user/group of processes -; Note: The user is mandatory. If the group is not set, the default user's group -; will be used. -user = www-data -group = www-data - -; The address on which to accept FastCGI requests. -; Valid syntaxes are: -; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on -; a specific port; -; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on -; a specific port; -; 'port' - to listen on a TCP socket to all addresses -; (IPv6 and IPv4-mapped) on a specific port; -; '/path/to/unix/socket' - to listen on a unix socket. -; Note: This value is mandatory. -listen = 127.0.0.1:9000 - -; Set listen(2) backlog. -; Default Value: 511 (-1 on FreeBSD and OpenBSD) -;listen.backlog = 511 - -; Set permissions for unix socket, if one is used. In Linux, read/write -; permissions must be set in order to allow connections from a web server. Many -; BSD-derived systems allow connections regardless of permissions. -; Default Values: user and group are set as the running user -; mode is set to 0660 -;listen.owner = www-data -;listen.group = www-data -;listen.mode = 0660 -; When POSIX Access Control Lists are supported you can set them using -; these options, value is a comma separated list of user/group names. -; When set, listen.owner and listen.group are ignored -;listen.acl_users = -;listen.acl_groups = - -; List of addresses (IPv4/IPv6) of FastCGI clients which are allowed to connect. -; Equivalent to the FCGI_WEB_SERVER_ADDRS environment variable in the original -; PHP FCGI (5.2.2+). Makes sense only with a tcp listening socket. Each address -; must be separated by a comma. If this value is left blank, connections will be -; accepted from any ip address. -; Default Value: any -;listen.allowed_clients = 127.0.0.1 - -; Specify the nice(2) priority to apply to the pool processes (only if set) -; The value can vary from -19 (highest priority) to 20 (lower priority) -; Note: - It will only work if the FPM master process is launched as root -; - The pool processes will inherit the master process priority -; unless it specified otherwise -; Default Value: no set -; process.priority = -19 - -; Set the process dumpable flag (PR_SET_DUMPABLE prctl) even if the process user -; or group is differrent than the master process user. It allows to create process -; core dump and ptrace the process for the pool user. -; Default Value: no -; process.dumpable = yes - -; Choose how the process manager will control the number of child processes. -; Possible Values: -; static - a fixed number (pm.max_children) of child processes; -; dynamic - the number of child processes are set dynamically based on the -; following directives. With this process management, there will be -; always at least 1 children. -; pm.max_children - the maximum number of children that can -; be alive at the same time. -; pm.start_servers - the number of children created on startup. -; pm.min_spare_servers - the minimum number of children in 'idle' -; state (waiting to process). If the number -; of 'idle' processes is less than this -; number then some children will be created. -; pm.max_spare_servers - the maximum number of children in 'idle' -; state (waiting to process). If the number -; of 'idle' processes is greater than this -; number then some children will be killed. -; ondemand - no children are created at startup. Children will be forked when -; new requests will connect. The following parameter are used: -; pm.max_children - the maximum number of children that -; can be alive at the same time. -; pm.process_idle_timeout - The number of seconds after which -; an idle process will be killed. -; Note: This value is mandatory. -pm = dynamic - -; The number of child processes to be created when pm is set to 'static' and the -; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'. -; This value sets the limit on the number of simultaneous requests that will be -; served. Equivalent to the ApacheMaxClients directive with mpm_prefork. -; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP -; CGI. The below defaults are based on a server without much resources. Don't -; forget to tweak pm.* to fit your needs. -; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand' -; Note: This value is mandatory. -pm.max_children = 10 - -; The number of child processes created on startup. -; Note: Used only when pm is set to 'dynamic' -; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2 -pm.start_servers = 2 - -; The desired minimum number of idle server processes. -; Note: Used only when pm is set to 'dynamic' -; Note: Mandatory when pm is set to 'dynamic' -pm.min_spare_servers = 1 - -; The desired maximum number of idle server processes. -; Note: Used only when pm is set to 'dynamic' -; Note: Mandatory when pm is set to 'dynamic' -pm.max_spare_servers = 3 - -; The number of seconds after which an idle process will be killed. -; Note: Used only when pm is set to 'ondemand' -; Default Value: 10s -;pm.process_idle_timeout = 10s; - -; The number of requests each child process should execute before respawning. -; This can be useful to work around memory leaks in 3rd party libraries. For -; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS. -; Default Value: 0 -;pm.max_requests = 500 - -; The URI to view the FPM status page. If this value is not set, no URI will be -; recognized as a status page. It shows the following informations: -; pool - the name of the pool; -; process manager - static, dynamic or ondemand; -; start time - the date and time FPM has started; -; start since - number of seconds since FPM has started; -; accepted conn - the number of request accepted by the pool; -; listen queue - the number of request in the queue of pending -; connections (see backlog in listen(2)); -; max listen queue - the maximum number of requests in the queue -; of pending connections since FPM has started; -; listen queue len - the size of the socket queue of pending connections; -; idle processes - the number of idle processes; -; active processes - the number of active processes; -; total processes - the number of idle + active processes; -; max active processes - the maximum number of active processes since FPM -; has started; -; max children reached - number of times, the process limit has been reached, -; when pm tries to start more children (works only for -; pm 'dynamic' and 'ondemand'); -; Value are updated in real time. -; Example output: -; pool: www -; process manager: static -; start time: 01/Jul/2011:17:53:49 +0200 -; start since: 62636 -; accepted conn: 190460 -; listen queue: 0 -; max listen queue: 1 -; listen queue len: 42 -; idle processes: 4 -; active processes: 11 -; total processes: 15 -; max active processes: 12 -; max children reached: 0 -; -; By default the status page output is formatted as text/plain. Passing either -; 'html', 'xml' or 'json' in the query string will return the corresponding -; output syntax. Example: -; http://www.foo.bar/status -; http://www.foo.bar/status?json -; http://www.foo.bar/status?html -; http://www.foo.bar/status?xml -; -; By default the status page only outputs short status. Passing 'full' in the -; query string will also return status for each pool process. -; Example: -; http://www.foo.bar/status?full -; http://www.foo.bar/status?json&full -; http://www.foo.bar/status?html&full -; http://www.foo.bar/status?xml&full -; The Full status returns for each process: -; pid - the PID of the process; -; state - the state of the process (Idle, Running, ...); -; start time - the date and time the process has started; -; start since - the number of seconds since the process has started; -; requests - the number of requests the process has served; -; request duration - the duration in µs of the requests; -; request method - the request method (GET, POST, ...); -; request URI - the request URI with the query string; -; content length - the content length of the request (only with POST); -; user - the user (PHP_AUTH_USER) (or '-' if not set); -; script - the main script called (or '-' if not set); -; last request cpu - the %cpu the last request consumed -; it's always 0 if the process is not in Idle state -; because CPU calculation is done when the request -; processing has terminated; -; last request memory - the max amount of memory the last request consumed -; it's always 0 if the process is not in Idle state -; because memory calculation is done when the request -; processing has terminated; -; If the process is in Idle state, then informations are related to the -; last request the process has served. Otherwise informations are related to -; the current request being served. -; Example output: -; ************************ -; pid: 31330 -; state: Running -; start time: 01/Jul/2011:17:53:49 +0200 -; start since: 63087 -; requests: 12808 -; request duration: 1250261 -; request method: GET -; request URI: /test_mem.php?N=10000 -; content length: 0 -; user: - -; script: /home/fat/web/docs/php/test_mem.php -; last request cpu: 0.00 -; last request memory: 0 -; -; Note: There is a real-time FPM status monitoring sample web page available -; It's available in: /usr/local/share/php/fpm/status.html -; -; Note: The value must start with a leading slash (/). The value can be -; anything, but it may not be a good idea to use the .php extension or it -; may conflict with a real PHP file. -; Default Value: not set -;pm.status_path = /status - -; The ping URI to call the monitoring page of FPM. If this value is not set, no -; URI will be recognized as a ping page. This could be used to test from outside -; that FPM is alive and responding, or to -; - create a graph of FPM availability (rrd or such); -; - remove a server from a group if it is not responding (load balancing); -; - trigger alerts for the operating team (24/7). -; Note: The value must start with a leading slash (/). The value can be -; anything, but it may not be a good idea to use the .php extension or it -; may conflict with a real PHP file. -; Default Value: not set -;ping.path = /ping - -; This directive may be used to customize the response of a ping request. The -; response is formatted as text/plain with a 200 response code. -; Default Value: pong -;ping.response = pong - -; The access log file -; Default: not set -;access.log = log/$pool.access.log - -; The access log format. -; The following syntax is allowed -; %%: the '%' character -; %C: %CPU used by the request -; it can accept the following format: -; - %{user}C for user CPU only -; - %{system}C for system CPU only -; - %{total}C for user + system CPU (default) -; %d: time taken to serve the request -; it can accept the following format: -; - %{seconds}d (default) -; - %{miliseconds}d -; - %{mili}d -; - %{microseconds}d -; - %{micro}d -; %e: an environment variable (same as $_ENV or $_SERVER) -; it must be associated with embraces to specify the name of the env -; variable. Some exemples: -; - server specifics like: %{REQUEST_METHOD}e or %{SERVER_PROTOCOL}e -; - HTTP headers like: %{HTTP_HOST}e or %{HTTP_USER_AGENT}e -; %f: script filename -; %l: content-length of the request (for POST request only) -; %m: request method -; %M: peak of memory allocated by PHP -; it can accept the following format: -; - %{bytes}M (default) -; - %{kilobytes}M -; - %{kilo}M -; - %{megabytes}M -; - %{mega}M -; %n: pool name -; %o: output header -; it must be associated with embraces to specify the name of the header: -; - %{Content-Type}o -; - %{X-Powered-By}o -; - %{Transfert-Encoding}o -; - .... -; %p: PID of the child that serviced the request -; %P: PID of the parent of the child that serviced the request -; %q: the query string -; %Q: the '?' character if query string exists -; %r: the request URI (without the query string, see %q and %Q) -; %R: remote IP address -; %s: status (response code) -; %t: server time the request was received -; it can accept a strftime(3) format: -; %d/%b/%Y:%H:%M:%S %z (default) -; The strftime(3) format must be encapsuled in a %{}t tag -; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t -; %T: time the log has been written (the request has finished) -; it can accept a strftime(3) format: -; %d/%b/%Y:%H:%M:%S %z (default) -; The strftime(3) format must be encapsuled in a %{}t tag -; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t -; %u: remote user -; -; Default: "%R - %u %t \"%m %r\" %s" -;access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%" - -; The log file for slow requests -; Default Value: not set -; Note: slowlog is mandatory if request_slowlog_timeout is set -slowlog = /var/log/php/fpm.slow.log - -; The timeout for serving a single request after which a PHP backtrace will be -; dumped to the 'slowlog' file. A value of '0s' means 'off'. -; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) -; Default Value: 0 -request_slowlog_timeout = 3 - -; Depth of slow log stack trace. -; Default Value: 20 -;request_slowlog_trace_depth = 20 - -; The timeout for serving a single request after which the worker process will -; be killed. This option should be used when the 'max_execution_time' ini option -; does not stop script execution for some reason. A value of '0' means 'off'. -; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) -; Default Value: 0 -;request_terminate_timeout = 0 - -; Set open file descriptor rlimit. -; Default Value: system defined value -;rlimit_files = 1024 - -; Set max core size rlimit. -; Possible Values: 'unlimited' or an integer greater or equal to 0 -; Default Value: system defined value -;rlimit_core = 0 - -; Chroot to this directory at the start. This value must be defined as an -; absolute path. When this value is not set, chroot is not used. -; Note: you can prefix with '$prefix' to chroot to the pool prefix or one -; of its subdirectories. If the pool prefix is not set, the global prefix -; will be used instead. -; Note: chrooting is a great security feature and should be used whenever -; possible. However, all PHP paths will be relative to the chroot -; (error_log, sessions.save_path, ...). -; Default Value: not set -;chroot = - -; Chdir to this directory at the start. -; Note: relative path can be used. -; Default Value: current directory or / when chroot -;chdir = /var/www - -; Redirect worker stdout and stderr into main error log. If not set, stdout and -; stderr will be redirected to /dev/null according to FastCGI specs. -; Note: on highloaded environement, this can cause some delay in the page -; process time (several ms). -; Default Value: no -catch_workers_output = yes - -; Clear environment in FPM workers -; Prevents arbitrary environment variables from reaching FPM worker processes -; by clearing the environment in workers before env vars specified in this -; pool configuration are added. -; Setting to "no" will make all environment variables available to PHP code -; via getenv(), $_ENV and $_SERVER. -; Default Value: yes -;clear_env = no - -; Limits the extensions of the main script FPM will allow to parse. This can -; prevent configuration mistakes on the web server side. You should only limit -; FPM to .php extensions to prevent malicious users to use other extensions to -; execute php code. -; Note: set an empty value to allow all extensions. -; Default Value: .php -;security.limit_extensions = .php .php3 .php4 .php5 .php7 - -; Pass environment variables like LD_LIBRARY_PATH. All $VARIABLEs are taken from -; the current environment. -; Default Value: clean env -;env[HOSTNAME] = $HOSTNAME -;env[PATH] = /usr/local/bin:/usr/bin:/bin -;env[TMP] = /tmp -;env[TMPDIR] = /tmp -;env[TEMP] = /tmp - -; Additional php.ini defines, specific to this pool of workers. These settings -; overwrite the values previously defined in the php.ini. The directives are the -; same as the PHP SAPI: -; php_value/php_flag - you can set classic ini defines which can -; be overwritten from PHP call 'ini_set'. -; php_admin_value/php_admin_flag - these directives won't be overwritten by -; PHP call 'ini_set' -; For php_*flag, valid values are on, off, 1, 0, true, false, yes or no. - -; Defining 'extension' will load the corresponding shared extension from -; extension_dir. Defining 'disable_functions' or 'disable_classes' will not -; overwrite previously defined php.ini values, but will append the new value -; instead. - -; Note: path INI options can be relative and will be expanded with the prefix -; (pool, global or /usr/local) - -; Default Value: nothing is defined by default except the values in php.ini and -; specified at startup with the -d argument -;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com -;php_flag[display_errors] = off -;php_admin_value[error_log] = /var/log/fpm-php.www.log -;php_admin_flag[log_errors] = on -;php_admin_value[memory_limit] = 32M diff --git a/php8/8.2.28/build/php/php.ini b/php8/8.2.28/build/php/php.ini deleted file mode 100644 index 82b728e20..000000000 --- a/php8/8.2.28/build/php/php.ini +++ /dev/null @@ -1,1933 +0,0 @@ -[PHP] - -;;;;;;;;;;;;;;;;;;; -; About php.ini ; -;;;;;;;;;;;;;;;;;;; -; PHP's initialization file, generally called php.ini, is responsible for -; configuring many of the aspects of PHP's behavior. - -; PHP attempts to find and load this configuration from a number of locations. -; The following is a summary of its search order: -; 1. SAPI module specific location. -; 2. The PHPRC environment variable. (As of PHP 5.2.0) -; 3. A number of predefined registry keys on Windows (As of PHP 5.2.0) -; 4. Current working directory (except CLI) -; 5. The web server's directory (for SAPI modules), or directory of PHP -; (otherwise in Windows) -; 6. The directory from the --with-config-file-path compile time option, or the -; Windows directory (C:\windows or C:\winnt) -; See the PHP docs for more specific information. -; http://php.net/configuration.file - -; The syntax of the file is extremely simple. Whitespace and lines -; beginning with a semicolon are silently ignored (as you probably guessed). -; Section headers (e.g. [Foo]) are also silently ignored, even though -; they might mean something in the future. - -; Directives following the section heading [PATH=/www/mysite] only -; apply to PHP files in the /www/mysite directory. Directives -; following the section heading [HOST=www.example.com] only apply to -; PHP files served from www.example.com. Directives set in these -; special sections cannot be overridden by user-defined INI files or -; at runtime. Currently, [PATH=] and [HOST=] sections only work under -; CGI/FastCGI. -; http://php.net/ini.sections - -; Directives are specified using the following syntax: -; directive = value -; Directive names are *case sensitive* - foo=bar is different from FOO=bar. -; Directives are variables used to configure PHP or PHP extensions. -; There is no name validation. If PHP can't find an expected -; directive because it is not set or is mistyped, a default value will be used. - -; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one -; of the INI constants (On, Off, True, False, Yes, No and None) or an expression -; (e.g. E_ALL & ~E_NOTICE), a quoted string ("bar"), or a reference to a -; previously set variable or directive (e.g. ${foo}) - -; Expressions in the INI file are limited to bitwise operators and parentheses: -; | bitwise OR -; ^ bitwise XOR -; & bitwise AND -; ~ bitwise NOT -; ! boolean NOT - -; Boolean flags can be turned on using the values 1, On, True or Yes. -; They can be turned off using the values 0, Off, False or No. - -; An empty string can be denoted by simply not writing anything after the equal -; sign, or by using the None keyword: - -; foo = ; sets foo to an empty string -; foo = None ; sets foo to an empty string -; foo = "None" ; sets foo to the string 'None' - -; If you use constants in your value, and these constants belong to a -; dynamically loaded extension (either a PHP extension or a Zend extension), -; you may only use these constants *after* the line that loads the extension. - -;;;;;;;;;;;;;;;;;;; -; About this file ; -;;;;;;;;;;;;;;;;;;; -; PHP comes packaged with two INI files. One that is recommended to be used -; in production environments and one that is recommended to be used in -; development environments. - -; php.ini-production contains settings which hold security, performance and -; best practices at its core. But please be aware, these settings may break -; compatibility with older or less security conscience applications. We -; recommending using the production ini in production and testing environments. - -; php.ini-development is very similar to its production variant, except it is -; much more verbose when it comes to errors. We recommend using the -; development version only in development environments, as errors shown to -; application users can inadvertently leak otherwise secure information. - -; This is php.ini-production INI file. - -;;;;;;;;;;;;;;;;;;; -; Quick Reference ; -;;;;;;;;;;;;;;;;;;; -; The following are all the settings which are different in either the production -; or development versions of the INIs with respect to PHP's default behavior. -; Please see the actual settings later in the document for more details as to why -; we recommend these changes in PHP's behavior. - -; display_errors -; Default Value: On -; Development Value: On -; Production Value: Off - -; display_startup_errors -; Default Value: Off -; Development Value: On -; Production Value: Off - -; error_reporting -; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT - -; html_errors -; Default Value: On -; Development Value: On -; Production value: On - -; log_errors -; Default Value: Off -; Development Value: On -; Production Value: On - -; max_input_time -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) - -; output_buffering -; Default Value: Off -; Development Value: 4096 -; Production Value: 4096 - -; register_argc_argv -; Default Value: On -; Development Value: Off -; Production Value: Off - -; request_order -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" - -; session.gc_divisor -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 - -; session.sid_bits_per_character -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 - -; short_open_tag -; Default Value: On -; Development Value: Off -; Production Value: Off - -; track_errors -; Default Value: Off -; Development Value: On -; Production Value: Off - -; variables_order -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS" - -;;;;;;;;;;;;;;;;;;;; -; php.ini Options ; -;;;;;;;;;;;;;;;;;;;; -; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini" -;user_ini.filename = ".user.ini" - -; To disable this feature set this option to empty value -;user_ini.filename = - -; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes) -;user_ini.cache_ttl = 300 - -;;;;;;;;;;;;;;;;;;;; -; Language Options ; -;;;;;;;;;;;;;;;;;;;; - -; Enable the PHP scripting language engine under Apache. -; http://php.net/engine -engine = On - -; This directive determines whether or not PHP will recognize code between -; tags as PHP source which should be processed as such. It is -; generally recommended that should be used and that this feature -; should be disabled, as enabling it may result in issues when generating XML -; documents, however this remains supported for backward compatibility reasons. -; Note that this directive does not control the would work. -; http://php.net/syntax-highlighting -;highlight.string = #DD0000 -;highlight.comment = #FF9900 -;highlight.keyword = #007700 -;highlight.default = #0000BB -;highlight.html = #000000 - -; If enabled, the request will be allowed to complete even if the user aborts -; the request. Consider enabling it if executing long requests, which may end up -; being interrupted by the user or a browser timing out. PHP's default behavior -; is to disable this feature. -; http://php.net/ignore-user-abort -;ignore_user_abort = On - -; Determines the size of the realpath cache to be used by PHP. This value should -; be increased on systems where PHP opens many files to reflect the quantity of -; the file operations performed. -; http://php.net/realpath-cache-size -;realpath_cache_size = 4096k - -; Duration of time, in seconds for which to cache realpath information for a given -; file or directory. For systems with rarely changing files, consider increasing this -; value. -; http://php.net/realpath-cache-ttl -;realpath_cache_ttl = 120 - -; Enables or disables the circular reference collector. -; http://php.net/zend.enable-gc -zend.enable_gc = On - -; If enabled, scripts may be written in encodings that are incompatible with -; the scanner. CP936, Big5, CP949 and Shift_JIS are the examples of such -; encodings. To use this feature, mbstring extension must be enabled. -; Default: Off -;zend.multibyte = Off - -; Allows to set the default encoding for the scripts. This value will be used -; unless "declare(encoding=...)" directive appears at the top of the script. -; Only affects if zend.multibyte is set. -; Default: "" -;zend.script_encoding = - -;;;;;;;;;;;;;;;;; -; Miscellaneous ; -;;;;;;;;;;;;;;;;; - -; Decides whether PHP may expose the fact that it is installed on the server -; (e.g. by adding its signature to the Web server header). It is no security -; threat in any way, but it makes it possible to determine whether you use PHP -; on your server or not. -; http://php.net/expose-php -expose_php = Off - -;;;;;;;;;;;;;;;;;;; -; Resource Limits ; -;;;;;;;;;;;;;;;;;;; - -; Maximum execution time of each script, in seconds -; http://php.net/max-execution-time -; Note: This directive is hardcoded to 0 for the CLI SAPI -max_execution_time = 30 - -; Maximum amount of time each script may spend parsing request data. It's a good -; idea to limit this time on productions servers in order to eliminate unexpectedly -; long running scripts. -; Note: This directive is hardcoded to -1 for the CLI SAPI -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) -; http://php.net/max-input-time -max_input_time = 60 - -; Maximum input variable nesting level -; http://php.net/max-input-nesting-level -;max_input_nesting_level = 64 - -; How many GET/POST/COOKIE input variables may be accepted -; max_input_vars = 1000 - -; Maximum amount of memory a script may consume (128MB) -; http://php.net/memory-limit -memory_limit = 256M - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; Error handling and logging ; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -; This directive informs PHP of which errors, warnings and notices you would like -; it to take action for. The recommended way of setting values for this -; directive is through the use of the error level constants and bitwise -; operators. The error level constants are below here for convenience as well as -; some common settings and their meanings. -; By default, PHP is set to take action on all errors, notices and warnings EXCEPT -; those related to E_NOTICE and E_STRICT, which together cover best practices and -; recommended coding standards in PHP. For performance reasons, this is the -; recommend error reporting setting. Your production server shouldn't be wasting -; resources complaining about best practices and coding standards. That's what -; development servers and development settings are for. -; Note: The php.ini-development file has this setting as E_ALL. This -; means it pretty much reports everything which is exactly what you want during -; development and early testing. -; -; Error Level Constants: -; E_ALL - All errors and warnings (includes E_STRICT as of PHP 5.4.0) -; E_ERROR - fatal run-time errors -; E_RECOVERABLE_ERROR - almost fatal run-time errors -; E_WARNING - run-time warnings (non-fatal errors) -; E_PARSE - compile-time parse errors -; E_NOTICE - run-time notices (these are warnings which often result -; from a bug in your code, but it's possible that it was -; intentional (e.g., using an uninitialized variable and -; relying on the fact it is automatically initialized to an -; empty string) -; E_STRICT - run-time notices, enable to have PHP suggest changes -; to your code which will ensure the best interoperability -; and forward compatibility of your code -; E_CORE_ERROR - fatal errors that occur during PHP's initial startup -; E_CORE_WARNING - warnings (non-fatal errors) that occur during PHP's -; initial startup -; E_COMPILE_ERROR - fatal compile-time errors -; E_COMPILE_WARNING - compile-time warnings (non-fatal errors) -; E_USER_ERROR - user-generated error message -; E_USER_WARNING - user-generated warning message -; E_USER_NOTICE - user-generated notice message -; E_DEPRECATED - warn about code that will not work in future versions -; of PHP -; E_USER_DEPRECATED - user-generated deprecation warnings -; -; Common Values: -; E_ALL (Show all errors, warnings and notices including coding standards.) -; E_ALL & ~E_NOTICE (Show all errors, except for notices) -; E_ALL & ~E_NOTICE & ~E_STRICT (Show all errors, except for notices and coding standards warnings.) -; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors) -; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT -; http://php.net/error-reporting -error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT - -; This directive controls whether or not and where PHP will output errors, -; notices and warnings too. Error output is very useful during development, but -; it could be very dangerous in production environments. Depending on the code -; which is triggering the error, sensitive information could potentially leak -; out of your application such as database usernames and passwords or worse. -; For production environments, we recommend logging errors rather than -; sending them to STDOUT. -; Possible Values: -; Off = Do not display any errors -; stderr = Display errors to STDERR (affects only CGI/CLI binaries!) -; On or stdout = Display errors to STDOUT -; Default Value: On -; Development Value: On -; Production Value: Off -; http://php.net/display-errors -display_errors = Off - -; The display of errors which occur during PHP's startup sequence are handled -; separately from display_errors. PHP's default behavior is to suppress those -; errors from clients. Turning the display of startup errors on can be useful in -; debugging configuration problems. We strongly recommend you -; set this to 'off' for production servers. -; Default Value: Off -; Development Value: On -; Production Value: Off -; http://php.net/display-startup-errors -display_startup_errors = Off - -; Besides displaying errors, PHP can also log errors to locations such as a -; server-specific log, STDERR, or a location specified by the error_log -; directive found below. While errors should not be displayed on productions -; servers they should still be monitored and logging is a great way to do that. -; Default Value: Off -; Development Value: On -; Production Value: On -; http://php.net/log-errors -log_errors = On - -; Set maximum length of log_errors. In error_log information about the source is -; added. The default is 1024 and 0 allows to not apply any maximum length at all. -; http://php.net/log-errors-max-len -log_errors_max_len = 1024 - -; Do not log repeated messages. Repeated errors must occur in same file on same -; line unless ignore_repeated_source is set true. -; http://php.net/ignore-repeated-errors -ignore_repeated_errors = Off - -; Ignore source of message when ignoring repeated messages. When this setting -; is On you will not log errors with repeated messages from different files or -; source lines. -; http://php.net/ignore-repeated-source -ignore_repeated_source = Off - -; If this parameter is set to Off, then memory leaks will not be shown (on -; stdout or in the log). This has only effect in a debug compile, and if -; error reporting includes E_WARNING in the allowed list -; http://php.net/report-memleaks -report_memleaks = On - -; This setting is on by default. -;report_zend_debug = 0 - -; Store the last error/warning message in $php_errormsg (boolean). Setting this value -; to On can assist in debugging and is appropriate for development servers. It should -; however be disabled on production servers. -; Default Value: Off -; Development Value: On -; Production Value: Off -; http://php.net/track-errors -track_errors = Off - -; Turn off normal error reporting and emit XML-RPC error XML -; http://php.net/xmlrpc-errors -;xmlrpc_errors = 0 - -; An XML-RPC faultCode -;xmlrpc_error_number = 0 - -; When PHP displays or logs an error, it has the capability of formatting the -; error message as HTML for easier reading. This directive controls whether -; the error message is formatted as HTML or not. -; Note: This directive is hardcoded to Off for the CLI SAPI -; Default Value: On -; Development Value: On -; Production value: On -; http://php.net/html-errors -html_errors = On - -; If html_errors is set to On *and* docref_root is not empty, then PHP -; produces clickable error messages that direct to a page describing the error -; or function causing the error in detail. -; You can download a copy of the PHP manual from http://php.net/docs -; and change docref_root to the base URL of your local copy including the -; leading '/'. You must also specify the file extension being used including -; the dot. PHP's default behavior is to leave these settings empty, in which -; case no links to documentation are generated. -; Note: Never use this feature for production boxes. -; http://php.net/docref-root -; Examples -;docref_root = "/phpmanual/" - -; http://php.net/docref-ext -;docref_ext = .html - -; String to output before an error message. PHP's default behavior is to leave -; this setting blank. -; http://php.net/error-prepend-string -; Example: -;error_prepend_string = "" - -; String to output after an error message. PHP's default behavior is to leave -; this setting blank. -; http://php.net/error-append-string -; Example: -;error_append_string = "" - -; Log errors to specified file. PHP's default behavior is to leave this value -; empty. -; http://php.net/error-log -; Example: -;error_log = php_errors.log -; Log errors to syslog (Event Log on Windows). -error_log = /var/log/php/php.error.log - -;windows.show_crt_warning -; Default value: 0 -; Development value: 0 -; Production value: 0 - -;;;;;;;;;;;;;;;;; -; Data Handling ; -;;;;;;;;;;;;;;;;; - -; The separator used in PHP generated URLs to separate arguments. -; PHP's default setting is "&". -; http://php.net/arg-separator.output -; Example: -;arg_separator.output = "&" - -; List of separator(s) used by PHP to parse input URLs into variables. -; PHP's default setting is "&". -; NOTE: Every character in this directive is considered as separator! -; http://php.net/arg-separator.input -; Example: -;arg_separator.input = ";&" - -; This directive determines which super global arrays are registered when PHP -; starts up. G,P,C,E & S are abbreviations for the following respective super -; globals: GET, POST, COOKIE, ENV and SERVER. There is a performance penalty -; paid for the registration of these arrays and because ENV is not as commonly -; used as the others, ENV is not recommended on productions servers. You -; can still get access to the environment variables through getenv() should you -; need to. -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS"; -; http://php.net/variables-order -variables_order = "GPCS" - -; This directive determines which super global data (G,P & C) should be -; registered into the super global array REQUEST. If so, it also determines -; the order in which that data is registered. The values for this directive -; are specified in the same manner as the variables_order directive, -; EXCEPT one. Leaving this value empty will cause PHP to use the value set -; in the variables_order directive. It does not mean it will leave the super -; globals array REQUEST empty. -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" -; http://php.net/request-order -request_order = "GP" - -; This directive determines whether PHP registers $argv & $argc each time it -; runs. $argv contains an array of all the arguments passed to PHP when a script -; is invoked. $argc contains an integer representing the number of arguments -; that were passed when the script was invoked. These arrays are extremely -; useful when running scripts from the command line. When this directive is -; enabled, registering these variables consumes CPU cycles and memory each time -; a script is executed. For performance reasons, this feature should be disabled -; on production servers. -; Note: This directive is hardcoded to On for the CLI SAPI -; Default Value: On -; Development Value: Off -; Production Value: Off -; http://php.net/register-argc-argv -register_argc_argv = Off - -; When enabled, the ENV, REQUEST and SERVER variables are created when they're -; first used (Just In Time) instead of when the script starts. If these -; variables are not used within a script, having this directive on will result -; in a performance gain. The PHP directive register_argc_argv must be disabled -; for this directive to have any affect. -; http://php.net/auto-globals-jit -auto_globals_jit = On - -; Whether PHP will read the POST data. -; This option is enabled by default. -; Most likely, you won't want to disable this option globally. It causes $_POST -; and $_FILES to always be empty; the only way you will be able to read the -; POST data will be through the php://input stream wrapper. This can be useful -; to proxy requests or to process the POST data in a memory efficient fashion. -; http://php.net/enable-post-data-reading -;enable_post_data_reading = Off - -; Maximum size of POST data that PHP will accept. -; Its value may be 0 to disable the limit. It is ignored if POST data reading -; is disabled through enable_post_data_reading. -; http://php.net/post-max-size -post_max_size = 100M - -; Automatically add files before PHP document. -; http://php.net/auto-prepend-file -auto_prepend_file = - -; Automatically add files after PHP document. -; http://php.net/auto-append-file -auto_append_file = - -; By default, PHP will output a media type using the Content-Type header. To -; disable this, simply set it to be empty. -; -; PHP's built-in default media type is set to text/html. -; http://php.net/default-mimetype -default_mimetype = "text/html" - -; PHP's default character set is set to UTF-8. -; http://php.net/default-charset -default_charset = "UTF-8" - -; PHP internal character encoding is set to empty. -; If empty, default_charset is used. -; http://php.net/internal-encoding -;internal_encoding = - -; PHP input character encoding is set to empty. -; If empty, default_charset is used. -; http://php.net/input-encoding -;input_encoding = - -; PHP output character encoding is set to empty. -; If empty, default_charset is used. -; See also output_buffer. -; http://php.net/output-encoding -;output_encoding = - -;;;;;;;;;;;;;;;;;;;;;;;;; -; Paths and Directories ; -;;;;;;;;;;;;;;;;;;;;;;;;; - -; UNIX: "/path1:/path2" -;include_path = ".:/php/includes" -; -; Windows: "\path1;\path2" -;include_path = ".;c:\php\includes" -; -; PHP's default setting for include_path is ".;/path/to/php/pear" -; http://php.net/include-path - -; The root of the PHP pages, used only if nonempty. -; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root -; if you are running php as a CGI under any web server (other than IIS) -; see documentation for security issues. The alternate is to use the -; cgi.force_redirect configuration below -; http://php.net/doc-root -doc_root = - -; The directory under which PHP opens the script using /~username used only -; if nonempty. -; http://php.net/user-dir -user_dir = - -; Directory in which the loadable extensions (modules) reside. -; http://php.net/extension-dir -; extension_dir = "./" -; On windows: -; extension_dir = "ext" - -; Directory where the temporary files should be placed. -; Defaults to the system default (see sys_get_temp_dir) -; sys_temp_dir = "/tmp" - -; Whether or not to enable the dl() function. The dl() function does NOT work -; properly in multithreaded servers, such as IIS or Zeus, and is automatically -; disabled on them. -; http://php.net/enable-dl -enable_dl = Off - -; cgi.force_redirect is necessary to provide security running PHP as a CGI under -; most web servers. Left undefined, PHP turns this on by default. You can -; turn it off here AT YOUR OWN RISK -; **You CAN safely turn this off for IIS, in fact, you MUST.** -; http://php.net/cgi.force-redirect -;cgi.force_redirect = 1 - -; if cgi.nph is enabled it will force cgi to always sent Status: 200 with -; every request. PHP's default behavior is to disable this feature. -;cgi.nph = 1 - -; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape -; (iPlanet) web servers, you MAY need to set an environment variable name that PHP -; will look for to know it is OK to continue execution. Setting this variable MAY -; cause security issues, KNOW WHAT YOU ARE DOING FIRST. -; http://php.net/cgi.redirect-status-env -;cgi.redirect_status_env = - -; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's -; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok -; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting -; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting -; of zero causes PHP to behave as before. Default is 1. You should fix your scripts -; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. -; http://php.net/cgi.fix-pathinfo -;cgi.fix_pathinfo=1 - -; if cgi.discard_path is enabled, the PHP CGI binary can safely be placed outside -; of the web tree and people will not be able to circumvent .htaccess security. -; http://php.net/cgi.dicard-path -;cgi.discard_path=1 - -; FastCGI under IIS (on WINNT based OS) supports the ability to impersonate -; security tokens of the calling client. This allows IIS to define the -; security context that the request runs under. mod_fastcgi under Apache -; does not currently support this feature (03/17/2002) -; Set to 1 if running under IIS. Default is zero. -; http://php.net/fastcgi.impersonate -;fastcgi.impersonate = 1 - -; Disable logging through FastCGI connection. PHP's default behavior is to enable -; this feature. -;fastcgi.logging = 0 - -; cgi.rfc2616_headers configuration option tells PHP what type of headers to -; use when sending HTTP response code. If set to 0, PHP sends Status: header that -; is supported by Apache. When this option is set to 1, PHP will send -; RFC2616 compliant header. -; Default is zero. -; http://php.net/cgi.rfc2616-headers -;cgi.rfc2616_headers = 0 - -; cgi.check_shebang_line controls whether CGI PHP checks for line starting with #! -; (shebang) at the top of the running script. This line might be needed if the -; script support running both as stand-alone script and via PHP CGI<. PHP in CGI -; mode skips this line and ignores its content if this directive is turned on. -; http://php.net/cgi.check-shebang-line -;cgi.check_shebang_line=1 - -;;;;;;;;;;;;;;;; -; File Uploads ; -;;;;;;;;;;;;;;;; - -; Whether to allow HTTP file uploads. -; http://php.net/file-uploads -file_uploads = On - -; Temporary directory for HTTP uploaded files (will use system default if not -; specified). -; http://php.net/upload-tmp-dir -;upload_tmp_dir = - -; Maximum allowed size for uploaded files. -; http://php.net/upload-max-filesize -upload_max_filesize = 50M - -; Maximum number of files that can be uploaded via a single request -max_file_uploads = 20 - -;;;;;;;;;;;;;;;;;; -; Fopen wrappers ; -;;;;;;;;;;;;;;;;;; - -; Whether to allow the treatment of URLs (like http:// or ftp://) as files. -; http://php.net/allow-url-fopen -allow_url_fopen = On - -; Whether to allow include/require to open URLs (like http:// or ftp://) as files. -; http://php.net/allow-url-include -allow_url_include = Off - -; Define the anonymous ftp password (your email address). PHP's default setting -; for this is empty. -; http://php.net/from -;from="john@doe.com" - -; Define the User-Agent string. PHP's default setting for this is empty. -; http://php.net/user-agent -;user_agent="PHP" - -; Default timeout for socket based streams (seconds) -; http://php.net/default-socket-timeout -default_socket_timeout = 60 - -; If your scripts have to deal with files from Macintosh systems, -; or you are running on a Mac and need to deal with files from -; unix or win32 systems, setting this flag will cause PHP to -; automatically detect the EOL character in those files so that -; fgets() and file() will work regardless of the source of the file. -; http://php.net/auto-detect-line-endings -;auto_detect_line_endings = Off - -;;;;;;;;;;;;;;;;;;;;;; -; Dynamic Extensions ; -;;;;;;;;;;;;;;;;;;;;;; - -; If you wish to have an extension loaded automatically, use the following -; syntax: -; -; extension=modulename.extension -; -; For example, on Windows: -; -; extension=mysqli.dll -; -; ... or under UNIX: -; -; extension=mysqli.so -; -; ... or with a path: -; -; extension=/path/to/extension/mysqli.so -; -; If you only provide the name of the extension, PHP will look for it in its -; default extension directory. -; -; Windows Extensions -; Note that ODBC support is built in, so no dll is needed for it. -; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5+) -; extension folders as well as the separate PECL DLL download (PHP 5+). -; Be sure to appropriately set the extension_dir directive. -; -;extension=php_bz2.dll -;extension=php_curl.dll -;extension=php_fileinfo.dll -;extension=php_ftp.dll -;extension=php_gd2.dll -;extension=php_gettext.dll -;extension=php_gmp.dll -;extension=php_intl.dll -;extension=php_imap.dll -;extension=php_interbase.dll -;extension=php_ldap.dll -;extension=php_mbstring.dll -;extension=php_exif.dll ; Must be after mbstring as it depends on it -;extension=php_mysqli.dll -;extension=php_oci8_12c.dll ; Use with Oracle Database 12c Instant Client -;extension=php_openssl.dll -;extension=php_pdo_firebird.dll -;extension=php_pdo_mysql.dll -;extension=php_pdo_oci.dll -;extension=php_pdo_odbc.dll -;extension=php_pdo_pgsql.dll -;extension=php_pdo_sqlite.dll -;extension=php_pgsql.dll -;extension=php_shmop.dll - -; The MIBS data available in the PHP distribution must be installed. -; See http://www.php.net/manual/en/snmp.installation.php -;extension=php_snmp.dll - -;extension=php_soap.dll -;extension=php_sockets.dll -;extension=php_sqlite3.dll -;extension=php_tidy.dll -;extension=php_xmlrpc.dll -;extension=php_xsl.dll - -;;;;;;;;;;;;;;;;;;; -; Module Settings ; -;;;;;;;;;;;;;;;;;;; - -[CLI Server] -; Whether the CLI web server uses ANSI color coding in its terminal output. -cli_server.color = On - -[Date] -; Defines the default timezone used by the date functions -; http://php.net/date.timezone -date.timezone = Asia/Shanghai - -; http://php.net/date.default-latitude -;date.default_latitude = 31.7667 - -; http://php.net/date.default-longitude -;date.default_longitude = 35.2333 - -; http://php.net/date.sunrise-zenith -;date.sunrise_zenith = 90.583333 - -; http://php.net/date.sunset-zenith -;date.sunset_zenith = 90.583333 - -[filter] -; http://php.net/filter.default -;filter.default = unsafe_raw - -; http://php.net/filter.default-flags -;filter.default_flags = - -[iconv] -; Use of this INI entry is deprecated, use global input_encoding instead. -; If empty, default_charset or input_encoding or iconv.input_encoding is used. -; The precedence is: default_charset < intput_encoding < iconv.input_encoding -;iconv.input_encoding = - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;iconv.internal_encoding = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; If empty, default_charset or output_encoding or iconv.output_encoding is used. -; The precedence is: default_charset < output_encoding < iconv.output_encoding -; To use an output encoding conversion, iconv's output handler must be set -; otherwise output encoding conversion cannot be performed. -;iconv.output_encoding = - -[intl] -;intl.default_locale = -; This directive allows you to produce PHP errors when some error -; happens within intl functions. The value is the level of the error produced. -; Default is 0, which does not produce any errors. -;intl.error_level = E_WARNING -;intl.use_exceptions = 0 - -[sqlite3] -;sqlite3.extension_dir = - -[Pcre] -;PCRE library backtracking limit. -; http://php.net/pcre.backtrack-limit -;pcre.backtrack_limit=100000 - -;PCRE library recursion limit. -;Please note that if you set this value to a high number you may consume all -;the available process stack and eventually crash PHP (due to reaching the -;stack size limit imposed by the Operating System). -; http://php.net/pcre.recursion-limit -;pcre.recursion_limit=100000 - -;Enables or disables JIT compilation of patterns. This requires the PCRE -;library to be compiled with JIT support. -;pcre.jit=1 - -[Pdo] -; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off" -; http://php.net/pdo-odbc.connection-pooling -;pdo_odbc.connection_pooling=strict - -;pdo_odbc.db2_instance_name - -[Pdo_mysql] -; If mysqlnd is used: Number of cache slots for the internal result set cache -; http://php.net/pdo_mysql.cache_size -pdo_mysql.cache_size = 2000 - -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -; http://php.net/pdo_mysql.default-socket -pdo_mysql.default_socket= - -[Phar] -; http://php.net/phar.readonly -;phar.readonly = On - -; http://php.net/phar.require-hash -;phar.require_hash = On - -;phar.cache_list = - -[mail function] -; For Win32 only. -; http://php.net/smtp -SMTP = localhost -; http://php.net/smtp-port -smtp_port = 25 - -; For Win32 only. -; http://php.net/sendmail-from -;sendmail_from = me@example.com - -; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). -; http://php.net/sendmail-path -;sendmail_path = - -; Force the addition of the specified parameters to be passed as extra parameters -; to the sendmail binary. These parameters will always replace the value of -; the 5th parameter to mail(). -;mail.force_extra_parameters = - -; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename -mail.add_x_header = On - -; The path to a log file that will log all mail() calls. Log entries include -; the full path of the script, line number, To address and headers. -;mail.log = -; Log mail to syslog (Event Log on Windows). -;mail.log = syslog - -[ODBC] -; http://php.net/odbc.default-db -;odbc.default_db = Not yet implemented - -; http://php.net/odbc.default-user -;odbc.default_user = Not yet implemented - -; http://php.net/odbc.default-pw -;odbc.default_pw = Not yet implemented - -; Controls the ODBC cursor model. -; Default: SQL_CURSOR_STATIC (default). -;odbc.default_cursortype - -; Allow or prevent persistent links. -; http://php.net/odbc.allow-persistent -odbc.allow_persistent = On - -; Check that a connection is still valid before reuse. -; http://php.net/odbc.check-persistent -odbc.check_persistent = On - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/odbc.max-persistent -odbc.max_persistent = -1 - -; Maximum number of links (persistent + non-persistent). -1 means no limit. -; http://php.net/odbc.max-links -odbc.max_links = -1 - -; Handling of LONG fields. Returns number of bytes to variables. 0 means -; passthru. -; http://php.net/odbc.defaultlrl -odbc.defaultlrl = 4096 - -; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char. -; See the documentation on odbc_binmode and odbc_longreadlen for an explanation -; of odbc.defaultlrl and odbc.defaultbinmode -; http://php.net/odbc.defaultbinmode -odbc.defaultbinmode = 1 - -;birdstep.max_links = -1 - -[Interbase] -; Allow or prevent persistent links. -ibase.allow_persistent = 1 - -; Maximum number of persistent links. -1 means no limit. -ibase.max_persistent = -1 - -; Maximum number of links (persistent + non-persistent). -1 means no limit. -ibase.max_links = -1 - -; Default database name for ibase_connect(). -;ibase.default_db = - -; Default username for ibase_connect(). -;ibase.default_user = - -; Default password for ibase_connect(). -;ibase.default_password = - -; Default charset for ibase_connect(). -;ibase.default_charset = - -; Default timestamp format. -ibase.timestampformat = "%Y-%m-%d %H:%M:%S" - -; Default date format. -ibase.dateformat = "%Y-%m-%d" - -; Default time format. -ibase.timeformat = "%H:%M:%S" - -[MySQLi] - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/mysqli.max-persistent -mysqli.max_persistent = -1 - -; Allow accessing, from PHP's perspective, local files with LOAD DATA statements -; http://php.net/mysqli.allow_local_infile -;mysqli.allow_local_infile = On - -; Allow or prevent persistent links. -; http://php.net/mysqli.allow-persistent -mysqli.allow_persistent = On - -; Maximum number of links. -1 means no limit. -; http://php.net/mysqli.max-links -mysqli.max_links = -1 - -; If mysqlnd is used: Number of cache slots for the internal result set cache -; http://php.net/mysqli.cache_size -mysqli.cache_size = 2000 - -; Default port number for mysqli_connect(). If unset, mysqli_connect() will use -; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the -; compile-time value defined MYSQL_PORT (in that order). Win32 will only look -; at MYSQL_PORT. -; http://php.net/mysqli.default-port -mysqli.default_port = 3306 - -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -; http://php.net/mysqli.default-socket -mysqli.default_socket = - -; Default host for mysql_connect() (doesn't apply in safe mode). -; http://php.net/mysqli.default-host -mysqli.default_host = - -; Default user for mysql_connect() (doesn't apply in safe mode). -; http://php.net/mysqli.default-user -mysqli.default_user = - -; Default password for mysqli_connect() (doesn't apply in safe mode). -; Note that this is generally a *bad* idea to store passwords in this file. -; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw") -; and reveal this password! And of course, any users with read access to this -; file will be able to reveal the password as well. -; http://php.net/mysqli.default-pw -mysqli.default_pw = - -; Allow or prevent reconnect -mysqli.reconnect = Off - -[mysqlnd] -; Enable / Disable collection of general statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -; http://php.net/mysqlnd.collect_statistics -mysqlnd.collect_statistics = On - -; Enable / Disable collection of memory usage statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -; http://php.net/mysqlnd.collect_memory_statistics -mysqlnd.collect_memory_statistics = Off - -; Records communication from all extensions using mysqlnd to the specified log -; file. -; http://php.net/mysqlnd.debug -;mysqlnd.debug = - -; Defines which queries will be logged. -; http://php.net/mysqlnd.log_mask -;mysqlnd.log_mask = 0 - -; Default size of the mysqlnd memory pool, which is used by result sets. -; http://php.net/mysqlnd.mempool_default_size -;mysqlnd.mempool_default_size = 16000 - -; Size of a pre-allocated buffer used when sending commands to MySQL in bytes. -; http://php.net/mysqlnd.net_cmd_buffer_size -;mysqlnd.net_cmd_buffer_size = 2048 - -; Size of a pre-allocated buffer used for reading data sent by the server in -; bytes. -; http://php.net/mysqlnd.net_read_buffer_size -;mysqlnd.net_read_buffer_size = 32768 - -; Timeout for network requests in seconds. -; http://php.net/mysqlnd.net_read_timeout -;mysqlnd.net_read_timeout = 31536000 - -; SHA-256 Authentication Plugin related. File with the MySQL server public RSA -; key. -; http://php.net/mysqlnd.sha256_server_public_key -;mysqlnd.sha256_server_public_key = - -[OCI8] - -; Connection: Enables privileged connections using external -; credentials (OCI_SYSOPER, OCI_SYSDBA) -; http://php.net/oci8.privileged-connect -;oci8.privileged_connect = Off - -; Connection: The maximum number of persistent OCI8 connections per -; process. Using -1 means no limit. -; http://php.net/oci8.max-persistent -;oci8.max_persistent = -1 - -; Connection: The maximum number of seconds a process is allowed to -; maintain an idle persistent connection. Using -1 means idle -; persistent connections will be maintained forever. -; http://php.net/oci8.persistent-timeout -;oci8.persistent_timeout = -1 - -; Connection: The number of seconds that must pass before issuing a -; ping during oci_pconnect() to check the connection validity. When -; set to 0, each oci_pconnect() will cause a ping. Using -1 disables -; pings completely. -; http://php.net/oci8.ping-interval -;oci8.ping_interval = 60 - -; Connection: Set this to a user chosen connection class to be used -; for all pooled server requests with Oracle 11g Database Resident -; Connection Pooling (DRCP). To use DRCP, this value should be set to -; the same string for all web servers running the same application, -; the database pool must be configured, and the connection string must -; specify to use a pooled server. -;oci8.connection_class = - -; High Availability: Using On lets PHP receive Fast Application -; Notification (FAN) events generated when a database node fails. The -; database must also be configured to post FAN events. -;oci8.events = Off - -; Tuning: This option enables statement caching, and specifies how -; many statements to cache. Using 0 disables statement caching. -; http://php.net/oci8.statement-cache-size -;oci8.statement_cache_size = 20 - -; Tuning: Enables statement prefetching and sets the default number of -; rows that will be fetched automatically after statement execution. -; http://php.net/oci8.default-prefetch -;oci8.default_prefetch = 100 - -; Compatibility. Using On means oci_close() will not close -; oci_connect() and oci_new_connect() connections. -; http://php.net/oci8.old-oci-close-semantics -;oci8.old_oci_close_semantics = Off - -[PostgreSQL] -; Allow or prevent persistent links. -; http://php.net/pgsql.allow-persistent -pgsql.allow_persistent = On - -; Detect broken persistent links always with pg_pconnect(). -; Auto reset feature requires a little overheads. -; http://php.net/pgsql.auto-reset-persistent -pgsql.auto_reset_persistent = Off - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/pgsql.max-persistent -pgsql.max_persistent = -1 - -; Maximum number of links (persistent+non persistent). -1 means no limit. -; http://php.net/pgsql.max-links -pgsql.max_links = -1 - -; Ignore PostgreSQL backends Notice message or not. -; Notice message logging require a little overheads. -; http://php.net/pgsql.ignore-notice -pgsql.ignore_notice = 0 - -; Log PostgreSQL backends Notice message or not. -; Unless pgsql.ignore_notice=0, module cannot log notice message. -; http://php.net/pgsql.log-notice -pgsql.log_notice = 0 - -[bcmath] -; Number of decimal digits for all bcmath functions. -; http://php.net/bcmath.scale -bcmath.scale = 0 - -[browscap] -; http://php.net/browscap -;browscap = extra/browscap.ini - -[Session] -; Handler used to store/retrieve data. -; http://php.net/session.save-handler -session.save_handler = files - -; Argument passed to save_handler. In the case of files, this is the path -; where data files are stored. Note: Windows users have to change this -; variable in order to use PHP's session functions. -; -; The path can be defined as: -; -; session.save_path = "N;/path" -; -; where N is an integer. Instead of storing all the session files in -; /path, what this will do is use subdirectories N-levels deep, and -; store the session data in those directories. This is useful if -; your OS has problems with many files in one directory, and is -; a more efficient layout for servers that handle many sessions. -; -; NOTE 1: PHP will not create this directory structure automatically. -; You can use the script in the ext/session dir for that purpose. -; NOTE 2: See the section on garbage collection below if you choose to -; use subdirectories for session storage -; -; The file storage module creates files using mode 600 by default. -; You can change that by using -; -; session.save_path = "N;MODE;/path" -; -; where MODE is the octal representation of the mode. Note that this -; does not overwrite the process's umask. -; http://php.net/session.save-path -;session.save_path = "/tmp" - -; Whether to use strict session mode. -; Strict session mode does not accept uninitialized session ID and regenerate -; session ID if browser sends uninitialized session ID. Strict mode protects -; applications from session fixation via session adoption vulnerability. It is -; disabled by default for maximum compatibility, but enabling it is encouraged. -; https://wiki.php.net/rfc/strict_sessions -session.use_strict_mode = 0 - -; Whether to use cookies. -; http://php.net/session.use-cookies -session.use_cookies = 1 - -; http://php.net/session.cookie-secure -;session.cookie_secure = - -; This option forces PHP to fetch and use a cookie for storing and maintaining -; the session id. We encourage this operation as it's very helpful in combating -; session hijacking when not specifying and managing your own session id. It is -; not the be-all and end-all of session hijacking defense, but it's a good start. -; http://php.net/session.use-only-cookies -session.use_only_cookies = 1 - -; Name of the session (used as cookie name). -; http://php.net/session.name -session.name = PHPSESSID - -; Initialize session on request startup. -; http://php.net/session.auto-start -session.auto_start = 0 - -; Lifetime in seconds of cookie or, if 0, until browser is restarted. -; http://php.net/session.cookie-lifetime -session.cookie_lifetime = 0 - -; The path for which the cookie is valid. -; http://php.net/session.cookie-path -session.cookie_path = / - -; The domain for which the cookie is valid. -; http://php.net/session.cookie-domain -session.cookie_domain = - -; Whether or not to add the httpOnly flag to the cookie, which makes it inaccessible to browser scripting languages such as JavaScript. -; http://php.net/session.cookie-httponly -session.cookie_httponly = - -; Handler used to serialize data. php is the standard serializer of PHP. -; http://php.net/session.serialize-handler -session.serialize_handler = php - -; Defines the probability that the 'garbage collection' process is started -; on every session initialization. The probability is calculated by using -; gc_probability/gc_divisor. Where session.gc_probability is the numerator -; and gc_divisor is the denominator in the equation. Setting this value to 1 -; when the session.gc_divisor value is 100 will give you approximately a 1% chance -; the gc will run on any give request. -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; http://php.net/session.gc-probability -session.gc_probability = 1 - -; Defines the probability that the 'garbage collection' process is started on every -; session initialization. The probability is calculated by using the following equation: -; gc_probability/gc_divisor. Where session.gc_probability is the numerator and -; session.gc_divisor is the denominator in the equation. Setting this value to 1 -; when the session.gc_divisor value is 100 will give you approximately a 1% chance -; the gc will run on any give request. Increasing this value to 1000 will give you -; a 0.1% chance the gc will run on any give request. For high volume production servers, -; this is a more efficient approach. -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 -; http://php.net/session.gc-divisor -session.gc_divisor = 1000 - -; After this number of seconds, stored data will be seen as 'garbage' and -; cleaned up by the garbage collection process. -; http://php.net/session.gc-maxlifetime -session.gc_maxlifetime = 1440 - -; NOTE: If you are using the subdirectory option for storing session files -; (see session.save_path above), then garbage collection does *not* -; happen automatically. You will need to do your own garbage -; collection through a shell script, cron entry, or some other method. -; For example, the following script would is the equivalent of -; setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes): -; find /path/to/sessions -cmin +24 -type f | xargs rm - -; Check HTTP Referer to invalidate externally stored URLs containing ids. -; HTTP_REFERER has to contain this substring for the session to be -; considered as valid. -; http://php.net/session.referer-check -session.referer_check = - -; Set to {nocache,private,public,} to determine HTTP caching aspects -; or leave this empty to avoid sending anti-caching headers. -; http://php.net/session.cache-limiter -session.cache_limiter = nocache - -; Document expires after n minutes. -; http://php.net/session.cache-expire -session.cache_expire = 180 - -; trans sid support is disabled by default. -; Use of trans sid may risk your users' security. -; Use this option with caution. -; - User may send URL contains active session ID -; to other person via. email/irc/etc. -; - URL that contains active session ID may be stored -; in publicly accessible computer. -; - User may access your site with the same session ID -; always using URL stored in browser's history or bookmarks. -; http://php.net/session.use-trans-sid -session.use_trans_sid = 0 - -; Set session ID character length. This value could be between 22 to 256. -; Shorter length than default is supported only for compatibility reason. -; Users should use 32 or more chars. -; http://php.net/session.sid-length -; Default Value: 32 -; Development Value: 26 -; Production Value: 26 -session.sid_length = 26 - -; The URL rewriter will look for URLs in a defined set of HTML tags. -; is special; if you include them here, the rewriter will -; add a hidden field with the info which is otherwise appended -; to URLs. tag's action attribute URL will not be modified -; unless it is specified. -; Note that all valid entries require a "=", even if no value follows. -; Default Value: "a=href,area=href,frame=src,form=" -; Development Value: "a=href,area=href,frame=src,form=" -; Production Value: "a=href,area=href,frame=src,form=" -; http://php.net/url-rewriter.tags -session.trans_sid_tags = "a=href,area=href,frame=src,form=" - -; URL rewriter does not rewrite absolute URLs by default. -; To enable rewrites for absolute pathes, target hosts must be specified -; at RUNTIME. i.e. use ini_set() -; tags is special. PHP will check action attribute's URL regardless -; of session.trans_sid_tags setting. -; If no host is defined, HTTP_HOST will be used for allowed host. -; Example value: php.net,www.php.net,wiki.php.net -; Use "," for multiple hosts. No spaces are allowed. -; Default Value: "" -; Development Value: "" -; Production Value: "" -;session.trans_sid_hosts="" - -; Define how many bits are stored in each character when converting -; the binary hash data to something readable. -; Possible values: -; 4 (4 bits: 0-9, a-f) -; 5 (5 bits: 0-9, a-v) -; 6 (6 bits: 0-9, a-z, A-Z, "-", ",") -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 -; http://php.net/session.hash-bits-per-character -session.sid_bits_per_character = 5 - -; Enable upload progress tracking in $_SESSION -; Default Value: On -; Development Value: On -; Production Value: On -; http://php.net/session.upload-progress.enabled -;session.upload_progress.enabled = On - -; Cleanup the progress information as soon as all POST data has been read -; (i.e. upload completed). -; Default Value: On -; Development Value: On -; Production Value: On -; http://php.net/session.upload-progress.cleanup -;session.upload_progress.cleanup = On - -; A prefix used for the upload progress key in $_SESSION -; Default Value: "upload_progress_" -; Development Value: "upload_progress_" -; Production Value: "upload_progress_" -; http://php.net/session.upload-progress.prefix -;session.upload_progress.prefix = "upload_progress_" - -; The index name (concatenated with the prefix) in $_SESSION -; containing the upload progress information -; Default Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Development Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Production Value: "PHP_SESSION_UPLOAD_PROGRESS" -; http://php.net/session.upload-progress.name -;session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS" - -; How frequently the upload progress should be updated. -; Given either in percentages (per-file), or in bytes -; Default Value: "1%" -; Development Value: "1%" -; Production Value: "1%" -; http://php.net/session.upload-progress.freq -;session.upload_progress.freq = "1%" - -; The minimum delay between updates, in seconds -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; http://php.net/session.upload-progress.min-freq -;session.upload_progress.min_freq = "1" - -; Only write session data when session data is changed. Enabled by default. -; http://php.net/session.lazy-write -;session.lazy_write = On - -[Assertion] -; Switch whether to compile assertions at all (to have no overhead at run-time) -; -1: Do not compile at all -; 0: Jump over assertion at run-time -; 1: Execute assertions -; Changing from or to a negative value is only possible in php.ini! (For turning assertions on and off at run-time, see assert.active, when zend.assertions = 1) -; Default Value: 1 -; Development Value: 1 -; Production Value: -1 -; http://php.net/zend.assertions -zend.assertions = -1 - -; Assert(expr); active by default. -; http://php.net/assert.active -;assert.active = On - -; Throw an AssertationException on failed assertions -; http://php.net/assert.exception -;assert.exception = On - -; Issue a PHP warning for each failed assertion. (Overridden by assert.exception if active) -; http://php.net/assert.warning -;assert.warning = On - -; Don't bail out by default. -; http://php.net/assert.bail -;assert.bail = Off - -; User-function to be called if an assertion fails. -; http://php.net/assert.callback -;assert.callback = 0 - -; Eval the expression with current error_reporting(). Set to true if you want -; error_reporting(0) around the eval(). -; http://php.net/assert.quiet-eval -;assert.quiet_eval = 0 - -[COM] -; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs -; http://php.net/com.typelib-file -;com.typelib_file = - -; allow Distributed-COM calls -; http://php.net/com.allow-dcom -;com.allow_dcom = true - -; autoregister constants of a components typlib on com_load() -; http://php.net/com.autoregister-typelib -;com.autoregister_typelib = true - -; register constants casesensitive -; http://php.net/com.autoregister-casesensitive -;com.autoregister_casesensitive = false - -; show warnings on duplicate constant registrations -; http://php.net/com.autoregister-verbose -;com.autoregister_verbose = true - -; The default character set code-page to use when passing strings to and from COM objects. -; Default: system ANSI code page -;com.code_page= - -[mbstring] -; language for internal character representation. -; This affects mb_send_mail() and mbstring.detect_order. -; http://php.net/mbstring.language -;mbstring.language = Japanese - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; internal/script encoding. -; Some encoding cannot work as internal encoding. (e.g. SJIS, BIG5, ISO-2022-*) -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;mbstring.internal_encoding = - -; Use of this INI entry is deprecated, use global input_encoding instead. -; http input encoding. -; mbstring.encoding_traslation = On is needed to use this setting. -; If empty, default_charset or input_encoding or mbstring.input is used. -; The precedence is: default_charset < intput_encoding < mbsting.http_input -; http://php.net/mbstring.http-input -;mbstring.http_input = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; http output encoding. -; mb_output_handler must be registered as output buffer to function. -; If empty, default_charset or output_encoding or mbstring.http_output is used. -; The precedence is: default_charset < output_encoding < mbstring.http_output -; To use an output encoding conversion, mbstring's output handler must be set -; otherwise output encoding conversion cannot be performed. -; http://php.net/mbstring.http-output -;mbstring.http_output = - -; enable automatic encoding translation according to -; mbstring.internal_encoding setting. Input chars are -; converted to internal encoding by setting this to On. -; Note: Do _not_ use automatic encoding translation for -; portable libs/applications. -; http://php.net/mbstring.encoding-translation -;mbstring.encoding_translation = Off - -; automatic encoding detection order. -; "auto" detect order is changed according to mbstring.language -; http://php.net/mbstring.detect-order -;mbstring.detect_order = auto - -; substitute_character used when character cannot be converted -; one from another -; http://php.net/mbstring.substitute-character -;mbstring.substitute_character = none - -; overload(replace) single byte functions by mbstring functions. -; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(), -; etc. Possible values are 0,1,2,4 or combination of them. -; For example, 7 for overload everything. -; 0: No overload -; 1: Overload mail() function -; 2: Overload str*() functions -; 4: Overload ereg*() functions -; http://php.net/mbstring.func-overload -;mbstring.func_overload = 0 - -; enable strict encoding detection. -; Default: Off -;mbstring.strict_detection = On - -; This directive specifies the regex pattern of content types for which mb_output_handler() -; is activated. -; Default: mbstring.http_output_conv_mimetype=^(text/|application/xhtml\+xml) -;mbstring.http_output_conv_mimetype= - -[gd] -; Tell the jpeg decode to ignore warnings and try to create -; a gd image. The warning will then be displayed as notices -; disabled by default -; http://php.net/gd.jpeg-ignore-warning -;gd.jpeg_ignore_warning = 1 - -[exif] -; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS. -; With mbstring support this will automatically be converted into the encoding -; given by corresponding encode setting. When empty mbstring.internal_encoding -; is used. For the decode settings you can distinguish between motorola and -; intel byte order. A decode setting cannot be empty. -; http://php.net/exif.encode-unicode -;exif.encode_unicode = ISO-8859-15 - -; http://php.net/exif.decode-unicode-motorola -;exif.decode_unicode_motorola = UCS-2BE - -; http://php.net/exif.decode-unicode-intel -;exif.decode_unicode_intel = UCS-2LE - -; http://php.net/exif.encode-jis -;exif.encode_jis = - -; http://php.net/exif.decode-jis-motorola -;exif.decode_jis_motorola = JIS - -; http://php.net/exif.decode-jis-intel -;exif.decode_jis_intel = JIS - -[Tidy] -; The path to a default tidy configuration file to use when using tidy -; http://php.net/tidy.default-config -;tidy.default_config = /usr/local/lib/php/default.tcfg - -; Should tidy clean and repair output automatically? -; WARNING: Do not use this option if you are generating non-html content -; such as dynamic images -; http://php.net/tidy.clean-output -tidy.clean_output = Off - -[soap] -; Enables or disables WSDL caching feature. -; http://php.net/soap.wsdl-cache-enabled -soap.wsdl_cache_enabled=1 - -; Sets the directory name where SOAP extension will put cache files. -; http://php.net/soap.wsdl-cache-dir -soap.wsdl_cache_dir="/tmp" - -; (time to live) Sets the number of second while cached file will be used -; instead of original one. -; http://php.net/soap.wsdl-cache-ttl -soap.wsdl_cache_ttl=86400 - -; Sets the size of the cache limit. (Max. number of WSDL files to cache) -soap.wsdl_cache_limit = 5 - -[sysvshm] -; A default size of the shared memory segment -;sysvshm.init_mem = 10000 - -[ldap] -; Sets the maximum number of open links or -1 for unlimited. -ldap.max_links = -1 - -[dba] -;dba.default_handler= - -[opcache] -; Determines if Zend OPCache is enabled -;opcache.enable=1 - -; Determines if Zend OPCache is enabled for the CLI version of PHP -;opcache.enable_cli=1 - -; The OPcache shared memory storage size. -;opcache.memory_consumption=128 - -; The amount of memory for interned strings in Mbytes. -;opcache.interned_strings_buffer=8 - -; The maximum number of keys (scripts) in the OPcache hash table. -; Only numbers between 200 and 1000000 are allowed. -;opcache.max_accelerated_files=10000 - -; The maximum percentage of "wasted" memory until a restart is scheduled. -;opcache.max_wasted_percentage=5 - -; When this directive is enabled, the OPcache appends the current working -; directory to the script key, thus eliminating possible collisions between -; files with the same name (basename). Disabling the directive improves -; performance, but may break existing applications. -;opcache.use_cwd=1 - -; When disabled, you must reset the OPcache manually or restart the -; webserver for changes to the filesystem to take effect. -;opcache.validate_timestamps=1 - -; How often (in seconds) to check file timestamps for changes to the shared -; memory storage allocation. ("1" means validate once per second, but only -; once per request. "0" means always validate) -;opcache.revalidate_freq=2 - -; Enables or disables file search in include_path optimization -;opcache.revalidate_path=0 - -; If disabled, all PHPDoc comments are dropped from the code to reduce the -; size of the optimized code. -;opcache.save_comments=1 - -; If enabled, a fast shutdown sequence is used for the accelerated code -; Depending on the used Memory Manager this may cause some incompatibilities. -;opcache.fast_shutdown=0 - -; Allow file existence override (file_exists, etc.) performance feature. -;opcache.enable_file_override=0 - -; A bitmask, where each bit enables or disables the appropriate OPcache -; passes -;opcache.optimization_level=0xffffffff - -;opcache.inherited_hack=1 -;opcache.dups_fix=0 - -; The location of the OPcache blacklist file (wildcards allowed). -; Each OPcache blacklist file is a text file that holds the names of files -; that should not be accelerated. The file format is to add each filename -; to a new line. The filename may be a full path or just a file prefix -; (i.e., /var/www/x blacklists all the files and directories in /var/www -; that start with 'x'). Line starting with a ; are ignored (comments). -;opcache.blacklist_filename= - -; Allows exclusion of large files from being cached. By default all files -; are cached. -;opcache.max_file_size=0 - -; Check the cache checksum each N requests. -; The default value of "0" means that the checks are disabled. -;opcache.consistency_checks=0 - -; How long to wait (in seconds) for a scheduled restart to begin if the cache -; is not being accessed. -;opcache.force_restart_timeout=180 - -; OPcache error_log file name. Empty string assumes "stderr". -;opcache.error_log= - -; All OPcache errors go to the Web server log. -; By default, only fatal errors (level 0) or errors (level 1) are logged. -; You can also enable warnings (level 2), info messages (level 3) or -; debug messages (level 4). -;opcache.log_verbosity_level=1 - -; Preferred Shared Memory back-end. Leave empty and let the system decide. -;opcache.preferred_memory_model= - -; Protect the shared memory from unexpected writing during script execution. -; Useful for internal debugging only. -;opcache.protect_memory=0 - -; Allows calling OPcache API functions only from PHP scripts which path is -; started from specified string. The default "" means no restriction -;opcache.restrict_api= - -; Mapping base of shared memory segments (for Windows only). All the PHP -; processes have to map shared memory into the same address space. This -; directive allows to manually fix the "Unable to reattach to base address" -; errors. -;opcache.mmap_base= - -; Enables and sets the second level cache directory. -; It should improve performance when SHM memory is full, at server restart or -; SHM reset. The default "" disables file based caching. -;opcache.file_cache= - -; Enables or disables opcode caching in shared memory. -;opcache.file_cache_only=0 - -; Enables or disables checksum validation when script loaded from file cache. -;opcache.file_cache_consistency_checks=1 - -; Implies opcache.file_cache_only=1 for a certain process that failed to -; reattach to the shared memory (for Windows only). Explicitly enabled file -; cache is required. -;opcache.file_cache_fallback=1 - -; Enables or disables copying of PHP code (text segment) into HUGE PAGES. -; This should improve performance, but requires appropriate OS configuration. -;opcache.huge_code_pages=1 - -; Validate cached file permissions. -;opcache.validate_permission=0 - -; Prevent name collisions in chroot'ed environment. -;opcache.validate_root=0 - -[curl] -; A default value for the CURLOPT_CAINFO option. This is required to be an -; absolute path. -;curl.cainfo = - -[openssl] -; The location of a Certificate Authority (CA) file on the local filesystem -; to use when verifying the identity of SSL/TLS peers. Most users should -; not specify a value for this directive as PHP will attempt to use the -; OS-managed cert stores in its absence. If specified, this value may still -; be overridden on a per-stream basis via the "cafile" SSL stream context -; option. -;openssl.cafile= - -; If openssl.cafile is not specified or if the CA file is not found, the -; directory pointed to by openssl.capath is searched for a suitable -; certificate. This value must be a correctly hashed certificate directory. -; Most users should not specify a value for this directive as PHP will -; attempt to use the OS-managed cert stores in its absence. If specified, -; this value may still be overridden on a per-stream basis via the "capath" -; SSL stream context option. -;openssl.capath= - -; Local Variables: -; tab-width: 4 -; End: - -[XDebug] -xdebug.mode=debug -xdebug.remote_handler = "dbgp" -; Set to host.docker.internal on Mac and Windows, otherwise, set to host real ip -xdebug.client_host = host.docker.internal -;xdebug.remote_port = 9000 -xdebug.remote_log = /var/log/php/xdebug.log - -SERVER_ENV=develop - -yaf.use_spl_autoload=1 - -[xhprof] -;xhprof.output_dir = /var/log/php/xhprof.log \ No newline at end of file diff --git a/php8/8.2.28/conf/php-fpm.conf b/php8/8.2.28/conf/php-fpm.conf deleted file mode 100644 index 131835891..000000000 --- a/php8/8.2.28/conf/php-fpm.conf +++ /dev/null @@ -1,423 +0,0 @@ -; Start a new pool named 'www'. -; the variable $pool can be used in any directive and will be replaced by the -; pool name ('www' here) -[www] - -; Per pool prefix -; It only applies on the following directives: -; - 'access.log' -; - 'slowlog' -; - 'listen' (unixsocket) -; - 'chroot' -; - 'chdir' -; - 'php_values' -; - 'php_admin_values' -; When not set, the global prefix (or NONE) applies instead. -; Note: This directive can also be relative to the global prefix. -; Default Value: none -;prefix = /path/to/pools/$pool - -; Unix user/group of processes -; Note: The user is mandatory. If the group is not set, the default user's group -; will be used. -user = www-data -group = www-data - -; The address on which to accept FastCGI requests. -; Valid syntaxes are: -; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on -; a specific port; -; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on -; a specific port; -; 'port' - to listen on a TCP socket to all addresses -; (IPv6 and IPv4-mapped) on a specific port; -; '/path/to/unix/socket' - to listen on a unix socket. -; Note: This value is mandatory. -listen = 127.0.0.1:9000 - -; Set listen(2) backlog. -; Default Value: 511 (-1 on FreeBSD and OpenBSD) -;listen.backlog = 511 - -; Set permissions for unix socket, if one is used. In Linux, read/write -; permissions must be set in order to allow connections from a web server. Many -; BSD-derived systems allow connections regardless of permissions. -; Default Values: user and group are set as the running user -; mode is set to 0660 -;listen.owner = www-data -;listen.group = www-data -;listen.mode = 0660 -; When POSIX Access Control Lists are supported you can set them using -; these options, value is a comma separated list of user/group names. -; When set, listen.owner and listen.group are ignored -;listen.acl_users = -;listen.acl_groups = - -; List of addresses (IPv4/IPv6) of FastCGI clients which are allowed to connect. -; Equivalent to the FCGI_WEB_SERVER_ADDRS environment variable in the original -; PHP FCGI (5.2.2+). Makes sense only with a tcp listening socket. Each address -; must be separated by a comma. If this value is left blank, connections will be -; accepted from any ip address. -; Default Value: any -;listen.allowed_clients = 127.0.0.1 - -; Specify the nice(2) priority to apply to the pool processes (only if set) -; The value can vary from -19 (highest priority) to 20 (lower priority) -; Note: - It will only work if the FPM master process is launched as root -; - The pool processes will inherit the master process priority -; unless it specified otherwise -; Default Value: no set -; process.priority = -19 - -; Set the process dumpable flag (PR_SET_DUMPABLE prctl) even if the process user -; or group is differrent than the master process user. It allows to create process -; core dump and ptrace the process for the pool user. -; Default Value: no -; process.dumpable = yes - -; Choose how the process manager will control the number of child processes. -; Possible Values: -; static - a fixed number (pm.max_children) of child processes; -; dynamic - the number of child processes are set dynamically based on the -; following directives. With this process management, there will be -; always at least 1 children. -; pm.max_children - the maximum number of children that can -; be alive at the same time. -; pm.start_servers - the number of children created on startup. -; pm.min_spare_servers - the minimum number of children in 'idle' -; state (waiting to process). If the number -; of 'idle' processes is less than this -; number then some children will be created. -; pm.max_spare_servers - the maximum number of children in 'idle' -; state (waiting to process). If the number -; of 'idle' processes is greater than this -; number then some children will be killed. -; ondemand - no children are created at startup. Children will be forked when -; new requests will connect. The following parameter are used: -; pm.max_children - the maximum number of children that -; can be alive at the same time. -; pm.process_idle_timeout - The number of seconds after which -; an idle process will be killed. -; Note: This value is mandatory. -pm = dynamic - -; The number of child processes to be created when pm is set to 'static' and the -; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'. -; This value sets the limit on the number of simultaneous requests that will be -; served. Equivalent to the ApacheMaxClients directive with mpm_prefork. -; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP -; CGI. The below defaults are based on a server without much resources. Don't -; forget to tweak pm.* to fit your needs. -; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand' -; Note: This value is mandatory. -pm.max_children = 10 - -; The number of child processes created on startup. -; Note: Used only when pm is set to 'dynamic' -; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2 -pm.start_servers = 2 - -; The desired minimum number of idle server processes. -; Note: Used only when pm is set to 'dynamic' -; Note: Mandatory when pm is set to 'dynamic' -pm.min_spare_servers = 1 - -; The desired maximum number of idle server processes. -; Note: Used only when pm is set to 'dynamic' -; Note: Mandatory when pm is set to 'dynamic' -pm.max_spare_servers = 3 - -; The number of seconds after which an idle process will be killed. -; Note: Used only when pm is set to 'ondemand' -; Default Value: 10s -;pm.process_idle_timeout = 10s; - -; The number of requests each child process should execute before respawning. -; This can be useful to work around memory leaks in 3rd party libraries. For -; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS. -; Default Value: 0 -;pm.max_requests = 500 - -; The URI to view the FPM status page. If this value is not set, no URI will be -; recognized as a status page. It shows the following informations: -; pool - the name of the pool; -; process manager - static, dynamic or ondemand; -; start time - the date and time FPM has started; -; start since - number of seconds since FPM has started; -; accepted conn - the number of request accepted by the pool; -; listen queue - the number of request in the queue of pending -; connections (see backlog in listen(2)); -; max listen queue - the maximum number of requests in the queue -; of pending connections since FPM has started; -; listen queue len - the size of the socket queue of pending connections; -; idle processes - the number of idle processes; -; active processes - the number of active processes; -; total processes - the number of idle + active processes; -; max active processes - the maximum number of active processes since FPM -; has started; -; max children reached - number of times, the process limit has been reached, -; when pm tries to start more children (works only for -; pm 'dynamic' and 'ondemand'); -; Value are updated in real time. -; Example output: -; pool: www -; process manager: static -; start time: 01/Jul/2011:17:53:49 +0200 -; start since: 62636 -; accepted conn: 190460 -; listen queue: 0 -; max listen queue: 1 -; listen queue len: 42 -; idle processes: 4 -; active processes: 11 -; total processes: 15 -; max active processes: 12 -; max children reached: 0 -; -; By default the status page output is formatted as text/plain. Passing either -; 'html', 'xml' or 'json' in the query string will return the corresponding -; output syntax. Example: -; http://www.foo.bar/status -; http://www.foo.bar/status?json -; http://www.foo.bar/status?html -; http://www.foo.bar/status?xml -; -; By default the status page only outputs short status. Passing 'full' in the -; query string will also return status for each pool process. -; Example: -; http://www.foo.bar/status?full -; http://www.foo.bar/status?json&full -; http://www.foo.bar/status?html&full -; http://www.foo.bar/status?xml&full -; The Full status returns for each process: -; pid - the PID of the process; -; state - the state of the process (Idle, Running, ...); -; start time - the date and time the process has started; -; start since - the number of seconds since the process has started; -; requests - the number of requests the process has served; -; request duration - the duration in µs of the requests; -; request method - the request method (GET, POST, ...); -; request URI - the request URI with the query string; -; content length - the content length of the request (only with POST); -; user - the user (PHP_AUTH_USER) (or '-' if not set); -; script - the main script called (or '-' if not set); -; last request cpu - the %cpu the last request consumed -; it's always 0 if the process is not in Idle state -; because CPU calculation is done when the request -; processing has terminated; -; last request memory - the max amount of memory the last request consumed -; it's always 0 if the process is not in Idle state -; because memory calculation is done when the request -; processing has terminated; -; If the process is in Idle state, then informations are related to the -; last request the process has served. Otherwise informations are related to -; the current request being served. -; Example output: -; ************************ -; pid: 31330 -; state: Running -; start time: 01/Jul/2011:17:53:49 +0200 -; start since: 63087 -; requests: 12808 -; request duration: 1250261 -; request method: GET -; request URI: /test_mem.php?N=10000 -; content length: 0 -; user: - -; script: /home/fat/web/docs/php/test_mem.php -; last request cpu: 0.00 -; last request memory: 0 -; -; Note: There is a real-time FPM status monitoring sample web page available -; It's available in: /usr/local/share/php/fpm/status.html -; -; Note: The value must start with a leading slash (/). The value can be -; anything, but it may not be a good idea to use the .php extension or it -; may conflict with a real PHP file. -; Default Value: not set -;pm.status_path = /status - -; The ping URI to call the monitoring page of FPM. If this value is not set, no -; URI will be recognized as a ping page. This could be used to test from outside -; that FPM is alive and responding, or to -; - create a graph of FPM availability (rrd or such); -; - remove a server from a group if it is not responding (load balancing); -; - trigger alerts for the operating team (24/7). -; Note: The value must start with a leading slash (/). The value can be -; anything, but it may not be a good idea to use the .php extension or it -; may conflict with a real PHP file. -; Default Value: not set -;ping.path = /ping - -; This directive may be used to customize the response of a ping request. The -; response is formatted as text/plain with a 200 response code. -; Default Value: pong -;ping.response = pong - -; The access log file -; Default: not set -;access.log = log/$pool.access.log - -; The access log format. -; The following syntax is allowed -; %%: the '%' character -; %C: %CPU used by the request -; it can accept the following format: -; - %{user}C for user CPU only -; - %{system}C for system CPU only -; - %{total}C for user + system CPU (default) -; %d: time taken to serve the request -; it can accept the following format: -; - %{seconds}d (default) -; - %{miliseconds}d -; - %{mili}d -; - %{microseconds}d -; - %{micro}d -; %e: an environment variable (same as $_ENV or $_SERVER) -; it must be associated with embraces to specify the name of the env -; variable. Some exemples: -; - server specifics like: %{REQUEST_METHOD}e or %{SERVER_PROTOCOL}e -; - HTTP headers like: %{HTTP_HOST}e or %{HTTP_USER_AGENT}e -; %f: script filename -; %l: content-length of the request (for POST request only) -; %m: request method -; %M: peak of memory allocated by PHP -; it can accept the following format: -; - %{bytes}M (default) -; - %{kilobytes}M -; - %{kilo}M -; - %{megabytes}M -; - %{mega}M -; %n: pool name -; %o: output header -; it must be associated with embraces to specify the name of the header: -; - %{Content-Type}o -; - %{X-Powered-By}o -; - %{Transfert-Encoding}o -; - .... -; %p: PID of the child that serviced the request -; %P: PID of the parent of the child that serviced the request -; %q: the query string -; %Q: the '?' character if query string exists -; %r: the request URI (without the query string, see %q and %Q) -; %R: remote IP address -; %s: status (response code) -; %t: server time the request was received -; it can accept a strftime(3) format: -; %d/%b/%Y:%H:%M:%S %z (default) -; The strftime(3) format must be encapsuled in a %{}t tag -; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t -; %T: time the log has been written (the request has finished) -; it can accept a strftime(3) format: -; %d/%b/%Y:%H:%M:%S %z (default) -; The strftime(3) format must be encapsuled in a %{}t tag -; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t -; %u: remote user -; -; Default: "%R - %u %t \"%m %r\" %s" -;access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%" - -; The log file for slow requests -; Default Value: not set -; Note: slowlog is mandatory if request_slowlog_timeout is set -slowlog = /var/log/php/fpm.slow.log - -; The timeout for serving a single request after which a PHP backtrace will be -; dumped to the 'slowlog' file. A value of '0s' means 'off'. -; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) -; Default Value: 0 -request_slowlog_timeout = 3 - -; Depth of slow log stack trace. -; Default Value: 20 -;request_slowlog_trace_depth = 20 - -; The timeout for serving a single request after which the worker process will -; be killed. This option should be used when the 'max_execution_time' ini option -; does not stop script execution for some reason. A value of '0' means 'off'. -; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) -; Default Value: 0 -;request_terminate_timeout = 0 - -; Set open file descriptor rlimit. -; Default Value: system defined value -;rlimit_files = 1024 - -; Set max core size rlimit. -; Possible Values: 'unlimited' or an integer greater or equal to 0 -; Default Value: system defined value -;rlimit_core = 0 - -; Chroot to this directory at the start. This value must be defined as an -; absolute path. When this value is not set, chroot is not used. -; Note: you can prefix with '$prefix' to chroot to the pool prefix or one -; of its subdirectories. If the pool prefix is not set, the global prefix -; will be used instead. -; Note: chrooting is a great security feature and should be used whenever -; possible. However, all PHP paths will be relative to the chroot -; (error_log, sessions.save_path, ...). -; Default Value: not set -;chroot = - -; Chdir to this directory at the start. -; Note: relative path can be used. -; Default Value: current directory or / when chroot -;chdir = /var/www - -; Redirect worker stdout and stderr into main error log. If not set, stdout and -; stderr will be redirected to /dev/null according to FastCGI specs. -; Note: on highloaded environement, this can cause some delay in the page -; process time (several ms). -; Default Value: no -catch_workers_output = yes - -; Clear environment in FPM workers -; Prevents arbitrary environment variables from reaching FPM worker processes -; by clearing the environment in workers before env vars specified in this -; pool configuration are added. -; Setting to "no" will make all environment variables available to PHP code -; via getenv(), $_ENV and $_SERVER. -; Default Value: yes -;clear_env = no - -; Limits the extensions of the main script FPM will allow to parse. This can -; prevent configuration mistakes on the web server side. You should only limit -; FPM to .php extensions to prevent malicious users to use other extensions to -; execute php code. -; Note: set an empty value to allow all extensions. -; Default Value: .php -;security.limit_extensions = .php .php3 .php4 .php5 .php7 - -; Pass environment variables like LD_LIBRARY_PATH. All $VARIABLEs are taken from -; the current environment. -; Default Value: clean env -;env[HOSTNAME] = $HOSTNAME -;env[PATH] = /usr/local/bin:/usr/bin:/bin -;env[TMP] = /tmp -;env[TMPDIR] = /tmp -;env[TEMP] = /tmp - -; Additional php.ini defines, specific to this pool of workers. These settings -; overwrite the values previously defined in the php.ini. The directives are the -; same as the PHP SAPI: -; php_value/php_flag - you can set classic ini defines which can -; be overwritten from PHP call 'ini_set'. -; php_admin_value/php_admin_flag - these directives won't be overwritten by -; PHP call 'ini_set' -; For php_*flag, valid values are on, off, 1, 0, true, false, yes or no. - -; Defining 'extension' will load the corresponding shared extension from -; extension_dir. Defining 'disable_functions' or 'disable_classes' will not -; overwrite previously defined php.ini values, but will append the new value -; instead. - -; Note: path INI options can be relative and will be expanded with the prefix -; (pool, global or /usr/local) - -; Default Value: nothing is defined by default except the values in php.ini and -; specified at startup with the -d argument -;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com -;php_flag[display_errors] = off -;php_admin_value[error_log] = /var/log/fpm-php.www.log -;php_admin_flag[log_errors] = on -;php_admin_value[memory_limit] = 32M diff --git a/php8/8.2.28/conf/php.ini b/php8/8.2.28/conf/php.ini deleted file mode 100644 index b6b0aee69..000000000 --- a/php8/8.2.28/conf/php.ini +++ /dev/null @@ -1,1933 +0,0 @@ -[PHP] - -;;;;;;;;;;;;;;;;;;; -; About php.ini ; -;;;;;;;;;;;;;;;;;;; -; PHP's initialization file, generally called php.ini, is responsible for -; configuring many of the aspects of PHP's behavior. - -; PHP attempts to find and load this configuration from a number of locations. -; The following is a summary of its search order: -; 1. SAPI module specific location. -; 2. The PHPRC environment variable. (As of PHP 5.2.0) -; 3. A number of predefined registry keys on Windows (As of PHP 5.2.0) -; 4. Current working directory (except CLI) -; 5. The web server's directory (for SAPI modules), or directory of PHP -; (otherwise in Windows) -; 6. The directory from the --with-config-file-path compile time option, or the -; Windows directory (C:\windows or C:\winnt) -; See the PHP docs for more specific information. -; http://php.net/configuration.file - -; The syntax of the file is extremely simple. Whitespace and lines -; beginning with a semicolon are silently ignored (as you probably guessed). -; Section headers (e.g. [Foo]) are also silently ignored, even though -; they might mean something in the future. - -; Directives following the section heading [PATH=/www/mysite] only -; apply to PHP files in the /www/mysite directory. Directives -; following the section heading [HOST=www.example.com] only apply to -; PHP files served from www.example.com. Directives set in these -; special sections cannot be overridden by user-defined INI files or -; at runtime. Currently, [PATH=] and [HOST=] sections only work under -; CGI/FastCGI. -; http://php.net/ini.sections - -; Directives are specified using the following syntax: -; directive = value -; Directive names are *case sensitive* - foo=bar is different from FOO=bar. -; Directives are variables used to configure PHP or PHP extensions. -; There is no name validation. If PHP can't find an expected -; directive because it is not set or is mistyped, a default value will be used. - -; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one -; of the INI constants (On, Off, True, False, Yes, No and None) or an expression -; (e.g. E_ALL & ~E_NOTICE), a quoted string ("bar"), or a reference to a -; previously set variable or directive (e.g. ${foo}) - -; Expressions in the INI file are limited to bitwise operators and parentheses: -; | bitwise OR -; ^ bitwise XOR -; & bitwise AND -; ~ bitwise NOT -; ! boolean NOT - -; Boolean flags can be turned on using the values 1, On, True or Yes. -; They can be turned off using the values 0, Off, False or No. - -; An empty string can be denoted by simply not writing anything after the equal -; sign, or by using the None keyword: - -; foo = ; sets foo to an empty string -; foo = None ; sets foo to an empty string -; foo = "None" ; sets foo to the string 'None' - -; If you use constants in your value, and these constants belong to a -; dynamically loaded extension (either a PHP extension or a Zend extension), -; you may only use these constants *after* the line that loads the extension. - -;;;;;;;;;;;;;;;;;;; -; About this file ; -;;;;;;;;;;;;;;;;;;; -; PHP comes packaged with two INI files. One that is recommended to be used -; in production environments and one that is recommended to be used in -; development environments. - -; php.ini-production contains settings which hold security, performance and -; best practices at its core. But please be aware, these settings may break -; compatibility with older or less security conscience applications. We -; recommending using the production ini in production and testing environments. - -; php.ini-development is very similar to its production variant, except it is -; much more verbose when it comes to errors. We recommend using the -; development version only in development environments, as errors shown to -; application users can inadvertently leak otherwise secure information. - -; This is php.ini-production INI file. - -;;;;;;;;;;;;;;;;;;; -; Quick Reference ; -;;;;;;;;;;;;;;;;;;; -; The following are all the settings which are different in either the production -; or development versions of the INIs with respect to PHP's default behavior. -; Please see the actual settings later in the document for more details as to why -; we recommend these changes in PHP's behavior. - -; display_errors -; Default Value: On -; Development Value: On -; Production Value: Off - -; display_startup_errors -; Default Value: Off -; Development Value: On -; Production Value: Off - -; error_reporting -; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT - -; html_errors -; Default Value: On -; Development Value: On -; Production value: On - -; log_errors -; Default Value: Off -; Development Value: On -; Production Value: On - -; max_input_time -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) - -; output_buffering -; Default Value: Off -; Development Value: 4096 -; Production Value: 4096 - -; register_argc_argv -; Default Value: On -; Development Value: Off -; Production Value: Off - -; request_order -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" - -; session.gc_divisor -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 - -; session.sid_bits_per_character -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 - -; short_open_tag -; Default Value: On -; Development Value: Off -; Production Value: Off - -; track_errors -; Default Value: Off -; Development Value: On -; Production Value: Off - -; variables_order -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS" - -;;;;;;;;;;;;;;;;;;;; -; php.ini Options ; -;;;;;;;;;;;;;;;;;;;; -; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini" -;user_ini.filename = ".user.ini" - -; To disable this feature set this option to empty value -;user_ini.filename = - -; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes) -;user_ini.cache_ttl = 300 - -;;;;;;;;;;;;;;;;;;;; -; Language Options ; -;;;;;;;;;;;;;;;;;;;; - -; Enable the PHP scripting language engine under Apache. -; http://php.net/engine -engine = On - -; This directive determines whether or not PHP will recognize code between -; tags as PHP source which should be processed as such. It is -; generally recommended that should be used and that this feature -; should be disabled, as enabling it may result in issues when generating XML -; documents, however this remains supported for backward compatibility reasons. -; Note that this directive does not control the would work. -; http://php.net/syntax-highlighting -;highlight.string = #DD0000 -;highlight.comment = #FF9900 -;highlight.keyword = #007700 -;highlight.default = #0000BB -;highlight.html = #000000 - -; If enabled, the request will be allowed to complete even if the user aborts -; the request. Consider enabling it if executing long requests, which may end up -; being interrupted by the user or a browser timing out. PHP's default behavior -; is to disable this feature. -; http://php.net/ignore-user-abort -;ignore_user_abort = On - -; Determines the size of the realpath cache to be used by PHP. This value should -; be increased on systems where PHP opens many files to reflect the quantity of -; the file operations performed. -; http://php.net/realpath-cache-size -;realpath_cache_size = 4096k - -; Duration of time, in seconds for which to cache realpath information for a given -; file or directory. For systems with rarely changing files, consider increasing this -; value. -; http://php.net/realpath-cache-ttl -;realpath_cache_ttl = 120 - -; Enables or disables the circular reference collector. -; http://php.net/zend.enable-gc -zend.enable_gc = On - -; If enabled, scripts may be written in encodings that are incompatible with -; the scanner. CP936, Big5, CP949 and Shift_JIS are the examples of such -; encodings. To use this feature, mbstring extension must be enabled. -; Default: Off -;zend.multibyte = Off - -; Allows to set the default encoding for the scripts. This value will be used -; unless "declare(encoding=...)" directive appears at the top of the script. -; Only affects if zend.multibyte is set. -; Default: "" -;zend.script_encoding = - -;;;;;;;;;;;;;;;;; -; Miscellaneous ; -;;;;;;;;;;;;;;;;; - -; Decides whether PHP may expose the fact that it is installed on the server -; (e.g. by adding its signature to the Web server header). It is no security -; threat in any way, but it makes it possible to determine whether you use PHP -; on your server or not. -; http://php.net/expose-php -expose_php = Off - -;;;;;;;;;;;;;;;;;;; -; Resource Limits ; -;;;;;;;;;;;;;;;;;;; - -; Maximum execution time of each script, in seconds -; http://php.net/max-execution-time -; Note: This directive is hardcoded to 0 for the CLI SAPI -max_execution_time = 30 - -; Maximum amount of time each script may spend parsing request data. It's a good -; idea to limit this time on productions servers in order to eliminate unexpectedly -; long running scripts. -; Note: This directive is hardcoded to -1 for the CLI SAPI -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) -; http://php.net/max-input-time -max_input_time = 60 - -; Maximum input variable nesting level -; http://php.net/max-input-nesting-level -;max_input_nesting_level = 64 - -; How many GET/POST/COOKIE input variables may be accepted -; max_input_vars = 1000 - -; Maximum amount of memory a script may consume (128MB) -; http://php.net/memory-limit -memory_limit = 256M - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; Error handling and logging ; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -; This directive informs PHP of which errors, warnings and notices you would like -; it to take action for. The recommended way of setting values for this -; directive is through the use of the error level constants and bitwise -; operators. The error level constants are below here for convenience as well as -; some common settings and their meanings. -; By default, PHP is set to take action on all errors, notices and warnings EXCEPT -; those related to E_NOTICE and E_STRICT, which together cover best practices and -; recommended coding standards in PHP. For performance reasons, this is the -; recommend error reporting setting. Your production server shouldn't be wasting -; resources complaining about best practices and coding standards. That's what -; development servers and development settings are for. -; Note: The php.ini-development file has this setting as E_ALL. This -; means it pretty much reports everything which is exactly what you want during -; development and early testing. -; -; Error Level Constants: -; E_ALL - All errors and warnings (includes E_STRICT as of PHP 5.4.0) -; E_ERROR - fatal run-time errors -; E_RECOVERABLE_ERROR - almost fatal run-time errors -; E_WARNING - run-time warnings (non-fatal errors) -; E_PARSE - compile-time parse errors -; E_NOTICE - run-time notices (these are warnings which often result -; from a bug in your code, but it's possible that it was -; intentional (e.g., using an uninitialized variable and -; relying on the fact it is automatically initialized to an -; empty string) -; E_STRICT - run-time notices, enable to have PHP suggest changes -; to your code which will ensure the best interoperability -; and forward compatibility of your code -; E_CORE_ERROR - fatal errors that occur during PHP's initial startup -; E_CORE_WARNING - warnings (non-fatal errors) that occur during PHP's -; initial startup -; E_COMPILE_ERROR - fatal compile-time errors -; E_COMPILE_WARNING - compile-time warnings (non-fatal errors) -; E_USER_ERROR - user-generated error message -; E_USER_WARNING - user-generated warning message -; E_USER_NOTICE - user-generated notice message -; E_DEPRECATED - warn about code that will not work in future versions -; of PHP -; E_USER_DEPRECATED - user-generated deprecation warnings -; -; Common Values: -; E_ALL (Show all errors, warnings and notices including coding standards.) -; E_ALL & ~E_NOTICE (Show all errors, except for notices) -; E_ALL & ~E_NOTICE & ~E_STRICT (Show all errors, except for notices and coding standards warnings.) -; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors) -; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT -; http://php.net/error-reporting -error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT - -; This directive controls whether or not and where PHP will output errors, -; notices and warnings too. Error output is very useful during development, but -; it could be very dangerous in production environments. Depending on the code -; which is triggering the error, sensitive information could potentially leak -; out of your application such as database usernames and passwords or worse. -; For production environments, we recommend logging errors rather than -; sending them to STDOUT. -; Possible Values: -; Off = Do not display any errors -; stderr = Display errors to STDERR (affects only CGI/CLI binaries!) -; On or stdout = Display errors to STDOUT -; Default Value: On -; Development Value: On -; Production Value: Off -; http://php.net/display-errors -display_errors = Off - -; The display of errors which occur during PHP's startup sequence are handled -; separately from display_errors. PHP's default behavior is to suppress those -; errors from clients. Turning the display of startup errors on can be useful in -; debugging configuration problems. We strongly recommend you -; set this to 'off' for production servers. -; Default Value: Off -; Development Value: On -; Production Value: Off -; http://php.net/display-startup-errors -display_startup_errors = Off - -; Besides displaying errors, PHP can also log errors to locations such as a -; server-specific log, STDERR, or a location specified by the error_log -; directive found below. While errors should not be displayed on productions -; servers they should still be monitored and logging is a great way to do that. -; Default Value: Off -; Development Value: On -; Production Value: On -; http://php.net/log-errors -log_errors = On - -; Set maximum length of log_errors. In error_log information about the source is -; added. The default is 1024 and 0 allows to not apply any maximum length at all. -; http://php.net/log-errors-max-len -log_errors_max_len = 1024 - -; Do not log repeated messages. Repeated errors must occur in same file on same -; line unless ignore_repeated_source is set true. -; http://php.net/ignore-repeated-errors -ignore_repeated_errors = Off - -; Ignore source of message when ignoring repeated messages. When this setting -; is On you will not log errors with repeated messages from different files or -; source lines. -; http://php.net/ignore-repeated-source -ignore_repeated_source = Off - -; If this parameter is set to Off, then memory leaks will not be shown (on -; stdout or in the log). This has only effect in a debug compile, and if -; error reporting includes E_WARNING in the allowed list -; http://php.net/report-memleaks -report_memleaks = On - -; This setting is on by default. -;report_zend_debug = 0 - -; Store the last error/warning message in $php_errormsg (boolean). Setting this value -; to On can assist in debugging and is appropriate for development servers. It should -; however be disabled on production servers. -; Default Value: Off -; Development Value: On -; Production Value: Off -; http://php.net/track-errors -track_errors = Off - -; Turn off normal error reporting and emit XML-RPC error XML -; http://php.net/xmlrpc-errors -;xmlrpc_errors = 0 - -; An XML-RPC faultCode -;xmlrpc_error_number = 0 - -; When PHP displays or logs an error, it has the capability of formatting the -; error message as HTML for easier reading. This directive controls whether -; the error message is formatted as HTML or not. -; Note: This directive is hardcoded to Off for the CLI SAPI -; Default Value: On -; Development Value: On -; Production value: On -; http://php.net/html-errors -html_errors = On - -; If html_errors is set to On *and* docref_root is not empty, then PHP -; produces clickable error messages that direct to a page describing the error -; or function causing the error in detail. -; You can download a copy of the PHP manual from http://php.net/docs -; and change docref_root to the base URL of your local copy including the -; leading '/'. You must also specify the file extension being used including -; the dot. PHP's default behavior is to leave these settings empty, in which -; case no links to documentation are generated. -; Note: Never use this feature for production boxes. -; http://php.net/docref-root -; Examples -;docref_root = "/phpmanual/" - -; http://php.net/docref-ext -;docref_ext = .html - -; String to output before an error message. PHP's default behavior is to leave -; this setting blank. -; http://php.net/error-prepend-string -; Example: -;error_prepend_string = "" - -; String to output after an error message. PHP's default behavior is to leave -; this setting blank. -; http://php.net/error-append-string -; Example: -;error_append_string = "" - -; Log errors to specified file. PHP's default behavior is to leave this value -; empty. -; http://php.net/error-log -; Example: -;error_log = php_errors.log -; Log errors to syslog (Event Log on Windows). -error_log = /var/log/php/php.error.log - -;windows.show_crt_warning -; Default value: 0 -; Development value: 0 -; Production value: 0 - -;;;;;;;;;;;;;;;;; -; Data Handling ; -;;;;;;;;;;;;;;;;; - -; The separator used in PHP generated URLs to separate arguments. -; PHP's default setting is "&". -; http://php.net/arg-separator.output -; Example: -;arg_separator.output = "&" - -; List of separator(s) used by PHP to parse input URLs into variables. -; PHP's default setting is "&". -; NOTE: Every character in this directive is considered as separator! -; http://php.net/arg-separator.input -; Example: -;arg_separator.input = ";&" - -; This directive determines which super global arrays are registered when PHP -; starts up. G,P,C,E & S are abbreviations for the following respective super -; globals: GET, POST, COOKIE, ENV and SERVER. There is a performance penalty -; paid for the registration of these arrays and because ENV is not as commonly -; used as the others, ENV is not recommended on productions servers. You -; can still get access to the environment variables through getenv() should you -; need to. -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS"; -; http://php.net/variables-order -variables_order = "GPCS" - -; This directive determines which super global data (G,P & C) should be -; registered into the super global array REQUEST. If so, it also determines -; the order in which that data is registered. The values for this directive -; are specified in the same manner as the variables_order directive, -; EXCEPT one. Leaving this value empty will cause PHP to use the value set -; in the variables_order directive. It does not mean it will leave the super -; globals array REQUEST empty. -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" -; http://php.net/request-order -request_order = "GP" - -; This directive determines whether PHP registers $argv & $argc each time it -; runs. $argv contains an array of all the arguments passed to PHP when a script -; is invoked. $argc contains an integer representing the number of arguments -; that were passed when the script was invoked. These arrays are extremely -; useful when running scripts from the command line. When this directive is -; enabled, registering these variables consumes CPU cycles and memory each time -; a script is executed. For performance reasons, this feature should be disabled -; on production servers. -; Note: This directive is hardcoded to On for the CLI SAPI -; Default Value: On -; Development Value: Off -; Production Value: Off -; http://php.net/register-argc-argv -register_argc_argv = Off - -; When enabled, the ENV, REQUEST and SERVER variables are created when they're -; first used (Just In Time) instead of when the script starts. If these -; variables are not used within a script, having this directive on will result -; in a performance gain. The PHP directive register_argc_argv must be disabled -; for this directive to have any affect. -; http://php.net/auto-globals-jit -auto_globals_jit = On - -; Whether PHP will read the POST data. -; This option is enabled by default. -; Most likely, you won't want to disable this option globally. It causes $_POST -; and $_FILES to always be empty; the only way you will be able to read the -; POST data will be through the php://input stream wrapper. This can be useful -; to proxy requests or to process the POST data in a memory efficient fashion. -; http://php.net/enable-post-data-reading -;enable_post_data_reading = Off - -; Maximum size of POST data that PHP will accept. -; Its value may be 0 to disable the limit. It is ignored if POST data reading -; is disabled through enable_post_data_reading. -; http://php.net/post-max-size -post_max_size = 100M - -; Automatically add files before PHP document. -; http://php.net/auto-prepend-file -auto_prepend_file = - -; Automatically add files after PHP document. -; http://php.net/auto-append-file -auto_append_file = - -; By default, PHP will output a media type using the Content-Type header. To -; disable this, simply set it to be empty. -; -; PHP's built-in default media type is set to text/html. -; http://php.net/default-mimetype -default_mimetype = "text/html" - -; PHP's default character set is set to UTF-8. -; http://php.net/default-charset -default_charset = "UTF-8" - -; PHP internal character encoding is set to empty. -; If empty, default_charset is used. -; http://php.net/internal-encoding -;internal_encoding = - -; PHP input character encoding is set to empty. -; If empty, default_charset is used. -; http://php.net/input-encoding -;input_encoding = - -; PHP output character encoding is set to empty. -; If empty, default_charset is used. -; See also output_buffer. -; http://php.net/output-encoding -;output_encoding = - -;;;;;;;;;;;;;;;;;;;;;;;;; -; Paths and Directories ; -;;;;;;;;;;;;;;;;;;;;;;;;; - -; UNIX: "/path1:/path2" -;include_path = ".:/php/includes" -; -; Windows: "\path1;\path2" -;include_path = ".;c:\php\includes" -; -; PHP's default setting for include_path is ".;/path/to/php/pear" -; http://php.net/include-path - -; The root of the PHP pages, used only if nonempty. -; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root -; if you are running php as a CGI under any web server (other than IIS) -; see documentation for security issues. The alternate is to use the -; cgi.force_redirect configuration below -; http://php.net/doc-root -doc_root = - -; The directory under which PHP opens the script using /~username used only -; if nonempty. -; http://php.net/user-dir -user_dir = - -; Directory in which the loadable extensions (modules) reside. -; http://php.net/extension-dir -; extension_dir = "./" -; On windows: -; extension_dir = "ext" - -; Directory where the temporary files should be placed. -; Defaults to the system default (see sys_get_temp_dir) -; sys_temp_dir = "/tmp" - -; Whether or not to enable the dl() function. The dl() function does NOT work -; properly in multithreaded servers, such as IIS or Zeus, and is automatically -; disabled on them. -; http://php.net/enable-dl -enable_dl = Off - -; cgi.force_redirect is necessary to provide security running PHP as a CGI under -; most web servers. Left undefined, PHP turns this on by default. You can -; turn it off here AT YOUR OWN RISK -; **You CAN safely turn this off for IIS, in fact, you MUST.** -; http://php.net/cgi.force-redirect -;cgi.force_redirect = 1 - -; if cgi.nph is enabled it will force cgi to always sent Status: 200 with -; every request. PHP's default behavior is to disable this feature. -;cgi.nph = 1 - -; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape -; (iPlanet) web servers, you MAY need to set an environment variable name that PHP -; will look for to know it is OK to continue execution. Setting this variable MAY -; cause security issues, KNOW WHAT YOU ARE DOING FIRST. -; http://php.net/cgi.redirect-status-env -;cgi.redirect_status_env = - -; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's -; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok -; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting -; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting -; of zero causes PHP to behave as before. Default is 1. You should fix your scripts -; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. -; http://php.net/cgi.fix-pathinfo -;cgi.fix_pathinfo=1 - -; if cgi.discard_path is enabled, the PHP CGI binary can safely be placed outside -; of the web tree and people will not be able to circumvent .htaccess security. -; http://php.net/cgi.dicard-path -;cgi.discard_path=1 - -; FastCGI under IIS (on WINNT based OS) supports the ability to impersonate -; security tokens of the calling client. This allows IIS to define the -; security context that the request runs under. mod_fastcgi under Apache -; does not currently support this feature (03/17/2002) -; Set to 1 if running under IIS. Default is zero. -; http://php.net/fastcgi.impersonate -;fastcgi.impersonate = 1 - -; Disable logging through FastCGI connection. PHP's default behavior is to enable -; this feature. -;fastcgi.logging = 0 - -; cgi.rfc2616_headers configuration option tells PHP what type of headers to -; use when sending HTTP response code. If set to 0, PHP sends Status: header that -; is supported by Apache. When this option is set to 1, PHP will send -; RFC2616 compliant header. -; Default is zero. -; http://php.net/cgi.rfc2616-headers -;cgi.rfc2616_headers = 0 - -; cgi.check_shebang_line controls whether CGI PHP checks for line starting with #! -; (shebang) at the top of the running script. This line might be needed if the -; script support running both as stand-alone script and via PHP CGI<. PHP in CGI -; mode skips this line and ignores its content if this directive is turned on. -; http://php.net/cgi.check-shebang-line -;cgi.check_shebang_line=1 - -;;;;;;;;;;;;;;;; -; File Uploads ; -;;;;;;;;;;;;;;;; - -; Whether to allow HTTP file uploads. -; http://php.net/file-uploads -file_uploads = On - -; Temporary directory for HTTP uploaded files (will use system default if not -; specified). -; http://php.net/upload-tmp-dir -;upload_tmp_dir = - -; Maximum allowed size for uploaded files. -; http://php.net/upload-max-filesize -upload_max_filesize = 50M - -; Maximum number of files that can be uploaded via a single request -max_file_uploads = 20 - -;;;;;;;;;;;;;;;;;; -; Fopen wrappers ; -;;;;;;;;;;;;;;;;;; - -; Whether to allow the treatment of URLs (like http:// or ftp://) as files. -; http://php.net/allow-url-fopen -allow_url_fopen = On - -; Whether to allow include/require to open URLs (like http:// or ftp://) as files. -; http://php.net/allow-url-include -allow_url_include = Off - -; Define the anonymous ftp password (your email address). PHP's default setting -; for this is empty. -; http://php.net/from -;from="john@doe.com" - -; Define the User-Agent string. PHP's default setting for this is empty. -; http://php.net/user-agent -;user_agent="PHP" - -; Default timeout for socket based streams (seconds) -; http://php.net/default-socket-timeout -default_socket_timeout = 60 - -; If your scripts have to deal with files from Macintosh systems, -; or you are running on a Mac and need to deal with files from -; unix or win32 systems, setting this flag will cause PHP to -; automatically detect the EOL character in those files so that -; fgets() and file() will work regardless of the source of the file. -; http://php.net/auto-detect-line-endings -;auto_detect_line_endings = Off - -;;;;;;;;;;;;;;;;;;;;;; -; Dynamic Extensions ; -;;;;;;;;;;;;;;;;;;;;;; - -; If you wish to have an extension loaded automatically, use the following -; syntax: -; -; extension=modulename.extension -; -; For example, on Windows: -; -; extension=mysqli.dll -; -; ... or under UNIX: -; -; extension=mysqli.so -; -; ... or with a path: -; -; extension=/path/to/extension/mysqli.so -; -; If you only provide the name of the extension, PHP will look for it in its -; default extension directory. -; -; Windows Extensions -; Note that ODBC support is built in, so no dll is needed for it. -; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5+) -; extension folders as well as the separate PECL DLL download (PHP 5+). -; Be sure to appropriately set the extension_dir directive. -; -;extension=php_bz2.dll -;extension=php_curl.dll -;extension=php_fileinfo.dll -;extension=php_ftp.dll -;extension=php_gd2.dll -;extension=php_gettext.dll -;extension=php_gmp.dll -;extension=php_intl.dll -;extension=php_imap.dll -;extension=php_interbase.dll -;extension=php_ldap.dll -;extension=php_mbstring.dll -;extension=php_exif.dll ; Must be after mbstring as it depends on it -;extension=php_mysqli.dll -;extension=php_oci8_12c.dll ; Use with Oracle Database 12c Instant Client -;extension=php_openssl.dll -;extension=php_pdo_firebird.dll -;extension=php_pdo_mysql.dll -;extension=php_pdo_oci.dll -;extension=php_pdo_odbc.dll -;extension=php_pdo_pgsql.dll -;extension=php_pdo_sqlite.dll -;extension=php_pgsql.dll -;extension=php_shmop.dll - -; The MIBS data available in the PHP distribution must be installed. -; See http://www.php.net/manual/en/snmp.installation.php -;extension=php_snmp.dll - -;extension=php_soap.dll -;extension=php_sockets.dll -;extension=php_sqlite3.dll -;extension=php_tidy.dll -;extension=php_xmlrpc.dll -;extension=php_xsl.dll - -;;;;;;;;;;;;;;;;;;; -; Module Settings ; -;;;;;;;;;;;;;;;;;;; - -[CLI Server] -; Whether the CLI web server uses ANSI color coding in its terminal output. -cli_server.color = On - -[Date] -; Defines the default timezone used by the date functions -; http://php.net/date.timezone -date.timezone = Asia/Shanghai - -; http://php.net/date.default-latitude -;date.default_latitude = 31.7667 - -; http://php.net/date.default-longitude -;date.default_longitude = 35.2333 - -; http://php.net/date.sunrise-zenith -;date.sunrise_zenith = 90.583333 - -; http://php.net/date.sunset-zenith -;date.sunset_zenith = 90.583333 - -[filter] -; http://php.net/filter.default -;filter.default = unsafe_raw - -; http://php.net/filter.default-flags -;filter.default_flags = - -[iconv] -; Use of this INI entry is deprecated, use global input_encoding instead. -; If empty, default_charset or input_encoding or iconv.input_encoding is used. -; The precedence is: default_charset < intput_encoding < iconv.input_encoding -;iconv.input_encoding = - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;iconv.internal_encoding = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; If empty, default_charset or output_encoding or iconv.output_encoding is used. -; The precedence is: default_charset < output_encoding < iconv.output_encoding -; To use an output encoding conversion, iconv's output handler must be set -; otherwise output encoding conversion cannot be performed. -;iconv.output_encoding = - -[intl] -;intl.default_locale = -; This directive allows you to produce PHP errors when some error -; happens within intl functions. The value is the level of the error produced. -; Default is 0, which does not produce any errors. -;intl.error_level = E_WARNING -;intl.use_exceptions = 0 - -[sqlite3] -;sqlite3.extension_dir = - -[Pcre] -;PCRE library backtracking limit. -; http://php.net/pcre.backtrack-limit -;pcre.backtrack_limit=100000 - -;PCRE library recursion limit. -;Please note that if you set this value to a high number you may consume all -;the available process stack and eventually crash PHP (due to reaching the -;stack size limit imposed by the Operating System). -; http://php.net/pcre.recursion-limit -;pcre.recursion_limit=100000 - -;Enables or disables JIT compilation of patterns. This requires the PCRE -;library to be compiled with JIT support. -;pcre.jit=1 - -[Pdo] -; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off" -; http://php.net/pdo-odbc.connection-pooling -;pdo_odbc.connection_pooling=strict - -;pdo_odbc.db2_instance_name - -[Pdo_mysql] -; If mysqlnd is used: Number of cache slots for the internal result set cache -; http://php.net/pdo_mysql.cache_size -pdo_mysql.cache_size = 2000 - -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -; http://php.net/pdo_mysql.default-socket -pdo_mysql.default_socket= - -[Phar] -; http://php.net/phar.readonly -;phar.readonly = On - -; http://php.net/phar.require-hash -;phar.require_hash = On - -;phar.cache_list = - -[mail function] -; For Win32 only. -; http://php.net/smtp -SMTP = localhost -; http://php.net/smtp-port -smtp_port = 25 - -; For Win32 only. -; http://php.net/sendmail-from -;sendmail_from = me@example.com - -; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). -; http://php.net/sendmail-path -;sendmail_path = - -; Force the addition of the specified parameters to be passed as extra parameters -; to the sendmail binary. These parameters will always replace the value of -; the 5th parameter to mail(). -;mail.force_extra_parameters = - -; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename -mail.add_x_header = On - -; The path to a log file that will log all mail() calls. Log entries include -; the full path of the script, line number, To address and headers. -;mail.log = -; Log mail to syslog (Event Log on Windows). -;mail.log = syslog - -[ODBC] -; http://php.net/odbc.default-db -;odbc.default_db = Not yet implemented - -; http://php.net/odbc.default-user -;odbc.default_user = Not yet implemented - -; http://php.net/odbc.default-pw -;odbc.default_pw = Not yet implemented - -; Controls the ODBC cursor model. -; Default: SQL_CURSOR_STATIC (default). -;odbc.default_cursortype - -; Allow or prevent persistent links. -; http://php.net/odbc.allow-persistent -odbc.allow_persistent = On - -; Check that a connection is still valid before reuse. -; http://php.net/odbc.check-persistent -odbc.check_persistent = On - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/odbc.max-persistent -odbc.max_persistent = -1 - -; Maximum number of links (persistent + non-persistent). -1 means no limit. -; http://php.net/odbc.max-links -odbc.max_links = -1 - -; Handling of LONG fields. Returns number of bytes to variables. 0 means -; passthru. -; http://php.net/odbc.defaultlrl -odbc.defaultlrl = 4096 - -; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char. -; See the documentation on odbc_binmode and odbc_longreadlen for an explanation -; of odbc.defaultlrl and odbc.defaultbinmode -; http://php.net/odbc.defaultbinmode -odbc.defaultbinmode = 1 - -;birdstep.max_links = -1 - -[Interbase] -; Allow or prevent persistent links. -ibase.allow_persistent = 1 - -; Maximum number of persistent links. -1 means no limit. -ibase.max_persistent = -1 - -; Maximum number of links (persistent + non-persistent). -1 means no limit. -ibase.max_links = -1 - -; Default database name for ibase_connect(). -;ibase.default_db = - -; Default username for ibase_connect(). -;ibase.default_user = - -; Default password for ibase_connect(). -;ibase.default_password = - -; Default charset for ibase_connect(). -;ibase.default_charset = - -; Default timestamp format. -ibase.timestampformat = "%Y-%m-%d %H:%M:%S" - -; Default date format. -ibase.dateformat = "%Y-%m-%d" - -; Default time format. -ibase.timeformat = "%H:%M:%S" - -[MySQLi] - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/mysqli.max-persistent -mysqli.max_persistent = -1 - -; Allow accessing, from PHP's perspective, local files with LOAD DATA statements -; http://php.net/mysqli.allow_local_infile -;mysqli.allow_local_infile = On - -; Allow or prevent persistent links. -; http://php.net/mysqli.allow-persistent -mysqli.allow_persistent = On - -; Maximum number of links. -1 means no limit. -; http://php.net/mysqli.max-links -mysqli.max_links = -1 - -; If mysqlnd is used: Number of cache slots for the internal result set cache -; http://php.net/mysqli.cache_size -mysqli.cache_size = 2000 - -; Default port number for mysqli_connect(). If unset, mysqli_connect() will use -; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the -; compile-time value defined MYSQL_PORT (in that order). Win32 will only look -; at MYSQL_PORT. -; http://php.net/mysqli.default-port -mysqli.default_port = 3306 - -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -; http://php.net/mysqli.default-socket -mysqli.default_socket = - -; Default host for mysql_connect() (doesn't apply in safe mode). -; http://php.net/mysqli.default-host -mysqli.default_host = - -; Default user for mysql_connect() (doesn't apply in safe mode). -; http://php.net/mysqli.default-user -mysqli.default_user = - -; Default password for mysqli_connect() (doesn't apply in safe mode). -; Note that this is generally a *bad* idea to store passwords in this file. -; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw") -; and reveal this password! And of course, any users with read access to this -; file will be able to reveal the password as well. -; http://php.net/mysqli.default-pw -mysqli.default_pw = - -; Allow or prevent reconnect -mysqli.reconnect = Off - -[mysqlnd] -; Enable / Disable collection of general statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -; http://php.net/mysqlnd.collect_statistics -mysqlnd.collect_statistics = On - -; Enable / Disable collection of memory usage statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -; http://php.net/mysqlnd.collect_memory_statistics -mysqlnd.collect_memory_statistics = Off - -; Records communication from all extensions using mysqlnd to the specified log -; file. -; http://php.net/mysqlnd.debug -;mysqlnd.debug = - -; Defines which queries will be logged. -; http://php.net/mysqlnd.log_mask -;mysqlnd.log_mask = 0 - -; Default size of the mysqlnd memory pool, which is used by result sets. -; http://php.net/mysqlnd.mempool_default_size -;mysqlnd.mempool_default_size = 16000 - -; Size of a pre-allocated buffer used when sending commands to MySQL in bytes. -; http://php.net/mysqlnd.net_cmd_buffer_size -;mysqlnd.net_cmd_buffer_size = 2048 - -; Size of a pre-allocated buffer used for reading data sent by the server in -; bytes. -; http://php.net/mysqlnd.net_read_buffer_size -;mysqlnd.net_read_buffer_size = 32768 - -; Timeout for network requests in seconds. -; http://php.net/mysqlnd.net_read_timeout -;mysqlnd.net_read_timeout = 31536000 - -; SHA-256 Authentication Plugin related. File with the MySQL server public RSA -; key. -; http://php.net/mysqlnd.sha256_server_public_key -;mysqlnd.sha256_server_public_key = - -[OCI8] - -; Connection: Enables privileged connections using external -; credentials (OCI_SYSOPER, OCI_SYSDBA) -; http://php.net/oci8.privileged-connect -;oci8.privileged_connect = Off - -; Connection: The maximum number of persistent OCI8 connections per -; process. Using -1 means no limit. -; http://php.net/oci8.max-persistent -;oci8.max_persistent = -1 - -; Connection: The maximum number of seconds a process is allowed to -; maintain an idle persistent connection. Using -1 means idle -; persistent connections will be maintained forever. -; http://php.net/oci8.persistent-timeout -;oci8.persistent_timeout = -1 - -; Connection: The number of seconds that must pass before issuing a -; ping during oci_pconnect() to check the connection validity. When -; set to 0, each oci_pconnect() will cause a ping. Using -1 disables -; pings completely. -; http://php.net/oci8.ping-interval -;oci8.ping_interval = 60 - -; Connection: Set this to a user chosen connection class to be used -; for all pooled server requests with Oracle 11g Database Resident -; Connection Pooling (DRCP). To use DRCP, this value should be set to -; the same string for all web servers running the same application, -; the database pool must be configured, and the connection string must -; specify to use a pooled server. -;oci8.connection_class = - -; High Availability: Using On lets PHP receive Fast Application -; Notification (FAN) events generated when a database node fails. The -; database must also be configured to post FAN events. -;oci8.events = Off - -; Tuning: This option enables statement caching, and specifies how -; many statements to cache. Using 0 disables statement caching. -; http://php.net/oci8.statement-cache-size -;oci8.statement_cache_size = 20 - -; Tuning: Enables statement prefetching and sets the default number of -; rows that will be fetched automatically after statement execution. -; http://php.net/oci8.default-prefetch -;oci8.default_prefetch = 100 - -; Compatibility. Using On means oci_close() will not close -; oci_connect() and oci_new_connect() connections. -; http://php.net/oci8.old-oci-close-semantics -;oci8.old_oci_close_semantics = Off - -[PostgreSQL] -; Allow or prevent persistent links. -; http://php.net/pgsql.allow-persistent -pgsql.allow_persistent = On - -; Detect broken persistent links always with pg_pconnect(). -; Auto reset feature requires a little overheads. -; http://php.net/pgsql.auto-reset-persistent -pgsql.auto_reset_persistent = Off - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/pgsql.max-persistent -pgsql.max_persistent = -1 - -; Maximum number of links (persistent+non persistent). -1 means no limit. -; http://php.net/pgsql.max-links -pgsql.max_links = -1 - -; Ignore PostgreSQL backends Notice message or not. -; Notice message logging require a little overheads. -; http://php.net/pgsql.ignore-notice -pgsql.ignore_notice = 0 - -; Log PostgreSQL backends Notice message or not. -; Unless pgsql.ignore_notice=0, module cannot log notice message. -; http://php.net/pgsql.log-notice -pgsql.log_notice = 0 - -[bcmath] -; Number of decimal digits for all bcmath functions. -; http://php.net/bcmath.scale -bcmath.scale = 0 - -[browscap] -; http://php.net/browscap -;browscap = extra/browscap.ini - -[Session] -; Handler used to store/retrieve data. -; http://php.net/session.save-handler -session.save_handler = files - -; Argument passed to save_handler. In the case of files, this is the path -; where data files are stored. Note: Windows users have to change this -; variable in order to use PHP's session functions. -; -; The path can be defined as: -; -; session.save_path = "N;/path" -; -; where N is an integer. Instead of storing all the session files in -; /path, what this will do is use subdirectories N-levels deep, and -; store the session data in those directories. This is useful if -; your OS has problems with many files in one directory, and is -; a more efficient layout for servers that handle many sessions. -; -; NOTE 1: PHP will not create this directory structure automatically. -; You can use the script in the ext/session dir for that purpose. -; NOTE 2: See the section on garbage collection below if you choose to -; use subdirectories for session storage -; -; The file storage module creates files using mode 600 by default. -; You can change that by using -; -; session.save_path = "N;MODE;/path" -; -; where MODE is the octal representation of the mode. Note that this -; does not overwrite the process's umask. -; http://php.net/session.save-path -;session.save_path = "/tmp" - -; Whether to use strict session mode. -; Strict session mode does not accept uninitialized session ID and regenerate -; session ID if browser sends uninitialized session ID. Strict mode protects -; applications from session fixation via session adoption vulnerability. It is -; disabled by default for maximum compatibility, but enabling it is encouraged. -; https://wiki.php.net/rfc/strict_sessions -session.use_strict_mode = 0 - -; Whether to use cookies. -; http://php.net/session.use-cookies -session.use_cookies = 1 - -; http://php.net/session.cookie-secure -;session.cookie_secure = - -; This option forces PHP to fetch and use a cookie for storing and maintaining -; the session id. We encourage this operation as it's very helpful in combating -; session hijacking when not specifying and managing your own session id. It is -; not the be-all and end-all of session hijacking defense, but it's a good start. -; http://php.net/session.use-only-cookies -session.use_only_cookies = 1 - -; Name of the session (used as cookie name). -; http://php.net/session.name -session.name = PHPSESSID - -; Initialize session on request startup. -; http://php.net/session.auto-start -session.auto_start = 0 - -; Lifetime in seconds of cookie or, if 0, until browser is restarted. -; http://php.net/session.cookie-lifetime -session.cookie_lifetime = 0 - -; The path for which the cookie is valid. -; http://php.net/session.cookie-path -session.cookie_path = / - -; The domain for which the cookie is valid. -; http://php.net/session.cookie-domain -session.cookie_domain = - -; Whether or not to add the httpOnly flag to the cookie, which makes it inaccessible to browser scripting languages such as JavaScript. -; http://php.net/session.cookie-httponly -session.cookie_httponly = - -; Handler used to serialize data. php is the standard serializer of PHP. -; http://php.net/session.serialize-handler -session.serialize_handler = php - -; Defines the probability that the 'garbage collection' process is started -; on every session initialization. The probability is calculated by using -; gc_probability/gc_divisor. Where session.gc_probability is the numerator -; and gc_divisor is the denominator in the equation. Setting this value to 1 -; when the session.gc_divisor value is 100 will give you approximately a 1% chance -; the gc will run on any give request. -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; http://php.net/session.gc-probability -session.gc_probability = 1 - -; Defines the probability that the 'garbage collection' process is started on every -; session initialization. The probability is calculated by using the following equation: -; gc_probability/gc_divisor. Where session.gc_probability is the numerator and -; session.gc_divisor is the denominator in the equation. Setting this value to 1 -; when the session.gc_divisor value is 100 will give you approximately a 1% chance -; the gc will run on any give request. Increasing this value to 1000 will give you -; a 0.1% chance the gc will run on any give request. For high volume production servers, -; this is a more efficient approach. -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 -; http://php.net/session.gc-divisor -session.gc_divisor = 1000 - -; After this number of seconds, stored data will be seen as 'garbage' and -; cleaned up by the garbage collection process. -; http://php.net/session.gc-maxlifetime -session.gc_maxlifetime = 1440 - -; NOTE: If you are using the subdirectory option for storing session files -; (see session.save_path above), then garbage collection does *not* -; happen automatically. You will need to do your own garbage -; collection through a shell script, cron entry, or some other method. -; For example, the following script would is the equivalent of -; setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes): -; find /path/to/sessions -cmin +24 -type f | xargs rm - -; Check HTTP Referer to invalidate externally stored URLs containing ids. -; HTTP_REFERER has to contain this substring for the session to be -; considered as valid. -; http://php.net/session.referer-check -session.referer_check = - -; Set to {nocache,private,public,} to determine HTTP caching aspects -; or leave this empty to avoid sending anti-caching headers. -; http://php.net/session.cache-limiter -session.cache_limiter = nocache - -; Document expires after n minutes. -; http://php.net/session.cache-expire -session.cache_expire = 180 - -; trans sid support is disabled by default. -; Use of trans sid may risk your users' security. -; Use this option with caution. -; - User may send URL contains active session ID -; to other person via. email/irc/etc. -; - URL that contains active session ID may be stored -; in publicly accessible computer. -; - User may access your site with the same session ID -; always using URL stored in browser's history or bookmarks. -; http://php.net/session.use-trans-sid -session.use_trans_sid = 0 - -; Set session ID character length. This value could be between 22 to 256. -; Shorter length than default is supported only for compatibility reason. -; Users should use 32 or more chars. -; http://php.net/session.sid-length -; Default Value: 32 -; Development Value: 26 -; Production Value: 26 -session.sid_length = 26 - -; The URL rewriter will look for URLs in a defined set of HTML tags. -; is special; if you include them here, the rewriter will -; add a hidden field with the info which is otherwise appended -; to URLs. tag's action attribute URL will not be modified -; unless it is specified. -; Note that all valid entries require a "=", even if no value follows. -; Default Value: "a=href,area=href,frame=src,form=" -; Development Value: "a=href,area=href,frame=src,form=" -; Production Value: "a=href,area=href,frame=src,form=" -; http://php.net/url-rewriter.tags -session.trans_sid_tags = "a=href,area=href,frame=src,form=" - -; URL rewriter does not rewrite absolute URLs by default. -; To enable rewrites for absolute pathes, target hosts must be specified -; at RUNTIME. i.e. use ini_set() -; tags is special. PHP will check action attribute's URL regardless -; of session.trans_sid_tags setting. -; If no host is defined, HTTP_HOST will be used for allowed host. -; Example value: php.net,www.php.net,wiki.php.net -; Use "," for multiple hosts. No spaces are allowed. -; Default Value: "" -; Development Value: "" -; Production Value: "" -;session.trans_sid_hosts="" - -; Define how many bits are stored in each character when converting -; the binary hash data to something readable. -; Possible values: -; 4 (4 bits: 0-9, a-f) -; 5 (5 bits: 0-9, a-v) -; 6 (6 bits: 0-9, a-z, A-Z, "-", ",") -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 -; http://php.net/session.hash-bits-per-character -session.sid_bits_per_character = 5 - -; Enable upload progress tracking in $_SESSION -; Default Value: On -; Development Value: On -; Production Value: On -; http://php.net/session.upload-progress.enabled -;session.upload_progress.enabled = On - -; Cleanup the progress information as soon as all POST data has been read -; (i.e. upload completed). -; Default Value: On -; Development Value: On -; Production Value: On -; http://php.net/session.upload-progress.cleanup -;session.upload_progress.cleanup = On - -; A prefix used for the upload progress key in $_SESSION -; Default Value: "upload_progress_" -; Development Value: "upload_progress_" -; Production Value: "upload_progress_" -; http://php.net/session.upload-progress.prefix -;session.upload_progress.prefix = "upload_progress_" - -; The index name (concatenated with the prefix) in $_SESSION -; containing the upload progress information -; Default Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Development Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Production Value: "PHP_SESSION_UPLOAD_PROGRESS" -; http://php.net/session.upload-progress.name -;session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS" - -; How frequently the upload progress should be updated. -; Given either in percentages (per-file), or in bytes -; Default Value: "1%" -; Development Value: "1%" -; Production Value: "1%" -; http://php.net/session.upload-progress.freq -;session.upload_progress.freq = "1%" - -; The minimum delay between updates, in seconds -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; http://php.net/session.upload-progress.min-freq -;session.upload_progress.min_freq = "1" - -; Only write session data when session data is changed. Enabled by default. -; http://php.net/session.lazy-write -;session.lazy_write = On - -[Assertion] -; Switch whether to compile assertions at all (to have no overhead at run-time) -; -1: Do not compile at all -; 0: Jump over assertion at run-time -; 1: Execute assertions -; Changing from or to a negative value is only possible in php.ini! (For turning assertions on and off at run-time, see assert.active, when zend.assertions = 1) -; Default Value: 1 -; Development Value: 1 -; Production Value: -1 -; http://php.net/zend.assertions -zend.assertions = -1 - -; Assert(expr); active by default. -; http://php.net/assert.active -;assert.active = On - -; Throw an AssertationException on failed assertions -; http://php.net/assert.exception -;assert.exception = On - -; Issue a PHP warning for each failed assertion. (Overridden by assert.exception if active) -; http://php.net/assert.warning -;assert.warning = On - -; Don't bail out by default. -; http://php.net/assert.bail -;assert.bail = Off - -; User-function to be called if an assertion fails. -; http://php.net/assert.callback -;assert.callback = 0 - -; Eval the expression with current error_reporting(). Set to true if you want -; error_reporting(0) around the eval(). -; http://php.net/assert.quiet-eval -;assert.quiet_eval = 0 - -[COM] -; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs -; http://php.net/com.typelib-file -;com.typelib_file = - -; allow Distributed-COM calls -; http://php.net/com.allow-dcom -;com.allow_dcom = true - -; autoregister constants of a components typlib on com_load() -; http://php.net/com.autoregister-typelib -;com.autoregister_typelib = true - -; register constants casesensitive -; http://php.net/com.autoregister-casesensitive -;com.autoregister_casesensitive = false - -; show warnings on duplicate constant registrations -; http://php.net/com.autoregister-verbose -;com.autoregister_verbose = true - -; The default character set code-page to use when passing strings to and from COM objects. -; Default: system ANSI code page -;com.code_page= - -[mbstring] -; language for internal character representation. -; This affects mb_send_mail() and mbstring.detect_order. -; http://php.net/mbstring.language -;mbstring.language = Japanese - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; internal/script encoding. -; Some encoding cannot work as internal encoding. (e.g. SJIS, BIG5, ISO-2022-*) -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;mbstring.internal_encoding = - -; Use of this INI entry is deprecated, use global input_encoding instead. -; http input encoding. -; mbstring.encoding_traslation = On is needed to use this setting. -; If empty, default_charset or input_encoding or mbstring.input is used. -; The precedence is: default_charset < intput_encoding < mbsting.http_input -; http://php.net/mbstring.http-input -;mbstring.http_input = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; http output encoding. -; mb_output_handler must be registered as output buffer to function. -; If empty, default_charset or output_encoding or mbstring.http_output is used. -; The precedence is: default_charset < output_encoding < mbstring.http_output -; To use an output encoding conversion, mbstring's output handler must be set -; otherwise output encoding conversion cannot be performed. -; http://php.net/mbstring.http-output -;mbstring.http_output = - -; enable automatic encoding translation according to -; mbstring.internal_encoding setting. Input chars are -; converted to internal encoding by setting this to On. -; Note: Do _not_ use automatic encoding translation for -; portable libs/applications. -; http://php.net/mbstring.encoding-translation -;mbstring.encoding_translation = Off - -; automatic encoding detection order. -; "auto" detect order is changed according to mbstring.language -; http://php.net/mbstring.detect-order -;mbstring.detect_order = auto - -; substitute_character used when character cannot be converted -; one from another -; http://php.net/mbstring.substitute-character -;mbstring.substitute_character = none - -; overload(replace) single byte functions by mbstring functions. -; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(), -; etc. Possible values are 0,1,2,4 or combination of them. -; For example, 7 for overload everything. -; 0: No overload -; 1: Overload mail() function -; 2: Overload str*() functions -; 4: Overload ereg*() functions -; http://php.net/mbstring.func-overload -;mbstring.func_overload = 0 - -; enable strict encoding detection. -; Default: Off -;mbstring.strict_detection = On - -; This directive specifies the regex pattern of content types for which mb_output_handler() -; is activated. -; Default: mbstring.http_output_conv_mimetype=^(text/|application/xhtml\+xml) -;mbstring.http_output_conv_mimetype= - -[gd] -; Tell the jpeg decode to ignore warnings and try to create -; a gd image. The warning will then be displayed as notices -; disabled by default -; http://php.net/gd.jpeg-ignore-warning -;gd.jpeg_ignore_warning = 1 - -[exif] -; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS. -; With mbstring support this will automatically be converted into the encoding -; given by corresponding encode setting. When empty mbstring.internal_encoding -; is used. For the decode settings you can distinguish between motorola and -; intel byte order. A decode setting cannot be empty. -; http://php.net/exif.encode-unicode -;exif.encode_unicode = ISO-8859-15 - -; http://php.net/exif.decode-unicode-motorola -;exif.decode_unicode_motorola = UCS-2BE - -; http://php.net/exif.decode-unicode-intel -;exif.decode_unicode_intel = UCS-2LE - -; http://php.net/exif.encode-jis -;exif.encode_jis = - -; http://php.net/exif.decode-jis-motorola -;exif.decode_jis_motorola = JIS - -; http://php.net/exif.decode-jis-intel -;exif.decode_jis_intel = JIS - -[Tidy] -; The path to a default tidy configuration file to use when using tidy -; http://php.net/tidy.default-config -;tidy.default_config = /usr/local/lib/php/default.tcfg - -; Should tidy clean and repair output automatically? -; WARNING: Do not use this option if you are generating non-html content -; such as dynamic images -; http://php.net/tidy.clean-output -tidy.clean_output = Off - -[soap] -; Enables or disables WSDL caching feature. -; http://php.net/soap.wsdl-cache-enabled -soap.wsdl_cache_enabled=1 - -; Sets the directory name where SOAP extension will put cache files. -; http://php.net/soap.wsdl-cache-dir -soap.wsdl_cache_dir="/tmp" - -; (time to live) Sets the number of second while cached file will be used -; instead of original one. -; http://php.net/soap.wsdl-cache-ttl -soap.wsdl_cache_ttl=86400 - -; Sets the size of the cache limit. (Max. number of WSDL files to cache) -soap.wsdl_cache_limit = 5 - -[sysvshm] -; A default size of the shared memory segment -;sysvshm.init_mem = 10000 - -[ldap] -; Sets the maximum number of open links or -1 for unlimited. -ldap.max_links = -1 - -[dba] -;dba.default_handler= - -[opcache] -; Determines if Zend OPCache is enabled -;opcache.enable=1 - -; Determines if Zend OPCache is enabled for the CLI version of PHP -;opcache.enable_cli=1 - -; The OPcache shared memory storage size. -;opcache.memory_consumption=128 - -; The amount of memory for interned strings in Mbytes. -;opcache.interned_strings_buffer=8 - -; The maximum number of keys (scripts) in the OPcache hash table. -; Only numbers between 200 and 1000000 are allowed. -;opcache.max_accelerated_files=10000 - -; The maximum percentage of "wasted" memory until a restart is scheduled. -;opcache.max_wasted_percentage=5 - -; When this directive is enabled, the OPcache appends the current working -; directory to the script key, thus eliminating possible collisions between -; files with the same name (basename). Disabling the directive improves -; performance, but may break existing applications. -;opcache.use_cwd=1 - -; When disabled, you must reset the OPcache manually or restart the -; webserver for changes to the filesystem to take effect. -;opcache.validate_timestamps=1 - -; How often (in seconds) to check file timestamps for changes to the shared -; memory storage allocation. ("1" means validate once per second, but only -; once per request. "0" means always validate) -;opcache.revalidate_freq=2 - -; Enables or disables file search in include_path optimization -;opcache.revalidate_path=0 - -; If disabled, all PHPDoc comments are dropped from the code to reduce the -; size of the optimized code. -;opcache.save_comments=1 - -; If enabled, a fast shutdown sequence is used for the accelerated code -; Depending on the used Memory Manager this may cause some incompatibilities. -;opcache.fast_shutdown=0 - -; Allow file existence override (file_exists, etc.) performance feature. -;opcache.enable_file_override=0 - -; A bitmask, where each bit enables or disables the appropriate OPcache -; passes -;opcache.optimization_level=0xffffffff - -;opcache.inherited_hack=1 -;opcache.dups_fix=0 - -; The location of the OPcache blacklist file (wildcards allowed). -; Each OPcache blacklist file is a text file that holds the names of files -; that should not be accelerated. The file format is to add each filename -; to a new line. The filename may be a full path or just a file prefix -; (i.e., /var/www/x blacklists all the files and directories in /var/www -; that start with 'x'). Line starting with a ; are ignored (comments). -;opcache.blacklist_filename= - -; Allows exclusion of large files from being cached. By default all files -; are cached. -;opcache.max_file_size=0 - -; Check the cache checksum each N requests. -; The default value of "0" means that the checks are disabled. -;opcache.consistency_checks=0 - -; How long to wait (in seconds) for a scheduled restart to begin if the cache -; is not being accessed. -;opcache.force_restart_timeout=180 - -; OPcache error_log file name. Empty string assumes "stderr". -;opcache.error_log= - -; All OPcache errors go to the Web server log. -; By default, only fatal errors (level 0) or errors (level 1) are logged. -; You can also enable warnings (level 2), info messages (level 3) or -; debug messages (level 4). -;opcache.log_verbosity_level=1 - -; Preferred Shared Memory back-end. Leave empty and let the system decide. -;opcache.preferred_memory_model= - -; Protect the shared memory from unexpected writing during script execution. -; Useful for internal debugging only. -;opcache.protect_memory=0 - -; Allows calling OPcache API functions only from PHP scripts which path is -; started from specified string. The default "" means no restriction -;opcache.restrict_api= - -; Mapping base of shared memory segments (for Windows only). All the PHP -; processes have to map shared memory into the same address space. This -; directive allows to manually fix the "Unable to reattach to base address" -; errors. -;opcache.mmap_base= - -; Enables and sets the second level cache directory. -; It should improve performance when SHM memory is full, at server restart or -; SHM reset. The default "" disables file based caching. -;opcache.file_cache= - -; Enables or disables opcode caching in shared memory. -;opcache.file_cache_only=0 - -; Enables or disables checksum validation when script loaded from file cache. -;opcache.file_cache_consistency_checks=1 - -; Implies opcache.file_cache_only=1 for a certain process that failed to -; reattach to the shared memory (for Windows only). Explicitly enabled file -; cache is required. -;opcache.file_cache_fallback=1 - -; Enables or disables copying of PHP code (text segment) into HUGE PAGES. -; This should improve performance, but requires appropriate OS configuration. -;opcache.huge_code_pages=1 - -; Validate cached file permissions. -;opcache.validate_permission=0 - -; Prevent name collisions in chroot'ed environment. -;opcache.validate_root=0 - -[curl] -; A default value for the CURLOPT_CAINFO option. This is required to be an -; absolute path. -;curl.cainfo = - -[openssl] -; The location of a Certificate Authority (CA) file on the local filesystem -; to use when verifying the identity of SSL/TLS peers. Most users should -; not specify a value for this directive as PHP will attempt to use the -; OS-managed cert stores in its absence. If specified, this value may still -; be overridden on a per-stream basis via the "cafile" SSL stream context -; option. -;openssl.cafile= - -; If openssl.cafile is not specified or if the CA file is not found, the -; directory pointed to by openssl.capath is searched for a suitable -; certificate. This value must be a correctly hashed certificate directory. -; Most users should not specify a value for this directive as PHP will -; attempt to use the OS-managed cert stores in its absence. If specified, -; this value may still be overridden on a per-stream basis via the "capath" -; SSL stream context option. -;openssl.capath= - -; Local Variables: -; tab-width: 4 -; End: - -[XDebug] -xdebug.remote_enable = 1 -xdebug.remote_handler = "dbgp" -; Set to host.docker.internal on Mac and Windows, otherwise, set to host real ip -xdebug.remote_host = host.docker.internal -;xdebug.remote_port = 9000 -xdebug.remote_log = /var/log/php/xdebug.log - -SERVER_ENV=develop - -yaf.use_spl_autoload=1 - -[xhprof] -;xhprof.output_dir = /var/log/php/xhprof.log \ No newline at end of file diff --git a/php8/8.2.28/data.yml b/php8/8.2.28/data.yml deleted file mode 100755 index deeede5ad..000000000 --- a/php8/8.2.28/data.yml +++ /dev/null @@ -1,18 +0,0 @@ -additionalProperties: - formFields: - - default: 9000 - envKey: PANEL_APP_PORT_HTTP - labelEn: PHP-FPM Port - labelZh: PHP-FPM 端口 - label: - en: PHP-FPM Port - ja: PHP-FPM ポート - ms: Port PHP-FPM - pt-br: Porta PHP-FPM - ru: Порт PHP-FPM - ko: PHP-FPM 포트 - zh-Hant: PHP-FPM 埠 - zh: PHP-FPM 端口 - required: true - rule: paramPort - type: number diff --git a/php8/8.2.28/docker-compose.yml b/php8/8.2.28/docker-compose.yml deleted file mode 100644 index dc530c778..000000000 --- a/php8/8.2.28/docker-compose.yml +++ /dev/null @@ -1,21 +0,0 @@ -services: - php: - image: ${IMAGE_NAME} - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - volumes: - - ${PANEL_WEBSITE_DIR}:/www/ - - ./conf/php.ini:/usr/local/etc/php/php.ini - - ./conf/php-fpm.conf:/usr/local/etc/php-fpm.d/www.conf - - ./log:/var/log/php - - ./composer:/tmp/composer - - ./extensions:/php/extensions - ports: - - 127.0.0.1:${PANEL_APP_PORT_HTTP}:9000 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/php8/8.3.20/build/.env b/php8/8.3.20/build/.env deleted file mode 100644 index 58b40dc1d..000000000 --- a/php8/8.3.20/build/.env +++ /dev/null @@ -1,14 +0,0 @@ -CONTAINER_PACKAGE_URL=mirrors.ustc.edu.cn - -PHP_VERSION=8.3.20 -PHP_PHP_CONF_FILE=./php/php.ini -PHP_FPM_CONF_FILE=./php/php-fpm.conf -PHP_LOG_DIR=./logs/php -PHP_EXTENSIONS= - -SOURCE_DIR=./www - -TZ=Asia/Shanghai -DATA_DIR=./data -IMAGE_NAME=1panel-php:8.3.20 -INSTALL_SUPERVISOR=0 \ No newline at end of file diff --git a/php8/8.3.20/build/config.json b/php8/8.3.20/build/config.json deleted file mode 100644 index 28ee3c56b..000000000 --- a/php8/8.3.20/build/config.json +++ /dev/null @@ -1,134 +0,0 @@ -{ - "formFields": [ - { - "type": "select", - "multiple": true, - "labelZh": "扩展", - "labelEn": "Extensions", - "default": ["mysqli","pdo_mysql"], - "values": [ - { - "label": "opcache", - "value": "opcache" - }, - { - "label": "memcached", - "value": "memcached" - }, - { - "label": "memcache", - "value": "memcache" - }, - { - "label": "redis", - "value": "redis" - }, - { - "label": "mcrypt", - "value": "mcrypt" - }, - { - "label": "xdebug", - "value": "xdebug" - }, - { - "label": "imap", - "value": "imap" - }, - { - "label": "exif", - "value": "exif" - }, - { - "label": "intl", - "value": "intl" - }, - { - "label": "swoole", - "value": "swoole" - }, - { - "label": "yaf", - "value": "yaf" - }, - { - "label": "pgsql", - "value": "pgsql" - }, - { - "label": "pdo_pgsql", - "value": "pdo_pgsql" - }, - { - "label": "snmp", - "value": "snmp" - }, { - "label": "ldap", - "value": "ldap" - }, - { - "label": "pspell", - "value": "pspell" - }, - { - "label": "bz2", - "value": "bz2" - }, - { - "label": "sysvshm", - "value": "sysvshm" - }, - { - "label": "calendar", - "value": "calendar" - }, - { - "label": "gmp", - "value": "gmp" - }, - { - "label": "sysvmsg", - "value": "sysvmsg" - }, - { - "label": "igbinary", - "value": "igbinary" - }, - { - "label": "mysqli", - "value": "mysqli" - }, - { - "label": "pdo_mysql", - "value": "pdo_mysql" - }, - { - "label": "mbstring", - "value": "mbstring" - }, - { - "label": "gd", - "value": "gd" - }, - { - "label": "ioncube_loader", - "value": "ioncube_loader" - }, - { - "label": "curl", - "value": "curl" - }, - { - "label": "sg15", - "value": "sourceguardian" - }, - { - "label": "imagick", - "value": "imagick" - } - ], - "envKey": "PHP_EXTENSIONS", - "edit": true - } - ] -} \ No newline at end of file diff --git a/php8/8.3.20/build/docker-compose.yml b/php8/8.3.20/build/docker-compose.yml deleted file mode 100644 index 21e9fa737..000000000 --- a/php8/8.3.20/build/docker-compose.yml +++ /dev/null @@ -1,19 +0,0 @@ -services: - 1panel-php: - build: - context: ./php - args: - PHP_IMAGE: php:${PHP_VERSION}-fpm-alpine - CONTAINER_PACKAGE_URL: ${CONTAINER_PACKAGE_URL} - PHP_EXTENSIONS: ${PHP_EXTENSIONS} - TZ: ${TZ} - image: ${IMAGE_NAME} - volumes: - - ${SOURCE_DIR}:/www/ - - ${PHP_PHP_CONF_FILE}:/usr/local/etc/php/php.ini - - ${PHP_FPM_CONF_FILE}:/usr/local/etc/php-fpm.d/www.conf - - ${PHP_LOG_DIR}:/var/log/php - - ${DATA_DIR}/composer:/tmp/composer - restart: always - cap_add: - - SYS_PTRACE diff --git a/php8/8.3.20/build/php/Dockerfile b/php8/8.3.20/build/php/Dockerfile deleted file mode 100644 index e0e0cb64c..000000000 --- a/php8/8.3.20/build/php/Dockerfile +++ /dev/null @@ -1,39 +0,0 @@ -ARG PHP_IMAGE -FROM ${PHP_IMAGE} - -ARG TZ -ARG PHP_EXTENSIONS -ARG CONTAINER_PACKAGE_URL - - -RUN if [ $CONTAINER_PACKAGE_URL ] ; then sed -i "s/dl-cdn.alpinelinux.org/${CONTAINER_PACKAGE_URL}/g" /etc/apk/repositories ; fi - -ADD ./extensions/install-php-extensions /usr/local/bin/ -RUN chmod uga+x /usr/local/bin/install-php-extensions - -COPY ./extensions /tmp/extensions -WORKDIR /tmp/extensions -RUN chmod +x install.sh \ - && sh install.sh \ - && rm -rf /tmp/extensions - - -RUN apk --no-cache add tzdata \ - && cp "/usr/share/zoneinfo/$TZ" /etc/localtime \ - && echo "$TZ" > /etc/timezone - -# Fix: https://github.com/docker-library/php/issues/240 -RUN apk add gnu-libiconv libstdc++ --no-cache --repository http://${CONTAINER_PACKAGE_URL}/alpine/edge/community/ --allow-untrusted -ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so php - - -# Install composer and change it's cache home -RUN curl -o /usr/bin/composer https://mirrors.aliyun.com/composer/composer.phar \ - && chmod +x /usr/bin/composer -ENV COMPOSER_HOME=/tmp/composer - -# php image's www-data user uid & gid are 82, change them to 1000 (primary user) -RUN apk --no-cache add shadow && usermod -u 1000 www-data && groupmod -g 1000 www-data - - -WORKDIR /www \ No newline at end of file diff --git a/php8/8.3.20/build/php/extensions/event-3.0.8.tgz b/php8/8.3.20/build/php/extensions/event-3.0.8.tgz deleted file mode 100644 index e7a471bbe..000000000 Binary files a/php8/8.3.20/build/php/extensions/event-3.0.8.tgz and /dev/null differ diff --git a/php8/8.3.20/build/php/extensions/imagick-3.7.0.tgz b/php8/8.3.20/build/php/extensions/imagick-3.7.0.tgz deleted file mode 100644 index 80d674cda..000000000 Binary files a/php8/8.3.20/build/php/extensions/imagick-3.7.0.tgz and /dev/null differ diff --git a/php8/8.3.20/build/php/extensions/install-composer.sh b/php8/8.3.20/build/php/extensions/install-composer.sh deleted file mode 100644 index 34074732d..000000000 --- a/php8/8.3.20/build/php/extensions/install-composer.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/sh - -# The latest mirror's composer version only support for PHP 7.2.5 -# And if your PHP version is lesser than that, will be download supported version. -supportLatest=$(php -r "echo version_compare(PHP_VERSION, '7.2.5', '>');") - -if [ "$supportLatest" -eq "1" ]; then - curl -o /usr/bin/composer https://mirrors.aliyun.com/composer/composer.phar \ - && chmod +x /usr/bin/composer -else - curl -o /tmp/composer-setup.php https://getcomposer.org/installer \ - && php /tmp/composer-setup.php --install-dir=/tmp \ - && mv /tmp/composer.phar /usr/bin/composer \ - && chmod +x /usr/bin/composer \ - && rm -rf /tmp/composer-setup.php -fi \ No newline at end of file diff --git a/php8/8.3.20/build/php/extensions/install-php-extensions b/php8/8.3.20/build/php/extensions/install-php-extensions deleted file mode 100644 index ffe08e487..000000000 --- a/php8/8.3.20/build/php/extensions/install-php-extensions +++ /dev/null @@ -1,5156 +0,0 @@ -#!/bin/sh - -# This script wraps docker-php-ext-install, properly configuring the system. -# -# Copyright (c) Michele Locati, 2018-2023 -# -# Source: https://github.com/mlocati/docker-php-extension-installer -# -# License: MIT - see https://github.com/mlocati/docker-php-extension-installer/blob/master/LICENSE - -# Let's set a sane environment -set -o errexit -set -o nounset - -if test "${IPE_DEBUG:-}" = "1"; then - set -x -fi - -if ! which docker-php-ext-configure >/dev/null || ! which docker-php-ext-enable >/dev/null || ! which docker-php-ext-install >/dev/null || ! which docker-php-source >/dev/null; then - printf 'The script %s is meant to be used with official Docker PHP Images - https://hub.docker.com/_/php\n' "$0" >&2 - exit 1 -fi - -IPE_VERSION=2.7.31 - -StandWithUkraine() { - if test -t 1 && ! grep -Eq '^VERSION=.*jessie' /etc/os-release; then - printf '\e[37;44m#StandWith\e[30;43mUkraine\e[0m\n' - else - printf '#StandWithUkraine\n' - fi -} - -if test "$IPE_VERSION" = master && test "${CI:-}" != true; then - cat <&2 - exit 1 - fi - DISTRO="$(cat /etc/os-release | grep -E ^ID= | cut -d = -f 2)" - DISTRO_VERSION_NUMBER="$(cat /etc/os-release | grep -E ^VERSION_ID= | cut -d = -f 2 | cut -d '"' -f 2 | cut -d . -f 1,2)" - DISTRO_VERSION="$(printf '%s@%s' $DISTRO $DISTRO_VERSION_NUMBER)" - DISTRO_MAJMIN_VERSION="$(echo "$DISTRO_VERSION_NUMBER" | awk -F. '{print $1*100+$2}')" -} - -# Set: -# - PHP_MAJMIN_VERSION: Major-Minor version, format MMmm (example 800 for PHP 8.0.1) -# - PHP_MAJDOTMIN_VERSION: Major-Minor version, format M.m (example 8.0 for PHP 8.0.1) -# - PHP_MAJMINPAT_VERSION: Major-Minor-Patch version, format MMmmpp (example 80001 for PHP 8.0.1) variables containing integers value -# - PHP_MAJDOTMINDOTPAT_VERSION: Major-Minor-Patch version, format M.m.p (example 8.0.1 for PHP 8.0.1) -# - PHP_THREADSAFE: 1 if PHP is thread-safe (TS), 0 if not thread-safe (NTS) -# - PHP_DEBUGBUILD: 1 if PHP is debug build (configured with "--enable-debug"), 0 otherwise -# - PHP_BITS: 32 if PHP is compiled for 32-bit, 64 if 64-bit -# - PHP_EXTDIR: the absolute path where the PHP extensions reside -setPHPVersionVariables() { - PHP_MAJDOTMINDOTPAT_VERSION="$(php-config --version)" - PHP_MAJMIN_VERSION=$(printf '%s' "$PHP_MAJDOTMINDOTPAT_VERSION" | awk -F. '{print $1*100+$2}') - PHP_MAJDOTMIN_VERSION=$(printf '%s' "$PHP_MAJDOTMINDOTPAT_VERSION" | cut -d. -f1-2) - PHP_MAJMINPAT_VERSION=$(printf '%s' "$PHP_MAJDOTMINDOTPAT_VERSION" | awk -F. '{print $1*10000+$2*100+$3}') - PHP_THREADSAFE=$(php -n -r 'echo ZEND_THREAD_SAFE ? 1 : 0;') - PHP_DEBUGBUILD=$(php -n -r 'echo ZEND_DEBUG_BUILD ? 1 : 0;') - PHP_BITS=$(php -n -r 'echo PHP_INT_SIZE * 8;') - PHP_EXTDIR="$(php -d display_errors=stderr -r 'echo realpath(ini_get("extension_dir"));')" -} - -# Fix apt-get being very slow on Debian Jessie -# See https://bugs.launchpad.net/ubuntu/+source/apt/+bug/1332440 -fixMaxOpenFiles() { - fixMaxOpenFiles_cur=$(ulimit -n 2>/dev/null || echo 0) - if test "$fixMaxOpenFiles_cur" -gt 10000; then - ulimit -n 10000 - fi -} - -# Get the directory containing the compiled PHP extensions -# -# Output: -# The absolute path of the extensions dir -getPHPExtensionsDir() { - php -i | grep -E '^extension_dir' | head -n1 | tr -s '[:space:]*=>[:space:]*' '|' | cut -d'|' -f2 -} - -# Normalize the name of a PHP extension -# -# Arguments: -# $1: the name of the module to be normalized -# -# Output: -# The normalized module name -normalizePHPModuleName() { - normalizePHPModuleName_name="$1" - case "$normalizePHPModuleName_name" in - *A* | *B* | *C* | *D* | *E* | *F* | *G* | *H* | *I* | *J* | *K* | *L* | *M* | *N* | *O* | *P* | *Q* | *R* | *S* | *T* | *U* | *V* | *W* | *X* | *Y* | *Z*) - normalizePHPModuleName_name="$(LC_CTYPE=C printf '%s' "$normalizePHPModuleName_name" | tr '[:upper:]' '[:lower:]')" - ;; - esac - case "$normalizePHPModuleName_name" in - datadog_trace) - normalizePHPModuleName_name=ddtrace - ;; - ioncube | ioncube\ loader) - normalizePHPModuleName_name='ioncube_loader' - ;; - pecl_http) - normalizePHPModuleName_name='http' - ;; - zend\ opcache) - normalizePHPModuleName_name='opcache' - ;; - libsodium) - if test $PHP_MAJMIN_VERSION -ge 700; then - normalizePHPModuleName_name='sodium' - fi - ;; - sodium) - if test $PHP_MAJMIN_VERSION -lt 700; then - normalizePHPModuleName_name='libsodium' - fi - ;; - *\ *) - printf '### WARNING Unrecognized module name: %s ###\n' "$1" >&2 - ;; - esac - printf '%s' "$normalizePHPModuleName_name" -} - -# Get the PECL name of PHP extension -# -# Arguments: -# $1: the name of the extension -# -# Output: -# The PECL name of the extension -getPeclModuleName() { - normalizePHPModuleName_name="$1" - case "$normalizePHPModuleName_name" in - ddtrace) - normalizePHPModuleName_name=datadog_trace - ;; - http) - normalizePHPModuleName_name=pecl_http - ;; - sodium) - normalizePHPModuleName_name=libsodium - ;; - esac - printf '%s' "$normalizePHPModuleName_name" -} - -# Parse a package.xml (or package2.xml) file and extract the module name and version -# -# Arguments: -# $1: the patho to the XML file -# -# Set these variables: -# - EXTRACTPACKAGEVERSIONFROMXML_NAME -# - EXTRACTPACKAGEVERSIONFROMXML_VERSION -# -# Output: -# Nothing -# -# Return: -# 0 (true): if the string is in the list -# 1 (false): if the string is not in the list -extractPackageVersionFromXML() { - if ! test -f "$1"; then - printf 'Unable to find the file\n%s\n' >&2 - return 1 - fi - extractPackageVersionFromXML_code="$( - cat <<'EOT' -$doc = new DOMDocument(); -if (!$doc->load($argv[1])) { - fwrite(STDERR, "Failed to load XML file\n"); - exit(1); -} -set_error_handler( - static function($errno, $errstr) { - fwrite(STDERR, trim((string) $errstr) . "\n"); - exit(1); - }, - -1 -); -$xpath = new DOMXpath($doc); -$xpath->registerNamespace('v20', 'http://pear.php.net/dtd/package-2.0'); -$xpath->registerNamespace('v21', 'http://pear.php.net/dtd/package-2.1'); -if ($xpath->query('/v20:package/v20:dependencies')->length === 1) { - $ns = 'v20:'; -} elseif ($xpath->query('/v21:package/v21:dependencies')->length === 1) { - $ns = 'v21:'; -} elseif ($xpath->query('/package')->length === 1) { - $ns = ''; -} else { - fwrite(STDERR, "Unsupported namespace of the XML of package version details\n"); -} -$nodes = $xpath->query("/{$ns}package/{$ns}name"); -$name = trim((string) $nodes[0]->nodeValue); -if ($ns === '') { - $nodes = $xpath->query("/{$ns}package/{$ns}version"); -} else { - $nodes = $xpath->query("/{$ns}package/{$ns}version/{$ns}release"); -} -$version = trim((string) $nodes[0]->nodeValue); -echo "EXTRACTPACKAGEVERSIONFROMXML_NAME='{$name}'\n"; -echo "EXTRACTPACKAGEVERSIONFROMXML_VERSION='{$version}'\n"; -exit(0); -EOT - )" - extractPackageVersionFromXML_vars="$(php -n -d display_errors=stderr -r "$extractPackageVersionFromXML_code" "$1")" - if test -z "$extractPackageVersionFromXML_vars"; then - return 1 - fi - eval "$extractPackageVersionFromXML_vars" - return 0 -} - -# Parse a module name (and optionally version) as received via command arguments, extracting the version and normalizing it -# Examples: -# xdebug-2.9.8 -# xdebug-^2 -# xdebug-^2.9 -# -# Arguments: -# $1: the name of the module to be normalized -# -# Set these variables: -# - PROCESSED_PHP_MODULE_ARGUMENT -# -# Optionally set these variables: -# - PHP_WANTEDMODULEVERSION_<...> (where <...> is the normalized module name) -# - PHP_MODULESOURCECODEPATH_<...> (where <...> is the normalized module name) -# -# Output: -# Nothing -processPHPModuleArgument() { - processPHPModuleArgument_arg="$1" - # Convert GitHub short form to long url, - # for example: from - # php-memcached-dev/php-memcached@8f106564e6bb005ca6100b12ccc89000daafa9d8 - # to - # https://codeload.github.com/php-memcached-dev/php-memcached/tar.gz/8f106564e6bb005ca6100b12ccc89000daafa9d8 - processPHPModuleArgument_arg="$(printf '%s' "$processPHPModuleArgument_arg" | sed -E 's/^([a-zA-Z0-9_.\-]+\/[a-zA-Z0-9_.\-]+)@(.+$)/https:\/\/codeload.github.com\/\1\/tar.gz\/\2/')" - # Let's check if $processPHPModuleArgument_arg is an URL - if printf '%s' "$processPHPModuleArgument_arg" | grep -Eq '^https?://[^ ]+/[^ ]+$'; then - printf 'Downloading source from %s\n' "$processPHPModuleArgument_arg" - processPHPModuleArgument_arg="$(getPackageSource "$processPHPModuleArgument_arg")" - fi - # Let's check if $processPHPModuleArgument_arg the absolute path of an existing directory - if test "$processPHPModuleArgument_arg" != "${processPHPModuleArgument_arg#/}" && test -d "$processPHPModuleArgument_arg"; then - if test -f "$processPHPModuleArgument_arg/package2.xml"; then - printf 'Checking package2.xml of directory %s... ' "$processPHPModuleArgument_arg" - if ! extractPackageVersionFromXML "$processPHPModuleArgument_arg/package2.xml"; then - return 1 - fi - elif test -f "$processPHPModuleArgument_arg/package.xml"; then - printf 'Checking package.xml of directory %s... ' "$processPHPModuleArgument_arg" - if ! extractPackageVersionFromXML "$processPHPModuleArgument_arg/package.xml"; then - return 1 - fi - else - printf 'Unable to find the package.xml file in the directory\n%s\n' "$processPHPModuleArgument_arg" - return 1 - fi - printf 'good (name: %s, version: %s)\n' "$EXTRACTPACKAGEVERSIONFROMXML_NAME" "$EXTRACTPACKAGEVERSIONFROMXML_VERSION" - PROCESSED_PHP_MODULE_ARGUMENT="$(normalizePHPModuleName "$EXTRACTPACKAGEVERSIONFROMXML_NAME")" - processPHPModuleArgument_version="$EXTRACTPACKAGEVERSIONFROMXML_VERSION" - if printf '%s' "$PROCESSED_PHP_MODULE_ARGUMENT" | grep -Eq '^[a-zA-Z0-9_]+$'; then - eval PHP_MODULESOURCECODEPATH_$PROCESSED_PHP_MODULE_ARGUMENT="$processPHPModuleArgument_arg" - else - printf 'Unable to parse the following module name:\n%s\n' "$PROCESSED_PHP_MODULE_ARGUMENT" >&2 - exit 1 - fi - else - PROCESSED_PHP_MODULE_ARGUMENT="${processPHPModuleArgument_arg%%-*}" - if test -n "$PROCESSED_PHP_MODULE_ARGUMENT" && test "$PROCESSED_PHP_MODULE_ARGUMENT" != "$processPHPModuleArgument_arg"; then - processPHPModuleArgument_version="${processPHPModuleArgument_arg#*-}" - else - processPHPModuleArgument_version='' - fi - PROCESSED_PHP_MODULE_ARGUMENT="$(normalizePHPModuleName "$PROCESSED_PHP_MODULE_ARGUMENT")" - fi - if test -n "$processPHPModuleArgument_version"; then - if printf '%s' "$PROCESSED_PHP_MODULE_ARGUMENT" | grep -Eq '^[a-zA-Z0-9_]+$'; then - eval PHP_WANTEDMODULEVERSION_$PROCESSED_PHP_MODULE_ARGUMENT="$processPHPModuleArgument_version" - elif printf '%s' "$PROCESSED_PHP_MODULE_ARGUMENT" | grep -Eq '^@[a-zA-Z0-9_]+$'; then - eval PHP_WANTEDMODULEVERSION__${PROCESSED_PHP_MODULE_ARGUMENT#@}="$processPHPModuleArgument_version" - else - printf 'Unable to parse the following module name:\n%s\n' "$PROCESSED_PHP_MODULE_ARGUMENT" >&2 - fi - fi -} - -# Get the wanted PHP module version, as specified in the command line arguments. -# -# Arguments: -# $1: the name of the module to be normalized -# -# Output: -# The wanted version (if any) -getWantedPHPModuleVersion() { - if printf '%s' "$1" | grep -Eq '^[a-zA-Z0-9_]+$'; then - eval printf '%s' "\${PHP_WANTEDMODULEVERSION_$1:-}" - elif printf '%s' "$1" | grep -Eq '^@[a-zA-Z0-9_]+$'; then - eval printf '%s' "\${PHP_WANTEDMODULEVERSION__${1#@}:-}" - fi -} - -# Get source code path of a PHP module version, as specified in the command line arguments. -# -# Arguments: -# $1: the name of the module to be normalized -# -# Output: -# The wanted version (if any) -getModuleSourceCodePath() { - if printf '%s' "$1" | grep -Eq '^[a-zA-Z0-9_]+$'; then - eval printf '%s' "\${PHP_MODULESOURCECODEPATH_$1:-}" - fi -} - -# Get the actual PHP module version, resolving it if it starts with '^' -# -# Arguments: -# $1: the name of the module -# $2: the wanted version (optional, if omitted we'll use getWantedPHPModuleVersion) -# -# Output: -# The version to be used -resolvePHPModuleVersion() { - resolvePHPModuleVersion_module="$1" - if test $# -lt 2; then - resolvePHPModuleVersion_raw="$(getWantedPHPModuleVersion "$installRemoteModule_module")" - else - resolvePHPModuleVersion_raw="$2" - fi - resolvePHPModuleVersion_afterCaret="${resolvePHPModuleVersion_raw#^}" - if test "$resolvePHPModuleVersion_raw" = "$resolvePHPModuleVersion_afterCaret"; then - printf '%s' "$resolvePHPModuleVersion_raw" - return - fi - case "$resolvePHPModuleVersion_afterCaret" in - ?*@snapshot | ?*@devel | ?*@alpha | ?*@beta | ?*@stable) - resolvePHPModuleVersion_wantedStability="${resolvePHPModuleVersion_afterCaret##*@}" - resolvePHPModuleVersion_wantedVersion="${resolvePHPModuleVersion_afterCaret%@*}" - ;; - *) - resolvePHPModuleVersion_wantedStability='' - resolvePHPModuleVersion_wantedVersion="$resolvePHPModuleVersion_afterCaret" - ;; - esac - resolvePHPModuleVersion_peclModule="$(getPeclModuleName "$resolvePHPModuleVersion_module")" - resolvePHPModuleVersion_xml="$(curl -sSLf "http://pecl.php.net/rest/r/$resolvePHPModuleVersion_peclModule/allreleases.xml")" - # remove line endings, collapse spaces - resolvePHPModuleVersion_versions="$(printf '%s' "$resolvePHPModuleVersion_xml" | tr -s ' \t\r\n' ' ')" - # one line per release (eg 1.2.3stable) - resolvePHPModuleVersion_versions="$(printf '%s' "$resolvePHPModuleVersion_versions" | sed -r 's#$resolvePHPModuleVersion_wantedStability")" - fi - # remove everything's up to '' (included) - resolvePHPModuleVersion_versions="$(printf '%s' "$resolvePHPModuleVersion_versions" | sed 's#^.*##')" - # keep just the versions - resolvePHPModuleVersion_versions="$(printf '%s' "$resolvePHPModuleVersion_versions" | cut -d'<' -f1)" - resetIFS - for resolvePHPModuleVersion_version in $resolvePHPModuleVersion_versions; do - resolvePHPModuleVersion_suffix="${resolvePHPModuleVersion_version#$resolvePHPModuleVersion_wantedVersion}" - if test "$resolvePHPModuleVersion_version" != "${resolvePHPModuleVersion_version#$resolvePHPModuleVersion_wantedVersion.}"; then - # Example: looking for 1.0, found 1.0.1 - printf '%s' "$resolvePHPModuleVersion_version" - return - fi - done - for resolvePHPModuleVersion_version in $resolvePHPModuleVersion_versions; do - resolvePHPModuleVersion_suffix="${resolvePHPModuleVersion_version#$resolvePHPModuleVersion_wantedVersion}" - if test "$resolvePHPModuleVersion_version" = "$resolvePHPModuleVersion_suffix"; then - continue - fi - if test -z "$resolvePHPModuleVersion_suffix"; then - # Example: looking for 1.0, found exactly it - printf '%s' "$resolvePHPModuleVersion_version" - return - fi - case "$resolvePHPModuleVersion_suffix" in - [0-9]) - # Example: looking for 1.1, but this is 1.10 - ;; - *) - # Example: looking for 1.1, this is 1.1rc1 - printf '%s' "$resolvePHPModuleVersion_version" - return - ;; - esac - done - printf 'Unable to find a version of "%s" compatible with "%s"\nAvailable versions are:\n%s\n' "$resolvePHPModuleVersion_module" "$resolvePHPModuleVersion_raw" "$resolvePHPModuleVersion_versions" >&2 - exit 1 -} - -# Get the actual version of a PECL pmodule, resolving 'latest', 'stable', 'beta', 'alpha', 'devel'. -# -# Arguments: -# $1: the module name as known on the PECL archive -# $2: the version to be resolved -# Output: -# $2 itself if $1 is not 'latest', 'stable', 'beta', 'alpha', or 'devel', the actual version otherwise -resolvePeclStabilityVersion() { - case "$2" in - latest | stable | beta | alpha | devel) ;; - *) - printf '%s' "$2" - return - ;; - esac - resolvePeclStabilityVersion_peclModule="$(getPeclModuleName "$1")" - peclStabilityFlagToVersion_url="http://pecl.php.net/rest/r/$resolvePeclStabilityVersion_peclModule/$2.txt" - if ! peclStabilityFlagToVersion_result="$(curl -sSLf "$peclStabilityFlagToVersion_url")"; then - peclStabilityFlagToVersion_result='' - fi - if test -z "$peclStabilityFlagToVersion_result"; then - printf 'Failed to resolve the PECL package version "%s" of %s from %s\n' "$2" "$1" "$peclStabilityFlagToVersion_url" >&2 - exit 1 - fi - printf '%s' "$peclStabilityFlagToVersion_result" -} - -# Set these variables: -# - PHP_PREINSTALLED_MODULES the normalized list of PHP modules installed before running this script -setPHPPreinstalledModules() { - PHP_PREINSTALLED_MODULES='' - IFS=' -' - for getPHPInstalledModules_module in $(php -m); do - getPHPInstalledModules_moduleNormalized='' - case "$getPHPInstalledModules_module" in - \[PHP\ Modules\]) ;; - \[Zend\ Modules\]) - break - ;; - *) - getPHPInstalledModules_moduleNormalized="$(normalizePHPModuleName "$getPHPInstalledModules_module")" - if ! stringInList "$getPHPInstalledModules_moduleNormalized" "$PHP_PREINSTALLED_MODULES"; then - PHP_PREINSTALLED_MODULES="$PHP_PREINSTALLED_MODULES $getPHPInstalledModules_moduleNormalized" - fi - ;; - esac - done - if command -v composer >/dev/null; then - PHP_PREINSTALLED_MODULES="$PHP_PREINSTALLED_MODULES @composer" - fi - resetIFS - PHP_PREINSTALLED_MODULES="${PHP_PREINSTALLED_MODULES# }" -} - -# Get the handles of the modules to be installed -# -# Arguments: -# $@: all module handles -# -# Set: -# PHP_MODULES_TO_INSTALL -# -# Output: -# Nothing -processCommandArguments() { - processCommandArguments_endArgs=0 - PHP_MODULES_TO_INSTALL='' - # Support deprecated flag IPE_FIX_CACERTS - case "${IPE_FIX_CACERTS:-}" in - 1 | y* | Y*) - PHP_MODULES_TO_INSTALL="$PHP_MODULES_TO_INSTALL @fix_letsencrypt" - ;; - esac - while :; do - if test $# -lt 1; then - break - fi - processCommandArguments_skip=0 - if test $processCommandArguments_endArgs -eq 0; then - case "$1" in - --cleanup) - printf '### WARNING the %s option is deprecated (we always cleanup everything) ###\n' "$1" >&2 - processCommandArguments_skip=1 - ;; - --) - processCommandArguments_skip=1 - processCommandArguments_endArgs=1 - ;; - -*) - printf 'Unrecognized option: %s\n' "$1" >&2 - exit 1 - ;; - esac - fi - if test $processCommandArguments_skip -eq 0; then - processPHPModuleArgument "$1" - processCommandArguments_name="$PROCESSED_PHP_MODULE_ARGUMENT" - if stringInList "$processCommandArguments_name" "$PHP_MODULES_TO_INSTALL"; then - printf '### WARNING Duplicated module name specified: %s ###\n' "$processCommandArguments_name" >&2 - elif stringInList "$processCommandArguments_name" "$PHP_PREINSTALLED_MODULES"; then - printf '### WARNING Module already installed: %s ###\n' "$processCommandArguments_name" >&2 - else - PHP_MODULES_TO_INSTALL="$PHP_MODULES_TO_INSTALL $processCommandArguments_name" - fi - fi - shift - done - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL# }" -} - -# Add a module that's required by another module -# -# Arguments: -# $1: module that requires another module -# $2: the required module -# -# Update: -# PHP_MODULES_TO_INSTALL -# -# Output: -# Nothing -checkRequiredModule() { - if ! stringInList "$1" "$PHP_MODULES_TO_INSTALL"; then - return - fi - if stringInList "$2" "$PHP_PREINSTALLED_MODULES"; then - return - fi - PHP_MODULES_TO_INSTALL="$(removeStringFromList "$1" "$PHP_MODULES_TO_INSTALL")" - if ! stringInList "$2" "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$PHP_MODULES_TO_INSTALL $2" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL# }" - fi - PHP_MODULES_TO_INSTALL="$PHP_MODULES_TO_INSTALL $1" -} - -# Sort the modules to be installed, in order to fix dependencies -# -# Update: -# PHP_MODULES_TO_INSTALL -# -# Output: -# Nothing -sortModulesToInstall() { - # apcu_bc requires apcu - checkRequiredModule 'apcu_bc' 'apcu' - # http requires propro (for PHP < 8) and raphf - if test $PHP_MAJMIN_VERSION -le 704; then - checkRequiredModule 'http' 'propro' - fi - checkRequiredModule 'http' 'raphf' - # event requires sockets (for PHP <= 5.6) - if test $PHP_MAJMIN_VERSION -le 506; then - checkRequiredModule event sockets - fi - # relay requires msgpack - checkRequiredModule relay msgpack - # relay requires igbinary - checkRequiredModule relay igbinary - # pq requires raphf - checkRequiredModule pq raphf - # phalcon up to v5.0.0beta3 requires psr - if test $PHP_MAJMINPAT_VERSION -lt 70401; then - checkRequiredModule phalcon psr - fi - # Some module installation may use sockets if available: move it before other modules - if stringInList 'sockets' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'sockets' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="sockets $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # Some module installation may use igbinary if available: move it before other modules - if stringInList 'igbinary' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'igbinary' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="igbinary $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # Some module installation may use msgpack if available: move it before other modules - if stringInList 'msgpack' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'msgpack' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="msgpack $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # Some module installation may use socket if available: move it before other modules - if stringInList 'socket' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'socket' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="socket $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # Some module installation may use apcu if available: move it before other modules - if stringInList 'apcu' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'apcu' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="apcu $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # Some module installation may use raphf if available: move it before other modules - if stringInList 'raphf' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'raphf' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="raphf $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # In any case, first of all, we need to install composer - if stringInList '@composer' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList '@composer' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="@composer $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi -} - -# Expand the IPE_ASPELL_LANGUAGES environment variable into apk/apt package names -expandASpellDictionaries() { - expandASpellDictionaries_languages="${IPE_ASPELL_LANGUAGES:-en}" - expandASpellDictionaries_result='' - resetIFS - for expandASpellDictionaries_language in $expandASpellDictionaries_languages; do - expandASpellDictionaries_result="$expandASpellDictionaries_result aspell-$expandASpellDictionaries_language" - done - printf '%s' "${expandASpellDictionaries_result# }" -} - -# Get the required APT/APK packages for a specific PHP version and for the list of module handles -# -# Arguments: -# $@: the PHP module handles -# -# Set: -# PACKAGES_PERSISTENT_NEW the list of packages required at runtume that must be installed -# PACKAGES_PERSISTENT_PRE the list of packages required at runtume that are already installed -# PACKAGES_VOLATILE the list of packages required at compile time that must be installed -# PACKAGES_PREVIOUS the list of packages (with their version) that are installed right now (calculated only on Debian and only if PACKAGES_PERSISTENT_NEW or PACKAGES_VOLATILE are not empty) -# COMPILE_LIBS -buildRequiredPackageLists() { - buildRequiredPackageLists_persistent='' - buildRequiredPackageLists_volatile='' - COMPILE_LIBS='' - case "$DISTRO" in - alpine) - apk update - ;; - debian) - invokeAptGetUpdate - ;; - esac - case "$DISTRO_VERSION" in - alpine@*) - if test $# -gt 1 || test "${1:-}" != '@composer'; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $PHPIZE_DEPS" - fi - if test -z "$(apk info 2>/dev/null | grep -E ^libssl)"; then - buildRequiredPackageLists_libssl="$(apk search | grep -E '^libssl[0-9]' | head -1 | cut -d- -f1)" - elif test -z "$(apk info 2>/dev/null | grep -E '^libressl.*-libtls')" && test -z "$(apk info 2>/dev/null | grep -E '^libressl.*-libssl')" && test -z "$(apk info 2>/dev/null | grep -E '^libretls-')"; then - buildRequiredPackageLists_libssl=$(apk search -q libressl*-libtls) - else - buildRequiredPackageLists_libssl='' - fi - if test $DISTRO_MAJMIN_VERSION -le 313; then - buildRequiredPackageLists_libssldev='libressl-dev' - else - buildRequiredPackageLists_libssldev='libretls-dev' - fi - buildRequiredPackageLists_icuPersistent='' - if test $DISTRO_MAJMIN_VERSION -ge 316; then - case "${IPE_ICU_EN_ONLY:-}" in - 1 | y* | Y*) ;; - *) - buildRequiredPackageLists_icuPersistent='icu-data-full' - ;; - esac - fi - ;; - debian@9) - buildRequiredPackageLists_libssldev='libssl1.0-dev' - ;; - debian@*) - buildRequiredPackageLists_libssldev='^libssl([0-9]+(\.[0-9]+)*)?-dev$' - ;; - esac - if test $USE_PICKLE -gt 1; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile git" - fi - while :; do - if test $# -lt 1; then - break - fi - case "$1@$DISTRO" in - @composer@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent unzip" - ;; - amqp@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent rabbitmq-c" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile rabbitmq-c-dev" - ;; - amqp@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^librabbitmq[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile librabbitmq-dev libssh-dev" - ;; - bz2@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libbz2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile bzip2-dev" - ;; - bz2@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libbz2-dev" - ;; - cassandra@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent cassandra-cpp-driver gmp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cassandra-cpp-driver-dev gmp-dev" - ;; - cmark@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake" - ;; - cmark@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake" - ;; - ddtrace@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libgcc" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile curl-dev" - ;; - ddtrace@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libcurl4-openssl-dev" - ;; - dba@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent db" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile db-dev" - ;; - dba@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile ^libdb5\.3-dev$" - if test $PHP_MAJMIN_VERSION -le 505; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile patch" - fi - ;; - decimal@debian) - if test $DISTRO_MAJMIN_VERSION -lt 1200; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libmpdec[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmpdec-dev" - fi - ;; - ecma_intl@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent icu-libs $buildRequiredPackageLists_icuPersistent" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev libidn-dev" - ;; - ecma_intl@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libicu[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libicu-dev" - ;; - enchant@alpine) - if test $DISTRO_MAJMIN_VERSION -ge 312; then - if test $PHP_MAJMIN_VERSION -ge 800; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent enchant2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile enchant2-dev" - else - # The system provides libenchant2, supported since PHP 8.0: we need to build libenchant1 on our own - if ! isLibenchant1Installed; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent glib aspell-libs libhunspell" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile glib-dev aspell-dev hunspell-dev" - COMPILE_LIBS="$COMPILE_LIBS libenchant1" - fi - fi - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent enchant" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile enchant-dev" - fi - ;; - enchant@debian) - if test $DISTRO_VERSION_NUMBER -ge 11; then - if test $PHP_MAJMIN_VERSION -ge 800; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libenchant-2-2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libenchant-2-dev" - else - if ! isLibenchant1Installed; then - # The system provides libenchant2, supported since PHP 8.0: we need to build libenchant1 on our own - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent aspell-en libhunspell-1.7-0" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libglib2.0-dev libaspell-dev libhunspell-dev" - COMPILE_LIBS="$COMPILE_LIBS libenchant1" - fi - fi - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libenchant1c2a" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libenchant-dev" - fi - ;; - event@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libevent $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libevent-dev $buildRequiredPackageLists_libssldev" - ;; - event@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libevent[0-9\.\-]*$ ^libevent-openssl[0-9\.\-]*$ ^libevent-extra[0-9\.\-]*$ ^libevent-pthreads[0-9\.\-]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libevent-dev $buildRequiredPackageLists_libssldev" - ;; - ffi@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libffi" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libffi-dev" - ;; - ffi@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libffi-dev" - ;; - ftp@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev" - ;; - ftp@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev" - ;; - gd@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent freetype libjpeg-turbo libpng libxpm" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetype-dev libjpeg-turbo-dev libpng-dev libxpm-dev" - if test $PHP_MAJMIN_VERSION -le 506; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libvpx" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libvpx-dev" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libwebp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libwebp-dev" - if test $PHP_MAJMIN_VERSION -ge 801; then - if test $DISTRO_MAJMIN_VERSION -ge 315; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libavif aom-libs libdav1d" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libavif-dev aom-dev dav1d-dev" - elif isLibaomInstalled && isLibdav1dInstalled && isLibyuvInstalled && isLibavifInstalled; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - else - case "${IPE_GD_WITHOUTAVIF:-}" in - 1 | y* | Y*) ;; - *) - if ! isLibaomInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libaom" - fi - if ! isLibdav1dInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libdav1d" - fi - if ! isLibyuvInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libyuv" - fi - if ! isLibavifInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libavif" - fi - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake nasm meson" - ;; - esac - fi - fi - fi - ;; - gd@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libfreetype6 libjpeg62-turbo ^libpng[0-9]+-[0-9]+$ libxpm4" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libfreetype6-dev libjpeg62-turbo-dev libpng-dev libxpm-dev" - if test $PHP_MAJMIN_VERSION -le 506; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libvpx[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libvpx-dev" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libwebp[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libwebp-dev" - if test $PHP_MAJMIN_VERSION -ge 801; then - if test $DISTRO_VERSION_NUMBER -ge 12; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libavif[0-9]+$ ^libaom[0-9]+$ ^libdav1d[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libavif-dev libaom-dev libdav1d-dev" - elif ! isLibaomInstalled || ! isLibdav1dInstalled || ! isLibyuvInstalled || ! isLibavifInstalled; then - case "${IPE_GD_WITHOUTAVIF:-}" in - 1 | y* | Y*) ;; - *) - if ! isLibaomInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libaom" - fi - if ! isLibdav1dInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libdav1d" - fi - if ! isLibyuvInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libyuv" - fi - if ! isLibavifInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libavif" - fi - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake nasm meson" - ;; - esac - fi - fi - fi - ;; - gearman@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++ libuuid" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile boost-dev gperf libmemcached-dev libevent-dev util-linux-dev" - ;; - gearman@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libgearman[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgearman-dev" - ;; - geoip@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent geoip" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile geoip-dev" - ;; - geoip@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libgeoip1[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgeoip-dev" - ;; - geos@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent geos-dev" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile geos" - ;; - geos@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libgeos-c1(v[0-9]*)?$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgeos-dev" - ;; - gettext@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libintl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile gettext-dev" - ;; - gmagick@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent graphicsmagick libgomp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile graphicsmagick-dev libtool" - ;; - gmagick@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libgraphicsmagick(-q16-)?[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgraphicsmagick1-dev" - ;; - gmp@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gmp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile gmp-dev" - ;; - gmp@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgmp-dev" - ;; - gnupg@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gpgme" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile gpgme-dev" - ;; - gnupg@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libgpgme[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile ^libgpgme[0-9]*-dev$" - ;; - grpc@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev linux-headers" - ;; - grpc@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev" - ;; - http@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libevent" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev curl-dev libevent-dev" - if test $PHP_MAJMIN_VERSION -le 506; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libidn" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libidn-dev" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent icu-libs $buildRequiredPackageLists_icuPersistent libidn" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev libidn-dev" - fi - ;; - http@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libcurl3-gnutls ^libevent[0-9\.\-]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev libgnutls28-dev libcurl4-gnutls-dev libevent-dev" - if test $PHP_MAJMIN_VERSION -le 506; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile ^libidn1[0-9+]-dev$" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libicu[0-9]+$ ^libidn2-[0-9+]$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libicu-dev ^libidn2-[0-9+]-dev$ ^libgcrypt[0-9]+-dev$" - fi - ;; - imagick@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent imagemagick libgomp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile imagemagick-dev" - if [ $DISTRO_MAJMIN_VERSION -ge 319 ]; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ghostscript libheif libjxl libraw librsvg" - fi - ;; - imagick@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libmagickwand-6.q16-[0-9]+$ ^libmagickcore-6.q16-[0-9]+-extra$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmagickwand-dev" - ;; - imap@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent c-client $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile krb5-dev imap-dev $buildRequiredPackageLists_libssldev" - ;; - imap@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libc-client2007e" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libkrb5-dev" - case "$DISTRO_VERSION" in - debian@9) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev comerr-dev krb5-multidev libc-client2007e libgssrpc4 libkadm5clnt-mit11 libkadm5srv-mit11 libkdb5-8 libpam0g-dev libssl-doc mlock" - ;; - *) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libc-client-dev" - ;; - esac - ;; - interbase@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev ncurses-dev" - if ! isFirebirdInstalled; then - COMPILE_LIBS="$COMPILE_LIBS firebird" - fi - ;; - interbase@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libfbclient2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile firebird-dev libib-util" - ;; - intl@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent icu-libs $buildRequiredPackageLists_icuPersistent" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev" - ;; - intl@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libicu[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libicu-dev" - ;; - ion@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake git" - ;; - ion@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake git" - ;; - ldap@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libldap" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile openldap-dev" - ;; - ldap@debian) - if test $DISTRO_VERSION_NUMBER -ge 9; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libldap-common" - fi - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libldap2-dev" - ;; - luasandbox@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lua5.1-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile lua5.1-dev" - ;; - luasandbox@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblua5.1-0" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liblua5.1-0-dev" - ;; - lz4@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lz4-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile lz4-dev" - ;; - lz4@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblz4-1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liblz4-dev" - ;; - maxminddb@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmaxminddb" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmaxminddb-dev" - ;; - maxminddb@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libmaxminddb[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmaxminddb-dev" - ;; - memprof@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent judy" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile judy-dev bsd-compat-headers" - ;; - memprof@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libjudydebian1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libjudy-dev" - ;; - mcrypt@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmcrypt" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmcrypt-dev" - ;; - mcrypt@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmcrypt4" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmcrypt-dev" - ;; - memcache@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev" - ;; - memcache@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev" - ;; - memcached@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmemcached-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmemcached-dev zlib-dev" - ;; - memcached@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmemcachedutil2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmemcached-dev zlib1g-dev" - if test $DISTRO_MAJMIN_VERSION -ge 12; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev" - fi - ;; - mongo@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsasl $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev cyrus-sasl-dev" - ;; - mongo@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev libsasl2-dev" - ;; - mongodb@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent icu-libs $buildRequiredPackageLists_icuPersistent libsasl $buildRequiredPackageLists_libssl snappy" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev cyrus-sasl-dev snappy-dev $buildRequiredPackageLists_libssldev zlib-dev" - if test $PHP_MAJMIN_VERSION -ge 704; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent zstd-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zstd-dev" - fi - ;; - mongodb@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libsnappy[0-9]+(v[0-9]+)?$ ^libicu[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libicu-dev libsasl2-dev libsnappy-dev $buildRequiredPackageLists_libssldev zlib1g-dev" - if test $PHP_MAJMIN_VERSION -ge 704; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libzstd[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libzstd-dev" - fi - ;; - mosquitto@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent mosquitto-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile mosquitto-dev" - ;; - mosquitto@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmosquitto1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmosquitto-dev" - ;; - mssql@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent freetds" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - mssql@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsybdb5" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - oauth@alpine) - if test $PHP_MAJMIN_VERSION -ge 700; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile pcre-dev" - fi - ;; - oauth@debian) - if test $PHP_MAJMIN_VERSION -ge 700; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libpcre3-dev" - fi - ;; - oci8@alpine | pdo_oci@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libaio libc6-compat libnsl" - if test $DISTRO_MAJMIN_VERSION -le 307; then - # The unzip tool of Alpine 3.7 can't extract symlinks from ZIP archives: let's use bsdtar instead - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libarchive-tools" - fi - ;; - oci8@debian | pdo_oci@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libaio[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unzip" - ;; - odbc@alpine | pdo_odbc@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent unixodbc" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unixodbc-dev" - ;; - odbc@debian | pdo_odbc@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libodbc1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unixodbc-dev" - ;; - openswoole@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent postgresql-libs libstdc++ $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile curl-dev postgresql-dev linux-headers $buildRequiredPackageLists_libssldev" - ;; - openswoole@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libcurl3-gnutls libpq5" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev libcurl4-gnutls-dev libpq-dev" - ;; - parle@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - ;; - pdo_dblib@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent freetds" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - pdo_dblib@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsybdb5" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - pdo_firebird@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev ncurses-dev" - if ! isFirebirdInstalled; then - COMPILE_LIBS="$COMPILE_LIBS firebird" - if test $PHP_MAJMIN_VERSION -ge 804; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev" - if ! isLibTommathInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libtommath" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake" - fi - if ! isLibTomcryptInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libtomcrypt" - fi - fi - fi - ;; - pdo_firebird@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libfbclient2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile firebird-dev libib-util" - ;; - pgsql@alpine | pdo_pgsql@alpine | pq@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent postgresql-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile postgresql-dev" - ;; - pgsql@debian | pdo_pgsql@debian | pq@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libpq5" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libpq-dev" - ;; - php_trie@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - ;; - phpy@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent python3" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile python3-dev" - ;; - phpy@debian) - if test $DISTRO_VERSION_NUMBER -ge 12; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libpython3.11" - elif test $DISTRO_VERSION_NUMBER -ge 11; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libpython3.9" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libpython3.7" - fi - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile python3-dev" - ;; - pkcs11@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent softhsm" - ;; - pkcs11@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsofthsm2" - ;; - pspell@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent aspell-libs $(expandASpellDictionaries)" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile aspell-dev" - ;; - pspell@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libaspell15 $(expandASpellDictionaries)" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libpspell-dev" - ;; - rdkafka@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent librdkafka" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile librdkafka-dev" - ;; - rdkafka@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^librdkafka\+*[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile librdkafka-dev" - ;; - recode@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent recode" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile recode-dev" - ;; - recode@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent librecode0" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile librecode-dev" - ;; - redis@alpine) - if test $PHP_MAJMIN_VERSION -ge 700; then - case "$DISTRO_VERSION" in - alpine@3.7) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent zstd" - ;; - *) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent zstd-libs" - ;; - esac - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zstd-dev" - if test $PHP_MAJMIN_VERSION -ge 702; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lz4-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile lz4-dev" - fi - fi - ;; - redis@debian) - if test $PHP_MAJMIN_VERSION -ge 700; then - case "$DISTRO_VERSION" in - debian@8) - ## There's no APT package for libzstd - ;; - debian@9) - ## libzstd is too old (available: 1.1.2, required: 1.3.0+) - ;; - *) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libzstd[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libzstd-dev" - ;; - esac - fi - if test $PHP_MAJMIN_VERSION -ge 702; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblz4-1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liblz4-dev" - fi - ;; - relay@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lz4-libs zstd-libs" - if test $DISTRO_MAJMIN_VERSION -ge 317; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent $buildRequiredPackageLists_libssl" - fi - ;; - saxon@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_volatile unzip" - ;; - seasclick@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - ;; - simdjson@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - ;; - smbclient@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsmbclient" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile samba-dev" - ;; - smbclient@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsmbclient" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsmbclient-dev" - ;; - snappy@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent snappy" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile snappy-dev" - ;; - snappy@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libsnappy1(v[0-9]+)?$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsnappy-dev" - ;; - snmp@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent net-snmp-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile net-snmp-dev" - ;; - snmp@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent snmp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsnmp-dev" - ;; - snuffleupagus@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent pcre" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile pcre-dev" - ;; - snuffleupagus@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libpcre3-dev" - ;; - soap@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - soap@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - sockets@alpine) - if test $PHP_MAJMIN_VERSION -ge 802; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile linux-headers" - fi - ;; - sodium@alpine | libsodium@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsodium" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsodium-dev" - ;; - sodium@debian | libsodium@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libsodium[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsodium-dev" - ;; - solr@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile curl-dev libxml2-dev" - ;; - solr@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libcurl3-gnutls" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libcurl4-gnutls-dev libxml2-dev" - ;; - sourceguardian@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent eudev-libs" - ;; - spx@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev" - ;; - spx@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev" - ;; - sqlsrv@alpine | pdo_sqlsrv@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++ unixodbc" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unixodbc-dev" - ;; - sqlsrv@debian | pdo_sqlsrv@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent unixodbc" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unixodbc-dev" - if ! isMicrosoftSqlServerODBCInstalled; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile gnupg apt-transport-https" - fi - ;; - ssh2@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libssh2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libssh2-dev" - ;; - ssh2@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libssh2-1-dev" - ;; - stomp@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev" - ;; - stomp@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev" - ;; - swoole@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent postgresql-libs libstdc++ $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile curl-dev postgresql-dev linux-headers $buildRequiredPackageLists_libssldev" - if test $PHP_MAJMIN_VERSION -ge 702; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent c-ares" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile c-ares-dev" - if test $PHP_MAJMIN_VERSION -ge 801; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent zstd-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile sqlite-dev zstd-dev" - fi - fi - case "${IPE_SWOOLE_WITHOUT_IOURING:-}" in - 1 | y* | Y*) ;; - *) - # iouring support in swoole 6 requires liburing 2.5+: available since Alpine 3.19 - # but with Alpine 3.19 we have a "invalid use of incomplete type 'const struct statx'" error - if test $DISTRO_MAJMIN_VERSION -ge 320; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liburing" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liburing-dev" - fi - ;; - esac - ;; - swoole@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libcurl3-gnutls libpq5" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev libcurl4-gnutls-dev libpq-dev" - if test $PHP_MAJMIN_VERSION -ge 702; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libc-ares2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libc-ares-dev" - if test $PHP_MAJMIN_VERSION -ge 800; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libbrotli1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev libbrotli-dev" - if test $PHP_MAJMIN_VERSION -ge 801; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsqlite3-dev" - if test $DISTRO_VERSION_NUMBER -ge 11; then - # swoole 6 requires libzstd >= 1.4.0, but on debian 10 (buster) we have 1.3.8 - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libzstd[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libzstd-dev" - fi - fi - fi - fi - if test $DISTRO_VERSION_NUMBER -ge 13; then - # iouring support in swoole 6 requires liburing 2.5+: available since Debian Trixie (13) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liburing2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liburing-dev" - fi - ;; - sybase_ct@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent freetds" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - sybase_ct@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libct4" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - tdlib@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++ $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile git cmake gperf zlib-dev $buildRequiredPackageLists_libssldev linux-headers readline-dev" - ;; - tdlib@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile git cmake gperf zlib1g-dev $buildRequiredPackageLists_libssldev" - ;; - tensor@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent openblas" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile lapack-dev openblas-dev" - if test $DISTRO_MAJMIN_VERSION -le 317; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lapack" - if test $DISTRO_MAJMIN_VERSION -le 316; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libexecinfo" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libexecinfo-dev" - if test $DISTRO_MAJMIN_VERSION -le 310; then - if ! stringInList --force-overwrite "$IPE_APK_FLAGS"; then - IPE_APK_FLAGS="$IPE_APK_FLAGS --force-overwrite" - fi - fi - fi - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblapack" - fi - ;; - tensor@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblapacke" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liblapack-dev libopenblas-dev liblapacke-dev" - if test $DISTRO_VERSION_NUMBER -le 9; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-6 libopenblas-base" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-6-dev" - elif test $DISTRO_VERSION_NUMBER -le 10; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-8 libopenblas-base" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-8-dev" - elif test $DISTRO_VERSION_NUMBER -le 11; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-10 libopenblas-base" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-10-dev" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-12 libopenblas0" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-12-dev" - fi - ;; - tidy@alpine) - if test $DISTRO_MAJMIN_VERSION -ge 315; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent tidyhtml" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent tidyhtml-libs" - fi - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile tidyhtml-dev" - ;; - tidy@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libtidy-?[0-9][0-9.\-]*(deb[0-9])?$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libtidy-dev" - ;; - uuid@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libuuid" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile util-linux-dev" - ;; - uuid@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile uuid-dev" - ;; - uv@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libuv" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libuv-dev" - ;; - uv@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libuv1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libuv1-dev" - ;; - vips@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent vips" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile vips-dev" - ;; - vips@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libvips" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libvips-dev" - ;; - wddx@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - wddx@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - wikidiff2@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile git" - ;; - wikidiff2@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libthai0" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile git libthai-dev" - ;; - xdebug@alpine) - if test $PHP_MAJMIN_VERSION -ge 800; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile linux-headers" - fi - ;; - xlswriter@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev" - ;; - xlswriter@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev" - ;; - xmldiff@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - xmldiff@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - xmlrpc@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - xmlrpc@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - xpass@alpine) - if ! isLibXCryptInstalled; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile linux-headers" - COMPILE_LIBS="$COMPILE_LIBS libxcrypt" - fi - ;; - xsl@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libxslt" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxslt-dev libgcrypt-dev" - ;; - xsl@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libxslt1\.1$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxslt-dev" - ;; - yaml@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent yaml" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile yaml-dev" - ;; - yaml@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libyaml-0-2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libyaml-dev" - ;; - yar@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile curl-dev" - ;; - yar@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libcurl3-gnutls" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libcurl4-gnutls-dev" - ;; - zip@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libzip" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake gnutls-dev libzip-dev $buildRequiredPackageLists_libssldev zlib-dev" - ;; - zip@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libzip[0-9]$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake gnutls-dev $buildRequiredPackageLists_libssldev libzip-dev libbz2-dev zlib1g-dev" - case "$DISTRO_VERSION" in - debian@8) - # Debian Jessie doesn't seem to provide libmbedtls - ;; - *) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libmbedtls[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmbedtls-dev" - ;; - esac - ;; - zmq@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent zeromq-dev" - ;; - zmq@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libzmq3-dev" - ;; - zookeeper@alpine) - if ! test -f /usr/local/include/zookeeper/zookeeper.h; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile maven automake libtool openjdk8" - fi - ;; - zookeeper@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libzookeeper-mt2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libzookeeper-mt-dev" - ;; - esac - shift - done - PACKAGES_PERSISTENT_NEW='' - PACKAGES_PERSISTENT_PRE='' - PACKAGES_VOLATILE='' - PACKAGES_PREVIOUS='' - if test -z "$buildRequiredPackageLists_persistent$buildRequiredPackageLists_volatile"; then - return - fi - if test -n "$buildRequiredPackageLists_persistent"; then - PACKAGES_PERSISTENT_NEW="$(expandPackagesToBeInstalled $buildRequiredPackageLists_persistent)" - if test -s "$IPE_ERRFLAG_FILE"; then - exit 1 - fi - resetIFS - for buildRequiredPackageLists_package in $buildRequiredPackageLists_persistent; do - buildRequiredPackageLists_package="$(expandInstalledSystemPackageName "$buildRequiredPackageLists_package")" - if test -n "$buildRequiredPackageLists_package"; then - PACKAGES_PERSISTENT_PRE="$PACKAGES_PERSISTENT_PRE $buildRequiredPackageLists_package" - fi - done - PACKAGES_PERSISTENT_PRE="${PACKAGES_PERSISTENT_PRE# }" - fi - if test -n "$buildRequiredPackageLists_volatile"; then - buildRequiredPackageLists_packages="$(expandPackagesToBeInstalled $buildRequiredPackageLists_volatile)" - if test -s "$IPE_ERRFLAG_FILE"; then - exit 1 - fi - resetIFS - for buildRequiredPackageLists_package in $buildRequiredPackageLists_packages; do - if ! stringInList "$buildRequiredPackageLists_package" "$PACKAGES_PERSISTENT_NEW"; then - if test "$buildRequiredPackageLists_package" != icu-data-en || ! stringInList icu-data-full "$PACKAGES_PERSISTENT_NEW"; then - PACKAGES_VOLATILE="$PACKAGES_VOLATILE $buildRequiredPackageLists_package" - fi - fi - done - PACKAGES_VOLATILE="${PACKAGES_VOLATILE# }" - fi - if test -n "$PACKAGES_PERSISTENT_NEW$PACKAGES_VOLATILE"; then - case "$DISTRO" in - debian) - PACKAGES_PREVIOUS="$(dpkg --get-selections | grep -E '\sinstall$' | awk '{ print $1 }')" - ;; - esac - fi -} - -# Get the full list of APT/APK packages that will be installed, given the required packages -# -# Arguments: -# $1: the list of required APT/APK packages -# -# Output: -# Space-separated list of every APT/APK packages that will be installed -expandPackagesToBeInstalled() { - expandPackagesToBeInstalled_result='' - case "$DISTRO" in - alpine) - expandPackagesToBeInstalled_log="$(apk add --simulate $@ 2>&1 || printf '\nERROR: apk failed\n')" - if test -n "$(printf '%s' "$expandPackagesToBeInstalled_log" | grep -E '^ERROR:')"; then - printf 'FAILED TO LIST THE WHOLE PACKAGE LIST FOR\n' >&2 - printf '%s ' "$@" >&2 - printf '\n\nCOMMAND OUTPUT:\n%s\n' "$expandPackagesToBeInstalled_log" >&2 - echo 'y' >"$IPE_ERRFLAG_FILE" - exit 1 - fi - IFS=' -' - for expandPackagesToBeInstalled_line in $expandPackagesToBeInstalled_log; do - if test -n "$(printf '%s' "$expandPackagesToBeInstalled_line" | grep -E '^\([0-9]*/[0-9]*) Installing ')"; then - expandPackagesToBeInstalled_result="$expandPackagesToBeInstalled_result $(printf '%s' "$expandPackagesToBeInstalled_line" | cut -d ' ' -f 3)" - fi - done - resetIFS - ;; - debian) - expandPackagesToBeInstalled_log="$(apt-get install -sy --no-install-recommends $@ 2>&1 || printf '\nE: apt-get failed\n')" - if test -n "$(printf '%s' "$expandPackagesToBeInstalled_log" | grep -E '^E:')"; then - printf 'FAILED TO LIST THE WHOLE PACKAGE LIST FOR\n' >&2 - printf '%s ' "$@" >&2 - printf '\n\nCOMMAND OUTPUT:\n%s\n' "$expandPackagesToBeInstalled_log" >&2 - echo 'y' >"$IPE_ERRFLAG_FILE" - exit 1 - fi - expandPackagesToBeInstalled_inNewPackages=0 - IFS=' -' - for expandPackagesToBeInstalled_line in $expandPackagesToBeInstalled_log; do - if test $expandPackagesToBeInstalled_inNewPackages -eq 0; then - if test "$expandPackagesToBeInstalled_line" = 'The following NEW packages will be installed:'; then - expandPackagesToBeInstalled_inNewPackages=1 - fi - elif test "$expandPackagesToBeInstalled_line" = "${expandPackagesToBeInstalled_line# }"; then - break - else - resetIFS - for expandPackagesToBeInstalled_newPackage in $expandPackagesToBeInstalled_line; do - expandPackagesToBeInstalled_result="$expandPackagesToBeInstalled_result $expandPackagesToBeInstalled_newPackage" - done - IFS=' -' - fi - done - resetIFS - ;; - esac - printf '%s' "${expandPackagesToBeInstalled_result# }" -} - -# Check if a system package is installed; if so we prints its name. -# -# Arguments: -# $1: the name of the package to be checked (regular expressions accepted: they must start with a ^) -expandInstalledSystemPackageName() { - if test "$1" = "${1#^}"; then - expandInstalledSystemPackageName_grepflags='-Fx' - else - expandInstalledSystemPackageName_grepflags='-E' - fi - case "$DISTRO" in - alpine) - apk info | grep $expandInstalledSystemPackageName_grepflags -- "$1" || test $? -eq 1 - ;; - debian) - dpkg --get-selections | grep -E '\sinstall$' | awk '{ print $1 }' | cut -d: -f1 | grep $expandInstalledSystemPackageName_grepflags -- "$1" || test $? -eq 1 - ;; - esac -} - -# Retrieve the number of available cores (alternative to nproc if not available) -# -# Output: -# The number of processor cores available -getProcessorCount() { - if test -n "${IPE_PROCESSOR_COUNT:-}"; then - echo $IPE_PROCESSOR_COUNT - return - fi - if command -v nproc >/dev/null 2>&1; then - nproc - else - getProcessorCount_tmp=$(cat /proc/cpuinfo | grep -E '^processor\s*:\s*\d+$' | wc -l) - if test $getProcessorCount_tmp -ge 1; then - echo $getProcessorCount_tmp - else - echo 1 - fi - fi -} - -# Set these variables: -# - TARGET_TRIPLET the build target tripled (eg 'x86_64-linux-gnu', 'x86_64-alpine-linux-musl') -setTargetTriplet() { - TARGET_TRIPLET="$(gcc -print-multiarch 2>/dev/null || true)" - if test -z "$TARGET_TRIPLET"; then - TARGET_TRIPLET="$(gcc -dumpmachine)" - fi -} - -# Retrieve the number of processors to be used when compiling an extension -# -# Arguments: -# $1: the handle of the PHP extension to be compiled -# Output: -# The number of processors to be used -getCompilationProcessorCount() { - case "$1" in - '') - # The above extensions don't support parallel compilation - echo 1 - ;; - *) - # All the other extensions support parallel compilation - getProcessorCount - ;; - esac -} - -# Get the full path of a PHP extension given its name. -# -# Arguments: -# $1: the name of the PHP extension -# -# Output: -# The absolute path of the PHP extension file (or nothing if the file can't be found) -getModuleFullPath() { - case "$1" in - apcu_bc) - getModuleFullPath_path="$PHP_EXTDIR/apc.so" - ;; - seasclick) - getModuleFullPath_path="$PHP_EXTDIR/SeasClick.so" - ;; - *) - getModuleFullPath_path="$PHP_EXTDIR/$1.so" - ;; - esac - if ! test -f "$getModuleFullPath_path"; then - printf 'Unable to find the file of the PHP extension "%s"\n' "$1" >&2 - exit 1 - fi - printf '%s' "$getModuleFullPath_path" -} - -# Post-process a PHP module just compiled and installed in the PHP extension directory -# -# Arguments: -# $1: the name of the PHP extension -# -# Return: -# 0 (true): if suceeded -# non-zero (false): in case of errors -postProcessModule() { - postProcessModule_file="$(getModuleFullPath "$1")" - if test $PHP_DEBUGBUILD -ne 1; then - printf 'Removing symbols from %s... ' "$postProcessModule_file" - postProcessModule_preSize="$(stat -c %s "$postProcessModule_file")" - strip --strip-all "$postProcessModule_file" - postProcessModule_postSize="$(stat -c %s "$postProcessModule_file")" - printf 'done (%s bytes saved).\n' "$((postProcessModule_preSize - postProcessModule_postSize))" - fi - return $? -} - -# Get the type of the php.ini entry to be used for a PHP extension -# -# Arguments: -# $1: the name of the PHP extension -# -# Output: -# zend_extension or extension -getModuleIniEntryType() { - case "$1" in - ioncube_loader | sourceguardian) - # On PHP 5.5, docker-php-ext-enable fails to detect that ionCube Loader and sourceguardian are Zend extensions - if test $PHP_MAJMIN_VERSION -le 505; then - printf 'zend_extension' - return 0 - fi - ;; - esac - getModuleIniEntryType_file="$(getModuleFullPath "$1")" - if readelf --wide --syms "$getModuleIniEntryType_file" | grep -Eq ' zend_extension_entry$'; then - printf 'zend_extension' - else - printf 'extension' - fi -} - -# Create the contents of a PHP ini file that enables an extension -# -# Arguments: -# $1: the name of the PHP extension -# $2: additional php.ini configuration (optional) -# -# Output: -# The contents of the ini file -buildPhpExtensionIniContent() { - buildPhpExtensionIniContent_type="$(getModuleIniEntryType "$1")" - buildPhpExtensionIniContent_soFile="$(getModuleFullPath "$1")" - buildPhpExtensionIniContent_result="$(printf '%s=%s' "$buildPhpExtensionIniContent_type" "${buildPhpExtensionIniContent_soFile##$PHP_EXTDIR/}")" - if test -n "${2:-}"; then - buildPhpExtensionIniContent_result="$(printf '%s\n%s' "$buildPhpExtensionIniContent_result" "$2")" - fi - printf '%s' "$buildPhpExtensionIniContent_result" -} - -# Check that a PHP module actually works (better to run this check before enabling the extension) -# -# Arguments: -# $1: the name of the PHP extension -# $2: base name (without path and extension) of additional php.ini configuration (optional) -# $3: additional php.ini configuration (optional) -# -# Return: -# 0 (true): if the string is in the list -# 1 (false): if the string is not in the list -checkModuleWorking() { - if test -n "${2:-}"; then - checkModuleWorking_iniFile="$PHP_INI_DIR/conf.d/$2--temp.ini" - else - checkModuleWorking_iniFile="$PHP_INI_DIR/conf.d/docker-php-ext-$1--temp.ini" - fi - checkModuleWorking_iniContent="$(buildPhpExtensionIniContent "$1" "${3:-}")" - printf 'Check if the %s module can be loaded... ' "$1" - checkModuleWorking_errBefore="$(php -r 'return;' 2>&1 || true)" - printf '%s' "$checkModuleWorking_iniContent" >"$checkModuleWorking_iniFile" - checkModuleWorking_errAfter="$(php -r 'return;' 2>&1 || true)" - rm "$checkModuleWorking_iniFile" - if test "$checkModuleWorking_errAfter" != "$checkModuleWorking_errBefore"; then - printf 'Error loading the "%s" extension:\n%s\n' "$1" "$checkModuleWorking_errAfter" >&2 - return 1 - fi - printf 'ok.\n' - return 0 -} - -# Enable a PHP extension -# -# Arguments: -# $1: the name of the PHP extension to be enabled -# $2: base name (without path and extension) of additional php.ini configuration (optional) -# $3: additional php.ini configuration (optional) -enablePhpExtension() { - if test -n "${2:-}"; then - enablePhpExtension_iniFile="$PHP_INI_DIR/conf.d/$2.ini" - else - enablePhpExtension_iniFile="$PHP_INI_DIR/conf.d/docker-php-ext-$1.ini" - fi - enablePhpExtension_iniContent="$(buildPhpExtensionIniContent "$1" "${3:-}")" - case "${IPE_DONT_ENABLE:-}" in - 1 | y* | Y*) - enablePhpExtension_enableCommand="/usr/local/bin/docker-php-ext-enable-$1" - printf '%s' "$enablePhpExtension_iniContent" >"$enablePhpExtension_iniFile-disabled" - printf '\n' >>"$enablePhpExtension_iniFile-disabled" - cat <"$enablePhpExtension_enableCommand" -#!/bin/sh - -if test -f '$enablePhpExtension_iniFile-disabled'; then - echo 'Enabling extension $1' - mv '$enablePhpExtension_iniFile-disabled' '$enablePhpExtension_iniFile' -else - echo 'The extension $1 has already been enabled' -fi -EOT - chmod +x "$enablePhpExtension_enableCommand" - printf '## Extension %s not enabled.\nYou can enable it by running the following command:\n%s\n\n' "$1" "$(basename "$enablePhpExtension_enableCommand")" - ;; - *) - printf '%s' "$enablePhpExtension_iniContent" >"$enablePhpExtension_iniFile" - printf '\n' >>"$enablePhpExtension_iniFile" - ;; - esac -} - -# Mark the pre-installed APT/APK packages as used -# that way they won't be uninstalled by accident -markPreinstalledPackagesAsUsed() { - printf '### MARKING PRE-INSTALLED PACKAGES AS IN-USE ###\n' - case "$DISTRO" in - alpine) - printf '# Packages: %s\n' "$PACKAGES_PERSISTENT_PRE" - apk add $PACKAGES_PERSISTENT_PRE - ;; - debian) - apt-mark manual $PACKAGES_PERSISTENT_PRE - ;; - esac -} - -# Install the required APT/APK packages -# -# Arguments: -# $@: the list of APT/APK packages to be installed -installRequiredPackages() { - printf '### INSTALLING REQUIRED PACKAGES ###\n' - printf '# Packages to be kept after installation: %s\n' "$PACKAGES_PERSISTENT_NEW" - printf '# Packages to be used only for installation: %s\n' "$PACKAGES_VOLATILE" - case "$DISTRO" in - alpine) - apk add $IPE_APK_FLAGS $PACKAGES_PERSISTENT_NEW $PACKAGES_VOLATILE - # https://gitlab.alpinelinux.org/alpine/aports/-/issues/12763#note_172090 - # https://github.com/mlocati/docker-php-extension-installer/issues/385 - # https://github.com/mlocati/docker-php-extension-installer/issues/537#issuecomment-1078748882 - for installRequiredPackages_item in wget; do - if test -n "$(expandInstalledSystemPackageName "$installRequiredPackages_item")"; then - apk add --upgrade "$installRequiredPackages_item" - fi - done - ;; - debian) - apt-get install -qqy --no-install-recommends $PACKAGES_PERSISTENT_NEW $PACKAGES_VOLATILE - ;; - esac -} - -# Get the version of an installed APT/APK package -# -# Arguments: -# $1: the name of the installed package -# -# Output: -# The numeric part of the package version, with from 1 to 3 numbers -# -# Example: -# 1 -# 1.2 -# 1.2.3 -getInstalledPackageVersion() { - case "$DISTRO" in - alpine) - apk info "$1" | head -n1 | cut -c $((${#1} + 2))- | grep -o -E '^[0-9]+(\.[0-9]+){0,2}' - ;; - debian) - dpkg-query --showformat='${Version}' --show "$1" 2>/dev/null | grep -o -E '^[0-9]+(\.[0-9]+){0,2}' - ;; - esac -} - -# Compare two versions -# -# Arguments: -# $1: the first version -# $2: the second version -# -# Output -# -1 if $1 is less than $2 -# 0 if $1 is the same as $2 -# 1 if $1 is greater than $2 -compareVersions() { - compareVersions_v1="$1.0.0" - compareVersions_v2="$2.0.0" - compareVersions_vMin="$(printf '%s\n%s' "$compareVersions_v1" "$compareVersions_v2" | sort -t '.' -n -k1,1 -k2,2 -k3,3 | head -n 1)" - if test "$compareVersions_vMin" != "$compareVersions_v1"; then - echo '1' - elif test "$compareVersions_vMin" = "$compareVersions_v2"; then - echo '0' - else - echo '-1' - fi -} - -# Install Oracle Instant Client & SDK -# -# Set: -# ORACLE_INSTANTCLIENT_LIBPATH -installOracleInstantClient() { - case "${IPE_INSTANTCLIENT_BASIC:-}" in - 1 | y* | Y*) - installOracleInstantClient_handle=basic - ;; - *) - installOracleInstantClient_handle=basiclite - ;; - esac - case $PHP_BITS in - 32) - installOracleInstantClient_client=client - installOracleInstantClient_version='19.9' - installOracleInstantClient_ic=https://download.oracle.com/otn_software/linux/instantclient/199000/instantclient-$installOracleInstantClient_handle-linux-$installOracleInstantClient_version.0.0.0dbru.zip - installOracleInstantClient_sdk=https://download.oracle.com/otn_software/linux/instantclient/199000/instantclient-sdk-linux-$installOracleInstantClient_version.0.0.0dbru.zip - ;; - *) - case $(uname -m) in - aarch64*) - installOracleInstantClient_client=client64 - installOracleInstantClient_version='19.10' - installOracleInstantClient_ic=https://download.oracle.com/otn_software/linux/instantclient/191000/instantclient-$installOracleInstantClient_handle-linux.arm64-$installOracleInstantClient_version.0.0.0dbru.zip - installOracleInstantClient_sdk=https://download.oracle.com/otn_software/linux/instantclient/191000/instantclient-sdk-linux.arm64-$installOracleInstantClient_version.0.0.0dbru.zip - ;; - *) - installOracleInstantClient_client=client64 - installOracleInstantClient_version='21.1' - installOracleInstantClient_ic=https://download.oracle.com/otn_software/linux/instantclient/211000/instantclient-$installOracleInstantClient_handle-linux.x64-$installOracleInstantClient_version.0.0.0.zip - installOracleInstantClient_sdk=https://download.oracle.com/otn_software/linux/instantclient/211000/instantclient-sdk-linux.x64-$installOracleInstantClient_version.0.0.0.zip - ;; - esac - ;; - esac - ORACLE_INSTANTCLIENT_LIBPATH=/usr/lib/oracle/$installOracleInstantClient_version/$installOracleInstantClient_client/lib - if ! test -e "$ORACLE_INSTANTCLIENT_LIBPATH"; then - printf 'Downloading Oracle Instant Client v%s (%s)... ' "$installOracleInstantClient_version" "$installOracleInstantClient_handle" - installOracleInstantClient_src="$(getPackageSource $installOracleInstantClient_ic)" - mkdir -p "/usr/lib/oracle/$installOracleInstantClient_version/$installOracleInstantClient_client" - mv "$installOracleInstantClient_src" "$ORACLE_INSTANTCLIENT_LIBPATH" - echo 'done.' - fi - if ! test -e "$ORACLE_INSTANTCLIENT_LIBPATH/sdk" && ! test -L "$ORACLE_INSTANTCLIENT_LIBPATH/sdk"; then - printf 'Downloading Oracle Instant SDK v%s... ' "$installOracleInstantClient_version" - installOracleInstantClient_src="$(getPackageSource $installOracleInstantClient_sdk)" - ln -sf "$installOracleInstantClient_src/sdk" "$ORACLE_INSTANTCLIENT_LIBPATH/sdk" - UNNEEDED_PACKAGE_LINKS="$UNNEEDED_PACKAGE_LINKS $ORACLE_INSTANTCLIENT_LIBPATH/sdk" - echo 'done.' - fi - case "$DISTRO" in - alpine) - if ! test -e /usr/lib/libresolv.so.2 && test -e /lib/libc.so.6; then - ln -s /lib/libc.so.6 /usr/lib/libresolv.so.2 - fi - installOracleInstantClient_ldconf=/etc/ld-musl-${TARGET_TRIPLET%-alpine-linux-musl}.path - if test -e "$installOracleInstantClient_ldconf"; then - if ! cat "$installOracleInstantClient_ldconf" | grep -q "$ORACLE_INSTANTCLIENT_LIBPATH"; then - cat "$ORACLE_INSTANTCLIENT_LIBPATH" | awk -v suffix=":$ORACLE_INSTANTCLIENT_LIBPATH" '{print NR==1 ? $0suffix : $0}' >"$ORACLE_INSTANTCLIENT_LIBPATH" - fi - else - case $PHP_BITS in - 32) - echo "/lib:/usr/local/lib:/usr/lib:$ORACLE_INSTANTCLIENT_LIBPATH" >"$installOracleInstantClient_ldconf" - ;; - *) - echo "/lib64:/lib:/usr/local/lib:/usr/lib:$ORACLE_INSTANTCLIENT_LIBPATH" >"$installOracleInstantClient_ldconf" - ;; - esac - fi - ;; - debian) - if ! test -e /etc/ld.so.conf.d/oracle-instantclient.conf; then - echo "$ORACLE_INSTANTCLIENT_LIBPATH" >/etc/ld.so.conf.d/oracle-instantclient.conf - ldconfig - fi - ;; - esac -} - -# Check if the Microsoft SQL Server ODBC Driver is installed -# -# Return: -# 0 (true): if the string is in the list -# 1 (false): if the string is not in the list -isMicrosoftSqlServerODBCInstalled() { - test -d /opt/microsoft/msodbcsql*/ -} - -# Install the Microsoft SQL Server ODBC Driver -# see https://learn.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server -installMicrosoftSqlServerODBC() { - printf 'Installing the Microsoft SQL Server ODBC Driver\n' - case "$DISTRO" in - alpine) - rm -rf /tmp/src/msodbcsql.apk - if test $PHP_MAJMIN_VERSION -le 703; then - curl -sSLf -o /tmp/src/msodbcsql.apk https://download.microsoft.com/download/e/4/e/e4e67866-dffd-428c-aac7-8d28ddafb39b/msodbcsql17_17.10.6.1-1_amd64.apk - else - case $(uname -m) in - aarch64 | arm64 | armv8) - installMicrosoftSqlServerODBC_arch=arm64 - ;; - *) - installMicrosoftSqlServerODBC_arch=amd64 - ;; - esac - curl -sSLf -o /tmp/src/msodbcsql.apk https://download.microsoft.com/download/3/5/5/355d7943-a338-41a7-858d-53b259ea33f5/msodbcsql18_18.3.3.1-1_$installMicrosoftSqlServerODBC_arch.apk - fi - printf '\n' | apk add --allow-untrusted /tmp/src/msodbcsql.apk - rm -rf /tmp/src/msodbcsql.apk - ;; - debian) - printf -- '- installing the Microsoft APT key\n' - if test $DISTRO_VERSION_NUMBER -eq 11; then - curl -sSLf -o /etc/apt/trusted.gpg.d/microsoft.asc https://packages.microsoft.com/keys/microsoft.asc - elif test $DISTRO_VERSION_NUMBER -ge 12; then - curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor --yes --output /usr/share/keyrings/microsoft-prod.gpg - else - # apt-key is deprecated - curl -sSLf https://packages.microsoft.com/keys/microsoft.asc | apt-key add - - fi - if ! test -f /etc/apt/sources.list.d/mssql-release.list; then - printf -- '- adding the Microsoft APT source list\n' - curl -sSLf https://packages.microsoft.com/config/debian/$DISTRO_VERSION_NUMBER/prod.list >/etc/apt/sources.list.d/mssql-release.list - invokeAptGetUpdate - fi - printf -- '- installing the APT package\n' - if test $PHP_MAJMIN_VERSION -le 703; then - ACCEPT_EULA=Y apt-get install -qqy --no-install-recommends msodbcsql17 - elif test $DISTRO_VERSION_NUMBER -ge 9 && test $DISTRO_VERSION_NUMBER -le 12; then - # On Debian 9 to 12 we have both msodbcsql17 and msodbcsql18: let's install just one - ACCEPT_EULA=Y apt-get install -qqy --no-install-recommends msodbcsql18 - else - ACCEPT_EULA=Y apt-get install -qqy --no-install-recommends '^msodbcsql[0-9]+$' - fi - ;; - esac -} - -# Check if libaom is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibaomInstalled() { - if ! test -f /usr/local/lib/libaom.so && ! test -f /usr/lib/libaom.so && ! test -f /usr/lib/x86_64*/libaom.so; then - return 1 - fi - if ! test -f /usr/local/include/aom/aom_codec.h && ! test -f /usr/include/aom/aom_codec.h; then - return 1 - fi - return 0 -} - -# Install libaom -installLibaom() { - printf 'Installing libaom\n' - installLibaom_version=3.10.0 - installLibaom_dir="$(getPackageSource https://aomedia.googlesource.com/aom/+archive/v$installLibaom_version.tar.gz)" - mkdir -- "$installLibaom_dir/my.build" - cd -- "$installLibaom_dir/my.build" - cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=1 -DENABLE_DOCS=0 -DENABLE_EXAMPLES=0 -DENABLE_TESTDATA=0 -DENABLE_TESTS=0 -DENABLE_TOOLS=0 -DCMAKE_INSTALL_LIBDIR:PATH=lib .. - ninja -j $(getProcessorCount) install - cd - >/dev/null - ldconfig || true -} - -# Check if libdav1d is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibdav1dInstalled() { - if ! test -f /usr/local/lib/libdav1d.so && ! test -f /usr/lib/libdav1d.so && ! test -f /usr/lib/x86_64*/libdav1d.so; then - return 1 - fi - if ! test -f /usr/local/include/dav1d/dav1d.h && ! test -f /usr/include/dav1d/dav1d.h; then - return 1 - fi - return 0 -} - -# Install libdav1d -installLibdav1d() { - printf 'Installing libdav1d\n' - installLibdav1d_dir="$(getPackageSource https://github.com/videolan/dav1d/archive/refs/tags/1.3.0.tar.gz)" - mkdir -- "$installLibdav1d_dir/build" - cd -- "$installLibdav1d_dir/build" - meson --buildtype release -Dprefix=/usr .. - ninja -j $(getProcessorCount) install - cd - >/dev/null - if test -f /usr/lib/$TARGET_TRIPLET/libdav1d.so && ! test -f /usr/lib/libdav1d.so; then - ln -s /usr/lib/$TARGET_TRIPLET/libdav1d.so /usr/lib/ - fi - ldconfig || true -} - -# Check if libyuv is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibyuvInstalled() { - if ! test -f /usr/local/lib/libyuv.so && ! test -f /usr/lib/libyuv.so && ! test -f /usr/lib/x86_64*/libyuv.so && ! test -f /usr/lib/x86_64*/libyuv.so.*; then - return 1 - fi - if ! test -f /usr/local/include/libyuv.h && ! test -f /usr/include/libyuv.h; then - return 1 - fi - return 0 -} - -# Install libyuv -installLibyuv() { - printf 'Installing libyuv\n' - installLibyuv_dir="$(getPackageSource https://chromium.googlesource.com/libyuv/libyuv/+archive/d359a9f922af840b043535d43cf9d38b220d102e.tar.gz)" - mkdir -- "$installLibyuv_dir/build" - cd -- "$installLibyuv_dir/build" - cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr -B. .. - make -j$(getProcessorCount) install - cd - >/dev/null -} - -# Check if libavif is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibavifInstalled() { - if ! test -f /usr/local/lib/libavif.so && ! test -f /usr/lib/libavif.so && ! test -f /usr/lib/x86_64*/libavif.so; then - return 1 - fi - if ! test -f /usr/local/include/avif/avif.h && ! test -f /usr/include/avif/avif.h; then - return 1 - fi - return 0 -} - -# Install libavif -installLibavif() { - printf 'Installing libavif\n' - installLibavif_dir="$(getPackageSource https://codeload.github.com/AOMediaCodec/libavif/tar.gz/refs/tags/v1.0.3)" - mkdir -- "$installLibavif_dir/build" - cd -- "$installLibavif_dir/build" - cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON -DAVIF_CODEC_AOM=ON -DCMAKE_INSTALL_LIBDIR:PATH=lib - make -j$(getProcessorCount) install - cd - >/dev/null -} - -# Install libmpdec -installLibMPDec() { - installLibMPDec_src="$(getPackageSource https://www.bytereef.org/software/mpdecimal/releases/mpdecimal-2.5.1.tar.gz)" - cd -- "$installLibMPDec_src" - ./configure --disable-cxx - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -# Check if libdatrie is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibDatrieInstalled() { - if ! test -f /usr/local/lib/libdatrie.so && ! test -f /usr/lib/libdatrie.so && ! test -f /usr/lib/x86_64*/libdatrie.so; then - return 1 - fi - if ! test -f /usr/local/include/datrie/trie.h && ! test -f /usr/include/datrie/trie.h; then - return 1 - fi - return 0 -} - -# Install libdatrie -installLibDatrie() { - printf 'Installing libdatrie\n' - installLibDatrie_src="$(getPackageSource https://github.com/tlwg/libdatrie/releases/download/v0.2.13/libdatrie-0.2.13.tar.xz)" - cd -- "$installLibDatrie_src" - ./configure - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -# Check if libdatrie is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibThaiInstalled() { - return 1 - if ! test -f /usr/local/lib/libthai.so && ! test -f /usr/lib/libthai.so && ! test -f /usr/lib/x86_64*/libthai.so; then - return 1 - fi - if ! test -f /usr/local/include/thai/thailib.h && ! test -f /usr/include/thai/thailib.h; then - return 1 - fi - return 0 -} - -# Install libdatrie -installLibThai() { - printf 'Installing libthai\n' - installLibThai_src="$(getPackageSource https://github.com/tlwg/libthai/releases/download/v0.1.29/libthai-0.1.29.tar.xz)" - cd -- "$installLibThai_src" - ./configure - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -isLibTommathInstalled() { - if test -f /usr/local/lib/libtommath.a && test -f /usr/local/include/tommath.h; then - return 0 - fi - return 1 -} - -installLibTommath() { - printf 'Installing libtommath\n' - installLibTommath_src="$(getPackageSource https://github.com/libtom/libtommath/releases/download/v1.3.0/ltm-1.3.0.tar.xz)" - mkdir -p "$installLibTommath_src/build" - cd -- "$installLibTommath_src/build" - CFLAGS='-fPIC' cmake -DCMAKE_BUILD_TYPE=Release .. - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -isLibTomcryptInstalled() { - if test -f /usr/local/lib/libtomcrypt.a && test -f /usr/local/include/tomcrypt.h; then - return 0 - fi - return 1 -} - -installLibTomcrypt() { - printf 'Installing libtomcrypt\n' - installLibTomcrypt_src="$(getPackageSource https://github.com/libtom/libtomcrypt/releases/download/v1.18.2/crypt-1.18.2.tar.xz)" - cd -- "$installLibTomcrypt_src" - CFLAGS='-fPIC' make -j$(getProcessorCount) - make install -} - -isFirebirdInstalled() { - if test -f /usr/lib/libfbclient.so && test -f /usr/include/ibase.h; then - return 0 - fi - if test -d /tmp/src/firebird; then - return 0 - fi - return 1 -} - -installFirebird() { - printf 'Installing firebird\n' - if test $PHP_MAJMIN_VERSION -ge 804; then - installFirebird_src="$(getPackageSource https://github.com/FirebirdSQL/firebird/releases/download/v5.0.2/Firebird-5.0.2.1613-0-source.tar.xz)" - cd -- "$installFirebird_src" - ./configure --enable-client-only - make -j$(getProcessorCount) - cp -Rd gen/Release/firebird/include/* /usr/include - cp -Rd gen/Release/firebird/lib/* /usr/lib - cd - >/dev/null - else - mv "$(getPackageSource https://github.com/FirebirdSQL/firebird/releases/download/R2_5_9/Firebird-2.5.9.27139-0.tar.bz2)" /tmp/src/firebird - cd /tmp/src/firebird - # Patch rwlock.h (this has been fixed in later release of firebird 3.x) - sed -i '194s/.*/#if 0/' src/common/classes/rwlock.h - ./configure --with-system-icu - # -j option can't be used: make targets must be compiled sequentially - make -s btyacc_binary gpre_boot libfbstatic libfbclient - cp gen/firebird/lib/libfbclient.so /usr/lib/ - ln -s /usr/lib/libfbclient.so /usr/lib/libfbclient.so.2 - cd - >/dev/null - fi -} - -isLibXCryptInstalled() { - if ! test -f /usr/local/lib/libcrypt.so && ! test -f /usr/lib/libcrypt.so && ! test -f /usr/lib/x86_64*/libcrypt.so; then - return 1 - fi - return 0 -} - -installLibXCrypt() { - printf 'Installing libxcrypt\n' - installLibXCrypt_version=4.4.36 - installLibXCrypt_src="$(getPackageSource "https://github.com/besser82/libxcrypt/releases/download/v$installLibXCrypt_version/libxcrypt-$installLibXCrypt_version.tar.xz")" - cd -- "$installLibXCrypt_src" - ./configure --prefix /usr - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -isLibenchant1Installed() { - if test -f /usr/lib/libenchant.so || test -f /usr/local/lib/libenchant.so; then - return 0 - fi - return 1 -} - -installLibenchant1() { - printf 'Installing libenchant1\n' - installLibenchant1_src="$(getPackageSource https://github.com/rrthomas/enchant/releases/download/enchant-1-6-1/enchant-1.6.1.tar.gz)" - cd -- "$installLibenchant1_src" - ./configure - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -# Install Composer -installComposer() { - installComposer_version="$(getWantedPHPModuleVersion @composer)" - installComposer_version="${installComposer_version#^}" - if test -z "$installComposer_version"; then - installComposer_fullname=composer - installComposer_flags='' - else - installComposer_fullname="$(printf 'composer v%s' "$installComposer_version")" - if printf '%s' "$installComposer_version" | grep -Eq '^[0-9]+$'; then - installComposer_flags="--$installComposer_version" - else - installComposer_flags="--version=$installComposer_version" - fi - fi - printf '### INSTALLING %s ###\n' "$installComposer_fullname" - actuallyInstallComposer /usr/local/bin composer "$installComposer_flags" -} - -# Actually install composer -# -# Arguments: -# $1: the directory where composer should be installed (required) -# $2: the composer filename (optional, default: composer) -# $3. additional flags for the composer installed (optional) -actuallyInstallComposer() { - actuallyInstallComposer_installer="$(mktemp -p /tmp/src)" - curl -sSLf -o "$actuallyInstallComposer_installer" https://getcomposer.org/installer - actuallyInstallComposer_expectedSignature="$(curl -sSLf https://composer.github.io/installer.sig)" - actuallyInstallComposer_actualSignature="$(php -n -r "echo hash_file('sha384', '$actuallyInstallComposer_installer');")" - if test "$actuallyInstallComposer_expectedSignature" != "$actuallyInstallComposer_actualSignature"; then - printf 'Verification of composer installer failed!\nExpected signature: %s\nActual signature: %s\n' "$actuallyInstallComposer_expectedSignature" "$actuallyInstallComposer_actualSignature" >&2 - exit 1 - fi - actuallyInstallComposer_flags="--install-dir=$1" - if test -n "${2:-}"; then - actuallyInstallComposer_flags="$actuallyInstallComposer_flags --filename=$2" - else - actuallyInstallComposer_flags="$actuallyInstallComposer_flags --filename=composer" - fi - if test -n "${3:-}"; then - actuallyInstallComposer_flags="$actuallyInstallComposer_flags $3" - fi - php "$actuallyInstallComposer_installer" $actuallyInstallComposer_flags - rm -- "$actuallyInstallComposer_installer" -} - -# Install ionCube Loader -installIonCubeLoader() { - installIonCubeLoader_version='' - case "$DISTRO" in - alpine) - # For 14.4.0 we have a Segmentation Fault - installIonCubeLoader_version=14.0.0 - ;; - esac - installIonCubeLoader_versionForUrl='' - installIonCubeLoader_versionForMessage=latest - if test -n "$installIonCubeLoader_version"; then - installIonCubeLoader_versionForUrl="_$installIonCubeLoader_version" - installIonCubeLoader_versionForMessage="v$installIonCubeLoader_version" - fi - # See https://www.ioncube.com/loaders.php - case $PHP_BITS in - 32) - case $(uname -m) in - aarch* | arm*) - installIonCubeLoader_url="https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_armv7l$installIonCubeLoader_versionForUrl.tar.gz" - ;; - *) - installIonCubeLoader_url="https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86$installIonCubeLoader_versionForUrl.tar.gz" - ;; - esac - ;; - *) - case $(uname -m) in - aarch64 | arm64 | armv8) - installIonCubeLoader_url="https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_aarch64$installIonCubeLoader_versionForUrl.tar.gz" - ;; - *) - installIonCubeLoader_url="https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64$installIonCubeLoader_versionForUrl.tar.gz" - ;; - esac - ;; - esac - printf 'Downloading ionCube Loader (%s)... ' "$installIonCubeLoader_versionForMessage" - installIonCubeLoader_dir="$(getPackageSource $installIonCubeLoader_url)" - echo 'done.' - installIonCubeLoader_so=$(php -r "printf('ioncube_loader_lin_%s.%s%s.so', PHP_MAJOR_VERSION, PHP_MINOR_VERSION, ZEND_THREAD_SAFE ? '_ts' : '');") - cp "$installIonCubeLoader_dir/$installIonCubeLoader_so" "$(getPHPExtensionsDir)/ioncube_loader.so" -} - -# Install SourceGuardian Loader -installSourceGuardian() { - # See https://www.sourceguardian.com/loaders.html - case $PHP_BITS in - 32) - installSourceGuardian_url=https://www.sourceguardian.com/loaders/download/loaders.linux-i386.tar.gz - ;; - *) - case $(uname -m) in - aarch64 | arm64 | armv8) - installSourceGuardian_url=https://www.sourceguardian.com/loaders/download/loaders.linux-aarch64.tar.gz - ;; - *) - installSourceGuardian_url=https://www.sourceguardian.com/loaders/download/loaders.linux-x86_64.tar.gz - ;; - esac - ;; - esac - printf 'Downloading SourceGuardian... ' - installSourceGuardian_dir="$(getPackageSource $installSourceGuardian_url)" - printf 'done (version: %s)\n' "$(cat "$installSourceGuardian_dir/version")" - for installSourceGuardian_phpv in $PHP_MAJDOTMINDOTPAT_VERSION $PHP_MAJDOTMIN_VERSION; do - installSourceGuardian_file="$installSourceGuardian_dir/ixed.$PHP_MAJDOTMIN_VERSION" - if test $PHP_THREADSAFE -eq 1; then - installSourceGuardian_file="${installSourceGuardian_file}ts" - fi - installSourceGuardian_file="${installSourceGuardian_file}.lin" - if test -f "$installSourceGuardian_file"; then - mv "$installSourceGuardian_file" "$(getPHPExtensionsDir)/sourceguardian.so" - return - fi - done - printf 'Unable to find a SourceGuardian compatible with PHP %s or PHP %s.\nAvailable SourceGuardian versions:\n' "$PHP_MAJDOTMINDOTPAT_VERSION" "$PHP_MAJDOTMIN_VERSION" >&2 - ls -1 "$installSourceGuardian_dir" | grep -E '^ixed\..*\.lin$' | sed -E 's/^[^0-9]+([0-9]+(\.[0-9]+)*).*$/\1/' | sort | uniq >&2 - exit 1 -} - -# Install Cargo (if not yet installed) -installCargo() { - if command -v cargo >/dev/null; then - return - fi - installCargo_cargoversion= - if ! test -f "$HOME/.cargo/env"; then - printf '# Installing cargo\n' - case "$DISTRO" in - alpine) - # see https://github.com/hyperledger/indy-vdr/issues/69#issuecomment-998104850 - export RUSTFLAGS='-C target-feature=-crt-static' - ;; - esac - curl https://sh.rustup.rs -sSf | sh -s -- -y -q - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -le 310; then - # With version 1.84.0 we have this error: - # Error relocating /root/.rustup/toolchains/stable-x86_64-unknown-linux-musl/bin/cargo: posix_spawn_file_actions_addchdir_np: symbol not found - # See https://github.com/rust-lang/rust/pull/131851#issue-2595663507 - installCargo_cargoversion=1.83.0 - fi - ;; - esac - fi - . "$HOME/.cargo/env" - if test -n "$installCargo_cargoversion"; then - rustup default -- "$installCargo_cargoversion" - fi - if test -z "${IPE_UNINSTALL_CARGO:-}"; then - IPE_UNINSTALL_CARGO=y - fi -} - -installNewRelic() { - printf '# Installing newrelic\n' - # see https://docs.newrelic.com/docs/apm/agents/php-agent/getting-started/php-agent-compatibility-requirements/ - if test $PHP_MAJMIN_VERSION -le 701; then - installNewRelic_baseUrl=https://download.newrelic.com/php_agent/archive/10.21.0.11/ - else - installNewRelic_baseUrl=https://download.newrelic.com/php_agent/release/ - fi - installNewRelic_search='\bnewrelic-php[0-9.]*-[0-9]+(\.[0-9]+)*-linux' - case "$DISTRO" in - alpine) - installNewRelic_search="$installNewRelic_search-musl" - ;; - esac - installNewRelic_file="$(curl -sSLf -o- "$installNewRelic_baseUrl" | sed -E 's/<[^>]*>//g' | grep -Eo "$installNewRelic_search.tar.gz" | sort | head -1)" - installNewRelic_url="$installNewRelic_baseUrl$installNewRelic_file" - installNewRelic_src="$(getPackageSource "$installNewRelic_url")" - cd -- "$installNewRelic_src" - NR_INSTALL_USE_CP_NOT_LN=1 NR_INSTALL_SILENT=1 ./newrelic-install install - case "${IPE_NEWRELIC_DAEMON:-}" in - 1 | y* | Y*) - NR_INSTALL_USE_CP_NOT_LN=1 NR_INSTALL_SILENT=1 ./newrelic-install install_daemon - ;; - esac - case "${IPE_NEWRELIC_KEEPLOG:-}" in - 1 | y* | Y*) ;; - *) - rm -f /tmp/nrinstall-*.tar - ;; - esac - cd - >/dev/null - cat <&2 - fi - if test -n "$(getModuleSourceCodePath "$1")"; then - printf '### WARNING the module "%s" is bundled with PHP, you can NOT specify a source code path for it\n' "$1" >&2 - fi - case "$1" in - dba) - if test -e /usr/lib/$TARGET_TRIPLET/libdb-5.3.so && ! test -e /usr/lib/libdb-5.3.so; then - ln -s /usr/lib/$TARGET_TRIPLET/libdb-5.3.so /usr/lib/ - fi - if test $PHP_MAJMIN_VERSION -le 505; then - docker-php-source extract - patch /usr/src/php/ext/dba/config.m4 </dev/null - ;; - oci8 | pdo_oci) - installOracleInstantClient - if test "$1" = oci8; then - docker-php-ext-configure "$1" "--with-oci8=instantclient,$ORACLE_INSTANTCLIENT_LIBPATH" - elif test "$1" = pdo_oci; then - docker-php-ext-configure "$1" "--with-pdo-oci=instantclient,$ORACLE_INSTANTCLIENT_LIBPATH" - fi - ;; - pdo_odbc) - docker-php-ext-configure pdo_odbc --with-pdo-odbc=unixODBC,/usr - ;; - snmp) - case "$DISTRO" in - alpine) - mkdir -p -m 0755 /var/lib/net-snmp/mib_indexes - ;; - esac - ;; - sockets) - case "$PHP_MAJDOTMINDOTPAT_VERSION" in - 8.0.15 | 8.1.2) - sed -i '70 i #ifndef _GNU_SOURCE' /usr/src/php/ext/sockets/config.m4 - sed -i '71 i #define _GNU_SOURCE' /usr/src/php/ext/sockets/config.m4 - sed -i '72 i #endif' /usr/src/php/ext/sockets/config.m4 - ;; - esac - ;; - sybase_ct) - docker-php-ext-configure sybase_ct --with-sybase-ct=/usr - ;; - tidy) - case "$DISTRO" in - alpine) - if ! test -f /usr/include/buffio.h; then - ln -s /usr/include/tidybuffio.h /usr/include/buffio.h - UNNEEDED_PACKAGE_LINKS="$UNNEEDED_PACKAGE_LINKS /usr/include/buffio.h" - fi - ;; - esac - ;; - zip) - if test $PHP_MAJMIN_VERSION -le 505; then - docker-php-ext-configure zip - elif test $PHP_MAJMIN_VERSION -le 703; then - docker-php-ext-configure zip --with-libzip - else - docker-php-ext-configure zip --with-zip - fi - ;; - esac - installBundledModule_errBefore="$(php -r 'return;' 2>&1 || true)" - docker-php-ext-install -j$(getProcessorCount) "$1" - case "$1" in - imap) - case "$DISTRO_VERSION" in - debian@9) - dpkg -r libc-client2007e-dev - ;; - esac - ;; - esac - case "${IPE_SKIP_CHECK:-}" in - 1 | y* | Y*) ;; - *) - php -r 'return;' >/dev/null 2>/dev/null || true - installBundledModule_errAfter="$(php -r 'return;' 2>&1 || true)" - if test "$installBundledModule_errAfter" != "$installBundledModule_errBefore"; then - printf 'PHP has problems after installing the "%s" extension:\n%s\n' "$1" "$installBundledModule_errAfter" >&2 - rm "$PHP_INI_DIR/conf.d/docker-php-ext-$1.ini" || true - return 1 - fi - ;; - esac -} - -# Fetch a tar.gz file, extract it and returns the path of the extracted folder. -# -# Arguments: -# $1: the URL of the file to be downloaded -# -# Output: -# The path of the extracted directory -getPackageSource() { - mkdir -p /tmp/src - getPackageSource_tempFile=$(mktemp -p /tmp/src) - curl -sSLf -o "$getPackageSource_tempFile" "$1" - getPackageSource_tempDir=$(mktemp -p /tmp/src -d) - cd "$getPackageSource_tempDir" - tar -xzf "$getPackageSource_tempFile" 2>/dev/null || tar -xf "$getPackageSource_tempFile" 2>/dev/null || ( - if command -v bsdtar >/dev/null; then - bsdtar -xf "$getPackageSource_tempFile" - else - unzip -q "$getPackageSource_tempFile" - fi - ) - cd - >/dev/null - unlink "$getPackageSource_tempFile" - getPackageSource_outDir='' - for getPackageSource_i in $(ls "$getPackageSource_tempDir"); do - if test -n "$getPackageSource_outDir" || test -f "$getPackageSource_tempDir/$getPackageSource_i"; then - getPackageSource_outDir='' - break - fi - getPackageSource_outDir="$getPackageSource_tempDir/$getPackageSource_i" - done - if test -n "$getPackageSource_outDir"; then - printf '%s' "$getPackageSource_outDir" - else - printf '%s' "$getPackageSource_tempDir" - fi -} - -# Install a PECL/remote PHP module given its handle -# -# Arguments: -# $1: the handle of the PHP module -installRemoteModule() { - installRemoteModule_module="$1" - printf '### INSTALLING REMOTE MODULE %s ###\n' "$installRemoteModule_module" - installRemoteModule_version="$(resolvePHPModuleVersion "$installRemoteModule_module")" - installRemoteModule_path="$(getModuleSourceCodePath "$installRemoteModule_module")" - rm -rf "$CONFIGURE_FILE" - installRemoteModule_manuallyInstalled=0 - installRemoteModule_cppflags='' - installRemoteModule_ini_basename='' - installRemoteModule_ini_extra='' - case "$installRemoteModule_module" in - amqp) - if test -z "$installRemoteModule_version"; then - if test "$DISTRO_VERSION" = debian@8; then - # in Debian Jessie we have librabbitmq version 0.5.2 - installRemoteModule_version=1.9.3 - elif test $PHP_MAJMIN_VERSION -le 505; then - installRemoteModule_version=1.9.4 - elif test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=1.11.0 - fi - fi - ;; - apcu) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=4.0.11 - fi - fi - ;; - apcu_bc) - # apcu_bc must be loaded after apcu - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - ;; - ast) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=1.0.16 - fi - fi - ;; - bitset) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.0.4 - fi - fi - ;; - blackfire) - case $(uname -m) in - i386 | i686 | x86) - installRemoteModule_tmp1=i386 - ;; - aarch64 | arm64 | armv8) - installRemoteModule_tmp1=arm64 - ;; - *) - installRemoteModule_tmp1=amd64 - ;; - esac - case $DISTRO in - alpine) - installRemoteModule_distro=alpine - ;; - *) - installRemoteModule_distro=linux - ;; - esac - installRemoteModule_tmp2=$(php -r 'echo PHP_MAJOR_VERSION . PHP_MINOR_VERSION . (ZEND_THREAD_SAFE ? "-zts" : "");') - installRemoteModule_tmp="$(mktemp -p /tmp/src -d)" - cd "$installRemoteModule_tmp" - curl -sSLf --user-agent Docker https://blackfire.io/api/v1/releases/probe/php/$installRemoteModule_distro/$installRemoteModule_tmp1/$installRemoteModule_tmp2 | tar xz - mv blackfire-*.so $(getPHPExtensionsDir)/blackfire.so - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - installRemoteModule_ini_extra="$(printf '%sblackfire.agent_socket=tcp://blackfire:8307\n' "$installRemoteModule_ini_extra")" - ;; - cassandra) - installRemoteModule_src="$(getPackageSource https://github.com/nano-interactive/ext-cassandra/tarball/1cf12c5ce49ed43a2c449bee4b7b23ce02a37bf0)" - cd "$installRemoteModule_src/ext" - phpize - ./configure - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - ;; - cmark) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=1.1.0 - fi - fi - if ! test -e /usr/local/lib/libcmark.so && ! test -e /usr/local/lib64/libcmark.so && ! test -e /usr/lib/libcmark.so && ! test -e /usr/lib64/libcmark.so && ! test -e /lib/libcmark.so; then - if test $(compareVersions "$(cmake --version | head -n1 | sed -E 's/^.* //')" '3.7') -lt 0; then - installRemoteModule_tmp=0.29.0 - else - installRemoteModule_tmp=0.31.1 - fi - cd "$(getPackageSource https://github.com/commonmark/cmark/archive/$installRemoteModule_tmp.tar.gz)" - make -s -j$(getProcessorCount) cmake_build - make -s -j$(getProcessorCount) install - cd - >/dev/null - case "$DISTRO" in - alpine) - if test -e /usr/local/lib64/libcmark.so.$installRemoteModule_tmp && ! test -e /usr/local/lib/libcmark.so.$installRemoteModule_tmp; then - ln -s /usr/local/lib64/libcmark.so.$installRemoteModule_tmp /usr/local/lib/ - fi - ;; - *) - ldconfig || true - ;; - esac - fi - ;; - csv) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=0.3.1 - fi - fi - ;; - ddtrace) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=0.75.0 - fi - if test -z "$installRemoteModule_version"; then - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -le 312; then - # cc is not supported due to a memcmp related bug - installRemoteModule_version=1.1.0 - fi - ;; - esac - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 0.75.0) -ge 0; then - installCargo - fi - ;; - decimal) - case "$DISTRO" in - alpine) - if ! test -f /usr/local/lib/libmpdec.so; then - installLibMPDec - fi - ;; - debian) - if test $DISTRO_MAJMIN_VERSION -ge 1200; then - if test -z "$(ldconfig -p | grep -E '\slibmpdec.so\s')"; then - installLibMPDec - fi - fi - ;; - esac - ;; - ds) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 703; then - installRemoteModule_version=1.3.0 - elif test $PHP_MAJMIN_VERSION -lt 704; then - installRemoteModule_version=1.4.0 - fi - fi - ;; - ecma_intl) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=alpha - fi - ;; - ev) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 800; then - installRemoteModule_version=1.1.5 - fi - fi - ;; - event) - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 2.4.0) -ge 0; then - # Enable internal debugging in Event - addConfigureOption enable-event-debug no - # Enable sockets support in Event - if php --ri sockets >/dev/null 2>/dev/null; then - addConfigureOption enable-event-sockets yes - else - addConfigureOption enable-event-sockets no - fi - # libevent installation prefix - addConfigureOption with-event-libevent-dir /usr - # Include libevent's pthreads library and enable thread safety support in Event - addConfigureOption with-event-pthreads yes - # Include libevent protocol-specific functionality support including HTTP, DNS, and RPC - addConfigureOption with-event-extra yes - # Include libevent OpenSSL support - addConfigureOption with-event-openssl yes - # PHP Namespace for all Event classes - if test -n "${IPE_EVENT_NAMESPACE:-}"; then - addConfigureOption with-event-ns "$IPE_EVENT_NAMESPACE" - else - addConfigureOption with-event-ns no - fi - # openssl installation prefix - addConfigureOption with-openssl-dir yes - elif test $(compareVersions "$installRemoteModule_version" 1.7.6) -ge 0; then - # Enable internal debugging in Event - addConfigureOption enable-event-debug no - # Enable sockets support in Event - if php --ri sockets >/dev/null 2>/dev/null; then - addConfigureOption enable-event-sockets yes - else - addConfigureOption enable-event-sockets no - fi - # libevent installation prefix - addConfigureOption with-event-libevent-dir /usr - # Include libevent's pthreads library and enable thread safety support in Event - addConfigureOption with-event-pthreads yes - # Include libevent protocol-specific functionality support including HTTP, DNS, and RPC - addConfigureOption with-event-extra yes - # Include libevent OpenSSL support - addConfigureOption with-event-openssl yes - # openssl installation prefix - addConfigureOption with-openssl-dir no - elif test $(compareVersions "$installRemoteModule_version" 1.3.0) -ge 0; then - # Enable internal debugging in event - addConfigureOption enable-event-debug no - # libevent installation prefix - addConfigureOption with-event-libevent-dir /usr - # Include libevent's pthreads library and enable thread safety support in event - addConfigureOption with-event-pthreads yes - # Include libevent protocol-specific functionality support including HTTP, DNS, and RPC - addConfigureOption with-event-extra yes - # Include libevent OpenSSL support - addConfigureOption with-event-openssl yes - # openssl installation prefix - addConfigureOption with-openssl-dir no - fi - # event must be loaded after sockets - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - ;; - gearman) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.1.2 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=2.1.3 - fi - fi - case "$DISTRO" in - alpine) - if ! test -e /usr/local/include/libgearman/gearman.h || ! test -e /usr/local/lib/libgearman.so; then - installRemoteModule_src="$(getPackageSource https://github.com/gearman/gearmand/releases/download/1.1.21/gearmand-1.1.21.tar.gz)" - cd -- "$installRemoteModule_src" - ./configure - make -j$(getProcessorCount) install-binPROGRAMS - make -j$(getProcessorCount) install-nobase_includeHEADERS - cd - >/dev/null - fi - ;; - esac - ;; - geoip) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=beta - fi - ;; - geos) - if test -z "$installRemoteModule_path"; then - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=dfe1ab17b0f155cc315bc13c75689371676e02e1 - fi - installRemoteModule_src="$(getPackageSource https://github.com/libgeos/php-geos/archive/$installRemoteModule_version.tar.gz)" - cd "$installRemoteModule_src" - ./autogen.sh - ./configure - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - fi - ;; - geospatial) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.2.1 - else - installRemoteModule_version=beta - fi - fi - ;; - gmagick) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.1.7RC3 - else - installRemoteModule_version=beta - fi - fi - ;; - grpc) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.33.1 - else - case "$DISTRO_VERSION" in - debian@8) - installRemoteModule_version=1.46.3 - ;; - alpine@3.7 | alpine@3.8 | debian@9) # With newer version: "This package requires GCC 7 or higher" - installRemoteModule_version=1.52.1 - ;; - esac - fi - fi - if test -z "$installRemoteModule_version" || test "$installRemoteModule_version" = 1.35.0; then - case "$DISTRO_VERSION" in - alpine@3.13) - installRemoteModule_cppflags='-Wno-maybe-uninitialized' - ;; - esac - fi - ;; - http) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.6.0 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=3.2.4 - fi - fi - if test $PHP_MAJMIN_VERSION -ge 700; then - if ! test -e /usr/local/lib/libidnkit.so; then - installRemoteModule_src="$(getPackageSource https://jprs.co.jp/idn/idnkit-2.3.tar.bz2)" - cd -- "$installRemoteModule_src" - CFLAGS=-Wno-incompatible-pointer-types ./configure - make -j$(getProcessorCount) install - cd - >/dev/null - fi - fi - # http must be loaded after raphf and propro - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - ;; - igbinary) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.0.8 - fi - fi - ;; - imap) - # Include Kerberos Support - addConfigureOption with-kerberos yes - # Include SSL Support - addConfigureOption with-imap-ssl yes - ;; - imagick) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 506; then - installRemoteModule_version=3.7.0 - fi - fi - ;; - inotify) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.1.6 - fi - fi - ;; - ion) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=alpha - fi - if ! test -f /usr/local/lib/libionc.so || ! test -f /usr/local/include/ionc/ion.h; then - echo 'Installing ion-c... ' - installRemoteModule_src="$(mktemp -p /tmp/src -d)" - git clone -q -c advice.detachedHead=false --depth 1 --branch v1.1.3 https://github.com/amzn/ion-c.git "$installRemoteModule_src/ion" - ( - cd "$installRemoteModule_src/ion" - git submodule init -q - git submodule update -q - mkdir -p build - cd build - CFLAGS='-Wno-incompatible-pointer-types -Wno-stringop-overflow -Wno-discarded-qualifiers' cmake -DCMAKE_BUILD_TYPE=Release .. -Wno-dev - make clean - make -j$(getProcessorCount) install - ) - rm -rf "$installRemoteModule_src" - fi - addConfigureOption with-ion "shared,/usr/local" - ;; - ioncube_loader) - installIonCubeLoader - installRemoteModule_manuallyInstalled=1 - ;; - jsmin) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=2.0.1 - fi - fi - ;; - jsonpath) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 800; then - installRemoteModule_version=1.0.1 - fi - fi - ;; - luasandbox) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 702; then - installRemoteModule_version=3.0.3 - fi - fi - ;; - lz4) - if test -z "$installRemoteModule_path"; then - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=0.4.3 - fi - installRemoteModule_src="$(getPackageSource https://github.com/kjdev/php-ext-lz4/archive/refs/tags/$installRemoteModule_version.tar.gz)" - cd "$installRemoteModule_src" - phpize - ./configure --with-lz4-includedir=/usr - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - fi - ;; - lzf) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 702; then - installRemoteModule_version=1.6.8 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" '1.5.0') -ge 0; then - # Sacrifice speed in favour of compression ratio? - case "${IPE_LZF_BETTERCOMPRESSION:-}" in - 1 | y* | Y*) - addConfigureOption 'enable-lzf-better-compression' 'yes' - ;; - *) - addConfigureOption 'enable-lzf-better-compression' 'no' - ;; - esac - fi - ;; - mailparse) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.1.6 - elif test $PHP_MAJMIN_VERSION -le 702; then - installRemoteModule_version=3.1.3 - fi - fi - ;; - memcache) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.2.7 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=4.0.5.2 - fi - fi - ;; - memcached) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.2.0 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - # Set the path to libmemcached install prefix - addConfigureOption 'with-libmemcached-dir' 'no' - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" '3.0.0') -ge 0; then - # Set the path to ZLIB install prefix - addConfigureOption 'with-zlib-dir' 'no' - # Use system FastLZ library - addConfigureOption 'with-system-fastlz' 'no' - # Enable memcached igbinary serializer support - if php --ri igbinary >/dev/null 2>/dev/null; then - addConfigureOption 'enable-memcached-igbinary' 'yes' - else - addConfigureOption 'enable-memcached-igbinary' 'no' - fi - # Enable memcached msgpack serializer support - if php --ri msgpack >/dev/null 2>/dev/null; then - addConfigureOption 'enable-memcached-msgpack' 'yes' - else - addConfigureOption 'enable-memcached-msgpack' 'no' - fi - # Enable memcached json serializer support - addConfigureOption 'enable-memcached-json' 'yes' - # Enable memcached protocol support - addConfigureOption 'enable-memcached-protocol' 'no' # https://github.com/php-memcached-dev/php-memcached/issues/418#issuecomment-449587972 - # Enable memcached sasl support - addConfigureOption 'enable-memcached-sasl' 'yes' - # Enable memcached session handler support - addConfigureOption 'enable-memcached-session' 'yes' - fi - # memcached must be loaded after msgpack - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - ;; - memprof) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.0.0 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=2.1.0 - fi - fi - ;; - mongo) - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" '1.5.0') -ge 0; then - # Build with Cyrus SASL (MongoDB Enterprise Authentication) support? - addConfigureOption '-with-mongo-sasl' 'yes' - fi - ;; - mongodb) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 505; then - installRemoteModule_version=1.5.5 - elif test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.7.5 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=1.9.2 - elif test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=1.11.1 - elif test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=1.16.2 - elif test $PHP_MAJMIN_VERSION -le 800; then - installRemoteModule_version=1.20.1 - fi - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 1.17.0) -ge 0; then - # Enable developer flags? (yes/no) - addConfigureOption enable-mongodb-developer-flags no - # Enable code coverage? (yes/no) - addConfigureOption enable-mongodb-coverage no - # Use system libraries for libbson, libmongoc, and libmongocrypt? (yes/no) - addConfigureOption with-mongodb-system-libs no - # Enable client-side encryption? (auto/yes/no) - addConfigureOption with-mongodb-client-side-encryption yes - # Enable Snappy for compression? (auto/yes/no) - addConfigureOption with-mongodb-snappy yes - # Enable zlib for compression? (auto/system/bundled/no) - addConfigureOption with-mongodb-zlib yes - # Enable zstd for compression? (auto/yes/no) - addConfigureOption with-mongodb-zstd yes - # Enable SASL for Kerberos authentication? (auto/cyrus/no) - addConfigureOption with-mongodb-sasl yes - # Enable crypto and TLS? (auto/openssl/libressl/darwin/no) - addConfigureOption with-mongodb-ssl yes - # Use system crypto profile (OpenSSL only)? (yes/no) - addConfigureOption enable-mongodb-crypto-system-profile yes - # Use bundled or system utf8proc for SCRAM-SHA-256 SASLprep? (bundled/system) - addConfigureOption with-mongodb-utf8proc bundled - fi - ;; - mosquitto) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=beta - fi - ;; - msgpack) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.5.7 - fi - fi - ;; - newrelic) - installNewRelic - installRemoteModule_manuallyInstalled=2 - ;; - oauth) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.2.3 - fi - fi - ;; - oci8 | pdo_oci) - installOracleInstantClient - if test "$installRemoteModule_module" = oci8; then - addConfigureOption with-oci8 "instantclient,$ORACLE_INSTANTCLIENT_LIBPATH" - elif test "$installRemoteModule_module" = pdo_oci; then - addConfigureOption with-pdo-oci "instantclient,$ORACLE_INSTANTCLIENT_LIBPATH" - fi - ;; - opencensus) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=alpha - fi - ;; - openswoole) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 704; then - installRemoteModule_version=4.10.0 - elif test $PHP_MAJMIN_VERSION -lt 801; then - installRemoteModule_version=22.0.0 - elif test $PHP_MAJMIN_VERSION -lt 802; then - installRemoteModule_version=22.1.2 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if php --ri sockets >/dev/null 2>/dev/null; then - installRemoteModule_sockets=yes - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - else - installRemoteModule_sockets=no - fi - installRemoteModule_openssl=yes - if test -n "$installRemoteModule_version" && test $(compareVersions "$installRemoteModule_version" 22.1.2) -ge 0; then - # enable coroutine sockets? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 protocol? - addConfigureOption enable-http2 yes - # enable coroutine mysqlnd? - addConfigureOption enable-mysqlnd yes - # enable coroutine curl? - addConfigureOption enable-hook-curl yes - # enable coroutine postgres? - addConfigureOption with-postgres yes - elif test $(compareVersions "$installRemoteModule_version" 22.1.1) -ge 0; then - # enable c-ares support? - addConfigureOption enable-cares yes - # enable coroutine sockets? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 protocol? - addConfigureOption enable-http2 yes - # enable coroutine mysqlnd? - addConfigureOption enable-mysqlnd yes - # enable coroutine curl? - addConfigureOption enable-hook-curl yes - # enable coroutine postgres? - addConfigureOption with-postgres yes - elif test $(compareVersions "$installRemoteModule_version" 22.1.0) -ge 0; then - # enable coroutine sockets? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 protocol? - addConfigureOption enable-http2 yes - # enable coroutine mysqlnd? - addConfigureOption enable-mysqlnd yes - # enable coroutine curl? - addConfigureOption enable-hook-curl yes - # enable coroutine postgres? - addConfigureOption with-postgres yes - elif test $(compareVersions "$installRemoteModule_version" 22.0.0) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable hook curl support? - addConfigureOption enable-hook-curl yes - # enable postgres support? - addConfigureOption with-postgres yes - elif test $(compareVersions "$installRemoteModule_version" 4.8.0) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable json support? - addConfigureOption enable-swoole-json yes - # enable curl support? - addConfigureOption enable-swoole-curl yes - # enable postgres support? - addConfigureOption with-postgres yes - else - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable json support? - addConfigureOption enable-swoole-json yes - # enable curl support? - addConfigureOption enable-swoole-curl yes - fi - ;; - operator) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=beta - fi - ;; - parallel) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=0.8.3 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=1.1.4 - fi - fi - ;; - parle) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 704; then - installRemoteModule_version=0.8.3 - else - installRemoteModule_version=beta - fi - fi - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 0.8.4) -ge 0; then - # Enable internal UTF-32 support in parle - addConfigureOption enable-parle-utf32 yes - fi - ;; - pcov) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=0.9.0 - fi - fi - ;; - phalcon) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMINPAT_VERSION -lt 70401; then - installRemoteModule_version=4.1.2 - elif test $PHP_MAJMIN_VERSION -lt 800; then - installRemoteModule_version=5.4.0 - fi - fi - installRemoteModule_cppflags='-Wno-incompatible-pointer-types' - ;; - php_trie) - if ! test -f /usr/local/include/hat-trie/include/tsl/htrie_map.h; then - installRemoteModule_src="$(getPackageSource https://codeload.github.com/Tessil/hat-trie/tar.gz/v0.6.0)" - mkdir -p /usr/local/include/hat-trie - mv "$installRemoteModule_src/include" /usr/local/include/hat-trie - fi - ;; - pq) - # pq must be loaded after raphf - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - ;; - propro) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.0.2 - fi - fi - ;; - protobuf) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=3.12.4 - elif test $PHP_MAJMIN_VERSION -lt 800; then - installRemoteModule_version=3.24.4 - elif test $PHP_MAJMIN_VERSION -lt 801; then - installRemoteModule_version=3.25.3 - fi - fi - ;; - psr) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 506; then - installRemoteModule_version=0.5.1 - elif test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=0.6.1 - elif test $PHP_MAJMIN_VERSION -lt 703; then - installRemoteModule_version=1.1.0 - fi - fi - ;; - pthreads) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.0.10 - fi - fi - ;; - raphf) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.1.2 - fi - fi - ;; - rdkafka) - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version"; then - installRemoteModule_version1='' - if test $PHP_MAJMIN_VERSION -le 505; then - installRemoteModule_version1=3.0.5 - elif test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version1=4.1.2 - fi - installRemoteModule_version2='' - case "$DISTRO" in - alpine) - installRemoteModule_tmp='librdkafka' - ;; - debian) - installRemoteModule_tmp='librdkafka*' - ;; - *) - installRemoteModule_tmp='' - ;; - esac - if test -n "$installRemoteModule_tmp"; then - installRemoteModule_tmp="$(getInstalledPackageVersion "$installRemoteModule_tmp")" - if test -n "$installRemoteModule_tmp" && test $(compareVersions "$installRemoteModule_tmp" '0.11.0') -lt 0; then - installRemoteModule_version2=3.1.3 - fi - fi - if test -z "$installRemoteModule_version1" || test -z "$installRemoteModule_version2"; then - installRemoteModule_version="$installRemoteModule_version1$installRemoteModule_version2" - elif test $(compareVersions "$installRemoteModule_version1" "$installRemoteModule_version2") -le 0; then - installRemoteModule_version="$installRemoteModule_version1" - else - installRemoteModule_version="$installRemoteModule_version2" - fi - fi - ;; - redis) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=4.3.0 - elif test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=5.3.7 - elif test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=6.0.2 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - # Enable igbinary serializer support? - if php --ri igbinary >/dev/null 2>/dev/null; then - addConfigureOption enable-redis-igbinary yes - else - addConfigureOption enable-redis-igbinary no - fi - # Enable lzf compression support? - addConfigureOption enable-redis-lzf yes - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 5.0.0) -ge 0; then - if ! test -e /usr/include/zstd.h || ! test -e /usr/lib/libzstd.so -o -e "/usr/lib/$TARGET_TRIPLET/libzstd.so"; then - installRemoteModule_zstdVersion=1.4.4 - installRemoteModule_zstdVersionMajor=$(echo $installRemoteModule_zstdVersion | cut -d. -f1) - rm -rf /tmp/src/zstd - mv "$(getPackageSource https://github.com/facebook/zstd/releases/download/v$installRemoteModule_zstdVersion/zstd-$installRemoteModule_zstdVersion.tar.gz)" /tmp/src/zstd - cd /tmp/src/zstd - make V=0 -j$(getProcessorCount) lib - cp -f lib/libzstd.so "/usr/lib/$TARGET_TRIPLET/libzstd.so.$installRemoteModule_zstdVersion" - ln -sf "/usr/lib/$TARGET_TRIPLET/libzstd.so.$installRemoteModule_zstdVersion" "/usr/lib/$TARGET_TRIPLET/libzstd.so.$installRemoteModule_zstdVersionMajor" - ln -sf "/usr/lib/$TARGET_TRIPLET/libzstd.so.$installRemoteModule_zstdVersion" "/usr/lib/$TARGET_TRIPLET/libzstd.so" - ln -sf /tmp/src/zstd/lib/zstd.h /usr/include/zstd.h - UNNEEDED_PACKAGE_LINKS="$UNNEEDED_PACKAGE_LINKS /usr/include/zstd.h" - cd - >/dev/null - fi - # Enable zstd compression support? - addConfigureOption enable-redis-zstd yes - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 6.0.0) -ge 0; then - # Enable msgpack serializer support? - if php --ri msgpack >/dev/null 2>/dev/null; then - addConfigureOption enable-redis-msgpack yes - else - addConfigureOption enable-redis-msgpack no - fi - # Enable lz4 compression? - addConfigureOption enable-redis-lz4 yes - # Use system liblz4? - addConfigureOption with-liblz4 yes - fi - fi - ;; - relay) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version="$(curl -sSLf https://builds.r2.relay.so/meta/latest)" - installRemoteModule_version="${installRemoteModule_version#v}" - fi - case $(uname -m) in - aarch64 | arm64 | armv8) - installRemoteModule_hardware=aarch64 - ;; - *) - installRemoteModule_hardware=x86-64 - ;; - esac - installRemoteModule_distro="$DISTRO" - installRemoteModule_flags='' - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -lt 317; then - installRemoteModule_distro=alpine3.9 - else - installRemoteModule_distro=alpine3.17 - fi - ;; - debian) - case "$(dpkg -l 'libssl*' | grep -E '^ii ' | cut -d' ' -f3)" in - libssl3*) - installRemoteModule_flags=+libssl3 - ;; - esac - ;; - esac - # See https://relay.so/builds - installRemoteModule_url="https://builds.r2.relay.so/v${installRemoteModule_version}/relay-v${installRemoteModule_version}-php${PHP_MAJDOTMIN_VERSION}-${installRemoteModule_distro}-${installRemoteModule_hardware}${installRemoteModule_flags}.tar.gz" - printf 'Downloading relay v%s (%s) from %s... ' "$installRemoteModule_version" "$installRemoteModule_hardware" "$installRemoteModule_url" - installRemoteModule_src="$(getPackageSource $installRemoteModule_url)" - echo 'done.' - cp -- "$installRemoteModule_src/relay-pkg.so" "$PHP_EXTDIR/relay.so" - sed -i "s/00000000-0000-0000-0000-000000000000/$(cat /proc/sys/kernel/random/uuid)/" "$PHP_EXTDIR/relay.so" - installRemoteModule_ini_extra="$(grep -vE '^[ \t]*extension[ \t]*=' $installRemoteModule_src/relay.ini)" - installRemoteModule_manuallyInstalled=1 - ;; - saxon) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -ge 800; then - installRemoteModule_version='12.4.2' - else - installRemoteModule_version='12.3' - fi - fi - installRemoteModule_majorVersion="${installRemoteModule_version%%.*}" - if test "$installRemoteModule_majorVersion" -ge 12; then - case $(uname -m) in - aarch64 | arm64 | armv8) - installRemoteModule_url=https://downloads.saxonica.com/SaxonC/EE/${installRemoteModule_majorVersion}/libsaxon-EEC-linux-aarch64-v${installRemoteModule_version}.zip - ;; - *) - installRemoteModule_url=https://downloads.saxonica.com/SaxonC/EE/${installRemoteModule_majorVersion}/libsaxon-EEC-linux-x86_64-v${installRemoteModule_version}.zip - ;; - esac - else - installRemoteModule_url=https://downloads.saxonica.com/SaxonC/EE/${installRemoteModule_majorVersion}/libsaxon-EEC-setup64-v${installRemoteModule_version}.zip - fi - installRemoteModule_dir="$(getPackageSource $installRemoteModule_url)" - if ! test -f /usr/lib/libsaxon-*.so; then - if test "$installRemoteModule_majorVersion" -ge 12; then - cp $installRemoteModule_dir/libs/nix/*.so /usr/lib/ - else - cp $installRemoteModule_dir/*.so /usr/lib/ - fi - ldconfig || true - fi - cd "$installRemoteModule_dir/Saxon.C.API" - phpize - ./configure --enable-saxon - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - ;; - seasclick) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.1.0 - fi - fi - ;; - seaslog) - installRemoteModule_cppflags='-Wno-incompatible-pointer-types' - ;; - smbclient) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.1.1 - elif test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=1.1.2 - fi - fi - ;; - snappy) - if test -z "$installRemoteModule_path"; then - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=0.2.1 - fi - installRemoteModule_src="$(getPackageSource https://github.com/kjdev/php-ext-snappy/archive/refs/tags/$installRemoteModule_version.tar.gz)" - cd "$installRemoteModule_src" - phpize - ./configure --with-snappy-includedir=/usr - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - fi - ;; - snuffleupagus) - if test -z "$installRemoteModule_path"; then - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 800; then - installRemoteModule_version=0.9.0 - elif test $PHP_MAJMIN_VERSION -le 801; then - installRemoteModule_version=0.10.0 - else - installRemoteModule_version=0.11.0 - fi - fi - installRemoteModule_src="$(getPackageSource https://codeload.github.com/jvoisin/snuffleupagus/tar.gz/v$installRemoteModule_version)" - cd "$installRemoteModule_src/src" - phpize - ./configure --enable-snuffleupagus - make -j$(getProcessorCount) install - cd - >/dev/null - cp -a "$installRemoteModule_src/config/default.rules" "$PHP_INI_DIR/conf.d/snuffleupagus.rules" - if test $(compareVersions "$installRemoteModule_version" 0.8.0) -ge 0; then - printf '\n# Disable "PHP version is not officially maintained anymore" message\nsp.global.show_old_php_warning.disable();\n' >>"$PHP_INI_DIR/conf.d/snuffleupagus.rules" - fi - else - if test -f "$installRemoteModule_path/config/default.rules"; then - cp -a "$installRemoteModule_path/config/default.rules" "$PHP_INI_DIR/conf.d/snuffleupagus.rules" - fi - fi - installRemoteModule_ini_extra="$(printf '%ssp.configuration_file=%s\n' "$installRemoteModule_ini_extra" "$PHP_INI_DIR/conf.d/snuffleupagus.rules")" - installRemoteModule_manuallyInstalled=1 - ;; - sodium | libsodium) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=1.0.7 - fi - fi - ;; - solr) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=2.4.0 - elif test $PHP_MAJMIN_VERSION -lt 704; then - installRemoteModule_version=2.6.0 - fi - fi - ;; - sourceguardian) - installSourceGuardian - installRemoteModule_manuallyInstalled=1 - ;; - spx) - if test -z "$installRemoteModule_path"; then - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=v0.4.18 - fi - if test "${installRemoteModule_version%.*}" = "$installRemoteModule_version"; then - installRemoteModule_displayVersion="$installRemoteModule_version" - else - installRemoteModule_displayVersion="git--master-$installRemoteModule_version" - fi - installRemoteModule_src="$(getPackageSource https://codeload.github.com/NoiseByNorthwest/php-spx/tar.gz/$installRemoteModule_version)" - cd -- "$installRemoteModule_src" - phpize - ./configure - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - fi - ;; - sqlsrv | pdo_sqlsrv) - isMicrosoftSqlServerODBCInstalled || installMicrosoftSqlServerODBC - if test -z "$installRemoteModule_version"; then - # https://docs.microsoft.com/it-it/sql/connect/php/system-requirements-for-the-php-sql-driver?view=sql-server-2017 - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=3.0.1 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=5.3.0 - elif test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=5.6.1 - elif test $PHP_MAJMIN_VERSION -le 702; then - installRemoteModule_version=5.8.1 - elif test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=5.9.0 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=5.10.1 - elif test $PHP_MAJMIN_VERSION -le 800; then - installRemoteModule_version=5.11.1 - fi - fi - ;; - ssh2) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.13 - fi - fi - ;; - stomp) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.0.9 - fi - fi - if test "$DISTRO" = debian; then - addConfigureOption with-openssl-dir yes - else - addConfigureOption with-openssl-dir /usr - fi - ;; - swoole) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 502; then - installRemoteModule_version=1.6.10 - elif test $PHP_MAJMIN_VERSION -le 504; then - installRemoteModule_version=2.0.4 - elif test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.0.11 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=4.3.6 - elif test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=4.5.10 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=4.8.11 - elif test $PHP_BITS -eq 32; then - # See https://github.com/swoole/swoole-src/issues/5198#issuecomment-1820162178 - installRemoteModule_version="$(resolvePHPModuleVersion "$installRemoteModule_module" '^5.0')" - else - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -le 312; then - installRemoteModule_version=5.1.2 - fi - ;; - esac - fi - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 800; then - installRemoteModule_version=5.1.3 - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" stable)" - fi - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if php --ri sockets >/dev/null 2>/dev/null; then - installRemoteModule_sockets=yes - else - installRemoteModule_sockets=no - fi - installRemoteModule_openssl=yes - case "$DISTRO_VERSION" in - alpine@3.7 | alpine@3.8) - if test $(compareVersions "$installRemoteModule_version" 4.6.0) -lt 0; then - # see https://github.com/swoole/swoole-src/issues/3934 - installRemoteModule_openssl=no - fi - ;; - esac - if test $PHP_THREADSAFE -eq 1; then - installRemoteModule_zts=yes - else - installRemoteModule_zts=no - fi - installRemoteModule_sqlite=yes - installRemoteModule_iouring=no - installRemoteModule_curl=yes - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -lt 317; then - # we need sqlite3 >= 3.7.7 - installRemoteModule_sqlite=no - fi - case "${IPE_SWOOLE_WITHOUT_IOURING:-}" in - 1 | y* | Y*) ;; - *) - # iouring support in swoole 6 requires liburing 2.5+: available since Alpine 3.19 - # but with Alpine 3.19 we have a "invalid use of incomplete type 'const struct statx'" error - if test $DISTRO_MAJMIN_VERSION -ge 320; then - installRemoteModule_iouring=yes - fi - ;; - esac - ;; - debian) - if test $PHP_MAJMIN_VERSION -ge 800; then - # see https://github.com/swoole/swoole-src/issues/5365 - installRemoteModule_curl=no - fi - if test $DISTRO_MAJMIN_VERSION -lt 1200; then - # we need sqlite3 >= 3.7.7 - installRemoteModule_sqlite=no - fi - case "${IPE_SWOOLE_WITHOUT_IOURING:-}" in - 1 | y* | Y*) ;; - *) - if test $DISTRO_VERSION_NUMBER -ge 13; then - # iouring support in swoole 6 requires liburing 2.5+: available since Debian Trixie (13) - installRemoteModule_iouring=yes - fi - ;; - esac - ;; - esac - installRemoteModule_zstd=yes - case "$DISTRO" in - debian) - if test $DISTRO_VERSION_NUMBER -lt 11; then - # swoole 6 requires libzstd >= 1.4.0, but on debian 10 (buster) we have 1.3.8 - installRemoteModule_zstd=no - fi - ;; - esac - if test $(compareVersions "$installRemoteModule_version" 6.0.0) -ge 0; then - # enable sockets support? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - # enable cares support? - addConfigureOption enable-cares yes - # enable brotli support? - addConfigureOption enable-brotli yes - # enable zstd support? - addConfigureOption enable-zstd $installRemoteModule_zstd - # enable PostgreSQL database support? - addConfigureOption enable-swoole-pgsql yes - # enable ODBC database support? - addConfigureOption with-swoole-odbc no - # enable Oracle database support? - addConfigureOption with-swoole-oracle no - # enable Sqlite database support? - addConfigureOption enable-swoole-sqlite $installRemoteModule_sqlite - # enable swoole thread support (need php zts support)? - addConfigureOption enable-swoole-thread $installRemoteModule_zts - # enable iouring for file async support? - addConfigureOption enable-iouring $installRemoteModule_iouring - elif test $(compareVersions "$installRemoteModule_version" 5.1.0) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - # enable cares support? - addConfigureOption enable-cares yes - # enable brotli support? - addConfigureOption enable-brotli yes - # enable PostgreSQL database support? - addConfigureOption enable-swoole-pgsql yes - # enable ODBC database support? - addConfigureOption with-swoole-odbc no - # enable Oracle database support? - addConfigureOption with-swoole-oracle no - # enable Sqlite database support? - addConfigureOption enable-swoole-sqlite $installRemoteModule_sqlite - elif test $(compareVersions "$installRemoteModule_version" 5.0.1) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - # enable cares support? - addConfigureOption enable-cares yes - # enable brotli support? - addConfigureOption enable-brotli yes - elif test $(compareVersions "$installRemoteModule_version" 5.0.0) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - # enable cares support? - addConfigureOption enable-cares yes - elif test $(compareVersions "$installRemoteModule_version" 4.8.11) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable json support? - addConfigureOption enable-swoole-json yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - # enable cares support? - addConfigureOption enable-cares yes - elif test $(compareVersions "$installRemoteModule_version" 4.6.1) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable json support? - addConfigureOption enable-swoole-json yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - elif test $(compareVersions "$installRemoteModule_version" 4.4.0) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - elif test $(compareVersions "$installRemoteModule_version" 4.2.11) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable postgresql coroutine client support? - addConfigureOption enable-coroutine-postgresql yes - elif test $(compareVersions "$installRemoteModule_version" 4.2.7) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable postgresql coroutine client support? - addConfigureOption enable-coroutine-postgresql yes - # enable kernel debug/trace log? (it will degrade performance) - addConfigureOption enable-debug-log no - elif test $(compareVersions "$installRemoteModule_version" 4.2.6) -ge 0; then - # enable debug/trace log support? - addConfigureOption enable-debug-log no - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable postgresql coroutine client support? - addConfigureOption enable-coroutine-postgresql yes - elif test $(compareVersions "$installRemoteModule_version" 4.2.0) -ge 0; then - # enable debug/trace log support? - addConfigureOption enable-debug-log no - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable async-redis support? - addConfigureOption enable-async-redis yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable postgresql coroutine client support? - addConfigureOption enable-coroutine-postgresql yes - elif test $(compareVersions "$installRemoteModule_version" 2.1.2) -ge 0; then - # enable debug/trace log support? - addConfigureOption enable-swoole-debug no - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable async-redis support? - addConfigureOption enable-async-redis yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable postgresql coroutine client support? - addConfigureOption enable-coroutine-postgresql yes - elif test $(compareVersions "$installRemoteModule_version" 1.10.4) -ge 0 && test $(compareVersions "$installRemoteModule_version" 1.10.5) -le 0; then - # enable debug/trace log support? - addConfigureOption enable-swoole-debug no - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable async-redis support? - addConfigureOption enable-async-redis yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - fi - ;; - tdlib) - if ! test -f /usr/lib/libphpcpp.so || ! test -f /usr/include/phpcpp.h; then - if test $PHP_MAJMIN_VERSION -le 701; then - cd "$(getPackageSource https://codeload.github.com/CopernicaMarketingSoftware/PHP-CPP/tar.gz/v2.1.4)" - elif test $PHP_MAJMIN_VERSION -le 703; then - cd "$(getPackageSource https://codeload.github.com/CopernicaMarketingSoftware/PHP-CPP/tar.gz/v2.2.0)" - else - cd "$(getPackageSource https://codeload.github.com/CopernicaMarketingSoftware/PHP-CPP/tar.gz/444d1f90cf6b7f3cb5178fa0d0b5ab441b0389d0)" - fi - make -j$(getProcessorCount) - make install - cd - >/dev/null - fi - if test -z "$installRemoteModule_path"; then - installRemoteModule_tmp="$(mktemp -p /tmp/src -d)" - git clone --depth=1 --recurse-submodules https://github.com/yaroslavche/phptdlib.git "$installRemoteModule_tmp" - mkdir "$installRemoteModule_tmp/build" - cd "$installRemoteModule_tmp/build" - cmake -D USE_SHARED_PHPCPP:BOOL=ON .. - make - make install - cd - >/dev/null - rm "$PHP_INI_DIR/conf.d/tdlib.ini" - installRemoteModule_manuallyInstalled=1 - fi - ;; - tensor) - installRemoteModule_cppflags='-Wno-incompatible-pointer-types' - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=2.2.3 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=3.0.5 - fi - fi - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -ge 315 && test $DISTRO_MAJMIN_VERSION -le 317; then - if test -e /usr/lib/liblapacke.so.3 && ! test -e /usr/lib/liblapacke.so; then - ln -s /usr/lib/liblapacke.so.3 /usr/lib/liblapacke.so - fi - fi - ;; - esac - ;; - tideways) - case "$DISTRO" in - alpine) - case $(uname -m) in - aarch64 | arm64 | armv8) - installRemoteModule_architecture=alpine-arm64 - ;; - *) - installRemoteModule_architecture=alpine-x86_64 - ;; - esac - ;; - debian) - case $(uname -m) in - aarch64 | arm64 | armv8) - installRemoteModule_architecture=arm64 - ;; - *) - installRemoteModule_architecture=x86_64 - ;; - esac - ;; - esac - installRemoteModule_url="$(curl -sSLf -o - https://tideways.com/profiler/downloads | grep -Eo "\"[^\"]+/tideways-php-([0-9]+\.[0-9]+\.[0-9]+)-$installRemoteModule_architecture.tar.gz\"" | cut -d'"' -f2)" - if test -z "$installRemoteModule_url"; then - echo 'Failed to find the tideways tarball to be downloaded' - exit 1 - fi - printf 'Downloading tideways from %s\n' "$installRemoteModule_url" - installRemoteModule_src="$(getPackageSource $installRemoteModule_url)" - if test -d "$installRemoteModule_src/dist"; then - installRemoteModule_src="$installRemoteModule_src/dist" - fi - installRemoteModule_src="$installRemoteModule_src/tideways-php" - case "$DISTRO" in - alpine) - installRemoteModule_src="$installRemoteModule_src-alpine" - ;; - esac - installRemoteModule_src="$installRemoteModule_src-$PHP_MAJDOTMIN_VERSION" - if test $PHP_THREADSAFE -eq 1; then - installRemoteModule_src="$installRemoteModule_src-zts" - fi - installRemoteModule_src="$installRemoteModule_src.so" - if ! test -f "$installRemoteModule_src"; then - echo 'tideways does not support the current environment' >&2 - exit 1 - fi - mv "$installRemoteModule_src" $(getPHPExtensionsDir)/tideways.so - installRemoteModule_manuallyInstalled=1 - ;; - uopz) - installRemoteModule_cppflags='-Wno-incompatible-pointer-types' - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.0.7 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=5.0.2 - elif test $PHP_MAJMIN_VERSION -le 740; then - installRemoteModule_version=6.1.2 - fi - fi - ;; - uploadprogress) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=1.1.4 - fi - fi - ;; - uuid) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.0.5 - fi - fi - ;; - uv) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 800; then - installRemoteModule_version=0.2.4 - else - installRemoteModule_version=beta - fi - fi - ;; - vld) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=0.14.0 - else - installRemoteModule_version=beta - fi - fi - ;; - wikidiff2) - case "$DISTRO" in - alpine) - if ! isLibDatrieInstalled; then - installLibDatrie - fi - if ! isLibThaiInstalled; then - installLibThai - fi - ;; - esac - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 702; then - installRemoteModule_version=1.13.0 - else - installRemoteModule_version="$(git -c versionsort.suffix=- ls-remote --tags --refs --quiet --exit-code --sort=version:refname https://github.com/wikimedia/mediawiki-php-wikidiff2.git 'refs/tags/*.*.*' | tail -1 | cut -d/ -f3)" - fi - fi - installRemoteModule_src="$(getPackageSource "https://codeload.github.com/wikimedia/mediawiki-php-wikidiff2/tar.gz/refs/tags/$installRemoteModule_version")" - cd -- "$installRemoteModule_src" - phpize - ./configure - make -j$(getProcessorCount) - make install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - ;; - xdebug) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 500; then - installRemoteModule_version=2.0.5 - elif test $PHP_MAJMIN_VERSION -le 503; then - installRemoteModule_version=2.2.7 - elif test $PHP_MAJMIN_VERSION -le 504; then - installRemoteModule_version=2.4.1 - elif test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.5.5 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=2.6.1 - elif test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=2.9.8 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=3.1.6 - fi - fi - ;; - xdiff) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.5.2 - fi - fi - if ! test -f /usr/local/lib/libxdiff.* && ! test -f /usr/lib/libxdiff.* && ! test -f /usr/lib/x86_64*/libxdiff.*; then - installRemoteModule_src="$(getPackageSource https://raw.githubusercontent.com/mlocati/docker-php-extension-installer/assets/resources/libxdiff-0.23.tar.gz)" - cd -- "$installRemoteModule_src" - ./configure --disable-shared --disable-dependency-tracking --with-pic - make -j$(getProcessorCount) - make install - cd - >/dev/null - fi - ;; - xhprof) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.9.4 - fi - fi - ;; - xlswriter) - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 1.2.7) -ge 0; then - # enable reader supports? - addConfigureOption enable-reader yes - fi - ;; - xmldiff) - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version"; then - case "$DISTRO_VERSION" in - debian@8) - # The gcc version of Debian Jessie is too old => error: 'nullptr' was not declared in this scope - installRemoteModule_version=1.1.4 - ;; - esac - fi - ;; - xmlrpc) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=beta - fi - ;; - yac) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.9.2 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 2.2.0) -ge 0; then - # Enable igbinary serializer support - if php --ri igbinary >/dev/null 2>/dev/null; then - addConfigureOption enable-igbinary yes - else - addConfigureOption enable-igbinary no - fi - # Enable json serializer support - if php --ri json >/dev/null 2>/dev/null; then - addConfigureOption enable-json yes - else - addConfigureOption enable-json no - fi - # Enable msgpack serializer support - if php --ri msgpack >/dev/null 2>/dev/null; then - addConfigureOption enable-msgpack yes - else - addConfigureOption enable-msgpack no - fi - fi - ;; - yaml) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.3.1 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=2.0.4 - fi - fi - ;; - yar) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.2.5 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 1.2.4) -ge 0; then - # Enable Msgpack Supports - if php --ri msgpack >/dev/null 2>/dev/null; then - addConfigureOption enable-msgpack yes - else - addConfigureOption enable-msgpack no - fi - fi - ;; - zmq) - if test -z "$installRemoteModule_version"; then - installRemoteModule_src="$(getPackageSource https://github.com/zeromq/php-zmq/tarball/master)" - cd "$installRemoteModule_src" - phpize - ./configure - make -j$(getProcessorCount) - make install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - fi - ;; - zookeeper) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.5.0 - fi - fi - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - case "$DISTRO" in - alpine) - if ! test -f /usr/local/include/zookeeper/zookeeper.h; then - if test $(compareVersions "$installRemoteModule_version" 1.0.0) -lt 0; then - installRemoteModule_src="$(getPackageSource http://archive.apache.org/dist/zookeeper/zookeeper-3.5.9/apache-zookeeper-3.5.9.tar.gz)" - else - installRemoteModule_tmp="$(curl -sSLf https://downloads.apache.org/zookeeper/stable | sed -E 's/["<>]/\n/g' | grep -E '^(apache-)?zookeeper-[0-9]+\.[0-9]+\.[0-9]+\.(tar\.gz|tgz)$' | head -n1)" - if test -z "$installRemoteModule_tmp"; then - echo 'Failed to detect the zookeeper library URL' >&2 - exit 1 - fi - installRemoteModule_src="$(getPackageSource https://downloads.apache.org/zookeeper/stable/$installRemoteModule_tmp)" - fi - cd -- "$installRemoteModule_src" - if test -d ~/.m2; then - installRemoteModule_delm2=n - else - installRemoteModule_delm2=y - fi - mvn -pl zookeeper-jute compile - cd - >/dev/null - cd -- "$installRemoteModule_src/zookeeper-client/zookeeper-client-c" - autoreconf -if - ./configure --without-cppunit - make -j$(getProcessorCount) CFLAGS='-Wno-stringop-truncation -Wno-format-overflow' - make install - cd - >/dev/null - if test $installRemoteModule_delm2 = y; then - rm -rf ~/.m2 - fi - fi - ;; - esac - ;; - zstd) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.11.0 - fi - fi - ;; - esac - if test $installRemoteModule_manuallyInstalled -eq 0; then - if test -n "$installRemoteModule_path"; then - printf ' (installing version %s from %s)\n' "$installRemoteModule_version" "$installRemoteModule_path" - elif test -n "$installRemoteModule_version"; then - printf ' (installing version %s)\n' "$installRemoteModule_version" - fi - installPeclPackage "$installRemoteModule_module" "$installRemoteModule_version" "$installRemoteModule_cppflags" "$installRemoteModule_path" - fi - postProcessModule "$installRemoteModule_module" - if test $installRemoteModule_manuallyInstalled -lt 2; then - case "${IPE_SKIP_CHECK:-}" in - 1 | y* | Y*) ;; - *) - checkModuleWorking "$installRemoteModule_module" "$installRemoteModule_ini_basename" "$installRemoteModule_ini_extra" - ;; - esac - enablePhpExtension "$installRemoteModule_module" "$installRemoteModule_ini_basename" "$installRemoteModule_ini_extra" - fi -} - -# Check if a module/helper may be installed using the pecl archive -# -# Arguments: -# $1: the name of the module -# -# Return: -# 0: true -# 1: false -moduleMayUsePecl() { - case "$1" in - @composer | @fix_letsencrypt) - return 1 - ;; - blackfire | geos | ioncube_loader | snuffleupagus | sourceguardian | spx | tdlib | tideways) - return 1 - ;; - esac - if test -n "$(getModuleSourceCodePath "$1")"; then - return 1 - fi - if stringInList "$1" "$BUNDLED_MODULES"; then - return 1 - fi - return 0 -} - -# Configure the PECL package installer -# -# Updates: -# PHP_MODULES_TO_INSTALL -# Sets: -# USE_PICKLE 0: no, 1: yes (already downloaded), 2: yes (build it from source) -configureInstaller() { - USE_PICKLE=0 - if ! which pecl >/dev/null; then - for PHP_MODULE_TO_INSTALL in $PHP_MODULES_TO_INSTALL; do - if ! moduleMayUsePecl "$PHP_MODULE_TO_INSTALL"; then - continue - fi - if false && anyStringInList '' "$PHP_MODULES_TO_INSTALL"; then - USE_PICKLE=2 - else - curl -sSLf https://github.com/FriendsOfPHP/pickle/releases/latest/download/pickle.phar -o /tmp/pickle - chmod +x /tmp/pickle - USE_PICKLE=1 - fi - break - done - fi - if test $USE_PICKLE -eq 0; then - if test -z "$(pear config-get http_proxy)"; then - if test -n "${http_proxy:-}"; then - pear config-set http_proxy "$http_proxy" || true - elif test -n "${HTTP_PROXY:-}"; then - pear config-set http_proxy "$HTTP_PROXY" || true - fi - fi - pecl channel-update pecl.php.net || true - fi -} - -buildPickle() { - printf '### BUILDING PICKLE ###\n' - buildPickle_tempDir="$(mktemp -p /tmp/src -d)" - cd -- "$buildPickle_tempDir" - printf 'Downloading... ' - git clone --quiet --depth 1 https://github.com/FriendsOfPHP/pickle.git . - git tag 0.7.0 - printf 'done.\n' - printf 'Installing composer... ' - actuallyInstallComposer . composer '--1 --quiet' - printf 'done.\n' - printf 'Installing composer dependencies... ' - ./composer install --no-dev --no-progress --no-suggest --optimize-autoloader --ignore-platform-reqs --quiet --no-cache - printf 'done.\n' - printf 'Building... ' - php -d phar.readonly=0 box.phar build - mv pickle.phar /tmp/pickle - printf 'done.\n' - cd - >/dev/null -} - -# Add a configure option for the pecl/pickle install command -# -# Arguments: -# $1: the option name -# $2: the option value -addConfigureOption() { - if test $USE_PICKLE -eq 0; then - printf -- '%s\n' "$2" >>"$CONFIGURE_FILE" - else - printf -- '--%s=%s\n' "$1" "$2" >>"$CONFIGURE_FILE" - fi -} - -# Actually installs a PECL package -# -# Arguments: -# $1: the package to be installed -# $2: the package version to be installed (optional) -# $3: the value of the CPPFLAGS variable (optional) -# $4: the path of the local package to be installed (optional, downloaded from PECL if omitted/empty) -installPeclPackage() { - if ! test -f "$CONFIGURE_FILE"; then - printf '\n' >"$CONFIGURE_FILE" - fi - installPeclPackage_name="$(getPeclModuleName "$1")" - if test -z "${2:-}"; then - installPeclPackage_fullname="$installPeclPackage_name" - else - installPeclPackage_fullname="$installPeclPackage_name-$2" - fi - installPeclPackage_path="${4:-}" - if test -z "$installPeclPackage_path"; then - installPeclPackage_path="$installPeclPackage_fullname" - fi - if test $USE_PICKLE -eq 0; then - if test -n "${4:-}"; then - if test -f "$installPeclPackage_path/package2.xml"; then - installPeclPackage_path="$installPeclPackage_path/package2.xml" - else - installPeclPackage_path="$installPeclPackage_path/package.xml" - fi - fi - cat "$CONFIGURE_FILE" | MAKE="make -j$(getCompilationProcessorCount $1)" CPPFLAGS="${3:-}" pecl install "$installPeclPackage_path" - else - MAKEFLAGS="-j$(getCompilationProcessorCount $1)" CPPFLAGS="${3:-}" /tmp/pickle install --tmp-dir=/tmp/pickle.tmp --no-interaction --version-override='' --with-configure-options "$CONFIGURE_FILE" -- "$installPeclPackage_path" - fi -} - -# Check if a string is in a list of space-separated string -# -# Arguments: -# $1: the string to be checked -# $2: the string list -# -# Return: -# 0 (true): if the string is in the list -# 1 (false): if the string is not in the list -stringInList() { - for stringInList_listItem in $2; do - if test "$1" = "$stringInList_listItem"; then - return 0 - fi - done - return 1 -} - -# Check if at least one item in a list is in another list -# -# Arguments: -# $1: the space-separated list of items to be searched -# $2: the space-separated list of reference items -# -# Return: -# 0 (true): at least one of the items in $1 is in $2 -# 1 (false): otherwise -anyStringInList() { - for anyStringInList_item in $1; do - if stringInList "$anyStringInList_item" "$2"; then - return 0 - fi - done - return 1 -} - -# Remove a word from a space-separated list -# -# Arguments: -# $1: the word to be removed -# $2: the string list -# -# Output: -# The list without the word -removeStringFromList() { - removeStringFromList_result='' - for removeStringFromList_listItem in $2; do - if test "$1" != "$removeStringFromList_listItem"; then - if test -z "$removeStringFromList_result"; then - removeStringFromList_result="$removeStringFromList_listItem" - else - removeStringFromList_result="$removeStringFromList_result $removeStringFromList_listItem" - fi - fi - done - printf '%s' "$removeStringFromList_result" -} - -# Invoke apt-get update -invokeAptGetUpdate() { - if test -n "${IPE_APTGETUPDATE_ALREADY:-}"; then - apt-get update -q - return - fi - IPE_APTGETUPDATE_ALREADY=y - if grep -q 'VERSION="8 (jessie)"' /etc/os-release; then - invokeAptGetUpdate_fixdistro=jessie - elif grep -q 'VERSION="9 (stretch)"' /etc/os-release; then - invokeAptGetUpdate_fixdistro=stretch - else - invokeAptGetUpdate - return - fi - # See https://www.debian.org/distrib/archive.en.html for a list of mirrors - if test -z "${IPE_DEB_ARCHIVE:-}"; then - IPE_DEB_ARCHIVE=http://archive.kernel.org/debian-archive - fi - if test -z "${IPE_DEB_ARCHIVE_SECURITY:-}"; then - IPE_DEB_ARCHIVE_SECURITY=http://archive.kernel.org/debian-archive/debian-security - fi - sed -ri "s;^(\s*deb\s+http://(httpredir|deb).debian.org/debian\s+$invokeAptGetUpdate_fixdistro-updates\b.*);#\1;" /etc/apt/sources.list - sed -ri "s;^(\s*deb\s+)http://(httpredir|deb).debian.org;\1$IPE_DEB_ARCHIVE;" /etc/apt/sources.list - sed -ri "s;^(\s*deb\s+)http://security.debian.org/debian-security;\1$IPE_DEB_ARCHIVE_SECURITY;" /etc/apt/sources.list - sed -ri "s;^(\s*deb\s+)http://security.debian.org;\1$IPE_DEB_ARCHIVE_SECURITY;" /etc/apt/sources.list - invokeAptGetUpdate_tmp="$(mktemp)" - apt-get update -q 2>"$invokeAptGetUpdate_tmp" - if test -s "$invokeAptGetUpdate_tmp"; then - cat "$invokeAptGetUpdate_tmp" >&2 - if grep -qE ' KEYEXPIRED [0-9]' "$invokeAptGetUpdate_tmp"; then - echo '############' >&2 - echo '# WARNING! #' >&2 - echo '############' >&2 - echo 'apt packages will be installed without checking authenticity!' >&2 - printf 'APT::Get::AllowUnauthenticated "true";\n' >>/etc/apt/apt.conf.d/99unauthenticated - fi - fi - rm "$invokeAptGetUpdate_tmp" -} - -# Fix the Let's Encrypt CA certificates on old distros -fixLetsEncrypt() { - printf '### FIXING LETS ENCRYPT CA CERTIFICATES ###\n' - case "$DISTRO_VERSION" in - alpine@3.7 | alpine@3.8) - printf -- '- old Alpine Linux detected: we should fix the certificates\n' - ;; - debian@8 | debian@9) - printf -- '- old Debian detected: we should fix the certificates\n' - if ! grep -q 'mozilla/ISRG_Root_X1.crt' /etc/ca-certificates.conf && grep -q 'mozilla/DST_Root_CA_X3.crt' /etc/ca-certificates.conf; then - printf -- '- old ca-certificates package detected\n' - fixCACerts_mustUpdate=1 - if test -d /var/lib/apt/lists; then - for fixCACerts_item in $(ls -1 /var/lib/apt/lists); do - case "$fixCACerts_item" in - partial | lock) ;; - *) - fixCACerts_mustUpdate=0 - break - ;; - esac - done - fi - if test $fixCACerts_mustUpdate -eq 1; then - printf -- '- refreshing the APT package list\n' - invokeAptGetUpdate - fi - printf -- '- installing newer ca-certificates package\n' - apt-get install -qqy --no-install-recommends ca-certificates - fi - ;; - *) - printf -- '- patch not required in this distro version\n' - return - ;; - esac - if grep -Eq '^mozilla/ISRG_Root_X1\.crt$' /etc/ca-certificates.conf && grep -Eq '^mozilla/DST_Root_CA_X3\.crt$' /etc/ca-certificates.conf; then - printf -- '- disabling the DST_Root_CA_X3 certificate\n' - sed -i '/^mozilla\/DST_Root_CA_X3/s/^/!/' /etc/ca-certificates.conf - printf -- '- refreshing the certificates\n' - update-ca-certificates -f - else - printf -- '- DST_Root_CA_X3 certificate not found or already disabled\n' - fi -} - -# Cleanup everything at the end of the execution -cleanup() { - if test "${IPE_UNINSTALL_CARGO:-}" = y; then - if test -f "$HOME/.cargo/env"; then - . "$HOME/.cargo/env" - fi - if command -v rustup >/dev/null; then - rustup self uninstall -y - fi - fi - if test -n "$UNNEEDED_PACKAGE_LINKS"; then - printf '### REMOVING UNNEEDED PACKAGE LINKS ###\n' - for cleanup_link in $UNNEEDED_PACKAGE_LINKS; do - if test -L "$cleanup_link"; then - rm -f "$cleanup_link" - fi - done - fi - case "$DISTRO" in - alpine) - if stringInList icu-libs "${PACKAGES_PERSISTENT_NEW:-}" && stringInList icu-data-en "${PACKAGES_PERSISTENT_NEW:-}"; then - apk del icu-data-en >/dev/null 2>&1 || true - fi - if test -n "$PACKAGES_VOLATILE"; then - printf '### REMOVING UNNEEDED PACKAGES ###\n' - apk del --purge $PACKAGES_VOLATILE - fi - ;; - debian) - if test -n "$PACKAGES_VOLATILE"; then - printf '### REMOVING UNNEEDED PACKAGES ###\n' - apt-get remove --purge -y $PACKAGES_VOLATILE - fi - if test -n "$PACKAGES_PREVIOUS"; then - printf '### RESTORING PREVIOUSLY INSTALLED PACKAGES ###\n' - apt-get install -qqy --no-install-recommends --no-upgrade $PACKAGES_PREVIOUS - fi - ;; - esac - docker-php-source delete - rm -rf /tmp/src - rm -rf /tmp/pickle - rm -rf /tmp/pickle.tmp - rm -rf "$CONFIGURE_FILE" - case "${IPE_KEEP_SYSPKG_CACHE:-}" in - 1 | y* | Y*) ;; - *) - case "$DISTRO" in - alpine) - rm -rf /var/cache/apk/* - ;; - debian) - rm -rf /var/lib/apt/lists/* - ;; - esac - rm -rf /tmp/pear - ;; - esac -} - -DEBIAN_FRONTEND=noninteractive -export DEBIAN_FRONTEND -resetIFS -mkdir -p /tmp/src -mkdir -p /tmp/pickle.tmp -IPE_ERRFLAG_FILE="$(mktemp -p /tmp/src)" -CONFIGURE_FILE=/tmp/configure-options -IPE_APK_FLAGS='' -setDistro -case "$DISTRO_VERSION" in - debian@8) - fixMaxOpenFiles || true - ;; -esac -setPHPVersionVariables -setPHPPreinstalledModules -case "$PHP_MAJMIN_VERSION" in - 505 | 506 | 700 | 701 | 702 | 703 | 704 | 800 | 801 | 802 | 803 | 804) ;; - *) - printf "### ERROR: Unsupported PHP version: %s.%s ###\n" $((PHP_MAJMIN_VERSION / 100)) $((PHP_MAJMIN_VERSION % 100)) - ;; -esac -UNNEEDED_PACKAGE_LINKS='' -processCommandArguments "$@" - -if test -z "$PHP_MODULES_TO_INSTALL"; then - exit 0 -fi - -if stringInList @fix_letsencrypt "$PHP_MODULES_TO_INSTALL"; then - # This must be the very first thing we do - fixLetsEncrypt -fi - -sortModulesToInstall - -docker-php-source extract -BUNDLED_MODULES="$(find /usr/src/php/ext -mindepth 2 -maxdepth 2 -type f -name 'config.m4' | xargs -n1 dirname | xargs -n1 basename | xargs)" -configureInstaller - -buildRequiredPackageLists $PHP_MODULES_TO_INSTALL -if test -n "$PACKAGES_PERSISTENT_PRE"; then - markPreinstalledPackagesAsUsed -fi -if test -n "$PACKAGES_PERSISTENT_NEW$PACKAGES_VOLATILE"; then - installRequiredPackages -fi -if test "$PHP_MODULES_TO_INSTALL" != '@composer'; then - setTargetTriplet -fi -if test $USE_PICKLE -gt 1; then - buildPickle -fi - -compileLibs - -for PHP_MODULE_TO_INSTALL in $PHP_MODULES_TO_INSTALL; do - case "$PHP_MODULE_TO_INSTALL" in - @fix_letsencrypt) - # Already done: it must be the first thing we do - ;; - @composer) - installComposer - ;; - *) - if stringInList "$PHP_MODULE_TO_INSTALL" "$BUNDLED_MODULES"; then - installBundledModule "$PHP_MODULE_TO_INSTALL" - else - installRemoteModule "$PHP_MODULE_TO_INSTALL" - fi - ;; - esac -done -cleanup diff --git a/php8/8.3.20/build/php/extensions/install.sh b/php8/8.3.20/build/php/extensions/install.sh deleted file mode 100644 index 45d65e3db..000000000 --- a/php8/8.3.20/build/php/extensions/install.sh +++ /dev/null @@ -1,731 +0,0 @@ -#!/bin/sh - -export MC="-j$(nproc)" - -echo -echo "============================================" -echo "Install extensions from : install.sh" -echo "PHP version : ${PHP_VERSION}" -echo "Extra Extensions : ${PHP_EXTENSIONS}" -echo "Multicore Compilation : ${MC}" -echo "Container package url : ${CONTAINER_PACKAGE_URL}" -echo "Work directory : ${PWD}" -echo "============================================" -echo - - -if [ "${PHP_EXTENSIONS}" != "" ]; then - apk --update add --no-cache --virtual .build-deps autoconf g++ libtool make curl-dev gettext-dev linux-headers git -fi - - -export EXTENSIONS=",${PHP_EXTENSIONS}," - - -# -# Check if current php version is greater than or equal to -# specific version. -# -# For example, to check if current php is greater than or -# equal to PHP 8.0: -# -# isPhpVersionGreaterOrEqual 8 0 -# -# Param 1: Specific PHP Major version -# Param 2: Specific PHP Minor version -# Return : 1 if greater than or equal to, 0 if less than -# -isPhpVersionGreaterOrEqual() - { - local PHP_MAJOR_VERSION=$(php -r "echo PHP_MAJOR_VERSION;") - local PHP_MINOR_VERSION=$(php -r "echo PHP_MINOR_VERSION;") - - if [[ "$PHP_MAJOR_VERSION" -gt "$1" || "$PHP_MAJOR_VERSION" -eq "$1" && "$PHP_MINOR_VERSION" -ge "$2" ]]; then - return 1; - else - return 0; - fi -} - - -# -# Install extension from package file(.tgz), -# For example: -# -# installExtensionFromTgz redis-6.0.2 -# -# Param 1: Package name with version -# Param 2: enable options -# -installExtensionFromTgz() -{ - tgzName=$1 - result="" - extensionName="${tgzName%%-*}" - shift 1 - result=$@ - mkdir ${extensionName} - tar -xf ${tgzName}.tgz -C ${extensionName} --strip-components=1 - ( cd ${extensionName} && phpize && ./configure ${result} && make ${MC} && make install ) - - docker-php-ext-enable ${extensionName} -} - -# install use install-php-extensions -if [[ -z "${EXTENSIONS##*,ioncube_loader,*}" ]]; then - echo "---------- Install ioncube_loader ----------" - install-php-extensions ioncube_loader -fi - -if [[ -z "${EXTENSIONS##*,sourceguardian,*}" ]]; then - echo "---------- Install sourceguardian ----------" - apk add eudev-libs - install-php-extensions sourceguardian -fi - -if [[ -z "${EXTENSIONS##*,memcached,*}" ]]; then - echo "---------- Install memcached ----------" - install-php-extensions memcached -fi - -if [[ -z "${EXTENSIONS##*,ssh2,*}" ]]; then - echo "---------- Install ssh2 ----------" - install-php-extensions ssh2 -fi - -if [[ -z "${EXTENSIONS##*,xmlrpc,*}" ]]; then - echo "---------- Install xmlrpc ----------" - install-php-extensions xmlrpc -fi - -if [[ -z "${EXTENSIONS##*,maxminddb,*}" ]]; then - echo "---------- Install maxminddb ----------" - install-php-extensions maxminddb -fi - -if [[ -z "${EXTENSIONS##*,zstd,*}" ]]; then - echo "---------- Install zstd ----------" - install-php-extensions zstd -fi - -if [[ -z "${EXTENSIONS##*,grpc,*}" ]]; then - echo "---------- Install grpc ----------" - install-php-extensions grpc - docker-php-ext-enable grpc -fi - -if [[ -z "${EXTENSIONS##*,ftp,*}" ]]; then - echo "---------- Install ftp ----------" - install-php-extensions ftp -fi - -if [[ -z "${EXTENSIONS##*,snuffleupagus,*}" ]]; then - echo "---------- Install snuffleupagus ----------" - install-php-extensions snuffleupagus -fi - -if [[ -z "${EXTENSIONS##*,pdo_oci,*}" ]]; then - echo "---------- Install pdo_oci ----------" - install-php-extensions pdo_oci -fi - -if [[ -z "${EXTENSIONS##*,oci8,*}" ]]; then - echo "---------- Install oci8 ----------" - install-php-extensions oci8 -fi - -# end - - -if [[ -z "${EXTENSIONS##*,pdo_mysql,*}" ]]; then - echo "---------- Install pdo_mysql ----------" - docker-php-ext-install ${MC} pdo_mysql -fi - -if [[ -z "${EXTENSIONS##*,pcntl,*}" ]]; then - echo "---------- Install pcntl ----------" - docker-php-ext-install ${MC} pcntl -fi - -if [[ -z "${EXTENSIONS##*,mysqli,*}" ]]; then - echo "---------- Install mysqli ----------" - docker-php-ext-install ${MC} mysqli -fi - -if [[ -z "${EXTENSIONS##*,mbstring,*}" ]]; then - echo "---------- mbstring is installed ----------" -fi - -if [[ -z "${EXTENSIONS##*,exif,*}" ]]; then - echo "---------- Install exif ----------" - docker-php-ext-install ${MC} exif -fi - -if [[ -z "${EXTENSIONS##*,bcmath,*}" ]]; then - echo "---------- Install bcmath ----------" - docker-php-ext-install ${MC} bcmath -fi - -if [[ -z "${EXTENSIONS##*,calendar,*}" ]]; then - echo "---------- Install calendar ----------" - docker-php-ext-install ${MC} calendar -fi - -if [[ -z "${EXTENSIONS##*,zend_test,*}" ]]; then - echo "---------- Install zend_test ----------" - docker-php-ext-install ${MC} zend_test -fi - -if [[ -z "${EXTENSIONS##*,opcache,*}" ]]; then - echo "---------- Install opcache ----------" - docker-php-ext-install opcache -fi - -if [[ -z "${EXTENSIONS##*,sockets,*}" ]]; then - echo "---------- Install sockets ----------" - docker-php-ext-install ${MC} sockets -fi - -if [[ -z "${EXTENSIONS##*,gettext,*}" ]]; then - echo "---------- Install gettext ----------" - apk --no-cache add gettext-dev - docker-php-ext-install ${MC} gettext - -fi - -if [[ -z "${EXTENSIONS##*,shmop,*}" ]]; then - echo "---------- Install shmop ----------" - docker-php-ext-install ${MC} shmop -fi - -if [[ -z "${EXTENSIONS##*,sysvmsg,*}" ]]; then - echo "---------- Install sysvmsg ----------" - docker-php-ext-install ${MC} sysvmsg -fi - -if [[ -z "${EXTENSIONS##*,sysvsem,*}" ]]; then - echo "---------- Install sysvsem ----------" - docker-php-ext-install ${MC} sysvsem -fi - -if [[ -z "${EXTENSIONS##*,sysvshm,*}" ]]; then - echo "---------- Install sysvshm ----------" - docker-php-ext-install ${MC} sysvshm -fi - -if [[ -z "${EXTENSIONS##*,pdo_firebird,*}" ]]; then - echo "---------- Install pdo_firebird ----------" - docker-php-ext-install ${MC} pdo_firebird -fi - -if [[ -z "${EXTENSIONS##*,pdo_dblib,*}" ]]; then - echo "---------- Install pdo_dblib ----------" - docker-php-ext-install ${MC} pdo_dblib -fi - -if [[ -z "${EXTENSIONS##*,pdo_odbc,*}" ]]; then - echo "---------- Install pdo_odbc ----------" - docker-php-ext-install ${MC} pdo_odbc -fi - -if [[ -z "${EXTENSIONS##*,pdo_pgsql,*}" ]]; then - echo "---------- Install pdo_pgsql ----------" - apk --no-cache add postgresql-dev \ - && docker-php-ext-install ${MC} pdo_pgsql -fi - -if [[ -z "${EXTENSIONS##*,pgsql,*}" ]]; then - echo "---------- Install pgsql ----------" - apk --no-cache add postgresql-dev \ - && docker-php-ext-install ${MC} pgsql -fi - -if [[ -z "${EXTENSIONS##*,odbc,*}" ]]; then - echo "---------- Install odbc ----------" - docker-php-ext-install ${MC} odbc -fi - -if [[ -z "${EXTENSIONS##*,dba,*}" ]]; then - echo "---------- Install dba ----------" - docker-php-ext-install ${MC} dba -fi - -if [[ -z "${EXTENSIONS##*,interbase,*}" ]]; then - echo "---------- Install interbase ----------" - echo "Alpine linux do not support interbase/firebird!!!" - #docker-php-ext-install ${MC} interbase -fi - -if [[ -z "${EXTENSIONS##*,hprose,*}" ]]; then - echo "---------- Install hprose ----------" - printf "\n" | pecl install hprose - docker-php-ext-enable hprose -fi - -if [[ -z "${EXTENSIONS##*,gd,*}" ]]; then - echo "---------- Install gd ----------" - isPhpVersionGreaterOrEqual 8 0 - - if [[ "$?" = "1" ]]; then - # "--with-xxx-dir" was removed from php 7.4, - # issue: https://github.com/docker-library/php/issues/912 - options="--with-freetype --with-jpeg --with-webp" - else - options="--with-gd --with-freetype-dir=/usr/include/ --with-png-dir=/usr/include/ --with-jpeg-dir=/usr/include/ --with-webp-dir=/usr/include/" - fi - - apk add --no-cache \ - freetype \ - freetype-dev \ - libpng \ - libpng-dev \ - libjpeg-turbo \ - libjpeg-turbo-dev \ - libwebp-dev \ - && docker-php-ext-configure gd ${options} \ - && docker-php-ext-install ${MC} gd \ - && apk del \ - freetype-dev \ - libpng-dev \ - libjpeg-turbo-dev -fi - -if [[ -z "${EXTENSIONS##*,yaml,*}" ]]; then - echo "---------- Install yaml ----------" - apk add --no-cache yaml-dev - printf "\n" | pecl install yaml - docker-php-ext-enable yaml -fi - -if [[ -z "${EXTENSIONS##*,intl,*}" ]]; then - echo "---------- Install intl ----------" - apk add --no-cache icu-dev - docker-php-ext-install ${MC} intl -fi - -if [[ -z "${EXTENSIONS##*,bz2,*}" ]]; then - echo "---------- Install bz2 ----------" - apk add --no-cache bzip2-dev - docker-php-ext-install ${MC} bz2 -fi - -if [[ -z "${EXTENSIONS##*,soap,*}" ]]; then - echo "---------- Install soap ----------" - apk add --no-cache libxml2-dev - docker-php-ext-install ${MC} soap -fi - -if [[ -z "${EXTENSIONS##*,xsl,*}" ]]; then - echo "---------- Install xsl ----------" - apk add --no-cache libxml2-dev libxslt-dev - docker-php-ext-install ${MC} xsl -fi - -if [[ -z "${EXTENSIONS##*,wddx,*}" ]]; then - echo "---------- Install wddx ----------" - apk add --no-cache libxml2-dev libxslt-dev - docker-php-ext-install ${MC} wddx -fi - -if [[ -z "${EXTENSIONS##*,curl,*}" ]]; then - echo "---------- curl is installed ----------" -fi - -if [[ -z "${EXTENSIONS##*,readline,*}" ]]; then - echo "---------- Install readline ----------" - apk add --no-cache readline-dev - apk add --no-cache libedit-dev - docker-php-ext-install ${MC} readline -fi - -if [[ -z "${EXTENSIONS##*,snmp,*}" ]]; then - echo "---------- Install snmp ----------" - apk add --no-cache net-snmp-dev - docker-php-ext-install ${MC} snmp -fi - -if [[ -z "${EXTENSIONS##*,pspell,*}" ]]; then - echo "---------- Install pspell ----------" - apk add --no-cache aspell-dev - apk add --no-cache aspell-en - docker-php-ext-install ${MC} pspell -fi - -if [[ -z "${EXTENSIONS##*,recode,*}" ]]; then - echo "---------- Install recode ----------" - apk add --no-cache recode-dev - docker-php-ext-install ${MC} recode -fi - -if [[ -z "${EXTENSIONS##*,tidy,*}" ]]; then - echo "---------- Install tidy ----------" - apk add --no-cache tidyhtml-dev - - # Fix: https://github.com/htacg/tidy-html5/issues/235 - ln -s /usr/include/tidybuffio.h /usr/include/buffio.h - - docker-php-ext-install ${MC} tidy -fi - -if [[ -z "${EXTENSIONS##*,gmp,*}" ]]; then - echo "---------- Install gmp ----------" - apk add --no-cache gmp-dev - docker-php-ext-install ${MC} gmp -fi - -if [[ -z "${EXTENSIONS##*,imap,*}" ]]; then - echo "---------- Install imap ----------" - apk add --no-cache imap-dev - docker-php-ext-configure imap --with-imap --with-imap-ssl - docker-php-ext-install ${MC} imap -fi - -if [[ -z "${EXTENSIONS##*,ldap,*}" ]]; then - echo "---------- Install ldap ----------" - apk add --no-cache ldb-dev - apk add --no-cache openldap-dev - docker-php-ext-install ${MC} ldap -fi - -if [[ -z "${EXTENSIONS##*,psr,*}" ]]; then - echo "---------- Install psr ----------" - printf "\n" | pecl install psr - docker-php-ext-enable psr -fi - -if [[ -z "${EXTENSIONS##*,imagick,*}" ]]; then - echo "---------- Install imagick ----------" - apk add --no-cache file-dev - apk add --no-cache imagemagick imagemagick-dev imagemagick-pdf -# cd imagick-3.7.0 && phpize && ./configure -# make -# make install - installExtensionFromTgz imagick-3.7.0 -fi - -if [[ -z "${EXTENSIONS##*,rar,*}" ]]; then - echo "---------- Install rar ----------" - printf "\n" | pecl install rar - docker-php-ext-enable rar -fi - -if [[ -z "${EXTENSIONS##*,ast,*}" ]]; then - echo "---------- Install ast ----------" - printf "\n" | pecl install ast - docker-php-ext-enable ast -fi - -if [[ -z "${EXTENSIONS##*,msgpack,*}" ]]; then - echo "---------- Install msgpack ----------" - printf "\n" | pecl install msgpack - docker-php-ext-enable msgpack -fi - -if [[ -z "${EXTENSIONS##*,igbinary,*}" ]]; then - echo "---------- Install igbinary ----------" - printf "\n" | pecl install igbinary - docker-php-ext-enable igbinary -fi - -if [[ -z "${EXTENSIONS##*,protobuf,*}" ]]; then - isPhpVersionGreaterOrEqual 8 0 - if [[ "$?" = "1" ]]; then - echo "---------- Install protobuf ----------" - printf "\n" | pecl install protobuf - docker-php-ext-enable protobuf - else - echo "yar requires PHP >= 8.0.0, installed version is ${PHP_VERSION}" - fi -fi - -if [[ -z "${EXTENSIONS##*,yac,*}" ]]; then - isPhpVersionGreaterOrEqual 8 0 - if [[ "$?" = "1" ]]; then - echo "---------- Install yac ----------" - printf "\n" | pecl install yac-2.0.2 - docker-php-ext-enable yac - else - echo "yar requires PHP >= 8.0.0, installed version is ${PHP_VERSION}" - fi -fi - -if [[ -z "${EXTENSIONS##*,yar,*}" ]]; then - isPhpVersionGreaterOrEqual 8 0 - if [[ "$?" = "1" ]]; then - echo "---------- Install yar ----------" - printf "\n" | pecl install yar - docker-php-ext-enable yar - else - echo "yar requires PHP >= 8.0.0, installed version is ${PHP_VERSION}" - fi - -fi - - - -if [[ -z "${EXTENSIONS##*,yaconf,*}" ]]; then - isPhpVersionGreaterOrEqual 8 0 - if [[ "$?" = "1" ]]; then - echo "---------- Install yaconf ----------" - printf "\n" | pecl install yaconf - docker-php-ext-enable yaconf - else - echo "yar requires PHP >= 8.0.0, installed version is ${PHP_VERSION}" - fi -fi - -if [[ -z "${EXTENSIONS##*,seaslog,*}" ]]; then - echo "---------- Install seaslog ----------" - printf "\n" | pecl install seaslog - docker-php-ext-enable seaslog -fi - -if [[ -z "${EXTENSIONS##*,varnish,*}" ]]; then - echo "---------- Install varnish ----------" - apk add --no-cache varnish-dev - printf "\n" | pecl install varnish - docker-php-ext-enable varnish -fi - -if [[ -z "${EXTENSIONS##*,pdo_sqlsrv,*}" ]]; then - isPhpVersionGreaterOrEqual 8 0 - if [[ "$?" = "1" ]]; then - echo "---------- Install pdo_sqlsrv ----------" - apk add --no-cache unixodbc-dev - printf "\n" | pecl install pdo_sqlsrv - docker-php-ext-enable pdo_sqlsrv - curl -o /tmp/msodbcsql17_amd64.apk https://download.microsoft.com/download/e/4/e/e4e67866-dffd-428c-aac7-8d28ddafb39b/msodbcsql17_17.5.2.1-1_amd64.apk - apk add --allow-untrusted /tmp/msodbcsql17_amd64.apk - else - echo "pdo_sqlsrv requires PHP >= 8.0.0, installed version is ${PHP_VERSION}" - fi -fi - -if [[ -z "${EXTENSIONS##*,sqlsrv,*}" ]]; then - isPhpVersionGreaterOrEqual 8 0 - if [[ "$?" = "1" ]]; then - echo "---------- Install sqlsrv ----------" - install-php-extensions sqlsrv - else - echo "sqlsrv requires PHP >= 8.0.0, installed version is ${PHP_VERSION}" - fi -fi - -if [[ -z "${EXTENSIONS##*,mcrypt,*}" ]]; then - isPhpVersionGreaterOrEqual 8 0 - if [[ "$?" = "1" ]]; then - echo "---------- Install mcrypt ----------" - apk add --no-cache libmcrypt-dev libmcrypt re2c - printf "\n" |pecl install mcrypt - docker-php-ext-enable mcrypt - else - echo "---------- Install mcrypt ----------" - apk add --no-cache libmcrypt-dev \ - && docker-php-ext-install ${MC} mcrypt - fi -fi - -if [[ -z "${EXTENSIONS##*,mysql,*}" ]]; then - isPhpVersionGreaterOrEqual 8 0 - - if [[ "$?" = "1" ]]; then - echo "---------- mysql was REMOVED from PHP 8.0.0 ----------" - else - echo "---------- Install mysql ----------" - docker-php-ext-install ${MC} mysql - fi -fi - -if [[ -z "${EXTENSIONS##*,sodium,*}" ]]; then - isPhpVersionGreaterOrEqual 8 0 - if [[ "$?" = "1" ]]; then - echo - echo "Sodium is bundled with PHP from PHP 8.0.0" - echo - else - echo "---------- Install sodium ----------" - apk add --no-cache libsodium-dev - docker-php-ext-install ${MC} sodium - fi -fi - -if [[ -z "${EXTENSIONS##*,amqp,*}" ]]; then - echo "---------- Install amqp ----------" - apk add --no-cache -U autoconf - apk add --no-cache -U gcc - apk add --no-cache -U linux-headers - apk add --no-cache -U libc-dev - - apk add --no-cache --update --virtual .phpize-deps-configure $PHPIZE_DEPS \ - && apk add rabbitmq-c-dev \ - && printf '\n' | pecl install amqp \ - && docker-php-ext-enable amqp \ - && apk del .phpize-deps-configure - -fi - -if [[ -z "${EXTENSIONS##*,redis,*}" ]]; then - echo "---------- Install redis ----------" - installExtensionFromTgz redis-6.0.2 -fi - -if [[ -z "${EXTENSIONS##*,apcu,*}" ]]; then - echo "---------- Install apcu ----------" - pecl install apcu - docker-php-ext-enable apcu -fi - -if [[ -z "${EXTENSIONS##*,memcached,*}" ]]; then - echo "---------- Install memcached ----------" - apk add --no-cache libmemcached-dev zlib-dev - pecl install memcached-3.2.3 - docker-php-ext-enable memcached -fi - -if [[ -z "${EXTENSIONS##*,memcache,*}" ]]; then - echo "---------- Install memcache ----------" - pecl install memcache - docker-php-ext-enable memcache -fi - -if [[ -z "${EXTENSIONS##*,xdebug,*}" ]]; then - echo "---------- Install xdebug ----------" - installExtensionFromTgz xdebug-3.2.0 -fi - -if [[ -z "${EXTENSIONS##*,event,*}" ]]; then - echo "---------- Install event ----------" - apk add --no-cache libevent-dev - export is_sockets_installed=$(php -r "echo extension_loaded('sockets');") - - if [[ "${is_sockets_installed}" = "" ]]; then - echo "---------- event is depend on sockets, install sockets first ----------" - docker-php-ext-install sockets - fi - - echo "---------- Install event again ----------" - mkdir event - tar -xf event-3.0.8.tgz -C event --strip-components=1 - cd event && phpize && ./configure && make && make install - - docker-php-ext-enable --ini-name event.ini event -fi - -if [[ -z "${EXTENSIONS##*,mongodb,*}" ]]; then - echo "---------- Install mongodb ----------" - apk add --no-cache openssl-dev - installExtensionFromTgz mongodb-1.15.2 - docker-php-ext-configure mongodb --with-mongodb-ssl=openssl - docker-php-ext-enable mongodb -fi - -if [[ -z "${EXTENSIONS##*,yaf,*}" ]]; then - echo "---------- Install yaf ----------" - pecl install yaf - docker-php-ext-enable yaf -fi - - -if [[ -z "${EXTENSIONS##*,swoole,*}" ]]; then - echo "---------- Install swoole ----------" - install-php-extensions swoole -fi - -if [[ -z "${EXTENSIONS##*,zip,*}" ]]; then - echo "---------- Install zip ----------" - # Fix: https://github.com/docker-library/php/issues/797 - apk add --no-cache libzip-dev - - isPhpVersionGreaterOrEqual 8 0 - if [[ "$?" != "1" ]]; then - docker-php-ext-configure zip --with-libzip=/usr/include - fi - - docker-php-ext-install ${MC} zip -fi - -if [[ -z "${EXTENSIONS##*,xhprof,*}" ]]; then - echo "---------- Install XHProf ----------" - pecl install xhprof - docker-php-ext-enable xhprof - -fi - -if [[ -z "${EXTENSIONS##*,xlswriter,*}" ]]; then - echo "---------- Install xlswriter ----------" - isPhpVersionGreaterOrEqual 8 0 - - if [[ "$?" = "1" ]]; then - printf "\n" | pecl install xlswriter - docker-php-ext-enable xlswriter - else - echo "---------- PHP Version>= 8.0----------" - fi -fi - -if [[ -z "${EXTENSIONS##*,rdkafka,*}" ]]; then - echo "---------- Install rdkafka ----------" - isPhpVersionGreaterOrEqual 8 0 - - if [[ "$?" = "1" ]]; then - apk add librdkafka-dev - printf "\n" | pecl install rdkafka - docker-php-ext-enable rdkafka - else - echo "---------- PHP Version>= 8.0----------" - fi -fi - -if [[ -z "${EXTENSIONS##*,zookeeper,*}" ]]; then - echo "---------- Install zookeeper ----------" - isPhpVersionGreaterOrEqual 8 0 - - if [[ "$?" = "1" ]]; then - apk add re2c - apk add libzookeeper-dev --repository http://${CONTAINER_PACKAGE_URL}/alpine/edge/testing/ - printf "\n" | pecl install zookeeper - docker-php-ext-enable zookeeper - else - echo "---------- PHP Version>= 8.0----------" - fi -fi - -if [[ -z "${EXTENSIONS##*,phalcon,*}" ]]; then - echo "---------- Install phalcon ----------" - isPhpVersionGreaterOrEqual 8 0 - - if [[ "$?" = "1" ]]; then - printf "\n" | pecl install phalcon - docker-php-ext-enable psr - docker-php-ext-enable phalcon - else - echo "---------- PHP Version>= 8.0----------" - fi -fi - -if [[ -z "${EXTENSIONS##*,sdebug,*}" ]]; then - echo "---------- Install sdebug ----------" - isPhpVersionGreaterOrEqual 8 0 - - if [[ "$?" = "1" ]]; then - curl -SL "https://github.com/swoole/sdebug/archive/sdebug_2_9-beta.tar.gz" -o sdebug.tar.gz \ - && mkdir -p sdebug \ - && tar -xf sdebug.tar.gz -C sdebug --strip-components=1 \ - && rm sdebug.tar.gz \ - && ( \ - cd sdebug \ - && phpize \ - && ./configure --enable-xdebug \ - && make clean && make && make install \ - ) \ - && docker-php-ext-enable xdebug - else - echo "---------- PHP Version>= 8.0----------" - fi -fi - -if [ "${PHP_EXTENSIONS}" != "" ]; then -# PHP-Imagick 扩展中有所需的其他依赖项,不进行删除.build-deps -# apk del .build-deps \ - docker-php-source delete -fi diff --git a/php8/8.3.20/build/php/extensions/mongodb-1.15.2.tgz b/php8/8.3.20/build/php/extensions/mongodb-1.15.2.tgz deleted file mode 100644 index 41c2e064b..000000000 Binary files a/php8/8.3.20/build/php/extensions/mongodb-1.15.2.tgz and /dev/null differ diff --git a/php8/8.3.20/build/php/extensions/redis-6.0.2.tgz b/php8/8.3.20/build/php/extensions/redis-6.0.2.tgz deleted file mode 100644 index 2d7b7987f..000000000 Binary files a/php8/8.3.20/build/php/extensions/redis-6.0.2.tgz and /dev/null differ diff --git a/php8/8.3.20/build/php/extensions/swoole-5.0.2.tgz b/php8/8.3.20/build/php/extensions/swoole-5.0.2.tgz deleted file mode 100644 index 7e42418c3..000000000 Binary files a/php8/8.3.20/build/php/extensions/swoole-5.0.2.tgz and /dev/null differ diff --git a/php8/8.3.20/build/php/extensions/xdebug-3.2.0.tgz b/php8/8.3.20/build/php/extensions/xdebug-3.2.0.tgz deleted file mode 100644 index 4023612cb..000000000 Binary files a/php8/8.3.20/build/php/extensions/xdebug-3.2.0.tgz and /dev/null differ diff --git a/php8/8.3.20/build/php/php-fpm.conf b/php8/8.3.20/build/php/php-fpm.conf deleted file mode 100644 index 131835891..000000000 --- a/php8/8.3.20/build/php/php-fpm.conf +++ /dev/null @@ -1,423 +0,0 @@ -; Start a new pool named 'www'. -; the variable $pool can be used in any directive and will be replaced by the -; pool name ('www' here) -[www] - -; Per pool prefix -; It only applies on the following directives: -; - 'access.log' -; - 'slowlog' -; - 'listen' (unixsocket) -; - 'chroot' -; - 'chdir' -; - 'php_values' -; - 'php_admin_values' -; When not set, the global prefix (or NONE) applies instead. -; Note: This directive can also be relative to the global prefix. -; Default Value: none -;prefix = /path/to/pools/$pool - -; Unix user/group of processes -; Note: The user is mandatory. If the group is not set, the default user's group -; will be used. -user = www-data -group = www-data - -; The address on which to accept FastCGI requests. -; Valid syntaxes are: -; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on -; a specific port; -; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on -; a specific port; -; 'port' - to listen on a TCP socket to all addresses -; (IPv6 and IPv4-mapped) on a specific port; -; '/path/to/unix/socket' - to listen on a unix socket. -; Note: This value is mandatory. -listen = 127.0.0.1:9000 - -; Set listen(2) backlog. -; Default Value: 511 (-1 on FreeBSD and OpenBSD) -;listen.backlog = 511 - -; Set permissions for unix socket, if one is used. In Linux, read/write -; permissions must be set in order to allow connections from a web server. Many -; BSD-derived systems allow connections regardless of permissions. -; Default Values: user and group are set as the running user -; mode is set to 0660 -;listen.owner = www-data -;listen.group = www-data -;listen.mode = 0660 -; When POSIX Access Control Lists are supported you can set them using -; these options, value is a comma separated list of user/group names. -; When set, listen.owner and listen.group are ignored -;listen.acl_users = -;listen.acl_groups = - -; List of addresses (IPv4/IPv6) of FastCGI clients which are allowed to connect. -; Equivalent to the FCGI_WEB_SERVER_ADDRS environment variable in the original -; PHP FCGI (5.2.2+). Makes sense only with a tcp listening socket. Each address -; must be separated by a comma. If this value is left blank, connections will be -; accepted from any ip address. -; Default Value: any -;listen.allowed_clients = 127.0.0.1 - -; Specify the nice(2) priority to apply to the pool processes (only if set) -; The value can vary from -19 (highest priority) to 20 (lower priority) -; Note: - It will only work if the FPM master process is launched as root -; - The pool processes will inherit the master process priority -; unless it specified otherwise -; Default Value: no set -; process.priority = -19 - -; Set the process dumpable flag (PR_SET_DUMPABLE prctl) even if the process user -; or group is differrent than the master process user. It allows to create process -; core dump and ptrace the process for the pool user. -; Default Value: no -; process.dumpable = yes - -; Choose how the process manager will control the number of child processes. -; Possible Values: -; static - a fixed number (pm.max_children) of child processes; -; dynamic - the number of child processes are set dynamically based on the -; following directives. With this process management, there will be -; always at least 1 children. -; pm.max_children - the maximum number of children that can -; be alive at the same time. -; pm.start_servers - the number of children created on startup. -; pm.min_spare_servers - the minimum number of children in 'idle' -; state (waiting to process). If the number -; of 'idle' processes is less than this -; number then some children will be created. -; pm.max_spare_servers - the maximum number of children in 'idle' -; state (waiting to process). If the number -; of 'idle' processes is greater than this -; number then some children will be killed. -; ondemand - no children are created at startup. Children will be forked when -; new requests will connect. The following parameter are used: -; pm.max_children - the maximum number of children that -; can be alive at the same time. -; pm.process_idle_timeout - The number of seconds after which -; an idle process will be killed. -; Note: This value is mandatory. -pm = dynamic - -; The number of child processes to be created when pm is set to 'static' and the -; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'. -; This value sets the limit on the number of simultaneous requests that will be -; served. Equivalent to the ApacheMaxClients directive with mpm_prefork. -; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP -; CGI. The below defaults are based on a server without much resources. Don't -; forget to tweak pm.* to fit your needs. -; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand' -; Note: This value is mandatory. -pm.max_children = 10 - -; The number of child processes created on startup. -; Note: Used only when pm is set to 'dynamic' -; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2 -pm.start_servers = 2 - -; The desired minimum number of idle server processes. -; Note: Used only when pm is set to 'dynamic' -; Note: Mandatory when pm is set to 'dynamic' -pm.min_spare_servers = 1 - -; The desired maximum number of idle server processes. -; Note: Used only when pm is set to 'dynamic' -; Note: Mandatory when pm is set to 'dynamic' -pm.max_spare_servers = 3 - -; The number of seconds after which an idle process will be killed. -; Note: Used only when pm is set to 'ondemand' -; Default Value: 10s -;pm.process_idle_timeout = 10s; - -; The number of requests each child process should execute before respawning. -; This can be useful to work around memory leaks in 3rd party libraries. For -; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS. -; Default Value: 0 -;pm.max_requests = 500 - -; The URI to view the FPM status page. If this value is not set, no URI will be -; recognized as a status page. It shows the following informations: -; pool - the name of the pool; -; process manager - static, dynamic or ondemand; -; start time - the date and time FPM has started; -; start since - number of seconds since FPM has started; -; accepted conn - the number of request accepted by the pool; -; listen queue - the number of request in the queue of pending -; connections (see backlog in listen(2)); -; max listen queue - the maximum number of requests in the queue -; of pending connections since FPM has started; -; listen queue len - the size of the socket queue of pending connections; -; idle processes - the number of idle processes; -; active processes - the number of active processes; -; total processes - the number of idle + active processes; -; max active processes - the maximum number of active processes since FPM -; has started; -; max children reached - number of times, the process limit has been reached, -; when pm tries to start more children (works only for -; pm 'dynamic' and 'ondemand'); -; Value are updated in real time. -; Example output: -; pool: www -; process manager: static -; start time: 01/Jul/2011:17:53:49 +0200 -; start since: 62636 -; accepted conn: 190460 -; listen queue: 0 -; max listen queue: 1 -; listen queue len: 42 -; idle processes: 4 -; active processes: 11 -; total processes: 15 -; max active processes: 12 -; max children reached: 0 -; -; By default the status page output is formatted as text/plain. Passing either -; 'html', 'xml' or 'json' in the query string will return the corresponding -; output syntax. Example: -; http://www.foo.bar/status -; http://www.foo.bar/status?json -; http://www.foo.bar/status?html -; http://www.foo.bar/status?xml -; -; By default the status page only outputs short status. Passing 'full' in the -; query string will also return status for each pool process. -; Example: -; http://www.foo.bar/status?full -; http://www.foo.bar/status?json&full -; http://www.foo.bar/status?html&full -; http://www.foo.bar/status?xml&full -; The Full status returns for each process: -; pid - the PID of the process; -; state - the state of the process (Idle, Running, ...); -; start time - the date and time the process has started; -; start since - the number of seconds since the process has started; -; requests - the number of requests the process has served; -; request duration - the duration in µs of the requests; -; request method - the request method (GET, POST, ...); -; request URI - the request URI with the query string; -; content length - the content length of the request (only with POST); -; user - the user (PHP_AUTH_USER) (or '-' if not set); -; script - the main script called (or '-' if not set); -; last request cpu - the %cpu the last request consumed -; it's always 0 if the process is not in Idle state -; because CPU calculation is done when the request -; processing has terminated; -; last request memory - the max amount of memory the last request consumed -; it's always 0 if the process is not in Idle state -; because memory calculation is done when the request -; processing has terminated; -; If the process is in Idle state, then informations are related to the -; last request the process has served. Otherwise informations are related to -; the current request being served. -; Example output: -; ************************ -; pid: 31330 -; state: Running -; start time: 01/Jul/2011:17:53:49 +0200 -; start since: 63087 -; requests: 12808 -; request duration: 1250261 -; request method: GET -; request URI: /test_mem.php?N=10000 -; content length: 0 -; user: - -; script: /home/fat/web/docs/php/test_mem.php -; last request cpu: 0.00 -; last request memory: 0 -; -; Note: There is a real-time FPM status monitoring sample web page available -; It's available in: /usr/local/share/php/fpm/status.html -; -; Note: The value must start with a leading slash (/). The value can be -; anything, but it may not be a good idea to use the .php extension or it -; may conflict with a real PHP file. -; Default Value: not set -;pm.status_path = /status - -; The ping URI to call the monitoring page of FPM. If this value is not set, no -; URI will be recognized as a ping page. This could be used to test from outside -; that FPM is alive and responding, or to -; - create a graph of FPM availability (rrd or such); -; - remove a server from a group if it is not responding (load balancing); -; - trigger alerts for the operating team (24/7). -; Note: The value must start with a leading slash (/). The value can be -; anything, but it may not be a good idea to use the .php extension or it -; may conflict with a real PHP file. -; Default Value: not set -;ping.path = /ping - -; This directive may be used to customize the response of a ping request. The -; response is formatted as text/plain with a 200 response code. -; Default Value: pong -;ping.response = pong - -; The access log file -; Default: not set -;access.log = log/$pool.access.log - -; The access log format. -; The following syntax is allowed -; %%: the '%' character -; %C: %CPU used by the request -; it can accept the following format: -; - %{user}C for user CPU only -; - %{system}C for system CPU only -; - %{total}C for user + system CPU (default) -; %d: time taken to serve the request -; it can accept the following format: -; - %{seconds}d (default) -; - %{miliseconds}d -; - %{mili}d -; - %{microseconds}d -; - %{micro}d -; %e: an environment variable (same as $_ENV or $_SERVER) -; it must be associated with embraces to specify the name of the env -; variable. Some exemples: -; - server specifics like: %{REQUEST_METHOD}e or %{SERVER_PROTOCOL}e -; - HTTP headers like: %{HTTP_HOST}e or %{HTTP_USER_AGENT}e -; %f: script filename -; %l: content-length of the request (for POST request only) -; %m: request method -; %M: peak of memory allocated by PHP -; it can accept the following format: -; - %{bytes}M (default) -; - %{kilobytes}M -; - %{kilo}M -; - %{megabytes}M -; - %{mega}M -; %n: pool name -; %o: output header -; it must be associated with embraces to specify the name of the header: -; - %{Content-Type}o -; - %{X-Powered-By}o -; - %{Transfert-Encoding}o -; - .... -; %p: PID of the child that serviced the request -; %P: PID of the parent of the child that serviced the request -; %q: the query string -; %Q: the '?' character if query string exists -; %r: the request URI (without the query string, see %q and %Q) -; %R: remote IP address -; %s: status (response code) -; %t: server time the request was received -; it can accept a strftime(3) format: -; %d/%b/%Y:%H:%M:%S %z (default) -; The strftime(3) format must be encapsuled in a %{}t tag -; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t -; %T: time the log has been written (the request has finished) -; it can accept a strftime(3) format: -; %d/%b/%Y:%H:%M:%S %z (default) -; The strftime(3) format must be encapsuled in a %{}t tag -; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t -; %u: remote user -; -; Default: "%R - %u %t \"%m %r\" %s" -;access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%" - -; The log file for slow requests -; Default Value: not set -; Note: slowlog is mandatory if request_slowlog_timeout is set -slowlog = /var/log/php/fpm.slow.log - -; The timeout for serving a single request after which a PHP backtrace will be -; dumped to the 'slowlog' file. A value of '0s' means 'off'. -; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) -; Default Value: 0 -request_slowlog_timeout = 3 - -; Depth of slow log stack trace. -; Default Value: 20 -;request_slowlog_trace_depth = 20 - -; The timeout for serving a single request after which the worker process will -; be killed. This option should be used when the 'max_execution_time' ini option -; does not stop script execution for some reason. A value of '0' means 'off'. -; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) -; Default Value: 0 -;request_terminate_timeout = 0 - -; Set open file descriptor rlimit. -; Default Value: system defined value -;rlimit_files = 1024 - -; Set max core size rlimit. -; Possible Values: 'unlimited' or an integer greater or equal to 0 -; Default Value: system defined value -;rlimit_core = 0 - -; Chroot to this directory at the start. This value must be defined as an -; absolute path. When this value is not set, chroot is not used. -; Note: you can prefix with '$prefix' to chroot to the pool prefix or one -; of its subdirectories. If the pool prefix is not set, the global prefix -; will be used instead. -; Note: chrooting is a great security feature and should be used whenever -; possible. However, all PHP paths will be relative to the chroot -; (error_log, sessions.save_path, ...). -; Default Value: not set -;chroot = - -; Chdir to this directory at the start. -; Note: relative path can be used. -; Default Value: current directory or / when chroot -;chdir = /var/www - -; Redirect worker stdout and stderr into main error log. If not set, stdout and -; stderr will be redirected to /dev/null according to FastCGI specs. -; Note: on highloaded environement, this can cause some delay in the page -; process time (several ms). -; Default Value: no -catch_workers_output = yes - -; Clear environment in FPM workers -; Prevents arbitrary environment variables from reaching FPM worker processes -; by clearing the environment in workers before env vars specified in this -; pool configuration are added. -; Setting to "no" will make all environment variables available to PHP code -; via getenv(), $_ENV and $_SERVER. -; Default Value: yes -;clear_env = no - -; Limits the extensions of the main script FPM will allow to parse. This can -; prevent configuration mistakes on the web server side. You should only limit -; FPM to .php extensions to prevent malicious users to use other extensions to -; execute php code. -; Note: set an empty value to allow all extensions. -; Default Value: .php -;security.limit_extensions = .php .php3 .php4 .php5 .php7 - -; Pass environment variables like LD_LIBRARY_PATH. All $VARIABLEs are taken from -; the current environment. -; Default Value: clean env -;env[HOSTNAME] = $HOSTNAME -;env[PATH] = /usr/local/bin:/usr/bin:/bin -;env[TMP] = /tmp -;env[TMPDIR] = /tmp -;env[TEMP] = /tmp - -; Additional php.ini defines, specific to this pool of workers. These settings -; overwrite the values previously defined in the php.ini. The directives are the -; same as the PHP SAPI: -; php_value/php_flag - you can set classic ini defines which can -; be overwritten from PHP call 'ini_set'. -; php_admin_value/php_admin_flag - these directives won't be overwritten by -; PHP call 'ini_set' -; For php_*flag, valid values are on, off, 1, 0, true, false, yes or no. - -; Defining 'extension' will load the corresponding shared extension from -; extension_dir. Defining 'disable_functions' or 'disable_classes' will not -; overwrite previously defined php.ini values, but will append the new value -; instead. - -; Note: path INI options can be relative and will be expanded with the prefix -; (pool, global or /usr/local) - -; Default Value: nothing is defined by default except the values in php.ini and -; specified at startup with the -d argument -;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com -;php_flag[display_errors] = off -;php_admin_value[error_log] = /var/log/fpm-php.www.log -;php_admin_flag[log_errors] = on -;php_admin_value[memory_limit] = 32M diff --git a/php8/8.3.20/build/php/php.ini b/php8/8.3.20/build/php/php.ini deleted file mode 100644 index 82b728e20..000000000 --- a/php8/8.3.20/build/php/php.ini +++ /dev/null @@ -1,1933 +0,0 @@ -[PHP] - -;;;;;;;;;;;;;;;;;;; -; About php.ini ; -;;;;;;;;;;;;;;;;;;; -; PHP's initialization file, generally called php.ini, is responsible for -; configuring many of the aspects of PHP's behavior. - -; PHP attempts to find and load this configuration from a number of locations. -; The following is a summary of its search order: -; 1. SAPI module specific location. -; 2. The PHPRC environment variable. (As of PHP 5.2.0) -; 3. A number of predefined registry keys on Windows (As of PHP 5.2.0) -; 4. Current working directory (except CLI) -; 5. The web server's directory (for SAPI modules), or directory of PHP -; (otherwise in Windows) -; 6. The directory from the --with-config-file-path compile time option, or the -; Windows directory (C:\windows or C:\winnt) -; See the PHP docs for more specific information. -; http://php.net/configuration.file - -; The syntax of the file is extremely simple. Whitespace and lines -; beginning with a semicolon are silently ignored (as you probably guessed). -; Section headers (e.g. [Foo]) are also silently ignored, even though -; they might mean something in the future. - -; Directives following the section heading [PATH=/www/mysite] only -; apply to PHP files in the /www/mysite directory. Directives -; following the section heading [HOST=www.example.com] only apply to -; PHP files served from www.example.com. Directives set in these -; special sections cannot be overridden by user-defined INI files or -; at runtime. Currently, [PATH=] and [HOST=] sections only work under -; CGI/FastCGI. -; http://php.net/ini.sections - -; Directives are specified using the following syntax: -; directive = value -; Directive names are *case sensitive* - foo=bar is different from FOO=bar. -; Directives are variables used to configure PHP or PHP extensions. -; There is no name validation. If PHP can't find an expected -; directive because it is not set or is mistyped, a default value will be used. - -; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one -; of the INI constants (On, Off, True, False, Yes, No and None) or an expression -; (e.g. E_ALL & ~E_NOTICE), a quoted string ("bar"), or a reference to a -; previously set variable or directive (e.g. ${foo}) - -; Expressions in the INI file are limited to bitwise operators and parentheses: -; | bitwise OR -; ^ bitwise XOR -; & bitwise AND -; ~ bitwise NOT -; ! boolean NOT - -; Boolean flags can be turned on using the values 1, On, True or Yes. -; They can be turned off using the values 0, Off, False or No. - -; An empty string can be denoted by simply not writing anything after the equal -; sign, or by using the None keyword: - -; foo = ; sets foo to an empty string -; foo = None ; sets foo to an empty string -; foo = "None" ; sets foo to the string 'None' - -; If you use constants in your value, and these constants belong to a -; dynamically loaded extension (either a PHP extension or a Zend extension), -; you may only use these constants *after* the line that loads the extension. - -;;;;;;;;;;;;;;;;;;; -; About this file ; -;;;;;;;;;;;;;;;;;;; -; PHP comes packaged with two INI files. One that is recommended to be used -; in production environments and one that is recommended to be used in -; development environments. - -; php.ini-production contains settings which hold security, performance and -; best practices at its core. But please be aware, these settings may break -; compatibility with older or less security conscience applications. We -; recommending using the production ini in production and testing environments. - -; php.ini-development is very similar to its production variant, except it is -; much more verbose when it comes to errors. We recommend using the -; development version only in development environments, as errors shown to -; application users can inadvertently leak otherwise secure information. - -; This is php.ini-production INI file. - -;;;;;;;;;;;;;;;;;;; -; Quick Reference ; -;;;;;;;;;;;;;;;;;;; -; The following are all the settings which are different in either the production -; or development versions of the INIs with respect to PHP's default behavior. -; Please see the actual settings later in the document for more details as to why -; we recommend these changes in PHP's behavior. - -; display_errors -; Default Value: On -; Development Value: On -; Production Value: Off - -; display_startup_errors -; Default Value: Off -; Development Value: On -; Production Value: Off - -; error_reporting -; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT - -; html_errors -; Default Value: On -; Development Value: On -; Production value: On - -; log_errors -; Default Value: Off -; Development Value: On -; Production Value: On - -; max_input_time -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) - -; output_buffering -; Default Value: Off -; Development Value: 4096 -; Production Value: 4096 - -; register_argc_argv -; Default Value: On -; Development Value: Off -; Production Value: Off - -; request_order -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" - -; session.gc_divisor -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 - -; session.sid_bits_per_character -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 - -; short_open_tag -; Default Value: On -; Development Value: Off -; Production Value: Off - -; track_errors -; Default Value: Off -; Development Value: On -; Production Value: Off - -; variables_order -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS" - -;;;;;;;;;;;;;;;;;;;; -; php.ini Options ; -;;;;;;;;;;;;;;;;;;;; -; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini" -;user_ini.filename = ".user.ini" - -; To disable this feature set this option to empty value -;user_ini.filename = - -; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes) -;user_ini.cache_ttl = 300 - -;;;;;;;;;;;;;;;;;;;; -; Language Options ; -;;;;;;;;;;;;;;;;;;;; - -; Enable the PHP scripting language engine under Apache. -; http://php.net/engine -engine = On - -; This directive determines whether or not PHP will recognize code between -; tags as PHP source which should be processed as such. It is -; generally recommended that should be used and that this feature -; should be disabled, as enabling it may result in issues when generating XML -; documents, however this remains supported for backward compatibility reasons. -; Note that this directive does not control the would work. -; http://php.net/syntax-highlighting -;highlight.string = #DD0000 -;highlight.comment = #FF9900 -;highlight.keyword = #007700 -;highlight.default = #0000BB -;highlight.html = #000000 - -; If enabled, the request will be allowed to complete even if the user aborts -; the request. Consider enabling it if executing long requests, which may end up -; being interrupted by the user or a browser timing out. PHP's default behavior -; is to disable this feature. -; http://php.net/ignore-user-abort -;ignore_user_abort = On - -; Determines the size of the realpath cache to be used by PHP. This value should -; be increased on systems where PHP opens many files to reflect the quantity of -; the file operations performed. -; http://php.net/realpath-cache-size -;realpath_cache_size = 4096k - -; Duration of time, in seconds for which to cache realpath information for a given -; file or directory. For systems with rarely changing files, consider increasing this -; value. -; http://php.net/realpath-cache-ttl -;realpath_cache_ttl = 120 - -; Enables or disables the circular reference collector. -; http://php.net/zend.enable-gc -zend.enable_gc = On - -; If enabled, scripts may be written in encodings that are incompatible with -; the scanner. CP936, Big5, CP949 and Shift_JIS are the examples of such -; encodings. To use this feature, mbstring extension must be enabled. -; Default: Off -;zend.multibyte = Off - -; Allows to set the default encoding for the scripts. This value will be used -; unless "declare(encoding=...)" directive appears at the top of the script. -; Only affects if zend.multibyte is set. -; Default: "" -;zend.script_encoding = - -;;;;;;;;;;;;;;;;; -; Miscellaneous ; -;;;;;;;;;;;;;;;;; - -; Decides whether PHP may expose the fact that it is installed on the server -; (e.g. by adding its signature to the Web server header). It is no security -; threat in any way, but it makes it possible to determine whether you use PHP -; on your server or not. -; http://php.net/expose-php -expose_php = Off - -;;;;;;;;;;;;;;;;;;; -; Resource Limits ; -;;;;;;;;;;;;;;;;;;; - -; Maximum execution time of each script, in seconds -; http://php.net/max-execution-time -; Note: This directive is hardcoded to 0 for the CLI SAPI -max_execution_time = 30 - -; Maximum amount of time each script may spend parsing request data. It's a good -; idea to limit this time on productions servers in order to eliminate unexpectedly -; long running scripts. -; Note: This directive is hardcoded to -1 for the CLI SAPI -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) -; http://php.net/max-input-time -max_input_time = 60 - -; Maximum input variable nesting level -; http://php.net/max-input-nesting-level -;max_input_nesting_level = 64 - -; How many GET/POST/COOKIE input variables may be accepted -; max_input_vars = 1000 - -; Maximum amount of memory a script may consume (128MB) -; http://php.net/memory-limit -memory_limit = 256M - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; Error handling and logging ; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -; This directive informs PHP of which errors, warnings and notices you would like -; it to take action for. The recommended way of setting values for this -; directive is through the use of the error level constants and bitwise -; operators. The error level constants are below here for convenience as well as -; some common settings and their meanings. -; By default, PHP is set to take action on all errors, notices and warnings EXCEPT -; those related to E_NOTICE and E_STRICT, which together cover best practices and -; recommended coding standards in PHP. For performance reasons, this is the -; recommend error reporting setting. Your production server shouldn't be wasting -; resources complaining about best practices and coding standards. That's what -; development servers and development settings are for. -; Note: The php.ini-development file has this setting as E_ALL. This -; means it pretty much reports everything which is exactly what you want during -; development and early testing. -; -; Error Level Constants: -; E_ALL - All errors and warnings (includes E_STRICT as of PHP 5.4.0) -; E_ERROR - fatal run-time errors -; E_RECOVERABLE_ERROR - almost fatal run-time errors -; E_WARNING - run-time warnings (non-fatal errors) -; E_PARSE - compile-time parse errors -; E_NOTICE - run-time notices (these are warnings which often result -; from a bug in your code, but it's possible that it was -; intentional (e.g., using an uninitialized variable and -; relying on the fact it is automatically initialized to an -; empty string) -; E_STRICT - run-time notices, enable to have PHP suggest changes -; to your code which will ensure the best interoperability -; and forward compatibility of your code -; E_CORE_ERROR - fatal errors that occur during PHP's initial startup -; E_CORE_WARNING - warnings (non-fatal errors) that occur during PHP's -; initial startup -; E_COMPILE_ERROR - fatal compile-time errors -; E_COMPILE_WARNING - compile-time warnings (non-fatal errors) -; E_USER_ERROR - user-generated error message -; E_USER_WARNING - user-generated warning message -; E_USER_NOTICE - user-generated notice message -; E_DEPRECATED - warn about code that will not work in future versions -; of PHP -; E_USER_DEPRECATED - user-generated deprecation warnings -; -; Common Values: -; E_ALL (Show all errors, warnings and notices including coding standards.) -; E_ALL & ~E_NOTICE (Show all errors, except for notices) -; E_ALL & ~E_NOTICE & ~E_STRICT (Show all errors, except for notices and coding standards warnings.) -; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors) -; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT -; http://php.net/error-reporting -error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT - -; This directive controls whether or not and where PHP will output errors, -; notices and warnings too. Error output is very useful during development, but -; it could be very dangerous in production environments. Depending on the code -; which is triggering the error, sensitive information could potentially leak -; out of your application such as database usernames and passwords or worse. -; For production environments, we recommend logging errors rather than -; sending them to STDOUT. -; Possible Values: -; Off = Do not display any errors -; stderr = Display errors to STDERR (affects only CGI/CLI binaries!) -; On or stdout = Display errors to STDOUT -; Default Value: On -; Development Value: On -; Production Value: Off -; http://php.net/display-errors -display_errors = Off - -; The display of errors which occur during PHP's startup sequence are handled -; separately from display_errors. PHP's default behavior is to suppress those -; errors from clients. Turning the display of startup errors on can be useful in -; debugging configuration problems. We strongly recommend you -; set this to 'off' for production servers. -; Default Value: Off -; Development Value: On -; Production Value: Off -; http://php.net/display-startup-errors -display_startup_errors = Off - -; Besides displaying errors, PHP can also log errors to locations such as a -; server-specific log, STDERR, or a location specified by the error_log -; directive found below. While errors should not be displayed on productions -; servers they should still be monitored and logging is a great way to do that. -; Default Value: Off -; Development Value: On -; Production Value: On -; http://php.net/log-errors -log_errors = On - -; Set maximum length of log_errors. In error_log information about the source is -; added. The default is 1024 and 0 allows to not apply any maximum length at all. -; http://php.net/log-errors-max-len -log_errors_max_len = 1024 - -; Do not log repeated messages. Repeated errors must occur in same file on same -; line unless ignore_repeated_source is set true. -; http://php.net/ignore-repeated-errors -ignore_repeated_errors = Off - -; Ignore source of message when ignoring repeated messages. When this setting -; is On you will not log errors with repeated messages from different files or -; source lines. -; http://php.net/ignore-repeated-source -ignore_repeated_source = Off - -; If this parameter is set to Off, then memory leaks will not be shown (on -; stdout or in the log). This has only effect in a debug compile, and if -; error reporting includes E_WARNING in the allowed list -; http://php.net/report-memleaks -report_memleaks = On - -; This setting is on by default. -;report_zend_debug = 0 - -; Store the last error/warning message in $php_errormsg (boolean). Setting this value -; to On can assist in debugging and is appropriate for development servers. It should -; however be disabled on production servers. -; Default Value: Off -; Development Value: On -; Production Value: Off -; http://php.net/track-errors -track_errors = Off - -; Turn off normal error reporting and emit XML-RPC error XML -; http://php.net/xmlrpc-errors -;xmlrpc_errors = 0 - -; An XML-RPC faultCode -;xmlrpc_error_number = 0 - -; When PHP displays or logs an error, it has the capability of formatting the -; error message as HTML for easier reading. This directive controls whether -; the error message is formatted as HTML or not. -; Note: This directive is hardcoded to Off for the CLI SAPI -; Default Value: On -; Development Value: On -; Production value: On -; http://php.net/html-errors -html_errors = On - -; If html_errors is set to On *and* docref_root is not empty, then PHP -; produces clickable error messages that direct to a page describing the error -; or function causing the error in detail. -; You can download a copy of the PHP manual from http://php.net/docs -; and change docref_root to the base URL of your local copy including the -; leading '/'. You must also specify the file extension being used including -; the dot. PHP's default behavior is to leave these settings empty, in which -; case no links to documentation are generated. -; Note: Never use this feature for production boxes. -; http://php.net/docref-root -; Examples -;docref_root = "/phpmanual/" - -; http://php.net/docref-ext -;docref_ext = .html - -; String to output before an error message. PHP's default behavior is to leave -; this setting blank. -; http://php.net/error-prepend-string -; Example: -;error_prepend_string = "" - -; String to output after an error message. PHP's default behavior is to leave -; this setting blank. -; http://php.net/error-append-string -; Example: -;error_append_string = "" - -; Log errors to specified file. PHP's default behavior is to leave this value -; empty. -; http://php.net/error-log -; Example: -;error_log = php_errors.log -; Log errors to syslog (Event Log on Windows). -error_log = /var/log/php/php.error.log - -;windows.show_crt_warning -; Default value: 0 -; Development value: 0 -; Production value: 0 - -;;;;;;;;;;;;;;;;; -; Data Handling ; -;;;;;;;;;;;;;;;;; - -; The separator used in PHP generated URLs to separate arguments. -; PHP's default setting is "&". -; http://php.net/arg-separator.output -; Example: -;arg_separator.output = "&" - -; List of separator(s) used by PHP to parse input URLs into variables. -; PHP's default setting is "&". -; NOTE: Every character in this directive is considered as separator! -; http://php.net/arg-separator.input -; Example: -;arg_separator.input = ";&" - -; This directive determines which super global arrays are registered when PHP -; starts up. G,P,C,E & S are abbreviations for the following respective super -; globals: GET, POST, COOKIE, ENV and SERVER. There is a performance penalty -; paid for the registration of these arrays and because ENV is not as commonly -; used as the others, ENV is not recommended on productions servers. You -; can still get access to the environment variables through getenv() should you -; need to. -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS"; -; http://php.net/variables-order -variables_order = "GPCS" - -; This directive determines which super global data (G,P & C) should be -; registered into the super global array REQUEST. If so, it also determines -; the order in which that data is registered. The values for this directive -; are specified in the same manner as the variables_order directive, -; EXCEPT one. Leaving this value empty will cause PHP to use the value set -; in the variables_order directive. It does not mean it will leave the super -; globals array REQUEST empty. -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" -; http://php.net/request-order -request_order = "GP" - -; This directive determines whether PHP registers $argv & $argc each time it -; runs. $argv contains an array of all the arguments passed to PHP when a script -; is invoked. $argc contains an integer representing the number of arguments -; that were passed when the script was invoked. These arrays are extremely -; useful when running scripts from the command line. When this directive is -; enabled, registering these variables consumes CPU cycles and memory each time -; a script is executed. For performance reasons, this feature should be disabled -; on production servers. -; Note: This directive is hardcoded to On for the CLI SAPI -; Default Value: On -; Development Value: Off -; Production Value: Off -; http://php.net/register-argc-argv -register_argc_argv = Off - -; When enabled, the ENV, REQUEST and SERVER variables are created when they're -; first used (Just In Time) instead of when the script starts. If these -; variables are not used within a script, having this directive on will result -; in a performance gain. The PHP directive register_argc_argv must be disabled -; for this directive to have any affect. -; http://php.net/auto-globals-jit -auto_globals_jit = On - -; Whether PHP will read the POST data. -; This option is enabled by default. -; Most likely, you won't want to disable this option globally. It causes $_POST -; and $_FILES to always be empty; the only way you will be able to read the -; POST data will be through the php://input stream wrapper. This can be useful -; to proxy requests or to process the POST data in a memory efficient fashion. -; http://php.net/enable-post-data-reading -;enable_post_data_reading = Off - -; Maximum size of POST data that PHP will accept. -; Its value may be 0 to disable the limit. It is ignored if POST data reading -; is disabled through enable_post_data_reading. -; http://php.net/post-max-size -post_max_size = 100M - -; Automatically add files before PHP document. -; http://php.net/auto-prepend-file -auto_prepend_file = - -; Automatically add files after PHP document. -; http://php.net/auto-append-file -auto_append_file = - -; By default, PHP will output a media type using the Content-Type header. To -; disable this, simply set it to be empty. -; -; PHP's built-in default media type is set to text/html. -; http://php.net/default-mimetype -default_mimetype = "text/html" - -; PHP's default character set is set to UTF-8. -; http://php.net/default-charset -default_charset = "UTF-8" - -; PHP internal character encoding is set to empty. -; If empty, default_charset is used. -; http://php.net/internal-encoding -;internal_encoding = - -; PHP input character encoding is set to empty. -; If empty, default_charset is used. -; http://php.net/input-encoding -;input_encoding = - -; PHP output character encoding is set to empty. -; If empty, default_charset is used. -; See also output_buffer. -; http://php.net/output-encoding -;output_encoding = - -;;;;;;;;;;;;;;;;;;;;;;;;; -; Paths and Directories ; -;;;;;;;;;;;;;;;;;;;;;;;;; - -; UNIX: "/path1:/path2" -;include_path = ".:/php/includes" -; -; Windows: "\path1;\path2" -;include_path = ".;c:\php\includes" -; -; PHP's default setting for include_path is ".;/path/to/php/pear" -; http://php.net/include-path - -; The root of the PHP pages, used only if nonempty. -; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root -; if you are running php as a CGI under any web server (other than IIS) -; see documentation for security issues. The alternate is to use the -; cgi.force_redirect configuration below -; http://php.net/doc-root -doc_root = - -; The directory under which PHP opens the script using /~username used only -; if nonempty. -; http://php.net/user-dir -user_dir = - -; Directory in which the loadable extensions (modules) reside. -; http://php.net/extension-dir -; extension_dir = "./" -; On windows: -; extension_dir = "ext" - -; Directory where the temporary files should be placed. -; Defaults to the system default (see sys_get_temp_dir) -; sys_temp_dir = "/tmp" - -; Whether or not to enable the dl() function. The dl() function does NOT work -; properly in multithreaded servers, such as IIS or Zeus, and is automatically -; disabled on them. -; http://php.net/enable-dl -enable_dl = Off - -; cgi.force_redirect is necessary to provide security running PHP as a CGI under -; most web servers. Left undefined, PHP turns this on by default. You can -; turn it off here AT YOUR OWN RISK -; **You CAN safely turn this off for IIS, in fact, you MUST.** -; http://php.net/cgi.force-redirect -;cgi.force_redirect = 1 - -; if cgi.nph is enabled it will force cgi to always sent Status: 200 with -; every request. PHP's default behavior is to disable this feature. -;cgi.nph = 1 - -; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape -; (iPlanet) web servers, you MAY need to set an environment variable name that PHP -; will look for to know it is OK to continue execution. Setting this variable MAY -; cause security issues, KNOW WHAT YOU ARE DOING FIRST. -; http://php.net/cgi.redirect-status-env -;cgi.redirect_status_env = - -; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's -; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok -; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting -; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting -; of zero causes PHP to behave as before. Default is 1. You should fix your scripts -; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. -; http://php.net/cgi.fix-pathinfo -;cgi.fix_pathinfo=1 - -; if cgi.discard_path is enabled, the PHP CGI binary can safely be placed outside -; of the web tree and people will not be able to circumvent .htaccess security. -; http://php.net/cgi.dicard-path -;cgi.discard_path=1 - -; FastCGI under IIS (on WINNT based OS) supports the ability to impersonate -; security tokens of the calling client. This allows IIS to define the -; security context that the request runs under. mod_fastcgi under Apache -; does not currently support this feature (03/17/2002) -; Set to 1 if running under IIS. Default is zero. -; http://php.net/fastcgi.impersonate -;fastcgi.impersonate = 1 - -; Disable logging through FastCGI connection. PHP's default behavior is to enable -; this feature. -;fastcgi.logging = 0 - -; cgi.rfc2616_headers configuration option tells PHP what type of headers to -; use when sending HTTP response code. If set to 0, PHP sends Status: header that -; is supported by Apache. When this option is set to 1, PHP will send -; RFC2616 compliant header. -; Default is zero. -; http://php.net/cgi.rfc2616-headers -;cgi.rfc2616_headers = 0 - -; cgi.check_shebang_line controls whether CGI PHP checks for line starting with #! -; (shebang) at the top of the running script. This line might be needed if the -; script support running both as stand-alone script and via PHP CGI<. PHP in CGI -; mode skips this line and ignores its content if this directive is turned on. -; http://php.net/cgi.check-shebang-line -;cgi.check_shebang_line=1 - -;;;;;;;;;;;;;;;; -; File Uploads ; -;;;;;;;;;;;;;;;; - -; Whether to allow HTTP file uploads. -; http://php.net/file-uploads -file_uploads = On - -; Temporary directory for HTTP uploaded files (will use system default if not -; specified). -; http://php.net/upload-tmp-dir -;upload_tmp_dir = - -; Maximum allowed size for uploaded files. -; http://php.net/upload-max-filesize -upload_max_filesize = 50M - -; Maximum number of files that can be uploaded via a single request -max_file_uploads = 20 - -;;;;;;;;;;;;;;;;;; -; Fopen wrappers ; -;;;;;;;;;;;;;;;;;; - -; Whether to allow the treatment of URLs (like http:// or ftp://) as files. -; http://php.net/allow-url-fopen -allow_url_fopen = On - -; Whether to allow include/require to open URLs (like http:// or ftp://) as files. -; http://php.net/allow-url-include -allow_url_include = Off - -; Define the anonymous ftp password (your email address). PHP's default setting -; for this is empty. -; http://php.net/from -;from="john@doe.com" - -; Define the User-Agent string. PHP's default setting for this is empty. -; http://php.net/user-agent -;user_agent="PHP" - -; Default timeout for socket based streams (seconds) -; http://php.net/default-socket-timeout -default_socket_timeout = 60 - -; If your scripts have to deal with files from Macintosh systems, -; or you are running on a Mac and need to deal with files from -; unix or win32 systems, setting this flag will cause PHP to -; automatically detect the EOL character in those files so that -; fgets() and file() will work regardless of the source of the file. -; http://php.net/auto-detect-line-endings -;auto_detect_line_endings = Off - -;;;;;;;;;;;;;;;;;;;;;; -; Dynamic Extensions ; -;;;;;;;;;;;;;;;;;;;;;; - -; If you wish to have an extension loaded automatically, use the following -; syntax: -; -; extension=modulename.extension -; -; For example, on Windows: -; -; extension=mysqli.dll -; -; ... or under UNIX: -; -; extension=mysqli.so -; -; ... or with a path: -; -; extension=/path/to/extension/mysqli.so -; -; If you only provide the name of the extension, PHP will look for it in its -; default extension directory. -; -; Windows Extensions -; Note that ODBC support is built in, so no dll is needed for it. -; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5+) -; extension folders as well as the separate PECL DLL download (PHP 5+). -; Be sure to appropriately set the extension_dir directive. -; -;extension=php_bz2.dll -;extension=php_curl.dll -;extension=php_fileinfo.dll -;extension=php_ftp.dll -;extension=php_gd2.dll -;extension=php_gettext.dll -;extension=php_gmp.dll -;extension=php_intl.dll -;extension=php_imap.dll -;extension=php_interbase.dll -;extension=php_ldap.dll -;extension=php_mbstring.dll -;extension=php_exif.dll ; Must be after mbstring as it depends on it -;extension=php_mysqli.dll -;extension=php_oci8_12c.dll ; Use with Oracle Database 12c Instant Client -;extension=php_openssl.dll -;extension=php_pdo_firebird.dll -;extension=php_pdo_mysql.dll -;extension=php_pdo_oci.dll -;extension=php_pdo_odbc.dll -;extension=php_pdo_pgsql.dll -;extension=php_pdo_sqlite.dll -;extension=php_pgsql.dll -;extension=php_shmop.dll - -; The MIBS data available in the PHP distribution must be installed. -; See http://www.php.net/manual/en/snmp.installation.php -;extension=php_snmp.dll - -;extension=php_soap.dll -;extension=php_sockets.dll -;extension=php_sqlite3.dll -;extension=php_tidy.dll -;extension=php_xmlrpc.dll -;extension=php_xsl.dll - -;;;;;;;;;;;;;;;;;;; -; Module Settings ; -;;;;;;;;;;;;;;;;;;; - -[CLI Server] -; Whether the CLI web server uses ANSI color coding in its terminal output. -cli_server.color = On - -[Date] -; Defines the default timezone used by the date functions -; http://php.net/date.timezone -date.timezone = Asia/Shanghai - -; http://php.net/date.default-latitude -;date.default_latitude = 31.7667 - -; http://php.net/date.default-longitude -;date.default_longitude = 35.2333 - -; http://php.net/date.sunrise-zenith -;date.sunrise_zenith = 90.583333 - -; http://php.net/date.sunset-zenith -;date.sunset_zenith = 90.583333 - -[filter] -; http://php.net/filter.default -;filter.default = unsafe_raw - -; http://php.net/filter.default-flags -;filter.default_flags = - -[iconv] -; Use of this INI entry is deprecated, use global input_encoding instead. -; If empty, default_charset or input_encoding or iconv.input_encoding is used. -; The precedence is: default_charset < intput_encoding < iconv.input_encoding -;iconv.input_encoding = - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;iconv.internal_encoding = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; If empty, default_charset or output_encoding or iconv.output_encoding is used. -; The precedence is: default_charset < output_encoding < iconv.output_encoding -; To use an output encoding conversion, iconv's output handler must be set -; otherwise output encoding conversion cannot be performed. -;iconv.output_encoding = - -[intl] -;intl.default_locale = -; This directive allows you to produce PHP errors when some error -; happens within intl functions. The value is the level of the error produced. -; Default is 0, which does not produce any errors. -;intl.error_level = E_WARNING -;intl.use_exceptions = 0 - -[sqlite3] -;sqlite3.extension_dir = - -[Pcre] -;PCRE library backtracking limit. -; http://php.net/pcre.backtrack-limit -;pcre.backtrack_limit=100000 - -;PCRE library recursion limit. -;Please note that if you set this value to a high number you may consume all -;the available process stack and eventually crash PHP (due to reaching the -;stack size limit imposed by the Operating System). -; http://php.net/pcre.recursion-limit -;pcre.recursion_limit=100000 - -;Enables or disables JIT compilation of patterns. This requires the PCRE -;library to be compiled with JIT support. -;pcre.jit=1 - -[Pdo] -; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off" -; http://php.net/pdo-odbc.connection-pooling -;pdo_odbc.connection_pooling=strict - -;pdo_odbc.db2_instance_name - -[Pdo_mysql] -; If mysqlnd is used: Number of cache slots for the internal result set cache -; http://php.net/pdo_mysql.cache_size -pdo_mysql.cache_size = 2000 - -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -; http://php.net/pdo_mysql.default-socket -pdo_mysql.default_socket= - -[Phar] -; http://php.net/phar.readonly -;phar.readonly = On - -; http://php.net/phar.require-hash -;phar.require_hash = On - -;phar.cache_list = - -[mail function] -; For Win32 only. -; http://php.net/smtp -SMTP = localhost -; http://php.net/smtp-port -smtp_port = 25 - -; For Win32 only. -; http://php.net/sendmail-from -;sendmail_from = me@example.com - -; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). -; http://php.net/sendmail-path -;sendmail_path = - -; Force the addition of the specified parameters to be passed as extra parameters -; to the sendmail binary. These parameters will always replace the value of -; the 5th parameter to mail(). -;mail.force_extra_parameters = - -; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename -mail.add_x_header = On - -; The path to a log file that will log all mail() calls. Log entries include -; the full path of the script, line number, To address and headers. -;mail.log = -; Log mail to syslog (Event Log on Windows). -;mail.log = syslog - -[ODBC] -; http://php.net/odbc.default-db -;odbc.default_db = Not yet implemented - -; http://php.net/odbc.default-user -;odbc.default_user = Not yet implemented - -; http://php.net/odbc.default-pw -;odbc.default_pw = Not yet implemented - -; Controls the ODBC cursor model. -; Default: SQL_CURSOR_STATIC (default). -;odbc.default_cursortype - -; Allow or prevent persistent links. -; http://php.net/odbc.allow-persistent -odbc.allow_persistent = On - -; Check that a connection is still valid before reuse. -; http://php.net/odbc.check-persistent -odbc.check_persistent = On - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/odbc.max-persistent -odbc.max_persistent = -1 - -; Maximum number of links (persistent + non-persistent). -1 means no limit. -; http://php.net/odbc.max-links -odbc.max_links = -1 - -; Handling of LONG fields. Returns number of bytes to variables. 0 means -; passthru. -; http://php.net/odbc.defaultlrl -odbc.defaultlrl = 4096 - -; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char. -; See the documentation on odbc_binmode and odbc_longreadlen for an explanation -; of odbc.defaultlrl and odbc.defaultbinmode -; http://php.net/odbc.defaultbinmode -odbc.defaultbinmode = 1 - -;birdstep.max_links = -1 - -[Interbase] -; Allow or prevent persistent links. -ibase.allow_persistent = 1 - -; Maximum number of persistent links. -1 means no limit. -ibase.max_persistent = -1 - -; Maximum number of links (persistent + non-persistent). -1 means no limit. -ibase.max_links = -1 - -; Default database name for ibase_connect(). -;ibase.default_db = - -; Default username for ibase_connect(). -;ibase.default_user = - -; Default password for ibase_connect(). -;ibase.default_password = - -; Default charset for ibase_connect(). -;ibase.default_charset = - -; Default timestamp format. -ibase.timestampformat = "%Y-%m-%d %H:%M:%S" - -; Default date format. -ibase.dateformat = "%Y-%m-%d" - -; Default time format. -ibase.timeformat = "%H:%M:%S" - -[MySQLi] - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/mysqli.max-persistent -mysqli.max_persistent = -1 - -; Allow accessing, from PHP's perspective, local files with LOAD DATA statements -; http://php.net/mysqli.allow_local_infile -;mysqli.allow_local_infile = On - -; Allow or prevent persistent links. -; http://php.net/mysqli.allow-persistent -mysqli.allow_persistent = On - -; Maximum number of links. -1 means no limit. -; http://php.net/mysqli.max-links -mysqli.max_links = -1 - -; If mysqlnd is used: Number of cache slots for the internal result set cache -; http://php.net/mysqli.cache_size -mysqli.cache_size = 2000 - -; Default port number for mysqli_connect(). If unset, mysqli_connect() will use -; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the -; compile-time value defined MYSQL_PORT (in that order). Win32 will only look -; at MYSQL_PORT. -; http://php.net/mysqli.default-port -mysqli.default_port = 3306 - -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -; http://php.net/mysqli.default-socket -mysqli.default_socket = - -; Default host for mysql_connect() (doesn't apply in safe mode). -; http://php.net/mysqli.default-host -mysqli.default_host = - -; Default user for mysql_connect() (doesn't apply in safe mode). -; http://php.net/mysqli.default-user -mysqli.default_user = - -; Default password for mysqli_connect() (doesn't apply in safe mode). -; Note that this is generally a *bad* idea to store passwords in this file. -; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw") -; and reveal this password! And of course, any users with read access to this -; file will be able to reveal the password as well. -; http://php.net/mysqli.default-pw -mysqli.default_pw = - -; Allow or prevent reconnect -mysqli.reconnect = Off - -[mysqlnd] -; Enable / Disable collection of general statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -; http://php.net/mysqlnd.collect_statistics -mysqlnd.collect_statistics = On - -; Enable / Disable collection of memory usage statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -; http://php.net/mysqlnd.collect_memory_statistics -mysqlnd.collect_memory_statistics = Off - -; Records communication from all extensions using mysqlnd to the specified log -; file. -; http://php.net/mysqlnd.debug -;mysqlnd.debug = - -; Defines which queries will be logged. -; http://php.net/mysqlnd.log_mask -;mysqlnd.log_mask = 0 - -; Default size of the mysqlnd memory pool, which is used by result sets. -; http://php.net/mysqlnd.mempool_default_size -;mysqlnd.mempool_default_size = 16000 - -; Size of a pre-allocated buffer used when sending commands to MySQL in bytes. -; http://php.net/mysqlnd.net_cmd_buffer_size -;mysqlnd.net_cmd_buffer_size = 2048 - -; Size of a pre-allocated buffer used for reading data sent by the server in -; bytes. -; http://php.net/mysqlnd.net_read_buffer_size -;mysqlnd.net_read_buffer_size = 32768 - -; Timeout for network requests in seconds. -; http://php.net/mysqlnd.net_read_timeout -;mysqlnd.net_read_timeout = 31536000 - -; SHA-256 Authentication Plugin related. File with the MySQL server public RSA -; key. -; http://php.net/mysqlnd.sha256_server_public_key -;mysqlnd.sha256_server_public_key = - -[OCI8] - -; Connection: Enables privileged connections using external -; credentials (OCI_SYSOPER, OCI_SYSDBA) -; http://php.net/oci8.privileged-connect -;oci8.privileged_connect = Off - -; Connection: The maximum number of persistent OCI8 connections per -; process. Using -1 means no limit. -; http://php.net/oci8.max-persistent -;oci8.max_persistent = -1 - -; Connection: The maximum number of seconds a process is allowed to -; maintain an idle persistent connection. Using -1 means idle -; persistent connections will be maintained forever. -; http://php.net/oci8.persistent-timeout -;oci8.persistent_timeout = -1 - -; Connection: The number of seconds that must pass before issuing a -; ping during oci_pconnect() to check the connection validity. When -; set to 0, each oci_pconnect() will cause a ping. Using -1 disables -; pings completely. -; http://php.net/oci8.ping-interval -;oci8.ping_interval = 60 - -; Connection: Set this to a user chosen connection class to be used -; for all pooled server requests with Oracle 11g Database Resident -; Connection Pooling (DRCP). To use DRCP, this value should be set to -; the same string for all web servers running the same application, -; the database pool must be configured, and the connection string must -; specify to use a pooled server. -;oci8.connection_class = - -; High Availability: Using On lets PHP receive Fast Application -; Notification (FAN) events generated when a database node fails. The -; database must also be configured to post FAN events. -;oci8.events = Off - -; Tuning: This option enables statement caching, and specifies how -; many statements to cache. Using 0 disables statement caching. -; http://php.net/oci8.statement-cache-size -;oci8.statement_cache_size = 20 - -; Tuning: Enables statement prefetching and sets the default number of -; rows that will be fetched automatically after statement execution. -; http://php.net/oci8.default-prefetch -;oci8.default_prefetch = 100 - -; Compatibility. Using On means oci_close() will not close -; oci_connect() and oci_new_connect() connections. -; http://php.net/oci8.old-oci-close-semantics -;oci8.old_oci_close_semantics = Off - -[PostgreSQL] -; Allow or prevent persistent links. -; http://php.net/pgsql.allow-persistent -pgsql.allow_persistent = On - -; Detect broken persistent links always with pg_pconnect(). -; Auto reset feature requires a little overheads. -; http://php.net/pgsql.auto-reset-persistent -pgsql.auto_reset_persistent = Off - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/pgsql.max-persistent -pgsql.max_persistent = -1 - -; Maximum number of links (persistent+non persistent). -1 means no limit. -; http://php.net/pgsql.max-links -pgsql.max_links = -1 - -; Ignore PostgreSQL backends Notice message or not. -; Notice message logging require a little overheads. -; http://php.net/pgsql.ignore-notice -pgsql.ignore_notice = 0 - -; Log PostgreSQL backends Notice message or not. -; Unless pgsql.ignore_notice=0, module cannot log notice message. -; http://php.net/pgsql.log-notice -pgsql.log_notice = 0 - -[bcmath] -; Number of decimal digits for all bcmath functions. -; http://php.net/bcmath.scale -bcmath.scale = 0 - -[browscap] -; http://php.net/browscap -;browscap = extra/browscap.ini - -[Session] -; Handler used to store/retrieve data. -; http://php.net/session.save-handler -session.save_handler = files - -; Argument passed to save_handler. In the case of files, this is the path -; where data files are stored. Note: Windows users have to change this -; variable in order to use PHP's session functions. -; -; The path can be defined as: -; -; session.save_path = "N;/path" -; -; where N is an integer. Instead of storing all the session files in -; /path, what this will do is use subdirectories N-levels deep, and -; store the session data in those directories. This is useful if -; your OS has problems with many files in one directory, and is -; a more efficient layout for servers that handle many sessions. -; -; NOTE 1: PHP will not create this directory structure automatically. -; You can use the script in the ext/session dir for that purpose. -; NOTE 2: See the section on garbage collection below if you choose to -; use subdirectories for session storage -; -; The file storage module creates files using mode 600 by default. -; You can change that by using -; -; session.save_path = "N;MODE;/path" -; -; where MODE is the octal representation of the mode. Note that this -; does not overwrite the process's umask. -; http://php.net/session.save-path -;session.save_path = "/tmp" - -; Whether to use strict session mode. -; Strict session mode does not accept uninitialized session ID and regenerate -; session ID if browser sends uninitialized session ID. Strict mode protects -; applications from session fixation via session adoption vulnerability. It is -; disabled by default for maximum compatibility, but enabling it is encouraged. -; https://wiki.php.net/rfc/strict_sessions -session.use_strict_mode = 0 - -; Whether to use cookies. -; http://php.net/session.use-cookies -session.use_cookies = 1 - -; http://php.net/session.cookie-secure -;session.cookie_secure = - -; This option forces PHP to fetch and use a cookie for storing and maintaining -; the session id. We encourage this operation as it's very helpful in combating -; session hijacking when not specifying and managing your own session id. It is -; not the be-all and end-all of session hijacking defense, but it's a good start. -; http://php.net/session.use-only-cookies -session.use_only_cookies = 1 - -; Name of the session (used as cookie name). -; http://php.net/session.name -session.name = PHPSESSID - -; Initialize session on request startup. -; http://php.net/session.auto-start -session.auto_start = 0 - -; Lifetime in seconds of cookie or, if 0, until browser is restarted. -; http://php.net/session.cookie-lifetime -session.cookie_lifetime = 0 - -; The path for which the cookie is valid. -; http://php.net/session.cookie-path -session.cookie_path = / - -; The domain for which the cookie is valid. -; http://php.net/session.cookie-domain -session.cookie_domain = - -; Whether or not to add the httpOnly flag to the cookie, which makes it inaccessible to browser scripting languages such as JavaScript. -; http://php.net/session.cookie-httponly -session.cookie_httponly = - -; Handler used to serialize data. php is the standard serializer of PHP. -; http://php.net/session.serialize-handler -session.serialize_handler = php - -; Defines the probability that the 'garbage collection' process is started -; on every session initialization. The probability is calculated by using -; gc_probability/gc_divisor. Where session.gc_probability is the numerator -; and gc_divisor is the denominator in the equation. Setting this value to 1 -; when the session.gc_divisor value is 100 will give you approximately a 1% chance -; the gc will run on any give request. -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; http://php.net/session.gc-probability -session.gc_probability = 1 - -; Defines the probability that the 'garbage collection' process is started on every -; session initialization. The probability is calculated by using the following equation: -; gc_probability/gc_divisor. Where session.gc_probability is the numerator and -; session.gc_divisor is the denominator in the equation. Setting this value to 1 -; when the session.gc_divisor value is 100 will give you approximately a 1% chance -; the gc will run on any give request. Increasing this value to 1000 will give you -; a 0.1% chance the gc will run on any give request. For high volume production servers, -; this is a more efficient approach. -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 -; http://php.net/session.gc-divisor -session.gc_divisor = 1000 - -; After this number of seconds, stored data will be seen as 'garbage' and -; cleaned up by the garbage collection process. -; http://php.net/session.gc-maxlifetime -session.gc_maxlifetime = 1440 - -; NOTE: If you are using the subdirectory option for storing session files -; (see session.save_path above), then garbage collection does *not* -; happen automatically. You will need to do your own garbage -; collection through a shell script, cron entry, or some other method. -; For example, the following script would is the equivalent of -; setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes): -; find /path/to/sessions -cmin +24 -type f | xargs rm - -; Check HTTP Referer to invalidate externally stored URLs containing ids. -; HTTP_REFERER has to contain this substring for the session to be -; considered as valid. -; http://php.net/session.referer-check -session.referer_check = - -; Set to {nocache,private,public,} to determine HTTP caching aspects -; or leave this empty to avoid sending anti-caching headers. -; http://php.net/session.cache-limiter -session.cache_limiter = nocache - -; Document expires after n minutes. -; http://php.net/session.cache-expire -session.cache_expire = 180 - -; trans sid support is disabled by default. -; Use of trans sid may risk your users' security. -; Use this option with caution. -; - User may send URL contains active session ID -; to other person via. email/irc/etc. -; - URL that contains active session ID may be stored -; in publicly accessible computer. -; - User may access your site with the same session ID -; always using URL stored in browser's history or bookmarks. -; http://php.net/session.use-trans-sid -session.use_trans_sid = 0 - -; Set session ID character length. This value could be between 22 to 256. -; Shorter length than default is supported only for compatibility reason. -; Users should use 32 or more chars. -; http://php.net/session.sid-length -; Default Value: 32 -; Development Value: 26 -; Production Value: 26 -session.sid_length = 26 - -; The URL rewriter will look for URLs in a defined set of HTML tags. -; is special; if you include them here, the rewriter will -; add a hidden field with the info which is otherwise appended -; to URLs. tag's action attribute URL will not be modified -; unless it is specified. -; Note that all valid entries require a "=", even if no value follows. -; Default Value: "a=href,area=href,frame=src,form=" -; Development Value: "a=href,area=href,frame=src,form=" -; Production Value: "a=href,area=href,frame=src,form=" -; http://php.net/url-rewriter.tags -session.trans_sid_tags = "a=href,area=href,frame=src,form=" - -; URL rewriter does not rewrite absolute URLs by default. -; To enable rewrites for absolute pathes, target hosts must be specified -; at RUNTIME. i.e. use ini_set() -; tags is special. PHP will check action attribute's URL regardless -; of session.trans_sid_tags setting. -; If no host is defined, HTTP_HOST will be used for allowed host. -; Example value: php.net,www.php.net,wiki.php.net -; Use "," for multiple hosts. No spaces are allowed. -; Default Value: "" -; Development Value: "" -; Production Value: "" -;session.trans_sid_hosts="" - -; Define how many bits are stored in each character when converting -; the binary hash data to something readable. -; Possible values: -; 4 (4 bits: 0-9, a-f) -; 5 (5 bits: 0-9, a-v) -; 6 (6 bits: 0-9, a-z, A-Z, "-", ",") -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 -; http://php.net/session.hash-bits-per-character -session.sid_bits_per_character = 5 - -; Enable upload progress tracking in $_SESSION -; Default Value: On -; Development Value: On -; Production Value: On -; http://php.net/session.upload-progress.enabled -;session.upload_progress.enabled = On - -; Cleanup the progress information as soon as all POST data has been read -; (i.e. upload completed). -; Default Value: On -; Development Value: On -; Production Value: On -; http://php.net/session.upload-progress.cleanup -;session.upload_progress.cleanup = On - -; A prefix used for the upload progress key in $_SESSION -; Default Value: "upload_progress_" -; Development Value: "upload_progress_" -; Production Value: "upload_progress_" -; http://php.net/session.upload-progress.prefix -;session.upload_progress.prefix = "upload_progress_" - -; The index name (concatenated with the prefix) in $_SESSION -; containing the upload progress information -; Default Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Development Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Production Value: "PHP_SESSION_UPLOAD_PROGRESS" -; http://php.net/session.upload-progress.name -;session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS" - -; How frequently the upload progress should be updated. -; Given either in percentages (per-file), or in bytes -; Default Value: "1%" -; Development Value: "1%" -; Production Value: "1%" -; http://php.net/session.upload-progress.freq -;session.upload_progress.freq = "1%" - -; The minimum delay between updates, in seconds -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; http://php.net/session.upload-progress.min-freq -;session.upload_progress.min_freq = "1" - -; Only write session data when session data is changed. Enabled by default. -; http://php.net/session.lazy-write -;session.lazy_write = On - -[Assertion] -; Switch whether to compile assertions at all (to have no overhead at run-time) -; -1: Do not compile at all -; 0: Jump over assertion at run-time -; 1: Execute assertions -; Changing from or to a negative value is only possible in php.ini! (For turning assertions on and off at run-time, see assert.active, when zend.assertions = 1) -; Default Value: 1 -; Development Value: 1 -; Production Value: -1 -; http://php.net/zend.assertions -zend.assertions = -1 - -; Assert(expr); active by default. -; http://php.net/assert.active -;assert.active = On - -; Throw an AssertationException on failed assertions -; http://php.net/assert.exception -;assert.exception = On - -; Issue a PHP warning for each failed assertion. (Overridden by assert.exception if active) -; http://php.net/assert.warning -;assert.warning = On - -; Don't bail out by default. -; http://php.net/assert.bail -;assert.bail = Off - -; User-function to be called if an assertion fails. -; http://php.net/assert.callback -;assert.callback = 0 - -; Eval the expression with current error_reporting(). Set to true if you want -; error_reporting(0) around the eval(). -; http://php.net/assert.quiet-eval -;assert.quiet_eval = 0 - -[COM] -; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs -; http://php.net/com.typelib-file -;com.typelib_file = - -; allow Distributed-COM calls -; http://php.net/com.allow-dcom -;com.allow_dcom = true - -; autoregister constants of a components typlib on com_load() -; http://php.net/com.autoregister-typelib -;com.autoregister_typelib = true - -; register constants casesensitive -; http://php.net/com.autoregister-casesensitive -;com.autoregister_casesensitive = false - -; show warnings on duplicate constant registrations -; http://php.net/com.autoregister-verbose -;com.autoregister_verbose = true - -; The default character set code-page to use when passing strings to and from COM objects. -; Default: system ANSI code page -;com.code_page= - -[mbstring] -; language for internal character representation. -; This affects mb_send_mail() and mbstring.detect_order. -; http://php.net/mbstring.language -;mbstring.language = Japanese - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; internal/script encoding. -; Some encoding cannot work as internal encoding. (e.g. SJIS, BIG5, ISO-2022-*) -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;mbstring.internal_encoding = - -; Use of this INI entry is deprecated, use global input_encoding instead. -; http input encoding. -; mbstring.encoding_traslation = On is needed to use this setting. -; If empty, default_charset or input_encoding or mbstring.input is used. -; The precedence is: default_charset < intput_encoding < mbsting.http_input -; http://php.net/mbstring.http-input -;mbstring.http_input = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; http output encoding. -; mb_output_handler must be registered as output buffer to function. -; If empty, default_charset or output_encoding or mbstring.http_output is used. -; The precedence is: default_charset < output_encoding < mbstring.http_output -; To use an output encoding conversion, mbstring's output handler must be set -; otherwise output encoding conversion cannot be performed. -; http://php.net/mbstring.http-output -;mbstring.http_output = - -; enable automatic encoding translation according to -; mbstring.internal_encoding setting. Input chars are -; converted to internal encoding by setting this to On. -; Note: Do _not_ use automatic encoding translation for -; portable libs/applications. -; http://php.net/mbstring.encoding-translation -;mbstring.encoding_translation = Off - -; automatic encoding detection order. -; "auto" detect order is changed according to mbstring.language -; http://php.net/mbstring.detect-order -;mbstring.detect_order = auto - -; substitute_character used when character cannot be converted -; one from another -; http://php.net/mbstring.substitute-character -;mbstring.substitute_character = none - -; overload(replace) single byte functions by mbstring functions. -; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(), -; etc. Possible values are 0,1,2,4 or combination of them. -; For example, 7 for overload everything. -; 0: No overload -; 1: Overload mail() function -; 2: Overload str*() functions -; 4: Overload ereg*() functions -; http://php.net/mbstring.func-overload -;mbstring.func_overload = 0 - -; enable strict encoding detection. -; Default: Off -;mbstring.strict_detection = On - -; This directive specifies the regex pattern of content types for which mb_output_handler() -; is activated. -; Default: mbstring.http_output_conv_mimetype=^(text/|application/xhtml\+xml) -;mbstring.http_output_conv_mimetype= - -[gd] -; Tell the jpeg decode to ignore warnings and try to create -; a gd image. The warning will then be displayed as notices -; disabled by default -; http://php.net/gd.jpeg-ignore-warning -;gd.jpeg_ignore_warning = 1 - -[exif] -; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS. -; With mbstring support this will automatically be converted into the encoding -; given by corresponding encode setting. When empty mbstring.internal_encoding -; is used. For the decode settings you can distinguish between motorola and -; intel byte order. A decode setting cannot be empty. -; http://php.net/exif.encode-unicode -;exif.encode_unicode = ISO-8859-15 - -; http://php.net/exif.decode-unicode-motorola -;exif.decode_unicode_motorola = UCS-2BE - -; http://php.net/exif.decode-unicode-intel -;exif.decode_unicode_intel = UCS-2LE - -; http://php.net/exif.encode-jis -;exif.encode_jis = - -; http://php.net/exif.decode-jis-motorola -;exif.decode_jis_motorola = JIS - -; http://php.net/exif.decode-jis-intel -;exif.decode_jis_intel = JIS - -[Tidy] -; The path to a default tidy configuration file to use when using tidy -; http://php.net/tidy.default-config -;tidy.default_config = /usr/local/lib/php/default.tcfg - -; Should tidy clean and repair output automatically? -; WARNING: Do not use this option if you are generating non-html content -; such as dynamic images -; http://php.net/tidy.clean-output -tidy.clean_output = Off - -[soap] -; Enables or disables WSDL caching feature. -; http://php.net/soap.wsdl-cache-enabled -soap.wsdl_cache_enabled=1 - -; Sets the directory name where SOAP extension will put cache files. -; http://php.net/soap.wsdl-cache-dir -soap.wsdl_cache_dir="/tmp" - -; (time to live) Sets the number of second while cached file will be used -; instead of original one. -; http://php.net/soap.wsdl-cache-ttl -soap.wsdl_cache_ttl=86400 - -; Sets the size of the cache limit. (Max. number of WSDL files to cache) -soap.wsdl_cache_limit = 5 - -[sysvshm] -; A default size of the shared memory segment -;sysvshm.init_mem = 10000 - -[ldap] -; Sets the maximum number of open links or -1 for unlimited. -ldap.max_links = -1 - -[dba] -;dba.default_handler= - -[opcache] -; Determines if Zend OPCache is enabled -;opcache.enable=1 - -; Determines if Zend OPCache is enabled for the CLI version of PHP -;opcache.enable_cli=1 - -; The OPcache shared memory storage size. -;opcache.memory_consumption=128 - -; The amount of memory for interned strings in Mbytes. -;opcache.interned_strings_buffer=8 - -; The maximum number of keys (scripts) in the OPcache hash table. -; Only numbers between 200 and 1000000 are allowed. -;opcache.max_accelerated_files=10000 - -; The maximum percentage of "wasted" memory until a restart is scheduled. -;opcache.max_wasted_percentage=5 - -; When this directive is enabled, the OPcache appends the current working -; directory to the script key, thus eliminating possible collisions between -; files with the same name (basename). Disabling the directive improves -; performance, but may break existing applications. -;opcache.use_cwd=1 - -; When disabled, you must reset the OPcache manually or restart the -; webserver for changes to the filesystem to take effect. -;opcache.validate_timestamps=1 - -; How often (in seconds) to check file timestamps for changes to the shared -; memory storage allocation. ("1" means validate once per second, but only -; once per request. "0" means always validate) -;opcache.revalidate_freq=2 - -; Enables or disables file search in include_path optimization -;opcache.revalidate_path=0 - -; If disabled, all PHPDoc comments are dropped from the code to reduce the -; size of the optimized code. -;opcache.save_comments=1 - -; If enabled, a fast shutdown sequence is used for the accelerated code -; Depending on the used Memory Manager this may cause some incompatibilities. -;opcache.fast_shutdown=0 - -; Allow file existence override (file_exists, etc.) performance feature. -;opcache.enable_file_override=0 - -; A bitmask, where each bit enables or disables the appropriate OPcache -; passes -;opcache.optimization_level=0xffffffff - -;opcache.inherited_hack=1 -;opcache.dups_fix=0 - -; The location of the OPcache blacklist file (wildcards allowed). -; Each OPcache blacklist file is a text file that holds the names of files -; that should not be accelerated. The file format is to add each filename -; to a new line. The filename may be a full path or just a file prefix -; (i.e., /var/www/x blacklists all the files and directories in /var/www -; that start with 'x'). Line starting with a ; are ignored (comments). -;opcache.blacklist_filename= - -; Allows exclusion of large files from being cached. By default all files -; are cached. -;opcache.max_file_size=0 - -; Check the cache checksum each N requests. -; The default value of "0" means that the checks are disabled. -;opcache.consistency_checks=0 - -; How long to wait (in seconds) for a scheduled restart to begin if the cache -; is not being accessed. -;opcache.force_restart_timeout=180 - -; OPcache error_log file name. Empty string assumes "stderr". -;opcache.error_log= - -; All OPcache errors go to the Web server log. -; By default, only fatal errors (level 0) or errors (level 1) are logged. -; You can also enable warnings (level 2), info messages (level 3) or -; debug messages (level 4). -;opcache.log_verbosity_level=1 - -; Preferred Shared Memory back-end. Leave empty and let the system decide. -;opcache.preferred_memory_model= - -; Protect the shared memory from unexpected writing during script execution. -; Useful for internal debugging only. -;opcache.protect_memory=0 - -; Allows calling OPcache API functions only from PHP scripts which path is -; started from specified string. The default "" means no restriction -;opcache.restrict_api= - -; Mapping base of shared memory segments (for Windows only). All the PHP -; processes have to map shared memory into the same address space. This -; directive allows to manually fix the "Unable to reattach to base address" -; errors. -;opcache.mmap_base= - -; Enables and sets the second level cache directory. -; It should improve performance when SHM memory is full, at server restart or -; SHM reset. The default "" disables file based caching. -;opcache.file_cache= - -; Enables or disables opcode caching in shared memory. -;opcache.file_cache_only=0 - -; Enables or disables checksum validation when script loaded from file cache. -;opcache.file_cache_consistency_checks=1 - -; Implies opcache.file_cache_only=1 for a certain process that failed to -; reattach to the shared memory (for Windows only). Explicitly enabled file -; cache is required. -;opcache.file_cache_fallback=1 - -; Enables or disables copying of PHP code (text segment) into HUGE PAGES. -; This should improve performance, but requires appropriate OS configuration. -;opcache.huge_code_pages=1 - -; Validate cached file permissions. -;opcache.validate_permission=0 - -; Prevent name collisions in chroot'ed environment. -;opcache.validate_root=0 - -[curl] -; A default value for the CURLOPT_CAINFO option. This is required to be an -; absolute path. -;curl.cainfo = - -[openssl] -; The location of a Certificate Authority (CA) file on the local filesystem -; to use when verifying the identity of SSL/TLS peers. Most users should -; not specify a value for this directive as PHP will attempt to use the -; OS-managed cert stores in its absence. If specified, this value may still -; be overridden on a per-stream basis via the "cafile" SSL stream context -; option. -;openssl.cafile= - -; If openssl.cafile is not specified or if the CA file is not found, the -; directory pointed to by openssl.capath is searched for a suitable -; certificate. This value must be a correctly hashed certificate directory. -; Most users should not specify a value for this directive as PHP will -; attempt to use the OS-managed cert stores in its absence. If specified, -; this value may still be overridden on a per-stream basis via the "capath" -; SSL stream context option. -;openssl.capath= - -; Local Variables: -; tab-width: 4 -; End: - -[XDebug] -xdebug.mode=debug -xdebug.remote_handler = "dbgp" -; Set to host.docker.internal on Mac and Windows, otherwise, set to host real ip -xdebug.client_host = host.docker.internal -;xdebug.remote_port = 9000 -xdebug.remote_log = /var/log/php/xdebug.log - -SERVER_ENV=develop - -yaf.use_spl_autoload=1 - -[xhprof] -;xhprof.output_dir = /var/log/php/xhprof.log \ No newline at end of file diff --git a/php8/8.3.20/conf/php-fpm.conf b/php8/8.3.20/conf/php-fpm.conf deleted file mode 100644 index 131835891..000000000 --- a/php8/8.3.20/conf/php-fpm.conf +++ /dev/null @@ -1,423 +0,0 @@ -; Start a new pool named 'www'. -; the variable $pool can be used in any directive and will be replaced by the -; pool name ('www' here) -[www] - -; Per pool prefix -; It only applies on the following directives: -; - 'access.log' -; - 'slowlog' -; - 'listen' (unixsocket) -; - 'chroot' -; - 'chdir' -; - 'php_values' -; - 'php_admin_values' -; When not set, the global prefix (or NONE) applies instead. -; Note: This directive can also be relative to the global prefix. -; Default Value: none -;prefix = /path/to/pools/$pool - -; Unix user/group of processes -; Note: The user is mandatory. If the group is not set, the default user's group -; will be used. -user = www-data -group = www-data - -; The address on which to accept FastCGI requests. -; Valid syntaxes are: -; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on -; a specific port; -; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on -; a specific port; -; 'port' - to listen on a TCP socket to all addresses -; (IPv6 and IPv4-mapped) on a specific port; -; '/path/to/unix/socket' - to listen on a unix socket. -; Note: This value is mandatory. -listen = 127.0.0.1:9000 - -; Set listen(2) backlog. -; Default Value: 511 (-1 on FreeBSD and OpenBSD) -;listen.backlog = 511 - -; Set permissions for unix socket, if one is used. In Linux, read/write -; permissions must be set in order to allow connections from a web server. Many -; BSD-derived systems allow connections regardless of permissions. -; Default Values: user and group are set as the running user -; mode is set to 0660 -;listen.owner = www-data -;listen.group = www-data -;listen.mode = 0660 -; When POSIX Access Control Lists are supported you can set them using -; these options, value is a comma separated list of user/group names. -; When set, listen.owner and listen.group are ignored -;listen.acl_users = -;listen.acl_groups = - -; List of addresses (IPv4/IPv6) of FastCGI clients which are allowed to connect. -; Equivalent to the FCGI_WEB_SERVER_ADDRS environment variable in the original -; PHP FCGI (5.2.2+). Makes sense only with a tcp listening socket. Each address -; must be separated by a comma. If this value is left blank, connections will be -; accepted from any ip address. -; Default Value: any -;listen.allowed_clients = 127.0.0.1 - -; Specify the nice(2) priority to apply to the pool processes (only if set) -; The value can vary from -19 (highest priority) to 20 (lower priority) -; Note: - It will only work if the FPM master process is launched as root -; - The pool processes will inherit the master process priority -; unless it specified otherwise -; Default Value: no set -; process.priority = -19 - -; Set the process dumpable flag (PR_SET_DUMPABLE prctl) even if the process user -; or group is differrent than the master process user. It allows to create process -; core dump and ptrace the process for the pool user. -; Default Value: no -; process.dumpable = yes - -; Choose how the process manager will control the number of child processes. -; Possible Values: -; static - a fixed number (pm.max_children) of child processes; -; dynamic - the number of child processes are set dynamically based on the -; following directives. With this process management, there will be -; always at least 1 children. -; pm.max_children - the maximum number of children that can -; be alive at the same time. -; pm.start_servers - the number of children created on startup. -; pm.min_spare_servers - the minimum number of children in 'idle' -; state (waiting to process). If the number -; of 'idle' processes is less than this -; number then some children will be created. -; pm.max_spare_servers - the maximum number of children in 'idle' -; state (waiting to process). If the number -; of 'idle' processes is greater than this -; number then some children will be killed. -; ondemand - no children are created at startup. Children will be forked when -; new requests will connect. The following parameter are used: -; pm.max_children - the maximum number of children that -; can be alive at the same time. -; pm.process_idle_timeout - The number of seconds after which -; an idle process will be killed. -; Note: This value is mandatory. -pm = dynamic - -; The number of child processes to be created when pm is set to 'static' and the -; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'. -; This value sets the limit on the number of simultaneous requests that will be -; served. Equivalent to the ApacheMaxClients directive with mpm_prefork. -; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP -; CGI. The below defaults are based on a server without much resources. Don't -; forget to tweak pm.* to fit your needs. -; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand' -; Note: This value is mandatory. -pm.max_children = 10 - -; The number of child processes created on startup. -; Note: Used only when pm is set to 'dynamic' -; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2 -pm.start_servers = 2 - -; The desired minimum number of idle server processes. -; Note: Used only when pm is set to 'dynamic' -; Note: Mandatory when pm is set to 'dynamic' -pm.min_spare_servers = 1 - -; The desired maximum number of idle server processes. -; Note: Used only when pm is set to 'dynamic' -; Note: Mandatory when pm is set to 'dynamic' -pm.max_spare_servers = 3 - -; The number of seconds after which an idle process will be killed. -; Note: Used only when pm is set to 'ondemand' -; Default Value: 10s -;pm.process_idle_timeout = 10s; - -; The number of requests each child process should execute before respawning. -; This can be useful to work around memory leaks in 3rd party libraries. For -; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS. -; Default Value: 0 -;pm.max_requests = 500 - -; The URI to view the FPM status page. If this value is not set, no URI will be -; recognized as a status page. It shows the following informations: -; pool - the name of the pool; -; process manager - static, dynamic or ondemand; -; start time - the date and time FPM has started; -; start since - number of seconds since FPM has started; -; accepted conn - the number of request accepted by the pool; -; listen queue - the number of request in the queue of pending -; connections (see backlog in listen(2)); -; max listen queue - the maximum number of requests in the queue -; of pending connections since FPM has started; -; listen queue len - the size of the socket queue of pending connections; -; idle processes - the number of idle processes; -; active processes - the number of active processes; -; total processes - the number of idle + active processes; -; max active processes - the maximum number of active processes since FPM -; has started; -; max children reached - number of times, the process limit has been reached, -; when pm tries to start more children (works only for -; pm 'dynamic' and 'ondemand'); -; Value are updated in real time. -; Example output: -; pool: www -; process manager: static -; start time: 01/Jul/2011:17:53:49 +0200 -; start since: 62636 -; accepted conn: 190460 -; listen queue: 0 -; max listen queue: 1 -; listen queue len: 42 -; idle processes: 4 -; active processes: 11 -; total processes: 15 -; max active processes: 12 -; max children reached: 0 -; -; By default the status page output is formatted as text/plain. Passing either -; 'html', 'xml' or 'json' in the query string will return the corresponding -; output syntax. Example: -; http://www.foo.bar/status -; http://www.foo.bar/status?json -; http://www.foo.bar/status?html -; http://www.foo.bar/status?xml -; -; By default the status page only outputs short status. Passing 'full' in the -; query string will also return status for each pool process. -; Example: -; http://www.foo.bar/status?full -; http://www.foo.bar/status?json&full -; http://www.foo.bar/status?html&full -; http://www.foo.bar/status?xml&full -; The Full status returns for each process: -; pid - the PID of the process; -; state - the state of the process (Idle, Running, ...); -; start time - the date and time the process has started; -; start since - the number of seconds since the process has started; -; requests - the number of requests the process has served; -; request duration - the duration in µs of the requests; -; request method - the request method (GET, POST, ...); -; request URI - the request URI with the query string; -; content length - the content length of the request (only with POST); -; user - the user (PHP_AUTH_USER) (or '-' if not set); -; script - the main script called (or '-' if not set); -; last request cpu - the %cpu the last request consumed -; it's always 0 if the process is not in Idle state -; because CPU calculation is done when the request -; processing has terminated; -; last request memory - the max amount of memory the last request consumed -; it's always 0 if the process is not in Idle state -; because memory calculation is done when the request -; processing has terminated; -; If the process is in Idle state, then informations are related to the -; last request the process has served. Otherwise informations are related to -; the current request being served. -; Example output: -; ************************ -; pid: 31330 -; state: Running -; start time: 01/Jul/2011:17:53:49 +0200 -; start since: 63087 -; requests: 12808 -; request duration: 1250261 -; request method: GET -; request URI: /test_mem.php?N=10000 -; content length: 0 -; user: - -; script: /home/fat/web/docs/php/test_mem.php -; last request cpu: 0.00 -; last request memory: 0 -; -; Note: There is a real-time FPM status monitoring sample web page available -; It's available in: /usr/local/share/php/fpm/status.html -; -; Note: The value must start with a leading slash (/). The value can be -; anything, but it may not be a good idea to use the .php extension or it -; may conflict with a real PHP file. -; Default Value: not set -;pm.status_path = /status - -; The ping URI to call the monitoring page of FPM. If this value is not set, no -; URI will be recognized as a ping page. This could be used to test from outside -; that FPM is alive and responding, or to -; - create a graph of FPM availability (rrd or such); -; - remove a server from a group if it is not responding (load balancing); -; - trigger alerts for the operating team (24/7). -; Note: The value must start with a leading slash (/). The value can be -; anything, but it may not be a good idea to use the .php extension or it -; may conflict with a real PHP file. -; Default Value: not set -;ping.path = /ping - -; This directive may be used to customize the response of a ping request. The -; response is formatted as text/plain with a 200 response code. -; Default Value: pong -;ping.response = pong - -; The access log file -; Default: not set -;access.log = log/$pool.access.log - -; The access log format. -; The following syntax is allowed -; %%: the '%' character -; %C: %CPU used by the request -; it can accept the following format: -; - %{user}C for user CPU only -; - %{system}C for system CPU only -; - %{total}C for user + system CPU (default) -; %d: time taken to serve the request -; it can accept the following format: -; - %{seconds}d (default) -; - %{miliseconds}d -; - %{mili}d -; - %{microseconds}d -; - %{micro}d -; %e: an environment variable (same as $_ENV or $_SERVER) -; it must be associated with embraces to specify the name of the env -; variable. Some exemples: -; - server specifics like: %{REQUEST_METHOD}e or %{SERVER_PROTOCOL}e -; - HTTP headers like: %{HTTP_HOST}e or %{HTTP_USER_AGENT}e -; %f: script filename -; %l: content-length of the request (for POST request only) -; %m: request method -; %M: peak of memory allocated by PHP -; it can accept the following format: -; - %{bytes}M (default) -; - %{kilobytes}M -; - %{kilo}M -; - %{megabytes}M -; - %{mega}M -; %n: pool name -; %o: output header -; it must be associated with embraces to specify the name of the header: -; - %{Content-Type}o -; - %{X-Powered-By}o -; - %{Transfert-Encoding}o -; - .... -; %p: PID of the child that serviced the request -; %P: PID of the parent of the child that serviced the request -; %q: the query string -; %Q: the '?' character if query string exists -; %r: the request URI (without the query string, see %q and %Q) -; %R: remote IP address -; %s: status (response code) -; %t: server time the request was received -; it can accept a strftime(3) format: -; %d/%b/%Y:%H:%M:%S %z (default) -; The strftime(3) format must be encapsuled in a %{}t tag -; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t -; %T: time the log has been written (the request has finished) -; it can accept a strftime(3) format: -; %d/%b/%Y:%H:%M:%S %z (default) -; The strftime(3) format must be encapsuled in a %{}t tag -; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t -; %u: remote user -; -; Default: "%R - %u %t \"%m %r\" %s" -;access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%" - -; The log file for slow requests -; Default Value: not set -; Note: slowlog is mandatory if request_slowlog_timeout is set -slowlog = /var/log/php/fpm.slow.log - -; The timeout for serving a single request after which a PHP backtrace will be -; dumped to the 'slowlog' file. A value of '0s' means 'off'. -; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) -; Default Value: 0 -request_slowlog_timeout = 3 - -; Depth of slow log stack trace. -; Default Value: 20 -;request_slowlog_trace_depth = 20 - -; The timeout for serving a single request after which the worker process will -; be killed. This option should be used when the 'max_execution_time' ini option -; does not stop script execution for some reason. A value of '0' means 'off'. -; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) -; Default Value: 0 -;request_terminate_timeout = 0 - -; Set open file descriptor rlimit. -; Default Value: system defined value -;rlimit_files = 1024 - -; Set max core size rlimit. -; Possible Values: 'unlimited' or an integer greater or equal to 0 -; Default Value: system defined value -;rlimit_core = 0 - -; Chroot to this directory at the start. This value must be defined as an -; absolute path. When this value is not set, chroot is not used. -; Note: you can prefix with '$prefix' to chroot to the pool prefix or one -; of its subdirectories. If the pool prefix is not set, the global prefix -; will be used instead. -; Note: chrooting is a great security feature and should be used whenever -; possible. However, all PHP paths will be relative to the chroot -; (error_log, sessions.save_path, ...). -; Default Value: not set -;chroot = - -; Chdir to this directory at the start. -; Note: relative path can be used. -; Default Value: current directory or / when chroot -;chdir = /var/www - -; Redirect worker stdout and stderr into main error log. If not set, stdout and -; stderr will be redirected to /dev/null according to FastCGI specs. -; Note: on highloaded environement, this can cause some delay in the page -; process time (several ms). -; Default Value: no -catch_workers_output = yes - -; Clear environment in FPM workers -; Prevents arbitrary environment variables from reaching FPM worker processes -; by clearing the environment in workers before env vars specified in this -; pool configuration are added. -; Setting to "no" will make all environment variables available to PHP code -; via getenv(), $_ENV and $_SERVER. -; Default Value: yes -;clear_env = no - -; Limits the extensions of the main script FPM will allow to parse. This can -; prevent configuration mistakes on the web server side. You should only limit -; FPM to .php extensions to prevent malicious users to use other extensions to -; execute php code. -; Note: set an empty value to allow all extensions. -; Default Value: .php -;security.limit_extensions = .php .php3 .php4 .php5 .php7 - -; Pass environment variables like LD_LIBRARY_PATH. All $VARIABLEs are taken from -; the current environment. -; Default Value: clean env -;env[HOSTNAME] = $HOSTNAME -;env[PATH] = /usr/local/bin:/usr/bin:/bin -;env[TMP] = /tmp -;env[TMPDIR] = /tmp -;env[TEMP] = /tmp - -; Additional php.ini defines, specific to this pool of workers. These settings -; overwrite the values previously defined in the php.ini. The directives are the -; same as the PHP SAPI: -; php_value/php_flag - you can set classic ini defines which can -; be overwritten from PHP call 'ini_set'. -; php_admin_value/php_admin_flag - these directives won't be overwritten by -; PHP call 'ini_set' -; For php_*flag, valid values are on, off, 1, 0, true, false, yes or no. - -; Defining 'extension' will load the corresponding shared extension from -; extension_dir. Defining 'disable_functions' or 'disable_classes' will not -; overwrite previously defined php.ini values, but will append the new value -; instead. - -; Note: path INI options can be relative and will be expanded with the prefix -; (pool, global or /usr/local) - -; Default Value: nothing is defined by default except the values in php.ini and -; specified at startup with the -d argument -;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com -;php_flag[display_errors] = off -;php_admin_value[error_log] = /var/log/fpm-php.www.log -;php_admin_flag[log_errors] = on -;php_admin_value[memory_limit] = 32M diff --git a/php8/8.3.20/conf/php.ini b/php8/8.3.20/conf/php.ini deleted file mode 100644 index b6b0aee69..000000000 --- a/php8/8.3.20/conf/php.ini +++ /dev/null @@ -1,1933 +0,0 @@ -[PHP] - -;;;;;;;;;;;;;;;;;;; -; About php.ini ; -;;;;;;;;;;;;;;;;;;; -; PHP's initialization file, generally called php.ini, is responsible for -; configuring many of the aspects of PHP's behavior. - -; PHP attempts to find and load this configuration from a number of locations. -; The following is a summary of its search order: -; 1. SAPI module specific location. -; 2. The PHPRC environment variable. (As of PHP 5.2.0) -; 3. A number of predefined registry keys on Windows (As of PHP 5.2.0) -; 4. Current working directory (except CLI) -; 5. The web server's directory (for SAPI modules), or directory of PHP -; (otherwise in Windows) -; 6. The directory from the --with-config-file-path compile time option, or the -; Windows directory (C:\windows or C:\winnt) -; See the PHP docs for more specific information. -; http://php.net/configuration.file - -; The syntax of the file is extremely simple. Whitespace and lines -; beginning with a semicolon are silently ignored (as you probably guessed). -; Section headers (e.g. [Foo]) are also silently ignored, even though -; they might mean something in the future. - -; Directives following the section heading [PATH=/www/mysite] only -; apply to PHP files in the /www/mysite directory. Directives -; following the section heading [HOST=www.example.com] only apply to -; PHP files served from www.example.com. Directives set in these -; special sections cannot be overridden by user-defined INI files or -; at runtime. Currently, [PATH=] and [HOST=] sections only work under -; CGI/FastCGI. -; http://php.net/ini.sections - -; Directives are specified using the following syntax: -; directive = value -; Directive names are *case sensitive* - foo=bar is different from FOO=bar. -; Directives are variables used to configure PHP or PHP extensions. -; There is no name validation. If PHP can't find an expected -; directive because it is not set or is mistyped, a default value will be used. - -; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one -; of the INI constants (On, Off, True, False, Yes, No and None) or an expression -; (e.g. E_ALL & ~E_NOTICE), a quoted string ("bar"), or a reference to a -; previously set variable or directive (e.g. ${foo}) - -; Expressions in the INI file are limited to bitwise operators and parentheses: -; | bitwise OR -; ^ bitwise XOR -; & bitwise AND -; ~ bitwise NOT -; ! boolean NOT - -; Boolean flags can be turned on using the values 1, On, True or Yes. -; They can be turned off using the values 0, Off, False or No. - -; An empty string can be denoted by simply not writing anything after the equal -; sign, or by using the None keyword: - -; foo = ; sets foo to an empty string -; foo = None ; sets foo to an empty string -; foo = "None" ; sets foo to the string 'None' - -; If you use constants in your value, and these constants belong to a -; dynamically loaded extension (either a PHP extension or a Zend extension), -; you may only use these constants *after* the line that loads the extension. - -;;;;;;;;;;;;;;;;;;; -; About this file ; -;;;;;;;;;;;;;;;;;;; -; PHP comes packaged with two INI files. One that is recommended to be used -; in production environments and one that is recommended to be used in -; development environments. - -; php.ini-production contains settings which hold security, performance and -; best practices at its core. But please be aware, these settings may break -; compatibility with older or less security conscience applications. We -; recommending using the production ini in production and testing environments. - -; php.ini-development is very similar to its production variant, except it is -; much more verbose when it comes to errors. We recommend using the -; development version only in development environments, as errors shown to -; application users can inadvertently leak otherwise secure information. - -; This is php.ini-production INI file. - -;;;;;;;;;;;;;;;;;;; -; Quick Reference ; -;;;;;;;;;;;;;;;;;;; -; The following are all the settings which are different in either the production -; or development versions of the INIs with respect to PHP's default behavior. -; Please see the actual settings later in the document for more details as to why -; we recommend these changes in PHP's behavior. - -; display_errors -; Default Value: On -; Development Value: On -; Production Value: Off - -; display_startup_errors -; Default Value: Off -; Development Value: On -; Production Value: Off - -; error_reporting -; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT - -; html_errors -; Default Value: On -; Development Value: On -; Production value: On - -; log_errors -; Default Value: Off -; Development Value: On -; Production Value: On - -; max_input_time -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) - -; output_buffering -; Default Value: Off -; Development Value: 4096 -; Production Value: 4096 - -; register_argc_argv -; Default Value: On -; Development Value: Off -; Production Value: Off - -; request_order -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" - -; session.gc_divisor -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 - -; session.sid_bits_per_character -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 - -; short_open_tag -; Default Value: On -; Development Value: Off -; Production Value: Off - -; track_errors -; Default Value: Off -; Development Value: On -; Production Value: Off - -; variables_order -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS" - -;;;;;;;;;;;;;;;;;;;; -; php.ini Options ; -;;;;;;;;;;;;;;;;;;;; -; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini" -;user_ini.filename = ".user.ini" - -; To disable this feature set this option to empty value -;user_ini.filename = - -; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes) -;user_ini.cache_ttl = 300 - -;;;;;;;;;;;;;;;;;;;; -; Language Options ; -;;;;;;;;;;;;;;;;;;;; - -; Enable the PHP scripting language engine under Apache. -; http://php.net/engine -engine = On - -; This directive determines whether or not PHP will recognize code between -; tags as PHP source which should be processed as such. It is -; generally recommended that should be used and that this feature -; should be disabled, as enabling it may result in issues when generating XML -; documents, however this remains supported for backward compatibility reasons. -; Note that this directive does not control the would work. -; http://php.net/syntax-highlighting -;highlight.string = #DD0000 -;highlight.comment = #FF9900 -;highlight.keyword = #007700 -;highlight.default = #0000BB -;highlight.html = #000000 - -; If enabled, the request will be allowed to complete even if the user aborts -; the request. Consider enabling it if executing long requests, which may end up -; being interrupted by the user or a browser timing out. PHP's default behavior -; is to disable this feature. -; http://php.net/ignore-user-abort -;ignore_user_abort = On - -; Determines the size of the realpath cache to be used by PHP. This value should -; be increased on systems where PHP opens many files to reflect the quantity of -; the file operations performed. -; http://php.net/realpath-cache-size -;realpath_cache_size = 4096k - -; Duration of time, in seconds for which to cache realpath information for a given -; file or directory. For systems with rarely changing files, consider increasing this -; value. -; http://php.net/realpath-cache-ttl -;realpath_cache_ttl = 120 - -; Enables or disables the circular reference collector. -; http://php.net/zend.enable-gc -zend.enable_gc = On - -; If enabled, scripts may be written in encodings that are incompatible with -; the scanner. CP936, Big5, CP949 and Shift_JIS are the examples of such -; encodings. To use this feature, mbstring extension must be enabled. -; Default: Off -;zend.multibyte = Off - -; Allows to set the default encoding for the scripts. This value will be used -; unless "declare(encoding=...)" directive appears at the top of the script. -; Only affects if zend.multibyte is set. -; Default: "" -;zend.script_encoding = - -;;;;;;;;;;;;;;;;; -; Miscellaneous ; -;;;;;;;;;;;;;;;;; - -; Decides whether PHP may expose the fact that it is installed on the server -; (e.g. by adding its signature to the Web server header). It is no security -; threat in any way, but it makes it possible to determine whether you use PHP -; on your server or not. -; http://php.net/expose-php -expose_php = Off - -;;;;;;;;;;;;;;;;;;; -; Resource Limits ; -;;;;;;;;;;;;;;;;;;; - -; Maximum execution time of each script, in seconds -; http://php.net/max-execution-time -; Note: This directive is hardcoded to 0 for the CLI SAPI -max_execution_time = 30 - -; Maximum amount of time each script may spend parsing request data. It's a good -; idea to limit this time on productions servers in order to eliminate unexpectedly -; long running scripts. -; Note: This directive is hardcoded to -1 for the CLI SAPI -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) -; http://php.net/max-input-time -max_input_time = 60 - -; Maximum input variable nesting level -; http://php.net/max-input-nesting-level -;max_input_nesting_level = 64 - -; How many GET/POST/COOKIE input variables may be accepted -; max_input_vars = 1000 - -; Maximum amount of memory a script may consume (128MB) -; http://php.net/memory-limit -memory_limit = 256M - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; Error handling and logging ; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -; This directive informs PHP of which errors, warnings and notices you would like -; it to take action for. The recommended way of setting values for this -; directive is through the use of the error level constants and bitwise -; operators. The error level constants are below here for convenience as well as -; some common settings and their meanings. -; By default, PHP is set to take action on all errors, notices and warnings EXCEPT -; those related to E_NOTICE and E_STRICT, which together cover best practices and -; recommended coding standards in PHP. For performance reasons, this is the -; recommend error reporting setting. Your production server shouldn't be wasting -; resources complaining about best practices and coding standards. That's what -; development servers and development settings are for. -; Note: The php.ini-development file has this setting as E_ALL. This -; means it pretty much reports everything which is exactly what you want during -; development and early testing. -; -; Error Level Constants: -; E_ALL - All errors and warnings (includes E_STRICT as of PHP 5.4.0) -; E_ERROR - fatal run-time errors -; E_RECOVERABLE_ERROR - almost fatal run-time errors -; E_WARNING - run-time warnings (non-fatal errors) -; E_PARSE - compile-time parse errors -; E_NOTICE - run-time notices (these are warnings which often result -; from a bug in your code, but it's possible that it was -; intentional (e.g., using an uninitialized variable and -; relying on the fact it is automatically initialized to an -; empty string) -; E_STRICT - run-time notices, enable to have PHP suggest changes -; to your code which will ensure the best interoperability -; and forward compatibility of your code -; E_CORE_ERROR - fatal errors that occur during PHP's initial startup -; E_CORE_WARNING - warnings (non-fatal errors) that occur during PHP's -; initial startup -; E_COMPILE_ERROR - fatal compile-time errors -; E_COMPILE_WARNING - compile-time warnings (non-fatal errors) -; E_USER_ERROR - user-generated error message -; E_USER_WARNING - user-generated warning message -; E_USER_NOTICE - user-generated notice message -; E_DEPRECATED - warn about code that will not work in future versions -; of PHP -; E_USER_DEPRECATED - user-generated deprecation warnings -; -; Common Values: -; E_ALL (Show all errors, warnings and notices including coding standards.) -; E_ALL & ~E_NOTICE (Show all errors, except for notices) -; E_ALL & ~E_NOTICE & ~E_STRICT (Show all errors, except for notices and coding standards warnings.) -; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors) -; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT -; http://php.net/error-reporting -error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT - -; This directive controls whether or not and where PHP will output errors, -; notices and warnings too. Error output is very useful during development, but -; it could be very dangerous in production environments. Depending on the code -; which is triggering the error, sensitive information could potentially leak -; out of your application such as database usernames and passwords or worse. -; For production environments, we recommend logging errors rather than -; sending them to STDOUT. -; Possible Values: -; Off = Do not display any errors -; stderr = Display errors to STDERR (affects only CGI/CLI binaries!) -; On or stdout = Display errors to STDOUT -; Default Value: On -; Development Value: On -; Production Value: Off -; http://php.net/display-errors -display_errors = Off - -; The display of errors which occur during PHP's startup sequence are handled -; separately from display_errors. PHP's default behavior is to suppress those -; errors from clients. Turning the display of startup errors on can be useful in -; debugging configuration problems. We strongly recommend you -; set this to 'off' for production servers. -; Default Value: Off -; Development Value: On -; Production Value: Off -; http://php.net/display-startup-errors -display_startup_errors = Off - -; Besides displaying errors, PHP can also log errors to locations such as a -; server-specific log, STDERR, or a location specified by the error_log -; directive found below. While errors should not be displayed on productions -; servers they should still be monitored and logging is a great way to do that. -; Default Value: Off -; Development Value: On -; Production Value: On -; http://php.net/log-errors -log_errors = On - -; Set maximum length of log_errors. In error_log information about the source is -; added. The default is 1024 and 0 allows to not apply any maximum length at all. -; http://php.net/log-errors-max-len -log_errors_max_len = 1024 - -; Do not log repeated messages. Repeated errors must occur in same file on same -; line unless ignore_repeated_source is set true. -; http://php.net/ignore-repeated-errors -ignore_repeated_errors = Off - -; Ignore source of message when ignoring repeated messages. When this setting -; is On you will not log errors with repeated messages from different files or -; source lines. -; http://php.net/ignore-repeated-source -ignore_repeated_source = Off - -; If this parameter is set to Off, then memory leaks will not be shown (on -; stdout or in the log). This has only effect in a debug compile, and if -; error reporting includes E_WARNING in the allowed list -; http://php.net/report-memleaks -report_memleaks = On - -; This setting is on by default. -;report_zend_debug = 0 - -; Store the last error/warning message in $php_errormsg (boolean). Setting this value -; to On can assist in debugging and is appropriate for development servers. It should -; however be disabled on production servers. -; Default Value: Off -; Development Value: On -; Production Value: Off -; http://php.net/track-errors -track_errors = Off - -; Turn off normal error reporting and emit XML-RPC error XML -; http://php.net/xmlrpc-errors -;xmlrpc_errors = 0 - -; An XML-RPC faultCode -;xmlrpc_error_number = 0 - -; When PHP displays or logs an error, it has the capability of formatting the -; error message as HTML for easier reading. This directive controls whether -; the error message is formatted as HTML or not. -; Note: This directive is hardcoded to Off for the CLI SAPI -; Default Value: On -; Development Value: On -; Production value: On -; http://php.net/html-errors -html_errors = On - -; If html_errors is set to On *and* docref_root is not empty, then PHP -; produces clickable error messages that direct to a page describing the error -; or function causing the error in detail. -; You can download a copy of the PHP manual from http://php.net/docs -; and change docref_root to the base URL of your local copy including the -; leading '/'. You must also specify the file extension being used including -; the dot. PHP's default behavior is to leave these settings empty, in which -; case no links to documentation are generated. -; Note: Never use this feature for production boxes. -; http://php.net/docref-root -; Examples -;docref_root = "/phpmanual/" - -; http://php.net/docref-ext -;docref_ext = .html - -; String to output before an error message. PHP's default behavior is to leave -; this setting blank. -; http://php.net/error-prepend-string -; Example: -;error_prepend_string = "" - -; String to output after an error message. PHP's default behavior is to leave -; this setting blank. -; http://php.net/error-append-string -; Example: -;error_append_string = "" - -; Log errors to specified file. PHP's default behavior is to leave this value -; empty. -; http://php.net/error-log -; Example: -;error_log = php_errors.log -; Log errors to syslog (Event Log on Windows). -error_log = /var/log/php/php.error.log - -;windows.show_crt_warning -; Default value: 0 -; Development value: 0 -; Production value: 0 - -;;;;;;;;;;;;;;;;; -; Data Handling ; -;;;;;;;;;;;;;;;;; - -; The separator used in PHP generated URLs to separate arguments. -; PHP's default setting is "&". -; http://php.net/arg-separator.output -; Example: -;arg_separator.output = "&" - -; List of separator(s) used by PHP to parse input URLs into variables. -; PHP's default setting is "&". -; NOTE: Every character in this directive is considered as separator! -; http://php.net/arg-separator.input -; Example: -;arg_separator.input = ";&" - -; This directive determines which super global arrays are registered when PHP -; starts up. G,P,C,E & S are abbreviations for the following respective super -; globals: GET, POST, COOKIE, ENV and SERVER. There is a performance penalty -; paid for the registration of these arrays and because ENV is not as commonly -; used as the others, ENV is not recommended on productions servers. You -; can still get access to the environment variables through getenv() should you -; need to. -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS"; -; http://php.net/variables-order -variables_order = "GPCS" - -; This directive determines which super global data (G,P & C) should be -; registered into the super global array REQUEST. If so, it also determines -; the order in which that data is registered. The values for this directive -; are specified in the same manner as the variables_order directive, -; EXCEPT one. Leaving this value empty will cause PHP to use the value set -; in the variables_order directive. It does not mean it will leave the super -; globals array REQUEST empty. -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" -; http://php.net/request-order -request_order = "GP" - -; This directive determines whether PHP registers $argv & $argc each time it -; runs. $argv contains an array of all the arguments passed to PHP when a script -; is invoked. $argc contains an integer representing the number of arguments -; that were passed when the script was invoked. These arrays are extremely -; useful when running scripts from the command line. When this directive is -; enabled, registering these variables consumes CPU cycles and memory each time -; a script is executed. For performance reasons, this feature should be disabled -; on production servers. -; Note: This directive is hardcoded to On for the CLI SAPI -; Default Value: On -; Development Value: Off -; Production Value: Off -; http://php.net/register-argc-argv -register_argc_argv = Off - -; When enabled, the ENV, REQUEST and SERVER variables are created when they're -; first used (Just In Time) instead of when the script starts. If these -; variables are not used within a script, having this directive on will result -; in a performance gain. The PHP directive register_argc_argv must be disabled -; for this directive to have any affect. -; http://php.net/auto-globals-jit -auto_globals_jit = On - -; Whether PHP will read the POST data. -; This option is enabled by default. -; Most likely, you won't want to disable this option globally. It causes $_POST -; and $_FILES to always be empty; the only way you will be able to read the -; POST data will be through the php://input stream wrapper. This can be useful -; to proxy requests or to process the POST data in a memory efficient fashion. -; http://php.net/enable-post-data-reading -;enable_post_data_reading = Off - -; Maximum size of POST data that PHP will accept. -; Its value may be 0 to disable the limit. It is ignored if POST data reading -; is disabled through enable_post_data_reading. -; http://php.net/post-max-size -post_max_size = 100M - -; Automatically add files before PHP document. -; http://php.net/auto-prepend-file -auto_prepend_file = - -; Automatically add files after PHP document. -; http://php.net/auto-append-file -auto_append_file = - -; By default, PHP will output a media type using the Content-Type header. To -; disable this, simply set it to be empty. -; -; PHP's built-in default media type is set to text/html. -; http://php.net/default-mimetype -default_mimetype = "text/html" - -; PHP's default character set is set to UTF-8. -; http://php.net/default-charset -default_charset = "UTF-8" - -; PHP internal character encoding is set to empty. -; If empty, default_charset is used. -; http://php.net/internal-encoding -;internal_encoding = - -; PHP input character encoding is set to empty. -; If empty, default_charset is used. -; http://php.net/input-encoding -;input_encoding = - -; PHP output character encoding is set to empty. -; If empty, default_charset is used. -; See also output_buffer. -; http://php.net/output-encoding -;output_encoding = - -;;;;;;;;;;;;;;;;;;;;;;;;; -; Paths and Directories ; -;;;;;;;;;;;;;;;;;;;;;;;;; - -; UNIX: "/path1:/path2" -;include_path = ".:/php/includes" -; -; Windows: "\path1;\path2" -;include_path = ".;c:\php\includes" -; -; PHP's default setting for include_path is ".;/path/to/php/pear" -; http://php.net/include-path - -; The root of the PHP pages, used only if nonempty. -; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root -; if you are running php as a CGI under any web server (other than IIS) -; see documentation for security issues. The alternate is to use the -; cgi.force_redirect configuration below -; http://php.net/doc-root -doc_root = - -; The directory under which PHP opens the script using /~username used only -; if nonempty. -; http://php.net/user-dir -user_dir = - -; Directory in which the loadable extensions (modules) reside. -; http://php.net/extension-dir -; extension_dir = "./" -; On windows: -; extension_dir = "ext" - -; Directory where the temporary files should be placed. -; Defaults to the system default (see sys_get_temp_dir) -; sys_temp_dir = "/tmp" - -; Whether or not to enable the dl() function. The dl() function does NOT work -; properly in multithreaded servers, such as IIS or Zeus, and is automatically -; disabled on them. -; http://php.net/enable-dl -enable_dl = Off - -; cgi.force_redirect is necessary to provide security running PHP as a CGI under -; most web servers. Left undefined, PHP turns this on by default. You can -; turn it off here AT YOUR OWN RISK -; **You CAN safely turn this off for IIS, in fact, you MUST.** -; http://php.net/cgi.force-redirect -;cgi.force_redirect = 1 - -; if cgi.nph is enabled it will force cgi to always sent Status: 200 with -; every request. PHP's default behavior is to disable this feature. -;cgi.nph = 1 - -; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape -; (iPlanet) web servers, you MAY need to set an environment variable name that PHP -; will look for to know it is OK to continue execution. Setting this variable MAY -; cause security issues, KNOW WHAT YOU ARE DOING FIRST. -; http://php.net/cgi.redirect-status-env -;cgi.redirect_status_env = - -; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's -; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok -; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting -; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting -; of zero causes PHP to behave as before. Default is 1. You should fix your scripts -; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. -; http://php.net/cgi.fix-pathinfo -;cgi.fix_pathinfo=1 - -; if cgi.discard_path is enabled, the PHP CGI binary can safely be placed outside -; of the web tree and people will not be able to circumvent .htaccess security. -; http://php.net/cgi.dicard-path -;cgi.discard_path=1 - -; FastCGI under IIS (on WINNT based OS) supports the ability to impersonate -; security tokens of the calling client. This allows IIS to define the -; security context that the request runs under. mod_fastcgi under Apache -; does not currently support this feature (03/17/2002) -; Set to 1 if running under IIS. Default is zero. -; http://php.net/fastcgi.impersonate -;fastcgi.impersonate = 1 - -; Disable logging through FastCGI connection. PHP's default behavior is to enable -; this feature. -;fastcgi.logging = 0 - -; cgi.rfc2616_headers configuration option tells PHP what type of headers to -; use when sending HTTP response code. If set to 0, PHP sends Status: header that -; is supported by Apache. When this option is set to 1, PHP will send -; RFC2616 compliant header. -; Default is zero. -; http://php.net/cgi.rfc2616-headers -;cgi.rfc2616_headers = 0 - -; cgi.check_shebang_line controls whether CGI PHP checks for line starting with #! -; (shebang) at the top of the running script. This line might be needed if the -; script support running both as stand-alone script and via PHP CGI<. PHP in CGI -; mode skips this line and ignores its content if this directive is turned on. -; http://php.net/cgi.check-shebang-line -;cgi.check_shebang_line=1 - -;;;;;;;;;;;;;;;; -; File Uploads ; -;;;;;;;;;;;;;;;; - -; Whether to allow HTTP file uploads. -; http://php.net/file-uploads -file_uploads = On - -; Temporary directory for HTTP uploaded files (will use system default if not -; specified). -; http://php.net/upload-tmp-dir -;upload_tmp_dir = - -; Maximum allowed size for uploaded files. -; http://php.net/upload-max-filesize -upload_max_filesize = 50M - -; Maximum number of files that can be uploaded via a single request -max_file_uploads = 20 - -;;;;;;;;;;;;;;;;;; -; Fopen wrappers ; -;;;;;;;;;;;;;;;;;; - -; Whether to allow the treatment of URLs (like http:// or ftp://) as files. -; http://php.net/allow-url-fopen -allow_url_fopen = On - -; Whether to allow include/require to open URLs (like http:// or ftp://) as files. -; http://php.net/allow-url-include -allow_url_include = Off - -; Define the anonymous ftp password (your email address). PHP's default setting -; for this is empty. -; http://php.net/from -;from="john@doe.com" - -; Define the User-Agent string. PHP's default setting for this is empty. -; http://php.net/user-agent -;user_agent="PHP" - -; Default timeout for socket based streams (seconds) -; http://php.net/default-socket-timeout -default_socket_timeout = 60 - -; If your scripts have to deal with files from Macintosh systems, -; or you are running on a Mac and need to deal with files from -; unix or win32 systems, setting this flag will cause PHP to -; automatically detect the EOL character in those files so that -; fgets() and file() will work regardless of the source of the file. -; http://php.net/auto-detect-line-endings -;auto_detect_line_endings = Off - -;;;;;;;;;;;;;;;;;;;;;; -; Dynamic Extensions ; -;;;;;;;;;;;;;;;;;;;;;; - -; If you wish to have an extension loaded automatically, use the following -; syntax: -; -; extension=modulename.extension -; -; For example, on Windows: -; -; extension=mysqli.dll -; -; ... or under UNIX: -; -; extension=mysqli.so -; -; ... or with a path: -; -; extension=/path/to/extension/mysqli.so -; -; If you only provide the name of the extension, PHP will look for it in its -; default extension directory. -; -; Windows Extensions -; Note that ODBC support is built in, so no dll is needed for it. -; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5+) -; extension folders as well as the separate PECL DLL download (PHP 5+). -; Be sure to appropriately set the extension_dir directive. -; -;extension=php_bz2.dll -;extension=php_curl.dll -;extension=php_fileinfo.dll -;extension=php_ftp.dll -;extension=php_gd2.dll -;extension=php_gettext.dll -;extension=php_gmp.dll -;extension=php_intl.dll -;extension=php_imap.dll -;extension=php_interbase.dll -;extension=php_ldap.dll -;extension=php_mbstring.dll -;extension=php_exif.dll ; Must be after mbstring as it depends on it -;extension=php_mysqli.dll -;extension=php_oci8_12c.dll ; Use with Oracle Database 12c Instant Client -;extension=php_openssl.dll -;extension=php_pdo_firebird.dll -;extension=php_pdo_mysql.dll -;extension=php_pdo_oci.dll -;extension=php_pdo_odbc.dll -;extension=php_pdo_pgsql.dll -;extension=php_pdo_sqlite.dll -;extension=php_pgsql.dll -;extension=php_shmop.dll - -; The MIBS data available in the PHP distribution must be installed. -; See http://www.php.net/manual/en/snmp.installation.php -;extension=php_snmp.dll - -;extension=php_soap.dll -;extension=php_sockets.dll -;extension=php_sqlite3.dll -;extension=php_tidy.dll -;extension=php_xmlrpc.dll -;extension=php_xsl.dll - -;;;;;;;;;;;;;;;;;;; -; Module Settings ; -;;;;;;;;;;;;;;;;;;; - -[CLI Server] -; Whether the CLI web server uses ANSI color coding in its terminal output. -cli_server.color = On - -[Date] -; Defines the default timezone used by the date functions -; http://php.net/date.timezone -date.timezone = Asia/Shanghai - -; http://php.net/date.default-latitude -;date.default_latitude = 31.7667 - -; http://php.net/date.default-longitude -;date.default_longitude = 35.2333 - -; http://php.net/date.sunrise-zenith -;date.sunrise_zenith = 90.583333 - -; http://php.net/date.sunset-zenith -;date.sunset_zenith = 90.583333 - -[filter] -; http://php.net/filter.default -;filter.default = unsafe_raw - -; http://php.net/filter.default-flags -;filter.default_flags = - -[iconv] -; Use of this INI entry is deprecated, use global input_encoding instead. -; If empty, default_charset or input_encoding or iconv.input_encoding is used. -; The precedence is: default_charset < intput_encoding < iconv.input_encoding -;iconv.input_encoding = - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;iconv.internal_encoding = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; If empty, default_charset or output_encoding or iconv.output_encoding is used. -; The precedence is: default_charset < output_encoding < iconv.output_encoding -; To use an output encoding conversion, iconv's output handler must be set -; otherwise output encoding conversion cannot be performed. -;iconv.output_encoding = - -[intl] -;intl.default_locale = -; This directive allows you to produce PHP errors when some error -; happens within intl functions. The value is the level of the error produced. -; Default is 0, which does not produce any errors. -;intl.error_level = E_WARNING -;intl.use_exceptions = 0 - -[sqlite3] -;sqlite3.extension_dir = - -[Pcre] -;PCRE library backtracking limit. -; http://php.net/pcre.backtrack-limit -;pcre.backtrack_limit=100000 - -;PCRE library recursion limit. -;Please note that if you set this value to a high number you may consume all -;the available process stack and eventually crash PHP (due to reaching the -;stack size limit imposed by the Operating System). -; http://php.net/pcre.recursion-limit -;pcre.recursion_limit=100000 - -;Enables or disables JIT compilation of patterns. This requires the PCRE -;library to be compiled with JIT support. -;pcre.jit=1 - -[Pdo] -; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off" -; http://php.net/pdo-odbc.connection-pooling -;pdo_odbc.connection_pooling=strict - -;pdo_odbc.db2_instance_name - -[Pdo_mysql] -; If mysqlnd is used: Number of cache slots for the internal result set cache -; http://php.net/pdo_mysql.cache_size -pdo_mysql.cache_size = 2000 - -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -; http://php.net/pdo_mysql.default-socket -pdo_mysql.default_socket= - -[Phar] -; http://php.net/phar.readonly -;phar.readonly = On - -; http://php.net/phar.require-hash -;phar.require_hash = On - -;phar.cache_list = - -[mail function] -; For Win32 only. -; http://php.net/smtp -SMTP = localhost -; http://php.net/smtp-port -smtp_port = 25 - -; For Win32 only. -; http://php.net/sendmail-from -;sendmail_from = me@example.com - -; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). -; http://php.net/sendmail-path -;sendmail_path = - -; Force the addition of the specified parameters to be passed as extra parameters -; to the sendmail binary. These parameters will always replace the value of -; the 5th parameter to mail(). -;mail.force_extra_parameters = - -; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename -mail.add_x_header = On - -; The path to a log file that will log all mail() calls. Log entries include -; the full path of the script, line number, To address and headers. -;mail.log = -; Log mail to syslog (Event Log on Windows). -;mail.log = syslog - -[ODBC] -; http://php.net/odbc.default-db -;odbc.default_db = Not yet implemented - -; http://php.net/odbc.default-user -;odbc.default_user = Not yet implemented - -; http://php.net/odbc.default-pw -;odbc.default_pw = Not yet implemented - -; Controls the ODBC cursor model. -; Default: SQL_CURSOR_STATIC (default). -;odbc.default_cursortype - -; Allow or prevent persistent links. -; http://php.net/odbc.allow-persistent -odbc.allow_persistent = On - -; Check that a connection is still valid before reuse. -; http://php.net/odbc.check-persistent -odbc.check_persistent = On - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/odbc.max-persistent -odbc.max_persistent = -1 - -; Maximum number of links (persistent + non-persistent). -1 means no limit. -; http://php.net/odbc.max-links -odbc.max_links = -1 - -; Handling of LONG fields. Returns number of bytes to variables. 0 means -; passthru. -; http://php.net/odbc.defaultlrl -odbc.defaultlrl = 4096 - -; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char. -; See the documentation on odbc_binmode and odbc_longreadlen for an explanation -; of odbc.defaultlrl and odbc.defaultbinmode -; http://php.net/odbc.defaultbinmode -odbc.defaultbinmode = 1 - -;birdstep.max_links = -1 - -[Interbase] -; Allow or prevent persistent links. -ibase.allow_persistent = 1 - -; Maximum number of persistent links. -1 means no limit. -ibase.max_persistent = -1 - -; Maximum number of links (persistent + non-persistent). -1 means no limit. -ibase.max_links = -1 - -; Default database name for ibase_connect(). -;ibase.default_db = - -; Default username for ibase_connect(). -;ibase.default_user = - -; Default password for ibase_connect(). -;ibase.default_password = - -; Default charset for ibase_connect(). -;ibase.default_charset = - -; Default timestamp format. -ibase.timestampformat = "%Y-%m-%d %H:%M:%S" - -; Default date format. -ibase.dateformat = "%Y-%m-%d" - -; Default time format. -ibase.timeformat = "%H:%M:%S" - -[MySQLi] - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/mysqli.max-persistent -mysqli.max_persistent = -1 - -; Allow accessing, from PHP's perspective, local files with LOAD DATA statements -; http://php.net/mysqli.allow_local_infile -;mysqli.allow_local_infile = On - -; Allow or prevent persistent links. -; http://php.net/mysqli.allow-persistent -mysqli.allow_persistent = On - -; Maximum number of links. -1 means no limit. -; http://php.net/mysqli.max-links -mysqli.max_links = -1 - -; If mysqlnd is used: Number of cache slots for the internal result set cache -; http://php.net/mysqli.cache_size -mysqli.cache_size = 2000 - -; Default port number for mysqli_connect(). If unset, mysqli_connect() will use -; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the -; compile-time value defined MYSQL_PORT (in that order). Win32 will only look -; at MYSQL_PORT. -; http://php.net/mysqli.default-port -mysqli.default_port = 3306 - -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -; http://php.net/mysqli.default-socket -mysqli.default_socket = - -; Default host for mysql_connect() (doesn't apply in safe mode). -; http://php.net/mysqli.default-host -mysqli.default_host = - -; Default user for mysql_connect() (doesn't apply in safe mode). -; http://php.net/mysqli.default-user -mysqli.default_user = - -; Default password for mysqli_connect() (doesn't apply in safe mode). -; Note that this is generally a *bad* idea to store passwords in this file. -; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw") -; and reveal this password! And of course, any users with read access to this -; file will be able to reveal the password as well. -; http://php.net/mysqli.default-pw -mysqli.default_pw = - -; Allow or prevent reconnect -mysqli.reconnect = Off - -[mysqlnd] -; Enable / Disable collection of general statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -; http://php.net/mysqlnd.collect_statistics -mysqlnd.collect_statistics = On - -; Enable / Disable collection of memory usage statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -; http://php.net/mysqlnd.collect_memory_statistics -mysqlnd.collect_memory_statistics = Off - -; Records communication from all extensions using mysqlnd to the specified log -; file. -; http://php.net/mysqlnd.debug -;mysqlnd.debug = - -; Defines which queries will be logged. -; http://php.net/mysqlnd.log_mask -;mysqlnd.log_mask = 0 - -; Default size of the mysqlnd memory pool, which is used by result sets. -; http://php.net/mysqlnd.mempool_default_size -;mysqlnd.mempool_default_size = 16000 - -; Size of a pre-allocated buffer used when sending commands to MySQL in bytes. -; http://php.net/mysqlnd.net_cmd_buffer_size -;mysqlnd.net_cmd_buffer_size = 2048 - -; Size of a pre-allocated buffer used for reading data sent by the server in -; bytes. -; http://php.net/mysqlnd.net_read_buffer_size -;mysqlnd.net_read_buffer_size = 32768 - -; Timeout for network requests in seconds. -; http://php.net/mysqlnd.net_read_timeout -;mysqlnd.net_read_timeout = 31536000 - -; SHA-256 Authentication Plugin related. File with the MySQL server public RSA -; key. -; http://php.net/mysqlnd.sha256_server_public_key -;mysqlnd.sha256_server_public_key = - -[OCI8] - -; Connection: Enables privileged connections using external -; credentials (OCI_SYSOPER, OCI_SYSDBA) -; http://php.net/oci8.privileged-connect -;oci8.privileged_connect = Off - -; Connection: The maximum number of persistent OCI8 connections per -; process. Using -1 means no limit. -; http://php.net/oci8.max-persistent -;oci8.max_persistent = -1 - -; Connection: The maximum number of seconds a process is allowed to -; maintain an idle persistent connection. Using -1 means idle -; persistent connections will be maintained forever. -; http://php.net/oci8.persistent-timeout -;oci8.persistent_timeout = -1 - -; Connection: The number of seconds that must pass before issuing a -; ping during oci_pconnect() to check the connection validity. When -; set to 0, each oci_pconnect() will cause a ping. Using -1 disables -; pings completely. -; http://php.net/oci8.ping-interval -;oci8.ping_interval = 60 - -; Connection: Set this to a user chosen connection class to be used -; for all pooled server requests with Oracle 11g Database Resident -; Connection Pooling (DRCP). To use DRCP, this value should be set to -; the same string for all web servers running the same application, -; the database pool must be configured, and the connection string must -; specify to use a pooled server. -;oci8.connection_class = - -; High Availability: Using On lets PHP receive Fast Application -; Notification (FAN) events generated when a database node fails. The -; database must also be configured to post FAN events. -;oci8.events = Off - -; Tuning: This option enables statement caching, and specifies how -; many statements to cache. Using 0 disables statement caching. -; http://php.net/oci8.statement-cache-size -;oci8.statement_cache_size = 20 - -; Tuning: Enables statement prefetching and sets the default number of -; rows that will be fetched automatically after statement execution. -; http://php.net/oci8.default-prefetch -;oci8.default_prefetch = 100 - -; Compatibility. Using On means oci_close() will not close -; oci_connect() and oci_new_connect() connections. -; http://php.net/oci8.old-oci-close-semantics -;oci8.old_oci_close_semantics = Off - -[PostgreSQL] -; Allow or prevent persistent links. -; http://php.net/pgsql.allow-persistent -pgsql.allow_persistent = On - -; Detect broken persistent links always with pg_pconnect(). -; Auto reset feature requires a little overheads. -; http://php.net/pgsql.auto-reset-persistent -pgsql.auto_reset_persistent = Off - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/pgsql.max-persistent -pgsql.max_persistent = -1 - -; Maximum number of links (persistent+non persistent). -1 means no limit. -; http://php.net/pgsql.max-links -pgsql.max_links = -1 - -; Ignore PostgreSQL backends Notice message or not. -; Notice message logging require a little overheads. -; http://php.net/pgsql.ignore-notice -pgsql.ignore_notice = 0 - -; Log PostgreSQL backends Notice message or not. -; Unless pgsql.ignore_notice=0, module cannot log notice message. -; http://php.net/pgsql.log-notice -pgsql.log_notice = 0 - -[bcmath] -; Number of decimal digits for all bcmath functions. -; http://php.net/bcmath.scale -bcmath.scale = 0 - -[browscap] -; http://php.net/browscap -;browscap = extra/browscap.ini - -[Session] -; Handler used to store/retrieve data. -; http://php.net/session.save-handler -session.save_handler = files - -; Argument passed to save_handler. In the case of files, this is the path -; where data files are stored. Note: Windows users have to change this -; variable in order to use PHP's session functions. -; -; The path can be defined as: -; -; session.save_path = "N;/path" -; -; where N is an integer. Instead of storing all the session files in -; /path, what this will do is use subdirectories N-levels deep, and -; store the session data in those directories. This is useful if -; your OS has problems with many files in one directory, and is -; a more efficient layout for servers that handle many sessions. -; -; NOTE 1: PHP will not create this directory structure automatically. -; You can use the script in the ext/session dir for that purpose. -; NOTE 2: See the section on garbage collection below if you choose to -; use subdirectories for session storage -; -; The file storage module creates files using mode 600 by default. -; You can change that by using -; -; session.save_path = "N;MODE;/path" -; -; where MODE is the octal representation of the mode. Note that this -; does not overwrite the process's umask. -; http://php.net/session.save-path -;session.save_path = "/tmp" - -; Whether to use strict session mode. -; Strict session mode does not accept uninitialized session ID and regenerate -; session ID if browser sends uninitialized session ID. Strict mode protects -; applications from session fixation via session adoption vulnerability. It is -; disabled by default for maximum compatibility, but enabling it is encouraged. -; https://wiki.php.net/rfc/strict_sessions -session.use_strict_mode = 0 - -; Whether to use cookies. -; http://php.net/session.use-cookies -session.use_cookies = 1 - -; http://php.net/session.cookie-secure -;session.cookie_secure = - -; This option forces PHP to fetch and use a cookie for storing and maintaining -; the session id. We encourage this operation as it's very helpful in combating -; session hijacking when not specifying and managing your own session id. It is -; not the be-all and end-all of session hijacking defense, but it's a good start. -; http://php.net/session.use-only-cookies -session.use_only_cookies = 1 - -; Name of the session (used as cookie name). -; http://php.net/session.name -session.name = PHPSESSID - -; Initialize session on request startup. -; http://php.net/session.auto-start -session.auto_start = 0 - -; Lifetime in seconds of cookie or, if 0, until browser is restarted. -; http://php.net/session.cookie-lifetime -session.cookie_lifetime = 0 - -; The path for which the cookie is valid. -; http://php.net/session.cookie-path -session.cookie_path = / - -; The domain for which the cookie is valid. -; http://php.net/session.cookie-domain -session.cookie_domain = - -; Whether or not to add the httpOnly flag to the cookie, which makes it inaccessible to browser scripting languages such as JavaScript. -; http://php.net/session.cookie-httponly -session.cookie_httponly = - -; Handler used to serialize data. php is the standard serializer of PHP. -; http://php.net/session.serialize-handler -session.serialize_handler = php - -; Defines the probability that the 'garbage collection' process is started -; on every session initialization. The probability is calculated by using -; gc_probability/gc_divisor. Where session.gc_probability is the numerator -; and gc_divisor is the denominator in the equation. Setting this value to 1 -; when the session.gc_divisor value is 100 will give you approximately a 1% chance -; the gc will run on any give request. -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; http://php.net/session.gc-probability -session.gc_probability = 1 - -; Defines the probability that the 'garbage collection' process is started on every -; session initialization. The probability is calculated by using the following equation: -; gc_probability/gc_divisor. Where session.gc_probability is the numerator and -; session.gc_divisor is the denominator in the equation. Setting this value to 1 -; when the session.gc_divisor value is 100 will give you approximately a 1% chance -; the gc will run on any give request. Increasing this value to 1000 will give you -; a 0.1% chance the gc will run on any give request. For high volume production servers, -; this is a more efficient approach. -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 -; http://php.net/session.gc-divisor -session.gc_divisor = 1000 - -; After this number of seconds, stored data will be seen as 'garbage' and -; cleaned up by the garbage collection process. -; http://php.net/session.gc-maxlifetime -session.gc_maxlifetime = 1440 - -; NOTE: If you are using the subdirectory option for storing session files -; (see session.save_path above), then garbage collection does *not* -; happen automatically. You will need to do your own garbage -; collection through a shell script, cron entry, or some other method. -; For example, the following script would is the equivalent of -; setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes): -; find /path/to/sessions -cmin +24 -type f | xargs rm - -; Check HTTP Referer to invalidate externally stored URLs containing ids. -; HTTP_REFERER has to contain this substring for the session to be -; considered as valid. -; http://php.net/session.referer-check -session.referer_check = - -; Set to {nocache,private,public,} to determine HTTP caching aspects -; or leave this empty to avoid sending anti-caching headers. -; http://php.net/session.cache-limiter -session.cache_limiter = nocache - -; Document expires after n minutes. -; http://php.net/session.cache-expire -session.cache_expire = 180 - -; trans sid support is disabled by default. -; Use of trans sid may risk your users' security. -; Use this option with caution. -; - User may send URL contains active session ID -; to other person via. email/irc/etc. -; - URL that contains active session ID may be stored -; in publicly accessible computer. -; - User may access your site with the same session ID -; always using URL stored in browser's history or bookmarks. -; http://php.net/session.use-trans-sid -session.use_trans_sid = 0 - -; Set session ID character length. This value could be between 22 to 256. -; Shorter length than default is supported only for compatibility reason. -; Users should use 32 or more chars. -; http://php.net/session.sid-length -; Default Value: 32 -; Development Value: 26 -; Production Value: 26 -session.sid_length = 26 - -; The URL rewriter will look for URLs in a defined set of HTML tags. -; is special; if you include them here, the rewriter will -; add a hidden field with the info which is otherwise appended -; to URLs. tag's action attribute URL will not be modified -; unless it is specified. -; Note that all valid entries require a "=", even if no value follows. -; Default Value: "a=href,area=href,frame=src,form=" -; Development Value: "a=href,area=href,frame=src,form=" -; Production Value: "a=href,area=href,frame=src,form=" -; http://php.net/url-rewriter.tags -session.trans_sid_tags = "a=href,area=href,frame=src,form=" - -; URL rewriter does not rewrite absolute URLs by default. -; To enable rewrites for absolute pathes, target hosts must be specified -; at RUNTIME. i.e. use ini_set() -; tags is special. PHP will check action attribute's URL regardless -; of session.trans_sid_tags setting. -; If no host is defined, HTTP_HOST will be used for allowed host. -; Example value: php.net,www.php.net,wiki.php.net -; Use "," for multiple hosts. No spaces are allowed. -; Default Value: "" -; Development Value: "" -; Production Value: "" -;session.trans_sid_hosts="" - -; Define how many bits are stored in each character when converting -; the binary hash data to something readable. -; Possible values: -; 4 (4 bits: 0-9, a-f) -; 5 (5 bits: 0-9, a-v) -; 6 (6 bits: 0-9, a-z, A-Z, "-", ",") -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 -; http://php.net/session.hash-bits-per-character -session.sid_bits_per_character = 5 - -; Enable upload progress tracking in $_SESSION -; Default Value: On -; Development Value: On -; Production Value: On -; http://php.net/session.upload-progress.enabled -;session.upload_progress.enabled = On - -; Cleanup the progress information as soon as all POST data has been read -; (i.e. upload completed). -; Default Value: On -; Development Value: On -; Production Value: On -; http://php.net/session.upload-progress.cleanup -;session.upload_progress.cleanup = On - -; A prefix used for the upload progress key in $_SESSION -; Default Value: "upload_progress_" -; Development Value: "upload_progress_" -; Production Value: "upload_progress_" -; http://php.net/session.upload-progress.prefix -;session.upload_progress.prefix = "upload_progress_" - -; The index name (concatenated with the prefix) in $_SESSION -; containing the upload progress information -; Default Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Development Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Production Value: "PHP_SESSION_UPLOAD_PROGRESS" -; http://php.net/session.upload-progress.name -;session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS" - -; How frequently the upload progress should be updated. -; Given either in percentages (per-file), or in bytes -; Default Value: "1%" -; Development Value: "1%" -; Production Value: "1%" -; http://php.net/session.upload-progress.freq -;session.upload_progress.freq = "1%" - -; The minimum delay between updates, in seconds -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; http://php.net/session.upload-progress.min-freq -;session.upload_progress.min_freq = "1" - -; Only write session data when session data is changed. Enabled by default. -; http://php.net/session.lazy-write -;session.lazy_write = On - -[Assertion] -; Switch whether to compile assertions at all (to have no overhead at run-time) -; -1: Do not compile at all -; 0: Jump over assertion at run-time -; 1: Execute assertions -; Changing from or to a negative value is only possible in php.ini! (For turning assertions on and off at run-time, see assert.active, when zend.assertions = 1) -; Default Value: 1 -; Development Value: 1 -; Production Value: -1 -; http://php.net/zend.assertions -zend.assertions = -1 - -; Assert(expr); active by default. -; http://php.net/assert.active -;assert.active = On - -; Throw an AssertationException on failed assertions -; http://php.net/assert.exception -;assert.exception = On - -; Issue a PHP warning for each failed assertion. (Overridden by assert.exception if active) -; http://php.net/assert.warning -;assert.warning = On - -; Don't bail out by default. -; http://php.net/assert.bail -;assert.bail = Off - -; User-function to be called if an assertion fails. -; http://php.net/assert.callback -;assert.callback = 0 - -; Eval the expression with current error_reporting(). Set to true if you want -; error_reporting(0) around the eval(). -; http://php.net/assert.quiet-eval -;assert.quiet_eval = 0 - -[COM] -; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs -; http://php.net/com.typelib-file -;com.typelib_file = - -; allow Distributed-COM calls -; http://php.net/com.allow-dcom -;com.allow_dcom = true - -; autoregister constants of a components typlib on com_load() -; http://php.net/com.autoregister-typelib -;com.autoregister_typelib = true - -; register constants casesensitive -; http://php.net/com.autoregister-casesensitive -;com.autoregister_casesensitive = false - -; show warnings on duplicate constant registrations -; http://php.net/com.autoregister-verbose -;com.autoregister_verbose = true - -; The default character set code-page to use when passing strings to and from COM objects. -; Default: system ANSI code page -;com.code_page= - -[mbstring] -; language for internal character representation. -; This affects mb_send_mail() and mbstring.detect_order. -; http://php.net/mbstring.language -;mbstring.language = Japanese - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; internal/script encoding. -; Some encoding cannot work as internal encoding. (e.g. SJIS, BIG5, ISO-2022-*) -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;mbstring.internal_encoding = - -; Use of this INI entry is deprecated, use global input_encoding instead. -; http input encoding. -; mbstring.encoding_traslation = On is needed to use this setting. -; If empty, default_charset or input_encoding or mbstring.input is used. -; The precedence is: default_charset < intput_encoding < mbsting.http_input -; http://php.net/mbstring.http-input -;mbstring.http_input = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; http output encoding. -; mb_output_handler must be registered as output buffer to function. -; If empty, default_charset or output_encoding or mbstring.http_output is used. -; The precedence is: default_charset < output_encoding < mbstring.http_output -; To use an output encoding conversion, mbstring's output handler must be set -; otherwise output encoding conversion cannot be performed. -; http://php.net/mbstring.http-output -;mbstring.http_output = - -; enable automatic encoding translation according to -; mbstring.internal_encoding setting. Input chars are -; converted to internal encoding by setting this to On. -; Note: Do _not_ use automatic encoding translation for -; portable libs/applications. -; http://php.net/mbstring.encoding-translation -;mbstring.encoding_translation = Off - -; automatic encoding detection order. -; "auto" detect order is changed according to mbstring.language -; http://php.net/mbstring.detect-order -;mbstring.detect_order = auto - -; substitute_character used when character cannot be converted -; one from another -; http://php.net/mbstring.substitute-character -;mbstring.substitute_character = none - -; overload(replace) single byte functions by mbstring functions. -; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(), -; etc. Possible values are 0,1,2,4 or combination of them. -; For example, 7 for overload everything. -; 0: No overload -; 1: Overload mail() function -; 2: Overload str*() functions -; 4: Overload ereg*() functions -; http://php.net/mbstring.func-overload -;mbstring.func_overload = 0 - -; enable strict encoding detection. -; Default: Off -;mbstring.strict_detection = On - -; This directive specifies the regex pattern of content types for which mb_output_handler() -; is activated. -; Default: mbstring.http_output_conv_mimetype=^(text/|application/xhtml\+xml) -;mbstring.http_output_conv_mimetype= - -[gd] -; Tell the jpeg decode to ignore warnings and try to create -; a gd image. The warning will then be displayed as notices -; disabled by default -; http://php.net/gd.jpeg-ignore-warning -;gd.jpeg_ignore_warning = 1 - -[exif] -; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS. -; With mbstring support this will automatically be converted into the encoding -; given by corresponding encode setting. When empty mbstring.internal_encoding -; is used. For the decode settings you can distinguish between motorola and -; intel byte order. A decode setting cannot be empty. -; http://php.net/exif.encode-unicode -;exif.encode_unicode = ISO-8859-15 - -; http://php.net/exif.decode-unicode-motorola -;exif.decode_unicode_motorola = UCS-2BE - -; http://php.net/exif.decode-unicode-intel -;exif.decode_unicode_intel = UCS-2LE - -; http://php.net/exif.encode-jis -;exif.encode_jis = - -; http://php.net/exif.decode-jis-motorola -;exif.decode_jis_motorola = JIS - -; http://php.net/exif.decode-jis-intel -;exif.decode_jis_intel = JIS - -[Tidy] -; The path to a default tidy configuration file to use when using tidy -; http://php.net/tidy.default-config -;tidy.default_config = /usr/local/lib/php/default.tcfg - -; Should tidy clean and repair output automatically? -; WARNING: Do not use this option if you are generating non-html content -; such as dynamic images -; http://php.net/tidy.clean-output -tidy.clean_output = Off - -[soap] -; Enables or disables WSDL caching feature. -; http://php.net/soap.wsdl-cache-enabled -soap.wsdl_cache_enabled=1 - -; Sets the directory name where SOAP extension will put cache files. -; http://php.net/soap.wsdl-cache-dir -soap.wsdl_cache_dir="/tmp" - -; (time to live) Sets the number of second while cached file will be used -; instead of original one. -; http://php.net/soap.wsdl-cache-ttl -soap.wsdl_cache_ttl=86400 - -; Sets the size of the cache limit. (Max. number of WSDL files to cache) -soap.wsdl_cache_limit = 5 - -[sysvshm] -; A default size of the shared memory segment -;sysvshm.init_mem = 10000 - -[ldap] -; Sets the maximum number of open links or -1 for unlimited. -ldap.max_links = -1 - -[dba] -;dba.default_handler= - -[opcache] -; Determines if Zend OPCache is enabled -;opcache.enable=1 - -; Determines if Zend OPCache is enabled for the CLI version of PHP -;opcache.enable_cli=1 - -; The OPcache shared memory storage size. -;opcache.memory_consumption=128 - -; The amount of memory for interned strings in Mbytes. -;opcache.interned_strings_buffer=8 - -; The maximum number of keys (scripts) in the OPcache hash table. -; Only numbers between 200 and 1000000 are allowed. -;opcache.max_accelerated_files=10000 - -; The maximum percentage of "wasted" memory until a restart is scheduled. -;opcache.max_wasted_percentage=5 - -; When this directive is enabled, the OPcache appends the current working -; directory to the script key, thus eliminating possible collisions between -; files with the same name (basename). Disabling the directive improves -; performance, but may break existing applications. -;opcache.use_cwd=1 - -; When disabled, you must reset the OPcache manually or restart the -; webserver for changes to the filesystem to take effect. -;opcache.validate_timestamps=1 - -; How often (in seconds) to check file timestamps for changes to the shared -; memory storage allocation. ("1" means validate once per second, but only -; once per request. "0" means always validate) -;opcache.revalidate_freq=2 - -; Enables or disables file search in include_path optimization -;opcache.revalidate_path=0 - -; If disabled, all PHPDoc comments are dropped from the code to reduce the -; size of the optimized code. -;opcache.save_comments=1 - -; If enabled, a fast shutdown sequence is used for the accelerated code -; Depending on the used Memory Manager this may cause some incompatibilities. -;opcache.fast_shutdown=0 - -; Allow file existence override (file_exists, etc.) performance feature. -;opcache.enable_file_override=0 - -; A bitmask, where each bit enables or disables the appropriate OPcache -; passes -;opcache.optimization_level=0xffffffff - -;opcache.inherited_hack=1 -;opcache.dups_fix=0 - -; The location of the OPcache blacklist file (wildcards allowed). -; Each OPcache blacklist file is a text file that holds the names of files -; that should not be accelerated. The file format is to add each filename -; to a new line. The filename may be a full path or just a file prefix -; (i.e., /var/www/x blacklists all the files and directories in /var/www -; that start with 'x'). Line starting with a ; are ignored (comments). -;opcache.blacklist_filename= - -; Allows exclusion of large files from being cached. By default all files -; are cached. -;opcache.max_file_size=0 - -; Check the cache checksum each N requests. -; The default value of "0" means that the checks are disabled. -;opcache.consistency_checks=0 - -; How long to wait (in seconds) for a scheduled restart to begin if the cache -; is not being accessed. -;opcache.force_restart_timeout=180 - -; OPcache error_log file name. Empty string assumes "stderr". -;opcache.error_log= - -; All OPcache errors go to the Web server log. -; By default, only fatal errors (level 0) or errors (level 1) are logged. -; You can also enable warnings (level 2), info messages (level 3) or -; debug messages (level 4). -;opcache.log_verbosity_level=1 - -; Preferred Shared Memory back-end. Leave empty and let the system decide. -;opcache.preferred_memory_model= - -; Protect the shared memory from unexpected writing during script execution. -; Useful for internal debugging only. -;opcache.protect_memory=0 - -; Allows calling OPcache API functions only from PHP scripts which path is -; started from specified string. The default "" means no restriction -;opcache.restrict_api= - -; Mapping base of shared memory segments (for Windows only). All the PHP -; processes have to map shared memory into the same address space. This -; directive allows to manually fix the "Unable to reattach to base address" -; errors. -;opcache.mmap_base= - -; Enables and sets the second level cache directory. -; It should improve performance when SHM memory is full, at server restart or -; SHM reset. The default "" disables file based caching. -;opcache.file_cache= - -; Enables or disables opcode caching in shared memory. -;opcache.file_cache_only=0 - -; Enables or disables checksum validation when script loaded from file cache. -;opcache.file_cache_consistency_checks=1 - -; Implies opcache.file_cache_only=1 for a certain process that failed to -; reattach to the shared memory (for Windows only). Explicitly enabled file -; cache is required. -;opcache.file_cache_fallback=1 - -; Enables or disables copying of PHP code (text segment) into HUGE PAGES. -; This should improve performance, but requires appropriate OS configuration. -;opcache.huge_code_pages=1 - -; Validate cached file permissions. -;opcache.validate_permission=0 - -; Prevent name collisions in chroot'ed environment. -;opcache.validate_root=0 - -[curl] -; A default value for the CURLOPT_CAINFO option. This is required to be an -; absolute path. -;curl.cainfo = - -[openssl] -; The location of a Certificate Authority (CA) file on the local filesystem -; to use when verifying the identity of SSL/TLS peers. Most users should -; not specify a value for this directive as PHP will attempt to use the -; OS-managed cert stores in its absence. If specified, this value may still -; be overridden on a per-stream basis via the "cafile" SSL stream context -; option. -;openssl.cafile= - -; If openssl.cafile is not specified or if the CA file is not found, the -; directory pointed to by openssl.capath is searched for a suitable -; certificate. This value must be a correctly hashed certificate directory. -; Most users should not specify a value for this directive as PHP will -; attempt to use the OS-managed cert stores in its absence. If specified, -; this value may still be overridden on a per-stream basis via the "capath" -; SSL stream context option. -;openssl.capath= - -; Local Variables: -; tab-width: 4 -; End: - -[XDebug] -xdebug.remote_enable = 1 -xdebug.remote_handler = "dbgp" -; Set to host.docker.internal on Mac and Windows, otherwise, set to host real ip -xdebug.remote_host = host.docker.internal -;xdebug.remote_port = 9000 -xdebug.remote_log = /var/log/php/xdebug.log - -SERVER_ENV=develop - -yaf.use_spl_autoload=1 - -[xhprof] -;xhprof.output_dir = /var/log/php/xhprof.log \ No newline at end of file diff --git a/php8/8.3.20/data.yml b/php8/8.3.20/data.yml deleted file mode 100755 index deeede5ad..000000000 --- a/php8/8.3.20/data.yml +++ /dev/null @@ -1,18 +0,0 @@ -additionalProperties: - formFields: - - default: 9000 - envKey: PANEL_APP_PORT_HTTP - labelEn: PHP-FPM Port - labelZh: PHP-FPM 端口 - label: - en: PHP-FPM Port - ja: PHP-FPM ポート - ms: Port PHP-FPM - pt-br: Porta PHP-FPM - ru: Порт PHP-FPM - ko: PHP-FPM 포트 - zh-Hant: PHP-FPM 埠 - zh: PHP-FPM 端口 - required: true - rule: paramPort - type: number diff --git a/php8/8.3.20/docker-compose.yml b/php8/8.3.20/docker-compose.yml deleted file mode 100644 index dc530c778..000000000 --- a/php8/8.3.20/docker-compose.yml +++ /dev/null @@ -1,21 +0,0 @@ -services: - php: - image: ${IMAGE_NAME} - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - volumes: - - ${PANEL_WEBSITE_DIR}:/www/ - - ./conf/php.ini:/usr/local/etc/php/php.ini - - ./conf/php-fpm.conf:/usr/local/etc/php-fpm.d/www.conf - - ./log:/var/log/php - - ./composer:/tmp/composer - - ./extensions:/php/extensions - ports: - - 127.0.0.1:${PANEL_APP_PORT_HTTP}:9000 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/php8/8.4.6/build/.env b/php8/8.4.6/build/.env deleted file mode 100644 index 5e641e3ce..000000000 --- a/php8/8.4.6/build/.env +++ /dev/null @@ -1,14 +0,0 @@ -CONTAINER_PACKAGE_URL=mirrors.ustc.edu.cn - -PHP_VERSION=8.4.6 -PHP_PHP_CONF_FILE=./php/php.ini -PHP_FPM_CONF_FILE=./php/php-fpm.conf -PHP_LOG_DIR=./logs/php -PHP_EXTENSIONS= - -SOURCE_DIR=./www - -TZ=Asia/Shanghai -DATA_DIR=./data -IMAGE_NAME=1panel-php:8.4.6 -INSTALL_SUPERVISOR=0 \ No newline at end of file diff --git a/php8/8.4.6/build/config.json b/php8/8.4.6/build/config.json deleted file mode 100644 index 28ee3c56b..000000000 --- a/php8/8.4.6/build/config.json +++ /dev/null @@ -1,134 +0,0 @@ -{ - "formFields": [ - { - "type": "select", - "multiple": true, - "labelZh": "扩展", - "labelEn": "Extensions", - "default": ["mysqli","pdo_mysql"], - "values": [ - { - "label": "opcache", - "value": "opcache" - }, - { - "label": "memcached", - "value": "memcached" - }, - { - "label": "memcache", - "value": "memcache" - }, - { - "label": "redis", - "value": "redis" - }, - { - "label": "mcrypt", - "value": "mcrypt" - }, - { - "label": "xdebug", - "value": "xdebug" - }, - { - "label": "imap", - "value": "imap" - }, - { - "label": "exif", - "value": "exif" - }, - { - "label": "intl", - "value": "intl" - }, - { - "label": "swoole", - "value": "swoole" - }, - { - "label": "yaf", - "value": "yaf" - }, - { - "label": "pgsql", - "value": "pgsql" - }, - { - "label": "pdo_pgsql", - "value": "pdo_pgsql" - }, - { - "label": "snmp", - "value": "snmp" - }, { - "label": "ldap", - "value": "ldap" - }, - { - "label": "pspell", - "value": "pspell" - }, - { - "label": "bz2", - "value": "bz2" - }, - { - "label": "sysvshm", - "value": "sysvshm" - }, - { - "label": "calendar", - "value": "calendar" - }, - { - "label": "gmp", - "value": "gmp" - }, - { - "label": "sysvmsg", - "value": "sysvmsg" - }, - { - "label": "igbinary", - "value": "igbinary" - }, - { - "label": "mysqli", - "value": "mysqli" - }, - { - "label": "pdo_mysql", - "value": "pdo_mysql" - }, - { - "label": "mbstring", - "value": "mbstring" - }, - { - "label": "gd", - "value": "gd" - }, - { - "label": "ioncube_loader", - "value": "ioncube_loader" - }, - { - "label": "curl", - "value": "curl" - }, - { - "label": "sg15", - "value": "sourceguardian" - }, - { - "label": "imagick", - "value": "imagick" - } - ], - "envKey": "PHP_EXTENSIONS", - "edit": true - } - ] -} \ No newline at end of file diff --git a/php8/8.4.6/build/docker-compose.yml b/php8/8.4.6/build/docker-compose.yml deleted file mode 100644 index 21e9fa737..000000000 --- a/php8/8.4.6/build/docker-compose.yml +++ /dev/null @@ -1,19 +0,0 @@ -services: - 1panel-php: - build: - context: ./php - args: - PHP_IMAGE: php:${PHP_VERSION}-fpm-alpine - CONTAINER_PACKAGE_URL: ${CONTAINER_PACKAGE_URL} - PHP_EXTENSIONS: ${PHP_EXTENSIONS} - TZ: ${TZ} - image: ${IMAGE_NAME} - volumes: - - ${SOURCE_DIR}:/www/ - - ${PHP_PHP_CONF_FILE}:/usr/local/etc/php/php.ini - - ${PHP_FPM_CONF_FILE}:/usr/local/etc/php-fpm.d/www.conf - - ${PHP_LOG_DIR}:/var/log/php - - ${DATA_DIR}/composer:/tmp/composer - restart: always - cap_add: - - SYS_PTRACE diff --git a/php8/8.4.6/build/php/Dockerfile b/php8/8.4.6/build/php/Dockerfile deleted file mode 100644 index e0e0cb64c..000000000 --- a/php8/8.4.6/build/php/Dockerfile +++ /dev/null @@ -1,39 +0,0 @@ -ARG PHP_IMAGE -FROM ${PHP_IMAGE} - -ARG TZ -ARG PHP_EXTENSIONS -ARG CONTAINER_PACKAGE_URL - - -RUN if [ $CONTAINER_PACKAGE_URL ] ; then sed -i "s/dl-cdn.alpinelinux.org/${CONTAINER_PACKAGE_URL}/g" /etc/apk/repositories ; fi - -ADD ./extensions/install-php-extensions /usr/local/bin/ -RUN chmod uga+x /usr/local/bin/install-php-extensions - -COPY ./extensions /tmp/extensions -WORKDIR /tmp/extensions -RUN chmod +x install.sh \ - && sh install.sh \ - && rm -rf /tmp/extensions - - -RUN apk --no-cache add tzdata \ - && cp "/usr/share/zoneinfo/$TZ" /etc/localtime \ - && echo "$TZ" > /etc/timezone - -# Fix: https://github.com/docker-library/php/issues/240 -RUN apk add gnu-libiconv libstdc++ --no-cache --repository http://${CONTAINER_PACKAGE_URL}/alpine/edge/community/ --allow-untrusted -ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so php - - -# Install composer and change it's cache home -RUN curl -o /usr/bin/composer https://mirrors.aliyun.com/composer/composer.phar \ - && chmod +x /usr/bin/composer -ENV COMPOSER_HOME=/tmp/composer - -# php image's www-data user uid & gid are 82, change them to 1000 (primary user) -RUN apk --no-cache add shadow && usermod -u 1000 www-data && groupmod -g 1000 www-data - - -WORKDIR /www \ No newline at end of file diff --git a/php8/8.4.6/build/php/extensions/event-3.0.8.tgz b/php8/8.4.6/build/php/extensions/event-3.0.8.tgz deleted file mode 100644 index e7a471bbe..000000000 Binary files a/php8/8.4.6/build/php/extensions/event-3.0.8.tgz and /dev/null differ diff --git a/php8/8.4.6/build/php/extensions/install-composer.sh b/php8/8.4.6/build/php/extensions/install-composer.sh deleted file mode 100644 index 34074732d..000000000 --- a/php8/8.4.6/build/php/extensions/install-composer.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/sh - -# The latest mirror's composer version only support for PHP 7.2.5 -# And if your PHP version is lesser than that, will be download supported version. -supportLatest=$(php -r "echo version_compare(PHP_VERSION, '7.2.5', '>');") - -if [ "$supportLatest" -eq "1" ]; then - curl -o /usr/bin/composer https://mirrors.aliyun.com/composer/composer.phar \ - && chmod +x /usr/bin/composer -else - curl -o /tmp/composer-setup.php https://getcomposer.org/installer \ - && php /tmp/composer-setup.php --install-dir=/tmp \ - && mv /tmp/composer.phar /usr/bin/composer \ - && chmod +x /usr/bin/composer \ - && rm -rf /tmp/composer-setup.php -fi \ No newline at end of file diff --git a/php8/8.4.6/build/php/extensions/install-php-extensions b/php8/8.4.6/build/php/extensions/install-php-extensions deleted file mode 100644 index ffe08e487..000000000 --- a/php8/8.4.6/build/php/extensions/install-php-extensions +++ /dev/null @@ -1,5156 +0,0 @@ -#!/bin/sh - -# This script wraps docker-php-ext-install, properly configuring the system. -# -# Copyright (c) Michele Locati, 2018-2023 -# -# Source: https://github.com/mlocati/docker-php-extension-installer -# -# License: MIT - see https://github.com/mlocati/docker-php-extension-installer/blob/master/LICENSE - -# Let's set a sane environment -set -o errexit -set -o nounset - -if test "${IPE_DEBUG:-}" = "1"; then - set -x -fi - -if ! which docker-php-ext-configure >/dev/null || ! which docker-php-ext-enable >/dev/null || ! which docker-php-ext-install >/dev/null || ! which docker-php-source >/dev/null; then - printf 'The script %s is meant to be used with official Docker PHP Images - https://hub.docker.com/_/php\n' "$0" >&2 - exit 1 -fi - -IPE_VERSION=2.7.31 - -StandWithUkraine() { - if test -t 1 && ! grep -Eq '^VERSION=.*jessie' /etc/os-release; then - printf '\e[37;44m#StandWith\e[30;43mUkraine\e[0m\n' - else - printf '#StandWithUkraine\n' - fi -} - -if test "$IPE_VERSION" = master && test "${CI:-}" != true; then - cat <&2 - exit 1 - fi - DISTRO="$(cat /etc/os-release | grep -E ^ID= | cut -d = -f 2)" - DISTRO_VERSION_NUMBER="$(cat /etc/os-release | grep -E ^VERSION_ID= | cut -d = -f 2 | cut -d '"' -f 2 | cut -d . -f 1,2)" - DISTRO_VERSION="$(printf '%s@%s' $DISTRO $DISTRO_VERSION_NUMBER)" - DISTRO_MAJMIN_VERSION="$(echo "$DISTRO_VERSION_NUMBER" | awk -F. '{print $1*100+$2}')" -} - -# Set: -# - PHP_MAJMIN_VERSION: Major-Minor version, format MMmm (example 800 for PHP 8.0.1) -# - PHP_MAJDOTMIN_VERSION: Major-Minor version, format M.m (example 8.0 for PHP 8.0.1) -# - PHP_MAJMINPAT_VERSION: Major-Minor-Patch version, format MMmmpp (example 80001 for PHP 8.0.1) variables containing integers value -# - PHP_MAJDOTMINDOTPAT_VERSION: Major-Minor-Patch version, format M.m.p (example 8.0.1 for PHP 8.0.1) -# - PHP_THREADSAFE: 1 if PHP is thread-safe (TS), 0 if not thread-safe (NTS) -# - PHP_DEBUGBUILD: 1 if PHP is debug build (configured with "--enable-debug"), 0 otherwise -# - PHP_BITS: 32 if PHP is compiled for 32-bit, 64 if 64-bit -# - PHP_EXTDIR: the absolute path where the PHP extensions reside -setPHPVersionVariables() { - PHP_MAJDOTMINDOTPAT_VERSION="$(php-config --version)" - PHP_MAJMIN_VERSION=$(printf '%s' "$PHP_MAJDOTMINDOTPAT_VERSION" | awk -F. '{print $1*100+$2}') - PHP_MAJDOTMIN_VERSION=$(printf '%s' "$PHP_MAJDOTMINDOTPAT_VERSION" | cut -d. -f1-2) - PHP_MAJMINPAT_VERSION=$(printf '%s' "$PHP_MAJDOTMINDOTPAT_VERSION" | awk -F. '{print $1*10000+$2*100+$3}') - PHP_THREADSAFE=$(php -n -r 'echo ZEND_THREAD_SAFE ? 1 : 0;') - PHP_DEBUGBUILD=$(php -n -r 'echo ZEND_DEBUG_BUILD ? 1 : 0;') - PHP_BITS=$(php -n -r 'echo PHP_INT_SIZE * 8;') - PHP_EXTDIR="$(php -d display_errors=stderr -r 'echo realpath(ini_get("extension_dir"));')" -} - -# Fix apt-get being very slow on Debian Jessie -# See https://bugs.launchpad.net/ubuntu/+source/apt/+bug/1332440 -fixMaxOpenFiles() { - fixMaxOpenFiles_cur=$(ulimit -n 2>/dev/null || echo 0) - if test "$fixMaxOpenFiles_cur" -gt 10000; then - ulimit -n 10000 - fi -} - -# Get the directory containing the compiled PHP extensions -# -# Output: -# The absolute path of the extensions dir -getPHPExtensionsDir() { - php -i | grep -E '^extension_dir' | head -n1 | tr -s '[:space:]*=>[:space:]*' '|' | cut -d'|' -f2 -} - -# Normalize the name of a PHP extension -# -# Arguments: -# $1: the name of the module to be normalized -# -# Output: -# The normalized module name -normalizePHPModuleName() { - normalizePHPModuleName_name="$1" - case "$normalizePHPModuleName_name" in - *A* | *B* | *C* | *D* | *E* | *F* | *G* | *H* | *I* | *J* | *K* | *L* | *M* | *N* | *O* | *P* | *Q* | *R* | *S* | *T* | *U* | *V* | *W* | *X* | *Y* | *Z*) - normalizePHPModuleName_name="$(LC_CTYPE=C printf '%s' "$normalizePHPModuleName_name" | tr '[:upper:]' '[:lower:]')" - ;; - esac - case "$normalizePHPModuleName_name" in - datadog_trace) - normalizePHPModuleName_name=ddtrace - ;; - ioncube | ioncube\ loader) - normalizePHPModuleName_name='ioncube_loader' - ;; - pecl_http) - normalizePHPModuleName_name='http' - ;; - zend\ opcache) - normalizePHPModuleName_name='opcache' - ;; - libsodium) - if test $PHP_MAJMIN_VERSION -ge 700; then - normalizePHPModuleName_name='sodium' - fi - ;; - sodium) - if test $PHP_MAJMIN_VERSION -lt 700; then - normalizePHPModuleName_name='libsodium' - fi - ;; - *\ *) - printf '### WARNING Unrecognized module name: %s ###\n' "$1" >&2 - ;; - esac - printf '%s' "$normalizePHPModuleName_name" -} - -# Get the PECL name of PHP extension -# -# Arguments: -# $1: the name of the extension -# -# Output: -# The PECL name of the extension -getPeclModuleName() { - normalizePHPModuleName_name="$1" - case "$normalizePHPModuleName_name" in - ddtrace) - normalizePHPModuleName_name=datadog_trace - ;; - http) - normalizePHPModuleName_name=pecl_http - ;; - sodium) - normalizePHPModuleName_name=libsodium - ;; - esac - printf '%s' "$normalizePHPModuleName_name" -} - -# Parse a package.xml (or package2.xml) file and extract the module name and version -# -# Arguments: -# $1: the patho to the XML file -# -# Set these variables: -# - EXTRACTPACKAGEVERSIONFROMXML_NAME -# - EXTRACTPACKAGEVERSIONFROMXML_VERSION -# -# Output: -# Nothing -# -# Return: -# 0 (true): if the string is in the list -# 1 (false): if the string is not in the list -extractPackageVersionFromXML() { - if ! test -f "$1"; then - printf 'Unable to find the file\n%s\n' >&2 - return 1 - fi - extractPackageVersionFromXML_code="$( - cat <<'EOT' -$doc = new DOMDocument(); -if (!$doc->load($argv[1])) { - fwrite(STDERR, "Failed to load XML file\n"); - exit(1); -} -set_error_handler( - static function($errno, $errstr) { - fwrite(STDERR, trim((string) $errstr) . "\n"); - exit(1); - }, - -1 -); -$xpath = new DOMXpath($doc); -$xpath->registerNamespace('v20', 'http://pear.php.net/dtd/package-2.0'); -$xpath->registerNamespace('v21', 'http://pear.php.net/dtd/package-2.1'); -if ($xpath->query('/v20:package/v20:dependencies')->length === 1) { - $ns = 'v20:'; -} elseif ($xpath->query('/v21:package/v21:dependencies')->length === 1) { - $ns = 'v21:'; -} elseif ($xpath->query('/package')->length === 1) { - $ns = ''; -} else { - fwrite(STDERR, "Unsupported namespace of the XML of package version details\n"); -} -$nodes = $xpath->query("/{$ns}package/{$ns}name"); -$name = trim((string) $nodes[0]->nodeValue); -if ($ns === '') { - $nodes = $xpath->query("/{$ns}package/{$ns}version"); -} else { - $nodes = $xpath->query("/{$ns}package/{$ns}version/{$ns}release"); -} -$version = trim((string) $nodes[0]->nodeValue); -echo "EXTRACTPACKAGEVERSIONFROMXML_NAME='{$name}'\n"; -echo "EXTRACTPACKAGEVERSIONFROMXML_VERSION='{$version}'\n"; -exit(0); -EOT - )" - extractPackageVersionFromXML_vars="$(php -n -d display_errors=stderr -r "$extractPackageVersionFromXML_code" "$1")" - if test -z "$extractPackageVersionFromXML_vars"; then - return 1 - fi - eval "$extractPackageVersionFromXML_vars" - return 0 -} - -# Parse a module name (and optionally version) as received via command arguments, extracting the version and normalizing it -# Examples: -# xdebug-2.9.8 -# xdebug-^2 -# xdebug-^2.9 -# -# Arguments: -# $1: the name of the module to be normalized -# -# Set these variables: -# - PROCESSED_PHP_MODULE_ARGUMENT -# -# Optionally set these variables: -# - PHP_WANTEDMODULEVERSION_<...> (where <...> is the normalized module name) -# - PHP_MODULESOURCECODEPATH_<...> (where <...> is the normalized module name) -# -# Output: -# Nothing -processPHPModuleArgument() { - processPHPModuleArgument_arg="$1" - # Convert GitHub short form to long url, - # for example: from - # php-memcached-dev/php-memcached@8f106564e6bb005ca6100b12ccc89000daafa9d8 - # to - # https://codeload.github.com/php-memcached-dev/php-memcached/tar.gz/8f106564e6bb005ca6100b12ccc89000daafa9d8 - processPHPModuleArgument_arg="$(printf '%s' "$processPHPModuleArgument_arg" | sed -E 's/^([a-zA-Z0-9_.\-]+\/[a-zA-Z0-9_.\-]+)@(.+$)/https:\/\/codeload.github.com\/\1\/tar.gz\/\2/')" - # Let's check if $processPHPModuleArgument_arg is an URL - if printf '%s' "$processPHPModuleArgument_arg" | grep -Eq '^https?://[^ ]+/[^ ]+$'; then - printf 'Downloading source from %s\n' "$processPHPModuleArgument_arg" - processPHPModuleArgument_arg="$(getPackageSource "$processPHPModuleArgument_arg")" - fi - # Let's check if $processPHPModuleArgument_arg the absolute path of an existing directory - if test "$processPHPModuleArgument_arg" != "${processPHPModuleArgument_arg#/}" && test -d "$processPHPModuleArgument_arg"; then - if test -f "$processPHPModuleArgument_arg/package2.xml"; then - printf 'Checking package2.xml of directory %s... ' "$processPHPModuleArgument_arg" - if ! extractPackageVersionFromXML "$processPHPModuleArgument_arg/package2.xml"; then - return 1 - fi - elif test -f "$processPHPModuleArgument_arg/package.xml"; then - printf 'Checking package.xml of directory %s... ' "$processPHPModuleArgument_arg" - if ! extractPackageVersionFromXML "$processPHPModuleArgument_arg/package.xml"; then - return 1 - fi - else - printf 'Unable to find the package.xml file in the directory\n%s\n' "$processPHPModuleArgument_arg" - return 1 - fi - printf 'good (name: %s, version: %s)\n' "$EXTRACTPACKAGEVERSIONFROMXML_NAME" "$EXTRACTPACKAGEVERSIONFROMXML_VERSION" - PROCESSED_PHP_MODULE_ARGUMENT="$(normalizePHPModuleName "$EXTRACTPACKAGEVERSIONFROMXML_NAME")" - processPHPModuleArgument_version="$EXTRACTPACKAGEVERSIONFROMXML_VERSION" - if printf '%s' "$PROCESSED_PHP_MODULE_ARGUMENT" | grep -Eq '^[a-zA-Z0-9_]+$'; then - eval PHP_MODULESOURCECODEPATH_$PROCESSED_PHP_MODULE_ARGUMENT="$processPHPModuleArgument_arg" - else - printf 'Unable to parse the following module name:\n%s\n' "$PROCESSED_PHP_MODULE_ARGUMENT" >&2 - exit 1 - fi - else - PROCESSED_PHP_MODULE_ARGUMENT="${processPHPModuleArgument_arg%%-*}" - if test -n "$PROCESSED_PHP_MODULE_ARGUMENT" && test "$PROCESSED_PHP_MODULE_ARGUMENT" != "$processPHPModuleArgument_arg"; then - processPHPModuleArgument_version="${processPHPModuleArgument_arg#*-}" - else - processPHPModuleArgument_version='' - fi - PROCESSED_PHP_MODULE_ARGUMENT="$(normalizePHPModuleName "$PROCESSED_PHP_MODULE_ARGUMENT")" - fi - if test -n "$processPHPModuleArgument_version"; then - if printf '%s' "$PROCESSED_PHP_MODULE_ARGUMENT" | grep -Eq '^[a-zA-Z0-9_]+$'; then - eval PHP_WANTEDMODULEVERSION_$PROCESSED_PHP_MODULE_ARGUMENT="$processPHPModuleArgument_version" - elif printf '%s' "$PROCESSED_PHP_MODULE_ARGUMENT" | grep -Eq '^@[a-zA-Z0-9_]+$'; then - eval PHP_WANTEDMODULEVERSION__${PROCESSED_PHP_MODULE_ARGUMENT#@}="$processPHPModuleArgument_version" - else - printf 'Unable to parse the following module name:\n%s\n' "$PROCESSED_PHP_MODULE_ARGUMENT" >&2 - fi - fi -} - -# Get the wanted PHP module version, as specified in the command line arguments. -# -# Arguments: -# $1: the name of the module to be normalized -# -# Output: -# The wanted version (if any) -getWantedPHPModuleVersion() { - if printf '%s' "$1" | grep -Eq '^[a-zA-Z0-9_]+$'; then - eval printf '%s' "\${PHP_WANTEDMODULEVERSION_$1:-}" - elif printf '%s' "$1" | grep -Eq '^@[a-zA-Z0-9_]+$'; then - eval printf '%s' "\${PHP_WANTEDMODULEVERSION__${1#@}:-}" - fi -} - -# Get source code path of a PHP module version, as specified in the command line arguments. -# -# Arguments: -# $1: the name of the module to be normalized -# -# Output: -# The wanted version (if any) -getModuleSourceCodePath() { - if printf '%s' "$1" | grep -Eq '^[a-zA-Z0-9_]+$'; then - eval printf '%s' "\${PHP_MODULESOURCECODEPATH_$1:-}" - fi -} - -# Get the actual PHP module version, resolving it if it starts with '^' -# -# Arguments: -# $1: the name of the module -# $2: the wanted version (optional, if omitted we'll use getWantedPHPModuleVersion) -# -# Output: -# The version to be used -resolvePHPModuleVersion() { - resolvePHPModuleVersion_module="$1" - if test $# -lt 2; then - resolvePHPModuleVersion_raw="$(getWantedPHPModuleVersion "$installRemoteModule_module")" - else - resolvePHPModuleVersion_raw="$2" - fi - resolvePHPModuleVersion_afterCaret="${resolvePHPModuleVersion_raw#^}" - if test "$resolvePHPModuleVersion_raw" = "$resolvePHPModuleVersion_afterCaret"; then - printf '%s' "$resolvePHPModuleVersion_raw" - return - fi - case "$resolvePHPModuleVersion_afterCaret" in - ?*@snapshot | ?*@devel | ?*@alpha | ?*@beta | ?*@stable) - resolvePHPModuleVersion_wantedStability="${resolvePHPModuleVersion_afterCaret##*@}" - resolvePHPModuleVersion_wantedVersion="${resolvePHPModuleVersion_afterCaret%@*}" - ;; - *) - resolvePHPModuleVersion_wantedStability='' - resolvePHPModuleVersion_wantedVersion="$resolvePHPModuleVersion_afterCaret" - ;; - esac - resolvePHPModuleVersion_peclModule="$(getPeclModuleName "$resolvePHPModuleVersion_module")" - resolvePHPModuleVersion_xml="$(curl -sSLf "http://pecl.php.net/rest/r/$resolvePHPModuleVersion_peclModule/allreleases.xml")" - # remove line endings, collapse spaces - resolvePHPModuleVersion_versions="$(printf '%s' "$resolvePHPModuleVersion_xml" | tr -s ' \t\r\n' ' ')" - # one line per release (eg 1.2.3stable) - resolvePHPModuleVersion_versions="$(printf '%s' "$resolvePHPModuleVersion_versions" | sed -r 's#$resolvePHPModuleVersion_wantedStability")" - fi - # remove everything's up to '' (included) - resolvePHPModuleVersion_versions="$(printf '%s' "$resolvePHPModuleVersion_versions" | sed 's#^.*##')" - # keep just the versions - resolvePHPModuleVersion_versions="$(printf '%s' "$resolvePHPModuleVersion_versions" | cut -d'<' -f1)" - resetIFS - for resolvePHPModuleVersion_version in $resolvePHPModuleVersion_versions; do - resolvePHPModuleVersion_suffix="${resolvePHPModuleVersion_version#$resolvePHPModuleVersion_wantedVersion}" - if test "$resolvePHPModuleVersion_version" != "${resolvePHPModuleVersion_version#$resolvePHPModuleVersion_wantedVersion.}"; then - # Example: looking for 1.0, found 1.0.1 - printf '%s' "$resolvePHPModuleVersion_version" - return - fi - done - for resolvePHPModuleVersion_version in $resolvePHPModuleVersion_versions; do - resolvePHPModuleVersion_suffix="${resolvePHPModuleVersion_version#$resolvePHPModuleVersion_wantedVersion}" - if test "$resolvePHPModuleVersion_version" = "$resolvePHPModuleVersion_suffix"; then - continue - fi - if test -z "$resolvePHPModuleVersion_suffix"; then - # Example: looking for 1.0, found exactly it - printf '%s' "$resolvePHPModuleVersion_version" - return - fi - case "$resolvePHPModuleVersion_suffix" in - [0-9]) - # Example: looking for 1.1, but this is 1.10 - ;; - *) - # Example: looking for 1.1, this is 1.1rc1 - printf '%s' "$resolvePHPModuleVersion_version" - return - ;; - esac - done - printf 'Unable to find a version of "%s" compatible with "%s"\nAvailable versions are:\n%s\n' "$resolvePHPModuleVersion_module" "$resolvePHPModuleVersion_raw" "$resolvePHPModuleVersion_versions" >&2 - exit 1 -} - -# Get the actual version of a PECL pmodule, resolving 'latest', 'stable', 'beta', 'alpha', 'devel'. -# -# Arguments: -# $1: the module name as known on the PECL archive -# $2: the version to be resolved -# Output: -# $2 itself if $1 is not 'latest', 'stable', 'beta', 'alpha', or 'devel', the actual version otherwise -resolvePeclStabilityVersion() { - case "$2" in - latest | stable | beta | alpha | devel) ;; - *) - printf '%s' "$2" - return - ;; - esac - resolvePeclStabilityVersion_peclModule="$(getPeclModuleName "$1")" - peclStabilityFlagToVersion_url="http://pecl.php.net/rest/r/$resolvePeclStabilityVersion_peclModule/$2.txt" - if ! peclStabilityFlagToVersion_result="$(curl -sSLf "$peclStabilityFlagToVersion_url")"; then - peclStabilityFlagToVersion_result='' - fi - if test -z "$peclStabilityFlagToVersion_result"; then - printf 'Failed to resolve the PECL package version "%s" of %s from %s\n' "$2" "$1" "$peclStabilityFlagToVersion_url" >&2 - exit 1 - fi - printf '%s' "$peclStabilityFlagToVersion_result" -} - -# Set these variables: -# - PHP_PREINSTALLED_MODULES the normalized list of PHP modules installed before running this script -setPHPPreinstalledModules() { - PHP_PREINSTALLED_MODULES='' - IFS=' -' - for getPHPInstalledModules_module in $(php -m); do - getPHPInstalledModules_moduleNormalized='' - case "$getPHPInstalledModules_module" in - \[PHP\ Modules\]) ;; - \[Zend\ Modules\]) - break - ;; - *) - getPHPInstalledModules_moduleNormalized="$(normalizePHPModuleName "$getPHPInstalledModules_module")" - if ! stringInList "$getPHPInstalledModules_moduleNormalized" "$PHP_PREINSTALLED_MODULES"; then - PHP_PREINSTALLED_MODULES="$PHP_PREINSTALLED_MODULES $getPHPInstalledModules_moduleNormalized" - fi - ;; - esac - done - if command -v composer >/dev/null; then - PHP_PREINSTALLED_MODULES="$PHP_PREINSTALLED_MODULES @composer" - fi - resetIFS - PHP_PREINSTALLED_MODULES="${PHP_PREINSTALLED_MODULES# }" -} - -# Get the handles of the modules to be installed -# -# Arguments: -# $@: all module handles -# -# Set: -# PHP_MODULES_TO_INSTALL -# -# Output: -# Nothing -processCommandArguments() { - processCommandArguments_endArgs=0 - PHP_MODULES_TO_INSTALL='' - # Support deprecated flag IPE_FIX_CACERTS - case "${IPE_FIX_CACERTS:-}" in - 1 | y* | Y*) - PHP_MODULES_TO_INSTALL="$PHP_MODULES_TO_INSTALL @fix_letsencrypt" - ;; - esac - while :; do - if test $# -lt 1; then - break - fi - processCommandArguments_skip=0 - if test $processCommandArguments_endArgs -eq 0; then - case "$1" in - --cleanup) - printf '### WARNING the %s option is deprecated (we always cleanup everything) ###\n' "$1" >&2 - processCommandArguments_skip=1 - ;; - --) - processCommandArguments_skip=1 - processCommandArguments_endArgs=1 - ;; - -*) - printf 'Unrecognized option: %s\n' "$1" >&2 - exit 1 - ;; - esac - fi - if test $processCommandArguments_skip -eq 0; then - processPHPModuleArgument "$1" - processCommandArguments_name="$PROCESSED_PHP_MODULE_ARGUMENT" - if stringInList "$processCommandArguments_name" "$PHP_MODULES_TO_INSTALL"; then - printf '### WARNING Duplicated module name specified: %s ###\n' "$processCommandArguments_name" >&2 - elif stringInList "$processCommandArguments_name" "$PHP_PREINSTALLED_MODULES"; then - printf '### WARNING Module already installed: %s ###\n' "$processCommandArguments_name" >&2 - else - PHP_MODULES_TO_INSTALL="$PHP_MODULES_TO_INSTALL $processCommandArguments_name" - fi - fi - shift - done - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL# }" -} - -# Add a module that's required by another module -# -# Arguments: -# $1: module that requires another module -# $2: the required module -# -# Update: -# PHP_MODULES_TO_INSTALL -# -# Output: -# Nothing -checkRequiredModule() { - if ! stringInList "$1" "$PHP_MODULES_TO_INSTALL"; then - return - fi - if stringInList "$2" "$PHP_PREINSTALLED_MODULES"; then - return - fi - PHP_MODULES_TO_INSTALL="$(removeStringFromList "$1" "$PHP_MODULES_TO_INSTALL")" - if ! stringInList "$2" "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$PHP_MODULES_TO_INSTALL $2" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL# }" - fi - PHP_MODULES_TO_INSTALL="$PHP_MODULES_TO_INSTALL $1" -} - -# Sort the modules to be installed, in order to fix dependencies -# -# Update: -# PHP_MODULES_TO_INSTALL -# -# Output: -# Nothing -sortModulesToInstall() { - # apcu_bc requires apcu - checkRequiredModule 'apcu_bc' 'apcu' - # http requires propro (for PHP < 8) and raphf - if test $PHP_MAJMIN_VERSION -le 704; then - checkRequiredModule 'http' 'propro' - fi - checkRequiredModule 'http' 'raphf' - # event requires sockets (for PHP <= 5.6) - if test $PHP_MAJMIN_VERSION -le 506; then - checkRequiredModule event sockets - fi - # relay requires msgpack - checkRequiredModule relay msgpack - # relay requires igbinary - checkRequiredModule relay igbinary - # pq requires raphf - checkRequiredModule pq raphf - # phalcon up to v5.0.0beta3 requires psr - if test $PHP_MAJMINPAT_VERSION -lt 70401; then - checkRequiredModule phalcon psr - fi - # Some module installation may use sockets if available: move it before other modules - if stringInList 'sockets' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'sockets' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="sockets $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # Some module installation may use igbinary if available: move it before other modules - if stringInList 'igbinary' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'igbinary' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="igbinary $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # Some module installation may use msgpack if available: move it before other modules - if stringInList 'msgpack' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'msgpack' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="msgpack $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # Some module installation may use socket if available: move it before other modules - if stringInList 'socket' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'socket' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="socket $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # Some module installation may use apcu if available: move it before other modules - if stringInList 'apcu' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'apcu' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="apcu $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # Some module installation may use raphf if available: move it before other modules - if stringInList 'raphf' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList 'raphf' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="raphf $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi - # In any case, first of all, we need to install composer - if stringInList '@composer' "$PHP_MODULES_TO_INSTALL"; then - PHP_MODULES_TO_INSTALL="$(removeStringFromList '@composer' "$PHP_MODULES_TO_INSTALL")" - PHP_MODULES_TO_INSTALL="@composer $PHP_MODULES_TO_INSTALL" - PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" - fi -} - -# Expand the IPE_ASPELL_LANGUAGES environment variable into apk/apt package names -expandASpellDictionaries() { - expandASpellDictionaries_languages="${IPE_ASPELL_LANGUAGES:-en}" - expandASpellDictionaries_result='' - resetIFS - for expandASpellDictionaries_language in $expandASpellDictionaries_languages; do - expandASpellDictionaries_result="$expandASpellDictionaries_result aspell-$expandASpellDictionaries_language" - done - printf '%s' "${expandASpellDictionaries_result# }" -} - -# Get the required APT/APK packages for a specific PHP version and for the list of module handles -# -# Arguments: -# $@: the PHP module handles -# -# Set: -# PACKAGES_PERSISTENT_NEW the list of packages required at runtume that must be installed -# PACKAGES_PERSISTENT_PRE the list of packages required at runtume that are already installed -# PACKAGES_VOLATILE the list of packages required at compile time that must be installed -# PACKAGES_PREVIOUS the list of packages (with their version) that are installed right now (calculated only on Debian and only if PACKAGES_PERSISTENT_NEW or PACKAGES_VOLATILE are not empty) -# COMPILE_LIBS -buildRequiredPackageLists() { - buildRequiredPackageLists_persistent='' - buildRequiredPackageLists_volatile='' - COMPILE_LIBS='' - case "$DISTRO" in - alpine) - apk update - ;; - debian) - invokeAptGetUpdate - ;; - esac - case "$DISTRO_VERSION" in - alpine@*) - if test $# -gt 1 || test "${1:-}" != '@composer'; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $PHPIZE_DEPS" - fi - if test -z "$(apk info 2>/dev/null | grep -E ^libssl)"; then - buildRequiredPackageLists_libssl="$(apk search | grep -E '^libssl[0-9]' | head -1 | cut -d- -f1)" - elif test -z "$(apk info 2>/dev/null | grep -E '^libressl.*-libtls')" && test -z "$(apk info 2>/dev/null | grep -E '^libressl.*-libssl')" && test -z "$(apk info 2>/dev/null | grep -E '^libretls-')"; then - buildRequiredPackageLists_libssl=$(apk search -q libressl*-libtls) - else - buildRequiredPackageLists_libssl='' - fi - if test $DISTRO_MAJMIN_VERSION -le 313; then - buildRequiredPackageLists_libssldev='libressl-dev' - else - buildRequiredPackageLists_libssldev='libretls-dev' - fi - buildRequiredPackageLists_icuPersistent='' - if test $DISTRO_MAJMIN_VERSION -ge 316; then - case "${IPE_ICU_EN_ONLY:-}" in - 1 | y* | Y*) ;; - *) - buildRequiredPackageLists_icuPersistent='icu-data-full' - ;; - esac - fi - ;; - debian@9) - buildRequiredPackageLists_libssldev='libssl1.0-dev' - ;; - debian@*) - buildRequiredPackageLists_libssldev='^libssl([0-9]+(\.[0-9]+)*)?-dev$' - ;; - esac - if test $USE_PICKLE -gt 1; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile git" - fi - while :; do - if test $# -lt 1; then - break - fi - case "$1@$DISTRO" in - @composer@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent unzip" - ;; - amqp@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent rabbitmq-c" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile rabbitmq-c-dev" - ;; - amqp@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^librabbitmq[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile librabbitmq-dev libssh-dev" - ;; - bz2@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libbz2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile bzip2-dev" - ;; - bz2@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libbz2-dev" - ;; - cassandra@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent cassandra-cpp-driver gmp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cassandra-cpp-driver-dev gmp-dev" - ;; - cmark@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake" - ;; - cmark@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake" - ;; - ddtrace@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libgcc" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile curl-dev" - ;; - ddtrace@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libcurl4-openssl-dev" - ;; - dba@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent db" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile db-dev" - ;; - dba@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile ^libdb5\.3-dev$" - if test $PHP_MAJMIN_VERSION -le 505; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile patch" - fi - ;; - decimal@debian) - if test $DISTRO_MAJMIN_VERSION -lt 1200; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libmpdec[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmpdec-dev" - fi - ;; - ecma_intl@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent icu-libs $buildRequiredPackageLists_icuPersistent" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev libidn-dev" - ;; - ecma_intl@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libicu[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libicu-dev" - ;; - enchant@alpine) - if test $DISTRO_MAJMIN_VERSION -ge 312; then - if test $PHP_MAJMIN_VERSION -ge 800; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent enchant2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile enchant2-dev" - else - # The system provides libenchant2, supported since PHP 8.0: we need to build libenchant1 on our own - if ! isLibenchant1Installed; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent glib aspell-libs libhunspell" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile glib-dev aspell-dev hunspell-dev" - COMPILE_LIBS="$COMPILE_LIBS libenchant1" - fi - fi - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent enchant" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile enchant-dev" - fi - ;; - enchant@debian) - if test $DISTRO_VERSION_NUMBER -ge 11; then - if test $PHP_MAJMIN_VERSION -ge 800; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libenchant-2-2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libenchant-2-dev" - else - if ! isLibenchant1Installed; then - # The system provides libenchant2, supported since PHP 8.0: we need to build libenchant1 on our own - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent aspell-en libhunspell-1.7-0" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libglib2.0-dev libaspell-dev libhunspell-dev" - COMPILE_LIBS="$COMPILE_LIBS libenchant1" - fi - fi - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libenchant1c2a" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libenchant-dev" - fi - ;; - event@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libevent $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libevent-dev $buildRequiredPackageLists_libssldev" - ;; - event@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libevent[0-9\.\-]*$ ^libevent-openssl[0-9\.\-]*$ ^libevent-extra[0-9\.\-]*$ ^libevent-pthreads[0-9\.\-]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libevent-dev $buildRequiredPackageLists_libssldev" - ;; - ffi@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libffi" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libffi-dev" - ;; - ffi@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libffi-dev" - ;; - ftp@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev" - ;; - ftp@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev" - ;; - gd@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent freetype libjpeg-turbo libpng libxpm" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetype-dev libjpeg-turbo-dev libpng-dev libxpm-dev" - if test $PHP_MAJMIN_VERSION -le 506; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libvpx" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libvpx-dev" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libwebp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libwebp-dev" - if test $PHP_MAJMIN_VERSION -ge 801; then - if test $DISTRO_MAJMIN_VERSION -ge 315; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libavif aom-libs libdav1d" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libavif-dev aom-dev dav1d-dev" - elif isLibaomInstalled && isLibdav1dInstalled && isLibyuvInstalled && isLibavifInstalled; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - else - case "${IPE_GD_WITHOUTAVIF:-}" in - 1 | y* | Y*) ;; - *) - if ! isLibaomInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libaom" - fi - if ! isLibdav1dInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libdav1d" - fi - if ! isLibyuvInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libyuv" - fi - if ! isLibavifInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libavif" - fi - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake nasm meson" - ;; - esac - fi - fi - fi - ;; - gd@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libfreetype6 libjpeg62-turbo ^libpng[0-9]+-[0-9]+$ libxpm4" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libfreetype6-dev libjpeg62-turbo-dev libpng-dev libxpm-dev" - if test $PHP_MAJMIN_VERSION -le 506; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libvpx[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libvpx-dev" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libwebp[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libwebp-dev" - if test $PHP_MAJMIN_VERSION -ge 801; then - if test $DISTRO_VERSION_NUMBER -ge 12; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libavif[0-9]+$ ^libaom[0-9]+$ ^libdav1d[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libavif-dev libaom-dev libdav1d-dev" - elif ! isLibaomInstalled || ! isLibdav1dInstalled || ! isLibyuvInstalled || ! isLibavifInstalled; then - case "${IPE_GD_WITHOUTAVIF:-}" in - 1 | y* | Y*) ;; - *) - if ! isLibaomInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libaom" - fi - if ! isLibdav1dInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libdav1d" - fi - if ! isLibyuvInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libyuv" - fi - if ! isLibavifInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libavif" - fi - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake nasm meson" - ;; - esac - fi - fi - fi - ;; - gearman@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++ libuuid" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile boost-dev gperf libmemcached-dev libevent-dev util-linux-dev" - ;; - gearman@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libgearman[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgearman-dev" - ;; - geoip@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent geoip" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile geoip-dev" - ;; - geoip@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libgeoip1[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgeoip-dev" - ;; - geos@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent geos-dev" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile geos" - ;; - geos@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libgeos-c1(v[0-9]*)?$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgeos-dev" - ;; - gettext@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libintl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile gettext-dev" - ;; - gmagick@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent graphicsmagick libgomp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile graphicsmagick-dev libtool" - ;; - gmagick@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libgraphicsmagick(-q16-)?[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgraphicsmagick1-dev" - ;; - gmp@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gmp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile gmp-dev" - ;; - gmp@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgmp-dev" - ;; - gnupg@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gpgme" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile gpgme-dev" - ;; - gnupg@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libgpgme[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile ^libgpgme[0-9]*-dev$" - ;; - grpc@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev linux-headers" - ;; - grpc@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev" - ;; - http@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libevent" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev curl-dev libevent-dev" - if test $PHP_MAJMIN_VERSION -le 506; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libidn" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libidn-dev" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent icu-libs $buildRequiredPackageLists_icuPersistent libidn" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev libidn-dev" - fi - ;; - http@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libcurl3-gnutls ^libevent[0-9\.\-]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev libgnutls28-dev libcurl4-gnutls-dev libevent-dev" - if test $PHP_MAJMIN_VERSION -le 506; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile ^libidn1[0-9+]-dev$" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libicu[0-9]+$ ^libidn2-[0-9+]$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libicu-dev ^libidn2-[0-9+]-dev$ ^libgcrypt[0-9]+-dev$" - fi - ;; - imagick@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent imagemagick libgomp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile imagemagick-dev" - if [ $DISTRO_MAJMIN_VERSION -ge 319 ]; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ghostscript libheif libjxl libraw librsvg" - fi - ;; - imagick@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libmagickwand-6.q16-[0-9]+$ ^libmagickcore-6.q16-[0-9]+-extra$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmagickwand-dev" - ;; - imap@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent c-client $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile krb5-dev imap-dev $buildRequiredPackageLists_libssldev" - ;; - imap@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libc-client2007e" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libkrb5-dev" - case "$DISTRO_VERSION" in - debian@9) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev comerr-dev krb5-multidev libc-client2007e libgssrpc4 libkadm5clnt-mit11 libkadm5srv-mit11 libkdb5-8 libpam0g-dev libssl-doc mlock" - ;; - *) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libc-client-dev" - ;; - esac - ;; - interbase@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev ncurses-dev" - if ! isFirebirdInstalled; then - COMPILE_LIBS="$COMPILE_LIBS firebird" - fi - ;; - interbase@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libfbclient2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile firebird-dev libib-util" - ;; - intl@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent icu-libs $buildRequiredPackageLists_icuPersistent" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev" - ;; - intl@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libicu[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libicu-dev" - ;; - ion@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake git" - ;; - ion@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake git" - ;; - ldap@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libldap" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile openldap-dev" - ;; - ldap@debian) - if test $DISTRO_VERSION_NUMBER -ge 9; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libldap-common" - fi - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libldap2-dev" - ;; - luasandbox@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lua5.1-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile lua5.1-dev" - ;; - luasandbox@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblua5.1-0" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liblua5.1-0-dev" - ;; - lz4@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lz4-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile lz4-dev" - ;; - lz4@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblz4-1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liblz4-dev" - ;; - maxminddb@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmaxminddb" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmaxminddb-dev" - ;; - maxminddb@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libmaxminddb[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmaxminddb-dev" - ;; - memprof@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent judy" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile judy-dev bsd-compat-headers" - ;; - memprof@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libjudydebian1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libjudy-dev" - ;; - mcrypt@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmcrypt" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmcrypt-dev" - ;; - mcrypt@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmcrypt4" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmcrypt-dev" - ;; - memcache@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev" - ;; - memcache@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev" - ;; - memcached@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmemcached-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmemcached-dev zlib-dev" - ;; - memcached@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmemcachedutil2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmemcached-dev zlib1g-dev" - if test $DISTRO_MAJMIN_VERSION -ge 12; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev" - fi - ;; - mongo@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsasl $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev cyrus-sasl-dev" - ;; - mongo@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev libsasl2-dev" - ;; - mongodb@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent icu-libs $buildRequiredPackageLists_icuPersistent libsasl $buildRequiredPackageLists_libssl snappy" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev cyrus-sasl-dev snappy-dev $buildRequiredPackageLists_libssldev zlib-dev" - if test $PHP_MAJMIN_VERSION -ge 704; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent zstd-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zstd-dev" - fi - ;; - mongodb@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libsnappy[0-9]+(v[0-9]+)?$ ^libicu[0-9]+$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libicu-dev libsasl2-dev libsnappy-dev $buildRequiredPackageLists_libssldev zlib1g-dev" - if test $PHP_MAJMIN_VERSION -ge 704; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libzstd[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libzstd-dev" - fi - ;; - mosquitto@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent mosquitto-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile mosquitto-dev" - ;; - mosquitto@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmosquitto1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmosquitto-dev" - ;; - mssql@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent freetds" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - mssql@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsybdb5" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - oauth@alpine) - if test $PHP_MAJMIN_VERSION -ge 700; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile pcre-dev" - fi - ;; - oauth@debian) - if test $PHP_MAJMIN_VERSION -ge 700; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libpcre3-dev" - fi - ;; - oci8@alpine | pdo_oci@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libaio libc6-compat libnsl" - if test $DISTRO_MAJMIN_VERSION -le 307; then - # The unzip tool of Alpine 3.7 can't extract symlinks from ZIP archives: let's use bsdtar instead - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libarchive-tools" - fi - ;; - oci8@debian | pdo_oci@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libaio[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unzip" - ;; - odbc@alpine | pdo_odbc@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent unixodbc" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unixodbc-dev" - ;; - odbc@debian | pdo_odbc@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libodbc1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unixodbc-dev" - ;; - openswoole@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent postgresql-libs libstdc++ $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile curl-dev postgresql-dev linux-headers $buildRequiredPackageLists_libssldev" - ;; - openswoole@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libcurl3-gnutls libpq5" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev libcurl4-gnutls-dev libpq-dev" - ;; - parle@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - ;; - pdo_dblib@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent freetds" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - pdo_dblib@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsybdb5" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - pdo_firebird@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile icu-dev ncurses-dev" - if ! isFirebirdInstalled; then - COMPILE_LIBS="$COMPILE_LIBS firebird" - if test $PHP_MAJMIN_VERSION -ge 804; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev" - if ! isLibTommathInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libtommath" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake" - fi - if ! isLibTomcryptInstalled; then - COMPILE_LIBS="$COMPILE_LIBS libtomcrypt" - fi - fi - fi - ;; - pdo_firebird@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libfbclient2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile firebird-dev libib-util" - ;; - pgsql@alpine | pdo_pgsql@alpine | pq@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent postgresql-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile postgresql-dev" - ;; - pgsql@debian | pdo_pgsql@debian | pq@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libpq5" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libpq-dev" - ;; - php_trie@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - ;; - phpy@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent python3" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile python3-dev" - ;; - phpy@debian) - if test $DISTRO_VERSION_NUMBER -ge 12; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libpython3.11" - elif test $DISTRO_VERSION_NUMBER -ge 11; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libpython3.9" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libpython3.7" - fi - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile python3-dev" - ;; - pkcs11@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent softhsm" - ;; - pkcs11@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsofthsm2" - ;; - pspell@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent aspell-libs $(expandASpellDictionaries)" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile aspell-dev" - ;; - pspell@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libaspell15 $(expandASpellDictionaries)" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libpspell-dev" - ;; - rdkafka@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent librdkafka" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile librdkafka-dev" - ;; - rdkafka@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^librdkafka\+*[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile librdkafka-dev" - ;; - recode@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent recode" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile recode-dev" - ;; - recode@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent librecode0" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile librecode-dev" - ;; - redis@alpine) - if test $PHP_MAJMIN_VERSION -ge 700; then - case "$DISTRO_VERSION" in - alpine@3.7) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent zstd" - ;; - *) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent zstd-libs" - ;; - esac - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zstd-dev" - if test $PHP_MAJMIN_VERSION -ge 702; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lz4-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile lz4-dev" - fi - fi - ;; - redis@debian) - if test $PHP_MAJMIN_VERSION -ge 700; then - case "$DISTRO_VERSION" in - debian@8) - ## There's no APT package for libzstd - ;; - debian@9) - ## libzstd is too old (available: 1.1.2, required: 1.3.0+) - ;; - *) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libzstd[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libzstd-dev" - ;; - esac - fi - if test $PHP_MAJMIN_VERSION -ge 702; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblz4-1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liblz4-dev" - fi - ;; - relay@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lz4-libs zstd-libs" - if test $DISTRO_MAJMIN_VERSION -ge 317; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent $buildRequiredPackageLists_libssl" - fi - ;; - saxon@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_volatile unzip" - ;; - seasclick@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - ;; - simdjson@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - ;; - smbclient@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsmbclient" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile samba-dev" - ;; - smbclient@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsmbclient" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsmbclient-dev" - ;; - snappy@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent snappy" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile snappy-dev" - ;; - snappy@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libsnappy1(v[0-9]+)?$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsnappy-dev" - ;; - snmp@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent net-snmp-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile net-snmp-dev" - ;; - snmp@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent snmp" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsnmp-dev" - ;; - snuffleupagus@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent pcre" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile pcre-dev" - ;; - snuffleupagus@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libpcre3-dev" - ;; - soap@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - soap@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - sockets@alpine) - if test $PHP_MAJMIN_VERSION -ge 802; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile linux-headers" - fi - ;; - sodium@alpine | libsodium@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsodium" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsodium-dev" - ;; - sodium@debian | libsodium@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libsodium[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsodium-dev" - ;; - solr@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile curl-dev libxml2-dev" - ;; - solr@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libcurl3-gnutls" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libcurl4-gnutls-dev libxml2-dev" - ;; - sourceguardian@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent eudev-libs" - ;; - spx@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev" - ;; - spx@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev" - ;; - sqlsrv@alpine | pdo_sqlsrv@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++ unixodbc" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unixodbc-dev" - ;; - sqlsrv@debian | pdo_sqlsrv@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent unixodbc" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unixodbc-dev" - if ! isMicrosoftSqlServerODBCInstalled; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile gnupg apt-transport-https" - fi - ;; - ssh2@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libssh2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libssh2-dev" - ;; - ssh2@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libssh2-1-dev" - ;; - stomp@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev" - ;; - stomp@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev" - ;; - swoole@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent postgresql-libs libstdc++ $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile curl-dev postgresql-dev linux-headers $buildRequiredPackageLists_libssldev" - if test $PHP_MAJMIN_VERSION -ge 702; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent c-ares" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile c-ares-dev" - if test $PHP_MAJMIN_VERSION -ge 801; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent zstd-libs" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile sqlite-dev zstd-dev" - fi - fi - case "${IPE_SWOOLE_WITHOUT_IOURING:-}" in - 1 | y* | Y*) ;; - *) - # iouring support in swoole 6 requires liburing 2.5+: available since Alpine 3.19 - # but with Alpine 3.19 we have a "invalid use of incomplete type 'const struct statx'" error - if test $DISTRO_MAJMIN_VERSION -ge 320; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liburing" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liburing-dev" - fi - ;; - esac - ;; - swoole@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libcurl3-gnutls libpq5" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev libcurl4-gnutls-dev libpq-dev" - if test $PHP_MAJMIN_VERSION -ge 702; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libc-ares2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libc-ares-dev" - if test $PHP_MAJMIN_VERSION -ge 800; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libbrotli1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev libbrotli-dev" - if test $PHP_MAJMIN_VERSION -ge 801; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsqlite3-dev" - if test $DISTRO_VERSION_NUMBER -ge 11; then - # swoole 6 requires libzstd >= 1.4.0, but on debian 10 (buster) we have 1.3.8 - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libzstd[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libzstd-dev" - fi - fi - fi - fi - if test $DISTRO_VERSION_NUMBER -ge 13; then - # iouring support in swoole 6 requires liburing 2.5+: available since Debian Trixie (13) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liburing2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liburing-dev" - fi - ;; - sybase_ct@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent freetds" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - sybase_ct@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libct4" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" - ;; - tdlib@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++ $buildRequiredPackageLists_libssl" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile git cmake gperf zlib-dev $buildRequiredPackageLists_libssldev linux-headers readline-dev" - ;; - tdlib@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile git cmake gperf zlib1g-dev $buildRequiredPackageLists_libssldev" - ;; - tensor@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent openblas" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile lapack-dev openblas-dev" - if test $DISTRO_MAJMIN_VERSION -le 317; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lapack" - if test $DISTRO_MAJMIN_VERSION -le 316; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libexecinfo" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libexecinfo-dev" - if test $DISTRO_MAJMIN_VERSION -le 310; then - if ! stringInList --force-overwrite "$IPE_APK_FLAGS"; then - IPE_APK_FLAGS="$IPE_APK_FLAGS --force-overwrite" - fi - fi - fi - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblapack" - fi - ;; - tensor@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblapacke" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liblapack-dev libopenblas-dev liblapacke-dev" - if test $DISTRO_VERSION_NUMBER -le 9; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-6 libopenblas-base" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-6-dev" - elif test $DISTRO_VERSION_NUMBER -le 10; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-8 libopenblas-base" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-8-dev" - elif test $DISTRO_VERSION_NUMBER -le 11; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-10 libopenblas-base" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-10-dev" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-12 libopenblas0" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-12-dev" - fi - ;; - tidy@alpine) - if test $DISTRO_MAJMIN_VERSION -ge 315; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent tidyhtml" - else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent tidyhtml-libs" - fi - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile tidyhtml-dev" - ;; - tidy@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libtidy-?[0-9][0-9.\-]*(deb[0-9])?$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libtidy-dev" - ;; - uuid@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libuuid" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile util-linux-dev" - ;; - uuid@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile uuid-dev" - ;; - uv@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libuv" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libuv-dev" - ;; - uv@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libuv1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libuv1-dev" - ;; - vips@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent vips" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile vips-dev" - ;; - vips@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libvips" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libvips-dev" - ;; - wddx@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - wddx@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - wikidiff2@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile git" - ;; - wikidiff2@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libthai0" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile git libthai-dev" - ;; - xdebug@alpine) - if test $PHP_MAJMIN_VERSION -ge 800; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile linux-headers" - fi - ;; - xlswriter@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib-dev" - ;; - xlswriter@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev" - ;; - xmldiff@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - xmldiff@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - xmlrpc@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - xmlrpc@debian) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxml2-dev" - ;; - xpass@alpine) - if ! isLibXCryptInstalled; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile linux-headers" - COMPILE_LIBS="$COMPILE_LIBS libxcrypt" - fi - ;; - xsl@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libxslt" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxslt-dev libgcrypt-dev" - ;; - xsl@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libxslt1\.1$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libxslt-dev" - ;; - yaml@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent yaml" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile yaml-dev" - ;; - yaml@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libyaml-0-2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libyaml-dev" - ;; - yar@alpine) - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile curl-dev" - ;; - yar@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libcurl3-gnutls" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libcurl4-gnutls-dev" - ;; - zip@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libzip" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake gnutls-dev libzip-dev $buildRequiredPackageLists_libssldev zlib-dev" - ;; - zip@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libzip[0-9]$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake gnutls-dev $buildRequiredPackageLists_libssldev libzip-dev libbz2-dev zlib1g-dev" - case "$DISTRO_VERSION" in - debian@8) - # Debian Jessie doesn't seem to provide libmbedtls - ;; - *) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libmbedtls[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmbedtls-dev" - ;; - esac - ;; - zmq@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent zeromq-dev" - ;; - zmq@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libzmq3-dev" - ;; - zookeeper@alpine) - if ! test -f /usr/local/include/zookeeper/zookeeper.h; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile maven automake libtool openjdk8" - fi - ;; - zookeeper@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libzookeeper-mt2" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libzookeeper-mt-dev" - ;; - esac - shift - done - PACKAGES_PERSISTENT_NEW='' - PACKAGES_PERSISTENT_PRE='' - PACKAGES_VOLATILE='' - PACKAGES_PREVIOUS='' - if test -z "$buildRequiredPackageLists_persistent$buildRequiredPackageLists_volatile"; then - return - fi - if test -n "$buildRequiredPackageLists_persistent"; then - PACKAGES_PERSISTENT_NEW="$(expandPackagesToBeInstalled $buildRequiredPackageLists_persistent)" - if test -s "$IPE_ERRFLAG_FILE"; then - exit 1 - fi - resetIFS - for buildRequiredPackageLists_package in $buildRequiredPackageLists_persistent; do - buildRequiredPackageLists_package="$(expandInstalledSystemPackageName "$buildRequiredPackageLists_package")" - if test -n "$buildRequiredPackageLists_package"; then - PACKAGES_PERSISTENT_PRE="$PACKAGES_PERSISTENT_PRE $buildRequiredPackageLists_package" - fi - done - PACKAGES_PERSISTENT_PRE="${PACKAGES_PERSISTENT_PRE# }" - fi - if test -n "$buildRequiredPackageLists_volatile"; then - buildRequiredPackageLists_packages="$(expandPackagesToBeInstalled $buildRequiredPackageLists_volatile)" - if test -s "$IPE_ERRFLAG_FILE"; then - exit 1 - fi - resetIFS - for buildRequiredPackageLists_package in $buildRequiredPackageLists_packages; do - if ! stringInList "$buildRequiredPackageLists_package" "$PACKAGES_PERSISTENT_NEW"; then - if test "$buildRequiredPackageLists_package" != icu-data-en || ! stringInList icu-data-full "$PACKAGES_PERSISTENT_NEW"; then - PACKAGES_VOLATILE="$PACKAGES_VOLATILE $buildRequiredPackageLists_package" - fi - fi - done - PACKAGES_VOLATILE="${PACKAGES_VOLATILE# }" - fi - if test -n "$PACKAGES_PERSISTENT_NEW$PACKAGES_VOLATILE"; then - case "$DISTRO" in - debian) - PACKAGES_PREVIOUS="$(dpkg --get-selections | grep -E '\sinstall$' | awk '{ print $1 }')" - ;; - esac - fi -} - -# Get the full list of APT/APK packages that will be installed, given the required packages -# -# Arguments: -# $1: the list of required APT/APK packages -# -# Output: -# Space-separated list of every APT/APK packages that will be installed -expandPackagesToBeInstalled() { - expandPackagesToBeInstalled_result='' - case "$DISTRO" in - alpine) - expandPackagesToBeInstalled_log="$(apk add --simulate $@ 2>&1 || printf '\nERROR: apk failed\n')" - if test -n "$(printf '%s' "$expandPackagesToBeInstalled_log" | grep -E '^ERROR:')"; then - printf 'FAILED TO LIST THE WHOLE PACKAGE LIST FOR\n' >&2 - printf '%s ' "$@" >&2 - printf '\n\nCOMMAND OUTPUT:\n%s\n' "$expandPackagesToBeInstalled_log" >&2 - echo 'y' >"$IPE_ERRFLAG_FILE" - exit 1 - fi - IFS=' -' - for expandPackagesToBeInstalled_line in $expandPackagesToBeInstalled_log; do - if test -n "$(printf '%s' "$expandPackagesToBeInstalled_line" | grep -E '^\([0-9]*/[0-9]*) Installing ')"; then - expandPackagesToBeInstalled_result="$expandPackagesToBeInstalled_result $(printf '%s' "$expandPackagesToBeInstalled_line" | cut -d ' ' -f 3)" - fi - done - resetIFS - ;; - debian) - expandPackagesToBeInstalled_log="$(apt-get install -sy --no-install-recommends $@ 2>&1 || printf '\nE: apt-get failed\n')" - if test -n "$(printf '%s' "$expandPackagesToBeInstalled_log" | grep -E '^E:')"; then - printf 'FAILED TO LIST THE WHOLE PACKAGE LIST FOR\n' >&2 - printf '%s ' "$@" >&2 - printf '\n\nCOMMAND OUTPUT:\n%s\n' "$expandPackagesToBeInstalled_log" >&2 - echo 'y' >"$IPE_ERRFLAG_FILE" - exit 1 - fi - expandPackagesToBeInstalled_inNewPackages=0 - IFS=' -' - for expandPackagesToBeInstalled_line in $expandPackagesToBeInstalled_log; do - if test $expandPackagesToBeInstalled_inNewPackages -eq 0; then - if test "$expandPackagesToBeInstalled_line" = 'The following NEW packages will be installed:'; then - expandPackagesToBeInstalled_inNewPackages=1 - fi - elif test "$expandPackagesToBeInstalled_line" = "${expandPackagesToBeInstalled_line# }"; then - break - else - resetIFS - for expandPackagesToBeInstalled_newPackage in $expandPackagesToBeInstalled_line; do - expandPackagesToBeInstalled_result="$expandPackagesToBeInstalled_result $expandPackagesToBeInstalled_newPackage" - done - IFS=' -' - fi - done - resetIFS - ;; - esac - printf '%s' "${expandPackagesToBeInstalled_result# }" -} - -# Check if a system package is installed; if so we prints its name. -# -# Arguments: -# $1: the name of the package to be checked (regular expressions accepted: they must start with a ^) -expandInstalledSystemPackageName() { - if test "$1" = "${1#^}"; then - expandInstalledSystemPackageName_grepflags='-Fx' - else - expandInstalledSystemPackageName_grepflags='-E' - fi - case "$DISTRO" in - alpine) - apk info | grep $expandInstalledSystemPackageName_grepflags -- "$1" || test $? -eq 1 - ;; - debian) - dpkg --get-selections | grep -E '\sinstall$' | awk '{ print $1 }' | cut -d: -f1 | grep $expandInstalledSystemPackageName_grepflags -- "$1" || test $? -eq 1 - ;; - esac -} - -# Retrieve the number of available cores (alternative to nproc if not available) -# -# Output: -# The number of processor cores available -getProcessorCount() { - if test -n "${IPE_PROCESSOR_COUNT:-}"; then - echo $IPE_PROCESSOR_COUNT - return - fi - if command -v nproc >/dev/null 2>&1; then - nproc - else - getProcessorCount_tmp=$(cat /proc/cpuinfo | grep -E '^processor\s*:\s*\d+$' | wc -l) - if test $getProcessorCount_tmp -ge 1; then - echo $getProcessorCount_tmp - else - echo 1 - fi - fi -} - -# Set these variables: -# - TARGET_TRIPLET the build target tripled (eg 'x86_64-linux-gnu', 'x86_64-alpine-linux-musl') -setTargetTriplet() { - TARGET_TRIPLET="$(gcc -print-multiarch 2>/dev/null || true)" - if test -z "$TARGET_TRIPLET"; then - TARGET_TRIPLET="$(gcc -dumpmachine)" - fi -} - -# Retrieve the number of processors to be used when compiling an extension -# -# Arguments: -# $1: the handle of the PHP extension to be compiled -# Output: -# The number of processors to be used -getCompilationProcessorCount() { - case "$1" in - '') - # The above extensions don't support parallel compilation - echo 1 - ;; - *) - # All the other extensions support parallel compilation - getProcessorCount - ;; - esac -} - -# Get the full path of a PHP extension given its name. -# -# Arguments: -# $1: the name of the PHP extension -# -# Output: -# The absolute path of the PHP extension file (or nothing if the file can't be found) -getModuleFullPath() { - case "$1" in - apcu_bc) - getModuleFullPath_path="$PHP_EXTDIR/apc.so" - ;; - seasclick) - getModuleFullPath_path="$PHP_EXTDIR/SeasClick.so" - ;; - *) - getModuleFullPath_path="$PHP_EXTDIR/$1.so" - ;; - esac - if ! test -f "$getModuleFullPath_path"; then - printf 'Unable to find the file of the PHP extension "%s"\n' "$1" >&2 - exit 1 - fi - printf '%s' "$getModuleFullPath_path" -} - -# Post-process a PHP module just compiled and installed in the PHP extension directory -# -# Arguments: -# $1: the name of the PHP extension -# -# Return: -# 0 (true): if suceeded -# non-zero (false): in case of errors -postProcessModule() { - postProcessModule_file="$(getModuleFullPath "$1")" - if test $PHP_DEBUGBUILD -ne 1; then - printf 'Removing symbols from %s... ' "$postProcessModule_file" - postProcessModule_preSize="$(stat -c %s "$postProcessModule_file")" - strip --strip-all "$postProcessModule_file" - postProcessModule_postSize="$(stat -c %s "$postProcessModule_file")" - printf 'done (%s bytes saved).\n' "$((postProcessModule_preSize - postProcessModule_postSize))" - fi - return $? -} - -# Get the type of the php.ini entry to be used for a PHP extension -# -# Arguments: -# $1: the name of the PHP extension -# -# Output: -# zend_extension or extension -getModuleIniEntryType() { - case "$1" in - ioncube_loader | sourceguardian) - # On PHP 5.5, docker-php-ext-enable fails to detect that ionCube Loader and sourceguardian are Zend extensions - if test $PHP_MAJMIN_VERSION -le 505; then - printf 'zend_extension' - return 0 - fi - ;; - esac - getModuleIniEntryType_file="$(getModuleFullPath "$1")" - if readelf --wide --syms "$getModuleIniEntryType_file" | grep -Eq ' zend_extension_entry$'; then - printf 'zend_extension' - else - printf 'extension' - fi -} - -# Create the contents of a PHP ini file that enables an extension -# -# Arguments: -# $1: the name of the PHP extension -# $2: additional php.ini configuration (optional) -# -# Output: -# The contents of the ini file -buildPhpExtensionIniContent() { - buildPhpExtensionIniContent_type="$(getModuleIniEntryType "$1")" - buildPhpExtensionIniContent_soFile="$(getModuleFullPath "$1")" - buildPhpExtensionIniContent_result="$(printf '%s=%s' "$buildPhpExtensionIniContent_type" "${buildPhpExtensionIniContent_soFile##$PHP_EXTDIR/}")" - if test -n "${2:-}"; then - buildPhpExtensionIniContent_result="$(printf '%s\n%s' "$buildPhpExtensionIniContent_result" "$2")" - fi - printf '%s' "$buildPhpExtensionIniContent_result" -} - -# Check that a PHP module actually works (better to run this check before enabling the extension) -# -# Arguments: -# $1: the name of the PHP extension -# $2: base name (without path and extension) of additional php.ini configuration (optional) -# $3: additional php.ini configuration (optional) -# -# Return: -# 0 (true): if the string is in the list -# 1 (false): if the string is not in the list -checkModuleWorking() { - if test -n "${2:-}"; then - checkModuleWorking_iniFile="$PHP_INI_DIR/conf.d/$2--temp.ini" - else - checkModuleWorking_iniFile="$PHP_INI_DIR/conf.d/docker-php-ext-$1--temp.ini" - fi - checkModuleWorking_iniContent="$(buildPhpExtensionIniContent "$1" "${3:-}")" - printf 'Check if the %s module can be loaded... ' "$1" - checkModuleWorking_errBefore="$(php -r 'return;' 2>&1 || true)" - printf '%s' "$checkModuleWorking_iniContent" >"$checkModuleWorking_iniFile" - checkModuleWorking_errAfter="$(php -r 'return;' 2>&1 || true)" - rm "$checkModuleWorking_iniFile" - if test "$checkModuleWorking_errAfter" != "$checkModuleWorking_errBefore"; then - printf 'Error loading the "%s" extension:\n%s\n' "$1" "$checkModuleWorking_errAfter" >&2 - return 1 - fi - printf 'ok.\n' - return 0 -} - -# Enable a PHP extension -# -# Arguments: -# $1: the name of the PHP extension to be enabled -# $2: base name (without path and extension) of additional php.ini configuration (optional) -# $3: additional php.ini configuration (optional) -enablePhpExtension() { - if test -n "${2:-}"; then - enablePhpExtension_iniFile="$PHP_INI_DIR/conf.d/$2.ini" - else - enablePhpExtension_iniFile="$PHP_INI_DIR/conf.d/docker-php-ext-$1.ini" - fi - enablePhpExtension_iniContent="$(buildPhpExtensionIniContent "$1" "${3:-}")" - case "${IPE_DONT_ENABLE:-}" in - 1 | y* | Y*) - enablePhpExtension_enableCommand="/usr/local/bin/docker-php-ext-enable-$1" - printf '%s' "$enablePhpExtension_iniContent" >"$enablePhpExtension_iniFile-disabled" - printf '\n' >>"$enablePhpExtension_iniFile-disabled" - cat <"$enablePhpExtension_enableCommand" -#!/bin/sh - -if test -f '$enablePhpExtension_iniFile-disabled'; then - echo 'Enabling extension $1' - mv '$enablePhpExtension_iniFile-disabled' '$enablePhpExtension_iniFile' -else - echo 'The extension $1 has already been enabled' -fi -EOT - chmod +x "$enablePhpExtension_enableCommand" - printf '## Extension %s not enabled.\nYou can enable it by running the following command:\n%s\n\n' "$1" "$(basename "$enablePhpExtension_enableCommand")" - ;; - *) - printf '%s' "$enablePhpExtension_iniContent" >"$enablePhpExtension_iniFile" - printf '\n' >>"$enablePhpExtension_iniFile" - ;; - esac -} - -# Mark the pre-installed APT/APK packages as used -# that way they won't be uninstalled by accident -markPreinstalledPackagesAsUsed() { - printf '### MARKING PRE-INSTALLED PACKAGES AS IN-USE ###\n' - case "$DISTRO" in - alpine) - printf '# Packages: %s\n' "$PACKAGES_PERSISTENT_PRE" - apk add $PACKAGES_PERSISTENT_PRE - ;; - debian) - apt-mark manual $PACKAGES_PERSISTENT_PRE - ;; - esac -} - -# Install the required APT/APK packages -# -# Arguments: -# $@: the list of APT/APK packages to be installed -installRequiredPackages() { - printf '### INSTALLING REQUIRED PACKAGES ###\n' - printf '# Packages to be kept after installation: %s\n' "$PACKAGES_PERSISTENT_NEW" - printf '# Packages to be used only for installation: %s\n' "$PACKAGES_VOLATILE" - case "$DISTRO" in - alpine) - apk add $IPE_APK_FLAGS $PACKAGES_PERSISTENT_NEW $PACKAGES_VOLATILE - # https://gitlab.alpinelinux.org/alpine/aports/-/issues/12763#note_172090 - # https://github.com/mlocati/docker-php-extension-installer/issues/385 - # https://github.com/mlocati/docker-php-extension-installer/issues/537#issuecomment-1078748882 - for installRequiredPackages_item in wget; do - if test -n "$(expandInstalledSystemPackageName "$installRequiredPackages_item")"; then - apk add --upgrade "$installRequiredPackages_item" - fi - done - ;; - debian) - apt-get install -qqy --no-install-recommends $PACKAGES_PERSISTENT_NEW $PACKAGES_VOLATILE - ;; - esac -} - -# Get the version of an installed APT/APK package -# -# Arguments: -# $1: the name of the installed package -# -# Output: -# The numeric part of the package version, with from 1 to 3 numbers -# -# Example: -# 1 -# 1.2 -# 1.2.3 -getInstalledPackageVersion() { - case "$DISTRO" in - alpine) - apk info "$1" | head -n1 | cut -c $((${#1} + 2))- | grep -o -E '^[0-9]+(\.[0-9]+){0,2}' - ;; - debian) - dpkg-query --showformat='${Version}' --show "$1" 2>/dev/null | grep -o -E '^[0-9]+(\.[0-9]+){0,2}' - ;; - esac -} - -# Compare two versions -# -# Arguments: -# $1: the first version -# $2: the second version -# -# Output -# -1 if $1 is less than $2 -# 0 if $1 is the same as $2 -# 1 if $1 is greater than $2 -compareVersions() { - compareVersions_v1="$1.0.0" - compareVersions_v2="$2.0.0" - compareVersions_vMin="$(printf '%s\n%s' "$compareVersions_v1" "$compareVersions_v2" | sort -t '.' -n -k1,1 -k2,2 -k3,3 | head -n 1)" - if test "$compareVersions_vMin" != "$compareVersions_v1"; then - echo '1' - elif test "$compareVersions_vMin" = "$compareVersions_v2"; then - echo '0' - else - echo '-1' - fi -} - -# Install Oracle Instant Client & SDK -# -# Set: -# ORACLE_INSTANTCLIENT_LIBPATH -installOracleInstantClient() { - case "${IPE_INSTANTCLIENT_BASIC:-}" in - 1 | y* | Y*) - installOracleInstantClient_handle=basic - ;; - *) - installOracleInstantClient_handle=basiclite - ;; - esac - case $PHP_BITS in - 32) - installOracleInstantClient_client=client - installOracleInstantClient_version='19.9' - installOracleInstantClient_ic=https://download.oracle.com/otn_software/linux/instantclient/199000/instantclient-$installOracleInstantClient_handle-linux-$installOracleInstantClient_version.0.0.0dbru.zip - installOracleInstantClient_sdk=https://download.oracle.com/otn_software/linux/instantclient/199000/instantclient-sdk-linux-$installOracleInstantClient_version.0.0.0dbru.zip - ;; - *) - case $(uname -m) in - aarch64*) - installOracleInstantClient_client=client64 - installOracleInstantClient_version='19.10' - installOracleInstantClient_ic=https://download.oracle.com/otn_software/linux/instantclient/191000/instantclient-$installOracleInstantClient_handle-linux.arm64-$installOracleInstantClient_version.0.0.0dbru.zip - installOracleInstantClient_sdk=https://download.oracle.com/otn_software/linux/instantclient/191000/instantclient-sdk-linux.arm64-$installOracleInstantClient_version.0.0.0dbru.zip - ;; - *) - installOracleInstantClient_client=client64 - installOracleInstantClient_version='21.1' - installOracleInstantClient_ic=https://download.oracle.com/otn_software/linux/instantclient/211000/instantclient-$installOracleInstantClient_handle-linux.x64-$installOracleInstantClient_version.0.0.0.zip - installOracleInstantClient_sdk=https://download.oracle.com/otn_software/linux/instantclient/211000/instantclient-sdk-linux.x64-$installOracleInstantClient_version.0.0.0.zip - ;; - esac - ;; - esac - ORACLE_INSTANTCLIENT_LIBPATH=/usr/lib/oracle/$installOracleInstantClient_version/$installOracleInstantClient_client/lib - if ! test -e "$ORACLE_INSTANTCLIENT_LIBPATH"; then - printf 'Downloading Oracle Instant Client v%s (%s)... ' "$installOracleInstantClient_version" "$installOracleInstantClient_handle" - installOracleInstantClient_src="$(getPackageSource $installOracleInstantClient_ic)" - mkdir -p "/usr/lib/oracle/$installOracleInstantClient_version/$installOracleInstantClient_client" - mv "$installOracleInstantClient_src" "$ORACLE_INSTANTCLIENT_LIBPATH" - echo 'done.' - fi - if ! test -e "$ORACLE_INSTANTCLIENT_LIBPATH/sdk" && ! test -L "$ORACLE_INSTANTCLIENT_LIBPATH/sdk"; then - printf 'Downloading Oracle Instant SDK v%s... ' "$installOracleInstantClient_version" - installOracleInstantClient_src="$(getPackageSource $installOracleInstantClient_sdk)" - ln -sf "$installOracleInstantClient_src/sdk" "$ORACLE_INSTANTCLIENT_LIBPATH/sdk" - UNNEEDED_PACKAGE_LINKS="$UNNEEDED_PACKAGE_LINKS $ORACLE_INSTANTCLIENT_LIBPATH/sdk" - echo 'done.' - fi - case "$DISTRO" in - alpine) - if ! test -e /usr/lib/libresolv.so.2 && test -e /lib/libc.so.6; then - ln -s /lib/libc.so.6 /usr/lib/libresolv.so.2 - fi - installOracleInstantClient_ldconf=/etc/ld-musl-${TARGET_TRIPLET%-alpine-linux-musl}.path - if test -e "$installOracleInstantClient_ldconf"; then - if ! cat "$installOracleInstantClient_ldconf" | grep -q "$ORACLE_INSTANTCLIENT_LIBPATH"; then - cat "$ORACLE_INSTANTCLIENT_LIBPATH" | awk -v suffix=":$ORACLE_INSTANTCLIENT_LIBPATH" '{print NR==1 ? $0suffix : $0}' >"$ORACLE_INSTANTCLIENT_LIBPATH" - fi - else - case $PHP_BITS in - 32) - echo "/lib:/usr/local/lib:/usr/lib:$ORACLE_INSTANTCLIENT_LIBPATH" >"$installOracleInstantClient_ldconf" - ;; - *) - echo "/lib64:/lib:/usr/local/lib:/usr/lib:$ORACLE_INSTANTCLIENT_LIBPATH" >"$installOracleInstantClient_ldconf" - ;; - esac - fi - ;; - debian) - if ! test -e /etc/ld.so.conf.d/oracle-instantclient.conf; then - echo "$ORACLE_INSTANTCLIENT_LIBPATH" >/etc/ld.so.conf.d/oracle-instantclient.conf - ldconfig - fi - ;; - esac -} - -# Check if the Microsoft SQL Server ODBC Driver is installed -# -# Return: -# 0 (true): if the string is in the list -# 1 (false): if the string is not in the list -isMicrosoftSqlServerODBCInstalled() { - test -d /opt/microsoft/msodbcsql*/ -} - -# Install the Microsoft SQL Server ODBC Driver -# see https://learn.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server -installMicrosoftSqlServerODBC() { - printf 'Installing the Microsoft SQL Server ODBC Driver\n' - case "$DISTRO" in - alpine) - rm -rf /tmp/src/msodbcsql.apk - if test $PHP_MAJMIN_VERSION -le 703; then - curl -sSLf -o /tmp/src/msodbcsql.apk https://download.microsoft.com/download/e/4/e/e4e67866-dffd-428c-aac7-8d28ddafb39b/msodbcsql17_17.10.6.1-1_amd64.apk - else - case $(uname -m) in - aarch64 | arm64 | armv8) - installMicrosoftSqlServerODBC_arch=arm64 - ;; - *) - installMicrosoftSqlServerODBC_arch=amd64 - ;; - esac - curl -sSLf -o /tmp/src/msodbcsql.apk https://download.microsoft.com/download/3/5/5/355d7943-a338-41a7-858d-53b259ea33f5/msodbcsql18_18.3.3.1-1_$installMicrosoftSqlServerODBC_arch.apk - fi - printf '\n' | apk add --allow-untrusted /tmp/src/msodbcsql.apk - rm -rf /tmp/src/msodbcsql.apk - ;; - debian) - printf -- '- installing the Microsoft APT key\n' - if test $DISTRO_VERSION_NUMBER -eq 11; then - curl -sSLf -o /etc/apt/trusted.gpg.d/microsoft.asc https://packages.microsoft.com/keys/microsoft.asc - elif test $DISTRO_VERSION_NUMBER -ge 12; then - curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor --yes --output /usr/share/keyrings/microsoft-prod.gpg - else - # apt-key is deprecated - curl -sSLf https://packages.microsoft.com/keys/microsoft.asc | apt-key add - - fi - if ! test -f /etc/apt/sources.list.d/mssql-release.list; then - printf -- '- adding the Microsoft APT source list\n' - curl -sSLf https://packages.microsoft.com/config/debian/$DISTRO_VERSION_NUMBER/prod.list >/etc/apt/sources.list.d/mssql-release.list - invokeAptGetUpdate - fi - printf -- '- installing the APT package\n' - if test $PHP_MAJMIN_VERSION -le 703; then - ACCEPT_EULA=Y apt-get install -qqy --no-install-recommends msodbcsql17 - elif test $DISTRO_VERSION_NUMBER -ge 9 && test $DISTRO_VERSION_NUMBER -le 12; then - # On Debian 9 to 12 we have both msodbcsql17 and msodbcsql18: let's install just one - ACCEPT_EULA=Y apt-get install -qqy --no-install-recommends msodbcsql18 - else - ACCEPT_EULA=Y apt-get install -qqy --no-install-recommends '^msodbcsql[0-9]+$' - fi - ;; - esac -} - -# Check if libaom is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibaomInstalled() { - if ! test -f /usr/local/lib/libaom.so && ! test -f /usr/lib/libaom.so && ! test -f /usr/lib/x86_64*/libaom.so; then - return 1 - fi - if ! test -f /usr/local/include/aom/aom_codec.h && ! test -f /usr/include/aom/aom_codec.h; then - return 1 - fi - return 0 -} - -# Install libaom -installLibaom() { - printf 'Installing libaom\n' - installLibaom_version=3.10.0 - installLibaom_dir="$(getPackageSource https://aomedia.googlesource.com/aom/+archive/v$installLibaom_version.tar.gz)" - mkdir -- "$installLibaom_dir/my.build" - cd -- "$installLibaom_dir/my.build" - cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=1 -DENABLE_DOCS=0 -DENABLE_EXAMPLES=0 -DENABLE_TESTDATA=0 -DENABLE_TESTS=0 -DENABLE_TOOLS=0 -DCMAKE_INSTALL_LIBDIR:PATH=lib .. - ninja -j $(getProcessorCount) install - cd - >/dev/null - ldconfig || true -} - -# Check if libdav1d is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibdav1dInstalled() { - if ! test -f /usr/local/lib/libdav1d.so && ! test -f /usr/lib/libdav1d.so && ! test -f /usr/lib/x86_64*/libdav1d.so; then - return 1 - fi - if ! test -f /usr/local/include/dav1d/dav1d.h && ! test -f /usr/include/dav1d/dav1d.h; then - return 1 - fi - return 0 -} - -# Install libdav1d -installLibdav1d() { - printf 'Installing libdav1d\n' - installLibdav1d_dir="$(getPackageSource https://github.com/videolan/dav1d/archive/refs/tags/1.3.0.tar.gz)" - mkdir -- "$installLibdav1d_dir/build" - cd -- "$installLibdav1d_dir/build" - meson --buildtype release -Dprefix=/usr .. - ninja -j $(getProcessorCount) install - cd - >/dev/null - if test -f /usr/lib/$TARGET_TRIPLET/libdav1d.so && ! test -f /usr/lib/libdav1d.so; then - ln -s /usr/lib/$TARGET_TRIPLET/libdav1d.so /usr/lib/ - fi - ldconfig || true -} - -# Check if libyuv is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibyuvInstalled() { - if ! test -f /usr/local/lib/libyuv.so && ! test -f /usr/lib/libyuv.so && ! test -f /usr/lib/x86_64*/libyuv.so && ! test -f /usr/lib/x86_64*/libyuv.so.*; then - return 1 - fi - if ! test -f /usr/local/include/libyuv.h && ! test -f /usr/include/libyuv.h; then - return 1 - fi - return 0 -} - -# Install libyuv -installLibyuv() { - printf 'Installing libyuv\n' - installLibyuv_dir="$(getPackageSource https://chromium.googlesource.com/libyuv/libyuv/+archive/d359a9f922af840b043535d43cf9d38b220d102e.tar.gz)" - mkdir -- "$installLibyuv_dir/build" - cd -- "$installLibyuv_dir/build" - cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr -B. .. - make -j$(getProcessorCount) install - cd - >/dev/null -} - -# Check if libavif is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibavifInstalled() { - if ! test -f /usr/local/lib/libavif.so && ! test -f /usr/lib/libavif.so && ! test -f /usr/lib/x86_64*/libavif.so; then - return 1 - fi - if ! test -f /usr/local/include/avif/avif.h && ! test -f /usr/include/avif/avif.h; then - return 1 - fi - return 0 -} - -# Install libavif -installLibavif() { - printf 'Installing libavif\n' - installLibavif_dir="$(getPackageSource https://codeload.github.com/AOMediaCodec/libavif/tar.gz/refs/tags/v1.0.3)" - mkdir -- "$installLibavif_dir/build" - cd -- "$installLibavif_dir/build" - cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON -DAVIF_CODEC_AOM=ON -DCMAKE_INSTALL_LIBDIR:PATH=lib - make -j$(getProcessorCount) install - cd - >/dev/null -} - -# Install libmpdec -installLibMPDec() { - installLibMPDec_src="$(getPackageSource https://www.bytereef.org/software/mpdecimal/releases/mpdecimal-2.5.1.tar.gz)" - cd -- "$installLibMPDec_src" - ./configure --disable-cxx - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -# Check if libdatrie is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibDatrieInstalled() { - if ! test -f /usr/local/lib/libdatrie.so && ! test -f /usr/lib/libdatrie.so && ! test -f /usr/lib/x86_64*/libdatrie.so; then - return 1 - fi - if ! test -f /usr/local/include/datrie/trie.h && ! test -f /usr/include/datrie/trie.h; then - return 1 - fi - return 0 -} - -# Install libdatrie -installLibDatrie() { - printf 'Installing libdatrie\n' - installLibDatrie_src="$(getPackageSource https://github.com/tlwg/libdatrie/releases/download/v0.2.13/libdatrie-0.2.13.tar.xz)" - cd -- "$installLibDatrie_src" - ./configure - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -# Check if libdatrie is installed -# -# Return: -# 0 (true) -# 1 (false) -isLibThaiInstalled() { - return 1 - if ! test -f /usr/local/lib/libthai.so && ! test -f /usr/lib/libthai.so && ! test -f /usr/lib/x86_64*/libthai.so; then - return 1 - fi - if ! test -f /usr/local/include/thai/thailib.h && ! test -f /usr/include/thai/thailib.h; then - return 1 - fi - return 0 -} - -# Install libdatrie -installLibThai() { - printf 'Installing libthai\n' - installLibThai_src="$(getPackageSource https://github.com/tlwg/libthai/releases/download/v0.1.29/libthai-0.1.29.tar.xz)" - cd -- "$installLibThai_src" - ./configure - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -isLibTommathInstalled() { - if test -f /usr/local/lib/libtommath.a && test -f /usr/local/include/tommath.h; then - return 0 - fi - return 1 -} - -installLibTommath() { - printf 'Installing libtommath\n' - installLibTommath_src="$(getPackageSource https://github.com/libtom/libtommath/releases/download/v1.3.0/ltm-1.3.0.tar.xz)" - mkdir -p "$installLibTommath_src/build" - cd -- "$installLibTommath_src/build" - CFLAGS='-fPIC' cmake -DCMAKE_BUILD_TYPE=Release .. - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -isLibTomcryptInstalled() { - if test -f /usr/local/lib/libtomcrypt.a && test -f /usr/local/include/tomcrypt.h; then - return 0 - fi - return 1 -} - -installLibTomcrypt() { - printf 'Installing libtomcrypt\n' - installLibTomcrypt_src="$(getPackageSource https://github.com/libtom/libtomcrypt/releases/download/v1.18.2/crypt-1.18.2.tar.xz)" - cd -- "$installLibTomcrypt_src" - CFLAGS='-fPIC' make -j$(getProcessorCount) - make install -} - -isFirebirdInstalled() { - if test -f /usr/lib/libfbclient.so && test -f /usr/include/ibase.h; then - return 0 - fi - if test -d /tmp/src/firebird; then - return 0 - fi - return 1 -} - -installFirebird() { - printf 'Installing firebird\n' - if test $PHP_MAJMIN_VERSION -ge 804; then - installFirebird_src="$(getPackageSource https://github.com/FirebirdSQL/firebird/releases/download/v5.0.2/Firebird-5.0.2.1613-0-source.tar.xz)" - cd -- "$installFirebird_src" - ./configure --enable-client-only - make -j$(getProcessorCount) - cp -Rd gen/Release/firebird/include/* /usr/include - cp -Rd gen/Release/firebird/lib/* /usr/lib - cd - >/dev/null - else - mv "$(getPackageSource https://github.com/FirebirdSQL/firebird/releases/download/R2_5_9/Firebird-2.5.9.27139-0.tar.bz2)" /tmp/src/firebird - cd /tmp/src/firebird - # Patch rwlock.h (this has been fixed in later release of firebird 3.x) - sed -i '194s/.*/#if 0/' src/common/classes/rwlock.h - ./configure --with-system-icu - # -j option can't be used: make targets must be compiled sequentially - make -s btyacc_binary gpre_boot libfbstatic libfbclient - cp gen/firebird/lib/libfbclient.so /usr/lib/ - ln -s /usr/lib/libfbclient.so /usr/lib/libfbclient.so.2 - cd - >/dev/null - fi -} - -isLibXCryptInstalled() { - if ! test -f /usr/local/lib/libcrypt.so && ! test -f /usr/lib/libcrypt.so && ! test -f /usr/lib/x86_64*/libcrypt.so; then - return 1 - fi - return 0 -} - -installLibXCrypt() { - printf 'Installing libxcrypt\n' - installLibXCrypt_version=4.4.36 - installLibXCrypt_src="$(getPackageSource "https://github.com/besser82/libxcrypt/releases/download/v$installLibXCrypt_version/libxcrypt-$installLibXCrypt_version.tar.xz")" - cd -- "$installLibXCrypt_src" - ./configure --prefix /usr - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -isLibenchant1Installed() { - if test -f /usr/lib/libenchant.so || test -f /usr/local/lib/libenchant.so; then - return 0 - fi - return 1 -} - -installLibenchant1() { - printf 'Installing libenchant1\n' - installLibenchant1_src="$(getPackageSource https://github.com/rrthomas/enchant/releases/download/enchant-1-6-1/enchant-1.6.1.tar.gz)" - cd -- "$installLibenchant1_src" - ./configure - make -j$(getProcessorCount) - make install - cd - >/dev/null -} - -# Install Composer -installComposer() { - installComposer_version="$(getWantedPHPModuleVersion @composer)" - installComposer_version="${installComposer_version#^}" - if test -z "$installComposer_version"; then - installComposer_fullname=composer - installComposer_flags='' - else - installComposer_fullname="$(printf 'composer v%s' "$installComposer_version")" - if printf '%s' "$installComposer_version" | grep -Eq '^[0-9]+$'; then - installComposer_flags="--$installComposer_version" - else - installComposer_flags="--version=$installComposer_version" - fi - fi - printf '### INSTALLING %s ###\n' "$installComposer_fullname" - actuallyInstallComposer /usr/local/bin composer "$installComposer_flags" -} - -# Actually install composer -# -# Arguments: -# $1: the directory where composer should be installed (required) -# $2: the composer filename (optional, default: composer) -# $3. additional flags for the composer installed (optional) -actuallyInstallComposer() { - actuallyInstallComposer_installer="$(mktemp -p /tmp/src)" - curl -sSLf -o "$actuallyInstallComposer_installer" https://getcomposer.org/installer - actuallyInstallComposer_expectedSignature="$(curl -sSLf https://composer.github.io/installer.sig)" - actuallyInstallComposer_actualSignature="$(php -n -r "echo hash_file('sha384', '$actuallyInstallComposer_installer');")" - if test "$actuallyInstallComposer_expectedSignature" != "$actuallyInstallComposer_actualSignature"; then - printf 'Verification of composer installer failed!\nExpected signature: %s\nActual signature: %s\n' "$actuallyInstallComposer_expectedSignature" "$actuallyInstallComposer_actualSignature" >&2 - exit 1 - fi - actuallyInstallComposer_flags="--install-dir=$1" - if test -n "${2:-}"; then - actuallyInstallComposer_flags="$actuallyInstallComposer_flags --filename=$2" - else - actuallyInstallComposer_flags="$actuallyInstallComposer_flags --filename=composer" - fi - if test -n "${3:-}"; then - actuallyInstallComposer_flags="$actuallyInstallComposer_flags $3" - fi - php "$actuallyInstallComposer_installer" $actuallyInstallComposer_flags - rm -- "$actuallyInstallComposer_installer" -} - -# Install ionCube Loader -installIonCubeLoader() { - installIonCubeLoader_version='' - case "$DISTRO" in - alpine) - # For 14.4.0 we have a Segmentation Fault - installIonCubeLoader_version=14.0.0 - ;; - esac - installIonCubeLoader_versionForUrl='' - installIonCubeLoader_versionForMessage=latest - if test -n "$installIonCubeLoader_version"; then - installIonCubeLoader_versionForUrl="_$installIonCubeLoader_version" - installIonCubeLoader_versionForMessage="v$installIonCubeLoader_version" - fi - # See https://www.ioncube.com/loaders.php - case $PHP_BITS in - 32) - case $(uname -m) in - aarch* | arm*) - installIonCubeLoader_url="https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_armv7l$installIonCubeLoader_versionForUrl.tar.gz" - ;; - *) - installIonCubeLoader_url="https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86$installIonCubeLoader_versionForUrl.tar.gz" - ;; - esac - ;; - *) - case $(uname -m) in - aarch64 | arm64 | armv8) - installIonCubeLoader_url="https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_aarch64$installIonCubeLoader_versionForUrl.tar.gz" - ;; - *) - installIonCubeLoader_url="https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64$installIonCubeLoader_versionForUrl.tar.gz" - ;; - esac - ;; - esac - printf 'Downloading ionCube Loader (%s)... ' "$installIonCubeLoader_versionForMessage" - installIonCubeLoader_dir="$(getPackageSource $installIonCubeLoader_url)" - echo 'done.' - installIonCubeLoader_so=$(php -r "printf('ioncube_loader_lin_%s.%s%s.so', PHP_MAJOR_VERSION, PHP_MINOR_VERSION, ZEND_THREAD_SAFE ? '_ts' : '');") - cp "$installIonCubeLoader_dir/$installIonCubeLoader_so" "$(getPHPExtensionsDir)/ioncube_loader.so" -} - -# Install SourceGuardian Loader -installSourceGuardian() { - # See https://www.sourceguardian.com/loaders.html - case $PHP_BITS in - 32) - installSourceGuardian_url=https://www.sourceguardian.com/loaders/download/loaders.linux-i386.tar.gz - ;; - *) - case $(uname -m) in - aarch64 | arm64 | armv8) - installSourceGuardian_url=https://www.sourceguardian.com/loaders/download/loaders.linux-aarch64.tar.gz - ;; - *) - installSourceGuardian_url=https://www.sourceguardian.com/loaders/download/loaders.linux-x86_64.tar.gz - ;; - esac - ;; - esac - printf 'Downloading SourceGuardian... ' - installSourceGuardian_dir="$(getPackageSource $installSourceGuardian_url)" - printf 'done (version: %s)\n' "$(cat "$installSourceGuardian_dir/version")" - for installSourceGuardian_phpv in $PHP_MAJDOTMINDOTPAT_VERSION $PHP_MAJDOTMIN_VERSION; do - installSourceGuardian_file="$installSourceGuardian_dir/ixed.$PHP_MAJDOTMIN_VERSION" - if test $PHP_THREADSAFE -eq 1; then - installSourceGuardian_file="${installSourceGuardian_file}ts" - fi - installSourceGuardian_file="${installSourceGuardian_file}.lin" - if test -f "$installSourceGuardian_file"; then - mv "$installSourceGuardian_file" "$(getPHPExtensionsDir)/sourceguardian.so" - return - fi - done - printf 'Unable to find a SourceGuardian compatible with PHP %s or PHP %s.\nAvailable SourceGuardian versions:\n' "$PHP_MAJDOTMINDOTPAT_VERSION" "$PHP_MAJDOTMIN_VERSION" >&2 - ls -1 "$installSourceGuardian_dir" | grep -E '^ixed\..*\.lin$' | sed -E 's/^[^0-9]+([0-9]+(\.[0-9]+)*).*$/\1/' | sort | uniq >&2 - exit 1 -} - -# Install Cargo (if not yet installed) -installCargo() { - if command -v cargo >/dev/null; then - return - fi - installCargo_cargoversion= - if ! test -f "$HOME/.cargo/env"; then - printf '# Installing cargo\n' - case "$DISTRO" in - alpine) - # see https://github.com/hyperledger/indy-vdr/issues/69#issuecomment-998104850 - export RUSTFLAGS='-C target-feature=-crt-static' - ;; - esac - curl https://sh.rustup.rs -sSf | sh -s -- -y -q - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -le 310; then - # With version 1.84.0 we have this error: - # Error relocating /root/.rustup/toolchains/stable-x86_64-unknown-linux-musl/bin/cargo: posix_spawn_file_actions_addchdir_np: symbol not found - # See https://github.com/rust-lang/rust/pull/131851#issue-2595663507 - installCargo_cargoversion=1.83.0 - fi - ;; - esac - fi - . "$HOME/.cargo/env" - if test -n "$installCargo_cargoversion"; then - rustup default -- "$installCargo_cargoversion" - fi - if test -z "${IPE_UNINSTALL_CARGO:-}"; then - IPE_UNINSTALL_CARGO=y - fi -} - -installNewRelic() { - printf '# Installing newrelic\n' - # see https://docs.newrelic.com/docs/apm/agents/php-agent/getting-started/php-agent-compatibility-requirements/ - if test $PHP_MAJMIN_VERSION -le 701; then - installNewRelic_baseUrl=https://download.newrelic.com/php_agent/archive/10.21.0.11/ - else - installNewRelic_baseUrl=https://download.newrelic.com/php_agent/release/ - fi - installNewRelic_search='\bnewrelic-php[0-9.]*-[0-9]+(\.[0-9]+)*-linux' - case "$DISTRO" in - alpine) - installNewRelic_search="$installNewRelic_search-musl" - ;; - esac - installNewRelic_file="$(curl -sSLf -o- "$installNewRelic_baseUrl" | sed -E 's/<[^>]*>//g' | grep -Eo "$installNewRelic_search.tar.gz" | sort | head -1)" - installNewRelic_url="$installNewRelic_baseUrl$installNewRelic_file" - installNewRelic_src="$(getPackageSource "$installNewRelic_url")" - cd -- "$installNewRelic_src" - NR_INSTALL_USE_CP_NOT_LN=1 NR_INSTALL_SILENT=1 ./newrelic-install install - case "${IPE_NEWRELIC_DAEMON:-}" in - 1 | y* | Y*) - NR_INSTALL_USE_CP_NOT_LN=1 NR_INSTALL_SILENT=1 ./newrelic-install install_daemon - ;; - esac - case "${IPE_NEWRELIC_KEEPLOG:-}" in - 1 | y* | Y*) ;; - *) - rm -f /tmp/nrinstall-*.tar - ;; - esac - cd - >/dev/null - cat <&2 - fi - if test -n "$(getModuleSourceCodePath "$1")"; then - printf '### WARNING the module "%s" is bundled with PHP, you can NOT specify a source code path for it\n' "$1" >&2 - fi - case "$1" in - dba) - if test -e /usr/lib/$TARGET_TRIPLET/libdb-5.3.so && ! test -e /usr/lib/libdb-5.3.so; then - ln -s /usr/lib/$TARGET_TRIPLET/libdb-5.3.so /usr/lib/ - fi - if test $PHP_MAJMIN_VERSION -le 505; then - docker-php-source extract - patch /usr/src/php/ext/dba/config.m4 </dev/null - ;; - oci8 | pdo_oci) - installOracleInstantClient - if test "$1" = oci8; then - docker-php-ext-configure "$1" "--with-oci8=instantclient,$ORACLE_INSTANTCLIENT_LIBPATH" - elif test "$1" = pdo_oci; then - docker-php-ext-configure "$1" "--with-pdo-oci=instantclient,$ORACLE_INSTANTCLIENT_LIBPATH" - fi - ;; - pdo_odbc) - docker-php-ext-configure pdo_odbc --with-pdo-odbc=unixODBC,/usr - ;; - snmp) - case "$DISTRO" in - alpine) - mkdir -p -m 0755 /var/lib/net-snmp/mib_indexes - ;; - esac - ;; - sockets) - case "$PHP_MAJDOTMINDOTPAT_VERSION" in - 8.0.15 | 8.1.2) - sed -i '70 i #ifndef _GNU_SOURCE' /usr/src/php/ext/sockets/config.m4 - sed -i '71 i #define _GNU_SOURCE' /usr/src/php/ext/sockets/config.m4 - sed -i '72 i #endif' /usr/src/php/ext/sockets/config.m4 - ;; - esac - ;; - sybase_ct) - docker-php-ext-configure sybase_ct --with-sybase-ct=/usr - ;; - tidy) - case "$DISTRO" in - alpine) - if ! test -f /usr/include/buffio.h; then - ln -s /usr/include/tidybuffio.h /usr/include/buffio.h - UNNEEDED_PACKAGE_LINKS="$UNNEEDED_PACKAGE_LINKS /usr/include/buffio.h" - fi - ;; - esac - ;; - zip) - if test $PHP_MAJMIN_VERSION -le 505; then - docker-php-ext-configure zip - elif test $PHP_MAJMIN_VERSION -le 703; then - docker-php-ext-configure zip --with-libzip - else - docker-php-ext-configure zip --with-zip - fi - ;; - esac - installBundledModule_errBefore="$(php -r 'return;' 2>&1 || true)" - docker-php-ext-install -j$(getProcessorCount) "$1" - case "$1" in - imap) - case "$DISTRO_VERSION" in - debian@9) - dpkg -r libc-client2007e-dev - ;; - esac - ;; - esac - case "${IPE_SKIP_CHECK:-}" in - 1 | y* | Y*) ;; - *) - php -r 'return;' >/dev/null 2>/dev/null || true - installBundledModule_errAfter="$(php -r 'return;' 2>&1 || true)" - if test "$installBundledModule_errAfter" != "$installBundledModule_errBefore"; then - printf 'PHP has problems after installing the "%s" extension:\n%s\n' "$1" "$installBundledModule_errAfter" >&2 - rm "$PHP_INI_DIR/conf.d/docker-php-ext-$1.ini" || true - return 1 - fi - ;; - esac -} - -# Fetch a tar.gz file, extract it and returns the path of the extracted folder. -# -# Arguments: -# $1: the URL of the file to be downloaded -# -# Output: -# The path of the extracted directory -getPackageSource() { - mkdir -p /tmp/src - getPackageSource_tempFile=$(mktemp -p /tmp/src) - curl -sSLf -o "$getPackageSource_tempFile" "$1" - getPackageSource_tempDir=$(mktemp -p /tmp/src -d) - cd "$getPackageSource_tempDir" - tar -xzf "$getPackageSource_tempFile" 2>/dev/null || tar -xf "$getPackageSource_tempFile" 2>/dev/null || ( - if command -v bsdtar >/dev/null; then - bsdtar -xf "$getPackageSource_tempFile" - else - unzip -q "$getPackageSource_tempFile" - fi - ) - cd - >/dev/null - unlink "$getPackageSource_tempFile" - getPackageSource_outDir='' - for getPackageSource_i in $(ls "$getPackageSource_tempDir"); do - if test -n "$getPackageSource_outDir" || test -f "$getPackageSource_tempDir/$getPackageSource_i"; then - getPackageSource_outDir='' - break - fi - getPackageSource_outDir="$getPackageSource_tempDir/$getPackageSource_i" - done - if test -n "$getPackageSource_outDir"; then - printf '%s' "$getPackageSource_outDir" - else - printf '%s' "$getPackageSource_tempDir" - fi -} - -# Install a PECL/remote PHP module given its handle -# -# Arguments: -# $1: the handle of the PHP module -installRemoteModule() { - installRemoteModule_module="$1" - printf '### INSTALLING REMOTE MODULE %s ###\n' "$installRemoteModule_module" - installRemoteModule_version="$(resolvePHPModuleVersion "$installRemoteModule_module")" - installRemoteModule_path="$(getModuleSourceCodePath "$installRemoteModule_module")" - rm -rf "$CONFIGURE_FILE" - installRemoteModule_manuallyInstalled=0 - installRemoteModule_cppflags='' - installRemoteModule_ini_basename='' - installRemoteModule_ini_extra='' - case "$installRemoteModule_module" in - amqp) - if test -z "$installRemoteModule_version"; then - if test "$DISTRO_VERSION" = debian@8; then - # in Debian Jessie we have librabbitmq version 0.5.2 - installRemoteModule_version=1.9.3 - elif test $PHP_MAJMIN_VERSION -le 505; then - installRemoteModule_version=1.9.4 - elif test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=1.11.0 - fi - fi - ;; - apcu) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=4.0.11 - fi - fi - ;; - apcu_bc) - # apcu_bc must be loaded after apcu - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - ;; - ast) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=1.0.16 - fi - fi - ;; - bitset) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.0.4 - fi - fi - ;; - blackfire) - case $(uname -m) in - i386 | i686 | x86) - installRemoteModule_tmp1=i386 - ;; - aarch64 | arm64 | armv8) - installRemoteModule_tmp1=arm64 - ;; - *) - installRemoteModule_tmp1=amd64 - ;; - esac - case $DISTRO in - alpine) - installRemoteModule_distro=alpine - ;; - *) - installRemoteModule_distro=linux - ;; - esac - installRemoteModule_tmp2=$(php -r 'echo PHP_MAJOR_VERSION . PHP_MINOR_VERSION . (ZEND_THREAD_SAFE ? "-zts" : "");') - installRemoteModule_tmp="$(mktemp -p /tmp/src -d)" - cd "$installRemoteModule_tmp" - curl -sSLf --user-agent Docker https://blackfire.io/api/v1/releases/probe/php/$installRemoteModule_distro/$installRemoteModule_tmp1/$installRemoteModule_tmp2 | tar xz - mv blackfire-*.so $(getPHPExtensionsDir)/blackfire.so - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - installRemoteModule_ini_extra="$(printf '%sblackfire.agent_socket=tcp://blackfire:8307\n' "$installRemoteModule_ini_extra")" - ;; - cassandra) - installRemoteModule_src="$(getPackageSource https://github.com/nano-interactive/ext-cassandra/tarball/1cf12c5ce49ed43a2c449bee4b7b23ce02a37bf0)" - cd "$installRemoteModule_src/ext" - phpize - ./configure - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - ;; - cmark) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=1.1.0 - fi - fi - if ! test -e /usr/local/lib/libcmark.so && ! test -e /usr/local/lib64/libcmark.so && ! test -e /usr/lib/libcmark.so && ! test -e /usr/lib64/libcmark.so && ! test -e /lib/libcmark.so; then - if test $(compareVersions "$(cmake --version | head -n1 | sed -E 's/^.* //')" '3.7') -lt 0; then - installRemoteModule_tmp=0.29.0 - else - installRemoteModule_tmp=0.31.1 - fi - cd "$(getPackageSource https://github.com/commonmark/cmark/archive/$installRemoteModule_tmp.tar.gz)" - make -s -j$(getProcessorCount) cmake_build - make -s -j$(getProcessorCount) install - cd - >/dev/null - case "$DISTRO" in - alpine) - if test -e /usr/local/lib64/libcmark.so.$installRemoteModule_tmp && ! test -e /usr/local/lib/libcmark.so.$installRemoteModule_tmp; then - ln -s /usr/local/lib64/libcmark.so.$installRemoteModule_tmp /usr/local/lib/ - fi - ;; - *) - ldconfig || true - ;; - esac - fi - ;; - csv) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=0.3.1 - fi - fi - ;; - ddtrace) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=0.75.0 - fi - if test -z "$installRemoteModule_version"; then - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -le 312; then - # cc is not supported due to a memcmp related bug - installRemoteModule_version=1.1.0 - fi - ;; - esac - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 0.75.0) -ge 0; then - installCargo - fi - ;; - decimal) - case "$DISTRO" in - alpine) - if ! test -f /usr/local/lib/libmpdec.so; then - installLibMPDec - fi - ;; - debian) - if test $DISTRO_MAJMIN_VERSION -ge 1200; then - if test -z "$(ldconfig -p | grep -E '\slibmpdec.so\s')"; then - installLibMPDec - fi - fi - ;; - esac - ;; - ds) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 703; then - installRemoteModule_version=1.3.0 - elif test $PHP_MAJMIN_VERSION -lt 704; then - installRemoteModule_version=1.4.0 - fi - fi - ;; - ecma_intl) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=alpha - fi - ;; - ev) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 800; then - installRemoteModule_version=1.1.5 - fi - fi - ;; - event) - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 2.4.0) -ge 0; then - # Enable internal debugging in Event - addConfigureOption enable-event-debug no - # Enable sockets support in Event - if php --ri sockets >/dev/null 2>/dev/null; then - addConfigureOption enable-event-sockets yes - else - addConfigureOption enable-event-sockets no - fi - # libevent installation prefix - addConfigureOption with-event-libevent-dir /usr - # Include libevent's pthreads library and enable thread safety support in Event - addConfigureOption with-event-pthreads yes - # Include libevent protocol-specific functionality support including HTTP, DNS, and RPC - addConfigureOption with-event-extra yes - # Include libevent OpenSSL support - addConfigureOption with-event-openssl yes - # PHP Namespace for all Event classes - if test -n "${IPE_EVENT_NAMESPACE:-}"; then - addConfigureOption with-event-ns "$IPE_EVENT_NAMESPACE" - else - addConfigureOption with-event-ns no - fi - # openssl installation prefix - addConfigureOption with-openssl-dir yes - elif test $(compareVersions "$installRemoteModule_version" 1.7.6) -ge 0; then - # Enable internal debugging in Event - addConfigureOption enable-event-debug no - # Enable sockets support in Event - if php --ri sockets >/dev/null 2>/dev/null; then - addConfigureOption enable-event-sockets yes - else - addConfigureOption enable-event-sockets no - fi - # libevent installation prefix - addConfigureOption with-event-libevent-dir /usr - # Include libevent's pthreads library and enable thread safety support in Event - addConfigureOption with-event-pthreads yes - # Include libevent protocol-specific functionality support including HTTP, DNS, and RPC - addConfigureOption with-event-extra yes - # Include libevent OpenSSL support - addConfigureOption with-event-openssl yes - # openssl installation prefix - addConfigureOption with-openssl-dir no - elif test $(compareVersions "$installRemoteModule_version" 1.3.0) -ge 0; then - # Enable internal debugging in event - addConfigureOption enable-event-debug no - # libevent installation prefix - addConfigureOption with-event-libevent-dir /usr - # Include libevent's pthreads library and enable thread safety support in event - addConfigureOption with-event-pthreads yes - # Include libevent protocol-specific functionality support including HTTP, DNS, and RPC - addConfigureOption with-event-extra yes - # Include libevent OpenSSL support - addConfigureOption with-event-openssl yes - # openssl installation prefix - addConfigureOption with-openssl-dir no - fi - # event must be loaded after sockets - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - ;; - gearman) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.1.2 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=2.1.3 - fi - fi - case "$DISTRO" in - alpine) - if ! test -e /usr/local/include/libgearman/gearman.h || ! test -e /usr/local/lib/libgearman.so; then - installRemoteModule_src="$(getPackageSource https://github.com/gearman/gearmand/releases/download/1.1.21/gearmand-1.1.21.tar.gz)" - cd -- "$installRemoteModule_src" - ./configure - make -j$(getProcessorCount) install-binPROGRAMS - make -j$(getProcessorCount) install-nobase_includeHEADERS - cd - >/dev/null - fi - ;; - esac - ;; - geoip) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=beta - fi - ;; - geos) - if test -z "$installRemoteModule_path"; then - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=dfe1ab17b0f155cc315bc13c75689371676e02e1 - fi - installRemoteModule_src="$(getPackageSource https://github.com/libgeos/php-geos/archive/$installRemoteModule_version.tar.gz)" - cd "$installRemoteModule_src" - ./autogen.sh - ./configure - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - fi - ;; - geospatial) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.2.1 - else - installRemoteModule_version=beta - fi - fi - ;; - gmagick) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.1.7RC3 - else - installRemoteModule_version=beta - fi - fi - ;; - grpc) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.33.1 - else - case "$DISTRO_VERSION" in - debian@8) - installRemoteModule_version=1.46.3 - ;; - alpine@3.7 | alpine@3.8 | debian@9) # With newer version: "This package requires GCC 7 or higher" - installRemoteModule_version=1.52.1 - ;; - esac - fi - fi - if test -z "$installRemoteModule_version" || test "$installRemoteModule_version" = 1.35.0; then - case "$DISTRO_VERSION" in - alpine@3.13) - installRemoteModule_cppflags='-Wno-maybe-uninitialized' - ;; - esac - fi - ;; - http) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.6.0 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=3.2.4 - fi - fi - if test $PHP_MAJMIN_VERSION -ge 700; then - if ! test -e /usr/local/lib/libidnkit.so; then - installRemoteModule_src="$(getPackageSource https://jprs.co.jp/idn/idnkit-2.3.tar.bz2)" - cd -- "$installRemoteModule_src" - CFLAGS=-Wno-incompatible-pointer-types ./configure - make -j$(getProcessorCount) install - cd - >/dev/null - fi - fi - # http must be loaded after raphf and propro - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - ;; - igbinary) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.0.8 - fi - fi - ;; - imap) - # Include Kerberos Support - addConfigureOption with-kerberos yes - # Include SSL Support - addConfigureOption with-imap-ssl yes - ;; - imagick) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 506; then - installRemoteModule_version=3.7.0 - fi - fi - ;; - inotify) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.1.6 - fi - fi - ;; - ion) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=alpha - fi - if ! test -f /usr/local/lib/libionc.so || ! test -f /usr/local/include/ionc/ion.h; then - echo 'Installing ion-c... ' - installRemoteModule_src="$(mktemp -p /tmp/src -d)" - git clone -q -c advice.detachedHead=false --depth 1 --branch v1.1.3 https://github.com/amzn/ion-c.git "$installRemoteModule_src/ion" - ( - cd "$installRemoteModule_src/ion" - git submodule init -q - git submodule update -q - mkdir -p build - cd build - CFLAGS='-Wno-incompatible-pointer-types -Wno-stringop-overflow -Wno-discarded-qualifiers' cmake -DCMAKE_BUILD_TYPE=Release .. -Wno-dev - make clean - make -j$(getProcessorCount) install - ) - rm -rf "$installRemoteModule_src" - fi - addConfigureOption with-ion "shared,/usr/local" - ;; - ioncube_loader) - installIonCubeLoader - installRemoteModule_manuallyInstalled=1 - ;; - jsmin) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=2.0.1 - fi - fi - ;; - jsonpath) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 800; then - installRemoteModule_version=1.0.1 - fi - fi - ;; - luasandbox) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 702; then - installRemoteModule_version=3.0.3 - fi - fi - ;; - lz4) - if test -z "$installRemoteModule_path"; then - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=0.4.3 - fi - installRemoteModule_src="$(getPackageSource https://github.com/kjdev/php-ext-lz4/archive/refs/tags/$installRemoteModule_version.tar.gz)" - cd "$installRemoteModule_src" - phpize - ./configure --with-lz4-includedir=/usr - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - fi - ;; - lzf) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 702; then - installRemoteModule_version=1.6.8 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" '1.5.0') -ge 0; then - # Sacrifice speed in favour of compression ratio? - case "${IPE_LZF_BETTERCOMPRESSION:-}" in - 1 | y* | Y*) - addConfigureOption 'enable-lzf-better-compression' 'yes' - ;; - *) - addConfigureOption 'enable-lzf-better-compression' 'no' - ;; - esac - fi - ;; - mailparse) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.1.6 - elif test $PHP_MAJMIN_VERSION -le 702; then - installRemoteModule_version=3.1.3 - fi - fi - ;; - memcache) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.2.7 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=4.0.5.2 - fi - fi - ;; - memcached) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.2.0 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - # Set the path to libmemcached install prefix - addConfigureOption 'with-libmemcached-dir' 'no' - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" '3.0.0') -ge 0; then - # Set the path to ZLIB install prefix - addConfigureOption 'with-zlib-dir' 'no' - # Use system FastLZ library - addConfigureOption 'with-system-fastlz' 'no' - # Enable memcached igbinary serializer support - if php --ri igbinary >/dev/null 2>/dev/null; then - addConfigureOption 'enable-memcached-igbinary' 'yes' - else - addConfigureOption 'enable-memcached-igbinary' 'no' - fi - # Enable memcached msgpack serializer support - if php --ri msgpack >/dev/null 2>/dev/null; then - addConfigureOption 'enable-memcached-msgpack' 'yes' - else - addConfigureOption 'enable-memcached-msgpack' 'no' - fi - # Enable memcached json serializer support - addConfigureOption 'enable-memcached-json' 'yes' - # Enable memcached protocol support - addConfigureOption 'enable-memcached-protocol' 'no' # https://github.com/php-memcached-dev/php-memcached/issues/418#issuecomment-449587972 - # Enable memcached sasl support - addConfigureOption 'enable-memcached-sasl' 'yes' - # Enable memcached session handler support - addConfigureOption 'enable-memcached-session' 'yes' - fi - # memcached must be loaded after msgpack - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - ;; - memprof) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.0.0 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=2.1.0 - fi - fi - ;; - mongo) - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" '1.5.0') -ge 0; then - # Build with Cyrus SASL (MongoDB Enterprise Authentication) support? - addConfigureOption '-with-mongo-sasl' 'yes' - fi - ;; - mongodb) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 505; then - installRemoteModule_version=1.5.5 - elif test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.7.5 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=1.9.2 - elif test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=1.11.1 - elif test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=1.16.2 - elif test $PHP_MAJMIN_VERSION -le 800; then - installRemoteModule_version=1.20.1 - fi - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 1.17.0) -ge 0; then - # Enable developer flags? (yes/no) - addConfigureOption enable-mongodb-developer-flags no - # Enable code coverage? (yes/no) - addConfigureOption enable-mongodb-coverage no - # Use system libraries for libbson, libmongoc, and libmongocrypt? (yes/no) - addConfigureOption with-mongodb-system-libs no - # Enable client-side encryption? (auto/yes/no) - addConfigureOption with-mongodb-client-side-encryption yes - # Enable Snappy for compression? (auto/yes/no) - addConfigureOption with-mongodb-snappy yes - # Enable zlib for compression? (auto/system/bundled/no) - addConfigureOption with-mongodb-zlib yes - # Enable zstd for compression? (auto/yes/no) - addConfigureOption with-mongodb-zstd yes - # Enable SASL for Kerberos authentication? (auto/cyrus/no) - addConfigureOption with-mongodb-sasl yes - # Enable crypto and TLS? (auto/openssl/libressl/darwin/no) - addConfigureOption with-mongodb-ssl yes - # Use system crypto profile (OpenSSL only)? (yes/no) - addConfigureOption enable-mongodb-crypto-system-profile yes - # Use bundled or system utf8proc for SCRAM-SHA-256 SASLprep? (bundled/system) - addConfigureOption with-mongodb-utf8proc bundled - fi - ;; - mosquitto) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=beta - fi - ;; - msgpack) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.5.7 - fi - fi - ;; - newrelic) - installNewRelic - installRemoteModule_manuallyInstalled=2 - ;; - oauth) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.2.3 - fi - fi - ;; - oci8 | pdo_oci) - installOracleInstantClient - if test "$installRemoteModule_module" = oci8; then - addConfigureOption with-oci8 "instantclient,$ORACLE_INSTANTCLIENT_LIBPATH" - elif test "$installRemoteModule_module" = pdo_oci; then - addConfigureOption with-pdo-oci "instantclient,$ORACLE_INSTANTCLIENT_LIBPATH" - fi - ;; - opencensus) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=alpha - fi - ;; - openswoole) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 704; then - installRemoteModule_version=4.10.0 - elif test $PHP_MAJMIN_VERSION -lt 801; then - installRemoteModule_version=22.0.0 - elif test $PHP_MAJMIN_VERSION -lt 802; then - installRemoteModule_version=22.1.2 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if php --ri sockets >/dev/null 2>/dev/null; then - installRemoteModule_sockets=yes - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - else - installRemoteModule_sockets=no - fi - installRemoteModule_openssl=yes - if test -n "$installRemoteModule_version" && test $(compareVersions "$installRemoteModule_version" 22.1.2) -ge 0; then - # enable coroutine sockets? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 protocol? - addConfigureOption enable-http2 yes - # enable coroutine mysqlnd? - addConfigureOption enable-mysqlnd yes - # enable coroutine curl? - addConfigureOption enable-hook-curl yes - # enable coroutine postgres? - addConfigureOption with-postgres yes - elif test $(compareVersions "$installRemoteModule_version" 22.1.1) -ge 0; then - # enable c-ares support? - addConfigureOption enable-cares yes - # enable coroutine sockets? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 protocol? - addConfigureOption enable-http2 yes - # enable coroutine mysqlnd? - addConfigureOption enable-mysqlnd yes - # enable coroutine curl? - addConfigureOption enable-hook-curl yes - # enable coroutine postgres? - addConfigureOption with-postgres yes - elif test $(compareVersions "$installRemoteModule_version" 22.1.0) -ge 0; then - # enable coroutine sockets? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 protocol? - addConfigureOption enable-http2 yes - # enable coroutine mysqlnd? - addConfigureOption enable-mysqlnd yes - # enable coroutine curl? - addConfigureOption enable-hook-curl yes - # enable coroutine postgres? - addConfigureOption with-postgres yes - elif test $(compareVersions "$installRemoteModule_version" 22.0.0) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable hook curl support? - addConfigureOption enable-hook-curl yes - # enable postgres support? - addConfigureOption with-postgres yes - elif test $(compareVersions "$installRemoteModule_version" 4.8.0) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable json support? - addConfigureOption enable-swoole-json yes - # enable curl support? - addConfigureOption enable-swoole-curl yes - # enable postgres support? - addConfigureOption with-postgres yes - else - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable json support? - addConfigureOption enable-swoole-json yes - # enable curl support? - addConfigureOption enable-swoole-curl yes - fi - ;; - operator) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=beta - fi - ;; - parallel) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=0.8.3 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=1.1.4 - fi - fi - ;; - parle) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 704; then - installRemoteModule_version=0.8.3 - else - installRemoteModule_version=beta - fi - fi - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 0.8.4) -ge 0; then - # Enable internal UTF-32 support in parle - addConfigureOption enable-parle-utf32 yes - fi - ;; - pcov) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=0.9.0 - fi - fi - ;; - phalcon) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMINPAT_VERSION -lt 70401; then - installRemoteModule_version=4.1.2 - elif test $PHP_MAJMIN_VERSION -lt 800; then - installRemoteModule_version=5.4.0 - fi - fi - installRemoteModule_cppflags='-Wno-incompatible-pointer-types' - ;; - php_trie) - if ! test -f /usr/local/include/hat-trie/include/tsl/htrie_map.h; then - installRemoteModule_src="$(getPackageSource https://codeload.github.com/Tessil/hat-trie/tar.gz/v0.6.0)" - mkdir -p /usr/local/include/hat-trie - mv "$installRemoteModule_src/include" /usr/local/include/hat-trie - fi - ;; - pq) - # pq must be loaded after raphf - installRemoteModule_ini_basename="xx-php-ext-$installRemoteModule_module" - ;; - propro) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.0.2 - fi - fi - ;; - protobuf) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=3.12.4 - elif test $PHP_MAJMIN_VERSION -lt 800; then - installRemoteModule_version=3.24.4 - elif test $PHP_MAJMIN_VERSION -lt 801; then - installRemoteModule_version=3.25.3 - fi - fi - ;; - psr) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 506; then - installRemoteModule_version=0.5.1 - elif test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=0.6.1 - elif test $PHP_MAJMIN_VERSION -lt 703; then - installRemoteModule_version=1.1.0 - fi - fi - ;; - pthreads) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.0.10 - fi - fi - ;; - raphf) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.1.2 - fi - fi - ;; - rdkafka) - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version"; then - installRemoteModule_version1='' - if test $PHP_MAJMIN_VERSION -le 505; then - installRemoteModule_version1=3.0.5 - elif test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version1=4.1.2 - fi - installRemoteModule_version2='' - case "$DISTRO" in - alpine) - installRemoteModule_tmp='librdkafka' - ;; - debian) - installRemoteModule_tmp='librdkafka*' - ;; - *) - installRemoteModule_tmp='' - ;; - esac - if test -n "$installRemoteModule_tmp"; then - installRemoteModule_tmp="$(getInstalledPackageVersion "$installRemoteModule_tmp")" - if test -n "$installRemoteModule_tmp" && test $(compareVersions "$installRemoteModule_tmp" '0.11.0') -lt 0; then - installRemoteModule_version2=3.1.3 - fi - fi - if test -z "$installRemoteModule_version1" || test -z "$installRemoteModule_version2"; then - installRemoteModule_version="$installRemoteModule_version1$installRemoteModule_version2" - elif test $(compareVersions "$installRemoteModule_version1" "$installRemoteModule_version2") -le 0; then - installRemoteModule_version="$installRemoteModule_version1" - else - installRemoteModule_version="$installRemoteModule_version2" - fi - fi - ;; - redis) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=4.3.0 - elif test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=5.3.7 - elif test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=6.0.2 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - # Enable igbinary serializer support? - if php --ri igbinary >/dev/null 2>/dev/null; then - addConfigureOption enable-redis-igbinary yes - else - addConfigureOption enable-redis-igbinary no - fi - # Enable lzf compression support? - addConfigureOption enable-redis-lzf yes - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 5.0.0) -ge 0; then - if ! test -e /usr/include/zstd.h || ! test -e /usr/lib/libzstd.so -o -e "/usr/lib/$TARGET_TRIPLET/libzstd.so"; then - installRemoteModule_zstdVersion=1.4.4 - installRemoteModule_zstdVersionMajor=$(echo $installRemoteModule_zstdVersion | cut -d. -f1) - rm -rf /tmp/src/zstd - mv "$(getPackageSource https://github.com/facebook/zstd/releases/download/v$installRemoteModule_zstdVersion/zstd-$installRemoteModule_zstdVersion.tar.gz)" /tmp/src/zstd - cd /tmp/src/zstd - make V=0 -j$(getProcessorCount) lib - cp -f lib/libzstd.so "/usr/lib/$TARGET_TRIPLET/libzstd.so.$installRemoteModule_zstdVersion" - ln -sf "/usr/lib/$TARGET_TRIPLET/libzstd.so.$installRemoteModule_zstdVersion" "/usr/lib/$TARGET_TRIPLET/libzstd.so.$installRemoteModule_zstdVersionMajor" - ln -sf "/usr/lib/$TARGET_TRIPLET/libzstd.so.$installRemoteModule_zstdVersion" "/usr/lib/$TARGET_TRIPLET/libzstd.so" - ln -sf /tmp/src/zstd/lib/zstd.h /usr/include/zstd.h - UNNEEDED_PACKAGE_LINKS="$UNNEEDED_PACKAGE_LINKS /usr/include/zstd.h" - cd - >/dev/null - fi - # Enable zstd compression support? - addConfigureOption enable-redis-zstd yes - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 6.0.0) -ge 0; then - # Enable msgpack serializer support? - if php --ri msgpack >/dev/null 2>/dev/null; then - addConfigureOption enable-redis-msgpack yes - else - addConfigureOption enable-redis-msgpack no - fi - # Enable lz4 compression? - addConfigureOption enable-redis-lz4 yes - # Use system liblz4? - addConfigureOption with-liblz4 yes - fi - fi - ;; - relay) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version="$(curl -sSLf https://builds.r2.relay.so/meta/latest)" - installRemoteModule_version="${installRemoteModule_version#v}" - fi - case $(uname -m) in - aarch64 | arm64 | armv8) - installRemoteModule_hardware=aarch64 - ;; - *) - installRemoteModule_hardware=x86-64 - ;; - esac - installRemoteModule_distro="$DISTRO" - installRemoteModule_flags='' - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -lt 317; then - installRemoteModule_distro=alpine3.9 - else - installRemoteModule_distro=alpine3.17 - fi - ;; - debian) - case "$(dpkg -l 'libssl*' | grep -E '^ii ' | cut -d' ' -f3)" in - libssl3*) - installRemoteModule_flags=+libssl3 - ;; - esac - ;; - esac - # See https://relay.so/builds - installRemoteModule_url="https://builds.r2.relay.so/v${installRemoteModule_version}/relay-v${installRemoteModule_version}-php${PHP_MAJDOTMIN_VERSION}-${installRemoteModule_distro}-${installRemoteModule_hardware}${installRemoteModule_flags}.tar.gz" - printf 'Downloading relay v%s (%s) from %s... ' "$installRemoteModule_version" "$installRemoteModule_hardware" "$installRemoteModule_url" - installRemoteModule_src="$(getPackageSource $installRemoteModule_url)" - echo 'done.' - cp -- "$installRemoteModule_src/relay-pkg.so" "$PHP_EXTDIR/relay.so" - sed -i "s/00000000-0000-0000-0000-000000000000/$(cat /proc/sys/kernel/random/uuid)/" "$PHP_EXTDIR/relay.so" - installRemoteModule_ini_extra="$(grep -vE '^[ \t]*extension[ \t]*=' $installRemoteModule_src/relay.ini)" - installRemoteModule_manuallyInstalled=1 - ;; - saxon) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -ge 800; then - installRemoteModule_version='12.4.2' - else - installRemoteModule_version='12.3' - fi - fi - installRemoteModule_majorVersion="${installRemoteModule_version%%.*}" - if test "$installRemoteModule_majorVersion" -ge 12; then - case $(uname -m) in - aarch64 | arm64 | armv8) - installRemoteModule_url=https://downloads.saxonica.com/SaxonC/EE/${installRemoteModule_majorVersion}/libsaxon-EEC-linux-aarch64-v${installRemoteModule_version}.zip - ;; - *) - installRemoteModule_url=https://downloads.saxonica.com/SaxonC/EE/${installRemoteModule_majorVersion}/libsaxon-EEC-linux-x86_64-v${installRemoteModule_version}.zip - ;; - esac - else - installRemoteModule_url=https://downloads.saxonica.com/SaxonC/EE/${installRemoteModule_majorVersion}/libsaxon-EEC-setup64-v${installRemoteModule_version}.zip - fi - installRemoteModule_dir="$(getPackageSource $installRemoteModule_url)" - if ! test -f /usr/lib/libsaxon-*.so; then - if test "$installRemoteModule_majorVersion" -ge 12; then - cp $installRemoteModule_dir/libs/nix/*.so /usr/lib/ - else - cp $installRemoteModule_dir/*.so /usr/lib/ - fi - ldconfig || true - fi - cd "$installRemoteModule_dir/Saxon.C.API" - phpize - ./configure --enable-saxon - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - ;; - seasclick) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.1.0 - fi - fi - ;; - seaslog) - installRemoteModule_cppflags='-Wno-incompatible-pointer-types' - ;; - smbclient) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.1.1 - elif test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=1.1.2 - fi - fi - ;; - snappy) - if test -z "$installRemoteModule_path"; then - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=0.2.1 - fi - installRemoteModule_src="$(getPackageSource https://github.com/kjdev/php-ext-snappy/archive/refs/tags/$installRemoteModule_version.tar.gz)" - cd "$installRemoteModule_src" - phpize - ./configure --with-snappy-includedir=/usr - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - fi - ;; - snuffleupagus) - if test -z "$installRemoteModule_path"; then - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 800; then - installRemoteModule_version=0.9.0 - elif test $PHP_MAJMIN_VERSION -le 801; then - installRemoteModule_version=0.10.0 - else - installRemoteModule_version=0.11.0 - fi - fi - installRemoteModule_src="$(getPackageSource https://codeload.github.com/jvoisin/snuffleupagus/tar.gz/v$installRemoteModule_version)" - cd "$installRemoteModule_src/src" - phpize - ./configure --enable-snuffleupagus - make -j$(getProcessorCount) install - cd - >/dev/null - cp -a "$installRemoteModule_src/config/default.rules" "$PHP_INI_DIR/conf.d/snuffleupagus.rules" - if test $(compareVersions "$installRemoteModule_version" 0.8.0) -ge 0; then - printf '\n# Disable "PHP version is not officially maintained anymore" message\nsp.global.show_old_php_warning.disable();\n' >>"$PHP_INI_DIR/conf.d/snuffleupagus.rules" - fi - else - if test -f "$installRemoteModule_path/config/default.rules"; then - cp -a "$installRemoteModule_path/config/default.rules" "$PHP_INI_DIR/conf.d/snuffleupagus.rules" - fi - fi - installRemoteModule_ini_extra="$(printf '%ssp.configuration_file=%s\n' "$installRemoteModule_ini_extra" "$PHP_INI_DIR/conf.d/snuffleupagus.rules")" - installRemoteModule_manuallyInstalled=1 - ;; - sodium | libsodium) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=1.0.7 - fi - fi - ;; - solr) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=2.4.0 - elif test $PHP_MAJMIN_VERSION -lt 704; then - installRemoteModule_version=2.6.0 - fi - fi - ;; - sourceguardian) - installSourceGuardian - installRemoteModule_manuallyInstalled=1 - ;; - spx) - if test -z "$installRemoteModule_path"; then - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=v0.4.18 - fi - if test "${installRemoteModule_version%.*}" = "$installRemoteModule_version"; then - installRemoteModule_displayVersion="$installRemoteModule_version" - else - installRemoteModule_displayVersion="git--master-$installRemoteModule_version" - fi - installRemoteModule_src="$(getPackageSource https://codeload.github.com/NoiseByNorthwest/php-spx/tar.gz/$installRemoteModule_version)" - cd -- "$installRemoteModule_src" - phpize - ./configure - make -j$(getProcessorCount) install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - fi - ;; - sqlsrv | pdo_sqlsrv) - isMicrosoftSqlServerODBCInstalled || installMicrosoftSqlServerODBC - if test -z "$installRemoteModule_version"; then - # https://docs.microsoft.com/it-it/sql/connect/php/system-requirements-for-the-php-sql-driver?view=sql-server-2017 - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=3.0.1 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=5.3.0 - elif test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=5.6.1 - elif test $PHP_MAJMIN_VERSION -le 702; then - installRemoteModule_version=5.8.1 - elif test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=5.9.0 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=5.10.1 - elif test $PHP_MAJMIN_VERSION -le 800; then - installRemoteModule_version=5.11.1 - fi - fi - ;; - ssh2) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.13 - fi - fi - ;; - stomp) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.0.9 - fi - fi - if test "$DISTRO" = debian; then - addConfigureOption with-openssl-dir yes - else - addConfigureOption with-openssl-dir /usr - fi - ;; - swoole) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 502; then - installRemoteModule_version=1.6.10 - elif test $PHP_MAJMIN_VERSION -le 504; then - installRemoteModule_version=2.0.4 - elif test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.0.11 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=4.3.6 - elif test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=4.5.10 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=4.8.11 - elif test $PHP_BITS -eq 32; then - # See https://github.com/swoole/swoole-src/issues/5198#issuecomment-1820162178 - installRemoteModule_version="$(resolvePHPModuleVersion "$installRemoteModule_module" '^5.0')" - else - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -le 312; then - installRemoteModule_version=5.1.2 - fi - ;; - esac - fi - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 800; then - installRemoteModule_version=5.1.3 - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" stable)" - fi - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if php --ri sockets >/dev/null 2>/dev/null; then - installRemoteModule_sockets=yes - else - installRemoteModule_sockets=no - fi - installRemoteModule_openssl=yes - case "$DISTRO_VERSION" in - alpine@3.7 | alpine@3.8) - if test $(compareVersions "$installRemoteModule_version" 4.6.0) -lt 0; then - # see https://github.com/swoole/swoole-src/issues/3934 - installRemoteModule_openssl=no - fi - ;; - esac - if test $PHP_THREADSAFE -eq 1; then - installRemoteModule_zts=yes - else - installRemoteModule_zts=no - fi - installRemoteModule_sqlite=yes - installRemoteModule_iouring=no - installRemoteModule_curl=yes - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -lt 317; then - # we need sqlite3 >= 3.7.7 - installRemoteModule_sqlite=no - fi - case "${IPE_SWOOLE_WITHOUT_IOURING:-}" in - 1 | y* | Y*) ;; - *) - # iouring support in swoole 6 requires liburing 2.5+: available since Alpine 3.19 - # but with Alpine 3.19 we have a "invalid use of incomplete type 'const struct statx'" error - if test $DISTRO_MAJMIN_VERSION -ge 320; then - installRemoteModule_iouring=yes - fi - ;; - esac - ;; - debian) - if test $PHP_MAJMIN_VERSION -ge 800; then - # see https://github.com/swoole/swoole-src/issues/5365 - installRemoteModule_curl=no - fi - if test $DISTRO_MAJMIN_VERSION -lt 1200; then - # we need sqlite3 >= 3.7.7 - installRemoteModule_sqlite=no - fi - case "${IPE_SWOOLE_WITHOUT_IOURING:-}" in - 1 | y* | Y*) ;; - *) - if test $DISTRO_VERSION_NUMBER -ge 13; then - # iouring support in swoole 6 requires liburing 2.5+: available since Debian Trixie (13) - installRemoteModule_iouring=yes - fi - ;; - esac - ;; - esac - installRemoteModule_zstd=yes - case "$DISTRO" in - debian) - if test $DISTRO_VERSION_NUMBER -lt 11; then - # swoole 6 requires libzstd >= 1.4.0, but on debian 10 (buster) we have 1.3.8 - installRemoteModule_zstd=no - fi - ;; - esac - if test $(compareVersions "$installRemoteModule_version" 6.0.0) -ge 0; then - # enable sockets support? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - # enable cares support? - addConfigureOption enable-cares yes - # enable brotli support? - addConfigureOption enable-brotli yes - # enable zstd support? - addConfigureOption enable-zstd $installRemoteModule_zstd - # enable PostgreSQL database support? - addConfigureOption enable-swoole-pgsql yes - # enable ODBC database support? - addConfigureOption with-swoole-odbc no - # enable Oracle database support? - addConfigureOption with-swoole-oracle no - # enable Sqlite database support? - addConfigureOption enable-swoole-sqlite $installRemoteModule_sqlite - # enable swoole thread support (need php zts support)? - addConfigureOption enable-swoole-thread $installRemoteModule_zts - # enable iouring for file async support? - addConfigureOption enable-iouring $installRemoteModule_iouring - elif test $(compareVersions "$installRemoteModule_version" 5.1.0) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - # enable cares support? - addConfigureOption enable-cares yes - # enable brotli support? - addConfigureOption enable-brotli yes - # enable PostgreSQL database support? - addConfigureOption enable-swoole-pgsql yes - # enable ODBC database support? - addConfigureOption with-swoole-odbc no - # enable Oracle database support? - addConfigureOption with-swoole-oracle no - # enable Sqlite database support? - addConfigureOption enable-swoole-sqlite $installRemoteModule_sqlite - elif test $(compareVersions "$installRemoteModule_version" 5.0.1) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - # enable cares support? - addConfigureOption enable-cares yes - # enable brotli support? - addConfigureOption enable-brotli yes - elif test $(compareVersions "$installRemoteModule_version" 5.0.0) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - # enable cares support? - addConfigureOption enable-cares yes - elif test $(compareVersions "$installRemoteModule_version" 4.8.11) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable json support? - addConfigureOption enable-swoole-json yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - # enable cares support? - addConfigureOption enable-cares yes - elif test $(compareVersions "$installRemoteModule_version" 4.6.1) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable json support? - addConfigureOption enable-swoole-json yes - # enable curl support? - addConfigureOption enable-swoole-curl $installRemoteModule_curl - elif test $(compareVersions "$installRemoteModule_version" 4.4.0) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - elif test $(compareVersions "$installRemoteModule_version" 4.2.11) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable postgresql coroutine client support? - addConfigureOption enable-coroutine-postgresql yes - elif test $(compareVersions "$installRemoteModule_version" 4.2.7) -ge 0; then - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable postgresql coroutine client support? - addConfigureOption enable-coroutine-postgresql yes - # enable kernel debug/trace log? (it will degrade performance) - addConfigureOption enable-debug-log no - elif test $(compareVersions "$installRemoteModule_version" 4.2.6) -ge 0; then - # enable debug/trace log support? - addConfigureOption enable-debug-log no - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable postgresql coroutine client support? - addConfigureOption enable-coroutine-postgresql yes - elif test $(compareVersions "$installRemoteModule_version" 4.2.0) -ge 0; then - # enable debug/trace log support? - addConfigureOption enable-debug-log no - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable async-redis support? - addConfigureOption enable-async-redis yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable postgresql coroutine client support? - addConfigureOption enable-coroutine-postgresql yes - elif test $(compareVersions "$installRemoteModule_version" 2.1.2) -ge 0; then - # enable debug/trace log support? - addConfigureOption enable-swoole-debug no - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable async-redis support? - addConfigureOption enable-async-redis yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - # enable postgresql coroutine client support? - addConfigureOption enable-coroutine-postgresql yes - elif test $(compareVersions "$installRemoteModule_version" 1.10.4) -ge 0 && test $(compareVersions "$installRemoteModule_version" 1.10.5) -le 0; then - # enable debug/trace log support? - addConfigureOption enable-swoole-debug no - # enable sockets supports? - addConfigureOption enable-sockets $installRemoteModule_sockets - # enable openssl support? - addConfigureOption enable-openssl $installRemoteModule_openssl - # enable http2 support? - addConfigureOption enable-http2 yes - # enable async-redis support? - addConfigureOption enable-async-redis yes - # enable mysqlnd support? - addConfigureOption enable-mysqlnd yes - fi - ;; - tdlib) - if ! test -f /usr/lib/libphpcpp.so || ! test -f /usr/include/phpcpp.h; then - if test $PHP_MAJMIN_VERSION -le 701; then - cd "$(getPackageSource https://codeload.github.com/CopernicaMarketingSoftware/PHP-CPP/tar.gz/v2.1.4)" - elif test $PHP_MAJMIN_VERSION -le 703; then - cd "$(getPackageSource https://codeload.github.com/CopernicaMarketingSoftware/PHP-CPP/tar.gz/v2.2.0)" - else - cd "$(getPackageSource https://codeload.github.com/CopernicaMarketingSoftware/PHP-CPP/tar.gz/444d1f90cf6b7f3cb5178fa0d0b5ab441b0389d0)" - fi - make -j$(getProcessorCount) - make install - cd - >/dev/null - fi - if test -z "$installRemoteModule_path"; then - installRemoteModule_tmp="$(mktemp -p /tmp/src -d)" - git clone --depth=1 --recurse-submodules https://github.com/yaroslavche/phptdlib.git "$installRemoteModule_tmp" - mkdir "$installRemoteModule_tmp/build" - cd "$installRemoteModule_tmp/build" - cmake -D USE_SHARED_PHPCPP:BOOL=ON .. - make - make install - cd - >/dev/null - rm "$PHP_INI_DIR/conf.d/tdlib.ini" - installRemoteModule_manuallyInstalled=1 - fi - ;; - tensor) - installRemoteModule_cppflags='-Wno-incompatible-pointer-types' - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 703; then - installRemoteModule_version=2.2.3 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=3.0.5 - fi - fi - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -ge 315 && test $DISTRO_MAJMIN_VERSION -le 317; then - if test -e /usr/lib/liblapacke.so.3 && ! test -e /usr/lib/liblapacke.so; then - ln -s /usr/lib/liblapacke.so.3 /usr/lib/liblapacke.so - fi - fi - ;; - esac - ;; - tideways) - case "$DISTRO" in - alpine) - case $(uname -m) in - aarch64 | arm64 | armv8) - installRemoteModule_architecture=alpine-arm64 - ;; - *) - installRemoteModule_architecture=alpine-x86_64 - ;; - esac - ;; - debian) - case $(uname -m) in - aarch64 | arm64 | armv8) - installRemoteModule_architecture=arm64 - ;; - *) - installRemoteModule_architecture=x86_64 - ;; - esac - ;; - esac - installRemoteModule_url="$(curl -sSLf -o - https://tideways.com/profiler/downloads | grep -Eo "\"[^\"]+/tideways-php-([0-9]+\.[0-9]+\.[0-9]+)-$installRemoteModule_architecture.tar.gz\"" | cut -d'"' -f2)" - if test -z "$installRemoteModule_url"; then - echo 'Failed to find the tideways tarball to be downloaded' - exit 1 - fi - printf 'Downloading tideways from %s\n' "$installRemoteModule_url" - installRemoteModule_src="$(getPackageSource $installRemoteModule_url)" - if test -d "$installRemoteModule_src/dist"; then - installRemoteModule_src="$installRemoteModule_src/dist" - fi - installRemoteModule_src="$installRemoteModule_src/tideways-php" - case "$DISTRO" in - alpine) - installRemoteModule_src="$installRemoteModule_src-alpine" - ;; - esac - installRemoteModule_src="$installRemoteModule_src-$PHP_MAJDOTMIN_VERSION" - if test $PHP_THREADSAFE -eq 1; then - installRemoteModule_src="$installRemoteModule_src-zts" - fi - installRemoteModule_src="$installRemoteModule_src.so" - if ! test -f "$installRemoteModule_src"; then - echo 'tideways does not support the current environment' >&2 - exit 1 - fi - mv "$installRemoteModule_src" $(getPHPExtensionsDir)/tideways.so - installRemoteModule_manuallyInstalled=1 - ;; - uopz) - installRemoteModule_cppflags='-Wno-incompatible-pointer-types' - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.0.7 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=5.0.2 - elif test $PHP_MAJMIN_VERSION -le 740; then - installRemoteModule_version=6.1.2 - fi - fi - ;; - uploadprogress) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=1.1.4 - fi - fi - ;; - uuid) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.0.5 - fi - fi - ;; - uv) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 800; then - installRemoteModule_version=0.2.4 - else - installRemoteModule_version=beta - fi - fi - ;; - vld) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -lt 700; then - installRemoteModule_version=0.14.0 - else - installRemoteModule_version=beta - fi - fi - ;; - wikidiff2) - case "$DISTRO" in - alpine) - if ! isLibDatrieInstalled; then - installLibDatrie - fi - if ! isLibThaiInstalled; then - installLibThai - fi - ;; - esac - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 702; then - installRemoteModule_version=1.13.0 - else - installRemoteModule_version="$(git -c versionsort.suffix=- ls-remote --tags --refs --quiet --exit-code --sort=version:refname https://github.com/wikimedia/mediawiki-php-wikidiff2.git 'refs/tags/*.*.*' | tail -1 | cut -d/ -f3)" - fi - fi - installRemoteModule_src="$(getPackageSource "https://codeload.github.com/wikimedia/mediawiki-php-wikidiff2/tar.gz/refs/tags/$installRemoteModule_version")" - cd -- "$installRemoteModule_src" - phpize - ./configure - make -j$(getProcessorCount) - make install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - ;; - xdebug) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 500; then - installRemoteModule_version=2.0.5 - elif test $PHP_MAJMIN_VERSION -le 503; then - installRemoteModule_version=2.2.7 - elif test $PHP_MAJMIN_VERSION -le 504; then - installRemoteModule_version=2.4.1 - elif test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=2.5.5 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=2.6.1 - elif test $PHP_MAJMIN_VERSION -le 701; then - installRemoteModule_version=2.9.8 - elif test $PHP_MAJMIN_VERSION -le 704; then - installRemoteModule_version=3.1.6 - fi - fi - ;; - xdiff) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.5.2 - fi - fi - if ! test -f /usr/local/lib/libxdiff.* && ! test -f /usr/lib/libxdiff.* && ! test -f /usr/lib/x86_64*/libxdiff.*; then - installRemoteModule_src="$(getPackageSource https://raw.githubusercontent.com/mlocati/docker-php-extension-installer/assets/resources/libxdiff-0.23.tar.gz)" - cd -- "$installRemoteModule_src" - ./configure --disable-shared --disable-dependency-tracking --with-pic - make -j$(getProcessorCount) - make install - cd - >/dev/null - fi - ;; - xhprof) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.9.4 - fi - fi - ;; - xlswriter) - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 1.2.7) -ge 0; then - # enable reader supports? - addConfigureOption enable-reader yes - fi - ;; - xmldiff) - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - if test -z "$installRemoteModule_version"; then - case "$DISTRO_VERSION" in - debian@8) - # The gcc version of Debian Jessie is too old => error: 'nullptr' was not declared in this scope - installRemoteModule_version=1.1.4 - ;; - esac - fi - ;; - xmlrpc) - if test -z "$installRemoteModule_version"; then - installRemoteModule_version=beta - fi - ;; - yac) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.9.2 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 2.2.0) -ge 0; then - # Enable igbinary serializer support - if php --ri igbinary >/dev/null 2>/dev/null; then - addConfigureOption enable-igbinary yes - else - addConfigureOption enable-igbinary no - fi - # Enable json serializer support - if php --ri json >/dev/null 2>/dev/null; then - addConfigureOption enable-json yes - else - addConfigureOption enable-json no - fi - # Enable msgpack serializer support - if php --ri msgpack >/dev/null 2>/dev/null; then - addConfigureOption enable-msgpack yes - else - addConfigureOption enable-msgpack no - fi - fi - ;; - yaml) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.3.1 - elif test $PHP_MAJMIN_VERSION -le 700; then - installRemoteModule_version=2.0.4 - fi - fi - ;; - yar) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.2.5 - fi - else - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 1.2.4) -ge 0; then - # Enable Msgpack Supports - if php --ri msgpack >/dev/null 2>/dev/null; then - addConfigureOption enable-msgpack yes - else - addConfigureOption enable-msgpack no - fi - fi - ;; - zmq) - if test -z "$installRemoteModule_version"; then - installRemoteModule_src="$(getPackageSource https://github.com/zeromq/php-zmq/tarball/master)" - cd "$installRemoteModule_src" - phpize - ./configure - make -j$(getProcessorCount) - make install - cd - >/dev/null - installRemoteModule_manuallyInstalled=1 - fi - ;; - zookeeper) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.5.0 - fi - fi - installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" - case "$DISTRO" in - alpine) - if ! test -f /usr/local/include/zookeeper/zookeeper.h; then - if test $(compareVersions "$installRemoteModule_version" 1.0.0) -lt 0; then - installRemoteModule_src="$(getPackageSource http://archive.apache.org/dist/zookeeper/zookeeper-3.5.9/apache-zookeeper-3.5.9.tar.gz)" - else - installRemoteModule_tmp="$(curl -sSLf https://downloads.apache.org/zookeeper/stable | sed -E 's/["<>]/\n/g' | grep -E '^(apache-)?zookeeper-[0-9]+\.[0-9]+\.[0-9]+\.(tar\.gz|tgz)$' | head -n1)" - if test -z "$installRemoteModule_tmp"; then - echo 'Failed to detect the zookeeper library URL' >&2 - exit 1 - fi - installRemoteModule_src="$(getPackageSource https://downloads.apache.org/zookeeper/stable/$installRemoteModule_tmp)" - fi - cd -- "$installRemoteModule_src" - if test -d ~/.m2; then - installRemoteModule_delm2=n - else - installRemoteModule_delm2=y - fi - mvn -pl zookeeper-jute compile - cd - >/dev/null - cd -- "$installRemoteModule_src/zookeeper-client/zookeeper-client-c" - autoreconf -if - ./configure --without-cppunit - make -j$(getProcessorCount) CFLAGS='-Wno-stringop-truncation -Wno-format-overflow' - make install - cd - >/dev/null - if test $installRemoteModule_delm2 = y; then - rm -rf ~/.m2 - fi - fi - ;; - esac - ;; - zstd) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=0.11.0 - fi - fi - ;; - esac - if test $installRemoteModule_manuallyInstalled -eq 0; then - if test -n "$installRemoteModule_path"; then - printf ' (installing version %s from %s)\n' "$installRemoteModule_version" "$installRemoteModule_path" - elif test -n "$installRemoteModule_version"; then - printf ' (installing version %s)\n' "$installRemoteModule_version" - fi - installPeclPackage "$installRemoteModule_module" "$installRemoteModule_version" "$installRemoteModule_cppflags" "$installRemoteModule_path" - fi - postProcessModule "$installRemoteModule_module" - if test $installRemoteModule_manuallyInstalled -lt 2; then - case "${IPE_SKIP_CHECK:-}" in - 1 | y* | Y*) ;; - *) - checkModuleWorking "$installRemoteModule_module" "$installRemoteModule_ini_basename" "$installRemoteModule_ini_extra" - ;; - esac - enablePhpExtension "$installRemoteModule_module" "$installRemoteModule_ini_basename" "$installRemoteModule_ini_extra" - fi -} - -# Check if a module/helper may be installed using the pecl archive -# -# Arguments: -# $1: the name of the module -# -# Return: -# 0: true -# 1: false -moduleMayUsePecl() { - case "$1" in - @composer | @fix_letsencrypt) - return 1 - ;; - blackfire | geos | ioncube_loader | snuffleupagus | sourceguardian | spx | tdlib | tideways) - return 1 - ;; - esac - if test -n "$(getModuleSourceCodePath "$1")"; then - return 1 - fi - if stringInList "$1" "$BUNDLED_MODULES"; then - return 1 - fi - return 0 -} - -# Configure the PECL package installer -# -# Updates: -# PHP_MODULES_TO_INSTALL -# Sets: -# USE_PICKLE 0: no, 1: yes (already downloaded), 2: yes (build it from source) -configureInstaller() { - USE_PICKLE=0 - if ! which pecl >/dev/null; then - for PHP_MODULE_TO_INSTALL in $PHP_MODULES_TO_INSTALL; do - if ! moduleMayUsePecl "$PHP_MODULE_TO_INSTALL"; then - continue - fi - if false && anyStringInList '' "$PHP_MODULES_TO_INSTALL"; then - USE_PICKLE=2 - else - curl -sSLf https://github.com/FriendsOfPHP/pickle/releases/latest/download/pickle.phar -o /tmp/pickle - chmod +x /tmp/pickle - USE_PICKLE=1 - fi - break - done - fi - if test $USE_PICKLE -eq 0; then - if test -z "$(pear config-get http_proxy)"; then - if test -n "${http_proxy:-}"; then - pear config-set http_proxy "$http_proxy" || true - elif test -n "${HTTP_PROXY:-}"; then - pear config-set http_proxy "$HTTP_PROXY" || true - fi - fi - pecl channel-update pecl.php.net || true - fi -} - -buildPickle() { - printf '### BUILDING PICKLE ###\n' - buildPickle_tempDir="$(mktemp -p /tmp/src -d)" - cd -- "$buildPickle_tempDir" - printf 'Downloading... ' - git clone --quiet --depth 1 https://github.com/FriendsOfPHP/pickle.git . - git tag 0.7.0 - printf 'done.\n' - printf 'Installing composer... ' - actuallyInstallComposer . composer '--1 --quiet' - printf 'done.\n' - printf 'Installing composer dependencies... ' - ./composer install --no-dev --no-progress --no-suggest --optimize-autoloader --ignore-platform-reqs --quiet --no-cache - printf 'done.\n' - printf 'Building... ' - php -d phar.readonly=0 box.phar build - mv pickle.phar /tmp/pickle - printf 'done.\n' - cd - >/dev/null -} - -# Add a configure option for the pecl/pickle install command -# -# Arguments: -# $1: the option name -# $2: the option value -addConfigureOption() { - if test $USE_PICKLE -eq 0; then - printf -- '%s\n' "$2" >>"$CONFIGURE_FILE" - else - printf -- '--%s=%s\n' "$1" "$2" >>"$CONFIGURE_FILE" - fi -} - -# Actually installs a PECL package -# -# Arguments: -# $1: the package to be installed -# $2: the package version to be installed (optional) -# $3: the value of the CPPFLAGS variable (optional) -# $4: the path of the local package to be installed (optional, downloaded from PECL if omitted/empty) -installPeclPackage() { - if ! test -f "$CONFIGURE_FILE"; then - printf '\n' >"$CONFIGURE_FILE" - fi - installPeclPackage_name="$(getPeclModuleName "$1")" - if test -z "${2:-}"; then - installPeclPackage_fullname="$installPeclPackage_name" - else - installPeclPackage_fullname="$installPeclPackage_name-$2" - fi - installPeclPackage_path="${4:-}" - if test -z "$installPeclPackage_path"; then - installPeclPackage_path="$installPeclPackage_fullname" - fi - if test $USE_PICKLE -eq 0; then - if test -n "${4:-}"; then - if test -f "$installPeclPackage_path/package2.xml"; then - installPeclPackage_path="$installPeclPackage_path/package2.xml" - else - installPeclPackage_path="$installPeclPackage_path/package.xml" - fi - fi - cat "$CONFIGURE_FILE" | MAKE="make -j$(getCompilationProcessorCount $1)" CPPFLAGS="${3:-}" pecl install "$installPeclPackage_path" - else - MAKEFLAGS="-j$(getCompilationProcessorCount $1)" CPPFLAGS="${3:-}" /tmp/pickle install --tmp-dir=/tmp/pickle.tmp --no-interaction --version-override='' --with-configure-options "$CONFIGURE_FILE" -- "$installPeclPackage_path" - fi -} - -# Check if a string is in a list of space-separated string -# -# Arguments: -# $1: the string to be checked -# $2: the string list -# -# Return: -# 0 (true): if the string is in the list -# 1 (false): if the string is not in the list -stringInList() { - for stringInList_listItem in $2; do - if test "$1" = "$stringInList_listItem"; then - return 0 - fi - done - return 1 -} - -# Check if at least one item in a list is in another list -# -# Arguments: -# $1: the space-separated list of items to be searched -# $2: the space-separated list of reference items -# -# Return: -# 0 (true): at least one of the items in $1 is in $2 -# 1 (false): otherwise -anyStringInList() { - for anyStringInList_item in $1; do - if stringInList "$anyStringInList_item" "$2"; then - return 0 - fi - done - return 1 -} - -# Remove a word from a space-separated list -# -# Arguments: -# $1: the word to be removed -# $2: the string list -# -# Output: -# The list without the word -removeStringFromList() { - removeStringFromList_result='' - for removeStringFromList_listItem in $2; do - if test "$1" != "$removeStringFromList_listItem"; then - if test -z "$removeStringFromList_result"; then - removeStringFromList_result="$removeStringFromList_listItem" - else - removeStringFromList_result="$removeStringFromList_result $removeStringFromList_listItem" - fi - fi - done - printf '%s' "$removeStringFromList_result" -} - -# Invoke apt-get update -invokeAptGetUpdate() { - if test -n "${IPE_APTGETUPDATE_ALREADY:-}"; then - apt-get update -q - return - fi - IPE_APTGETUPDATE_ALREADY=y - if grep -q 'VERSION="8 (jessie)"' /etc/os-release; then - invokeAptGetUpdate_fixdistro=jessie - elif grep -q 'VERSION="9 (stretch)"' /etc/os-release; then - invokeAptGetUpdate_fixdistro=stretch - else - invokeAptGetUpdate - return - fi - # See https://www.debian.org/distrib/archive.en.html for a list of mirrors - if test -z "${IPE_DEB_ARCHIVE:-}"; then - IPE_DEB_ARCHIVE=http://archive.kernel.org/debian-archive - fi - if test -z "${IPE_DEB_ARCHIVE_SECURITY:-}"; then - IPE_DEB_ARCHIVE_SECURITY=http://archive.kernel.org/debian-archive/debian-security - fi - sed -ri "s;^(\s*deb\s+http://(httpredir|deb).debian.org/debian\s+$invokeAptGetUpdate_fixdistro-updates\b.*);#\1;" /etc/apt/sources.list - sed -ri "s;^(\s*deb\s+)http://(httpredir|deb).debian.org;\1$IPE_DEB_ARCHIVE;" /etc/apt/sources.list - sed -ri "s;^(\s*deb\s+)http://security.debian.org/debian-security;\1$IPE_DEB_ARCHIVE_SECURITY;" /etc/apt/sources.list - sed -ri "s;^(\s*deb\s+)http://security.debian.org;\1$IPE_DEB_ARCHIVE_SECURITY;" /etc/apt/sources.list - invokeAptGetUpdate_tmp="$(mktemp)" - apt-get update -q 2>"$invokeAptGetUpdate_tmp" - if test -s "$invokeAptGetUpdate_tmp"; then - cat "$invokeAptGetUpdate_tmp" >&2 - if grep -qE ' KEYEXPIRED [0-9]' "$invokeAptGetUpdate_tmp"; then - echo '############' >&2 - echo '# WARNING! #' >&2 - echo '############' >&2 - echo 'apt packages will be installed without checking authenticity!' >&2 - printf 'APT::Get::AllowUnauthenticated "true";\n' >>/etc/apt/apt.conf.d/99unauthenticated - fi - fi - rm "$invokeAptGetUpdate_tmp" -} - -# Fix the Let's Encrypt CA certificates on old distros -fixLetsEncrypt() { - printf '### FIXING LETS ENCRYPT CA CERTIFICATES ###\n' - case "$DISTRO_VERSION" in - alpine@3.7 | alpine@3.8) - printf -- '- old Alpine Linux detected: we should fix the certificates\n' - ;; - debian@8 | debian@9) - printf -- '- old Debian detected: we should fix the certificates\n' - if ! grep -q 'mozilla/ISRG_Root_X1.crt' /etc/ca-certificates.conf && grep -q 'mozilla/DST_Root_CA_X3.crt' /etc/ca-certificates.conf; then - printf -- '- old ca-certificates package detected\n' - fixCACerts_mustUpdate=1 - if test -d /var/lib/apt/lists; then - for fixCACerts_item in $(ls -1 /var/lib/apt/lists); do - case "$fixCACerts_item" in - partial | lock) ;; - *) - fixCACerts_mustUpdate=0 - break - ;; - esac - done - fi - if test $fixCACerts_mustUpdate -eq 1; then - printf -- '- refreshing the APT package list\n' - invokeAptGetUpdate - fi - printf -- '- installing newer ca-certificates package\n' - apt-get install -qqy --no-install-recommends ca-certificates - fi - ;; - *) - printf -- '- patch not required in this distro version\n' - return - ;; - esac - if grep -Eq '^mozilla/ISRG_Root_X1\.crt$' /etc/ca-certificates.conf && grep -Eq '^mozilla/DST_Root_CA_X3\.crt$' /etc/ca-certificates.conf; then - printf -- '- disabling the DST_Root_CA_X3 certificate\n' - sed -i '/^mozilla\/DST_Root_CA_X3/s/^/!/' /etc/ca-certificates.conf - printf -- '- refreshing the certificates\n' - update-ca-certificates -f - else - printf -- '- DST_Root_CA_X3 certificate not found or already disabled\n' - fi -} - -# Cleanup everything at the end of the execution -cleanup() { - if test "${IPE_UNINSTALL_CARGO:-}" = y; then - if test -f "$HOME/.cargo/env"; then - . "$HOME/.cargo/env" - fi - if command -v rustup >/dev/null; then - rustup self uninstall -y - fi - fi - if test -n "$UNNEEDED_PACKAGE_LINKS"; then - printf '### REMOVING UNNEEDED PACKAGE LINKS ###\n' - for cleanup_link in $UNNEEDED_PACKAGE_LINKS; do - if test -L "$cleanup_link"; then - rm -f "$cleanup_link" - fi - done - fi - case "$DISTRO" in - alpine) - if stringInList icu-libs "${PACKAGES_PERSISTENT_NEW:-}" && stringInList icu-data-en "${PACKAGES_PERSISTENT_NEW:-}"; then - apk del icu-data-en >/dev/null 2>&1 || true - fi - if test -n "$PACKAGES_VOLATILE"; then - printf '### REMOVING UNNEEDED PACKAGES ###\n' - apk del --purge $PACKAGES_VOLATILE - fi - ;; - debian) - if test -n "$PACKAGES_VOLATILE"; then - printf '### REMOVING UNNEEDED PACKAGES ###\n' - apt-get remove --purge -y $PACKAGES_VOLATILE - fi - if test -n "$PACKAGES_PREVIOUS"; then - printf '### RESTORING PREVIOUSLY INSTALLED PACKAGES ###\n' - apt-get install -qqy --no-install-recommends --no-upgrade $PACKAGES_PREVIOUS - fi - ;; - esac - docker-php-source delete - rm -rf /tmp/src - rm -rf /tmp/pickle - rm -rf /tmp/pickle.tmp - rm -rf "$CONFIGURE_FILE" - case "${IPE_KEEP_SYSPKG_CACHE:-}" in - 1 | y* | Y*) ;; - *) - case "$DISTRO" in - alpine) - rm -rf /var/cache/apk/* - ;; - debian) - rm -rf /var/lib/apt/lists/* - ;; - esac - rm -rf /tmp/pear - ;; - esac -} - -DEBIAN_FRONTEND=noninteractive -export DEBIAN_FRONTEND -resetIFS -mkdir -p /tmp/src -mkdir -p /tmp/pickle.tmp -IPE_ERRFLAG_FILE="$(mktemp -p /tmp/src)" -CONFIGURE_FILE=/tmp/configure-options -IPE_APK_FLAGS='' -setDistro -case "$DISTRO_VERSION" in - debian@8) - fixMaxOpenFiles || true - ;; -esac -setPHPVersionVariables -setPHPPreinstalledModules -case "$PHP_MAJMIN_VERSION" in - 505 | 506 | 700 | 701 | 702 | 703 | 704 | 800 | 801 | 802 | 803 | 804) ;; - *) - printf "### ERROR: Unsupported PHP version: %s.%s ###\n" $((PHP_MAJMIN_VERSION / 100)) $((PHP_MAJMIN_VERSION % 100)) - ;; -esac -UNNEEDED_PACKAGE_LINKS='' -processCommandArguments "$@" - -if test -z "$PHP_MODULES_TO_INSTALL"; then - exit 0 -fi - -if stringInList @fix_letsencrypt "$PHP_MODULES_TO_INSTALL"; then - # This must be the very first thing we do - fixLetsEncrypt -fi - -sortModulesToInstall - -docker-php-source extract -BUNDLED_MODULES="$(find /usr/src/php/ext -mindepth 2 -maxdepth 2 -type f -name 'config.m4' | xargs -n1 dirname | xargs -n1 basename | xargs)" -configureInstaller - -buildRequiredPackageLists $PHP_MODULES_TO_INSTALL -if test -n "$PACKAGES_PERSISTENT_PRE"; then - markPreinstalledPackagesAsUsed -fi -if test -n "$PACKAGES_PERSISTENT_NEW$PACKAGES_VOLATILE"; then - installRequiredPackages -fi -if test "$PHP_MODULES_TO_INSTALL" != '@composer'; then - setTargetTriplet -fi -if test $USE_PICKLE -gt 1; then - buildPickle -fi - -compileLibs - -for PHP_MODULE_TO_INSTALL in $PHP_MODULES_TO_INSTALL; do - case "$PHP_MODULE_TO_INSTALL" in - @fix_letsencrypt) - # Already done: it must be the first thing we do - ;; - @composer) - installComposer - ;; - *) - if stringInList "$PHP_MODULE_TO_INSTALL" "$BUNDLED_MODULES"; then - installBundledModule "$PHP_MODULE_TO_INSTALL" - else - installRemoteModule "$PHP_MODULE_TO_INSTALL" - fi - ;; - esac -done -cleanup diff --git a/php8/8.4.6/build/php/extensions/install.sh b/php8/8.4.6/build/php/extensions/install.sh deleted file mode 100644 index f46918606..000000000 --- a/php8/8.4.6/build/php/extensions/install.sh +++ /dev/null @@ -1,725 +0,0 @@ -#!/bin/sh - -export MC="-j$(nproc)" - -echo -echo "============================================" -echo "Install extensions from : install.sh" -echo "PHP version : ${PHP_VERSION}" -echo "Extra Extensions : ${PHP_EXTENSIONS}" -echo "Multicore Compilation : ${MC}" -echo "Container package url : ${CONTAINER_PACKAGE_URL}" -echo "Work directory : ${PWD}" -echo "============================================" -echo - - -if [ "${PHP_EXTENSIONS}" != "" ]; then - apk --update add --no-cache --virtual .build-deps autoconf g++ libtool make curl-dev gettext-dev linux-headers git -fi - - -export EXTENSIONS=",${PHP_EXTENSIONS}," - - -# -# Check if current php version is greater than or equal to -# specific version. -# -# For example, to check if current php is greater than or -# equal to PHP 8.0: -# -# isPhpVersionGreaterOrEqual 8 0 -# -# Param 1: Specific PHP Major version -# Param 2: Specific PHP Minor version -# Return : 1 if greater than or equal to, 0 if less than -# -isPhpVersionGreaterOrEqual() - { - local PHP_MAJOR_VERSION=$(php -r "echo PHP_MAJOR_VERSION;") - local PHP_MINOR_VERSION=$(php -r "echo PHP_MINOR_VERSION;") - - if [[ "$PHP_MAJOR_VERSION" -gt "$1" || "$PHP_MAJOR_VERSION" -eq "$1" && "$PHP_MINOR_VERSION" -ge "$2" ]]; then - return 1; - else - return 0; - fi -} - - -# -# Install extension from package file(.tgz), -# For example: -# -# installExtensionFromTgz redis-6.0.2 -# -# Param 1: Package name with version -# Param 2: enable options -# -installExtensionFromTgz() -{ - tgzName=$1 - result="" - extensionName="${tgzName%%-*}" - shift 1 - result=$@ - mkdir ${extensionName} - tar -xf ${tgzName}.tgz -C ${extensionName} --strip-components=1 - ( cd ${extensionName} && phpize && ./configure ${result} && make ${MC} && make install ) - - docker-php-ext-enable ${extensionName} -} - -# install use install-php-extensions -if [[ -z "${EXTENSIONS##*,ioncube_loader,*}" ]]; then - echo "---------- Install ioncube_loader ----------" - install-php-extensions ioncube_loader -fi - -if [[ -z "${EXTENSIONS##*,sourceguardian,*}" ]]; then - echo "---------- Install sourceguardian ----------" - apk add eudev-libs - install-php-extensions sourceguardian -fi - -if [[ -z "${EXTENSIONS##*,memcached,*}" ]]; then - echo "---------- Install memcached ----------" - install-php-extensions memcached -fi - -if [[ -z "${EXTENSIONS##*,ssh2,*}" ]]; then - echo "---------- Install ssh2 ----------" - install-php-extensions ssh2 -fi - -if [[ -z "${EXTENSIONS##*,xmlrpc,*}" ]]; then - echo "---------- Install xmlrpc ----------" - install-php-extensions xmlrpc -fi - -if [[ -z "${EXTENSIONS##*,maxminddb,*}" ]]; then - echo "---------- Install maxminddb ----------" - install-php-extensions maxminddb -fi - -if [[ -z "${EXTENSIONS##*,zstd,*}" ]]; then - echo "---------- Install zstd ----------" - install-php-extensions zstd -fi - -if [[ -z "${EXTENSIONS##*,grpc,*}" ]]; then - echo "---------- Install grpc ----------" - install-php-extensions grpc - docker-php-ext-enable grpc -fi - -if [[ -z "${EXTENSIONS##*,ftp,*}" ]]; then - echo "---------- Install ftp ----------" - install-php-extensions ftp -fi - -if [[ -z "${EXTENSIONS##*,snuffleupagus,*}" ]]; then - echo "---------- Install snuffleupagus ----------" - install-php-extensions snuffleupagus -fi - -if [[ -z "${EXTENSIONS##*,pdo_oci,*}" ]]; then - echo "---------- Install pdo_oci ----------" - install-php-extensions pdo_oci -fi - -if [[ -z "${EXTENSIONS##*,oci8,*}" ]]; then - echo "---------- Install oci8 ----------" - install-php-extensions oci8 -fi - -if [[ -z "${EXTENSIONS##*,redis,*}" ]]; then - echo "---------- Install redis ----------" - install-php-extensions redis -fi - -if [[ -z "${EXTENSIONS##*,imagick,*}" ]]; then - echo "---------- Install imagick ----------" - install-php-extensions imagick -fi -# end - - -if [[ -z "${EXTENSIONS##*,pdo_mysql,*}" ]]; then - echo "---------- Install pdo_mysql ----------" - docker-php-ext-install ${MC} pdo_mysql -fi - -if [[ -z "${EXTENSIONS##*,pcntl,*}" ]]; then - echo "---------- Install pcntl ----------" - docker-php-ext-install ${MC} pcntl -fi - -if [[ -z "${EXTENSIONS##*,mysqli,*}" ]]; then - echo "---------- Install mysqli ----------" - docker-php-ext-install ${MC} mysqli -fi - -if [[ -z "${EXTENSIONS##*,mbstring,*}" ]]; then - echo "---------- mbstring is installed ----------" -fi - -if [[ -z "${EXTENSIONS##*,exif,*}" ]]; then - echo "---------- Install exif ----------" - docker-php-ext-install ${MC} exif -fi - -if [[ -z "${EXTENSIONS##*,bcmath,*}" ]]; then - echo "---------- Install bcmath ----------" - docker-php-ext-install ${MC} bcmath -fi - -if [[ -z "${EXTENSIONS##*,calendar,*}" ]]; then - echo "---------- Install calendar ----------" - docker-php-ext-install ${MC} calendar -fi - -if [[ -z "${EXTENSIONS##*,zend_test,*}" ]]; then - echo "---------- Install zend_test ----------" - docker-php-ext-install ${MC} zend_test -fi - -if [[ -z "${EXTENSIONS##*,opcache,*}" ]]; then - echo "---------- Install opcache ----------" - docker-php-ext-install opcache -fi - -if [[ -z "${EXTENSIONS##*,sockets,*}" ]]; then - echo "---------- Install sockets ----------" - docker-php-ext-install ${MC} sockets -fi - -if [[ -z "${EXTENSIONS##*,gettext,*}" ]]; then - echo "---------- Install gettext ----------" - apk --no-cache add gettext-dev - docker-php-ext-install ${MC} gettext - -fi - -if [[ -z "${EXTENSIONS##*,shmop,*}" ]]; then - echo "---------- Install shmop ----------" - docker-php-ext-install ${MC} shmop -fi - -if [[ -z "${EXTENSIONS##*,sysvmsg,*}" ]]; then - echo "---------- Install sysvmsg ----------" - docker-php-ext-install ${MC} sysvmsg -fi - -if [[ -z "${EXTENSIONS##*,sysvsem,*}" ]]; then - echo "---------- Install sysvsem ----------" - docker-php-ext-install ${MC} sysvsem -fi - -if [[ -z "${EXTENSIONS##*,sysvshm,*}" ]]; then - echo "---------- Install sysvshm ----------" - docker-php-ext-install ${MC} sysvshm -fi - -if [[ -z "${EXTENSIONS##*,pdo_firebird,*}" ]]; then - echo "---------- Install pdo_firebird ----------" - docker-php-ext-install ${MC} pdo_firebird -fi - -if [[ -z "${EXTENSIONS##*,pdo_dblib,*}" ]]; then - echo "---------- Install pdo_dblib ----------" - docker-php-ext-install ${MC} pdo_dblib -fi - -if [[ -z "${EXTENSIONS##*,pdo_odbc,*}" ]]; then - echo "---------- Install pdo_odbc ----------" - docker-php-ext-install ${MC} pdo_odbc -fi - -if [[ -z "${EXTENSIONS##*,pdo_pgsql,*}" ]]; then - echo "---------- Install pdo_pgsql ----------" - apk --no-cache add postgresql-dev \ - && docker-php-ext-install ${MC} pdo_pgsql -fi - -if [[ -z "${EXTENSIONS##*,pgsql,*}" ]]; then - echo "---------- Install pgsql ----------" - apk --no-cache add postgresql-dev \ - && docker-php-ext-install ${MC} pgsql -fi - -if [[ -z "${EXTENSIONS##*,odbc,*}" ]]; then - echo "---------- Install odbc ----------" - docker-php-ext-install ${MC} odbc -fi - -if [[ -z "${EXTENSIONS##*,dba,*}" ]]; then - echo "---------- Install dba ----------" - docker-php-ext-install ${MC} dba -fi - -if [[ -z "${EXTENSIONS##*,interbase,*}" ]]; then - echo "---------- Install interbase ----------" - echo "Alpine linux do not support interbase/firebird!!!" - #docker-php-ext-install ${MC} interbase -fi - -if [[ -z "${EXTENSIONS##*,hprose,*}" ]]; then - echo "---------- Install hprose ----------" - printf "\n" | pecl install hprose - docker-php-ext-enable hprose -fi - -if [[ -z "${EXTENSIONS##*,gd,*}" ]]; then - echo "---------- Install gd ----------" - isPhpVersionGreaterOrEqual 8 0 - - if [[ "$?" = "1" ]]; then - # "--with-xxx-dir" was removed from php 7.4, - # issue: https://github.com/docker-library/php/issues/912 - options="--with-freetype --with-jpeg --with-webp" - else - options="--with-gd --with-freetype-dir=/usr/include/ --with-png-dir=/usr/include/ --with-jpeg-dir=/usr/include/ --with-webp-dir=/usr/include/" - fi - - apk add --no-cache \ - freetype \ - freetype-dev \ - libpng \ - libpng-dev \ - libjpeg-turbo \ - libjpeg-turbo-dev \ - libwebp-dev \ - && docker-php-ext-configure gd ${options} \ - && docker-php-ext-install ${MC} gd \ - && apk del \ - freetype-dev \ - libpng-dev \ - libjpeg-turbo-dev -fi - -if [[ -z "${EXTENSIONS##*,yaml,*}" ]]; then - echo "---------- Install yaml ----------" - apk add --no-cache yaml-dev - printf "\n" | pecl install yaml - docker-php-ext-enable yaml -fi - -if [[ -z "${EXTENSIONS##*,intl,*}" ]]; then - echo "---------- Install intl ----------" - apk add --no-cache icu-dev - docker-php-ext-install ${MC} intl -fi - -if [[ -z "${EXTENSIONS##*,bz2,*}" ]]; then - echo "---------- Install bz2 ----------" - apk add --no-cache bzip2-dev - docker-php-ext-install ${MC} bz2 -fi - -if [[ -z "${EXTENSIONS##*,soap,*}" ]]; then - echo "---------- Install soap ----------" - apk add --no-cache libxml2-dev - docker-php-ext-install ${MC} soap -fi - -if [[ -z "${EXTENSIONS##*,xsl,*}" ]]; then - echo "---------- Install xsl ----------" - apk add --no-cache libxml2-dev libxslt-dev - docker-php-ext-install ${MC} xsl -fi - -if [[ -z "${EXTENSIONS##*,wddx,*}" ]]; then - echo "---------- Install wddx ----------" - apk add --no-cache libxml2-dev libxslt-dev - docker-php-ext-install ${MC} wddx -fi - -if [[ -z "${EXTENSIONS##*,curl,*}" ]]; then - echo "---------- curl is installed ----------" -fi - -if [[ -z "${EXTENSIONS##*,readline,*}" ]]; then - echo "---------- Install readline ----------" - apk add --no-cache readline-dev - apk add --no-cache libedit-dev - docker-php-ext-install ${MC} readline -fi - -if [[ -z "${EXTENSIONS##*,snmp,*}" ]]; then - echo "---------- Install snmp ----------" - apk add --no-cache net-snmp-dev - docker-php-ext-install ${MC} snmp -fi - -if [[ -z "${EXTENSIONS##*,pspell,*}" ]]; then - echo "---------- Install pspell ----------" - apk add --no-cache aspell-dev - apk add --no-cache aspell-en - docker-php-ext-install ${MC} pspell -fi - -if [[ -z "${EXTENSIONS##*,recode,*}" ]]; then - echo "---------- Install recode ----------" - apk add --no-cache recode-dev - docker-php-ext-install ${MC} recode -fi - -if [[ -z "${EXTENSIONS##*,tidy,*}" ]]; then - echo "---------- Install tidy ----------" - apk add --no-cache tidyhtml-dev - - # Fix: https://github.com/htacg/tidy-html5/issues/235 - ln -s /usr/include/tidybuffio.h /usr/include/buffio.h - - docker-php-ext-install ${MC} tidy -fi - -if [[ -z "${EXTENSIONS##*,gmp,*}" ]]; then - echo "---------- Install gmp ----------" - apk add --no-cache gmp-dev - docker-php-ext-install ${MC} gmp -fi - -if [[ -z "${EXTENSIONS##*,imap,*}" ]]; then - echo "---------- Install imap ----------" - apk add --no-cache imap-dev - docker-php-ext-configure imap --with-imap --with-imap-ssl - docker-php-ext-install ${MC} imap -fi - -if [[ -z "${EXTENSIONS##*,ldap,*}" ]]; then - echo "---------- Install ldap ----------" - apk add --no-cache ldb-dev - apk add --no-cache openldap-dev - docker-php-ext-install ${MC} ldap -fi - -if [[ -z "${EXTENSIONS##*,psr,*}" ]]; then - echo "---------- Install psr ----------" - printf "\n" | pecl install psr - docker-php-ext-enable psr -fi - -if [[ -z "${EXTENSIONS##*,rar,*}" ]]; then - echo "---------- Install rar ----------" - printf "\n" | pecl install rar - docker-php-ext-enable rar -fi - -if [[ -z "${EXTENSIONS##*,ast,*}" ]]; then - echo "---------- Install ast ----------" - printf "\n" | pecl install ast - docker-php-ext-enable ast -fi - -if [[ -z "${EXTENSIONS##*,msgpack,*}" ]]; then - echo "---------- Install msgpack ----------" - printf "\n" | pecl install msgpack - docker-php-ext-enable msgpack -fi - -if [[ -z "${EXTENSIONS##*,igbinary,*}" ]]; then - echo "---------- Install igbinary ----------" - printf "\n" | pecl install igbinary - docker-php-ext-enable igbinary -fi - -if [[ -z "${EXTENSIONS##*,protobuf,*}" ]]; then - isPhpVersionGreaterOrEqual 8 0 - if [[ "$?" = "1" ]]; then - echo "---------- Install protobuf ----------" - printf "\n" | pecl install protobuf - docker-php-ext-enable protobuf - else - echo "yar requires PHP >= 8.0.0, installed version is ${PHP_VERSION}" - fi -fi - -if [[ -z "${EXTENSIONS##*,yac,*}" ]]; then - isPhpVersionGreaterOrEqual 8 0 - if [[ "$?" = "1" ]]; then - echo "---------- Install yac ----------" - printf "\n" | pecl install yac-2.0.2 - docker-php-ext-enable yac - else - echo "yar requires PHP >= 8.0.0, installed version is ${PHP_VERSION}" - fi -fi - -if [[ -z "${EXTENSIONS##*,yar,*}" ]]; then - isPhpVersionGreaterOrEqual 8 0 - if [[ "$?" = "1" ]]; then - echo "---------- Install yar ----------" - printf "\n" | pecl install yar - docker-php-ext-enable yar - else - echo "yar requires PHP >= 8.0.0, installed version is ${PHP_VERSION}" - fi - -fi - - - -if [[ -z "${EXTENSIONS##*,yaconf,*}" ]]; then - isPhpVersionGreaterOrEqual 8 0 - if [[ "$?" = "1" ]]; then - echo "---------- Install yaconf ----------" - printf "\n" | pecl install yaconf - docker-php-ext-enable yaconf - else - echo "yar requires PHP >= 8.0.0, installed version is ${PHP_VERSION}" - fi -fi - -if [[ -z "${EXTENSIONS##*,seaslog,*}" ]]; then - echo "---------- Install seaslog ----------" - printf "\n" | pecl install seaslog - docker-php-ext-enable seaslog -fi - -if [[ -z "${EXTENSIONS##*,varnish,*}" ]]; then - echo "---------- Install varnish ----------" - apk add --no-cache varnish-dev - printf "\n" | pecl install varnish - docker-php-ext-enable varnish -fi - -if [[ -z "${EXTENSIONS##*,pdo_sqlsrv,*}" ]]; then - isPhpVersionGreaterOrEqual 8 0 - if [[ "$?" = "1" ]]; then - echo "---------- Install pdo_sqlsrv ----------" - apk add --no-cache unixodbc-dev - printf "\n" | pecl install pdo_sqlsrv - docker-php-ext-enable pdo_sqlsrv - curl -o /tmp/msodbcsql17_amd64.apk https://download.microsoft.com/download/e/4/e/e4e67866-dffd-428c-aac7-8d28ddafb39b/msodbcsql17_17.5.2.1-1_amd64.apk - apk add --allow-untrusted /tmp/msodbcsql17_amd64.apk - else - echo "pdo_sqlsrv requires PHP >= 8.0.0, installed version is ${PHP_VERSION}" - fi -fi - -if [[ -z "${EXTENSIONS##*,sqlsrv,*}" ]]; then - isPhpVersionGreaterOrEqual 8 0 - if [[ "$?" = "1" ]]; then - echo "---------- Install sqlsrv ----------" - install-php-extensions sqlsrv - else - echo "sqlsrv requires PHP >= 8.0.0, installed version is ${PHP_VERSION}" - fi -fi - -if [[ -z "${EXTENSIONS##*,mcrypt,*}" ]]; then - isPhpVersionGreaterOrEqual 8 0 - if [[ "$?" = "1" ]]; then - echo "---------- Install mcrypt ----------" - apk add --no-cache libmcrypt-dev libmcrypt re2c - printf "\n" |pecl install mcrypt - docker-php-ext-enable mcrypt - else - echo "---------- Install mcrypt ----------" - apk add --no-cache libmcrypt-dev \ - && docker-php-ext-install ${MC} mcrypt - fi -fi - -if [[ -z "${EXTENSIONS##*,mysql,*}" ]]; then - isPhpVersionGreaterOrEqual 8 0 - - if [[ "$?" = "1" ]]; then - echo "---------- mysql was REMOVED from PHP 8.0.0 ----------" - else - echo "---------- Install mysql ----------" - docker-php-ext-install ${MC} mysql - fi -fi - -if [[ -z "${EXTENSIONS##*,sodium,*}" ]]; then - isPhpVersionGreaterOrEqual 8 0 - if [[ "$?" = "1" ]]; then - echo - echo "Sodium is bundled with PHP from PHP 8.0.0" - echo - else - echo "---------- Install sodium ----------" - apk add --no-cache libsodium-dev - docker-php-ext-install ${MC} sodium - fi -fi - -if [[ -z "${EXTENSIONS##*,amqp,*}" ]]; then - echo "---------- Install amqp ----------" - apk add --no-cache -U autoconf - apk add --no-cache -U gcc - apk add --no-cache -U linux-headers - apk add --no-cache -U libc-dev - - apk add --no-cache --update --virtual .phpize-deps-configure $PHPIZE_DEPS \ - && apk add rabbitmq-c-dev \ - && printf '\n' | pecl install amqp \ - && docker-php-ext-enable amqp \ - && apk del .phpize-deps-configure - -fi - -if [[ -z "${EXTENSIONS##*,apcu,*}" ]]; then - echo "---------- Install apcu ----------" - pecl install apcu - docker-php-ext-enable apcu -fi - -if [[ -z "${EXTENSIONS##*,memcached,*}" ]]; then - echo "---------- Install memcached ----------" - apk add --no-cache libmemcached-dev zlib-dev - pecl install memcached-3.2.3 - docker-php-ext-enable memcached -fi - -if [[ -z "${EXTENSIONS##*,memcache,*}" ]]; then - echo "---------- Install memcache ----------" - pecl install memcache - docker-php-ext-enable memcache -fi - -if [[ -z "${EXTENSIONS##*,xdebug,*}" ]]; then - echo "---------- Install xdebug ----------" - installExtensionFromTgz xdebug-3.2.0 -fi - -if [[ -z "${EXTENSIONS##*,event,*}" ]]; then - echo "---------- Install event ----------" - apk add --no-cache libevent-dev - export is_sockets_installed=$(php -r "echo extension_loaded('sockets');") - - if [[ "${is_sockets_installed}" = "" ]]; then - echo "---------- event is depend on sockets, install sockets first ----------" - docker-php-ext-install sockets - fi - - echo "---------- Install event again ----------" - mkdir event - tar -xf event-3.0.8.tgz -C event --strip-components=1 - cd event && phpize && ./configure && make && make install - - docker-php-ext-enable --ini-name event.ini event -fi - -if [[ -z "${EXTENSIONS##*,mongodb,*}" ]]; then - echo "---------- Install mongodb ----------" - apk add --no-cache openssl-dev - installExtensionFromTgz mongodb-1.15.2 - docker-php-ext-configure mongodb --with-mongodb-ssl=openssl - docker-php-ext-enable mongodb -fi - -if [[ -z "${EXTENSIONS##*,yaf,*}" ]]; then - echo "---------- Install yaf ----------" - pecl install yaf - docker-php-ext-enable yaf -fi - - -if [[ -z "${EXTENSIONS##*,swoole,*}" ]]; then - echo "---------- Install swoole ----------" - install-php-extensions swoole -fi - -if [[ -z "${EXTENSIONS##*,zip,*}" ]]; then - echo "---------- Install zip ----------" - # Fix: https://github.com/docker-library/php/issues/797 - apk add --no-cache libzip-dev - - isPhpVersionGreaterOrEqual 8 0 - if [[ "$?" != "1" ]]; then - docker-php-ext-configure zip --with-libzip=/usr/include - fi - - docker-php-ext-install ${MC} zip -fi - -if [[ -z "${EXTENSIONS##*,xhprof,*}" ]]; then - echo "---------- Install XHProf ----------" - pecl install xhprof - docker-php-ext-enable xhprof - -fi - -if [[ -z "${EXTENSIONS##*,xlswriter,*}" ]]; then - echo "---------- Install xlswriter ----------" - isPhpVersionGreaterOrEqual 8 0 - - if [[ "$?" = "1" ]]; then - printf "\n" | pecl install xlswriter - docker-php-ext-enable xlswriter - else - echo "---------- PHP Version>= 8.0----------" - fi -fi - -if [[ -z "${EXTENSIONS##*,rdkafka,*}" ]]; then - echo "---------- Install rdkafka ----------" - isPhpVersionGreaterOrEqual 8 0 - - if [[ "$?" = "1" ]]; then - apk add librdkafka-dev - printf "\n" | pecl install rdkafka - docker-php-ext-enable rdkafka - else - echo "---------- PHP Version>= 8.0----------" - fi -fi - -if [[ -z "${EXTENSIONS##*,zookeeper,*}" ]]; then - echo "---------- Install zookeeper ----------" - isPhpVersionGreaterOrEqual 8 0 - - if [[ "$?" = "1" ]]; then - apk add re2c - apk add libzookeeper-dev --repository http://${CONTAINER_PACKAGE_URL}/alpine/edge/testing/ - printf "\n" | pecl install zookeeper - docker-php-ext-enable zookeeper - else - echo "---------- PHP Version>= 8.0----------" - fi -fi - -if [[ -z "${EXTENSIONS##*,phalcon,*}" ]]; then - echo "---------- Install phalcon ----------" - isPhpVersionGreaterOrEqual 8 0 - - if [[ "$?" = "1" ]]; then - printf "\n" | pecl install phalcon - docker-php-ext-enable psr - docker-php-ext-enable phalcon - else - echo "---------- PHP Version>= 8.0----------" - fi -fi - -if [[ -z "${EXTENSIONS##*,sdebug,*}" ]]; then - echo "---------- Install sdebug ----------" - isPhpVersionGreaterOrEqual 8 0 - - if [[ "$?" = "1" ]]; then - curl -SL "https://github.com/swoole/sdebug/archive/sdebug_2_9-beta.tar.gz" -o sdebug.tar.gz \ - && mkdir -p sdebug \ - && tar -xf sdebug.tar.gz -C sdebug --strip-components=1 \ - && rm sdebug.tar.gz \ - && ( \ - cd sdebug \ - && phpize \ - && ./configure --enable-xdebug \ - && make clean && make && make install \ - ) \ - && docker-php-ext-enable xdebug - else - echo "---------- PHP Version>= 8.0----------" - fi -fi - -if [ "${PHP_EXTENSIONS}" != "" ]; then -# PHP-Imagick 扩展中有所需的其他依赖项,不进行删除.build-deps -# apk del .build-deps \ - docker-php-source delete -fi diff --git a/php8/8.4.6/build/php/extensions/mongodb-1.15.2.tgz b/php8/8.4.6/build/php/extensions/mongodb-1.15.2.tgz deleted file mode 100644 index 41c2e064b..000000000 Binary files a/php8/8.4.6/build/php/extensions/mongodb-1.15.2.tgz and /dev/null differ diff --git a/php8/8.4.6/build/php/extensions/redis-6.0.2.tgz b/php8/8.4.6/build/php/extensions/redis-6.0.2.tgz deleted file mode 100644 index 2d7b7987f..000000000 Binary files a/php8/8.4.6/build/php/extensions/redis-6.0.2.tgz and /dev/null differ diff --git a/php8/8.4.6/build/php/extensions/swoole-5.0.2.tgz b/php8/8.4.6/build/php/extensions/swoole-5.0.2.tgz deleted file mode 100644 index 7e42418c3..000000000 Binary files a/php8/8.4.6/build/php/extensions/swoole-5.0.2.tgz and /dev/null differ diff --git a/php8/8.4.6/build/php/extensions/xdebug-3.2.0.tgz b/php8/8.4.6/build/php/extensions/xdebug-3.2.0.tgz deleted file mode 100644 index 4023612cb..000000000 Binary files a/php8/8.4.6/build/php/extensions/xdebug-3.2.0.tgz and /dev/null differ diff --git a/php8/8.4.6/build/php/php-fpm.conf b/php8/8.4.6/build/php/php-fpm.conf deleted file mode 100644 index 131835891..000000000 --- a/php8/8.4.6/build/php/php-fpm.conf +++ /dev/null @@ -1,423 +0,0 @@ -; Start a new pool named 'www'. -; the variable $pool can be used in any directive and will be replaced by the -; pool name ('www' here) -[www] - -; Per pool prefix -; It only applies on the following directives: -; - 'access.log' -; - 'slowlog' -; - 'listen' (unixsocket) -; - 'chroot' -; - 'chdir' -; - 'php_values' -; - 'php_admin_values' -; When not set, the global prefix (or NONE) applies instead. -; Note: This directive can also be relative to the global prefix. -; Default Value: none -;prefix = /path/to/pools/$pool - -; Unix user/group of processes -; Note: The user is mandatory. If the group is not set, the default user's group -; will be used. -user = www-data -group = www-data - -; The address on which to accept FastCGI requests. -; Valid syntaxes are: -; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on -; a specific port; -; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on -; a specific port; -; 'port' - to listen on a TCP socket to all addresses -; (IPv6 and IPv4-mapped) on a specific port; -; '/path/to/unix/socket' - to listen on a unix socket. -; Note: This value is mandatory. -listen = 127.0.0.1:9000 - -; Set listen(2) backlog. -; Default Value: 511 (-1 on FreeBSD and OpenBSD) -;listen.backlog = 511 - -; Set permissions for unix socket, if one is used. In Linux, read/write -; permissions must be set in order to allow connections from a web server. Many -; BSD-derived systems allow connections regardless of permissions. -; Default Values: user and group are set as the running user -; mode is set to 0660 -;listen.owner = www-data -;listen.group = www-data -;listen.mode = 0660 -; When POSIX Access Control Lists are supported you can set them using -; these options, value is a comma separated list of user/group names. -; When set, listen.owner and listen.group are ignored -;listen.acl_users = -;listen.acl_groups = - -; List of addresses (IPv4/IPv6) of FastCGI clients which are allowed to connect. -; Equivalent to the FCGI_WEB_SERVER_ADDRS environment variable in the original -; PHP FCGI (5.2.2+). Makes sense only with a tcp listening socket. Each address -; must be separated by a comma. If this value is left blank, connections will be -; accepted from any ip address. -; Default Value: any -;listen.allowed_clients = 127.0.0.1 - -; Specify the nice(2) priority to apply to the pool processes (only if set) -; The value can vary from -19 (highest priority) to 20 (lower priority) -; Note: - It will only work if the FPM master process is launched as root -; - The pool processes will inherit the master process priority -; unless it specified otherwise -; Default Value: no set -; process.priority = -19 - -; Set the process dumpable flag (PR_SET_DUMPABLE prctl) even if the process user -; or group is differrent than the master process user. It allows to create process -; core dump and ptrace the process for the pool user. -; Default Value: no -; process.dumpable = yes - -; Choose how the process manager will control the number of child processes. -; Possible Values: -; static - a fixed number (pm.max_children) of child processes; -; dynamic - the number of child processes are set dynamically based on the -; following directives. With this process management, there will be -; always at least 1 children. -; pm.max_children - the maximum number of children that can -; be alive at the same time. -; pm.start_servers - the number of children created on startup. -; pm.min_spare_servers - the minimum number of children in 'idle' -; state (waiting to process). If the number -; of 'idle' processes is less than this -; number then some children will be created. -; pm.max_spare_servers - the maximum number of children in 'idle' -; state (waiting to process). If the number -; of 'idle' processes is greater than this -; number then some children will be killed. -; ondemand - no children are created at startup. Children will be forked when -; new requests will connect. The following parameter are used: -; pm.max_children - the maximum number of children that -; can be alive at the same time. -; pm.process_idle_timeout - The number of seconds after which -; an idle process will be killed. -; Note: This value is mandatory. -pm = dynamic - -; The number of child processes to be created when pm is set to 'static' and the -; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'. -; This value sets the limit on the number of simultaneous requests that will be -; served. Equivalent to the ApacheMaxClients directive with mpm_prefork. -; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP -; CGI. The below defaults are based on a server without much resources. Don't -; forget to tweak pm.* to fit your needs. -; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand' -; Note: This value is mandatory. -pm.max_children = 10 - -; The number of child processes created on startup. -; Note: Used only when pm is set to 'dynamic' -; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2 -pm.start_servers = 2 - -; The desired minimum number of idle server processes. -; Note: Used only when pm is set to 'dynamic' -; Note: Mandatory when pm is set to 'dynamic' -pm.min_spare_servers = 1 - -; The desired maximum number of idle server processes. -; Note: Used only when pm is set to 'dynamic' -; Note: Mandatory when pm is set to 'dynamic' -pm.max_spare_servers = 3 - -; The number of seconds after which an idle process will be killed. -; Note: Used only when pm is set to 'ondemand' -; Default Value: 10s -;pm.process_idle_timeout = 10s; - -; The number of requests each child process should execute before respawning. -; This can be useful to work around memory leaks in 3rd party libraries. For -; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS. -; Default Value: 0 -;pm.max_requests = 500 - -; The URI to view the FPM status page. If this value is not set, no URI will be -; recognized as a status page. It shows the following informations: -; pool - the name of the pool; -; process manager - static, dynamic or ondemand; -; start time - the date and time FPM has started; -; start since - number of seconds since FPM has started; -; accepted conn - the number of request accepted by the pool; -; listen queue - the number of request in the queue of pending -; connections (see backlog in listen(2)); -; max listen queue - the maximum number of requests in the queue -; of pending connections since FPM has started; -; listen queue len - the size of the socket queue of pending connections; -; idle processes - the number of idle processes; -; active processes - the number of active processes; -; total processes - the number of idle + active processes; -; max active processes - the maximum number of active processes since FPM -; has started; -; max children reached - number of times, the process limit has been reached, -; when pm tries to start more children (works only for -; pm 'dynamic' and 'ondemand'); -; Value are updated in real time. -; Example output: -; pool: www -; process manager: static -; start time: 01/Jul/2011:17:53:49 +0200 -; start since: 62636 -; accepted conn: 190460 -; listen queue: 0 -; max listen queue: 1 -; listen queue len: 42 -; idle processes: 4 -; active processes: 11 -; total processes: 15 -; max active processes: 12 -; max children reached: 0 -; -; By default the status page output is formatted as text/plain. Passing either -; 'html', 'xml' or 'json' in the query string will return the corresponding -; output syntax. Example: -; http://www.foo.bar/status -; http://www.foo.bar/status?json -; http://www.foo.bar/status?html -; http://www.foo.bar/status?xml -; -; By default the status page only outputs short status. Passing 'full' in the -; query string will also return status for each pool process. -; Example: -; http://www.foo.bar/status?full -; http://www.foo.bar/status?json&full -; http://www.foo.bar/status?html&full -; http://www.foo.bar/status?xml&full -; The Full status returns for each process: -; pid - the PID of the process; -; state - the state of the process (Idle, Running, ...); -; start time - the date and time the process has started; -; start since - the number of seconds since the process has started; -; requests - the number of requests the process has served; -; request duration - the duration in µs of the requests; -; request method - the request method (GET, POST, ...); -; request URI - the request URI with the query string; -; content length - the content length of the request (only with POST); -; user - the user (PHP_AUTH_USER) (or '-' if not set); -; script - the main script called (or '-' if not set); -; last request cpu - the %cpu the last request consumed -; it's always 0 if the process is not in Idle state -; because CPU calculation is done when the request -; processing has terminated; -; last request memory - the max amount of memory the last request consumed -; it's always 0 if the process is not in Idle state -; because memory calculation is done when the request -; processing has terminated; -; If the process is in Idle state, then informations are related to the -; last request the process has served. Otherwise informations are related to -; the current request being served. -; Example output: -; ************************ -; pid: 31330 -; state: Running -; start time: 01/Jul/2011:17:53:49 +0200 -; start since: 63087 -; requests: 12808 -; request duration: 1250261 -; request method: GET -; request URI: /test_mem.php?N=10000 -; content length: 0 -; user: - -; script: /home/fat/web/docs/php/test_mem.php -; last request cpu: 0.00 -; last request memory: 0 -; -; Note: There is a real-time FPM status monitoring sample web page available -; It's available in: /usr/local/share/php/fpm/status.html -; -; Note: The value must start with a leading slash (/). The value can be -; anything, but it may not be a good idea to use the .php extension or it -; may conflict with a real PHP file. -; Default Value: not set -;pm.status_path = /status - -; The ping URI to call the monitoring page of FPM. If this value is not set, no -; URI will be recognized as a ping page. This could be used to test from outside -; that FPM is alive and responding, or to -; - create a graph of FPM availability (rrd or such); -; - remove a server from a group if it is not responding (load balancing); -; - trigger alerts for the operating team (24/7). -; Note: The value must start with a leading slash (/). The value can be -; anything, but it may not be a good idea to use the .php extension or it -; may conflict with a real PHP file. -; Default Value: not set -;ping.path = /ping - -; This directive may be used to customize the response of a ping request. The -; response is formatted as text/plain with a 200 response code. -; Default Value: pong -;ping.response = pong - -; The access log file -; Default: not set -;access.log = log/$pool.access.log - -; The access log format. -; The following syntax is allowed -; %%: the '%' character -; %C: %CPU used by the request -; it can accept the following format: -; - %{user}C for user CPU only -; - %{system}C for system CPU only -; - %{total}C for user + system CPU (default) -; %d: time taken to serve the request -; it can accept the following format: -; - %{seconds}d (default) -; - %{miliseconds}d -; - %{mili}d -; - %{microseconds}d -; - %{micro}d -; %e: an environment variable (same as $_ENV or $_SERVER) -; it must be associated with embraces to specify the name of the env -; variable. Some exemples: -; - server specifics like: %{REQUEST_METHOD}e or %{SERVER_PROTOCOL}e -; - HTTP headers like: %{HTTP_HOST}e or %{HTTP_USER_AGENT}e -; %f: script filename -; %l: content-length of the request (for POST request only) -; %m: request method -; %M: peak of memory allocated by PHP -; it can accept the following format: -; - %{bytes}M (default) -; - %{kilobytes}M -; - %{kilo}M -; - %{megabytes}M -; - %{mega}M -; %n: pool name -; %o: output header -; it must be associated with embraces to specify the name of the header: -; - %{Content-Type}o -; - %{X-Powered-By}o -; - %{Transfert-Encoding}o -; - .... -; %p: PID of the child that serviced the request -; %P: PID of the parent of the child that serviced the request -; %q: the query string -; %Q: the '?' character if query string exists -; %r: the request URI (without the query string, see %q and %Q) -; %R: remote IP address -; %s: status (response code) -; %t: server time the request was received -; it can accept a strftime(3) format: -; %d/%b/%Y:%H:%M:%S %z (default) -; The strftime(3) format must be encapsuled in a %{}t tag -; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t -; %T: time the log has been written (the request has finished) -; it can accept a strftime(3) format: -; %d/%b/%Y:%H:%M:%S %z (default) -; The strftime(3) format must be encapsuled in a %{}t tag -; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t -; %u: remote user -; -; Default: "%R - %u %t \"%m %r\" %s" -;access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%" - -; The log file for slow requests -; Default Value: not set -; Note: slowlog is mandatory if request_slowlog_timeout is set -slowlog = /var/log/php/fpm.slow.log - -; The timeout for serving a single request after which a PHP backtrace will be -; dumped to the 'slowlog' file. A value of '0s' means 'off'. -; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) -; Default Value: 0 -request_slowlog_timeout = 3 - -; Depth of slow log stack trace. -; Default Value: 20 -;request_slowlog_trace_depth = 20 - -; The timeout for serving a single request after which the worker process will -; be killed. This option should be used when the 'max_execution_time' ini option -; does not stop script execution for some reason. A value of '0' means 'off'. -; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) -; Default Value: 0 -;request_terminate_timeout = 0 - -; Set open file descriptor rlimit. -; Default Value: system defined value -;rlimit_files = 1024 - -; Set max core size rlimit. -; Possible Values: 'unlimited' or an integer greater or equal to 0 -; Default Value: system defined value -;rlimit_core = 0 - -; Chroot to this directory at the start. This value must be defined as an -; absolute path. When this value is not set, chroot is not used. -; Note: you can prefix with '$prefix' to chroot to the pool prefix or one -; of its subdirectories. If the pool prefix is not set, the global prefix -; will be used instead. -; Note: chrooting is a great security feature and should be used whenever -; possible. However, all PHP paths will be relative to the chroot -; (error_log, sessions.save_path, ...). -; Default Value: not set -;chroot = - -; Chdir to this directory at the start. -; Note: relative path can be used. -; Default Value: current directory or / when chroot -;chdir = /var/www - -; Redirect worker stdout and stderr into main error log. If not set, stdout and -; stderr will be redirected to /dev/null according to FastCGI specs. -; Note: on highloaded environement, this can cause some delay in the page -; process time (several ms). -; Default Value: no -catch_workers_output = yes - -; Clear environment in FPM workers -; Prevents arbitrary environment variables from reaching FPM worker processes -; by clearing the environment in workers before env vars specified in this -; pool configuration are added. -; Setting to "no" will make all environment variables available to PHP code -; via getenv(), $_ENV and $_SERVER. -; Default Value: yes -;clear_env = no - -; Limits the extensions of the main script FPM will allow to parse. This can -; prevent configuration mistakes on the web server side. You should only limit -; FPM to .php extensions to prevent malicious users to use other extensions to -; execute php code. -; Note: set an empty value to allow all extensions. -; Default Value: .php -;security.limit_extensions = .php .php3 .php4 .php5 .php7 - -; Pass environment variables like LD_LIBRARY_PATH. All $VARIABLEs are taken from -; the current environment. -; Default Value: clean env -;env[HOSTNAME] = $HOSTNAME -;env[PATH] = /usr/local/bin:/usr/bin:/bin -;env[TMP] = /tmp -;env[TMPDIR] = /tmp -;env[TEMP] = /tmp - -; Additional php.ini defines, specific to this pool of workers. These settings -; overwrite the values previously defined in the php.ini. The directives are the -; same as the PHP SAPI: -; php_value/php_flag - you can set classic ini defines which can -; be overwritten from PHP call 'ini_set'. -; php_admin_value/php_admin_flag - these directives won't be overwritten by -; PHP call 'ini_set' -; For php_*flag, valid values are on, off, 1, 0, true, false, yes or no. - -; Defining 'extension' will load the corresponding shared extension from -; extension_dir. Defining 'disable_functions' or 'disable_classes' will not -; overwrite previously defined php.ini values, but will append the new value -; instead. - -; Note: path INI options can be relative and will be expanded with the prefix -; (pool, global or /usr/local) - -; Default Value: nothing is defined by default except the values in php.ini and -; specified at startup with the -d argument -;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com -;php_flag[display_errors] = off -;php_admin_value[error_log] = /var/log/fpm-php.www.log -;php_admin_flag[log_errors] = on -;php_admin_value[memory_limit] = 32M diff --git a/php8/8.4.6/build/php/php.ini b/php8/8.4.6/build/php/php.ini deleted file mode 100644 index 82b728e20..000000000 --- a/php8/8.4.6/build/php/php.ini +++ /dev/null @@ -1,1933 +0,0 @@ -[PHP] - -;;;;;;;;;;;;;;;;;;; -; About php.ini ; -;;;;;;;;;;;;;;;;;;; -; PHP's initialization file, generally called php.ini, is responsible for -; configuring many of the aspects of PHP's behavior. - -; PHP attempts to find and load this configuration from a number of locations. -; The following is a summary of its search order: -; 1. SAPI module specific location. -; 2. The PHPRC environment variable. (As of PHP 5.2.0) -; 3. A number of predefined registry keys on Windows (As of PHP 5.2.0) -; 4. Current working directory (except CLI) -; 5. The web server's directory (for SAPI modules), or directory of PHP -; (otherwise in Windows) -; 6. The directory from the --with-config-file-path compile time option, or the -; Windows directory (C:\windows or C:\winnt) -; See the PHP docs for more specific information. -; http://php.net/configuration.file - -; The syntax of the file is extremely simple. Whitespace and lines -; beginning with a semicolon are silently ignored (as you probably guessed). -; Section headers (e.g. [Foo]) are also silently ignored, even though -; they might mean something in the future. - -; Directives following the section heading [PATH=/www/mysite] only -; apply to PHP files in the /www/mysite directory. Directives -; following the section heading [HOST=www.example.com] only apply to -; PHP files served from www.example.com. Directives set in these -; special sections cannot be overridden by user-defined INI files or -; at runtime. Currently, [PATH=] and [HOST=] sections only work under -; CGI/FastCGI. -; http://php.net/ini.sections - -; Directives are specified using the following syntax: -; directive = value -; Directive names are *case sensitive* - foo=bar is different from FOO=bar. -; Directives are variables used to configure PHP or PHP extensions. -; There is no name validation. If PHP can't find an expected -; directive because it is not set or is mistyped, a default value will be used. - -; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one -; of the INI constants (On, Off, True, False, Yes, No and None) or an expression -; (e.g. E_ALL & ~E_NOTICE), a quoted string ("bar"), or a reference to a -; previously set variable or directive (e.g. ${foo}) - -; Expressions in the INI file are limited to bitwise operators and parentheses: -; | bitwise OR -; ^ bitwise XOR -; & bitwise AND -; ~ bitwise NOT -; ! boolean NOT - -; Boolean flags can be turned on using the values 1, On, True or Yes. -; They can be turned off using the values 0, Off, False or No. - -; An empty string can be denoted by simply not writing anything after the equal -; sign, or by using the None keyword: - -; foo = ; sets foo to an empty string -; foo = None ; sets foo to an empty string -; foo = "None" ; sets foo to the string 'None' - -; If you use constants in your value, and these constants belong to a -; dynamically loaded extension (either a PHP extension or a Zend extension), -; you may only use these constants *after* the line that loads the extension. - -;;;;;;;;;;;;;;;;;;; -; About this file ; -;;;;;;;;;;;;;;;;;;; -; PHP comes packaged with two INI files. One that is recommended to be used -; in production environments and one that is recommended to be used in -; development environments. - -; php.ini-production contains settings which hold security, performance and -; best practices at its core. But please be aware, these settings may break -; compatibility with older or less security conscience applications. We -; recommending using the production ini in production and testing environments. - -; php.ini-development is very similar to its production variant, except it is -; much more verbose when it comes to errors. We recommend using the -; development version only in development environments, as errors shown to -; application users can inadvertently leak otherwise secure information. - -; This is php.ini-production INI file. - -;;;;;;;;;;;;;;;;;;; -; Quick Reference ; -;;;;;;;;;;;;;;;;;;; -; The following are all the settings which are different in either the production -; or development versions of the INIs with respect to PHP's default behavior. -; Please see the actual settings later in the document for more details as to why -; we recommend these changes in PHP's behavior. - -; display_errors -; Default Value: On -; Development Value: On -; Production Value: Off - -; display_startup_errors -; Default Value: Off -; Development Value: On -; Production Value: Off - -; error_reporting -; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT - -; html_errors -; Default Value: On -; Development Value: On -; Production value: On - -; log_errors -; Default Value: Off -; Development Value: On -; Production Value: On - -; max_input_time -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) - -; output_buffering -; Default Value: Off -; Development Value: 4096 -; Production Value: 4096 - -; register_argc_argv -; Default Value: On -; Development Value: Off -; Production Value: Off - -; request_order -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" - -; session.gc_divisor -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 - -; session.sid_bits_per_character -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 - -; short_open_tag -; Default Value: On -; Development Value: Off -; Production Value: Off - -; track_errors -; Default Value: Off -; Development Value: On -; Production Value: Off - -; variables_order -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS" - -;;;;;;;;;;;;;;;;;;;; -; php.ini Options ; -;;;;;;;;;;;;;;;;;;;; -; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini" -;user_ini.filename = ".user.ini" - -; To disable this feature set this option to empty value -;user_ini.filename = - -; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes) -;user_ini.cache_ttl = 300 - -;;;;;;;;;;;;;;;;;;;; -; Language Options ; -;;;;;;;;;;;;;;;;;;;; - -; Enable the PHP scripting language engine under Apache. -; http://php.net/engine -engine = On - -; This directive determines whether or not PHP will recognize code between -; tags as PHP source which should be processed as such. It is -; generally recommended that should be used and that this feature -; should be disabled, as enabling it may result in issues when generating XML -; documents, however this remains supported for backward compatibility reasons. -; Note that this directive does not control the would work. -; http://php.net/syntax-highlighting -;highlight.string = #DD0000 -;highlight.comment = #FF9900 -;highlight.keyword = #007700 -;highlight.default = #0000BB -;highlight.html = #000000 - -; If enabled, the request will be allowed to complete even if the user aborts -; the request. Consider enabling it if executing long requests, which may end up -; being interrupted by the user or a browser timing out. PHP's default behavior -; is to disable this feature. -; http://php.net/ignore-user-abort -;ignore_user_abort = On - -; Determines the size of the realpath cache to be used by PHP. This value should -; be increased on systems where PHP opens many files to reflect the quantity of -; the file operations performed. -; http://php.net/realpath-cache-size -;realpath_cache_size = 4096k - -; Duration of time, in seconds for which to cache realpath information for a given -; file or directory. For systems with rarely changing files, consider increasing this -; value. -; http://php.net/realpath-cache-ttl -;realpath_cache_ttl = 120 - -; Enables or disables the circular reference collector. -; http://php.net/zend.enable-gc -zend.enable_gc = On - -; If enabled, scripts may be written in encodings that are incompatible with -; the scanner. CP936, Big5, CP949 and Shift_JIS are the examples of such -; encodings. To use this feature, mbstring extension must be enabled. -; Default: Off -;zend.multibyte = Off - -; Allows to set the default encoding for the scripts. This value will be used -; unless "declare(encoding=...)" directive appears at the top of the script. -; Only affects if zend.multibyte is set. -; Default: "" -;zend.script_encoding = - -;;;;;;;;;;;;;;;;; -; Miscellaneous ; -;;;;;;;;;;;;;;;;; - -; Decides whether PHP may expose the fact that it is installed on the server -; (e.g. by adding its signature to the Web server header). It is no security -; threat in any way, but it makes it possible to determine whether you use PHP -; on your server or not. -; http://php.net/expose-php -expose_php = Off - -;;;;;;;;;;;;;;;;;;; -; Resource Limits ; -;;;;;;;;;;;;;;;;;;; - -; Maximum execution time of each script, in seconds -; http://php.net/max-execution-time -; Note: This directive is hardcoded to 0 for the CLI SAPI -max_execution_time = 30 - -; Maximum amount of time each script may spend parsing request data. It's a good -; idea to limit this time on productions servers in order to eliminate unexpectedly -; long running scripts. -; Note: This directive is hardcoded to -1 for the CLI SAPI -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) -; http://php.net/max-input-time -max_input_time = 60 - -; Maximum input variable nesting level -; http://php.net/max-input-nesting-level -;max_input_nesting_level = 64 - -; How many GET/POST/COOKIE input variables may be accepted -; max_input_vars = 1000 - -; Maximum amount of memory a script may consume (128MB) -; http://php.net/memory-limit -memory_limit = 256M - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; Error handling and logging ; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -; This directive informs PHP of which errors, warnings and notices you would like -; it to take action for. The recommended way of setting values for this -; directive is through the use of the error level constants and bitwise -; operators. The error level constants are below here for convenience as well as -; some common settings and their meanings. -; By default, PHP is set to take action on all errors, notices and warnings EXCEPT -; those related to E_NOTICE and E_STRICT, which together cover best practices and -; recommended coding standards in PHP. For performance reasons, this is the -; recommend error reporting setting. Your production server shouldn't be wasting -; resources complaining about best practices and coding standards. That's what -; development servers and development settings are for. -; Note: The php.ini-development file has this setting as E_ALL. This -; means it pretty much reports everything which is exactly what you want during -; development and early testing. -; -; Error Level Constants: -; E_ALL - All errors and warnings (includes E_STRICT as of PHP 5.4.0) -; E_ERROR - fatal run-time errors -; E_RECOVERABLE_ERROR - almost fatal run-time errors -; E_WARNING - run-time warnings (non-fatal errors) -; E_PARSE - compile-time parse errors -; E_NOTICE - run-time notices (these are warnings which often result -; from a bug in your code, but it's possible that it was -; intentional (e.g., using an uninitialized variable and -; relying on the fact it is automatically initialized to an -; empty string) -; E_STRICT - run-time notices, enable to have PHP suggest changes -; to your code which will ensure the best interoperability -; and forward compatibility of your code -; E_CORE_ERROR - fatal errors that occur during PHP's initial startup -; E_CORE_WARNING - warnings (non-fatal errors) that occur during PHP's -; initial startup -; E_COMPILE_ERROR - fatal compile-time errors -; E_COMPILE_WARNING - compile-time warnings (non-fatal errors) -; E_USER_ERROR - user-generated error message -; E_USER_WARNING - user-generated warning message -; E_USER_NOTICE - user-generated notice message -; E_DEPRECATED - warn about code that will not work in future versions -; of PHP -; E_USER_DEPRECATED - user-generated deprecation warnings -; -; Common Values: -; E_ALL (Show all errors, warnings and notices including coding standards.) -; E_ALL & ~E_NOTICE (Show all errors, except for notices) -; E_ALL & ~E_NOTICE & ~E_STRICT (Show all errors, except for notices and coding standards warnings.) -; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors) -; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT -; http://php.net/error-reporting -error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT - -; This directive controls whether or not and where PHP will output errors, -; notices and warnings too. Error output is very useful during development, but -; it could be very dangerous in production environments. Depending on the code -; which is triggering the error, sensitive information could potentially leak -; out of your application such as database usernames and passwords or worse. -; For production environments, we recommend logging errors rather than -; sending them to STDOUT. -; Possible Values: -; Off = Do not display any errors -; stderr = Display errors to STDERR (affects only CGI/CLI binaries!) -; On or stdout = Display errors to STDOUT -; Default Value: On -; Development Value: On -; Production Value: Off -; http://php.net/display-errors -display_errors = Off - -; The display of errors which occur during PHP's startup sequence are handled -; separately from display_errors. PHP's default behavior is to suppress those -; errors from clients. Turning the display of startup errors on can be useful in -; debugging configuration problems. We strongly recommend you -; set this to 'off' for production servers. -; Default Value: Off -; Development Value: On -; Production Value: Off -; http://php.net/display-startup-errors -display_startup_errors = Off - -; Besides displaying errors, PHP can also log errors to locations such as a -; server-specific log, STDERR, or a location specified by the error_log -; directive found below. While errors should not be displayed on productions -; servers they should still be monitored and logging is a great way to do that. -; Default Value: Off -; Development Value: On -; Production Value: On -; http://php.net/log-errors -log_errors = On - -; Set maximum length of log_errors. In error_log information about the source is -; added. The default is 1024 and 0 allows to not apply any maximum length at all. -; http://php.net/log-errors-max-len -log_errors_max_len = 1024 - -; Do not log repeated messages. Repeated errors must occur in same file on same -; line unless ignore_repeated_source is set true. -; http://php.net/ignore-repeated-errors -ignore_repeated_errors = Off - -; Ignore source of message when ignoring repeated messages. When this setting -; is On you will not log errors with repeated messages from different files or -; source lines. -; http://php.net/ignore-repeated-source -ignore_repeated_source = Off - -; If this parameter is set to Off, then memory leaks will not be shown (on -; stdout or in the log). This has only effect in a debug compile, and if -; error reporting includes E_WARNING in the allowed list -; http://php.net/report-memleaks -report_memleaks = On - -; This setting is on by default. -;report_zend_debug = 0 - -; Store the last error/warning message in $php_errormsg (boolean). Setting this value -; to On can assist in debugging and is appropriate for development servers. It should -; however be disabled on production servers. -; Default Value: Off -; Development Value: On -; Production Value: Off -; http://php.net/track-errors -track_errors = Off - -; Turn off normal error reporting and emit XML-RPC error XML -; http://php.net/xmlrpc-errors -;xmlrpc_errors = 0 - -; An XML-RPC faultCode -;xmlrpc_error_number = 0 - -; When PHP displays or logs an error, it has the capability of formatting the -; error message as HTML for easier reading. This directive controls whether -; the error message is formatted as HTML or not. -; Note: This directive is hardcoded to Off for the CLI SAPI -; Default Value: On -; Development Value: On -; Production value: On -; http://php.net/html-errors -html_errors = On - -; If html_errors is set to On *and* docref_root is not empty, then PHP -; produces clickable error messages that direct to a page describing the error -; or function causing the error in detail. -; You can download a copy of the PHP manual from http://php.net/docs -; and change docref_root to the base URL of your local copy including the -; leading '/'. You must also specify the file extension being used including -; the dot. PHP's default behavior is to leave these settings empty, in which -; case no links to documentation are generated. -; Note: Never use this feature for production boxes. -; http://php.net/docref-root -; Examples -;docref_root = "/phpmanual/" - -; http://php.net/docref-ext -;docref_ext = .html - -; String to output before an error message. PHP's default behavior is to leave -; this setting blank. -; http://php.net/error-prepend-string -; Example: -;error_prepend_string = "" - -; String to output after an error message. PHP's default behavior is to leave -; this setting blank. -; http://php.net/error-append-string -; Example: -;error_append_string = "" - -; Log errors to specified file. PHP's default behavior is to leave this value -; empty. -; http://php.net/error-log -; Example: -;error_log = php_errors.log -; Log errors to syslog (Event Log on Windows). -error_log = /var/log/php/php.error.log - -;windows.show_crt_warning -; Default value: 0 -; Development value: 0 -; Production value: 0 - -;;;;;;;;;;;;;;;;; -; Data Handling ; -;;;;;;;;;;;;;;;;; - -; The separator used in PHP generated URLs to separate arguments. -; PHP's default setting is "&". -; http://php.net/arg-separator.output -; Example: -;arg_separator.output = "&" - -; List of separator(s) used by PHP to parse input URLs into variables. -; PHP's default setting is "&". -; NOTE: Every character in this directive is considered as separator! -; http://php.net/arg-separator.input -; Example: -;arg_separator.input = ";&" - -; This directive determines which super global arrays are registered when PHP -; starts up. G,P,C,E & S are abbreviations for the following respective super -; globals: GET, POST, COOKIE, ENV and SERVER. There is a performance penalty -; paid for the registration of these arrays and because ENV is not as commonly -; used as the others, ENV is not recommended on productions servers. You -; can still get access to the environment variables through getenv() should you -; need to. -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS"; -; http://php.net/variables-order -variables_order = "GPCS" - -; This directive determines which super global data (G,P & C) should be -; registered into the super global array REQUEST. If so, it also determines -; the order in which that data is registered. The values for this directive -; are specified in the same manner as the variables_order directive, -; EXCEPT one. Leaving this value empty will cause PHP to use the value set -; in the variables_order directive. It does not mean it will leave the super -; globals array REQUEST empty. -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" -; http://php.net/request-order -request_order = "GP" - -; This directive determines whether PHP registers $argv & $argc each time it -; runs. $argv contains an array of all the arguments passed to PHP when a script -; is invoked. $argc contains an integer representing the number of arguments -; that were passed when the script was invoked. These arrays are extremely -; useful when running scripts from the command line. When this directive is -; enabled, registering these variables consumes CPU cycles and memory each time -; a script is executed. For performance reasons, this feature should be disabled -; on production servers. -; Note: This directive is hardcoded to On for the CLI SAPI -; Default Value: On -; Development Value: Off -; Production Value: Off -; http://php.net/register-argc-argv -register_argc_argv = Off - -; When enabled, the ENV, REQUEST and SERVER variables are created when they're -; first used (Just In Time) instead of when the script starts. If these -; variables are not used within a script, having this directive on will result -; in a performance gain. The PHP directive register_argc_argv must be disabled -; for this directive to have any affect. -; http://php.net/auto-globals-jit -auto_globals_jit = On - -; Whether PHP will read the POST data. -; This option is enabled by default. -; Most likely, you won't want to disable this option globally. It causes $_POST -; and $_FILES to always be empty; the only way you will be able to read the -; POST data will be through the php://input stream wrapper. This can be useful -; to proxy requests or to process the POST data in a memory efficient fashion. -; http://php.net/enable-post-data-reading -;enable_post_data_reading = Off - -; Maximum size of POST data that PHP will accept. -; Its value may be 0 to disable the limit. It is ignored if POST data reading -; is disabled through enable_post_data_reading. -; http://php.net/post-max-size -post_max_size = 100M - -; Automatically add files before PHP document. -; http://php.net/auto-prepend-file -auto_prepend_file = - -; Automatically add files after PHP document. -; http://php.net/auto-append-file -auto_append_file = - -; By default, PHP will output a media type using the Content-Type header. To -; disable this, simply set it to be empty. -; -; PHP's built-in default media type is set to text/html. -; http://php.net/default-mimetype -default_mimetype = "text/html" - -; PHP's default character set is set to UTF-8. -; http://php.net/default-charset -default_charset = "UTF-8" - -; PHP internal character encoding is set to empty. -; If empty, default_charset is used. -; http://php.net/internal-encoding -;internal_encoding = - -; PHP input character encoding is set to empty. -; If empty, default_charset is used. -; http://php.net/input-encoding -;input_encoding = - -; PHP output character encoding is set to empty. -; If empty, default_charset is used. -; See also output_buffer. -; http://php.net/output-encoding -;output_encoding = - -;;;;;;;;;;;;;;;;;;;;;;;;; -; Paths and Directories ; -;;;;;;;;;;;;;;;;;;;;;;;;; - -; UNIX: "/path1:/path2" -;include_path = ".:/php/includes" -; -; Windows: "\path1;\path2" -;include_path = ".;c:\php\includes" -; -; PHP's default setting for include_path is ".;/path/to/php/pear" -; http://php.net/include-path - -; The root of the PHP pages, used only if nonempty. -; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root -; if you are running php as a CGI under any web server (other than IIS) -; see documentation for security issues. The alternate is to use the -; cgi.force_redirect configuration below -; http://php.net/doc-root -doc_root = - -; The directory under which PHP opens the script using /~username used only -; if nonempty. -; http://php.net/user-dir -user_dir = - -; Directory in which the loadable extensions (modules) reside. -; http://php.net/extension-dir -; extension_dir = "./" -; On windows: -; extension_dir = "ext" - -; Directory where the temporary files should be placed. -; Defaults to the system default (see sys_get_temp_dir) -; sys_temp_dir = "/tmp" - -; Whether or not to enable the dl() function. The dl() function does NOT work -; properly in multithreaded servers, such as IIS or Zeus, and is automatically -; disabled on them. -; http://php.net/enable-dl -enable_dl = Off - -; cgi.force_redirect is necessary to provide security running PHP as a CGI under -; most web servers. Left undefined, PHP turns this on by default. You can -; turn it off here AT YOUR OWN RISK -; **You CAN safely turn this off for IIS, in fact, you MUST.** -; http://php.net/cgi.force-redirect -;cgi.force_redirect = 1 - -; if cgi.nph is enabled it will force cgi to always sent Status: 200 with -; every request. PHP's default behavior is to disable this feature. -;cgi.nph = 1 - -; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape -; (iPlanet) web servers, you MAY need to set an environment variable name that PHP -; will look for to know it is OK to continue execution. Setting this variable MAY -; cause security issues, KNOW WHAT YOU ARE DOING FIRST. -; http://php.net/cgi.redirect-status-env -;cgi.redirect_status_env = - -; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's -; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok -; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting -; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting -; of zero causes PHP to behave as before. Default is 1. You should fix your scripts -; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. -; http://php.net/cgi.fix-pathinfo -;cgi.fix_pathinfo=1 - -; if cgi.discard_path is enabled, the PHP CGI binary can safely be placed outside -; of the web tree and people will not be able to circumvent .htaccess security. -; http://php.net/cgi.dicard-path -;cgi.discard_path=1 - -; FastCGI under IIS (on WINNT based OS) supports the ability to impersonate -; security tokens of the calling client. This allows IIS to define the -; security context that the request runs under. mod_fastcgi under Apache -; does not currently support this feature (03/17/2002) -; Set to 1 if running under IIS. Default is zero. -; http://php.net/fastcgi.impersonate -;fastcgi.impersonate = 1 - -; Disable logging through FastCGI connection. PHP's default behavior is to enable -; this feature. -;fastcgi.logging = 0 - -; cgi.rfc2616_headers configuration option tells PHP what type of headers to -; use when sending HTTP response code. If set to 0, PHP sends Status: header that -; is supported by Apache. When this option is set to 1, PHP will send -; RFC2616 compliant header. -; Default is zero. -; http://php.net/cgi.rfc2616-headers -;cgi.rfc2616_headers = 0 - -; cgi.check_shebang_line controls whether CGI PHP checks for line starting with #! -; (shebang) at the top of the running script. This line might be needed if the -; script support running both as stand-alone script and via PHP CGI<. PHP in CGI -; mode skips this line and ignores its content if this directive is turned on. -; http://php.net/cgi.check-shebang-line -;cgi.check_shebang_line=1 - -;;;;;;;;;;;;;;;; -; File Uploads ; -;;;;;;;;;;;;;;;; - -; Whether to allow HTTP file uploads. -; http://php.net/file-uploads -file_uploads = On - -; Temporary directory for HTTP uploaded files (will use system default if not -; specified). -; http://php.net/upload-tmp-dir -;upload_tmp_dir = - -; Maximum allowed size for uploaded files. -; http://php.net/upload-max-filesize -upload_max_filesize = 50M - -; Maximum number of files that can be uploaded via a single request -max_file_uploads = 20 - -;;;;;;;;;;;;;;;;;; -; Fopen wrappers ; -;;;;;;;;;;;;;;;;;; - -; Whether to allow the treatment of URLs (like http:// or ftp://) as files. -; http://php.net/allow-url-fopen -allow_url_fopen = On - -; Whether to allow include/require to open URLs (like http:// or ftp://) as files. -; http://php.net/allow-url-include -allow_url_include = Off - -; Define the anonymous ftp password (your email address). PHP's default setting -; for this is empty. -; http://php.net/from -;from="john@doe.com" - -; Define the User-Agent string. PHP's default setting for this is empty. -; http://php.net/user-agent -;user_agent="PHP" - -; Default timeout for socket based streams (seconds) -; http://php.net/default-socket-timeout -default_socket_timeout = 60 - -; If your scripts have to deal with files from Macintosh systems, -; or you are running on a Mac and need to deal with files from -; unix or win32 systems, setting this flag will cause PHP to -; automatically detect the EOL character in those files so that -; fgets() and file() will work regardless of the source of the file. -; http://php.net/auto-detect-line-endings -;auto_detect_line_endings = Off - -;;;;;;;;;;;;;;;;;;;;;; -; Dynamic Extensions ; -;;;;;;;;;;;;;;;;;;;;;; - -; If you wish to have an extension loaded automatically, use the following -; syntax: -; -; extension=modulename.extension -; -; For example, on Windows: -; -; extension=mysqli.dll -; -; ... or under UNIX: -; -; extension=mysqli.so -; -; ... or with a path: -; -; extension=/path/to/extension/mysqli.so -; -; If you only provide the name of the extension, PHP will look for it in its -; default extension directory. -; -; Windows Extensions -; Note that ODBC support is built in, so no dll is needed for it. -; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5+) -; extension folders as well as the separate PECL DLL download (PHP 5+). -; Be sure to appropriately set the extension_dir directive. -; -;extension=php_bz2.dll -;extension=php_curl.dll -;extension=php_fileinfo.dll -;extension=php_ftp.dll -;extension=php_gd2.dll -;extension=php_gettext.dll -;extension=php_gmp.dll -;extension=php_intl.dll -;extension=php_imap.dll -;extension=php_interbase.dll -;extension=php_ldap.dll -;extension=php_mbstring.dll -;extension=php_exif.dll ; Must be after mbstring as it depends on it -;extension=php_mysqli.dll -;extension=php_oci8_12c.dll ; Use with Oracle Database 12c Instant Client -;extension=php_openssl.dll -;extension=php_pdo_firebird.dll -;extension=php_pdo_mysql.dll -;extension=php_pdo_oci.dll -;extension=php_pdo_odbc.dll -;extension=php_pdo_pgsql.dll -;extension=php_pdo_sqlite.dll -;extension=php_pgsql.dll -;extension=php_shmop.dll - -; The MIBS data available in the PHP distribution must be installed. -; See http://www.php.net/manual/en/snmp.installation.php -;extension=php_snmp.dll - -;extension=php_soap.dll -;extension=php_sockets.dll -;extension=php_sqlite3.dll -;extension=php_tidy.dll -;extension=php_xmlrpc.dll -;extension=php_xsl.dll - -;;;;;;;;;;;;;;;;;;; -; Module Settings ; -;;;;;;;;;;;;;;;;;;; - -[CLI Server] -; Whether the CLI web server uses ANSI color coding in its terminal output. -cli_server.color = On - -[Date] -; Defines the default timezone used by the date functions -; http://php.net/date.timezone -date.timezone = Asia/Shanghai - -; http://php.net/date.default-latitude -;date.default_latitude = 31.7667 - -; http://php.net/date.default-longitude -;date.default_longitude = 35.2333 - -; http://php.net/date.sunrise-zenith -;date.sunrise_zenith = 90.583333 - -; http://php.net/date.sunset-zenith -;date.sunset_zenith = 90.583333 - -[filter] -; http://php.net/filter.default -;filter.default = unsafe_raw - -; http://php.net/filter.default-flags -;filter.default_flags = - -[iconv] -; Use of this INI entry is deprecated, use global input_encoding instead. -; If empty, default_charset or input_encoding or iconv.input_encoding is used. -; The precedence is: default_charset < intput_encoding < iconv.input_encoding -;iconv.input_encoding = - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;iconv.internal_encoding = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; If empty, default_charset or output_encoding or iconv.output_encoding is used. -; The precedence is: default_charset < output_encoding < iconv.output_encoding -; To use an output encoding conversion, iconv's output handler must be set -; otherwise output encoding conversion cannot be performed. -;iconv.output_encoding = - -[intl] -;intl.default_locale = -; This directive allows you to produce PHP errors when some error -; happens within intl functions. The value is the level of the error produced. -; Default is 0, which does not produce any errors. -;intl.error_level = E_WARNING -;intl.use_exceptions = 0 - -[sqlite3] -;sqlite3.extension_dir = - -[Pcre] -;PCRE library backtracking limit. -; http://php.net/pcre.backtrack-limit -;pcre.backtrack_limit=100000 - -;PCRE library recursion limit. -;Please note that if you set this value to a high number you may consume all -;the available process stack and eventually crash PHP (due to reaching the -;stack size limit imposed by the Operating System). -; http://php.net/pcre.recursion-limit -;pcre.recursion_limit=100000 - -;Enables or disables JIT compilation of patterns. This requires the PCRE -;library to be compiled with JIT support. -;pcre.jit=1 - -[Pdo] -; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off" -; http://php.net/pdo-odbc.connection-pooling -;pdo_odbc.connection_pooling=strict - -;pdo_odbc.db2_instance_name - -[Pdo_mysql] -; If mysqlnd is used: Number of cache slots for the internal result set cache -; http://php.net/pdo_mysql.cache_size -pdo_mysql.cache_size = 2000 - -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -; http://php.net/pdo_mysql.default-socket -pdo_mysql.default_socket= - -[Phar] -; http://php.net/phar.readonly -;phar.readonly = On - -; http://php.net/phar.require-hash -;phar.require_hash = On - -;phar.cache_list = - -[mail function] -; For Win32 only. -; http://php.net/smtp -SMTP = localhost -; http://php.net/smtp-port -smtp_port = 25 - -; For Win32 only. -; http://php.net/sendmail-from -;sendmail_from = me@example.com - -; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). -; http://php.net/sendmail-path -;sendmail_path = - -; Force the addition of the specified parameters to be passed as extra parameters -; to the sendmail binary. These parameters will always replace the value of -; the 5th parameter to mail(). -;mail.force_extra_parameters = - -; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename -mail.add_x_header = On - -; The path to a log file that will log all mail() calls. Log entries include -; the full path of the script, line number, To address and headers. -;mail.log = -; Log mail to syslog (Event Log on Windows). -;mail.log = syslog - -[ODBC] -; http://php.net/odbc.default-db -;odbc.default_db = Not yet implemented - -; http://php.net/odbc.default-user -;odbc.default_user = Not yet implemented - -; http://php.net/odbc.default-pw -;odbc.default_pw = Not yet implemented - -; Controls the ODBC cursor model. -; Default: SQL_CURSOR_STATIC (default). -;odbc.default_cursortype - -; Allow or prevent persistent links. -; http://php.net/odbc.allow-persistent -odbc.allow_persistent = On - -; Check that a connection is still valid before reuse. -; http://php.net/odbc.check-persistent -odbc.check_persistent = On - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/odbc.max-persistent -odbc.max_persistent = -1 - -; Maximum number of links (persistent + non-persistent). -1 means no limit. -; http://php.net/odbc.max-links -odbc.max_links = -1 - -; Handling of LONG fields. Returns number of bytes to variables. 0 means -; passthru. -; http://php.net/odbc.defaultlrl -odbc.defaultlrl = 4096 - -; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char. -; See the documentation on odbc_binmode and odbc_longreadlen for an explanation -; of odbc.defaultlrl and odbc.defaultbinmode -; http://php.net/odbc.defaultbinmode -odbc.defaultbinmode = 1 - -;birdstep.max_links = -1 - -[Interbase] -; Allow or prevent persistent links. -ibase.allow_persistent = 1 - -; Maximum number of persistent links. -1 means no limit. -ibase.max_persistent = -1 - -; Maximum number of links (persistent + non-persistent). -1 means no limit. -ibase.max_links = -1 - -; Default database name for ibase_connect(). -;ibase.default_db = - -; Default username for ibase_connect(). -;ibase.default_user = - -; Default password for ibase_connect(). -;ibase.default_password = - -; Default charset for ibase_connect(). -;ibase.default_charset = - -; Default timestamp format. -ibase.timestampformat = "%Y-%m-%d %H:%M:%S" - -; Default date format. -ibase.dateformat = "%Y-%m-%d" - -; Default time format. -ibase.timeformat = "%H:%M:%S" - -[MySQLi] - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/mysqli.max-persistent -mysqli.max_persistent = -1 - -; Allow accessing, from PHP's perspective, local files with LOAD DATA statements -; http://php.net/mysqli.allow_local_infile -;mysqli.allow_local_infile = On - -; Allow or prevent persistent links. -; http://php.net/mysqli.allow-persistent -mysqli.allow_persistent = On - -; Maximum number of links. -1 means no limit. -; http://php.net/mysqli.max-links -mysqli.max_links = -1 - -; If mysqlnd is used: Number of cache slots for the internal result set cache -; http://php.net/mysqli.cache_size -mysqli.cache_size = 2000 - -; Default port number for mysqli_connect(). If unset, mysqli_connect() will use -; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the -; compile-time value defined MYSQL_PORT (in that order). Win32 will only look -; at MYSQL_PORT. -; http://php.net/mysqli.default-port -mysqli.default_port = 3306 - -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -; http://php.net/mysqli.default-socket -mysqli.default_socket = - -; Default host for mysql_connect() (doesn't apply in safe mode). -; http://php.net/mysqli.default-host -mysqli.default_host = - -; Default user for mysql_connect() (doesn't apply in safe mode). -; http://php.net/mysqli.default-user -mysqli.default_user = - -; Default password for mysqli_connect() (doesn't apply in safe mode). -; Note that this is generally a *bad* idea to store passwords in this file. -; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw") -; and reveal this password! And of course, any users with read access to this -; file will be able to reveal the password as well. -; http://php.net/mysqli.default-pw -mysqli.default_pw = - -; Allow or prevent reconnect -mysqli.reconnect = Off - -[mysqlnd] -; Enable / Disable collection of general statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -; http://php.net/mysqlnd.collect_statistics -mysqlnd.collect_statistics = On - -; Enable / Disable collection of memory usage statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -; http://php.net/mysqlnd.collect_memory_statistics -mysqlnd.collect_memory_statistics = Off - -; Records communication from all extensions using mysqlnd to the specified log -; file. -; http://php.net/mysqlnd.debug -;mysqlnd.debug = - -; Defines which queries will be logged. -; http://php.net/mysqlnd.log_mask -;mysqlnd.log_mask = 0 - -; Default size of the mysqlnd memory pool, which is used by result sets. -; http://php.net/mysqlnd.mempool_default_size -;mysqlnd.mempool_default_size = 16000 - -; Size of a pre-allocated buffer used when sending commands to MySQL in bytes. -; http://php.net/mysqlnd.net_cmd_buffer_size -;mysqlnd.net_cmd_buffer_size = 2048 - -; Size of a pre-allocated buffer used for reading data sent by the server in -; bytes. -; http://php.net/mysqlnd.net_read_buffer_size -;mysqlnd.net_read_buffer_size = 32768 - -; Timeout for network requests in seconds. -; http://php.net/mysqlnd.net_read_timeout -;mysqlnd.net_read_timeout = 31536000 - -; SHA-256 Authentication Plugin related. File with the MySQL server public RSA -; key. -; http://php.net/mysqlnd.sha256_server_public_key -;mysqlnd.sha256_server_public_key = - -[OCI8] - -; Connection: Enables privileged connections using external -; credentials (OCI_SYSOPER, OCI_SYSDBA) -; http://php.net/oci8.privileged-connect -;oci8.privileged_connect = Off - -; Connection: The maximum number of persistent OCI8 connections per -; process. Using -1 means no limit. -; http://php.net/oci8.max-persistent -;oci8.max_persistent = -1 - -; Connection: The maximum number of seconds a process is allowed to -; maintain an idle persistent connection. Using -1 means idle -; persistent connections will be maintained forever. -; http://php.net/oci8.persistent-timeout -;oci8.persistent_timeout = -1 - -; Connection: The number of seconds that must pass before issuing a -; ping during oci_pconnect() to check the connection validity. When -; set to 0, each oci_pconnect() will cause a ping. Using -1 disables -; pings completely. -; http://php.net/oci8.ping-interval -;oci8.ping_interval = 60 - -; Connection: Set this to a user chosen connection class to be used -; for all pooled server requests with Oracle 11g Database Resident -; Connection Pooling (DRCP). To use DRCP, this value should be set to -; the same string for all web servers running the same application, -; the database pool must be configured, and the connection string must -; specify to use a pooled server. -;oci8.connection_class = - -; High Availability: Using On lets PHP receive Fast Application -; Notification (FAN) events generated when a database node fails. The -; database must also be configured to post FAN events. -;oci8.events = Off - -; Tuning: This option enables statement caching, and specifies how -; many statements to cache. Using 0 disables statement caching. -; http://php.net/oci8.statement-cache-size -;oci8.statement_cache_size = 20 - -; Tuning: Enables statement prefetching and sets the default number of -; rows that will be fetched automatically after statement execution. -; http://php.net/oci8.default-prefetch -;oci8.default_prefetch = 100 - -; Compatibility. Using On means oci_close() will not close -; oci_connect() and oci_new_connect() connections. -; http://php.net/oci8.old-oci-close-semantics -;oci8.old_oci_close_semantics = Off - -[PostgreSQL] -; Allow or prevent persistent links. -; http://php.net/pgsql.allow-persistent -pgsql.allow_persistent = On - -; Detect broken persistent links always with pg_pconnect(). -; Auto reset feature requires a little overheads. -; http://php.net/pgsql.auto-reset-persistent -pgsql.auto_reset_persistent = Off - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/pgsql.max-persistent -pgsql.max_persistent = -1 - -; Maximum number of links (persistent+non persistent). -1 means no limit. -; http://php.net/pgsql.max-links -pgsql.max_links = -1 - -; Ignore PostgreSQL backends Notice message or not. -; Notice message logging require a little overheads. -; http://php.net/pgsql.ignore-notice -pgsql.ignore_notice = 0 - -; Log PostgreSQL backends Notice message or not. -; Unless pgsql.ignore_notice=0, module cannot log notice message. -; http://php.net/pgsql.log-notice -pgsql.log_notice = 0 - -[bcmath] -; Number of decimal digits for all bcmath functions. -; http://php.net/bcmath.scale -bcmath.scale = 0 - -[browscap] -; http://php.net/browscap -;browscap = extra/browscap.ini - -[Session] -; Handler used to store/retrieve data. -; http://php.net/session.save-handler -session.save_handler = files - -; Argument passed to save_handler. In the case of files, this is the path -; where data files are stored. Note: Windows users have to change this -; variable in order to use PHP's session functions. -; -; The path can be defined as: -; -; session.save_path = "N;/path" -; -; where N is an integer. Instead of storing all the session files in -; /path, what this will do is use subdirectories N-levels deep, and -; store the session data in those directories. This is useful if -; your OS has problems with many files in one directory, and is -; a more efficient layout for servers that handle many sessions. -; -; NOTE 1: PHP will not create this directory structure automatically. -; You can use the script in the ext/session dir for that purpose. -; NOTE 2: See the section on garbage collection below if you choose to -; use subdirectories for session storage -; -; The file storage module creates files using mode 600 by default. -; You can change that by using -; -; session.save_path = "N;MODE;/path" -; -; where MODE is the octal representation of the mode. Note that this -; does not overwrite the process's umask. -; http://php.net/session.save-path -;session.save_path = "/tmp" - -; Whether to use strict session mode. -; Strict session mode does not accept uninitialized session ID and regenerate -; session ID if browser sends uninitialized session ID. Strict mode protects -; applications from session fixation via session adoption vulnerability. It is -; disabled by default for maximum compatibility, but enabling it is encouraged. -; https://wiki.php.net/rfc/strict_sessions -session.use_strict_mode = 0 - -; Whether to use cookies. -; http://php.net/session.use-cookies -session.use_cookies = 1 - -; http://php.net/session.cookie-secure -;session.cookie_secure = - -; This option forces PHP to fetch and use a cookie for storing and maintaining -; the session id. We encourage this operation as it's very helpful in combating -; session hijacking when not specifying and managing your own session id. It is -; not the be-all and end-all of session hijacking defense, but it's a good start. -; http://php.net/session.use-only-cookies -session.use_only_cookies = 1 - -; Name of the session (used as cookie name). -; http://php.net/session.name -session.name = PHPSESSID - -; Initialize session on request startup. -; http://php.net/session.auto-start -session.auto_start = 0 - -; Lifetime in seconds of cookie or, if 0, until browser is restarted. -; http://php.net/session.cookie-lifetime -session.cookie_lifetime = 0 - -; The path for which the cookie is valid. -; http://php.net/session.cookie-path -session.cookie_path = / - -; The domain for which the cookie is valid. -; http://php.net/session.cookie-domain -session.cookie_domain = - -; Whether or not to add the httpOnly flag to the cookie, which makes it inaccessible to browser scripting languages such as JavaScript. -; http://php.net/session.cookie-httponly -session.cookie_httponly = - -; Handler used to serialize data. php is the standard serializer of PHP. -; http://php.net/session.serialize-handler -session.serialize_handler = php - -; Defines the probability that the 'garbage collection' process is started -; on every session initialization. The probability is calculated by using -; gc_probability/gc_divisor. Where session.gc_probability is the numerator -; and gc_divisor is the denominator in the equation. Setting this value to 1 -; when the session.gc_divisor value is 100 will give you approximately a 1% chance -; the gc will run on any give request. -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; http://php.net/session.gc-probability -session.gc_probability = 1 - -; Defines the probability that the 'garbage collection' process is started on every -; session initialization. The probability is calculated by using the following equation: -; gc_probability/gc_divisor. Where session.gc_probability is the numerator and -; session.gc_divisor is the denominator in the equation. Setting this value to 1 -; when the session.gc_divisor value is 100 will give you approximately a 1% chance -; the gc will run on any give request. Increasing this value to 1000 will give you -; a 0.1% chance the gc will run on any give request. For high volume production servers, -; this is a more efficient approach. -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 -; http://php.net/session.gc-divisor -session.gc_divisor = 1000 - -; After this number of seconds, stored data will be seen as 'garbage' and -; cleaned up by the garbage collection process. -; http://php.net/session.gc-maxlifetime -session.gc_maxlifetime = 1440 - -; NOTE: If you are using the subdirectory option for storing session files -; (see session.save_path above), then garbage collection does *not* -; happen automatically. You will need to do your own garbage -; collection through a shell script, cron entry, or some other method. -; For example, the following script would is the equivalent of -; setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes): -; find /path/to/sessions -cmin +24 -type f | xargs rm - -; Check HTTP Referer to invalidate externally stored URLs containing ids. -; HTTP_REFERER has to contain this substring for the session to be -; considered as valid. -; http://php.net/session.referer-check -session.referer_check = - -; Set to {nocache,private,public,} to determine HTTP caching aspects -; or leave this empty to avoid sending anti-caching headers. -; http://php.net/session.cache-limiter -session.cache_limiter = nocache - -; Document expires after n minutes. -; http://php.net/session.cache-expire -session.cache_expire = 180 - -; trans sid support is disabled by default. -; Use of trans sid may risk your users' security. -; Use this option with caution. -; - User may send URL contains active session ID -; to other person via. email/irc/etc. -; - URL that contains active session ID may be stored -; in publicly accessible computer. -; - User may access your site with the same session ID -; always using URL stored in browser's history or bookmarks. -; http://php.net/session.use-trans-sid -session.use_trans_sid = 0 - -; Set session ID character length. This value could be between 22 to 256. -; Shorter length than default is supported only for compatibility reason. -; Users should use 32 or more chars. -; http://php.net/session.sid-length -; Default Value: 32 -; Development Value: 26 -; Production Value: 26 -session.sid_length = 26 - -; The URL rewriter will look for URLs in a defined set of HTML tags. -; is special; if you include them here, the rewriter will -; add a hidden field with the info which is otherwise appended -; to URLs. tag's action attribute URL will not be modified -; unless it is specified. -; Note that all valid entries require a "=", even if no value follows. -; Default Value: "a=href,area=href,frame=src,form=" -; Development Value: "a=href,area=href,frame=src,form=" -; Production Value: "a=href,area=href,frame=src,form=" -; http://php.net/url-rewriter.tags -session.trans_sid_tags = "a=href,area=href,frame=src,form=" - -; URL rewriter does not rewrite absolute URLs by default. -; To enable rewrites for absolute pathes, target hosts must be specified -; at RUNTIME. i.e. use ini_set() -; tags is special. PHP will check action attribute's URL regardless -; of session.trans_sid_tags setting. -; If no host is defined, HTTP_HOST will be used for allowed host. -; Example value: php.net,www.php.net,wiki.php.net -; Use "," for multiple hosts. No spaces are allowed. -; Default Value: "" -; Development Value: "" -; Production Value: "" -;session.trans_sid_hosts="" - -; Define how many bits are stored in each character when converting -; the binary hash data to something readable. -; Possible values: -; 4 (4 bits: 0-9, a-f) -; 5 (5 bits: 0-9, a-v) -; 6 (6 bits: 0-9, a-z, A-Z, "-", ",") -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 -; http://php.net/session.hash-bits-per-character -session.sid_bits_per_character = 5 - -; Enable upload progress tracking in $_SESSION -; Default Value: On -; Development Value: On -; Production Value: On -; http://php.net/session.upload-progress.enabled -;session.upload_progress.enabled = On - -; Cleanup the progress information as soon as all POST data has been read -; (i.e. upload completed). -; Default Value: On -; Development Value: On -; Production Value: On -; http://php.net/session.upload-progress.cleanup -;session.upload_progress.cleanup = On - -; A prefix used for the upload progress key in $_SESSION -; Default Value: "upload_progress_" -; Development Value: "upload_progress_" -; Production Value: "upload_progress_" -; http://php.net/session.upload-progress.prefix -;session.upload_progress.prefix = "upload_progress_" - -; The index name (concatenated with the prefix) in $_SESSION -; containing the upload progress information -; Default Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Development Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Production Value: "PHP_SESSION_UPLOAD_PROGRESS" -; http://php.net/session.upload-progress.name -;session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS" - -; How frequently the upload progress should be updated. -; Given either in percentages (per-file), or in bytes -; Default Value: "1%" -; Development Value: "1%" -; Production Value: "1%" -; http://php.net/session.upload-progress.freq -;session.upload_progress.freq = "1%" - -; The minimum delay between updates, in seconds -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; http://php.net/session.upload-progress.min-freq -;session.upload_progress.min_freq = "1" - -; Only write session data when session data is changed. Enabled by default. -; http://php.net/session.lazy-write -;session.lazy_write = On - -[Assertion] -; Switch whether to compile assertions at all (to have no overhead at run-time) -; -1: Do not compile at all -; 0: Jump over assertion at run-time -; 1: Execute assertions -; Changing from or to a negative value is only possible in php.ini! (For turning assertions on and off at run-time, see assert.active, when zend.assertions = 1) -; Default Value: 1 -; Development Value: 1 -; Production Value: -1 -; http://php.net/zend.assertions -zend.assertions = -1 - -; Assert(expr); active by default. -; http://php.net/assert.active -;assert.active = On - -; Throw an AssertationException on failed assertions -; http://php.net/assert.exception -;assert.exception = On - -; Issue a PHP warning for each failed assertion. (Overridden by assert.exception if active) -; http://php.net/assert.warning -;assert.warning = On - -; Don't bail out by default. -; http://php.net/assert.bail -;assert.bail = Off - -; User-function to be called if an assertion fails. -; http://php.net/assert.callback -;assert.callback = 0 - -; Eval the expression with current error_reporting(). Set to true if you want -; error_reporting(0) around the eval(). -; http://php.net/assert.quiet-eval -;assert.quiet_eval = 0 - -[COM] -; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs -; http://php.net/com.typelib-file -;com.typelib_file = - -; allow Distributed-COM calls -; http://php.net/com.allow-dcom -;com.allow_dcom = true - -; autoregister constants of a components typlib on com_load() -; http://php.net/com.autoregister-typelib -;com.autoregister_typelib = true - -; register constants casesensitive -; http://php.net/com.autoregister-casesensitive -;com.autoregister_casesensitive = false - -; show warnings on duplicate constant registrations -; http://php.net/com.autoregister-verbose -;com.autoregister_verbose = true - -; The default character set code-page to use when passing strings to and from COM objects. -; Default: system ANSI code page -;com.code_page= - -[mbstring] -; language for internal character representation. -; This affects mb_send_mail() and mbstring.detect_order. -; http://php.net/mbstring.language -;mbstring.language = Japanese - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; internal/script encoding. -; Some encoding cannot work as internal encoding. (e.g. SJIS, BIG5, ISO-2022-*) -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;mbstring.internal_encoding = - -; Use of this INI entry is deprecated, use global input_encoding instead. -; http input encoding. -; mbstring.encoding_traslation = On is needed to use this setting. -; If empty, default_charset or input_encoding or mbstring.input is used. -; The precedence is: default_charset < intput_encoding < mbsting.http_input -; http://php.net/mbstring.http-input -;mbstring.http_input = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; http output encoding. -; mb_output_handler must be registered as output buffer to function. -; If empty, default_charset or output_encoding or mbstring.http_output is used. -; The precedence is: default_charset < output_encoding < mbstring.http_output -; To use an output encoding conversion, mbstring's output handler must be set -; otherwise output encoding conversion cannot be performed. -; http://php.net/mbstring.http-output -;mbstring.http_output = - -; enable automatic encoding translation according to -; mbstring.internal_encoding setting. Input chars are -; converted to internal encoding by setting this to On. -; Note: Do _not_ use automatic encoding translation for -; portable libs/applications. -; http://php.net/mbstring.encoding-translation -;mbstring.encoding_translation = Off - -; automatic encoding detection order. -; "auto" detect order is changed according to mbstring.language -; http://php.net/mbstring.detect-order -;mbstring.detect_order = auto - -; substitute_character used when character cannot be converted -; one from another -; http://php.net/mbstring.substitute-character -;mbstring.substitute_character = none - -; overload(replace) single byte functions by mbstring functions. -; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(), -; etc. Possible values are 0,1,2,4 or combination of them. -; For example, 7 for overload everything. -; 0: No overload -; 1: Overload mail() function -; 2: Overload str*() functions -; 4: Overload ereg*() functions -; http://php.net/mbstring.func-overload -;mbstring.func_overload = 0 - -; enable strict encoding detection. -; Default: Off -;mbstring.strict_detection = On - -; This directive specifies the regex pattern of content types for which mb_output_handler() -; is activated. -; Default: mbstring.http_output_conv_mimetype=^(text/|application/xhtml\+xml) -;mbstring.http_output_conv_mimetype= - -[gd] -; Tell the jpeg decode to ignore warnings and try to create -; a gd image. The warning will then be displayed as notices -; disabled by default -; http://php.net/gd.jpeg-ignore-warning -;gd.jpeg_ignore_warning = 1 - -[exif] -; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS. -; With mbstring support this will automatically be converted into the encoding -; given by corresponding encode setting. When empty mbstring.internal_encoding -; is used. For the decode settings you can distinguish between motorola and -; intel byte order. A decode setting cannot be empty. -; http://php.net/exif.encode-unicode -;exif.encode_unicode = ISO-8859-15 - -; http://php.net/exif.decode-unicode-motorola -;exif.decode_unicode_motorola = UCS-2BE - -; http://php.net/exif.decode-unicode-intel -;exif.decode_unicode_intel = UCS-2LE - -; http://php.net/exif.encode-jis -;exif.encode_jis = - -; http://php.net/exif.decode-jis-motorola -;exif.decode_jis_motorola = JIS - -; http://php.net/exif.decode-jis-intel -;exif.decode_jis_intel = JIS - -[Tidy] -; The path to a default tidy configuration file to use when using tidy -; http://php.net/tidy.default-config -;tidy.default_config = /usr/local/lib/php/default.tcfg - -; Should tidy clean and repair output automatically? -; WARNING: Do not use this option if you are generating non-html content -; such as dynamic images -; http://php.net/tidy.clean-output -tidy.clean_output = Off - -[soap] -; Enables or disables WSDL caching feature. -; http://php.net/soap.wsdl-cache-enabled -soap.wsdl_cache_enabled=1 - -; Sets the directory name where SOAP extension will put cache files. -; http://php.net/soap.wsdl-cache-dir -soap.wsdl_cache_dir="/tmp" - -; (time to live) Sets the number of second while cached file will be used -; instead of original one. -; http://php.net/soap.wsdl-cache-ttl -soap.wsdl_cache_ttl=86400 - -; Sets the size of the cache limit. (Max. number of WSDL files to cache) -soap.wsdl_cache_limit = 5 - -[sysvshm] -; A default size of the shared memory segment -;sysvshm.init_mem = 10000 - -[ldap] -; Sets the maximum number of open links or -1 for unlimited. -ldap.max_links = -1 - -[dba] -;dba.default_handler= - -[opcache] -; Determines if Zend OPCache is enabled -;opcache.enable=1 - -; Determines if Zend OPCache is enabled for the CLI version of PHP -;opcache.enable_cli=1 - -; The OPcache shared memory storage size. -;opcache.memory_consumption=128 - -; The amount of memory for interned strings in Mbytes. -;opcache.interned_strings_buffer=8 - -; The maximum number of keys (scripts) in the OPcache hash table. -; Only numbers between 200 and 1000000 are allowed. -;opcache.max_accelerated_files=10000 - -; The maximum percentage of "wasted" memory until a restart is scheduled. -;opcache.max_wasted_percentage=5 - -; When this directive is enabled, the OPcache appends the current working -; directory to the script key, thus eliminating possible collisions between -; files with the same name (basename). Disabling the directive improves -; performance, but may break existing applications. -;opcache.use_cwd=1 - -; When disabled, you must reset the OPcache manually or restart the -; webserver for changes to the filesystem to take effect. -;opcache.validate_timestamps=1 - -; How often (in seconds) to check file timestamps for changes to the shared -; memory storage allocation. ("1" means validate once per second, but only -; once per request. "0" means always validate) -;opcache.revalidate_freq=2 - -; Enables or disables file search in include_path optimization -;opcache.revalidate_path=0 - -; If disabled, all PHPDoc comments are dropped from the code to reduce the -; size of the optimized code. -;opcache.save_comments=1 - -; If enabled, a fast shutdown sequence is used for the accelerated code -; Depending on the used Memory Manager this may cause some incompatibilities. -;opcache.fast_shutdown=0 - -; Allow file existence override (file_exists, etc.) performance feature. -;opcache.enable_file_override=0 - -; A bitmask, where each bit enables or disables the appropriate OPcache -; passes -;opcache.optimization_level=0xffffffff - -;opcache.inherited_hack=1 -;opcache.dups_fix=0 - -; The location of the OPcache blacklist file (wildcards allowed). -; Each OPcache blacklist file is a text file that holds the names of files -; that should not be accelerated. The file format is to add each filename -; to a new line. The filename may be a full path or just a file prefix -; (i.e., /var/www/x blacklists all the files and directories in /var/www -; that start with 'x'). Line starting with a ; are ignored (comments). -;opcache.blacklist_filename= - -; Allows exclusion of large files from being cached. By default all files -; are cached. -;opcache.max_file_size=0 - -; Check the cache checksum each N requests. -; The default value of "0" means that the checks are disabled. -;opcache.consistency_checks=0 - -; How long to wait (in seconds) for a scheduled restart to begin if the cache -; is not being accessed. -;opcache.force_restart_timeout=180 - -; OPcache error_log file name. Empty string assumes "stderr". -;opcache.error_log= - -; All OPcache errors go to the Web server log. -; By default, only fatal errors (level 0) or errors (level 1) are logged. -; You can also enable warnings (level 2), info messages (level 3) or -; debug messages (level 4). -;opcache.log_verbosity_level=1 - -; Preferred Shared Memory back-end. Leave empty and let the system decide. -;opcache.preferred_memory_model= - -; Protect the shared memory from unexpected writing during script execution. -; Useful for internal debugging only. -;opcache.protect_memory=0 - -; Allows calling OPcache API functions only from PHP scripts which path is -; started from specified string. The default "" means no restriction -;opcache.restrict_api= - -; Mapping base of shared memory segments (for Windows only). All the PHP -; processes have to map shared memory into the same address space. This -; directive allows to manually fix the "Unable to reattach to base address" -; errors. -;opcache.mmap_base= - -; Enables and sets the second level cache directory. -; It should improve performance when SHM memory is full, at server restart or -; SHM reset. The default "" disables file based caching. -;opcache.file_cache= - -; Enables or disables opcode caching in shared memory. -;opcache.file_cache_only=0 - -; Enables or disables checksum validation when script loaded from file cache. -;opcache.file_cache_consistency_checks=1 - -; Implies opcache.file_cache_only=1 for a certain process that failed to -; reattach to the shared memory (for Windows only). Explicitly enabled file -; cache is required. -;opcache.file_cache_fallback=1 - -; Enables or disables copying of PHP code (text segment) into HUGE PAGES. -; This should improve performance, but requires appropriate OS configuration. -;opcache.huge_code_pages=1 - -; Validate cached file permissions. -;opcache.validate_permission=0 - -; Prevent name collisions in chroot'ed environment. -;opcache.validate_root=0 - -[curl] -; A default value for the CURLOPT_CAINFO option. This is required to be an -; absolute path. -;curl.cainfo = - -[openssl] -; The location of a Certificate Authority (CA) file on the local filesystem -; to use when verifying the identity of SSL/TLS peers. Most users should -; not specify a value for this directive as PHP will attempt to use the -; OS-managed cert stores in its absence. If specified, this value may still -; be overridden on a per-stream basis via the "cafile" SSL stream context -; option. -;openssl.cafile= - -; If openssl.cafile is not specified or if the CA file is not found, the -; directory pointed to by openssl.capath is searched for a suitable -; certificate. This value must be a correctly hashed certificate directory. -; Most users should not specify a value for this directive as PHP will -; attempt to use the OS-managed cert stores in its absence. If specified, -; this value may still be overridden on a per-stream basis via the "capath" -; SSL stream context option. -;openssl.capath= - -; Local Variables: -; tab-width: 4 -; End: - -[XDebug] -xdebug.mode=debug -xdebug.remote_handler = "dbgp" -; Set to host.docker.internal on Mac and Windows, otherwise, set to host real ip -xdebug.client_host = host.docker.internal -;xdebug.remote_port = 9000 -xdebug.remote_log = /var/log/php/xdebug.log - -SERVER_ENV=develop - -yaf.use_spl_autoload=1 - -[xhprof] -;xhprof.output_dir = /var/log/php/xhprof.log \ No newline at end of file diff --git a/php8/8.4.6/conf/php-fpm.conf b/php8/8.4.6/conf/php-fpm.conf deleted file mode 100644 index 131835891..000000000 --- a/php8/8.4.6/conf/php-fpm.conf +++ /dev/null @@ -1,423 +0,0 @@ -; Start a new pool named 'www'. -; the variable $pool can be used in any directive and will be replaced by the -; pool name ('www' here) -[www] - -; Per pool prefix -; It only applies on the following directives: -; - 'access.log' -; - 'slowlog' -; - 'listen' (unixsocket) -; - 'chroot' -; - 'chdir' -; - 'php_values' -; - 'php_admin_values' -; When not set, the global prefix (or NONE) applies instead. -; Note: This directive can also be relative to the global prefix. -; Default Value: none -;prefix = /path/to/pools/$pool - -; Unix user/group of processes -; Note: The user is mandatory. If the group is not set, the default user's group -; will be used. -user = www-data -group = www-data - -; The address on which to accept FastCGI requests. -; Valid syntaxes are: -; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on -; a specific port; -; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on -; a specific port; -; 'port' - to listen on a TCP socket to all addresses -; (IPv6 and IPv4-mapped) on a specific port; -; '/path/to/unix/socket' - to listen on a unix socket. -; Note: This value is mandatory. -listen = 127.0.0.1:9000 - -; Set listen(2) backlog. -; Default Value: 511 (-1 on FreeBSD and OpenBSD) -;listen.backlog = 511 - -; Set permissions for unix socket, if one is used. In Linux, read/write -; permissions must be set in order to allow connections from a web server. Many -; BSD-derived systems allow connections regardless of permissions. -; Default Values: user and group are set as the running user -; mode is set to 0660 -;listen.owner = www-data -;listen.group = www-data -;listen.mode = 0660 -; When POSIX Access Control Lists are supported you can set them using -; these options, value is a comma separated list of user/group names. -; When set, listen.owner and listen.group are ignored -;listen.acl_users = -;listen.acl_groups = - -; List of addresses (IPv4/IPv6) of FastCGI clients which are allowed to connect. -; Equivalent to the FCGI_WEB_SERVER_ADDRS environment variable in the original -; PHP FCGI (5.2.2+). Makes sense only with a tcp listening socket. Each address -; must be separated by a comma. If this value is left blank, connections will be -; accepted from any ip address. -; Default Value: any -;listen.allowed_clients = 127.0.0.1 - -; Specify the nice(2) priority to apply to the pool processes (only if set) -; The value can vary from -19 (highest priority) to 20 (lower priority) -; Note: - It will only work if the FPM master process is launched as root -; - The pool processes will inherit the master process priority -; unless it specified otherwise -; Default Value: no set -; process.priority = -19 - -; Set the process dumpable flag (PR_SET_DUMPABLE prctl) even if the process user -; or group is differrent than the master process user. It allows to create process -; core dump and ptrace the process for the pool user. -; Default Value: no -; process.dumpable = yes - -; Choose how the process manager will control the number of child processes. -; Possible Values: -; static - a fixed number (pm.max_children) of child processes; -; dynamic - the number of child processes are set dynamically based on the -; following directives. With this process management, there will be -; always at least 1 children. -; pm.max_children - the maximum number of children that can -; be alive at the same time. -; pm.start_servers - the number of children created on startup. -; pm.min_spare_servers - the minimum number of children in 'idle' -; state (waiting to process). If the number -; of 'idle' processes is less than this -; number then some children will be created. -; pm.max_spare_servers - the maximum number of children in 'idle' -; state (waiting to process). If the number -; of 'idle' processes is greater than this -; number then some children will be killed. -; ondemand - no children are created at startup. Children will be forked when -; new requests will connect. The following parameter are used: -; pm.max_children - the maximum number of children that -; can be alive at the same time. -; pm.process_idle_timeout - The number of seconds after which -; an idle process will be killed. -; Note: This value is mandatory. -pm = dynamic - -; The number of child processes to be created when pm is set to 'static' and the -; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'. -; This value sets the limit on the number of simultaneous requests that will be -; served. Equivalent to the ApacheMaxClients directive with mpm_prefork. -; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP -; CGI. The below defaults are based on a server without much resources. Don't -; forget to tweak pm.* to fit your needs. -; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand' -; Note: This value is mandatory. -pm.max_children = 10 - -; The number of child processes created on startup. -; Note: Used only when pm is set to 'dynamic' -; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2 -pm.start_servers = 2 - -; The desired minimum number of idle server processes. -; Note: Used only when pm is set to 'dynamic' -; Note: Mandatory when pm is set to 'dynamic' -pm.min_spare_servers = 1 - -; The desired maximum number of idle server processes. -; Note: Used only when pm is set to 'dynamic' -; Note: Mandatory when pm is set to 'dynamic' -pm.max_spare_servers = 3 - -; The number of seconds after which an idle process will be killed. -; Note: Used only when pm is set to 'ondemand' -; Default Value: 10s -;pm.process_idle_timeout = 10s; - -; The number of requests each child process should execute before respawning. -; This can be useful to work around memory leaks in 3rd party libraries. For -; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS. -; Default Value: 0 -;pm.max_requests = 500 - -; The URI to view the FPM status page. If this value is not set, no URI will be -; recognized as a status page. It shows the following informations: -; pool - the name of the pool; -; process manager - static, dynamic or ondemand; -; start time - the date and time FPM has started; -; start since - number of seconds since FPM has started; -; accepted conn - the number of request accepted by the pool; -; listen queue - the number of request in the queue of pending -; connections (see backlog in listen(2)); -; max listen queue - the maximum number of requests in the queue -; of pending connections since FPM has started; -; listen queue len - the size of the socket queue of pending connections; -; idle processes - the number of idle processes; -; active processes - the number of active processes; -; total processes - the number of idle + active processes; -; max active processes - the maximum number of active processes since FPM -; has started; -; max children reached - number of times, the process limit has been reached, -; when pm tries to start more children (works only for -; pm 'dynamic' and 'ondemand'); -; Value are updated in real time. -; Example output: -; pool: www -; process manager: static -; start time: 01/Jul/2011:17:53:49 +0200 -; start since: 62636 -; accepted conn: 190460 -; listen queue: 0 -; max listen queue: 1 -; listen queue len: 42 -; idle processes: 4 -; active processes: 11 -; total processes: 15 -; max active processes: 12 -; max children reached: 0 -; -; By default the status page output is formatted as text/plain. Passing either -; 'html', 'xml' or 'json' in the query string will return the corresponding -; output syntax. Example: -; http://www.foo.bar/status -; http://www.foo.bar/status?json -; http://www.foo.bar/status?html -; http://www.foo.bar/status?xml -; -; By default the status page only outputs short status. Passing 'full' in the -; query string will also return status for each pool process. -; Example: -; http://www.foo.bar/status?full -; http://www.foo.bar/status?json&full -; http://www.foo.bar/status?html&full -; http://www.foo.bar/status?xml&full -; The Full status returns for each process: -; pid - the PID of the process; -; state - the state of the process (Idle, Running, ...); -; start time - the date and time the process has started; -; start since - the number of seconds since the process has started; -; requests - the number of requests the process has served; -; request duration - the duration in µs of the requests; -; request method - the request method (GET, POST, ...); -; request URI - the request URI with the query string; -; content length - the content length of the request (only with POST); -; user - the user (PHP_AUTH_USER) (or '-' if not set); -; script - the main script called (or '-' if not set); -; last request cpu - the %cpu the last request consumed -; it's always 0 if the process is not in Idle state -; because CPU calculation is done when the request -; processing has terminated; -; last request memory - the max amount of memory the last request consumed -; it's always 0 if the process is not in Idle state -; because memory calculation is done when the request -; processing has terminated; -; If the process is in Idle state, then informations are related to the -; last request the process has served. Otherwise informations are related to -; the current request being served. -; Example output: -; ************************ -; pid: 31330 -; state: Running -; start time: 01/Jul/2011:17:53:49 +0200 -; start since: 63087 -; requests: 12808 -; request duration: 1250261 -; request method: GET -; request URI: /test_mem.php?N=10000 -; content length: 0 -; user: - -; script: /home/fat/web/docs/php/test_mem.php -; last request cpu: 0.00 -; last request memory: 0 -; -; Note: There is a real-time FPM status monitoring sample web page available -; It's available in: /usr/local/share/php/fpm/status.html -; -; Note: The value must start with a leading slash (/). The value can be -; anything, but it may not be a good idea to use the .php extension or it -; may conflict with a real PHP file. -; Default Value: not set -;pm.status_path = /status - -; The ping URI to call the monitoring page of FPM. If this value is not set, no -; URI will be recognized as a ping page. This could be used to test from outside -; that FPM is alive and responding, or to -; - create a graph of FPM availability (rrd or such); -; - remove a server from a group if it is not responding (load balancing); -; - trigger alerts for the operating team (24/7). -; Note: The value must start with a leading slash (/). The value can be -; anything, but it may not be a good idea to use the .php extension or it -; may conflict with a real PHP file. -; Default Value: not set -;ping.path = /ping - -; This directive may be used to customize the response of a ping request. The -; response is formatted as text/plain with a 200 response code. -; Default Value: pong -;ping.response = pong - -; The access log file -; Default: not set -;access.log = log/$pool.access.log - -; The access log format. -; The following syntax is allowed -; %%: the '%' character -; %C: %CPU used by the request -; it can accept the following format: -; - %{user}C for user CPU only -; - %{system}C for system CPU only -; - %{total}C for user + system CPU (default) -; %d: time taken to serve the request -; it can accept the following format: -; - %{seconds}d (default) -; - %{miliseconds}d -; - %{mili}d -; - %{microseconds}d -; - %{micro}d -; %e: an environment variable (same as $_ENV or $_SERVER) -; it must be associated with embraces to specify the name of the env -; variable. Some exemples: -; - server specifics like: %{REQUEST_METHOD}e or %{SERVER_PROTOCOL}e -; - HTTP headers like: %{HTTP_HOST}e or %{HTTP_USER_AGENT}e -; %f: script filename -; %l: content-length of the request (for POST request only) -; %m: request method -; %M: peak of memory allocated by PHP -; it can accept the following format: -; - %{bytes}M (default) -; - %{kilobytes}M -; - %{kilo}M -; - %{megabytes}M -; - %{mega}M -; %n: pool name -; %o: output header -; it must be associated with embraces to specify the name of the header: -; - %{Content-Type}o -; - %{X-Powered-By}o -; - %{Transfert-Encoding}o -; - .... -; %p: PID of the child that serviced the request -; %P: PID of the parent of the child that serviced the request -; %q: the query string -; %Q: the '?' character if query string exists -; %r: the request URI (without the query string, see %q and %Q) -; %R: remote IP address -; %s: status (response code) -; %t: server time the request was received -; it can accept a strftime(3) format: -; %d/%b/%Y:%H:%M:%S %z (default) -; The strftime(3) format must be encapsuled in a %{}t tag -; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t -; %T: time the log has been written (the request has finished) -; it can accept a strftime(3) format: -; %d/%b/%Y:%H:%M:%S %z (default) -; The strftime(3) format must be encapsuled in a %{}t tag -; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t -; %u: remote user -; -; Default: "%R - %u %t \"%m %r\" %s" -;access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%" - -; The log file for slow requests -; Default Value: not set -; Note: slowlog is mandatory if request_slowlog_timeout is set -slowlog = /var/log/php/fpm.slow.log - -; The timeout for serving a single request after which a PHP backtrace will be -; dumped to the 'slowlog' file. A value of '0s' means 'off'. -; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) -; Default Value: 0 -request_slowlog_timeout = 3 - -; Depth of slow log stack trace. -; Default Value: 20 -;request_slowlog_trace_depth = 20 - -; The timeout for serving a single request after which the worker process will -; be killed. This option should be used when the 'max_execution_time' ini option -; does not stop script execution for some reason. A value of '0' means 'off'. -; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) -; Default Value: 0 -;request_terminate_timeout = 0 - -; Set open file descriptor rlimit. -; Default Value: system defined value -;rlimit_files = 1024 - -; Set max core size rlimit. -; Possible Values: 'unlimited' or an integer greater or equal to 0 -; Default Value: system defined value -;rlimit_core = 0 - -; Chroot to this directory at the start. This value must be defined as an -; absolute path. When this value is not set, chroot is not used. -; Note: you can prefix with '$prefix' to chroot to the pool prefix or one -; of its subdirectories. If the pool prefix is not set, the global prefix -; will be used instead. -; Note: chrooting is a great security feature and should be used whenever -; possible. However, all PHP paths will be relative to the chroot -; (error_log, sessions.save_path, ...). -; Default Value: not set -;chroot = - -; Chdir to this directory at the start. -; Note: relative path can be used. -; Default Value: current directory or / when chroot -;chdir = /var/www - -; Redirect worker stdout and stderr into main error log. If not set, stdout and -; stderr will be redirected to /dev/null according to FastCGI specs. -; Note: on highloaded environement, this can cause some delay in the page -; process time (several ms). -; Default Value: no -catch_workers_output = yes - -; Clear environment in FPM workers -; Prevents arbitrary environment variables from reaching FPM worker processes -; by clearing the environment in workers before env vars specified in this -; pool configuration are added. -; Setting to "no" will make all environment variables available to PHP code -; via getenv(), $_ENV and $_SERVER. -; Default Value: yes -;clear_env = no - -; Limits the extensions of the main script FPM will allow to parse. This can -; prevent configuration mistakes on the web server side. You should only limit -; FPM to .php extensions to prevent malicious users to use other extensions to -; execute php code. -; Note: set an empty value to allow all extensions. -; Default Value: .php -;security.limit_extensions = .php .php3 .php4 .php5 .php7 - -; Pass environment variables like LD_LIBRARY_PATH. All $VARIABLEs are taken from -; the current environment. -; Default Value: clean env -;env[HOSTNAME] = $HOSTNAME -;env[PATH] = /usr/local/bin:/usr/bin:/bin -;env[TMP] = /tmp -;env[TMPDIR] = /tmp -;env[TEMP] = /tmp - -; Additional php.ini defines, specific to this pool of workers. These settings -; overwrite the values previously defined in the php.ini. The directives are the -; same as the PHP SAPI: -; php_value/php_flag - you can set classic ini defines which can -; be overwritten from PHP call 'ini_set'. -; php_admin_value/php_admin_flag - these directives won't be overwritten by -; PHP call 'ini_set' -; For php_*flag, valid values are on, off, 1, 0, true, false, yes or no. - -; Defining 'extension' will load the corresponding shared extension from -; extension_dir. Defining 'disable_functions' or 'disable_classes' will not -; overwrite previously defined php.ini values, but will append the new value -; instead. - -; Note: path INI options can be relative and will be expanded with the prefix -; (pool, global or /usr/local) - -; Default Value: nothing is defined by default except the values in php.ini and -; specified at startup with the -d argument -;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com -;php_flag[display_errors] = off -;php_admin_value[error_log] = /var/log/fpm-php.www.log -;php_admin_flag[log_errors] = on -;php_admin_value[memory_limit] = 32M diff --git a/php8/8.4.6/conf/php.ini b/php8/8.4.6/conf/php.ini deleted file mode 100644 index b6b0aee69..000000000 --- a/php8/8.4.6/conf/php.ini +++ /dev/null @@ -1,1933 +0,0 @@ -[PHP] - -;;;;;;;;;;;;;;;;;;; -; About php.ini ; -;;;;;;;;;;;;;;;;;;; -; PHP's initialization file, generally called php.ini, is responsible for -; configuring many of the aspects of PHP's behavior. - -; PHP attempts to find and load this configuration from a number of locations. -; The following is a summary of its search order: -; 1. SAPI module specific location. -; 2. The PHPRC environment variable. (As of PHP 5.2.0) -; 3. A number of predefined registry keys on Windows (As of PHP 5.2.0) -; 4. Current working directory (except CLI) -; 5. The web server's directory (for SAPI modules), or directory of PHP -; (otherwise in Windows) -; 6. The directory from the --with-config-file-path compile time option, or the -; Windows directory (C:\windows or C:\winnt) -; See the PHP docs for more specific information. -; http://php.net/configuration.file - -; The syntax of the file is extremely simple. Whitespace and lines -; beginning with a semicolon are silently ignored (as you probably guessed). -; Section headers (e.g. [Foo]) are also silently ignored, even though -; they might mean something in the future. - -; Directives following the section heading [PATH=/www/mysite] only -; apply to PHP files in the /www/mysite directory. Directives -; following the section heading [HOST=www.example.com] only apply to -; PHP files served from www.example.com. Directives set in these -; special sections cannot be overridden by user-defined INI files or -; at runtime. Currently, [PATH=] and [HOST=] sections only work under -; CGI/FastCGI. -; http://php.net/ini.sections - -; Directives are specified using the following syntax: -; directive = value -; Directive names are *case sensitive* - foo=bar is different from FOO=bar. -; Directives are variables used to configure PHP or PHP extensions. -; There is no name validation. If PHP can't find an expected -; directive because it is not set or is mistyped, a default value will be used. - -; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one -; of the INI constants (On, Off, True, False, Yes, No and None) or an expression -; (e.g. E_ALL & ~E_NOTICE), a quoted string ("bar"), or a reference to a -; previously set variable or directive (e.g. ${foo}) - -; Expressions in the INI file are limited to bitwise operators and parentheses: -; | bitwise OR -; ^ bitwise XOR -; & bitwise AND -; ~ bitwise NOT -; ! boolean NOT - -; Boolean flags can be turned on using the values 1, On, True or Yes. -; They can be turned off using the values 0, Off, False or No. - -; An empty string can be denoted by simply not writing anything after the equal -; sign, or by using the None keyword: - -; foo = ; sets foo to an empty string -; foo = None ; sets foo to an empty string -; foo = "None" ; sets foo to the string 'None' - -; If you use constants in your value, and these constants belong to a -; dynamically loaded extension (either a PHP extension or a Zend extension), -; you may only use these constants *after* the line that loads the extension. - -;;;;;;;;;;;;;;;;;;; -; About this file ; -;;;;;;;;;;;;;;;;;;; -; PHP comes packaged with two INI files. One that is recommended to be used -; in production environments and one that is recommended to be used in -; development environments. - -; php.ini-production contains settings which hold security, performance and -; best practices at its core. But please be aware, these settings may break -; compatibility with older or less security conscience applications. We -; recommending using the production ini in production and testing environments. - -; php.ini-development is very similar to its production variant, except it is -; much more verbose when it comes to errors. We recommend using the -; development version only in development environments, as errors shown to -; application users can inadvertently leak otherwise secure information. - -; This is php.ini-production INI file. - -;;;;;;;;;;;;;;;;;;; -; Quick Reference ; -;;;;;;;;;;;;;;;;;;; -; The following are all the settings which are different in either the production -; or development versions of the INIs with respect to PHP's default behavior. -; Please see the actual settings later in the document for more details as to why -; we recommend these changes in PHP's behavior. - -; display_errors -; Default Value: On -; Development Value: On -; Production Value: Off - -; display_startup_errors -; Default Value: Off -; Development Value: On -; Production Value: Off - -; error_reporting -; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT - -; html_errors -; Default Value: On -; Development Value: On -; Production value: On - -; log_errors -; Default Value: Off -; Development Value: On -; Production Value: On - -; max_input_time -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) - -; output_buffering -; Default Value: Off -; Development Value: 4096 -; Production Value: 4096 - -; register_argc_argv -; Default Value: On -; Development Value: Off -; Production Value: Off - -; request_order -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" - -; session.gc_divisor -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 - -; session.sid_bits_per_character -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 - -; short_open_tag -; Default Value: On -; Development Value: Off -; Production Value: Off - -; track_errors -; Default Value: Off -; Development Value: On -; Production Value: Off - -; variables_order -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS" - -;;;;;;;;;;;;;;;;;;;; -; php.ini Options ; -;;;;;;;;;;;;;;;;;;;; -; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini" -;user_ini.filename = ".user.ini" - -; To disable this feature set this option to empty value -;user_ini.filename = - -; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes) -;user_ini.cache_ttl = 300 - -;;;;;;;;;;;;;;;;;;;; -; Language Options ; -;;;;;;;;;;;;;;;;;;;; - -; Enable the PHP scripting language engine under Apache. -; http://php.net/engine -engine = On - -; This directive determines whether or not PHP will recognize code between -; tags as PHP source which should be processed as such. It is -; generally recommended that should be used and that this feature -; should be disabled, as enabling it may result in issues when generating XML -; documents, however this remains supported for backward compatibility reasons. -; Note that this directive does not control the would work. -; http://php.net/syntax-highlighting -;highlight.string = #DD0000 -;highlight.comment = #FF9900 -;highlight.keyword = #007700 -;highlight.default = #0000BB -;highlight.html = #000000 - -; If enabled, the request will be allowed to complete even if the user aborts -; the request. Consider enabling it if executing long requests, which may end up -; being interrupted by the user or a browser timing out. PHP's default behavior -; is to disable this feature. -; http://php.net/ignore-user-abort -;ignore_user_abort = On - -; Determines the size of the realpath cache to be used by PHP. This value should -; be increased on systems where PHP opens many files to reflect the quantity of -; the file operations performed. -; http://php.net/realpath-cache-size -;realpath_cache_size = 4096k - -; Duration of time, in seconds for which to cache realpath information for a given -; file or directory. For systems with rarely changing files, consider increasing this -; value. -; http://php.net/realpath-cache-ttl -;realpath_cache_ttl = 120 - -; Enables or disables the circular reference collector. -; http://php.net/zend.enable-gc -zend.enable_gc = On - -; If enabled, scripts may be written in encodings that are incompatible with -; the scanner. CP936, Big5, CP949 and Shift_JIS are the examples of such -; encodings. To use this feature, mbstring extension must be enabled. -; Default: Off -;zend.multibyte = Off - -; Allows to set the default encoding for the scripts. This value will be used -; unless "declare(encoding=...)" directive appears at the top of the script. -; Only affects if zend.multibyte is set. -; Default: "" -;zend.script_encoding = - -;;;;;;;;;;;;;;;;; -; Miscellaneous ; -;;;;;;;;;;;;;;;;; - -; Decides whether PHP may expose the fact that it is installed on the server -; (e.g. by adding its signature to the Web server header). It is no security -; threat in any way, but it makes it possible to determine whether you use PHP -; on your server or not. -; http://php.net/expose-php -expose_php = Off - -;;;;;;;;;;;;;;;;;;; -; Resource Limits ; -;;;;;;;;;;;;;;;;;;; - -; Maximum execution time of each script, in seconds -; http://php.net/max-execution-time -; Note: This directive is hardcoded to 0 for the CLI SAPI -max_execution_time = 30 - -; Maximum amount of time each script may spend parsing request data. It's a good -; idea to limit this time on productions servers in order to eliminate unexpectedly -; long running scripts. -; Note: This directive is hardcoded to -1 for the CLI SAPI -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) -; http://php.net/max-input-time -max_input_time = 60 - -; Maximum input variable nesting level -; http://php.net/max-input-nesting-level -;max_input_nesting_level = 64 - -; How many GET/POST/COOKIE input variables may be accepted -; max_input_vars = 1000 - -; Maximum amount of memory a script may consume (128MB) -; http://php.net/memory-limit -memory_limit = 256M - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; Error handling and logging ; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -; This directive informs PHP of which errors, warnings and notices you would like -; it to take action for. The recommended way of setting values for this -; directive is through the use of the error level constants and bitwise -; operators. The error level constants are below here for convenience as well as -; some common settings and their meanings. -; By default, PHP is set to take action on all errors, notices and warnings EXCEPT -; those related to E_NOTICE and E_STRICT, which together cover best practices and -; recommended coding standards in PHP. For performance reasons, this is the -; recommend error reporting setting. Your production server shouldn't be wasting -; resources complaining about best practices and coding standards. That's what -; development servers and development settings are for. -; Note: The php.ini-development file has this setting as E_ALL. This -; means it pretty much reports everything which is exactly what you want during -; development and early testing. -; -; Error Level Constants: -; E_ALL - All errors and warnings (includes E_STRICT as of PHP 5.4.0) -; E_ERROR - fatal run-time errors -; E_RECOVERABLE_ERROR - almost fatal run-time errors -; E_WARNING - run-time warnings (non-fatal errors) -; E_PARSE - compile-time parse errors -; E_NOTICE - run-time notices (these are warnings which often result -; from a bug in your code, but it's possible that it was -; intentional (e.g., using an uninitialized variable and -; relying on the fact it is automatically initialized to an -; empty string) -; E_STRICT - run-time notices, enable to have PHP suggest changes -; to your code which will ensure the best interoperability -; and forward compatibility of your code -; E_CORE_ERROR - fatal errors that occur during PHP's initial startup -; E_CORE_WARNING - warnings (non-fatal errors) that occur during PHP's -; initial startup -; E_COMPILE_ERROR - fatal compile-time errors -; E_COMPILE_WARNING - compile-time warnings (non-fatal errors) -; E_USER_ERROR - user-generated error message -; E_USER_WARNING - user-generated warning message -; E_USER_NOTICE - user-generated notice message -; E_DEPRECATED - warn about code that will not work in future versions -; of PHP -; E_USER_DEPRECATED - user-generated deprecation warnings -; -; Common Values: -; E_ALL (Show all errors, warnings and notices including coding standards.) -; E_ALL & ~E_NOTICE (Show all errors, except for notices) -; E_ALL & ~E_NOTICE & ~E_STRICT (Show all errors, except for notices and coding standards warnings.) -; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors) -; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT -; http://php.net/error-reporting -error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT - -; This directive controls whether or not and where PHP will output errors, -; notices and warnings too. Error output is very useful during development, but -; it could be very dangerous in production environments. Depending on the code -; which is triggering the error, sensitive information could potentially leak -; out of your application such as database usernames and passwords or worse. -; For production environments, we recommend logging errors rather than -; sending them to STDOUT. -; Possible Values: -; Off = Do not display any errors -; stderr = Display errors to STDERR (affects only CGI/CLI binaries!) -; On or stdout = Display errors to STDOUT -; Default Value: On -; Development Value: On -; Production Value: Off -; http://php.net/display-errors -display_errors = Off - -; The display of errors which occur during PHP's startup sequence are handled -; separately from display_errors. PHP's default behavior is to suppress those -; errors from clients. Turning the display of startup errors on can be useful in -; debugging configuration problems. We strongly recommend you -; set this to 'off' for production servers. -; Default Value: Off -; Development Value: On -; Production Value: Off -; http://php.net/display-startup-errors -display_startup_errors = Off - -; Besides displaying errors, PHP can also log errors to locations such as a -; server-specific log, STDERR, or a location specified by the error_log -; directive found below. While errors should not be displayed on productions -; servers they should still be monitored and logging is a great way to do that. -; Default Value: Off -; Development Value: On -; Production Value: On -; http://php.net/log-errors -log_errors = On - -; Set maximum length of log_errors. In error_log information about the source is -; added. The default is 1024 and 0 allows to not apply any maximum length at all. -; http://php.net/log-errors-max-len -log_errors_max_len = 1024 - -; Do not log repeated messages. Repeated errors must occur in same file on same -; line unless ignore_repeated_source is set true. -; http://php.net/ignore-repeated-errors -ignore_repeated_errors = Off - -; Ignore source of message when ignoring repeated messages. When this setting -; is On you will not log errors with repeated messages from different files or -; source lines. -; http://php.net/ignore-repeated-source -ignore_repeated_source = Off - -; If this parameter is set to Off, then memory leaks will not be shown (on -; stdout or in the log). This has only effect in a debug compile, and if -; error reporting includes E_WARNING in the allowed list -; http://php.net/report-memleaks -report_memleaks = On - -; This setting is on by default. -;report_zend_debug = 0 - -; Store the last error/warning message in $php_errormsg (boolean). Setting this value -; to On can assist in debugging and is appropriate for development servers. It should -; however be disabled on production servers. -; Default Value: Off -; Development Value: On -; Production Value: Off -; http://php.net/track-errors -track_errors = Off - -; Turn off normal error reporting and emit XML-RPC error XML -; http://php.net/xmlrpc-errors -;xmlrpc_errors = 0 - -; An XML-RPC faultCode -;xmlrpc_error_number = 0 - -; When PHP displays or logs an error, it has the capability of formatting the -; error message as HTML for easier reading. This directive controls whether -; the error message is formatted as HTML or not. -; Note: This directive is hardcoded to Off for the CLI SAPI -; Default Value: On -; Development Value: On -; Production value: On -; http://php.net/html-errors -html_errors = On - -; If html_errors is set to On *and* docref_root is not empty, then PHP -; produces clickable error messages that direct to a page describing the error -; or function causing the error in detail. -; You can download a copy of the PHP manual from http://php.net/docs -; and change docref_root to the base URL of your local copy including the -; leading '/'. You must also specify the file extension being used including -; the dot. PHP's default behavior is to leave these settings empty, in which -; case no links to documentation are generated. -; Note: Never use this feature for production boxes. -; http://php.net/docref-root -; Examples -;docref_root = "/phpmanual/" - -; http://php.net/docref-ext -;docref_ext = .html - -; String to output before an error message. PHP's default behavior is to leave -; this setting blank. -; http://php.net/error-prepend-string -; Example: -;error_prepend_string = "" - -; String to output after an error message. PHP's default behavior is to leave -; this setting blank. -; http://php.net/error-append-string -; Example: -;error_append_string = "" - -; Log errors to specified file. PHP's default behavior is to leave this value -; empty. -; http://php.net/error-log -; Example: -;error_log = php_errors.log -; Log errors to syslog (Event Log on Windows). -error_log = /var/log/php/php.error.log - -;windows.show_crt_warning -; Default value: 0 -; Development value: 0 -; Production value: 0 - -;;;;;;;;;;;;;;;;; -; Data Handling ; -;;;;;;;;;;;;;;;;; - -; The separator used in PHP generated URLs to separate arguments. -; PHP's default setting is "&". -; http://php.net/arg-separator.output -; Example: -;arg_separator.output = "&" - -; List of separator(s) used by PHP to parse input URLs into variables. -; PHP's default setting is "&". -; NOTE: Every character in this directive is considered as separator! -; http://php.net/arg-separator.input -; Example: -;arg_separator.input = ";&" - -; This directive determines which super global arrays are registered when PHP -; starts up. G,P,C,E & S are abbreviations for the following respective super -; globals: GET, POST, COOKIE, ENV and SERVER. There is a performance penalty -; paid for the registration of these arrays and because ENV is not as commonly -; used as the others, ENV is not recommended on productions servers. You -; can still get access to the environment variables through getenv() should you -; need to. -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS"; -; http://php.net/variables-order -variables_order = "GPCS" - -; This directive determines which super global data (G,P & C) should be -; registered into the super global array REQUEST. If so, it also determines -; the order in which that data is registered. The values for this directive -; are specified in the same manner as the variables_order directive, -; EXCEPT one. Leaving this value empty will cause PHP to use the value set -; in the variables_order directive. It does not mean it will leave the super -; globals array REQUEST empty. -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" -; http://php.net/request-order -request_order = "GP" - -; This directive determines whether PHP registers $argv & $argc each time it -; runs. $argv contains an array of all the arguments passed to PHP when a script -; is invoked. $argc contains an integer representing the number of arguments -; that were passed when the script was invoked. These arrays are extremely -; useful when running scripts from the command line. When this directive is -; enabled, registering these variables consumes CPU cycles and memory each time -; a script is executed. For performance reasons, this feature should be disabled -; on production servers. -; Note: This directive is hardcoded to On for the CLI SAPI -; Default Value: On -; Development Value: Off -; Production Value: Off -; http://php.net/register-argc-argv -register_argc_argv = Off - -; When enabled, the ENV, REQUEST and SERVER variables are created when they're -; first used (Just In Time) instead of when the script starts. If these -; variables are not used within a script, having this directive on will result -; in a performance gain. The PHP directive register_argc_argv must be disabled -; for this directive to have any affect. -; http://php.net/auto-globals-jit -auto_globals_jit = On - -; Whether PHP will read the POST data. -; This option is enabled by default. -; Most likely, you won't want to disable this option globally. It causes $_POST -; and $_FILES to always be empty; the only way you will be able to read the -; POST data will be through the php://input stream wrapper. This can be useful -; to proxy requests or to process the POST data in a memory efficient fashion. -; http://php.net/enable-post-data-reading -;enable_post_data_reading = Off - -; Maximum size of POST data that PHP will accept. -; Its value may be 0 to disable the limit. It is ignored if POST data reading -; is disabled through enable_post_data_reading. -; http://php.net/post-max-size -post_max_size = 100M - -; Automatically add files before PHP document. -; http://php.net/auto-prepend-file -auto_prepend_file = - -; Automatically add files after PHP document. -; http://php.net/auto-append-file -auto_append_file = - -; By default, PHP will output a media type using the Content-Type header. To -; disable this, simply set it to be empty. -; -; PHP's built-in default media type is set to text/html. -; http://php.net/default-mimetype -default_mimetype = "text/html" - -; PHP's default character set is set to UTF-8. -; http://php.net/default-charset -default_charset = "UTF-8" - -; PHP internal character encoding is set to empty. -; If empty, default_charset is used. -; http://php.net/internal-encoding -;internal_encoding = - -; PHP input character encoding is set to empty. -; If empty, default_charset is used. -; http://php.net/input-encoding -;input_encoding = - -; PHP output character encoding is set to empty. -; If empty, default_charset is used. -; See also output_buffer. -; http://php.net/output-encoding -;output_encoding = - -;;;;;;;;;;;;;;;;;;;;;;;;; -; Paths and Directories ; -;;;;;;;;;;;;;;;;;;;;;;;;; - -; UNIX: "/path1:/path2" -;include_path = ".:/php/includes" -; -; Windows: "\path1;\path2" -;include_path = ".;c:\php\includes" -; -; PHP's default setting for include_path is ".;/path/to/php/pear" -; http://php.net/include-path - -; The root of the PHP pages, used only if nonempty. -; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root -; if you are running php as a CGI under any web server (other than IIS) -; see documentation for security issues. The alternate is to use the -; cgi.force_redirect configuration below -; http://php.net/doc-root -doc_root = - -; The directory under which PHP opens the script using /~username used only -; if nonempty. -; http://php.net/user-dir -user_dir = - -; Directory in which the loadable extensions (modules) reside. -; http://php.net/extension-dir -; extension_dir = "./" -; On windows: -; extension_dir = "ext" - -; Directory where the temporary files should be placed. -; Defaults to the system default (see sys_get_temp_dir) -; sys_temp_dir = "/tmp" - -; Whether or not to enable the dl() function. The dl() function does NOT work -; properly in multithreaded servers, such as IIS or Zeus, and is automatically -; disabled on them. -; http://php.net/enable-dl -enable_dl = Off - -; cgi.force_redirect is necessary to provide security running PHP as a CGI under -; most web servers. Left undefined, PHP turns this on by default. You can -; turn it off here AT YOUR OWN RISK -; **You CAN safely turn this off for IIS, in fact, you MUST.** -; http://php.net/cgi.force-redirect -;cgi.force_redirect = 1 - -; if cgi.nph is enabled it will force cgi to always sent Status: 200 with -; every request. PHP's default behavior is to disable this feature. -;cgi.nph = 1 - -; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape -; (iPlanet) web servers, you MAY need to set an environment variable name that PHP -; will look for to know it is OK to continue execution. Setting this variable MAY -; cause security issues, KNOW WHAT YOU ARE DOING FIRST. -; http://php.net/cgi.redirect-status-env -;cgi.redirect_status_env = - -; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's -; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok -; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting -; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting -; of zero causes PHP to behave as before. Default is 1. You should fix your scripts -; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. -; http://php.net/cgi.fix-pathinfo -;cgi.fix_pathinfo=1 - -; if cgi.discard_path is enabled, the PHP CGI binary can safely be placed outside -; of the web tree and people will not be able to circumvent .htaccess security. -; http://php.net/cgi.dicard-path -;cgi.discard_path=1 - -; FastCGI under IIS (on WINNT based OS) supports the ability to impersonate -; security tokens of the calling client. This allows IIS to define the -; security context that the request runs under. mod_fastcgi under Apache -; does not currently support this feature (03/17/2002) -; Set to 1 if running under IIS. Default is zero. -; http://php.net/fastcgi.impersonate -;fastcgi.impersonate = 1 - -; Disable logging through FastCGI connection. PHP's default behavior is to enable -; this feature. -;fastcgi.logging = 0 - -; cgi.rfc2616_headers configuration option tells PHP what type of headers to -; use when sending HTTP response code. If set to 0, PHP sends Status: header that -; is supported by Apache. When this option is set to 1, PHP will send -; RFC2616 compliant header. -; Default is zero. -; http://php.net/cgi.rfc2616-headers -;cgi.rfc2616_headers = 0 - -; cgi.check_shebang_line controls whether CGI PHP checks for line starting with #! -; (shebang) at the top of the running script. This line might be needed if the -; script support running both as stand-alone script and via PHP CGI<. PHP in CGI -; mode skips this line and ignores its content if this directive is turned on. -; http://php.net/cgi.check-shebang-line -;cgi.check_shebang_line=1 - -;;;;;;;;;;;;;;;; -; File Uploads ; -;;;;;;;;;;;;;;;; - -; Whether to allow HTTP file uploads. -; http://php.net/file-uploads -file_uploads = On - -; Temporary directory for HTTP uploaded files (will use system default if not -; specified). -; http://php.net/upload-tmp-dir -;upload_tmp_dir = - -; Maximum allowed size for uploaded files. -; http://php.net/upload-max-filesize -upload_max_filesize = 50M - -; Maximum number of files that can be uploaded via a single request -max_file_uploads = 20 - -;;;;;;;;;;;;;;;;;; -; Fopen wrappers ; -;;;;;;;;;;;;;;;;;; - -; Whether to allow the treatment of URLs (like http:// or ftp://) as files. -; http://php.net/allow-url-fopen -allow_url_fopen = On - -; Whether to allow include/require to open URLs (like http:// or ftp://) as files. -; http://php.net/allow-url-include -allow_url_include = Off - -; Define the anonymous ftp password (your email address). PHP's default setting -; for this is empty. -; http://php.net/from -;from="john@doe.com" - -; Define the User-Agent string. PHP's default setting for this is empty. -; http://php.net/user-agent -;user_agent="PHP" - -; Default timeout for socket based streams (seconds) -; http://php.net/default-socket-timeout -default_socket_timeout = 60 - -; If your scripts have to deal with files from Macintosh systems, -; or you are running on a Mac and need to deal with files from -; unix or win32 systems, setting this flag will cause PHP to -; automatically detect the EOL character in those files so that -; fgets() and file() will work regardless of the source of the file. -; http://php.net/auto-detect-line-endings -;auto_detect_line_endings = Off - -;;;;;;;;;;;;;;;;;;;;;; -; Dynamic Extensions ; -;;;;;;;;;;;;;;;;;;;;;; - -; If you wish to have an extension loaded automatically, use the following -; syntax: -; -; extension=modulename.extension -; -; For example, on Windows: -; -; extension=mysqli.dll -; -; ... or under UNIX: -; -; extension=mysqli.so -; -; ... or with a path: -; -; extension=/path/to/extension/mysqli.so -; -; If you only provide the name of the extension, PHP will look for it in its -; default extension directory. -; -; Windows Extensions -; Note that ODBC support is built in, so no dll is needed for it. -; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5+) -; extension folders as well as the separate PECL DLL download (PHP 5+). -; Be sure to appropriately set the extension_dir directive. -; -;extension=php_bz2.dll -;extension=php_curl.dll -;extension=php_fileinfo.dll -;extension=php_ftp.dll -;extension=php_gd2.dll -;extension=php_gettext.dll -;extension=php_gmp.dll -;extension=php_intl.dll -;extension=php_imap.dll -;extension=php_interbase.dll -;extension=php_ldap.dll -;extension=php_mbstring.dll -;extension=php_exif.dll ; Must be after mbstring as it depends on it -;extension=php_mysqli.dll -;extension=php_oci8_12c.dll ; Use with Oracle Database 12c Instant Client -;extension=php_openssl.dll -;extension=php_pdo_firebird.dll -;extension=php_pdo_mysql.dll -;extension=php_pdo_oci.dll -;extension=php_pdo_odbc.dll -;extension=php_pdo_pgsql.dll -;extension=php_pdo_sqlite.dll -;extension=php_pgsql.dll -;extension=php_shmop.dll - -; The MIBS data available in the PHP distribution must be installed. -; See http://www.php.net/manual/en/snmp.installation.php -;extension=php_snmp.dll - -;extension=php_soap.dll -;extension=php_sockets.dll -;extension=php_sqlite3.dll -;extension=php_tidy.dll -;extension=php_xmlrpc.dll -;extension=php_xsl.dll - -;;;;;;;;;;;;;;;;;;; -; Module Settings ; -;;;;;;;;;;;;;;;;;;; - -[CLI Server] -; Whether the CLI web server uses ANSI color coding in its terminal output. -cli_server.color = On - -[Date] -; Defines the default timezone used by the date functions -; http://php.net/date.timezone -date.timezone = Asia/Shanghai - -; http://php.net/date.default-latitude -;date.default_latitude = 31.7667 - -; http://php.net/date.default-longitude -;date.default_longitude = 35.2333 - -; http://php.net/date.sunrise-zenith -;date.sunrise_zenith = 90.583333 - -; http://php.net/date.sunset-zenith -;date.sunset_zenith = 90.583333 - -[filter] -; http://php.net/filter.default -;filter.default = unsafe_raw - -; http://php.net/filter.default-flags -;filter.default_flags = - -[iconv] -; Use of this INI entry is deprecated, use global input_encoding instead. -; If empty, default_charset or input_encoding or iconv.input_encoding is used. -; The precedence is: default_charset < intput_encoding < iconv.input_encoding -;iconv.input_encoding = - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;iconv.internal_encoding = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; If empty, default_charset or output_encoding or iconv.output_encoding is used. -; The precedence is: default_charset < output_encoding < iconv.output_encoding -; To use an output encoding conversion, iconv's output handler must be set -; otherwise output encoding conversion cannot be performed. -;iconv.output_encoding = - -[intl] -;intl.default_locale = -; This directive allows you to produce PHP errors when some error -; happens within intl functions. The value is the level of the error produced. -; Default is 0, which does not produce any errors. -;intl.error_level = E_WARNING -;intl.use_exceptions = 0 - -[sqlite3] -;sqlite3.extension_dir = - -[Pcre] -;PCRE library backtracking limit. -; http://php.net/pcre.backtrack-limit -;pcre.backtrack_limit=100000 - -;PCRE library recursion limit. -;Please note that if you set this value to a high number you may consume all -;the available process stack and eventually crash PHP (due to reaching the -;stack size limit imposed by the Operating System). -; http://php.net/pcre.recursion-limit -;pcre.recursion_limit=100000 - -;Enables or disables JIT compilation of patterns. This requires the PCRE -;library to be compiled with JIT support. -;pcre.jit=1 - -[Pdo] -; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off" -; http://php.net/pdo-odbc.connection-pooling -;pdo_odbc.connection_pooling=strict - -;pdo_odbc.db2_instance_name - -[Pdo_mysql] -; If mysqlnd is used: Number of cache slots for the internal result set cache -; http://php.net/pdo_mysql.cache_size -pdo_mysql.cache_size = 2000 - -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -; http://php.net/pdo_mysql.default-socket -pdo_mysql.default_socket= - -[Phar] -; http://php.net/phar.readonly -;phar.readonly = On - -; http://php.net/phar.require-hash -;phar.require_hash = On - -;phar.cache_list = - -[mail function] -; For Win32 only. -; http://php.net/smtp -SMTP = localhost -; http://php.net/smtp-port -smtp_port = 25 - -; For Win32 only. -; http://php.net/sendmail-from -;sendmail_from = me@example.com - -; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). -; http://php.net/sendmail-path -;sendmail_path = - -; Force the addition of the specified parameters to be passed as extra parameters -; to the sendmail binary. These parameters will always replace the value of -; the 5th parameter to mail(). -;mail.force_extra_parameters = - -; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename -mail.add_x_header = On - -; The path to a log file that will log all mail() calls. Log entries include -; the full path of the script, line number, To address and headers. -;mail.log = -; Log mail to syslog (Event Log on Windows). -;mail.log = syslog - -[ODBC] -; http://php.net/odbc.default-db -;odbc.default_db = Not yet implemented - -; http://php.net/odbc.default-user -;odbc.default_user = Not yet implemented - -; http://php.net/odbc.default-pw -;odbc.default_pw = Not yet implemented - -; Controls the ODBC cursor model. -; Default: SQL_CURSOR_STATIC (default). -;odbc.default_cursortype - -; Allow or prevent persistent links. -; http://php.net/odbc.allow-persistent -odbc.allow_persistent = On - -; Check that a connection is still valid before reuse. -; http://php.net/odbc.check-persistent -odbc.check_persistent = On - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/odbc.max-persistent -odbc.max_persistent = -1 - -; Maximum number of links (persistent + non-persistent). -1 means no limit. -; http://php.net/odbc.max-links -odbc.max_links = -1 - -; Handling of LONG fields. Returns number of bytes to variables. 0 means -; passthru. -; http://php.net/odbc.defaultlrl -odbc.defaultlrl = 4096 - -; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char. -; See the documentation on odbc_binmode and odbc_longreadlen for an explanation -; of odbc.defaultlrl and odbc.defaultbinmode -; http://php.net/odbc.defaultbinmode -odbc.defaultbinmode = 1 - -;birdstep.max_links = -1 - -[Interbase] -; Allow or prevent persistent links. -ibase.allow_persistent = 1 - -; Maximum number of persistent links. -1 means no limit. -ibase.max_persistent = -1 - -; Maximum number of links (persistent + non-persistent). -1 means no limit. -ibase.max_links = -1 - -; Default database name for ibase_connect(). -;ibase.default_db = - -; Default username for ibase_connect(). -;ibase.default_user = - -; Default password for ibase_connect(). -;ibase.default_password = - -; Default charset for ibase_connect(). -;ibase.default_charset = - -; Default timestamp format. -ibase.timestampformat = "%Y-%m-%d %H:%M:%S" - -; Default date format. -ibase.dateformat = "%Y-%m-%d" - -; Default time format. -ibase.timeformat = "%H:%M:%S" - -[MySQLi] - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/mysqli.max-persistent -mysqli.max_persistent = -1 - -; Allow accessing, from PHP's perspective, local files with LOAD DATA statements -; http://php.net/mysqli.allow_local_infile -;mysqli.allow_local_infile = On - -; Allow or prevent persistent links. -; http://php.net/mysqli.allow-persistent -mysqli.allow_persistent = On - -; Maximum number of links. -1 means no limit. -; http://php.net/mysqli.max-links -mysqli.max_links = -1 - -; If mysqlnd is used: Number of cache slots for the internal result set cache -; http://php.net/mysqli.cache_size -mysqli.cache_size = 2000 - -; Default port number for mysqli_connect(). If unset, mysqli_connect() will use -; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the -; compile-time value defined MYSQL_PORT (in that order). Win32 will only look -; at MYSQL_PORT. -; http://php.net/mysqli.default-port -mysqli.default_port = 3306 - -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -; http://php.net/mysqli.default-socket -mysqli.default_socket = - -; Default host for mysql_connect() (doesn't apply in safe mode). -; http://php.net/mysqli.default-host -mysqli.default_host = - -; Default user for mysql_connect() (doesn't apply in safe mode). -; http://php.net/mysqli.default-user -mysqli.default_user = - -; Default password for mysqli_connect() (doesn't apply in safe mode). -; Note that this is generally a *bad* idea to store passwords in this file. -; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw") -; and reveal this password! And of course, any users with read access to this -; file will be able to reveal the password as well. -; http://php.net/mysqli.default-pw -mysqli.default_pw = - -; Allow or prevent reconnect -mysqli.reconnect = Off - -[mysqlnd] -; Enable / Disable collection of general statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -; http://php.net/mysqlnd.collect_statistics -mysqlnd.collect_statistics = On - -; Enable / Disable collection of memory usage statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -; http://php.net/mysqlnd.collect_memory_statistics -mysqlnd.collect_memory_statistics = Off - -; Records communication from all extensions using mysqlnd to the specified log -; file. -; http://php.net/mysqlnd.debug -;mysqlnd.debug = - -; Defines which queries will be logged. -; http://php.net/mysqlnd.log_mask -;mysqlnd.log_mask = 0 - -; Default size of the mysqlnd memory pool, which is used by result sets. -; http://php.net/mysqlnd.mempool_default_size -;mysqlnd.mempool_default_size = 16000 - -; Size of a pre-allocated buffer used when sending commands to MySQL in bytes. -; http://php.net/mysqlnd.net_cmd_buffer_size -;mysqlnd.net_cmd_buffer_size = 2048 - -; Size of a pre-allocated buffer used for reading data sent by the server in -; bytes. -; http://php.net/mysqlnd.net_read_buffer_size -;mysqlnd.net_read_buffer_size = 32768 - -; Timeout for network requests in seconds. -; http://php.net/mysqlnd.net_read_timeout -;mysqlnd.net_read_timeout = 31536000 - -; SHA-256 Authentication Plugin related. File with the MySQL server public RSA -; key. -; http://php.net/mysqlnd.sha256_server_public_key -;mysqlnd.sha256_server_public_key = - -[OCI8] - -; Connection: Enables privileged connections using external -; credentials (OCI_SYSOPER, OCI_SYSDBA) -; http://php.net/oci8.privileged-connect -;oci8.privileged_connect = Off - -; Connection: The maximum number of persistent OCI8 connections per -; process. Using -1 means no limit. -; http://php.net/oci8.max-persistent -;oci8.max_persistent = -1 - -; Connection: The maximum number of seconds a process is allowed to -; maintain an idle persistent connection. Using -1 means idle -; persistent connections will be maintained forever. -; http://php.net/oci8.persistent-timeout -;oci8.persistent_timeout = -1 - -; Connection: The number of seconds that must pass before issuing a -; ping during oci_pconnect() to check the connection validity. When -; set to 0, each oci_pconnect() will cause a ping. Using -1 disables -; pings completely. -; http://php.net/oci8.ping-interval -;oci8.ping_interval = 60 - -; Connection: Set this to a user chosen connection class to be used -; for all pooled server requests with Oracle 11g Database Resident -; Connection Pooling (DRCP). To use DRCP, this value should be set to -; the same string for all web servers running the same application, -; the database pool must be configured, and the connection string must -; specify to use a pooled server. -;oci8.connection_class = - -; High Availability: Using On lets PHP receive Fast Application -; Notification (FAN) events generated when a database node fails. The -; database must also be configured to post FAN events. -;oci8.events = Off - -; Tuning: This option enables statement caching, and specifies how -; many statements to cache. Using 0 disables statement caching. -; http://php.net/oci8.statement-cache-size -;oci8.statement_cache_size = 20 - -; Tuning: Enables statement prefetching and sets the default number of -; rows that will be fetched automatically after statement execution. -; http://php.net/oci8.default-prefetch -;oci8.default_prefetch = 100 - -; Compatibility. Using On means oci_close() will not close -; oci_connect() and oci_new_connect() connections. -; http://php.net/oci8.old-oci-close-semantics -;oci8.old_oci_close_semantics = Off - -[PostgreSQL] -; Allow or prevent persistent links. -; http://php.net/pgsql.allow-persistent -pgsql.allow_persistent = On - -; Detect broken persistent links always with pg_pconnect(). -; Auto reset feature requires a little overheads. -; http://php.net/pgsql.auto-reset-persistent -pgsql.auto_reset_persistent = Off - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/pgsql.max-persistent -pgsql.max_persistent = -1 - -; Maximum number of links (persistent+non persistent). -1 means no limit. -; http://php.net/pgsql.max-links -pgsql.max_links = -1 - -; Ignore PostgreSQL backends Notice message or not. -; Notice message logging require a little overheads. -; http://php.net/pgsql.ignore-notice -pgsql.ignore_notice = 0 - -; Log PostgreSQL backends Notice message or not. -; Unless pgsql.ignore_notice=0, module cannot log notice message. -; http://php.net/pgsql.log-notice -pgsql.log_notice = 0 - -[bcmath] -; Number of decimal digits for all bcmath functions. -; http://php.net/bcmath.scale -bcmath.scale = 0 - -[browscap] -; http://php.net/browscap -;browscap = extra/browscap.ini - -[Session] -; Handler used to store/retrieve data. -; http://php.net/session.save-handler -session.save_handler = files - -; Argument passed to save_handler. In the case of files, this is the path -; where data files are stored. Note: Windows users have to change this -; variable in order to use PHP's session functions. -; -; The path can be defined as: -; -; session.save_path = "N;/path" -; -; where N is an integer. Instead of storing all the session files in -; /path, what this will do is use subdirectories N-levels deep, and -; store the session data in those directories. This is useful if -; your OS has problems with many files in one directory, and is -; a more efficient layout for servers that handle many sessions. -; -; NOTE 1: PHP will not create this directory structure automatically. -; You can use the script in the ext/session dir for that purpose. -; NOTE 2: See the section on garbage collection below if you choose to -; use subdirectories for session storage -; -; The file storage module creates files using mode 600 by default. -; You can change that by using -; -; session.save_path = "N;MODE;/path" -; -; where MODE is the octal representation of the mode. Note that this -; does not overwrite the process's umask. -; http://php.net/session.save-path -;session.save_path = "/tmp" - -; Whether to use strict session mode. -; Strict session mode does not accept uninitialized session ID and regenerate -; session ID if browser sends uninitialized session ID. Strict mode protects -; applications from session fixation via session adoption vulnerability. It is -; disabled by default for maximum compatibility, but enabling it is encouraged. -; https://wiki.php.net/rfc/strict_sessions -session.use_strict_mode = 0 - -; Whether to use cookies. -; http://php.net/session.use-cookies -session.use_cookies = 1 - -; http://php.net/session.cookie-secure -;session.cookie_secure = - -; This option forces PHP to fetch and use a cookie for storing and maintaining -; the session id. We encourage this operation as it's very helpful in combating -; session hijacking when not specifying and managing your own session id. It is -; not the be-all and end-all of session hijacking defense, but it's a good start. -; http://php.net/session.use-only-cookies -session.use_only_cookies = 1 - -; Name of the session (used as cookie name). -; http://php.net/session.name -session.name = PHPSESSID - -; Initialize session on request startup. -; http://php.net/session.auto-start -session.auto_start = 0 - -; Lifetime in seconds of cookie or, if 0, until browser is restarted. -; http://php.net/session.cookie-lifetime -session.cookie_lifetime = 0 - -; The path for which the cookie is valid. -; http://php.net/session.cookie-path -session.cookie_path = / - -; The domain for which the cookie is valid. -; http://php.net/session.cookie-domain -session.cookie_domain = - -; Whether or not to add the httpOnly flag to the cookie, which makes it inaccessible to browser scripting languages such as JavaScript. -; http://php.net/session.cookie-httponly -session.cookie_httponly = - -; Handler used to serialize data. php is the standard serializer of PHP. -; http://php.net/session.serialize-handler -session.serialize_handler = php - -; Defines the probability that the 'garbage collection' process is started -; on every session initialization. The probability is calculated by using -; gc_probability/gc_divisor. Where session.gc_probability is the numerator -; and gc_divisor is the denominator in the equation. Setting this value to 1 -; when the session.gc_divisor value is 100 will give you approximately a 1% chance -; the gc will run on any give request. -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; http://php.net/session.gc-probability -session.gc_probability = 1 - -; Defines the probability that the 'garbage collection' process is started on every -; session initialization. The probability is calculated by using the following equation: -; gc_probability/gc_divisor. Where session.gc_probability is the numerator and -; session.gc_divisor is the denominator in the equation. Setting this value to 1 -; when the session.gc_divisor value is 100 will give you approximately a 1% chance -; the gc will run on any give request. Increasing this value to 1000 will give you -; a 0.1% chance the gc will run on any give request. For high volume production servers, -; this is a more efficient approach. -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 -; http://php.net/session.gc-divisor -session.gc_divisor = 1000 - -; After this number of seconds, stored data will be seen as 'garbage' and -; cleaned up by the garbage collection process. -; http://php.net/session.gc-maxlifetime -session.gc_maxlifetime = 1440 - -; NOTE: If you are using the subdirectory option for storing session files -; (see session.save_path above), then garbage collection does *not* -; happen automatically. You will need to do your own garbage -; collection through a shell script, cron entry, or some other method. -; For example, the following script would is the equivalent of -; setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes): -; find /path/to/sessions -cmin +24 -type f | xargs rm - -; Check HTTP Referer to invalidate externally stored URLs containing ids. -; HTTP_REFERER has to contain this substring for the session to be -; considered as valid. -; http://php.net/session.referer-check -session.referer_check = - -; Set to {nocache,private,public,} to determine HTTP caching aspects -; or leave this empty to avoid sending anti-caching headers. -; http://php.net/session.cache-limiter -session.cache_limiter = nocache - -; Document expires after n minutes. -; http://php.net/session.cache-expire -session.cache_expire = 180 - -; trans sid support is disabled by default. -; Use of trans sid may risk your users' security. -; Use this option with caution. -; - User may send URL contains active session ID -; to other person via. email/irc/etc. -; - URL that contains active session ID may be stored -; in publicly accessible computer. -; - User may access your site with the same session ID -; always using URL stored in browser's history or bookmarks. -; http://php.net/session.use-trans-sid -session.use_trans_sid = 0 - -; Set session ID character length. This value could be between 22 to 256. -; Shorter length than default is supported only for compatibility reason. -; Users should use 32 or more chars. -; http://php.net/session.sid-length -; Default Value: 32 -; Development Value: 26 -; Production Value: 26 -session.sid_length = 26 - -; The URL rewriter will look for URLs in a defined set of HTML tags. -; is special; if you include them here, the rewriter will -; add a hidden field with the info which is otherwise appended -; to URLs. tag's action attribute URL will not be modified -; unless it is specified. -; Note that all valid entries require a "=", even if no value follows. -; Default Value: "a=href,area=href,frame=src,form=" -; Development Value: "a=href,area=href,frame=src,form=" -; Production Value: "a=href,area=href,frame=src,form=" -; http://php.net/url-rewriter.tags -session.trans_sid_tags = "a=href,area=href,frame=src,form=" - -; URL rewriter does not rewrite absolute URLs by default. -; To enable rewrites for absolute pathes, target hosts must be specified -; at RUNTIME. i.e. use ini_set() -; tags is special. PHP will check action attribute's URL regardless -; of session.trans_sid_tags setting. -; If no host is defined, HTTP_HOST will be used for allowed host. -; Example value: php.net,www.php.net,wiki.php.net -; Use "," for multiple hosts. No spaces are allowed. -; Default Value: "" -; Development Value: "" -; Production Value: "" -;session.trans_sid_hosts="" - -; Define how many bits are stored in each character when converting -; the binary hash data to something readable. -; Possible values: -; 4 (4 bits: 0-9, a-f) -; 5 (5 bits: 0-9, a-v) -; 6 (6 bits: 0-9, a-z, A-Z, "-", ",") -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 -; http://php.net/session.hash-bits-per-character -session.sid_bits_per_character = 5 - -; Enable upload progress tracking in $_SESSION -; Default Value: On -; Development Value: On -; Production Value: On -; http://php.net/session.upload-progress.enabled -;session.upload_progress.enabled = On - -; Cleanup the progress information as soon as all POST data has been read -; (i.e. upload completed). -; Default Value: On -; Development Value: On -; Production Value: On -; http://php.net/session.upload-progress.cleanup -;session.upload_progress.cleanup = On - -; A prefix used for the upload progress key in $_SESSION -; Default Value: "upload_progress_" -; Development Value: "upload_progress_" -; Production Value: "upload_progress_" -; http://php.net/session.upload-progress.prefix -;session.upload_progress.prefix = "upload_progress_" - -; The index name (concatenated with the prefix) in $_SESSION -; containing the upload progress information -; Default Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Development Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Production Value: "PHP_SESSION_UPLOAD_PROGRESS" -; http://php.net/session.upload-progress.name -;session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS" - -; How frequently the upload progress should be updated. -; Given either in percentages (per-file), or in bytes -; Default Value: "1%" -; Development Value: "1%" -; Production Value: "1%" -; http://php.net/session.upload-progress.freq -;session.upload_progress.freq = "1%" - -; The minimum delay between updates, in seconds -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; http://php.net/session.upload-progress.min-freq -;session.upload_progress.min_freq = "1" - -; Only write session data when session data is changed. Enabled by default. -; http://php.net/session.lazy-write -;session.lazy_write = On - -[Assertion] -; Switch whether to compile assertions at all (to have no overhead at run-time) -; -1: Do not compile at all -; 0: Jump over assertion at run-time -; 1: Execute assertions -; Changing from or to a negative value is only possible in php.ini! (For turning assertions on and off at run-time, see assert.active, when zend.assertions = 1) -; Default Value: 1 -; Development Value: 1 -; Production Value: -1 -; http://php.net/zend.assertions -zend.assertions = -1 - -; Assert(expr); active by default. -; http://php.net/assert.active -;assert.active = On - -; Throw an AssertationException on failed assertions -; http://php.net/assert.exception -;assert.exception = On - -; Issue a PHP warning for each failed assertion. (Overridden by assert.exception if active) -; http://php.net/assert.warning -;assert.warning = On - -; Don't bail out by default. -; http://php.net/assert.bail -;assert.bail = Off - -; User-function to be called if an assertion fails. -; http://php.net/assert.callback -;assert.callback = 0 - -; Eval the expression with current error_reporting(). Set to true if you want -; error_reporting(0) around the eval(). -; http://php.net/assert.quiet-eval -;assert.quiet_eval = 0 - -[COM] -; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs -; http://php.net/com.typelib-file -;com.typelib_file = - -; allow Distributed-COM calls -; http://php.net/com.allow-dcom -;com.allow_dcom = true - -; autoregister constants of a components typlib on com_load() -; http://php.net/com.autoregister-typelib -;com.autoregister_typelib = true - -; register constants casesensitive -; http://php.net/com.autoregister-casesensitive -;com.autoregister_casesensitive = false - -; show warnings on duplicate constant registrations -; http://php.net/com.autoregister-verbose -;com.autoregister_verbose = true - -; The default character set code-page to use when passing strings to and from COM objects. -; Default: system ANSI code page -;com.code_page= - -[mbstring] -; language for internal character representation. -; This affects mb_send_mail() and mbstring.detect_order. -; http://php.net/mbstring.language -;mbstring.language = Japanese - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; internal/script encoding. -; Some encoding cannot work as internal encoding. (e.g. SJIS, BIG5, ISO-2022-*) -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;mbstring.internal_encoding = - -; Use of this INI entry is deprecated, use global input_encoding instead. -; http input encoding. -; mbstring.encoding_traslation = On is needed to use this setting. -; If empty, default_charset or input_encoding or mbstring.input is used. -; The precedence is: default_charset < intput_encoding < mbsting.http_input -; http://php.net/mbstring.http-input -;mbstring.http_input = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; http output encoding. -; mb_output_handler must be registered as output buffer to function. -; If empty, default_charset or output_encoding or mbstring.http_output is used. -; The precedence is: default_charset < output_encoding < mbstring.http_output -; To use an output encoding conversion, mbstring's output handler must be set -; otherwise output encoding conversion cannot be performed. -; http://php.net/mbstring.http-output -;mbstring.http_output = - -; enable automatic encoding translation according to -; mbstring.internal_encoding setting. Input chars are -; converted to internal encoding by setting this to On. -; Note: Do _not_ use automatic encoding translation for -; portable libs/applications. -; http://php.net/mbstring.encoding-translation -;mbstring.encoding_translation = Off - -; automatic encoding detection order. -; "auto" detect order is changed according to mbstring.language -; http://php.net/mbstring.detect-order -;mbstring.detect_order = auto - -; substitute_character used when character cannot be converted -; one from another -; http://php.net/mbstring.substitute-character -;mbstring.substitute_character = none - -; overload(replace) single byte functions by mbstring functions. -; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(), -; etc. Possible values are 0,1,2,4 or combination of them. -; For example, 7 for overload everything. -; 0: No overload -; 1: Overload mail() function -; 2: Overload str*() functions -; 4: Overload ereg*() functions -; http://php.net/mbstring.func-overload -;mbstring.func_overload = 0 - -; enable strict encoding detection. -; Default: Off -;mbstring.strict_detection = On - -; This directive specifies the regex pattern of content types for which mb_output_handler() -; is activated. -; Default: mbstring.http_output_conv_mimetype=^(text/|application/xhtml\+xml) -;mbstring.http_output_conv_mimetype= - -[gd] -; Tell the jpeg decode to ignore warnings and try to create -; a gd image. The warning will then be displayed as notices -; disabled by default -; http://php.net/gd.jpeg-ignore-warning -;gd.jpeg_ignore_warning = 1 - -[exif] -; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS. -; With mbstring support this will automatically be converted into the encoding -; given by corresponding encode setting. When empty mbstring.internal_encoding -; is used. For the decode settings you can distinguish between motorola and -; intel byte order. A decode setting cannot be empty. -; http://php.net/exif.encode-unicode -;exif.encode_unicode = ISO-8859-15 - -; http://php.net/exif.decode-unicode-motorola -;exif.decode_unicode_motorola = UCS-2BE - -; http://php.net/exif.decode-unicode-intel -;exif.decode_unicode_intel = UCS-2LE - -; http://php.net/exif.encode-jis -;exif.encode_jis = - -; http://php.net/exif.decode-jis-motorola -;exif.decode_jis_motorola = JIS - -; http://php.net/exif.decode-jis-intel -;exif.decode_jis_intel = JIS - -[Tidy] -; The path to a default tidy configuration file to use when using tidy -; http://php.net/tidy.default-config -;tidy.default_config = /usr/local/lib/php/default.tcfg - -; Should tidy clean and repair output automatically? -; WARNING: Do not use this option if you are generating non-html content -; such as dynamic images -; http://php.net/tidy.clean-output -tidy.clean_output = Off - -[soap] -; Enables or disables WSDL caching feature. -; http://php.net/soap.wsdl-cache-enabled -soap.wsdl_cache_enabled=1 - -; Sets the directory name where SOAP extension will put cache files. -; http://php.net/soap.wsdl-cache-dir -soap.wsdl_cache_dir="/tmp" - -; (time to live) Sets the number of second while cached file will be used -; instead of original one. -; http://php.net/soap.wsdl-cache-ttl -soap.wsdl_cache_ttl=86400 - -; Sets the size of the cache limit. (Max. number of WSDL files to cache) -soap.wsdl_cache_limit = 5 - -[sysvshm] -; A default size of the shared memory segment -;sysvshm.init_mem = 10000 - -[ldap] -; Sets the maximum number of open links or -1 for unlimited. -ldap.max_links = -1 - -[dba] -;dba.default_handler= - -[opcache] -; Determines if Zend OPCache is enabled -;opcache.enable=1 - -; Determines if Zend OPCache is enabled for the CLI version of PHP -;opcache.enable_cli=1 - -; The OPcache shared memory storage size. -;opcache.memory_consumption=128 - -; The amount of memory for interned strings in Mbytes. -;opcache.interned_strings_buffer=8 - -; The maximum number of keys (scripts) in the OPcache hash table. -; Only numbers between 200 and 1000000 are allowed. -;opcache.max_accelerated_files=10000 - -; The maximum percentage of "wasted" memory until a restart is scheduled. -;opcache.max_wasted_percentage=5 - -; When this directive is enabled, the OPcache appends the current working -; directory to the script key, thus eliminating possible collisions between -; files with the same name (basename). Disabling the directive improves -; performance, but may break existing applications. -;opcache.use_cwd=1 - -; When disabled, you must reset the OPcache manually or restart the -; webserver for changes to the filesystem to take effect. -;opcache.validate_timestamps=1 - -; How often (in seconds) to check file timestamps for changes to the shared -; memory storage allocation. ("1" means validate once per second, but only -; once per request. "0" means always validate) -;opcache.revalidate_freq=2 - -; Enables or disables file search in include_path optimization -;opcache.revalidate_path=0 - -; If disabled, all PHPDoc comments are dropped from the code to reduce the -; size of the optimized code. -;opcache.save_comments=1 - -; If enabled, a fast shutdown sequence is used for the accelerated code -; Depending on the used Memory Manager this may cause some incompatibilities. -;opcache.fast_shutdown=0 - -; Allow file existence override (file_exists, etc.) performance feature. -;opcache.enable_file_override=0 - -; A bitmask, where each bit enables or disables the appropriate OPcache -; passes -;opcache.optimization_level=0xffffffff - -;opcache.inherited_hack=1 -;opcache.dups_fix=0 - -; The location of the OPcache blacklist file (wildcards allowed). -; Each OPcache blacklist file is a text file that holds the names of files -; that should not be accelerated. The file format is to add each filename -; to a new line. The filename may be a full path or just a file prefix -; (i.e., /var/www/x blacklists all the files and directories in /var/www -; that start with 'x'). Line starting with a ; are ignored (comments). -;opcache.blacklist_filename= - -; Allows exclusion of large files from being cached. By default all files -; are cached. -;opcache.max_file_size=0 - -; Check the cache checksum each N requests. -; The default value of "0" means that the checks are disabled. -;opcache.consistency_checks=0 - -; How long to wait (in seconds) for a scheduled restart to begin if the cache -; is not being accessed. -;opcache.force_restart_timeout=180 - -; OPcache error_log file name. Empty string assumes "stderr". -;opcache.error_log= - -; All OPcache errors go to the Web server log. -; By default, only fatal errors (level 0) or errors (level 1) are logged. -; You can also enable warnings (level 2), info messages (level 3) or -; debug messages (level 4). -;opcache.log_verbosity_level=1 - -; Preferred Shared Memory back-end. Leave empty and let the system decide. -;opcache.preferred_memory_model= - -; Protect the shared memory from unexpected writing during script execution. -; Useful for internal debugging only. -;opcache.protect_memory=0 - -; Allows calling OPcache API functions only from PHP scripts which path is -; started from specified string. The default "" means no restriction -;opcache.restrict_api= - -; Mapping base of shared memory segments (for Windows only). All the PHP -; processes have to map shared memory into the same address space. This -; directive allows to manually fix the "Unable to reattach to base address" -; errors. -;opcache.mmap_base= - -; Enables and sets the second level cache directory. -; It should improve performance when SHM memory is full, at server restart or -; SHM reset. The default "" disables file based caching. -;opcache.file_cache= - -; Enables or disables opcode caching in shared memory. -;opcache.file_cache_only=0 - -; Enables or disables checksum validation when script loaded from file cache. -;opcache.file_cache_consistency_checks=1 - -; Implies opcache.file_cache_only=1 for a certain process that failed to -; reattach to the shared memory (for Windows only). Explicitly enabled file -; cache is required. -;opcache.file_cache_fallback=1 - -; Enables or disables copying of PHP code (text segment) into HUGE PAGES. -; This should improve performance, but requires appropriate OS configuration. -;opcache.huge_code_pages=1 - -; Validate cached file permissions. -;opcache.validate_permission=0 - -; Prevent name collisions in chroot'ed environment. -;opcache.validate_root=0 - -[curl] -; A default value for the CURLOPT_CAINFO option. This is required to be an -; absolute path. -;curl.cainfo = - -[openssl] -; The location of a Certificate Authority (CA) file on the local filesystem -; to use when verifying the identity of SSL/TLS peers. Most users should -; not specify a value for this directive as PHP will attempt to use the -; OS-managed cert stores in its absence. If specified, this value may still -; be overridden on a per-stream basis via the "cafile" SSL stream context -; option. -;openssl.cafile= - -; If openssl.cafile is not specified or if the CA file is not found, the -; directory pointed to by openssl.capath is searched for a suitable -; certificate. This value must be a correctly hashed certificate directory. -; Most users should not specify a value for this directive as PHP will -; attempt to use the OS-managed cert stores in its absence. If specified, -; this value may still be overridden on a per-stream basis via the "capath" -; SSL stream context option. -;openssl.capath= - -; Local Variables: -; tab-width: 4 -; End: - -[XDebug] -xdebug.remote_enable = 1 -xdebug.remote_handler = "dbgp" -; Set to host.docker.internal on Mac and Windows, otherwise, set to host real ip -xdebug.remote_host = host.docker.internal -;xdebug.remote_port = 9000 -xdebug.remote_log = /var/log/php/xdebug.log - -SERVER_ENV=develop - -yaf.use_spl_autoload=1 - -[xhprof] -;xhprof.output_dir = /var/log/php/xhprof.log \ No newline at end of file diff --git a/php8/8.4.6/data.yml b/php8/8.4.6/data.yml deleted file mode 100755 index deeede5ad..000000000 --- a/php8/8.4.6/data.yml +++ /dev/null @@ -1,18 +0,0 @@ -additionalProperties: - formFields: - - default: 9000 - envKey: PANEL_APP_PORT_HTTP - labelEn: PHP-FPM Port - labelZh: PHP-FPM 端口 - label: - en: PHP-FPM Port - ja: PHP-FPM ポート - ms: Port PHP-FPM - pt-br: Porta PHP-FPM - ru: Порт PHP-FPM - ko: PHP-FPM 포트 - zh-Hant: PHP-FPM 埠 - zh: PHP-FPM 端口 - required: true - rule: paramPort - type: number diff --git a/php8/8.4.6/docker-compose.yml b/php8/8.4.6/docker-compose.yml deleted file mode 100644 index dc530c778..000000000 --- a/php8/8.4.6/docker-compose.yml +++ /dev/null @@ -1,21 +0,0 @@ -services: - php: - image: ${IMAGE_NAME} - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - volumes: - - ${PANEL_WEBSITE_DIR}:/www/ - - ./conf/php.ini:/usr/local/etc/php/php.ini - - ./conf/php-fpm.conf:/usr/local/etc/php-fpm.d/www.conf - - ./log:/var/log/php - - ./composer:/tmp/composer - - ./extensions:/php/extensions - ports: - - 127.0.0.1:${PANEL_APP_PORT_HTTP}:9000 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/php8/README.md b/php8/README.md deleted file mode 100644 index b7d17a6ee..000000000 --- a/php8/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# PHP - -PHP(Hypertext Preprocessor)是一种流行的服务器端脚本语言,它用于开发动态网页和Web应用程序。 - -## 主要功能: - -- **动态网页生成**:PHP 可以嵌入到HTML中,用于生成动态内容。这意味着您可以根据用户的请求和其他条件来生成不同的网页内容。 -- **数据库连接**:PHP 支持多种数据库系统,包括MySQL、SQLite、PostgreSQL等,使您能够轻松地连接和操作数据库。 -- **表单处理**:PHP 可以处理网页表单数据,从而实现用户输入验证、数据存储和处理用户提交的信息。 -- **会话管理**:PHP 支持会话管理,允许您跟踪用户的状态和数据,从而创建登录系统和购物车等功能。 -- **文件操作**:PHP 允许您打开、读取、写入和删除文件,以及执行文件上传和下载等操作。 -- **错误处理**:PHP 提供丰富的错误处理机制,以便您能够捕获、记录和处理应用程序中的错误和异常。 -- **服务器端脚本**:PHP 脚本在服务器上执行,生成HTML输出,这意味着客户端无法查看脚本代码,从而提高了安全性。 -- **跨平台兼容**:PHP 可以在多种操作系统上运行,包括Windows、Linux和macOS,因此非常灵活。 -- **开源和社区支持**:PHP 是一个开源项目,拥有庞大的开发者社区,可以轻松找到各种扩展和库来扩展功能。 -- **模块化和面向对象编程**:PHP 支持面向对象编程(OOP),并且具有许多内置模块和扩展,可以简化开发过程。 \ No newline at end of file diff --git a/php8/README_en.md b/php8/README_en.md deleted file mode 100644 index 95f5f616b..000000000 --- a/php8/README_en.md +++ /dev/null @@ -1,25 +0,0 @@ -# PHP - -PHP (Hypertext Preprocessor) is a widely used server-side scripting language for developing dynamic web pages and web applications. - -## Main Features: - -- **Dynamic Web Page Generation**: PHP can be embedded directly into HTML, allowing for the generation of dynamic content. This enables the creation of web pages that respond to user input or other conditions. - -- **Database Support**: PHP supports a variety of database systems, including MySQL, SQLite, PostgreSQL, and more, enabling seamless database interaction and management. - -- **Form Handling**: PHP can handle data from web forms, enabling input validation, data storage, and processing of user-submitted information. - -- **Session Management**: PHP supports session management, allowing for the creation of login systems, shopping carts, and other user-specific functionalities. - -- **File Operations**: Open, read, write, delete, upload, and download files with PHP, enabling versatile file management capabilities. - -- **Error Handling**: PHP provides rich error handling features, allowing developers to capture, log, and handle errors and exceptions effectively. - -- **Server-Side Execution**: PHP scripts execute on the server, generating HTML output that the client sees. This keeps the source code secure and hidden from users. - -- **Cross-Platform**: PHP runs on multiple operating systems, including Windows, Linux, and macOS, making it highly versatile. - -- **Open Source and Community Support**: As an open-source project, PHP has a vast developer community offering libraries, extensions, and support. - -- **OOP Support**: PHP supports Object-Oriented Programming (OOP) and provides numerous built-in modules and extensions to simplify the development process. diff --git a/php8/data.yml b/php8/data.yml deleted file mode 100755 index a50f45fec..000000000 --- a/php8/data.yml +++ /dev/null @@ -1,35 +0,0 @@ -name: PHP 8 -tags: - - 运行环境 -title: PHP8 运行环境 -description: PHP8 运行环境 -additionalProperties: - key: php8 - name: PHP 8 - tags: - - Runtime - shortDescZh: PHP8 运行环境 - shortDescEn: PHP8 Runtime - description: - en: PHP8 Runtime - ja: PHP8 ランタイム - ms: Persekitaran masa laku PHP8 - pt-br: Ambiente de execução PHP8 - ru: Среда выполнения PHP8 - ko: PHP8 런타임 - zh-hant: PHP8 執行環境 - zh: PHP8 运行环境 - type: php - crossVersionUpdate: false - limit: 0 - recommend: 105 - website: https://www.php.net/ - github: https://github.com/php/php-src - document: https://www.php.net/docs.php - deprecated: 2.0 - architectures: - - amd64 - - arm64 - - arm/v7 - - s390x - - ppc64le \ No newline at end of file diff --git a/php8/logo.png b/php8/logo.png deleted file mode 100644 index cfa7782d2..000000000 Binary files a/php8/logo.png and /dev/null differ diff --git a/phpmyadmin/5.2.2/conf.d/uploads.ini b/phpmyadmin/5.2.2/conf.d/uploads.ini deleted file mode 100644 index 5b07c5b9d..000000000 --- a/phpmyadmin/5.2.2/conf.d/uploads.ini +++ /dev/null @@ -1,9 +0,0 @@ -file_uploads = On - -memory_limit = 64M - -upload_max_filesize = 64M - -post_max_size = 64M - -max_execution_time = 600 \ No newline at end of file diff --git a/phpmyadmin/5.2.2/conf.inc/config.user.inc.php b/phpmyadmin/5.2.2/conf.inc/config.user.inc.php deleted file mode 100644 index 132a2b2af..000000000 --- a/phpmyadmin/5.2.2/conf.inc/config.user.inc.php +++ /dev/null @@ -1,5 +0,0 @@ - - - # Configure knex to accept SSL certificates - # - KNEX_REJECT_UNAUTHORIZED_SSL_CERTIFICATE=false - - # - SHOW_DETAILED_AUTH_ERRORS=false # Set to true to show more detailed authentication error messages. It should not be enabled without a rate limiter for security reasons. - # - ALLOW_ALL_TO_CREATE_PROJECTS=true - - # - S3_ENDPOINT= - # - S3_REGION= - # - S3_ACCESS_KEY_ID= - # - S3_SECRET_ACCESS_KEY= - # - S3_BUCKET= - # - S3_FORCE_PATH_STYLE=true - - # - OIDC_ISSUER= - # - OIDC_CLIENT_ID= - # - OIDC_CLIENT_SECRET= - # - OIDC_ID_TOKEN_SIGNED_RESPONSE_ALG= - # - OIDC_USERINFO_SIGNED_RESPONSE_ALG= - # - OIDC_SCOPES=openid email profile - # - OIDC_RESPONSE_MODE=fragment - # - OIDC_USE_DEFAULT_RESPONSE_MODE=true - # - OIDC_ADMIN_ROLES=admin - # - OIDC_CLAIMS_SOURCE=userinfo - # - OIDC_EMAIL_ATTRIBUTE=email - # - OIDC_NAME_ATTRIBUTE=name - # - OIDC_USERNAME_ATTRIBUTE=preferred_username - # - OIDC_ROLES_ATTRIBUTE=groups - # - OIDC_IGNORE_USERNAME=true - # - OIDC_IGNORE_ROLES=true - # - OIDC_ENFORCED=true - - # Email Notifications (https://nodemailer.com/smtp/) - # - SMTP_HOST= - # - SMTP_PORT=587 - # - SMTP_NAME= - # - SMTP_SECURE=true - # - SMTP_USER= - # - SMTP_PASSWORD= - # - SMTP_FROM="Demo Demo" - # - SMTP_TLS_REJECT_UNAUTHORIZED=false - - # Optional fields: accessToken, events, excludedEvents - # - | - # WEBHOOKS=[{ - # "url": "http://localhost:3001", - # "accessToken": "notaccesstoken", - # "events": ["cardCreate", "cardUpdate", "cardDelete"], - # "excludedEvents": ["notificationCreate", "notificationUpdate"] - # }] - - # - SLACK_BOT_TOKEN= - # - SLACK_CHANNEL_ID= - - # - GOOGLE_CHAT_WEBHOOK_URL= - - # - TELEGRAM_BOT_TOKEN= - # - TELEGRAM_CHAT_ID= - # - TELEGRAM_THREAD_ID= - restart: always - networks: - - 1panel-network - volumes: - - ./data/user-avatars:/app/public/user-avatars - - ./data/project-background-images:/app/public/project-background-images - - ./data/attachments:/app/private/attachments - ports: - - "${PANEL_APP_PORT_HTTP}:1337" - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/planka/README.md b/planka/README.md deleted file mode 100644 index 8b0919441..000000000 --- a/planka/README.md +++ /dev/null @@ -1,10 +0,0 @@ -# Planka - -**Planka** 是一款开源、自托管的项目管理工具,类似 Trello,基于 **Node.js、React 和 PostgreSQL** 构建。 - -## 主要特性 - -- **可视化看板**:拖拽操作直观,管理任务更高效 -- **团队协作**:支持多用户,灵活权限管理 -- **实时同步**:WebSockets 确保多端数据即时更新 -- **轻量高效**:运行流畅,占用资源少 diff --git a/planka/README_en.md b/planka/README_en.md deleted file mode 100644 index 0ba17b15e..000000000 --- a/planka/README_en.md +++ /dev/null @@ -1,8 +0,0 @@ -# Planka -**Planka** is an open-source, self-hosted project management tool similar to Trello, built on **Node.js, React, and PostgreSQL**. - -## Key Features -- **Visual Boards**: Intuitive drag-and-drop operations for more efficient task management. -- **Team Collaboration**: Supports multiple users with flexible permission management. -- **Real-Time Synchronization**: WebSockets ensure real-time data updates across multiple devices. -- **Lightweight and Efficient**: Smooth operation with minimal resource usage. \ No newline at end of file diff --git a/planka/data.yml b/planka/data.yml deleted file mode 100644 index 8eed98058..000000000 --- a/planka/data.yml +++ /dev/null @@ -1,32 +0,0 @@ -name: Planka -tags: - - DevOps -title: 优雅的开源项目追踪 -description: 优雅的开源项目追踪 -additionalProperties: - key: planka - name: Planka - tags: - - DevOps - shortDescZh: 优雅的开源项目追踪 - shortDescEn: Elegant open source project tracking - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://planka.app/ - github: https://github.com/plankanban/planka - document: https://docs.planka.cloud/docs/intro - description: - en: Elegant open source project tracking - zh: 优雅的开源项目跟踪 - zh-Hant: 優雅的開源項目跟蹤 - ja: エレガントなオープンソースプロジェクト追跡 - ms: Penjejakan projek sumber terbuka yang elegan - pt-br: Rastreamento de projetos de código aberto elegante - ru: Элегантное отслеживание проектов с открытым исходным кодом - ko: 우아한 오픈 소스 프로젝트 추적 - architectures: - - amd64 - - arm/v7 - - arm64 \ No newline at end of file diff --git a/planka/logo.png b/planka/logo.png deleted file mode 100644 index 550851edf..000000000 Binary files a/planka/logo.png and /dev/null differ diff --git a/portainer-ce/2.31.1-alpine/data.yml b/portainer-ce/2.31.1-alpine/data.yml deleted file mode 100644 index 84d24310b..000000000 --- a/portainer-ce/2.31.1-alpine/data.yml +++ /dev/null @@ -1,35 +0,0 @@ -additionalProperties: - formFields: - - default: 9000 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh-Hant: 埠 - zh: 端口 - required: true - rule: paramPort - type: number - - default: 8000 - envKey: PORT_API - labelEn: API Port - labelZh: API 端口 - label: - en: API Port - ja: API ポート - ms: Port API - pt-br: Porta API - ru: Порт API - ko: API 포트 - zh-hant: API 埠 - zh: API 端口 - required: true - rule: paramPort - type: number diff --git a/portainer-ce/2.31.1-alpine/docker-compose.yml b/portainer-ce/2.31.1-alpine/docker-compose.yml deleted file mode 100644 index 022f534ea..000000000 --- a/portainer-ce/2.31.1-alpine/docker-compose.yml +++ /dev/null @@ -1,18 +0,0 @@ -services: - portainer-ce: - container_name: ${CONTAINER_NAME} - ports: - - ${PANEL_APP_PORT_HTTP}:9000 - - ${PORT_API}:8000 - restart: always - networks: - - 1panel-network - volumes: - - ./data:/data - - /var/run/docker.sock:/var/run/docker.sock - image: portainer/portainer-ce:2.31.1-alpine - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/portainer-ce/README.md b/portainer-ce/README.md deleted file mode 100644 index 8cdb0e8d8..000000000 --- a/portainer-ce/README.md +++ /dev/null @@ -1,36 +0,0 @@ -# Portainer CE - -Portainer CE(Community Edition)是一款用于容器管理的开源工具,它提供了用户友好的Web界面,用于管理和监控容器化应用程序。 - -## 主要功能: - -### 容器管理 - -- **容器创建和启动**: Portainer CE 允许用户轻松创建、配置和启动容器。您可以选择从现有镜像创建容器,也可以导入自定义镜像。 -- **容器监控**: 通过直观的界面,您可以实时监视容器的状态、资源利用率和日志,帮助您快速发现问题并进行诊断。 -- **容器编排**: Portainer CE 支持 Docker Compose,允许您以声明性的方式定义多容器应用程序,并在单个项目中管理它们。 - -### 映像管理 - -- **镜像浏览和搜索**: 您可以轻松地浏览可用的Docker映像,并通过内置搜索功能查找所需的映像。 -- **镜像导入和导出**: 支持导入和导出Docker映像,以便在不同环境之间共享和备份应用程序。 - -### 堆栈和服务 - -- **堆栈管理**: Portainer CE 支持 Docker Swarm,允许您创建、管理和监视堆栈以部署分布式应用程序。 -- **服务管理**: 轻松管理Swarm服务,包括扩展、更新和滚动回滚等操作。 - -### 用户和团队管理 - -- **用户和权限**: 可以创建多个用户帐户,并为它们分配不同的权限,以便多人协作管理容器和应用程序。 - -### 系统设置 - -- **仪表板和监控**: Portainer CE 提供仪表板,用于展示主机和容器的关键性能指标,帮助您监视整个容器化环境。 -- **存储和网络配置**: 配置存储卷和网络设置,以便容器可以互相通信和访问外部资源。 -- **应用程序模板**: 支持应用程序模板,简化常见容器化应用程序的部署。 - -### 日志和审计 - -- **日志查看**: 轻松查看容器和服务的实时日志,有助于故障排除和监视。 -- **审计日志**: 记录用户操作,以便进行审计和安全性分析。 \ No newline at end of file diff --git a/portainer-ce/README_en.md b/portainer-ce/README_en.md deleted file mode 100644 index 3253ea3b2..000000000 --- a/portainer-ce/README_en.md +++ /dev/null @@ -1,36 +0,0 @@ -# Portainer CE - -Portainer CE (Community Edition) is an open-source container management tool that provides a user-friendly web interface for managing and monitoring containerized applications. - -## Main Features: - -### Container Management - -- **Container Creation and Start**: Portainer CE allows users to easily create, configure, and start containers. You can choose to create containers from existing images or import custom images. -- **Container Monitoring**: Through an intuitive interface, you can monitor container status, resource utilization, and logs in real time, helping you quickly identify issues and perform diagnostics. -- **Container Orchestration**: Portainer CE supports Docker Compose, allowing you to define multi-container applications declaratively and manage them within a single project. - -### Image Management - -- **Image Browsing and Search**: You can easily browse available Docker images and use the built-in search function to find the images you need. -- **Image Import and Export**: Supports importing and exporting Docker images for sharing and backing up applications across different environments. - -### Stacks and Services - -- **Stack Management**: Portainer CE supports Docker Swarm, allowing you to create, manage, and monitor stacks to deploy distributed applications. -- **Service Management**: Easily manage Swarm services, including scaling, updating, and performing rolling back operations. - -### User and Team Management - -- **Users and Permissions**: You can create multiple user accounts and assign different permissions, enabling collaborative management of containers and applications. - -### System Settings - -- **Dashboard and Monitoring**: Portainer CE provides a dashboard displaying key performance indicators of hosts and containers, helping you monitor your entire containerized environment. -- **Storage and Network Configuration**: Configure storage volumes and network settings to enable containers to communicate with each other and access external resources. -- **Application Templates**: Supports application templates to simplify the deployment of common containerized applications. - -### Logs and Auditing - -- **Log Viewing**: Easily view real-time logs of containers and services to assist with troubleshooting and monitoring. -- **Audit Logs**: Records user actions for auditing and security analysis. \ No newline at end of file diff --git a/portainer-ce/data.yml b/portainer-ce/data.yml deleted file mode 100644 index 493c53a50..000000000 --- a/portainer-ce/data.yml +++ /dev/null @@ -1,32 +0,0 @@ -name: Portainer-CE -tags: - - 实用工具 -title: 图形界面容器管理工具 -description: 图形界面容器管理工具 -additionalProperties: - key: portainer-ce - name: Portainer-CE - tags: - - Tool - shortDescZh: 图形界面容器管理工具 - shortDescEn: GUI container management tools - description: - en: GUI container management tools - ja: GUIコンテナ管理ツール - ms: Alat pengurusan kontena GUI - pt-br: Ferramentas de gerenciamento de contêiner GUI - ru: Инструменты управления контейнерами с графическим интерфейсом - ko: GUI 컨테이너 관리 도구 - zh-hant: GUI 容器管理工具 - zh: 图形界面容器管理工具 - type: website - crossVersionUpdate: true - limit: 1 - recommend: 0 - website: https://www.portainer.io/ - github: https://github.com/portainer/portainer - document: https://docs.portainer.io/ - architectures: - - amd64 - - arm/v7 - - arm64 \ No newline at end of file diff --git a/portainer-ce/logo.png b/portainer-ce/logo.png deleted file mode 100644 index af17dd122..000000000 Binary files a/portainer-ce/logo.png and /dev/null differ diff --git a/postgresql/12.22-alpine/data.yml b/postgresql/12.22-alpine/data.yml deleted file mode 100644 index 247c71545..000000000 --- a/postgresql/12.22-alpine/data.yml +++ /dev/null @@ -1,51 +0,0 @@ -additionalProperties: - formFields: - - default: user - envKey: PANEL_DB_ROOT_USER - labelEn: Username - labelZh: 用户名 - label: - en: Username - ja: ユーザー名 - ms: Nama pengguna - pt-br: Nome de usuário - ru: Имя пользователя - ko: 사용자 이름 - zh-hant: 用戶名 - zh: 用户名 - random: true - required: true - rule: paramCommon - type: text - - default: password - envKey: PANEL_DB_ROOT_PASSWORD - labelEn: Password - labelZh: 密码 - label: - en: Password - ja: パスワード - ms: Kata laluan - pt-br: Senha - ru: Пароль - ko: 비밀번호 - zh-hant: 密碼 - zh: 密码 - random: true - required: true - type: password - - default: 5432 - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh-Hant: 埠 - zh: 端口 - required: true - rule: paramPort - type: number diff --git a/postgresql/12.22-alpine/docker-compose.yml b/postgresql/12.22-alpine/docker-compose.yml deleted file mode 100644 index 96b6352d0..000000000 --- a/postgresql/12.22-alpine/docker-compose.yml +++ /dev/null @@ -1,25 +0,0 @@ -services: - postgres: - container_name: ${CONTAINER_NAME} - image: postgres:12.22-alpine - restart: always - environment: - - POSTGRES_USER=${PANEL_DB_ROOT_USER} - - POSTGRES_PASSWORD=${PANEL_DB_ROOT_PASSWORD} - ports: - - ${PANEL_APP_PORT_HTTP}:5432 - volumes: - - ./data:/var/lib/postgresql/data - healthcheck: - test: ["CMD", "pg_isready", "-h", "127.0.0.1", "-p", "5432", "-q", "-U", "${PANEL_DB_ROOT_USER}"] - start_period: 20s - interval: 30s - retries: 5 - timeout: 5s - networks: - - 1panel-network - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/postgresql/13.21-alpine/data.yml b/postgresql/13.21-alpine/data.yml deleted file mode 100644 index 247c71545..000000000 --- a/postgresql/13.21-alpine/data.yml +++ /dev/null @@ -1,51 +0,0 @@ -additionalProperties: - formFields: - - default: user - envKey: PANEL_DB_ROOT_USER - labelEn: Username - labelZh: 用户名 - label: - en: Username - ja: ユーザー名 - ms: Nama pengguna - pt-br: Nome de usuário - ru: Имя пользователя - ko: 사용자 이름 - zh-hant: 用戶名 - zh: 用户名 - random: true - required: true - rule: paramCommon - type: text - - default: password - envKey: PANEL_DB_ROOT_PASSWORD - labelEn: Password - labelZh: 密码 - label: - en: Password - ja: パスワード - ms: Kata laluan - pt-br: Senha - ru: Пароль - ko: 비밀번호 - zh-hant: 密碼 - zh: 密码 - random: true - required: true - type: password - - default: 5432 - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh-Hant: 埠 - zh: 端口 - required: true - rule: paramPort - type: number diff --git a/postgresql/13.21-alpine/docker-compose.yml b/postgresql/13.21-alpine/docker-compose.yml deleted file mode 100644 index dad87ebb3..000000000 --- a/postgresql/13.21-alpine/docker-compose.yml +++ /dev/null @@ -1,25 +0,0 @@ -services: - postgres: - container_name: ${CONTAINER_NAME} - image: postgres:13.21-alpine - restart: always - environment: - - POSTGRES_USER=${PANEL_DB_ROOT_USER} - - POSTGRES_PASSWORD=${PANEL_DB_ROOT_PASSWORD} - ports: - - ${PANEL_APP_PORT_HTTP}:5432 - volumes: - - ./data:/var/lib/postgresql/data - healthcheck: - test: ["CMD", "pg_isready", "-h", "127.0.0.1", "-p", "5432", "-q", "-U", "${PANEL_DB_ROOT_USER}"] - start_period: 20s - interval: 30s - retries: 5 - timeout: 5s - networks: - - 1panel-network - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/postgresql/14.18-alpine/data.yml b/postgresql/14.18-alpine/data.yml deleted file mode 100644 index 247c71545..000000000 --- a/postgresql/14.18-alpine/data.yml +++ /dev/null @@ -1,51 +0,0 @@ -additionalProperties: - formFields: - - default: user - envKey: PANEL_DB_ROOT_USER - labelEn: Username - labelZh: 用户名 - label: - en: Username - ja: ユーザー名 - ms: Nama pengguna - pt-br: Nome de usuário - ru: Имя пользователя - ko: 사용자 이름 - zh-hant: 用戶名 - zh: 用户名 - random: true - required: true - rule: paramCommon - type: text - - default: password - envKey: PANEL_DB_ROOT_PASSWORD - labelEn: Password - labelZh: 密码 - label: - en: Password - ja: パスワード - ms: Kata laluan - pt-br: Senha - ru: Пароль - ko: 비밀번호 - zh-hant: 密碼 - zh: 密码 - random: true - required: true - type: password - - default: 5432 - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh-Hant: 埠 - zh: 端口 - required: true - rule: paramPort - type: number diff --git a/postgresql/14.18-alpine/docker-compose.yml b/postgresql/14.18-alpine/docker-compose.yml deleted file mode 100644 index 34b4a2f6c..000000000 --- a/postgresql/14.18-alpine/docker-compose.yml +++ /dev/null @@ -1,25 +0,0 @@ -services: - postgres: - container_name: ${CONTAINER_NAME} - image: postgres:14.18-alpine - restart: always - environment: - - POSTGRES_USER=${PANEL_DB_ROOT_USER} - - POSTGRES_PASSWORD=${PANEL_DB_ROOT_PASSWORD} - ports: - - ${PANEL_APP_PORT_HTTP}:5432 - volumes: - - ./data:/var/lib/postgresql/data - healthcheck: - test: ["CMD", "pg_isready", "-h", "127.0.0.1", "-p", "5432", "-q", "-U", "${PANEL_DB_ROOT_USER}"] - start_period: 20s - interval: 30s - retries: 5 - timeout: 5s - networks: - - 1panel-network - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/postgresql/15.13-alpine/data.yml b/postgresql/15.13-alpine/data.yml deleted file mode 100644 index 247c71545..000000000 --- a/postgresql/15.13-alpine/data.yml +++ /dev/null @@ -1,51 +0,0 @@ -additionalProperties: - formFields: - - default: user - envKey: PANEL_DB_ROOT_USER - labelEn: Username - labelZh: 用户名 - label: - en: Username - ja: ユーザー名 - ms: Nama pengguna - pt-br: Nome de usuário - ru: Имя пользователя - ko: 사용자 이름 - zh-hant: 用戶名 - zh: 用户名 - random: true - required: true - rule: paramCommon - type: text - - default: password - envKey: PANEL_DB_ROOT_PASSWORD - labelEn: Password - labelZh: 密码 - label: - en: Password - ja: パスワード - ms: Kata laluan - pt-br: Senha - ru: Пароль - ko: 비밀번호 - zh-hant: 密碼 - zh: 密码 - random: true - required: true - type: password - - default: 5432 - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh-Hant: 埠 - zh: 端口 - required: true - rule: paramPort - type: number diff --git a/postgresql/15.13-alpine/docker-compose.yml b/postgresql/15.13-alpine/docker-compose.yml deleted file mode 100644 index d421dd669..000000000 --- a/postgresql/15.13-alpine/docker-compose.yml +++ /dev/null @@ -1,25 +0,0 @@ -services: - postgres: - container_name: ${CONTAINER_NAME} - image: postgres:15.13-alpine - restart: always - environment: - - POSTGRES_USER=${PANEL_DB_ROOT_USER} - - POSTGRES_PASSWORD=${PANEL_DB_ROOT_PASSWORD} - ports: - - ${PANEL_APP_PORT_HTTP}:5432 - volumes: - - ./data:/var/lib/postgresql/data - healthcheck: - test: ["CMD", "pg_isready", "-h", "127.0.0.1", "-p", "5432", "-q", "-U", "${PANEL_DB_ROOT_USER}"] - start_period: 20s - interval: 30s - retries: 5 - timeout: 5s - networks: - - 1panel-network - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/postgresql/16.9-alpine/data.yml b/postgresql/16.9-alpine/data.yml deleted file mode 100644 index 247c71545..000000000 --- a/postgresql/16.9-alpine/data.yml +++ /dev/null @@ -1,51 +0,0 @@ -additionalProperties: - formFields: - - default: user - envKey: PANEL_DB_ROOT_USER - labelEn: Username - labelZh: 用户名 - label: - en: Username - ja: ユーザー名 - ms: Nama pengguna - pt-br: Nome de usuário - ru: Имя пользователя - ko: 사용자 이름 - zh-hant: 用戶名 - zh: 用户名 - random: true - required: true - rule: paramCommon - type: text - - default: password - envKey: PANEL_DB_ROOT_PASSWORD - labelEn: Password - labelZh: 密码 - label: - en: Password - ja: パスワード - ms: Kata laluan - pt-br: Senha - ru: Пароль - ko: 비밀번호 - zh-hant: 密碼 - zh: 密码 - random: true - required: true - type: password - - default: 5432 - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh-Hant: 埠 - zh: 端口 - required: true - rule: paramPort - type: number diff --git a/postgresql/16.9-alpine/docker-compose.yml b/postgresql/16.9-alpine/docker-compose.yml deleted file mode 100644 index b3226d827..000000000 --- a/postgresql/16.9-alpine/docker-compose.yml +++ /dev/null @@ -1,25 +0,0 @@ -services: - postgres: - container_name: ${CONTAINER_NAME} - image: postgres:16.9-alpine - restart: always - environment: - - POSTGRES_USER=${PANEL_DB_ROOT_USER} - - POSTGRES_PASSWORD=${PANEL_DB_ROOT_PASSWORD} - ports: - - ${PANEL_APP_PORT_HTTP}:5432 - volumes: - - ./data:/var/lib/postgresql/data - healthcheck: - test: ["CMD", "pg_isready", "-h", "127.0.0.1", "-p", "5432", "-q", "-U", "${PANEL_DB_ROOT_USER}"] - start_period: 20s - interval: 30s - retries: 5 - timeout: 5s - networks: - - 1panel-network - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/postgresql/17.5-alpine/data.yml b/postgresql/17.5-alpine/data.yml deleted file mode 100644 index 247c71545..000000000 --- a/postgresql/17.5-alpine/data.yml +++ /dev/null @@ -1,51 +0,0 @@ -additionalProperties: - formFields: - - default: user - envKey: PANEL_DB_ROOT_USER - labelEn: Username - labelZh: 用户名 - label: - en: Username - ja: ユーザー名 - ms: Nama pengguna - pt-br: Nome de usuário - ru: Имя пользователя - ko: 사용자 이름 - zh-hant: 用戶名 - zh: 用户名 - random: true - required: true - rule: paramCommon - type: text - - default: password - envKey: PANEL_DB_ROOT_PASSWORD - labelEn: Password - labelZh: 密码 - label: - en: Password - ja: パスワード - ms: Kata laluan - pt-br: Senha - ru: Пароль - ko: 비밀번호 - zh-hant: 密碼 - zh: 密码 - random: true - required: true - type: password - - default: 5432 - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh-Hant: 埠 - zh: 端口 - required: true - rule: paramPort - type: number diff --git a/postgresql/17.5-alpine/docker-compose.yml b/postgresql/17.5-alpine/docker-compose.yml deleted file mode 100644 index 2b5051f78..000000000 --- a/postgresql/17.5-alpine/docker-compose.yml +++ /dev/null @@ -1,25 +0,0 @@ -services: - postgres: - container_name: ${CONTAINER_NAME} - image: postgres:17.5-alpine - restart: always - environment: - - POSTGRES_USER=${PANEL_DB_ROOT_USER} - - POSTGRES_PASSWORD=${PANEL_DB_ROOT_PASSWORD} - ports: - - ${PANEL_APP_PORT_HTTP}:5432 - volumes: - - ./data:/var/lib/postgresql/data - healthcheck: - test: ["CMD", "pg_isready", "-h", "127.0.0.1", "-p", "5432", "-q", "-U", "${PANEL_DB_ROOT_USER}"] - start_period: 20s - interval: 30s - retries: 5 - timeout: 5s - networks: - - 1panel-network - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/postgresql/README.md b/postgresql/README.md deleted file mode 100644 index 5f4656e48..000000000 --- a/postgresql/README.md +++ /dev/null @@ -1,57 +0,0 @@ -# PostgreSQL - -PostgreSQL 是一个强大的开源关系型数据库管理系统(RDBMS),具有许多先进的功能和广泛的用途。它以可靠性、扩展性和高级功能而闻名,适用于各种不同的应用场景。 - -## 主要功能: - -### 多用户支持 - -PostgreSQL 支持多个用户,每个用户可以有自己的帐户和权限。这使得多个用户可以同时访问和管理数据库,而不会相互干扰。 - -### ACID 遵从 - -PostgreSQL 遵循 ACID(原子性、一致性、隔离性和持久性)属性,确保数据库操作的可靠性和一致性,即使在系统崩溃或故障的情况下也能保持数据的完整性。 - -### 数据类型支持 - -PostgreSQL 提供了丰富的内置数据类型,包括整数、浮点数、日期/时间、文本、二进制数据等。此外,它还支持用户自定义数据类型,使其非常灵活。 - -### 扩展性 - -PostgreSQL 允许用户轻松地添加新的函数、操作符、聚合函数和数据类型,以满足特定应用程序的需求。这种灵活性使得它适用于各种不同的数据处理任务。 - -### 外键支持 - -PostgreSQL 支持外键,可以定义表之间的关系,确保数据的引用完整性,防止不一致的数据关联。 - -### 多版本并发控制 - -PostgreSQL 使用多版本并发控制(MVCC)来处理并发访问,允许多个事务同时访问数据库,而不会导致数据冲突或锁定。 - -### 高级查询优化 - -PostgreSQL 提供了强大的查询优化器,可以优化复杂的查询,以提高性能并降低查询时间。 - -### 备份和恢复 - -PostgreSQL 支持在线备份和恢复操作,可以轻松创建数据库备份,并在需要时恢复数据,确保数据的可用性和安全性。 - -### 外部数据源访问 - -PostgreSQL 允许访问外部数据源,如其他数据库、文件和Web服务,以便将外部数据与数据库中的数据集成。 - -### 安全性 - -PostgreSQL 提供了丰富的安全功能,包括访问控制、SSL支持、数据加密和审计功能,以确保数据库的安全性。 - -### JSON 和 JSONB 数据类型 - -PostgreSQL 支持存储和查询 JSON 数据,包括 JSON 和二进制 JSON(JSONB)数据类型,使其成为处理半结构化数据的理想选择。 - -### 复制和高可用性 - -PostgreSQL 支持流复制和逻辑复制,以实现数据复制和高可用性配置,确保系统的可用性和容错性。 - -### 社区支持和扩展 - -PostgreSQL 拥有活跃的社区,提供了大量的扩展和插件,以满足不同行业和应用程序的需求。 \ No newline at end of file diff --git a/postgresql/README_en.md b/postgresql/README_en.md deleted file mode 100644 index 4089ab635..000000000 --- a/postgresql/README_en.md +++ /dev/null @@ -1,57 +0,0 @@ -# PostgreSQL - -PostgreSQL is a powerful open-source relational database management system (RDBMS) known for its reliability, scalability, and advanced features. It is widely used across various applications and industries. - -## Main Features: - -### Multi-User Support - -PostgreSQL supports multiple users, each with their own accounts and permissions. This allows simultaneous access and management of the database without interference between users. - -### ACID - -PostgreSQL adheres to ACID properties (Atomicity, Consistency, Isolation, Durability), ensuring reliable and consistent database operations, even during system crashes or failures, maintaining data integrity. - -### Rich Data Type Support - -PostgreSQL provides a wide range of built-in data types, including integers, floating points, dates/times, text, and binary data. It also supports user-defined data types, offering flexibility for various use cases. - -### Extensions - -Users can easily add new functions, operators, aggregate functions, and data types to PostgreSQL, making it adaptable to specific application requirements and diverse data processing tasks. - -### Foreign Key Support - -PostgreSQL supports foreign keys to define relationships between tables, ensuring referential integrity and preventing inconsistent data associations. - -### Multi-Version Concurrency Control (MVCC) - -PostgreSQL uses MVCC to handle concurrent database access, allowing multiple transactions to interact simultaneously without data conflicts or locks. - -### Advanced Query Optimization - -PostgreSQL features a powerful query optimizer to efficiently execute complex queries, enhancing performance and reducing query execution time. - -### Backup and Recovery - -PostgreSQL supports online backup and recovery operations, enabling easy database backups and data restoration when needed, ensuring data availability and security. - -### External Data Access - -PostgreSQL allows integration with external data sources, such as other databases, files, and web services, enabling seamless data consolidation and integration. - -### Security - -PostgreSQL offers comprehensive security features, including access controls, SSL support, data encryption, and auditing capabilities, ensuring the protection of sensitive information. - -### JSON and JSONB Data Types - -PostgreSQL supports storing and querying JSON data using JSON and binary JSON (JSONB) data types, making it ideal for managing semi-structured data. - -### Replication and High Availability - -PostgreSQL supports streaming replication and logical replication to enable data replication and high availability configurations, ensuring system resilience and fault tolerance. - -### Community Support and Extensions - -PostgreSQL has an active community and a rich ecosystem of extensions and plugins to meet the needs of various industries and applications. \ No newline at end of file diff --git a/postgresql/data.yml b/postgresql/data.yml deleted file mode 100755 index 299e2edb6..000000000 --- a/postgresql/data.yml +++ /dev/null @@ -1,35 +0,0 @@ -name: PostgreSQL -tags: - - 数据库 -title: 开源关系型数据库 -description: 开源关系型数据库 -additionalProperties: - key: postgresql - name: PostgreSQL - tags: - - Database - shortDescZh: 开源关系型数据库 - shortDescEn: Open Source Relational Database - description: - en: Open Source Relational Database - ja: オープンソースのリレーショナルデータベース - ms: Pangkalan Data Relasi Sumber Terbuka - pt-br: Banco de Dados Relacional de Código Aberto - ru: Открытая реляционная база данных - ko: 오픈 소스 관계형 데이터베이스 - zh-hant: 開源關聯資料庫 - zh: 开源关系型数据库 - type: runtime - crossVersionUpdate: false - limit: 0 - recommend: 0 - website: https://www.postgresql.org/ - github: https://github.com/postgres/postgres - document: https://www.postgresql.org/docs/ - memoryRequired: 1024 - architectures: - - amd64 - - arm/v7 - - arm64 - - ppc64le - - s390x \ No newline at end of file diff --git a/postgresql/logo.png b/postgresql/logo.png deleted file mode 100644 index 2c14e3052..000000000 Binary files a/postgresql/logo.png and /dev/null differ diff --git a/prometheus/3.4.1/conf/prometheus.yml b/prometheus/3.4.1/conf/prometheus.yml deleted file mode 100644 index d3131b31e..000000000 --- a/prometheus/3.4.1/conf/prometheus.yml +++ /dev/null @@ -1,25 +0,0 @@ -global: - scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute. - evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute. - # scrape_timeout is set to the global default (10s). - -# Alertmanager configuration -alerting: - alertmanagers: - - static_configs: - - targets: - # - alertmanager:9093 - -# Load rules once and periodically evaluate them according to the global 'evaluation_interval'. -rule_files: -# - "first_rules.yml" -# - "second_rules.yml" - -# A scrape configuration containing exactly one endpoint to scrape: -# Here it's Prometheus itself. -scrape_configs: - # The job name is added as a label `job=` to any timeseries scraped from this config. - - job_name: 'prometheus' - static_configs: - - targets: [ 'localhost:9090' ] - diff --git a/prometheus/3.4.1/data.yml b/prometheus/3.4.1/data.yml deleted file mode 100644 index e7e6bd904..000000000 --- a/prometheus/3.4.1/data.yml +++ /dev/null @@ -1,19 +0,0 @@ -additionalProperties: - formFields: - - default: 9090 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: Web 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh: Web 端口 - zh-Hant: Web 埠 - required: true - rule: paramPort - type: number diff --git a/prometheus/3.4.1/docker-compose.yml b/prometheus/3.4.1/docker-compose.yml deleted file mode 100644 index 8aaf8aebd..000000000 --- a/prometheus/3.4.1/docker-compose.yml +++ /dev/null @@ -1,23 +0,0 @@ -services: - clickhouse: - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTP}:9090" - volumes: - - ./conf:/etc/prometheus/ - - ./prometheus:/prometheus - image: prom/prometheus:v3.4.1 - command: - - '--config.file=/etc/prometheus/prometheus.yml' - - '--storage.tsdb.path=/prometheus' - - '--web.console.libraries=/etc/prometheus/console_libraries' - - '--web.console.templates=/etc/prometheus/consoles' - - '--storage.tsdb.retention.time=200h' - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/prometheus/3.4.1/prometheus/.gitkeep b/prometheus/3.4.1/prometheus/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/prometheus/3.4.1/scripts/init.sh b/prometheus/3.4.1/scripts/init.sh deleted file mode 100644 index 93e5dd0c4..000000000 --- a/prometheus/3.4.1/scripts/init.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -chmod -R 777 prometheus \ No newline at end of file diff --git a/prometheus/README.md b/prometheus/README.md deleted file mode 100644 index 30074a0c8..000000000 --- a/prometheus/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# Prometheus - -**Prometheus** 一个监控系统和时间序列数据库 - -## 主要功能: - -- 多维数据模型,其中时间序列数据由指标名称和键/值对标识 -- PromQL,一种利用此维度的灵活查询语言 -- 不依赖分布式存储; -- 单个服务器节点是自治的 -- 时间序列收集通过 HTTP 上的拉模型进行 -- 通过中间网关支持推送时间序列 -- 通过服务发现或静态配置发现目标 -- 多种图形和仪表板支持模式 diff --git a/prometheus/README_en.md b/prometheus/README_en.md deleted file mode 100644 index 2e968e6a5..000000000 --- a/prometheus/README_en.md +++ /dev/null @@ -1,14 +0,0 @@ -# Prometheus - -**Prometheus** is a monitoring system and time-series database. - -## Key Features: - -- Multidimensional data model, where time series data is identified by metric names and key/value pairs. -- PromQL, a flexible query language that leverages this dimensionality. -- No reliance on distributed storage; single server nodes are autonomous. -- Time series collection is performed via a pull model over HTTP. -- Supports pushing time series via an intermediary gateway. -- Targets are discovered via service discovery or static configuration. -- Multiple modes of graphing and dashboard support. - diff --git a/prometheus/data.yml b/prometheus/data.yml deleted file mode 100644 index 145582308..000000000 --- a/prometheus/data.yml +++ /dev/null @@ -1,34 +0,0 @@ -name: Prometheus -tags: - - 数据库 -title: 监控系统和时间序列数据库 -description: 监控系统和时间序列数据库 -additionalProperties: - key: prometheus - name: Prometheus - tags: - - Database - shortDescZh: 监控系统和时间序列数据库 - shortDescEn: Monitoring system and time series database - type: website - crossVersionUpdate: false - limit: 0 - recommend: 0 - website: https://prometheus.io - github: https://github.com/prometheus/prometheus - document: https://prometheus.io/docs/introduction/overview/ - description: - en: Monitoring system and time series database - zh: 监控系统和时间序列数据库 - zh-Hant: 監控系統和時間序列數據庫 - ja: 監視システムおよび時系列データベース - ms: Sistem pemantauan dan pangkalan data siri masa - pt-br: Sistema de monitoramento e banco de dados de séries temporais - ru: Система мониторинга и база данных временных рядов - ko: 모니터링 시스템 및 시계열 데이터베이스 - architectures: - - amd64 - - arm64 - - arm/v7 - - ppc64le - - s390x \ No newline at end of file diff --git a/prometheus/logo.png b/prometheus/logo.png deleted file mode 100644 index a3a960138..000000000 Binary files a/prometheus/logo.png and /dev/null differ diff --git a/python/3.10.15/data.yml b/python/3.10.15/data.yml deleted file mode 100644 index fcc6ed694..000000000 --- a/python/3.10.15/data.yml +++ /dev/null @@ -1 +0,0 @@ -additionalProperties: \ No newline at end of file diff --git a/python/3.10.15/docker-compose.yml b/python/3.10.15/docker-compose.yml deleted file mode 100644 index fe159d085..000000000 --- a/python/3.10.15/docker-compose.yml +++ /dev/null @@ -1,20 +0,0 @@ -services: - python: - image: python:${PYTHON_VERSION} - container_name: ${CONTAINER_NAME} - working_dir: /app - volumes: - - ${CODE_DIR}:/app - - ./run.sh:/run.sh - - ./.env:/.env - command: bash /run.sh - networks: - - 1panel-network - ports: - - ${HOST_IP}:${PANEL_APP_PORT_HTTP}:${APP_PORT} - restart: on-failure:5 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/python/3.10.15/run.sh b/python/3.10.15/run.sh deleted file mode 100644 index 84d52d0fc..000000000 --- a/python/3.10.15/run.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -source /.env - -eval $EXEC_SCRIPT diff --git a/python/3.11.10/data.yml b/python/3.11.10/data.yml deleted file mode 100644 index fcc6ed694..000000000 --- a/python/3.11.10/data.yml +++ /dev/null @@ -1 +0,0 @@ -additionalProperties: \ No newline at end of file diff --git a/python/3.11.10/docker-compose.yml b/python/3.11.10/docker-compose.yml deleted file mode 100644 index fe159d085..000000000 --- a/python/3.11.10/docker-compose.yml +++ /dev/null @@ -1,20 +0,0 @@ -services: - python: - image: python:${PYTHON_VERSION} - container_name: ${CONTAINER_NAME} - working_dir: /app - volumes: - - ${CODE_DIR}:/app - - ./run.sh:/run.sh - - ./.env:/.env - command: bash /run.sh - networks: - - 1panel-network - ports: - - ${HOST_IP}:${PANEL_APP_PORT_HTTP}:${APP_PORT} - restart: on-failure:5 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/python/3.11.10/run.sh b/python/3.11.10/run.sh deleted file mode 100644 index 84d52d0fc..000000000 --- a/python/3.11.10/run.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -source /.env - -eval $EXEC_SCRIPT diff --git a/python/3.12.7/data.yml b/python/3.12.7/data.yml deleted file mode 100644 index fcc6ed694..000000000 --- a/python/3.12.7/data.yml +++ /dev/null @@ -1 +0,0 @@ -additionalProperties: \ No newline at end of file diff --git a/python/3.12.7/docker-compose.yml b/python/3.12.7/docker-compose.yml deleted file mode 100644 index fe159d085..000000000 --- a/python/3.12.7/docker-compose.yml +++ /dev/null @@ -1,20 +0,0 @@ -services: - python: - image: python:${PYTHON_VERSION} - container_name: ${CONTAINER_NAME} - working_dir: /app - volumes: - - ${CODE_DIR}:/app - - ./run.sh:/run.sh - - ./.env:/.env - command: bash /run.sh - networks: - - 1panel-network - ports: - - ${HOST_IP}:${PANEL_APP_PORT_HTTP}:${APP_PORT} - restart: on-failure:5 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/python/3.12.7/run.sh b/python/3.12.7/run.sh deleted file mode 100644 index b7950697e..000000000 --- a/python/3.12.7/run.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/bash - -source /.env - - -eval $EXEC_SCRIPT diff --git a/python/3.13.0/data.yml b/python/3.13.0/data.yml deleted file mode 100644 index fcc6ed694..000000000 --- a/python/3.13.0/data.yml +++ /dev/null @@ -1 +0,0 @@ -additionalProperties: \ No newline at end of file diff --git a/python/3.13.0/docker-compose.yml b/python/3.13.0/docker-compose.yml deleted file mode 100644 index fe159d085..000000000 --- a/python/3.13.0/docker-compose.yml +++ /dev/null @@ -1,20 +0,0 @@ -services: - python: - image: python:${PYTHON_VERSION} - container_name: ${CONTAINER_NAME} - working_dir: /app - volumes: - - ${CODE_DIR}:/app - - ./run.sh:/run.sh - - ./.env:/.env - command: bash /run.sh - networks: - - 1panel-network - ports: - - ${HOST_IP}:${PANEL_APP_PORT_HTTP}:${APP_PORT} - restart: on-failure:5 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/python/3.13.0/run.sh b/python/3.13.0/run.sh deleted file mode 100644 index 2272029e1..000000000 --- a/python/3.13.0/run.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -source /.env - -eval $EXEC_SCRIPT - - - - - diff --git a/python/README.md b/python/README.md deleted file mode 100644 index 7a8258124..000000000 --- a/python/README.md +++ /dev/null @@ -1,25 +0,0 @@ -# Python - -Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。 - -## 主要特点 - -- **易于学习**: Python有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单。 - -- **易于阅读**: Python代码定义的更清晰。 - -- **易于维护**: Python的成功在于它的源代码是相当容易维护的。 - -- **一个广泛的标准库**: Python的最大的优势之一是丰富的库,跨平台的,在UNIX,Windows和Macintosh兼容很好。 - -- **互动模式**: 互动模式的支持,您可以从终端输入执行代码并获得结果的语言,互动的测试和调试代码片断。 - -- **可移植**: 基于其开放源代码的特性,Python已经被移植(也就是使其工作)到许多平台。 - -- **可扩展**: 如果你需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,你可以使用C或C++完成那部分程序,然后从你的Python程序中调用。 - -- **数据库**: Python提供所有主要的商业数据库的接口。 - -- **GUI编程**: Python支持GUI可以创建和移植到许多系统调用。 - -- **可嵌入**: 你可以将Python嵌入到C/C++程序,让你的程序的用户获得"脚本化"的能力。 diff --git a/python/README_en.md b/python/README_en.md deleted file mode 100644 index 7e1e01322..000000000 --- a/python/README_en.md +++ /dev/null @@ -1,25 +0,0 @@ -# Python - -Python is a high-level, interpreted, compiled, interactive, and object-oriented scripting language. - -## Main Features - -- **Easy to Learn**: Python has relatively few keywords, a simple structure, and a clearly defined syntax, making it straightforward to learn. - -- **Readable**: Python code is highly readable and easy to understand. - -- **Maintainable**: Python's success lies in its highly maintainable source code. - -- **Extensive Standard Library**: One of Python's biggest strengths is its rich library, which is cross-platform and works well with UNIX, Windows, and macOS. - -- **Interactive Mode**: Python supports an interactive mode that allows you to input and execute code directly from the terminal, making testing and debugging snippets easier. - -- **Portable**: Python is open-source and has been ported to many platforms, enabling it to work seamlessly across various environments. - -- **Extensible**: For performance-critical code or proprietary algorithms, you can write those parts in C or C++ and call them from your Python program. - -- **Database Support**: Python provides interfaces for all major commercial databases. - -- **GUI Programming**: Python supports GUI creation and can be ported to many system calls. - -- **Embeddable**: Python can be embedded into C/C++ programs, giving your application scripting capabilities. \ No newline at end of file diff --git a/python/data.yml b/python/data.yml deleted file mode 100644 index a7ded14a4..000000000 --- a/python/data.yml +++ /dev/null @@ -1,34 +0,0 @@ -name: Python -tags: - - 运行环境 -title: Python 运行环境 -description: Python 运行环境 -additionalProperties: - key: python - name: Python - tags: - - Runtime - shortDescZh: Python 运行环境 - shortDescEn: Python Runtime - description: - en: Python Runtime Environment - ja: Python 実行環境 - ms: Persekitaran Larian Python - pt-br: Ambiente de Execução Python - ru: Среда выполнения Python - ko: Python 런타임 환경 - zh-Hant: Python 執行環境 - zh: Python 运行环境 - type: python - crossVersionUpdate: false - limit: 0 - recommend: 101 - website: https://www.python.org/ - github: "" - document: "" - architectures: - - amd64 - - arm/v7 - - arm64 - - ppc64le - - s390x diff --git a/python/logo.png b/python/logo.png deleted file mode 100644 index 13e4b4fc3..000000000 Binary files a/python/logo.png and /dev/null differ diff --git a/qbittorrent/5.1.0/data.yml b/qbittorrent/5.1.0/data.yml deleted file mode 100644 index 2f7db8481..000000000 --- a/qbittorrent/5.1.0/data.yml +++ /dev/null @@ -1,51 +0,0 @@ -additionalProperties: - formFields: - - default: 8181 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: WebUI Port - labelZh: 网页端口 - label: - en: WebUI Port - ja: WebUI ポート - ms: Port WebUI - pt-br: Porta WebUI - ru: Порт WebUI - ko: WebUI 포트 - zh: 网页端口 - zh-Hant: 網頁埠 - required: true - rule: paramPort - type: number - - default: 48181 - edit: true - envKey: PANEL_TORRENTING_PORT - labelEn: Torrenting port - labelZh: 做种端口 - label: - en: Torrenting port - ja: トレントポート - ms: Port Torrenting - pt-br: Porta de Torrenting - ru: Порт торрентинга - ko: 토렌트 포트 - zh: 做种端口 - zh-Hant: 做種埠 - required: true - type: number - - default: Asia/Shanghai - edit: true - envKey: TIME_ZONE - labelEn: Time zone - labelZh: 时区 - label: - en: Time zone - ja: タイムゾーン - ms: Zon Masa - pt-br: Fuso Horário - ru: Часовой пояс - ko: 시간대 - zh: 时区 - zh-Hant: 時區 - required: true - type: text \ No newline at end of file diff --git a/qbittorrent/5.1.0/docker-compose.yml b/qbittorrent/5.1.0/docker-compose.yml deleted file mode 100644 index c411c13fa..000000000 --- a/qbittorrent/5.1.0/docker-compose.yml +++ /dev/null @@ -1,26 +0,0 @@ -services: - qbittorrent: - image: linuxserver/qbittorrent:5.1.0 - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - environment: - - PUID=1000 - - PGID=1000 - - UMASK_SET=022 - - TZ=${TIME_ZONE} - - WEBUI_PORT=${PANEL_APP_PORT_HTTP} - - TORRENTING_PORT=${PANEL_TORRENTING_PORT} - ports: - - ${PANEL_TORRENTING_PORT}:${PANEL_TORRENTING_PORT} - - ${PANEL_TORRENTING_PORT}:${PANEL_TORRENTING_PORT}/udp - - ${PANEL_APP_PORT_HTTP}:${PANEL_APP_PORT_HTTP} - volumes: - - ./config:/config - - ./data:/downloads - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/qbittorrent/README.md b/qbittorrent/README.md deleted file mode 100644 index b2db739c6..000000000 --- a/qbittorrent/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# 应用初始化: - -- 数据目录:`./data` -- 默认账号:`admin` -- 密码:`临时密码打印到容器日志中` - -> 注意:您必须在设置的 Web UI 部分更改用户名/密码。如果不更改密码,每次启动容器时都会生成一个新密码。 - -# qBittorrent - -**qBittorrent** 是一款免费开源的 BitTorrent 客户端程序,用于下载和分享文件通过 BitTorrent 协议。它提供了一个直观的用户界面,支持多平台,包括 Windows、macOS、Linux、FreeBSD 等操作系统。 - -# 主要特点: - -- **轻量级**: qBittorrent 软件体积小,资源消耗低,运行稳定。 -- **多平台支持**: 用户可以在多个操作系统上使用 qBittorrent,满足不同用户的需求。 -- **功能丰富**: 支持搜索、RSS 订阅、IP 过滤、加密传输等功能,满足用户的多样化需求。 -- **用户友好**: 提供直观的用户界面,使用户能够轻松管理和控制下载任务。 -- **免费开源**: qBittorrent 是免费开源软件,用户可以自由地使用、修改和分发。 \ No newline at end of file diff --git a/qbittorrent/README_en.md b/qbittorrent/README_en.md deleted file mode 100644 index 5df37355c..000000000 --- a/qbittorrent/README_en.md +++ /dev/null @@ -1,20 +0,0 @@ -# Application Initialization: - -- Data Directory: `./data` -- Default Username: `admin` -- Password: `Temporary password is printed to container logs.` - -> Note: You must change the username/password in the Web UI settings. If you do not change the password, a new password will be generated every time the container starts. - -# qBittorrent - -**qBittorrent** is a free and open-source BitTorrent client used for downloading and sharing files via the BitTorrent protocol. It provides an intuitive user interface and supports multiple platforms, including Windows, macOS, Linux, FreeBSD, and others. - -## Key Features: - -- **Lightweight**: qBittorrent is small in size, consumes few resources, and runs stably. -- **Multi-platform Support**: Users can use qBittorrent on multiple operating systems, catering to diverse user needs. -- **Feature-rich**: Supports searching, RSS subscriptions, IP filtering, encrypted transmissions, and more, meeting various user needs. -- **User-Friendly**: Offers an intuitive user interface, allowing users to easily manage and control download tasks. -- **Free and Open Source**: qBittorrent is free and open-source software, allowing users to freely use, modify, and distribute it. - diff --git a/qbittorrent/data.yml b/qbittorrent/data.yml deleted file mode 100644 index 1f5454504..000000000 --- a/qbittorrent/data.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: qBittorrent -tags: - - 实用工具 -title: 跨平台的开源 BitTorrent 客户端 -description: 跨平台的开源 BitTorrent 客户端 -additionalProperties: - key: qbittorrent - name: qBittorrent - tags: - - Tool - shortDescZh: 跨平台的开源 BitTorrent 客户端 - shortDescEn: Cross-platform open source BitTorrent client - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://www.qbittorrent.org/ - github: https://github.com/qbittorrent/qBittorrent - document: http://wiki.qbittorrent.org/ - description: - en: Cross-platform open source BitTorrent client - zh: 跨平台的开源 BitTorrent 客户端 - zh-Hant: 跨平台的開源 BitTorrent 客戶端 - ja: クロスプラットフォームのオープンソース BitTorrent クライアント - ms: Klien BitTorrent sumber terbuka merentas platform - pt-br: Cliente BitTorrent de código aberto multiplataforma - ru: Кроссплатформенный клиент BitTorrent с открытым исходным кодом - ko: 크로스 플랫폼 오픈 소스 BitTorrent 클라이언트 - architectures: - - amd64 - - arm64 diff --git a/qbittorrent/logo.png b/qbittorrent/logo.png deleted file mode 100644 index fb57111b2..000000000 Binary files a/qbittorrent/logo.png and /dev/null differ diff --git a/qiandao/20250129/data.yml b/qiandao/20250129/data.yml deleted file mode 100644 index 10a07a2dc..000000000 --- a/qiandao/20250129/data.yml +++ /dev/null @@ -1,26 +0,0 @@ -additionalProperties: - formFields: - - default: 40022 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number - - default: AESPWD - envKey: AES_PWD - labelEn: AES encryption key - labelZh: AES加密密钥 - random: true - required: true - rule: paramCommon - type: text - - default: CKPWD - envKey: COOKIE_PWD - labelEn: COOKIE encryption key - labelZh: COOKIE加密密钥 - random: true - required: true - rule: paramCommon - type: text \ No newline at end of file diff --git a/qiandao/20250129/docker-compose.yml b/qiandao/20250129/docker-compose.yml deleted file mode 100644 index 2d4632884..000000000 --- a/qiandao/20250129/docker-compose.yml +++ /dev/null @@ -1,149 +0,0 @@ -services: - qiandao: - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTP}:80" - volumes: - - ./data:/usr/src/app/config - environment: - # 监听地址 - # - BIND=0.0.0.0 - # 监听端口 - - PORT=80 - # 是否启用Debug模式 - # - QIANDAO_DEBUG=False - # 任务定时执行方式,默认为Queue,可选Queue或Batch - # - WORKER_METHOD=Queue - # 是否启用多进程模式,Windows平台无效 - # - MULTI_PROCESS=False - # 是否启用自动热加载,MULTI_PROCESS=True时无效 - - AUTO_RELOAD=False - # 发送的邮件链接启用HTTPS,非框架前端使用HTTPS,如果前端需要HTTPS,请使用反向代理 - # - ENABLE_HTTPS=False - # 指定访问域名,建议修改,否则通过邮件重置密码等功能无效 - # - DOMAIN= - # AES加密密钥,强烈建议修改 - - AES_KEY=${AES_PWD} - # cookie加密密钥,强烈建议修改 - - COOKIE_SECRET=${COOKIE_PWD} - # Cookie在客户端中保留的天数 - # - COOKIE_DAY=5 - # 需要使用MySQL时设置为'mysql' - - DB_TYPE=sqlite3 - # 需要使用MySQL时,设置为(mysql://用户名:密码@hostname:port/数据库名?auth_plugin=) - # - JAWSDB_MARIA_URL=mysql://user:pass@localhost:3306/dbname\?auth_plugin= - # 是否启用SQLAlchmey的日志输出,默认为False - # - QIANDAO_SQL_ECHO=False - # SQLAlchmey日志名称,默认为'QD.sql_engine' - # - QIANDAO_SQL_LOGGING_NAME=qiandao.sql - # SQLAlchmey日志级别,默认为'Warning' - # - QIANDAO_SQL_LOGGING_LEVEL=WARNING - # 是否启用SQLAlchmey的连接池日志输出,默认为True - # - QIANDAO_SQL_ECHO_POOL=True - # SQLAlchmey连接池日志名称,默认为'QD.sql_pool' - # - QIANDAO_SQL_LOGGING_POOL_NAME=QD.sql_pool - # SQLAlchmey连接池日志级别,默认为'Warning' - # - QIANDAO_SQL_LOGGING_POOL_LEVEL=Warning - # SQLAlchmey连接池大小,默认为10 - # - QIANDAO_SQL_POOL_SIZE=5 - # SQLAlchmey连接池最大溢出,默认为50 - # - QIANDAO_SQL_MAX_OVERFLOW=10 - # 是否在连接池获取连接前,先ping一下,默认为True - # - QIANDAO_SQL_POOL_PRE_PING=True - # SQLAlchmey连接池回收时间,默认为3600a - # - QIANDAO_SQL_POOL_RECYCLE=3600 - # SQLAlchmey连接池超时时间,默认为60 - # - QIANDAO_SQL_POOL_TIMEOUT=60 - # SQLAlchmey是否使用LIFO算法,默认为True - # - QIANDAO_SQL_POOL_USE_LIFO=True - # 需要使用Redis或RedisCloud时,设置为http://rediscloud:密码@hostname:port - # - REDISCLOUD_URL=http://rediscloud:密码@hostname:port - # 默认为1 - # - REDIS_DB_INDEX=1 - # (限Redis连接已开启)登录用户或IP在1小时内分数=操作失败次数*相应惩罚分值,分数达到evil上限后自动封禁直至下一小时周期 - # - QIANDAO_EVIL=1000 - # 是否关闭本机私有IP地址用户及Localhost_API请求的evil限制 - # - EVIL_PASS_LAN_IP=True - # 是否启用在控制台日志中打印Exception的TraceBack信息 - # - TRACEBACK_PRINT=False - # 默认为push_pic.png - # - PUSH_PIC_URL=https://fastly.jsdelivr.net/gh/qd-today/qd@master/web/static/img/push_pic.png - # 是否允许开启定期推送QD任务日志,默认为True - # - PUSH_BATCH_SW=True - # 邮箱SMTP服务器 - # - MAIL_SMTP='' - # 邮箱SMTP服务器端口 - # - MAIL_PORT=465 - # 邮箱用户名 - # - MAIL_USER='' - # 邮箱密码 - # - MAIL_PASSWORD='' - # 发送时使用的邮箱,默认与MAIL_USER相同 - # - MAIL_FROM=${MAIL_USER} - # 邮箱域名,没啥用,使用的DOMAIN - # - MAIL_DOMAIN=mail.qd.today - # 全局代理域名列表,用"|"分隔 - # - PROXIES='' - # 全局代理黑名单模式,默认不启用 - # "url"为网址匹配模式;"regexp"为正则表达式匹配模式 - # - PROXY_DIRECT_MODE=regexp - # 全局代理黑名单匹配规则 - # - PROXY_DIRECT=(?xi)\A([a-z][a-z0-9+\-.]*://)?(0(.0){3}|127(.0){2}.1|localhost|\[::([\d]+)?\])(:[0-9]+)? - # 是否启用Pycurl模组 - # - USE_PYCURL=True - # 在Pycurl环境下部分请求可能导致Request错误时,自动修改冲突设置并重发请求 - # - ALLOW_RETRY=True - # 通过Curl使用指定DNS进行解析(仅支持Pycurl环境),如8.8.8.8 - # - DNS_SERVER='' - # 是否允许使用Curl进行Encoding操作 - # - CURL_ENCODING=True - # 是否允许Curl使用Headers中自定义Content-Length请求 - # - CURL_CONTENT_LENGTH=True - # 详见配置... - # - NOT_RETRY_CODE=301|302|303|304|305|307|400|401|403|404|405|407|408|409|410|412|415|413|414|500|501|502|503|504|599 - # - EMPTY_RETRY=True - # 第一个注册用户为管理员,False关闭 - - USER0ISADMIN=False - # config目录下自定义ONNX文件名(不填 ".onnx" 后缀),多个onnx文件名用"|"分隔 - # - EXTRA_ONNX_NAME='' - # config目录下自定义ONNX对应自定义charsets.json文件名(不填 ".json" 后缀),多个json文件名用"|"分隔 - # - EXTRA_CHARSETS_NAME='' - # WebSocket ping间隔,单位为秒,默认为5s - # - WS_PING_INTERVAL=5 - # WebSocket ping超时时间,单位为秒,默认为30s - # - WS_PING_TIMEOUT=30 - # WebSocket单次接收最大消息大小,默认为10MB - # - WS_MAX_MESSAGE_SIZE=10485760 - # WebSocket最大消息队列大小,默认为100 - # - WS_MAX_QUEUE_SIZE=100 - # WebSocket公共模板更新页面最大连接数,默认为30 - # - WS_MAX_CONNECTIONS_SUBSCRIBE=30 - # 订阅加速方式或地址,用于加速公共模板更新,仅适用于GitHub - # - SUBSCRIBE_ACCELERATE_URL=jsdelivr_cdn - - GZIP=True - # - QUEUE_NUM=50 - - ACCESS_LOG=True - # - PUSH_BATCH_DELTA=60 - # - QIANDAO_SQL_POOL_LOGGING_NAME=qiandao.sql.pool - # - QIANDAO_SQL_POOL_LOGGING_LEVEL=WARNING - # - QIANDAO_SQL_POOL_TIMEOUT=30 - # - PBKDF2_ITERATIONS=400 - # - CHECK_TASK_LOOP=500 - # - TASK_MAX_RETRY_COUNT=8 - # - DOWNLOAD_SIZE_LIMIT=5242880 - # - REQUEST_TIMEOUT=30.0 - # - CONNECT_TIMEOUT=30.0 - # - DELAY_MAX_TIMEOUT=29.9 - # - UNSAFE_EVAL_TIMEOUT=3.0 - # - NEW_TASK_DELAY=1 - # - MAIL_SSL=True - # - MAILGUN_KEY= - image: a76yyyy/qiandao:20250129 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/qiandao/README.md b/qiandao/README.md deleted file mode 100644 index ab21f7dca..000000000 --- a/qiandao/README.md +++ /dev/null @@ -1,21 +0,0 @@ -## 设置管理员 - -- 1. 注册账户 -- 2. 进入容器执行以下命令 - -```shell -python ./chrole.py your@email.address admin -``` - -> 获得完整管理员权限,需要先退出再登录系统。 - -## QianDao - -QD 是 一个 基于 HAR 编辑器和 Tornado 服务端的 HTTP 定时任务自动执行 Web 框架。 - -## 特性 - -- **基于Har**:仅需上传通过抓包得到的 Har, 即可制作框架所需的 HTTP 任务模板。 -- **Tornado 服务端**:使用 Tornado 作为服务端, 以实现异步响应前端和发起 HTTP 请求。 -- **API & 插件支持**:内置多种 API 和过滤器用于模板制作, 后续将提供自定义插件支持。 -- **开源**:QD 是一个基于 MIT 许可证的开源项目。 \ No newline at end of file diff --git a/qiandao/data.yml b/qiandao/data.yml deleted file mode 100644 index d1c292eba..000000000 --- a/qiandao/data.yml +++ /dev/null @@ -1,24 +0,0 @@ -name: QD -tags: - - 实用工具 -title: HTTP 请求定时任务自动执行框架 -description: HTTP 请求定时任务自动执行框架 -additionalProperties: - key: qiandao - name: QD - tags: - - Tool - shortDescZh: HTTP 请求定时任务自动执行框架 - shortDescEn: An HTTP request timed task automation framework - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://hub.docker.com/r/qdtoday/qd - github: https://github.com/qd-today/qd - document: https://qd-today.github.io/qd/zh_CN/ - architectures: - - arm64 - - amd64 - - arm/v6 - - arm/v7 diff --git a/qiandao/logo.png b/qiandao/logo.png deleted file mode 100644 index 67c2a66c3..000000000 Binary files a/qiandao/logo.png and /dev/null differ diff --git a/qinglong/2.19.1/data.yml b/qinglong/2.19.1/data.yml deleted file mode 100644 index fd57f6bad..000000000 --- a/qinglong/2.19.1/data.yml +++ /dev/null @@ -1,10 +0,0 @@ -additionalProperties: - formFields: - - default: 5700 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: WebUI Port - labelZh: 网页端口 - required: true - rule: paramPort - type: number \ No newline at end of file diff --git a/qinglong/2.19.1/docker-compose.yml b/qinglong/2.19.1/docker-compose.yml deleted file mode 100644 index 3d99f0ee9..000000000 --- a/qinglong/2.19.1/docker-compose.yml +++ /dev/null @@ -1,16 +0,0 @@ -services: - qinglong: - image: whyour/qinglong:2.19.1 - container_name: ${CONTAINER_NAME} - networks: - - 1panel-network - volumes: - - ./data:/ql/data - ports: - - "${PANEL_APP_PORT_HTTP}:5700" - restart: always - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/qinglong/README.md b/qinglong/README.md deleted file mode 100644 index 8c2296885..000000000 --- a/qinglong/README.md +++ /dev/null @@ -1,15 +0,0 @@ -# 青龙 - -支持 Python3、JavaScript、Shell、Typescript 的定时任务管理平台。 - -## 主要功能: - -- **账号管理**:青龙允许用户管理多个账号,包括登录信息、Cookies等,以便执行各种任务。 -- **任务调度**:您可以创建和调度各种任务,例如定时任务、定时签到、抢购任务等。青龙会自动按照您的设定执行任务。 -- **日志记录**:青龙记录所有任务的执行情况,包括成功、失败、错误等信息,方便用户跟踪任务状态和问题排查。 -- **环境配置**:您可以配置任务执行的运行环境,包括Python版本、依赖库、代理设置等,以确保任务的正常运行。 -- **通知功能**:青龙支持多种通知方式,包括Telegram、钉钉、邮件等,可及时通知用户任务执行情况。 -- **扩展性**:青龙支持插件和扩展,用户可以编写自定义插件以满足特定任务需求。 -- **安全性**:青龙提供一定程度的安全性,包括账号信息的加密存储和访问控制,以保护用户数据的安全性。 -- **多平台支持**:青龙可以在不同操作系统上运行,包括Linux和Windows。 -- **社区支持**:拥有庞大的用户社区和开发者社区,提供技术支持和插件开发资源。 \ No newline at end of file diff --git a/qinglong/data.yml b/qinglong/data.yml deleted file mode 100644 index eee00c898..000000000 --- a/qinglong/data.yml +++ /dev/null @@ -1,26 +0,0 @@ -name: 青龙 -tags: - - 实用工具 -title: 定时任务管理平台 -description: 定时任务管理平台 -additionalProperties: - key: qinglong - name: 青龙 - tags: - - Tool - shortDescZh: 定时任务管理平台 - shortDescEn: Scheduled Task Management Platform - type: website - crossVersionUpdate: true - limit: 0 - recommend: 85 - website: https://qinglong.online - github: https://github.com/whyour/qinglong - document: https://qinglong.online/guide/introduction - architectures: - - amd64 - - arm/v6 - - arm/v7 - - arm64 - - ppc64le - - s390x diff --git a/qinglong/logo.png b/qinglong/logo.png deleted file mode 100644 index 81308ade1..000000000 Binary files a/qinglong/logo.png and /dev/null differ diff --git a/rabbitmq/4.1.1-management-alpine/data.yml b/rabbitmq/4.1.1-management-alpine/data.yml deleted file mode 100755 index d48e9ba11..000000000 --- a/rabbitmq/4.1.1-management-alpine/data.yml +++ /dev/null @@ -1,66 +0,0 @@ -additionalProperties: - formFields: - - default: rabbitmq - envKey: RABBITMQ_DEFAULT_USER - labelEn: RabbitMQ User - labelZh: 管理员 - label: - en: RabbitMQ User - ja: RabbitMQ ユーザー - ms: Pengguna RabbitMQ - pt-br: Usuário RabbitMQ - ru: Пользователь RabbitMQ - ko: RabbitMQ 사용자 - zh: 管理员 - zh-Hant: 管理員 - required: true - type: text - - default: rabbitmq - envKey: RABBITMQ_DEFAULT_PASS - labelEn: RabbitMQ User Password - labelZh: 管理员密码 - label: - en: RabbitMQ User Password - ja: RabbitMQ ユーザーパスワード - ms: Kata Laluan Pengguna RabbitMQ - pt-br: Senha do Usuário RabbitMQ - ru: Пароль пользователя RabbitMQ - ko: RabbitMQ 사용자 비밀번호 - zh: 管理员密码 - zh-Hant: 管理員密碼 - required: true - type: text - - default: 15672 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Dashboard Port - labelZh: Dashboard 端口 - label: - en: Dashboard Port - ja: ダッシュボードポート - ms: Port Papan Pemuka - pt-br: Porta do Painel - ru: Порт панели управления - ko: 대시보드 포트 - zh: Dashboard 端口 - zh-Hant: Dashboard 埠 - required: true - rule: paramPort - type: number - - default: 5672 - edit: true - envKey: PANEL_APP_PORT_SERVICE - labelEn: Service Port - labelZh: 服务端口 - label: - en: Service Port - ja: サービスポート - ms: Port Perkhidmatan - pt-br: Porta de Serviço - ru: Порт службы - ko: 서비스 포트 - zh: 服务端口 - zh-Hant: 服務埠 - required: true - rule: paramPort - type: number diff --git a/rabbitmq/4.1.1-management-alpine/docker-compose.yml b/rabbitmq/4.1.1-management-alpine/docker-compose.yml deleted file mode 100644 index 2ddd699a1..000000000 --- a/rabbitmq/4.1.1-management-alpine/docker-compose.yml +++ /dev/null @@ -1,22 +0,0 @@ -services: - rabbitmq: - image: rabbitmq:4.1.1-management-alpine - hostname: rabbitmq - container_name: ${CONTAINER_NAME} - restart: always - ports: - - ${PANEL_APP_PORT_SERVICE}:5672 - - ${PANEL_APP_PORT_HTTP}:15672 - environment: - - RABBITMQ_DEFAULT_USER=${RABBITMQ_DEFAULT_USER} - - RABBITMQ_DEFAULT_PASS=${RABBITMQ_DEFAULT_PASS} - volumes: - - ./data/:/var/lib/rabbitmq/ - - ./log/:/var/log/rabbitmq - networks: - - 1panel-network - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/rabbitmq/README.md b/rabbitmq/README.md deleted file mode 100644 index f16b96711..000000000 --- a/rabbitmq/README.md +++ /dev/null @@ -1,37 +0,0 @@ -# RabbitMQ - -RabbitMQ 是一个开源的消息队列中间件,它提供了强大的消息传递功能,用于分布式应用程序之间的通信。 - -## 主要功能: - -### 消息队列 - -RabbitMQ 允许应用程序在分布式系统中通过消息队列进行异步通信。它可用于解耦生产者和消费者之间的组件,从而提高系统的可伸缩性和灵活性。 - -### 消息路由 - -RabbitMQ 支持多种消息路由模式,包括直接交换、主题交换和扇出交换等,允许消息根据不同的规则被路由到不同的队列中。 - -### 可靠性 - -RabbitMQ 提供了可靠的消息传递机制,确保消息在发送和接收之间不会丢失。它支持消息确认和持久性,以保证消息的可靠性传递。 - -### 延迟队列 - -RabbitMQ 支持延迟队列,允许将消息推送到队列并在指定的延迟时间后再进行处理。这对于实现定时任务和调度非常有用。 - -### 高可用性 - -RabbitMQ 可以配置为具有高可用性,通过镜像队列和集群模式来确保即使出现节点故障也不会丢失消息。 - -### 插件系统 - -RabbitMQ 具有丰富的插件系统,可以扩展其功能,包括管理界面、身份验证和授权插件等。 - -### 多种客户端库 - -RabbitMQ 支持多种编程语言的客户端库,包括Java、Python、Ruby、C#等,使开发者能够轻松地与消息队列进行交互。 - -### 可视化管理界面 - -RabbitMQ 提供了一个易于使用的 Web 管理界面,用于监控队列、交换、连接和节点的状态,以及进行配置和管理操作。 \ No newline at end of file diff --git a/rabbitmq/README_en.md b/rabbitmq/README_en.md deleted file mode 100644 index a1787d8f9..000000000 --- a/rabbitmq/README_en.md +++ /dev/null @@ -1,38 +0,0 @@ -# RabbitMQ - -RabbitMQ is an open-source message broker that provides powerful messaging capabilities for communication between distributed applications. - -## Main Features: - -### Message Queue - -RabbitMQ allows applications to communicate asynchronously through message queues in distributed systems. It can decouple components between producers and consumers, thereby improving system scalability and flexibility. - -### Message Routing - -RabbitMQ supports various message routing patterns, including direct exchange, topic exchange, and fanout exchange, allowing messages to be routed to different queues based on different rules. - -### Reliability - -RabbitMQ provides reliable message delivery mechanisms to ensure messages are not lost between sending and receiving. It supports message acknowledgment and persistence to guarantee reliable message delivery. - -### Delayed Queues - -RabbitMQ supports delayed queues, allowing messages to be pushed to a queue and processed after a specified delay time. This is useful for implementing scheduled tasks and timers. - -### High Availability - -RabbitMQ can be configured for high availability, ensuring messages are not lost even in the event of node failures, through mirrored queues and cluster modes. - -### Plugin System - -RabbitMQ has a rich plugin system that extends its functionality, including management UI, authentication, and authorization plugins. - -### Multiple Client Libraries - -RabbitMQ supports client libraries for various programming languages, including Java, Python, Ruby, C#, and more, making it easy for developers to interact with the message broker. - -### Web Management Interface - -RabbitMQ provides an easy-to-use web management interface for monitoring queues, exchanges, connections, and node status, as well as performing configuration and management operations. - diff --git a/rabbitmq/data.yml b/rabbitmq/data.yml deleted file mode 100755 index 11445f11e..000000000 --- a/rabbitmq/data.yml +++ /dev/null @@ -1,36 +0,0 @@ -name: RabbitMQ -tags: - - 中间件 -title: 功能丰富的多协议消息传递和流媒体代理 -description: 功能丰富的多协议消息传递和流媒体代理 -additionalProperties: - key: rabbitmq - name: RabbitMQ - tags: - - Middleware - shortDescZh: 功能丰富的多协议消息传递和流媒体代理 - shortDescEn: A feature rich, multi-protocol messaging and streaming broker - type: website - crossVersionUpdate: false - limit: 0 - recommend: 0 - website: https://www.rabbitmq.com/ - github: https://github.com/rabbitmq/rabbitmq-server - document: https://www.rabbitmq.com/documentation.html - description: - en: A feature rich, multi-protocol messaging and streaming broker - zh: 功能丰富的多协议消息传递和流媒体代理 - zh-Hant: 功能豐富的多協議消息傳遞和流媒體代理 - ja: 機能豊富なマルチプロトコルメッセージングおよびストリーミングブローカー - ms: Broker pemesejan dan penstriman berbilang protokol yang kaya dengan ciri - pt-br: Um broker de mensagens e streaming com vários protocolos e rico em recursos - ru: Многофункциональный брокер сообщений и потоков с поддержкой нескольких протоколов - ko: 기능이 풍부한 다중 프로토콜 메시징 및 스트리밍 브로커 - memoryRequired: 1024 - architectures: - - amd64 - - arm/v6 - - arm/v7 - - arm64 - - ppc64le - - s390x diff --git a/rabbitmq/logo.png b/rabbitmq/logo.png deleted file mode 100644 index 7933007df..000000000 Binary files a/rabbitmq/logo.png and /dev/null differ diff --git a/reader/3.2.14/data.yml b/reader/3.2.14/data.yml deleted file mode 100644 index 2a8b231f9..000000000 --- a/reader/3.2.14/data.yml +++ /dev/null @@ -1,54 +0,0 @@ -additionalProperties: - formFields: - - default: '4396' - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number - - default: '50' - edit: true - envKey: READER_APP_USERLIMIT - labelEn: User Limit - labelZh: 用户上限 - required: true - type: number - - default: '200' - edit: true - envKey: READER_APP_USERBOOKLIMIT - labelEn: User Book Limit - labelZh: 用户书籍上限 - required: true - type: number - - default: "false" - envKey: READER_APP_SECURE - labelEn: Enable Login Authentication - labelZh: 开启登录鉴权,开启后将支持多用户模式 - required: true - type: select - values: - - label: 开启 - value: "true" - - label: 关闭 - value: "false" - - default: reader - envKey: READER_APP_SECUREKEY - labelEn: Admin Password - labelZh: 管理员密码 - random: true - required: true - rule: paramComplexity - type: password - - default: "true" - envKey: READER_APP_CACHECHAPTERCONTENT - labelEn: Cache Chapter Content - labelZh: 开启缓存章节内容 V2.0 - required: true - type: select - values: - - label: 开启 - value: "true" - - label: 关闭 - value: "false" \ No newline at end of file diff --git a/reader/3.2.14/docker-compose.yml b/reader/3.2.14/docker-compose.yml deleted file mode 100644 index ce575d812..000000000 --- a/reader/3.2.14/docker-compose.yml +++ /dev/null @@ -1,24 +0,0 @@ -services: - reader: - image: hectorqin/reader:3.2.14 - container_name: ${CONTAINER_NAME} - restart: always - ports: - - ${PANEL_APP_PORT_HTTP}:8080 - networks: - - 1panel-network - volumes: - - ./data/logs:/logs - - ./data/storage:/storage - environment: - - SPRING_PROFILES_ACTIVE=prod - - READER_APP_USERLIMIT=${READER_APP_USERLIMIT} - - READER_APP_USERBOOKLIMIT=${READER_APP_USERBOOKLIMIT} - - READER_APP_CACHECHAPTERCONTENT=${READER_APP_CACHECHAPTERCONTENT} - - READER_APP_SECURE=${READER_APP_SECURE:-FALSE} - - READER_APP_SECUREKEY=${READER_APP_SECUREKEY} - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/reader/README.md b/reader/README.md deleted file mode 100644 index b51d3f4f1..000000000 --- a/reader/README.md +++ /dev/null @@ -1,36 +0,0 @@ -# reader - -**阅读是一款提供网络文学搜索的工具,为广大网络文学爱好者提供一种方便、快捷舒适的试读体验。** - -当您搜索一本书的时,阅读会将该书的书名以关键词的形式提交到各个第三方网络文学网站。 -各第三方网站返回的内容与阅读无关,阅读对其概不负责,亦不承担任何法律责任。 -任何通过使用阅读而链接到的第三方网页均系他人制作或提供,您可能从第三方网页上获得其他服务,阅读对其合法性概不负责,亦不承担任何法律责任。 -第三方搜索引擎结果根据您提交的书名自动搜索获得并提供试读,不代表阅读赞成或被搜索链接到的第三方网页上的内容或立场。您应该对使用搜索引擎的结果自行承担风险。 - -## 主要功能: - -- 书架管理 -- 书架布局 -- 搜索 -- 书海 -- 看书 -- 移动端适配 -- 换源 -- 翻页方式 -- 手势支持 -- 自定义主题 -- 自定义样式 -- WebDAV同步 -- 文字替换过滤 -- 听书<仅部分浏览器支持,手机端会因为锁屏而失效> -- 用户配置备份恢复 -- 支持漫画 -- 支持音频 -- 书源失效检测 -- 导入本地TXT、EPUB、UMD、PDF格式的书籍 -- 书籍分组 -- RSS订阅 -- 定时更新书架 -- 并发搜书 -- 本地书仓 -- 支持kindle阅读 diff --git a/reader/data.yml b/reader/data.yml deleted file mode 100644 index 83c56ec57..000000000 --- a/reader/data.yml +++ /dev/null @@ -1,26 +0,0 @@ -name: reader -tags: - - 实用工具 -title: 阅读3服务器版 -description: 阅读3服务器版 -additionalProperties: - key: reader - name: reader - tags: - - Tool - shortDescZh: 阅读3服务器版 - shortDescEn: Read 3 Server Edition - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://github.com/hectorqin/reader - github: https://github.com/hectorqin/reader - document: https://github.com/hectorqin/reader/blob/master/doc.md - architectures: - - amd64 - - arm64 - - arm/v6 - - arm/v7 - - ppc64le - - s390x diff --git a/reader/logo.png b/reader/logo.png deleted file mode 100644 index 930f00a9a..000000000 Binary files a/reader/logo.png and /dev/null differ diff --git a/redis-commander/README.md b/redis-commander/README.md deleted file mode 100644 index c5d154c30..000000000 --- a/redis-commander/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Redis Commander - -Redis Commander 是一个用于管理和监控 Redis 数据库的图形用户界面工具。它提供了许多功能,以简化 Redis 数据库的操作和维护。 - -## 主要功能: - -- **多数据库支持**:Redis Commander 允许您管理多个 Redis 数据库实例,轻松切换并执行操作。 -- **数据浏览和编辑**:通过 Redis Commander,您可以浏览 Redis 数据库中的键值对,并可以直接在界面上编辑数据,包括字符串、哈希表、列表、集合和有序集合等。 -- **键值搜索**:快速搜索 Redis 键,以找到特定的数据项。 -- **数据导入和导出**:支持将数据从 Redis 导入到文件,并能够将文件中的数据导入到 Redis 中。 -- **实时监控**:Redis Commander 提供了有关 Redis 服务器性能的实时监控信息,包括内存使用、命令执行情况、连接数等。 -- **自定义命令执行**:您可以在 Redis Commander 中执行自定义的 Redis 命令,以执行高级操作和查询。 -- **数据备份和恢复**:轻松创建 Redis 数据库的备份,并在需要时进行恢复。 -- **权限管理**:根据需要设置访问权限和用户身份验证,以确保 Redis 数据库的安全性。 -- **历史记录**:Redis Commander 会记录您的操作历史,以便您可以轻松地查看和重复以前的命令。 -- **可视化界面**:具有直观的用户界面,使操作和监控 Redis 数据库变得更加容易。 \ No newline at end of file diff --git a/redis-commander/README_en.md b/redis-commander/README_en.md deleted file mode 100644 index 288cafe09..000000000 --- a/redis-commander/README_en.md +++ /dev/null @@ -1,14 +0,0 @@ -# Redis Commander -Redis Commander is a graphical user interface tool for managing and monitoring Redis databases. It provides numerous features to simplify the operation and maintenance of Redis databases. - -## Key Features: -- **Multi-Database Support**: Manage multiple Redis database instances, easily switch between them, and perform operations. -- **Data Browsing and Editing**: Browse key-value pairs in Redis databases and directly edit data in the interface, including strings, hash tables, lists, sets, and sorted sets. -- **Key Search**: Quickly search for Redis keys to locate specific data items. -- **Data Import and Export**: Import data from Redis to a file and import data from a file into Redis. -- **Real-Time Monitoring**: Provides real-time monitoring information about Redis server performance, including memory usage, command execution, connection count, and more. -- **Custom Command Execution**: Execute custom Redis commands within Redis Commander for advanced operations and queries. -- **Data Backup and Restore**: Easily create backups of Redis databases and restore them when needed. -- **Access Control**: Configure access permissions and user authentication to ensure the security of Redis databases. -- **History Tracking**: Redis Commander records your operation history, allowing you to easily view and repeat previous commands. -- **Visual Interface**: Features an intuitive user interface, making it easier to operate and monitor Redis databases. \ No newline at end of file diff --git a/redis-commander/data.yml b/redis-commander/data.yml deleted file mode 100755 index fbaa4f027..000000000 --- a/redis-commander/data.yml +++ /dev/null @@ -1,30 +0,0 @@ -name: Redis-Commander -tags: - - 开发工具 -title: Redis Web 管理工具 -description: Redis Web 管理工具 -additionalProperties: - key: redis-commander - name: Redis-Commander - tags: - - DevTool - shortDescZh: Redis Web 管理工具 - shortDescEn: Redis web management tool - type: website - crossVersionUpdate: true - limit: 1 - recommend: 0 - website: http://joeferner.github.io/redis-commander/ - github: https://github.com/joeferner/redis-commander - document: https://github.com/joeferner/redis-commander/blob/master/docs/configuration.md - description: - en: Redis web management tool - zh: Redis Web 管理工具 - zh-Hant: Redis Web 管理工具 - ja: Redis Web 管理ツール - ms: Alat pengurusan web Redis - pt-br: Ferramenta de gerenciamento web do Redis - ru: Веб-инструмент управления Redis - ko: Redis 웹 관리 도구 - architectures: - - amd64 \ No newline at end of file diff --git a/redis-commander/latest/data.yml b/redis-commander/latest/data.yml deleted file mode 100755 index 819887b0b..000000000 --- a/redis-commander/latest/data.yml +++ /dev/null @@ -1,134 +0,0 @@ -additionalProperties: - formFields: - - default: "" - envKey: PANEL_DB_HOST - key: redis - labelEn: Redis Service - labelZh: Redis 服务 - label: - en: Redis Service - ja: Redis サービス - ms: Perkhidmatan Redis - pt-br: Serviço Redis - ru: Сервис Redis - ko: Redis 서비스 - zh: Redis 服务 - zh-Hant: Redis 服務 - required: true - type: service - - default: "" - envKey: PANEL_REDIS_ROOT_PASSWORD - labelEn: Redis Password - labelZh: Redis 密码 - label: - en: Redis Password - ja: Redis パスワード - ms: Kata Laluan Redis - pt-br: Senha Redis - ru: Пароль Redis - ko: Redis 비밀번호 - zh: Redis 密码 - zh-Hant: Redis 密碼 - required: true - type: password - - default: "0" - edit: true - envKey: REDIS_DB - labelEn: Database - labelZh: 数据库 - label: - en: Database - ja: データベース - ms: Pangkalan Data - pt-br: Banco de Dados - ru: База данных - ko: 데이터베이스 - zh: 数据库 - zh-Hant: 數據庫 - required: true - type: select - values: - - label: db0 - value: "0" - - label: db1 - value: "1" - - label: db2 - value: "2" - - label: db3 - value: "3" - - label: db4 - value: "4" - - label: db5 - value: "5" - - label: db6 - value: "6" - - label: db7 - value: "7" - - label: db8 - value: "8" - - label: db9 - value: "9" - - label: db10 - value: "10" - - label: db11 - value: "11" - - label: db12 - value: "12" - - label: db13 - value: "13" - - label: db14 - value: "14" - - label: db15 - value: "15" - - default: root - edit: true - envKey: COMMANDER_ADMIN - labelEn: Username - labelZh: 登录用户名 - label: - en: Username - ja: ユーザー名 - ms: Nama Pengguna - pt-br: Nome de Usuário - ru: Имя пользователя - ko: 사용자 이름 - zh: 登录用户名 - zh-Hant: 登錄用戶名 - random: true - required: true - rule: paramCommon - type: text - - default: P@ssword@redis - edit: true - envKey: COMMANDER_PASSWORD - labelEn: Password - labelZh: 登录密码 - label: - en: Password - ja: パスワード - ms: Kata Laluan - pt-br: Senha - ru: Пароль - ko: 비밀번호 - zh: 登录密码 - zh-Hant: 登錄密碼 - random: true - required: true - type: text - - default: 8089 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh: 端口 - zh-Hant: 埠 - required: true - rule: paramPort - type: number diff --git a/redis-commander/latest/docker-compose.yml b/redis-commander/latest/docker-compose.yml deleted file mode 100644 index 866cc2d7c..000000000 --- a/redis-commander/latest/docker-compose.yml +++ /dev/null @@ -1,19 +0,0 @@ -services: - redis-commander-XnlR: - container_name: ${CONTAINER_NAME} - environment: - - REDIS_HOSTS=1panel:${PANEL_DB_HOST}:6379:${REDIS_DB}:${PANEL_REDIS_ROOT_PASSWORD} - - HTTP_USER=${COMMANDER_ADMIN} - - HTTP_PASSWORD=${COMMANDER_PASSWORD} - hostname: redis-commander - image: rediscommander/redis-commander:latest - labels: - createdBy: "Apps" - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_HTTP}:8081 - restart: always -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/redis-commander/logo.png b/redis-commander/logo.png deleted file mode 100644 index 2e724d264..000000000 Binary files a/redis-commander/logo.png and /dev/null differ diff --git a/redis/6.2.18/conf/redis.conf b/redis/6.2.18/conf/redis.conf deleted file mode 100644 index d49c89a46..000000000 --- a/redis/6.2.18/conf/redis.conf +++ /dev/null @@ -1,1881 +0,0 @@ -# Redis configuration file example. -# -# Note that in order to read the configuration file, Redis must be -# started with the file path as first argument: -# -# ./redis-server /path/to/redis.conf - -# Note on units: when memory size is needed, it is possible to specify -# it in the usual form of 1k 5GB 4M and so forth: -# -# 1k => 1000 bytes -# 1kb => 1024 bytes -# 1m => 1000000 bytes -# 1mb => 1024*1024 bytes -# 1g => 1000000000 bytes -# 1gb => 1024*1024*1024 bytes -# -# units are case insensitive so 1GB 1Gb 1gB are all the same. - -################################## INCLUDES ################################### - -# Include one or more other config files here. This is useful if you -# have a standard template that goes to all Redis servers but also need -# to customize a few per-server settings. Include files can include -# other files, so use this wisely. -# -# Note that option "include" won't be rewritten by command "CONFIG REWRITE" -# from admin or Redis Sentinel. Since Redis always uses the last processed -# line as value of a configuration directive, you'd better put includes -# at the beginning of this file to avoid overwriting config change at runtime. -# -# If instead you are interested in using includes to override configuration -# options, it is better to use include as the last line. -# -# include /path/to/local.conf -# include /path/to/other.conf - -################################## MODULES ##################################### - -# Load modules at startup. If the server is not able to load modules -# it will abort. It is possible to use multiple loadmodule directives. -# -# loadmodule /path/to/my_module.so -# loadmodule /path/to/other_module.so - -################################## NETWORK ##################################### - -# By default, if no "bind" configuration directive is specified, Redis listens -# for connections from all available network interfaces on the host machine. -# It is possible to listen to just one or multiple selected interfaces using -# the "bind" configuration directive, followed by one or more IP addresses. -# -# Examples: -# -# bind 192.168.1.100 10.0.0.1 -# bind 127.0.0.1 ::1 -# -# ~~~ WARNING ~~~ If the computer running Redis is directly exposed to the -# internet, binding to all the interfaces is dangerous and will expose the -# instance to everybody on the internet. So by default we uncomment the -# following bind directive, that will force Redis to listen only on the -# IPv4 loopback interface address (this means Redis will only be able to -# accept client connections from the same host that it is running on). -# -# IF YOU ARE SURE YOU WANT YOUR INSTANCE TO LISTEN TO ALL THE INTERFACES -# JUST COMMENT OUT THE FOLLOWING LINE. -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -bind 0.0.0.0 - -# Protected mode is a layer of security protection, in order to avoid that -# Redis instances left open on the internet are accessed and exploited. -# -# When protected mode is on and if: -# -# 1) The server is not binding explicitly to a set of addresses using the -# "bind" directive. -# 2) No password is configured. -# -# The server only accepts connections from clients connecting from the -# IPv4 and IPv6 loopback addresses 127.0.0.1 and ::1, and from Unix domain -# sockets. -# -# By default protected mode is enabled. You should disable it only if -# you are sure you want clients from other hosts to connect to Redis -# even if no authentication is configured, nor a specific set of interfaces -# are explicitly listed using the "bind" directive. -protected-mode yes - -# Accept connections on the specified port, default is 6379 (IANA #815344). -# If port 0 is specified Redis will not listen on a TCP socket. -port 6379 - -# TCP listen() backlog. -# -# In high requests-per-second environments you need a high backlog in order -# to avoid slow clients connection issues. Note that the Linux kernel -# will silently truncate it to the value of /proc/sys/net/core/somaxconn so -# make sure to raise both the value of somaxconn and tcp_max_syn_backlog -# in order to get the desired effect. -tcp-backlog 511 - -# Unix socket. -# -# Specify the path for the Unix socket that will be used to listen for -# incoming connections. There is no default, so Redis will not listen -# on a unix socket when not specified. -# -# unixsocket /tmp/redis.sock -# unixsocketperm 700 - -# Close the connection after a client is idle for N seconds (0 to disable) -timeout 0 - -# TCP keepalive. -# -# If non-zero, use SO_KEEPALIVE to send TCP ACKs to clients in absence -# of communication. This is useful for two reasons: -# -# 1) Detect dead peers. -# 2) Force network equipment in the middle to consider the connection to be -# alive. -# -# On Linux, the specified value (in seconds) is the period used to send ACKs. -# Note that to close the connection the double of the time is needed. -# On other kernels the period depends on the kernel configuration. -# -# A reasonable value for this option is 300 seconds, which is the new -# Redis default starting with Redis 3.2.1. -tcp-keepalive 300 - -################################# TLS/SSL ##################################### - -# By default, TLS/SSL is disabled. To enable it, the "tls-port" configuration -# directive can be used to define TLS-listening ports. To enable TLS on the -# default port, use: -# -# port 0 -# tls-port 6379 - -# Configure a X.509 certificate and private key to use for authenticating the -# server to connected clients, masters or cluster peers. These files should be -# PEM formatted. -# -# tls-cert-file redis.crt -# tls-key-file redis.key - -# Configure a DH parameters file to enable Diffie-Hellman (DH) key exchange: -# -# tls-dh-params-file redis.dh - -# Configure a CA certificate(s) bundle or directory to authenticate TLS/SSL -# clients and peers. Redis requires an explicit configuration of at least one -# of these, and will not implicitly use the system wide configuration. -# -# tls-ca-cert-file ca.crt -# tls-ca-cert-dir /etc/ssl/certs - -# By default, clients (including replica servers) on a TLS port are required -# to authenticate using valid client side certificates. -# -# If "no" is specified, client certificates are not required and not accepted. -# If "optional" is specified, client certificates are accepted and must be -# valid if provided, but are not required. -# -# tls-auth-clients no -# tls-auth-clients optional - -# By default, a Redis replica does not attempt to establish a TLS connection -# with its master. -# -# Use the following directive to enable TLS on replication links. -# -# tls-replication yes - -# By default, the Redis Cluster bus uses a plain TCP connection. To enable -# TLS for the bus protocol, use the following directive: -# -# tls-cluster yes - -# Explicitly specify TLS versions to support. Allowed values are case insensitive -# and include "TLSv1", "TLSv1.1", "TLSv1.2", "TLSv1.3" (OpenSSL >= 1.1.1) or -# any combination. To enable only TLSv1.2 and TLSv1.3, use: -# -# tls-protocols "TLSv1.2 TLSv1.3" - -# Configure allowed ciphers. See the ciphers(1ssl) manpage for more information -# about the syntax of this string. -# -# Note: this configuration applies only to <= TLSv1.2. -# -# tls-ciphers DEFAULT:!MEDIUM - -# Configure allowed TLSv1.3 ciphersuites. See the ciphers(1ssl) manpage for more -# information about the syntax of this string, and specifically for TLSv1.3 -# ciphersuites. -# -# tls-ciphersuites TLS_CHACHA20_POLY1305_SHA256 - -# When choosing a cipher, use the server's preference instead of the client -# preference. By default, the server follows the client's preference. -# -# tls-prefer-server-ciphers yes - -# By default, TLS session caching is enabled to allow faster and less expensive -# reconnections by clients that support it. Use the following directive to disable -# caching. -# -# tls-session-caching no - -# Change the default number of TLS sessions cached. A zero value sets the cache -# to unlimited size. The default size is 20480. -# -# tls-session-cache-size 5000 - -# Change the default timeout of cached TLS sessions. The default timeout is 300 -# seconds. -# -# tls-session-cache-timeout 60 - -################################# GENERAL ##################################### - -# By default Redis does not run as a daemon. Use 'yes' if you need it. -# Note that Redis will write a pid file in /var/run/redis.pid when daemonized. -daemonize no - -# If you run Redis from upstart or systemd, Redis can interact with your -# supervision tree. Options: -# supervised no - no supervision interaction -# supervised upstart - signal upstart by putting Redis into SIGSTOP mode -# requires "expect stop" in your upstart job config -# supervised systemd - signal systemd by writing READY=1 to $NOTIFY_SOCKET -# supervised auto - detect upstart or systemd method based on -# UPSTART_JOB or NOTIFY_SOCKET environment variables -# Note: these supervision methods only signal "process is ready." -# They do not enable continuous pings back to your supervisor. -supervised no - -# If a pid file is specified, Redis writes it where specified at startup -# and removes it at exit. -# -# When the server runs non daemonized, no pid file is created if none is -# specified in the configuration. When the server is daemonized, the pid file -# is used even if not specified, defaulting to "/var/run/redis.pid". -# -# Creating a pid file is best effort: if Redis is not able to create it -# nothing bad happens, the server will start and run normally. -pidfile /var/run/redis_6379.pid - -# Specify the server verbosity level. -# This can be one of: -# debug (a lot of information, useful for development/testing) -# verbose (many rarely useful info, but not a mess like the debug level) -# notice (moderately verbose, what you want in production probably) -# warning (only very important / critical messages are logged) -loglevel notice - -# Specify the log file name. Also the empty string can be used to force -# Redis to log on the standard output. Note that if you use standard -# output for logging but daemonize, logs will be sent to /dev/null -logfile "" - -# To enable logging to the system logger, just set 'syslog-enabled' to yes, -# and optionally update the other syslog parameters to suit your needs. -# syslog-enabled no - -# Specify the syslog identity. -# syslog-ident redis - -# Specify the syslog facility. Must be USER or between LOCAL0-LOCAL7. -# syslog-facility local0 - -# Set the number of databases. The default database is DB 0, you can select -# a different one on a per-connection basis using SELECT where -# dbid is a number between 0 and 'databases'-1 -databases 16 - -# By default Redis shows an ASCII art logo only when started to log to the -# standard output and if the standard output is a TTY. Basically this means -# that normally a logo is displayed only in interactive sessions. -# -# However it is possible to force the pre-4.0 behavior and always show a -# ASCII art logo in startup logs by setting the following option to yes. -always-show-logo yes - -################################ SNAPSHOTTING ################################ -# -# Save the DB on disk: -# -# save -# -# Will save the DB if both the given number of seconds and the given -# number of write operations against the DB occurred. -# -# In the example below the behavior will be to save: -# after 900 sec (15 min) if at least 1 key changed -# after 300 sec (5 min) if at least 10 keys changed -# after 60 sec if at least 10000 keys changed -# -# Note: you can disable saving completely by commenting out all "save" lines. -# -# It is also possible to remove all the previously configured save -# points by adding a save directive with a single empty string argument -# like in the following example: -# -# save "" - -save 900 1 -save 300 10 -save 60 10000 - -# By default Redis will stop accepting writes if RDB snapshots are enabled -# (at least one save point) and the latest background save failed. -# This will make the user aware (in a hard way) that data is not persisting -# on disk properly, otherwise chances are that no one will notice and some -# disaster will happen. -# -# If the background saving process will start working again Redis will -# automatically allow writes again. -# -# However if you have setup your proper monitoring of the Redis server -# and persistence, you may want to disable this feature so that Redis will -# continue to work as usual even if there are problems with disk, -# permissions, and so forth. -stop-writes-on-bgsave-error yes - -# Compress string objects using LZF when dump .rdb databases? -# By default compression is enabled as it's almost always a win. -# If you want to save some CPU in the saving child set it to 'no' but -# the dataset will likely be bigger if you have compressible values or keys. -rdbcompression yes - -# Since version 5 of RDB a CRC64 checksum is placed at the end of the file. -# This makes the format more resistant to corruption but there is a performance -# hit to pay (around 10%) when saving and loading RDB files, so you can disable it -# for maximum performances. -# -# RDB files created with checksum disabled have a checksum of zero that will -# tell the loading code to skip the check. -rdbchecksum yes - -# The filename where to dump the DB -dbfilename dump.rdb - -# Remove RDB files used by replication in instances without persistence -# enabled. By default this option is disabled, however there are environments -# where for regulations or other security concerns, RDB files persisted on -# disk by masters in order to feed replicas, or stored on disk by replicas -# in order to load them for the initial synchronization, should be deleted -# ASAP. Note that this option ONLY WORKS in instances that have both AOF -# and RDB persistence disabled, otherwise is completely ignored. -# -# An alternative (and sometimes better) way to obtain the same effect is -# to use diskless replication on both master and replicas instances. However -# in the case of replicas, diskless is not always an option. -rdb-del-sync-files no - -# The working directory. -# -# The DB will be written inside this directory, with the filename specified -# above using the 'dbfilename' configuration directive. -# -# The Append Only File will also be created inside this directory. -# -# Note that you must specify a directory here, not a file name. -dir ./ - -################################# REPLICATION ################################# - -# Master-Replica replication. Use replicaof to make a Redis instance a copy of -# another Redis server. A few things to understand ASAP about Redis replication. -# -# +------------------+ +---------------+ -# | Master | ---> | Replica | -# | (receive writes) | | (exact copy) | -# +------------------+ +---------------+ -# -# 1) Redis replication is asynchronous, but you can configure a master to -# stop accepting writes if it appears to be not connected with at least -# a given number of replicas. -# 2) Redis replicas are able to perform a partial resynchronization with the -# master if the replication link is lost for a relatively small amount of -# time. You may want to configure the replication backlog size (see the next -# sections of this file) with a sensible value depending on your needs. -# 3) Replication is automatic and does not need user intervention. After a -# network partition replicas automatically try to reconnect to masters -# and resynchronize with them. -# -# replicaof - -# If the master is password protected (using the "requirepass" configuration -# directive below) it is possible to tell the replica to authenticate before -# starting the replication synchronization process, otherwise the master will -# refuse the replica request. -# -# masterauth -# -# However this is not enough if you are using Redis ACLs (for Redis version -# 6 or greater), and the default user is not capable of running the PSYNC -# command and/or other commands needed for replication. In this case it's -# better to configure a special user to use with replication, and specify the -# masteruser configuration as such: -# -# masteruser -# -# When masteruser is specified, the replica will authenticate against its -# master using the new AUTH form: AUTH . - -# When a replica loses its connection with the master, or when the replication -# is still in progress, the replica can act in two different ways: -# -# 1) if replica-serve-stale-data is set to 'yes' (the default) the replica will -# still reply to client requests, possibly with out of date data, or the -# data set may just be empty if this is the first synchronization. -# -# 2) If replica-serve-stale-data is set to 'no' the replica will reply with -# an error "SYNC with master in progress" to all commands except: -# INFO, REPLICAOF, AUTH, PING, SHUTDOWN, REPLCONF, ROLE, CONFIG, SUBSCRIBE, -# UNSUBSCRIBE, PSUBSCRIBE, PUNSUBSCRIBE, PUBLISH, PUBSUB, COMMAND, POST, -# HOST and LATENCY. -# -replica-serve-stale-data yes - -# You can configure a replica instance to accept writes or not. Writing against -# a replica instance may be useful to store some ephemeral data (because data -# written on a replica will be easily deleted after resync with the master) but -# may also cause problems if clients are writing to it because of a -# misconfiguration. -# -# Since Redis 2.6 by default replicas are read-only. -# -# Note: read only replicas are not designed to be exposed to untrusted clients -# on the internet. It's just a protection layer against misuse of the instance. -# Still a read only replica exports by default all the administrative commands -# such as CONFIG, DEBUG, and so forth. To a limited extent you can improve -# security of read only replicas using 'rename-command' to shadow all the -# administrative / dangerous commands. -replica-read-only yes - -# Replication SYNC strategy: disk or socket. -# -# New replicas and reconnecting replicas that are not able to continue the -# replication process just receiving differences, need to do what is called a -# "full synchronization". An RDB file is transmitted from the master to the -# replicas. -# -# The transmission can happen in two different ways: -# -# 1) Disk-backed: The Redis master creates a new process that writes the RDB -# file on disk. Later the file is transferred by the parent -# process to the replicas incrementally. -# 2) Diskless: The Redis master creates a new process that directly writes the -# RDB file to replica sockets, without touching the disk at all. -# -# With disk-backed replication, while the RDB file is generated, more replicas -# can be queued and served with the RDB file as soon as the current child -# producing the RDB file finishes its work. With diskless replication instead -# once the transfer starts, new replicas arriving will be queued and a new -# transfer will start when the current one terminates. -# -# When diskless replication is used, the master waits a configurable amount of -# time (in seconds) before starting the transfer in the hope that multiple -# replicas will arrive and the transfer can be parallelized. -# -# With slow disks and fast (large bandwidth) networks, diskless replication -# works better. -repl-diskless-sync no - -# When diskless replication is enabled, it is possible to configure the delay -# the server waits in order to spawn the child that transfers the RDB via socket -# to the replicas. -# -# This is important since once the transfer starts, it is not possible to serve -# new replicas arriving, that will be queued for the next RDB transfer, so the -# server waits a delay in order to let more replicas arrive. -# -# The delay is specified in seconds, and by default is 5 seconds. To disable -# it entirely just set it to 0 seconds and the transfer will start ASAP. -repl-diskless-sync-delay 5 - -# ----------------------------------------------------------------------------- -# WARNING: RDB diskless load is experimental. Since in this setup the replica -# does not immediately store an RDB on disk, it may cause data loss during -# failovers. RDB diskless load + Redis modules not handling I/O reads may also -# cause Redis to abort in case of I/O errors during the initial synchronization -# stage with the master. Use only if your do what you are doing. -# ----------------------------------------------------------------------------- -# -# Replica can load the RDB it reads from the replication link directly from the -# socket, or store the RDB to a file and read that file after it was completely -# received from the master. -# -# In many cases the disk is slower than the network, and storing and loading -# the RDB file may increase replication time (and even increase the master's -# Copy on Write memory and salve buffers). -# However, parsing the RDB file directly from the socket may mean that we have -# to flush the contents of the current database before the full rdb was -# received. For this reason we have the following options: -# -# "disabled" - Don't use diskless load (store the rdb file to the disk first) -# "on-empty-db" - Use diskless load only when it is completely safe. -# "swapdb" - Keep a copy of the current db contents in RAM while parsing -# the data directly from the socket. note that this requires -# sufficient memory, if you don't have it, you risk an OOM kill. -repl-diskless-load disabled - -# Replicas send PINGs to server in a predefined interval. It's possible to -# change this interval with the repl_ping_replica_period option. The default -# value is 10 seconds. -# -# repl-ping-replica-period 10 - -# The following option sets the replication timeout for: -# -# 1) Bulk transfer I/O during SYNC, from the point of view of replica. -# 2) Master timeout from the point of view of replicas (data, pings). -# 3) Replica timeout from the point of view of masters (REPLCONF ACK pings). -# -# It is important to make sure that this value is greater than the value -# specified for repl-ping-replica-period otherwise a timeout will be detected -# every time there is low traffic between the master and the replica. The default -# value is 60 seconds. -# -# repl-timeout 60 - -# Disable TCP_NODELAY on the replica socket after SYNC? -# -# If you select "yes" Redis will use a smaller number of TCP packets and -# less bandwidth to send data to replicas. But this can add a delay for -# the data to appear on the replica side, up to 40 milliseconds with -# Linux kernels using a default configuration. -# -# If you select "no" the delay for data to appear on the replica side will -# be reduced but more bandwidth will be used for replication. -# -# By default we optimize for low latency, but in very high traffic conditions -# or when the master and replicas are many hops away, turning this to "yes" may -# be a good idea. -repl-disable-tcp-nodelay no - -# Set the replication backlog size. The backlog is a buffer that accumulates -# replica data when replicas are disconnected for some time, so that when a -# replica wants to reconnect again, often a full resync is not needed, but a -# partial resync is enough, just passing the portion of data the replica -# missed while disconnected. -# -# The bigger the replication backlog, the longer the replica can endure the -# disconnect and later be able to perform a partial resynchronization. -# -# The backlog is only allocated if there is at least one replica connected. -# -# repl-backlog-size 1mb - -# After a master has no connected replicas for some time, the backlog will be -# freed. The following option configures the amount of seconds that need to -# elapse, starting from the time the last replica disconnected, for the backlog -# buffer to be freed. -# -# Note that replicas never free the backlog for timeout, since they may be -# promoted to masters later, and should be able to correctly "partially -# resynchronize" with other replicas: hence they should always accumulate backlog. -# -# A value of 0 means to never release the backlog. -# -# repl-backlog-ttl 3600 - -# The replica priority is an integer number published by Redis in the INFO -# output. It is used by Redis Sentinel in order to select a replica to promote -# into a master if the master is no longer working correctly. -# -# A replica with a low priority number is considered better for promotion, so -# for instance if there are three replicas with priority 10, 100, 25 Sentinel -# will pick the one with priority 10, that is the lowest. -# -# However a special priority of 0 marks the replica as not able to perform the -# role of master, so a replica with priority of 0 will never be selected by -# Redis Sentinel for promotion. -# -# By default the priority is 100. -replica-priority 100 - -# It is possible for a master to stop accepting writes if there are less than -# N replicas connected, having a lag less or equal than M seconds. -# -# The N replicas need to be in "online" state. -# -# The lag in seconds, that must be <= the specified value, is calculated from -# the last ping received from the replica, that is usually sent every second. -# -# This option does not GUARANTEE that N replicas will accept the write, but -# will limit the window of exposure for lost writes in case not enough replicas -# are available, to the specified number of seconds. -# -# For example to require at least 3 replicas with a lag <= 10 seconds use: -# -# min-replicas-to-write 3 -# min-replicas-max-lag 10 -# -# Setting one or the other to 0 disables the feature. -# -# By default min-replicas-to-write is set to 0 (feature disabled) and -# min-replicas-max-lag is set to 10. - -# A Redis master is able to list the address and port of the attached -# replicas in different ways. For example the "INFO replication" section -# offers this information, which is used, among other tools, by -# Redis Sentinel in order to discover replica instances. -# Another place where this info is available is in the output of the -# "ROLE" command of a master. -# -# The listed IP address and port normally reported by a replica is -# obtained in the following way: -# -# IP: The address is auto detected by checking the peer address -# of the socket used by the replica to connect with the master. -# -# Port: The port is communicated by the replica during the replication -# handshake, and is normally the port that the replica is using to -# listen for connections. -# -# However when port forwarding or Network Address Translation (NAT) is -# used, the replica may actually be reachable via different IP and port -# pairs. The following two options can be used by a replica in order to -# report to its master a specific set of IP and port, so that both INFO -# and ROLE will report those values. -# -# There is no need to use both the options if you need to override just -# the port or the IP address. -# -# replica-announce-ip 5.5.5.5 -# replica-announce-port 1234 - -############################### KEYS TRACKING ################################# - -# Redis implements server assisted support for client side caching of values. -# This is implemented using an invalidation table that remembers, using -# 16 millions of slots, what clients may have certain subsets of keys. In turn -# this is used in order to send invalidation messages to clients. Please -# check this page to understand more about the feature: -# -# https://redis.io/topics/client-side-caching -# -# When tracking is enabled for a client, all the read only queries are assumed -# to be cached: this will force Redis to store information in the invalidation -# table. When keys are modified, such information is flushed away, and -# invalidation messages are sent to the clients. However if the workload is -# heavily dominated by reads, Redis could use more and more memory in order -# to track the keys fetched by many clients. -# -# For this reason it is possible to configure a maximum fill value for the -# invalidation table. By default it is set to 1M of keys, and once this limit -# is reached, Redis will start to evict keys in the invalidation table -# even if they were not modified, just to reclaim memory: this will in turn -# force the clients to invalidate the cached values. Basically the table -# maximum size is a trade off between the memory you want to spend server -# side to track information about who cached what, and the ability of clients -# to retain cached objects in memory. -# -# If you set the value to 0, it means there are no limits, and Redis will -# retain as many keys as needed in the invalidation table. -# In the "stats" INFO section, you can find information about the number of -# keys in the invalidation table at every given moment. -# -# Note: when key tracking is used in broadcasting mode, no memory is used -# in the server side so this setting is useless. -# -# tracking-table-max-keys 1000000 - -################################## SECURITY ################################### - -# Warning: since Redis is pretty fast, an outside user can try up to -# 1 million passwords per second against a modern box. This means that you -# should use very strong passwords, otherwise they will be very easy to break. -# Note that because the password is really a shared secret between the client -# and the server, and should not be memorized by any human, the password -# can be easily a long string from /dev/urandom or whatever, so by using a -# long and unguessable password no brute force attack will be possible. - -# Redis ACL users are defined in the following format: -# -# user ... acl rules ... -# -# For example: -# -# user worker +@list +@connection ~jobs:* on >ffa9203c493aa99 -# -# The special username "default" is used for new connections. If this user -# has the "nopass" rule, then new connections will be immediately authenticated -# as the "default" user without the need of any password provided via the -# AUTH command. Otherwise if the "default" user is not flagged with "nopass" -# the connections will start in not authenticated state, and will require -# AUTH (or the HELLO command AUTH option) in order to be authenticated and -# start to work. -# -# The ACL rules that describe what a user can do are the following: -# -# on Enable the user: it is possible to authenticate as this user. -# off Disable the user: it's no longer possible to authenticate -# with this user, however the already authenticated connections -# will still work. -# + Allow the execution of that command -# - Disallow the execution of that command -# +@ Allow the execution of all the commands in such category -# with valid categories are like @admin, @set, @sortedset, ... -# and so forth, see the full list in the server.c file where -# the Redis command table is described and defined. -# The special category @all means all the commands, but currently -# present in the server, and that will be loaded in the future -# via modules. -# +|subcommand Allow a specific subcommand of an otherwise -# disabled command. Note that this form is not -# allowed as negative like -DEBUG|SEGFAULT, but -# only additive starting with "+". -# allcommands Alias for +@all. Note that it implies the ability to execute -# all the future commands loaded via the modules system. -# nocommands Alias for -@all. -# ~ Add a pattern of keys that can be mentioned as part of -# commands. For instance ~* allows all the keys. The pattern -# is a glob-style pattern like the one of KEYS. -# It is possible to specify multiple patterns. -# allkeys Alias for ~* -# resetkeys Flush the list of allowed keys patterns. -# > Add this password to the list of valid password for the user. -# For example >mypass will add "mypass" to the list. -# This directive clears the "nopass" flag (see later). -# < Remove this password from the list of valid passwords. -# nopass All the set passwords of the user are removed, and the user -# is flagged as requiring no password: it means that every -# password will work against this user. If this directive is -# used for the default user, every new connection will be -# immediately authenticated with the default user without -# any explicit AUTH command required. Note that the "resetpass" -# directive will clear this condition. -# resetpass Flush the list of allowed passwords. Moreover removes the -# "nopass" status. After "resetpass" the user has no associated -# passwords and there is no way to authenticate without adding -# some password (or setting it as "nopass" later). -# reset Performs the following actions: resetpass, resetkeys, off, -# -@all. The user returns to the same state it has immediately -# after its creation. -# -# ACL rules can be specified in any order: for instance you can start with -# passwords, then flags, or key patterns. However note that the additive -# and subtractive rules will CHANGE MEANING depending on the ordering. -# For instance see the following example: -# -# user alice on +@all -DEBUG ~* >somepassword -# -# This will allow "alice" to use all the commands with the exception of the -# DEBUG command, since +@all added all the commands to the set of the commands -# alice can use, and later DEBUG was removed. However if we invert the order -# of two ACL rules the result will be different: -# -# user alice on -DEBUG +@all ~* >somepassword -# -# Now DEBUG was removed when alice had yet no commands in the set of allowed -# commands, later all the commands are added, so the user will be able to -# execute everything. -# -# Basically ACL rules are processed left-to-right. -# -# For more information about ACL configuration please refer to -# the Redis web site at https://redis.io/topics/acl - -# ACL LOG -# -# The ACL Log tracks failed commands and authentication events associated -# with ACLs. The ACL Log is useful to troubleshoot failed commands blocked -# by ACLs. The ACL Log is stored in memory. You can reclaim memory with -# ACL LOG RESET. Define the maximum entry length of the ACL Log below. -acllog-max-len 128 - -# Using an external ACL file -# -# Instead of configuring users here in this file, it is possible to use -# a stand-alone file just listing users. The two methods cannot be mixed: -# if you configure users here and at the same time you activate the external -# ACL file, the server will refuse to start. -# -# The format of the external ACL user file is exactly the same as the -# format that is used inside redis.conf to describe users. -# -# aclfile /etc/redis/users.acl - -# IMPORTANT NOTE: starting with Redis 6 "requirepass" is just a compatibility -# layer on top of the new ACL system. The option effect will be just setting -# the password for the default user. Clients will still authenticate using -# AUTH as usually, or more explicitly with AUTH default -# if they follow the new protocol: both will work. -# -# requirepass foobared - -# Command renaming (DEPRECATED). -# -# ------------------------------------------------------------------------ -# WARNING: avoid using this option if possible. Instead use ACLs to remove -# commands from the default user, and put them only in some admin user you -# create for administrative purposes. -# ------------------------------------------------------------------------ -# -# It is possible to change the name of dangerous commands in a shared -# environment. For instance the CONFIG command may be renamed into something -# hard to guess so that it will still be available for internal-use tools -# but not available for general clients. -# -# Example: -# -# rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52 -# -# It is also possible to completely kill a command by renaming it into -# an empty string: -# -# rename-command CONFIG "" -# -# Please note that changing the name of commands that are logged into the -# AOF file or transmitted to replicas may cause problems. - -################################### CLIENTS #################################### - -# Set the max number of connected clients at the same time. By default -# this limit is set to 10000 clients, however if the Redis server is not -# able to configure the process file limit to allow for the specified limit -# the max number of allowed clients is set to the current file limit -# minus 32 (as Redis reserves a few file descriptors for internal uses). -# -# Once the limit is reached Redis will close all the new connections sending -# an error 'max number of clients reached'. -# -# IMPORTANT: When Redis Cluster is used, the max number of connections is also -# shared with the cluster bus: every node in the cluster will use two -# connections, one incoming and another outgoing. It is important to size the -# limit accordingly in case of very large clusters. -# -# maxclients 10000 - -############################## MEMORY MANAGEMENT ################################ - -# Set a memory usage limit to the specified amount of bytes. -# When the memory limit is reached Redis will try to remove keys -# according to the eviction policy selected (see maxmemory-policy). -# -# If Redis can't remove keys according to the policy, or if the policy is -# set to 'noeviction', Redis will start to reply with errors to commands -# that would use more memory, like SET, LPUSH, and so on, and will continue -# to reply to read-only commands like GET. -# -# This option is usually useful when using Redis as an LRU or LFU cache, or to -# set a hard memory limit for an instance (using the 'noeviction' policy). -# -# WARNING: If you have replicas attached to an instance with maxmemory on, -# the size of the output buffers needed to feed the replicas are subtracted -# from the used memory count, so that network problems / resyncs will -# not trigger a loop where keys are evicted, and in turn the output -# buffer of replicas is full with DELs of keys evicted triggering the deletion -# of more keys, and so forth until the database is completely emptied. -# -# In short... if you have replicas attached it is suggested that you set a lower -# limit for maxmemory so that there is some free RAM on the system for replica -# output buffers (but this is not needed if the policy is 'noeviction'). -# -# maxmemory - -# MAXMEMORY POLICY: how Redis will select what to remove when maxmemory -# is reached. You can select one from the following behaviors: -# -# volatile-lru -> Evict using approximated LRU, only keys with an expire set. -# allkeys-lru -> Evict any key using approximated LRU. -# volatile-lfu -> Evict using approximated LFU, only keys with an expire set. -# allkeys-lfu -> Evict any key using approximated LFU. -# volatile-random -> Remove a random key having an expire set. -# allkeys-random -> Remove a random key, any key. -# volatile-ttl -> Remove the key with the nearest expire time (minor TTL) -# noeviction -> Don't evict anything, just return an error on write operations. -# -# LRU means Least Recently Used -# LFU means Least Frequently Used -# -# Both LRU, LFU and volatile-ttl are implemented using approximated -# randomized algorithms. -# -# Note: with any of the above policies, Redis will return an error on write -# operations, when there are no suitable keys for eviction. -# -# At the date of writing these commands are: set setnx setex append -# incr decr rpush lpush rpushx lpushx linsert lset rpoplpush sadd -# sinter sinterstore sunion sunionstore sdiff sdiffstore zadd zincrby -# zunionstore zinterstore hset hsetnx hmset hincrby incrby decrby -# getset mset msetnx exec sort -# -# The default is: -# -# maxmemory-policy noeviction - -# LRU, LFU and minimal TTL algorithms are not precise algorithms but approximated -# algorithms (in order to save memory), so you can tune it for speed or -# accuracy. By default Redis will check five keys and pick the one that was -# used least recently, you can change the sample size using the following -# configuration directive. -# -# The default of 5 produces good enough results. 10 Approximates very closely -# true LRU but costs more CPU. 3 is faster but not very accurate. -# -# maxmemory-samples 5 - -# Starting from Redis 5, by default a replica will ignore its maxmemory setting -# (unless it is promoted to master after a failover or manually). It means -# that the eviction of keys will be just handled by the master, sending the -# DEL commands to the replica as keys evict in the master side. -# -# This behavior ensures that masters and replicas stay consistent, and is usually -# what you want, however if your replica is writable, or you want the replica -# to have a different memory setting, and you are sure all the writes performed -# to the replica are idempotent, then you may change this default (but be sure -# to understand what you are doing). -# -# Note that since the replica by default does not evict, it may end using more -# memory than the one set via maxmemory (there are certain buffers that may -# be larger on the replica, or data structures may sometimes take more memory -# and so forth). So make sure you monitor your replicas and make sure they -# have enough memory to never hit a real out-of-memory condition before the -# master hits the configured maxmemory setting. -# -# replica-ignore-maxmemory yes - -# Redis reclaims expired keys in two ways: upon access when those keys are -# found to be expired, and also in background, in what is called the -# "active expire key". The key space is slowly and interactively scanned -# looking for expired keys to reclaim, so that it is possible to free memory -# of keys that are expired and will never be accessed again in a short time. -# -# The default effort of the expire cycle will try to avoid having more than -# ten percent of expired keys still in memory, and will try to avoid consuming -# more than 25% of total memory and to add latency to the system. However -# it is possible to increase the expire "effort" that is normally set to -# "1", to a greater value, up to the value "10". At its maximum value the -# system will use more CPU, longer cycles (and technically may introduce -# more latency), and will tolerate less already expired keys still present -# in the system. It's a tradeoff between memory, CPU and latency. -# -# active-expire-effort 1 - -############################# LAZY FREEING #################################### - -# Redis has two primitives to delete keys. One is called DEL and is a blocking -# deletion of the object. It means that the server stops processing new commands -# in order to reclaim all the memory associated with an object in a synchronous -# way. If the key deleted is associated with a small object, the time needed -# in order to execute the DEL command is very small and comparable to most other -# O(1) or O(log_N) commands in Redis. However if the key is associated with an -# aggregated value containing millions of elements, the server can block for -# a long time (even seconds) in order to complete the operation. -# -# For the above reasons Redis also offers non blocking deletion primitives -# such as UNLINK (non blocking DEL) and the ASYNC option of FLUSHALL and -# FLUSHDB commands, in order to reclaim memory in background. Those commands -# are executed in constant time. Another thread will incrementally free the -# object in the background as fast as possible. -# -# DEL, UNLINK and ASYNC option of FLUSHALL and FLUSHDB are user-controlled. -# It's up to the design of the application to understand when it is a good -# idea to use one or the other. However the Redis server sometimes has to -# delete keys or flush the whole database as a side effect of other operations. -# Specifically Redis deletes objects independently of a user call in the -# following scenarios: -# -# 1) On eviction, because of the maxmemory and maxmemory policy configurations, -# in order to make room for new data, without going over the specified -# memory limit. -# 2) Because of expire: when a key with an associated time to live (see the -# EXPIRE command) must be deleted from memory. -# 3) Because of a side effect of a command that stores data on a key that may -# already exist. For example the RENAME command may delete the old key -# content when it is replaced with another one. Similarly SUNIONSTORE -# or SORT with STORE option may delete existing keys. The SET command -# itself removes any old content of the specified key in order to replace -# it with the specified string. -# 4) During replication, when a replica performs a full resynchronization with -# its master, the content of the whole database is removed in order to -# load the RDB file just transferred. -# -# In all the above cases the default is to delete objects in a blocking way, -# like if DEL was called. However you can configure each case specifically -# in order to instead release memory in a non-blocking way like if UNLINK -# was called, using the following configuration directives. - -lazyfree-lazy-eviction no -lazyfree-lazy-expire no -lazyfree-lazy-server-del no -replica-lazy-flush no - -# It is also possible, for the case when to replace the user code DEL calls -# with UNLINK calls is not easy, to modify the default behavior of the DEL -# command to act exactly like UNLINK, using the following configuration -# directive: - -lazyfree-lazy-user-del no - -################################ THREADED I/O ################################# - -# Redis is mostly single threaded, however there are certain threaded -# operations such as UNLINK, slow I/O accesses and other things that are -# performed on side threads. -# -# Now it is also possible to handle Redis clients socket reads and writes -# in different I/O threads. Since especially writing is so slow, normally -# Redis users use pipelining in order to speed up the Redis performances per -# core, and spawn multiple instances in order to scale more. Using I/O -# threads it is possible to easily speedup two times Redis without resorting -# to pipelining nor sharding of the instance. -# -# By default threading is disabled, we suggest enabling it only in machines -# that have at least 4 or more cores, leaving at least one spare core. -# Using more than 8 threads is unlikely to help much. We also recommend using -# threaded I/O only if you actually have performance problems, with Redis -# instances being able to use a quite big percentage of CPU time, otherwise -# there is no point in using this feature. -# -# So for instance if you have a four cores boxes, try to use 2 or 3 I/O -# threads, if you have a 8 cores, try to use 6 threads. In order to -# enable I/O threads use the following configuration directive: -# -# io-threads 4 -# -# Setting io-threads to 1 will just use the main thread as usual. -# When I/O threads are enabled, we only use threads for writes, that is -# to thread the write(2) syscall and transfer the client buffers to the -# socket. However it is also possible to enable threading of reads and -# protocol parsing using the following configuration directive, by setting -# it to yes: -# -# io-threads-do-reads no -# -# Usually threading reads doesn't help much. -# -# NOTE 1: This configuration directive cannot be changed at runtime via -# CONFIG SET. Aso this feature currently does not work when SSL is -# enabled. -# -# NOTE 2: If you want to test the Redis speedup using redis-benchmark, make -# sure you also run the benchmark itself in threaded mode, using the -# --threads option to match the number of Redis threads, otherwise you'll not -# be able to notice the improvements. - -############################ KERNEL OOM CONTROL ############################## - -# On Linux, it is possible to hint the kernel OOM killer on what processes -# should be killed first when out of memory. -# -# Enabling this feature makes Redis actively control the oom_score_adj value -# for all its processes, depending on their role. The default scores will -# attempt to have background child processes killed before all others, and -# replicas killed before masters. -# -# Redis supports three options: -# -# no: Don't make changes to oom-score-adj (default). -# yes: Alias to "relative" see below. -# absolute: Values in oom-score-adj-values are written as is to the kernel. -# relative: Values are used relative to the initial value of oom_score_adj when -# the server starts and are then clamped to a range of -1000 to 1000. -# Because typically the initial value is 0, they will often match the -# absolute values. -oom-score-adj no - -# When oom-score-adj is used, this directive controls the specific values used -# for master, replica and background child processes. Values range -2000 to -# 2000 (higher means more likely to be killed). -# -# Unprivileged processes (not root, and without CAP_SYS_RESOURCE capabilities) -# can freely increase their value, but not decrease it below its initial -# settings. This means that setting oom-score-adj to "relative" and setting the -# oom-score-adj-values to positive values will always succeed. -oom-score-adj-values 0 200 800 - -############################## APPEND ONLY MODE ############################### - -# By default Redis asynchronously dumps the dataset on disk. This mode is -# good enough in many applications, but an issue with the Redis process or -# a power outage may result into a few minutes of writes lost (depending on -# the configured save points). -# -# The Append Only File is an alternative persistence mode that provides -# much better durability. For instance using the default data fsync policy -# (see later in the config file) Redis can lose just one second of writes in a -# dramatic event like a server power outage, or a single write if something -# wrong with the Redis process itself happens, but the operating system is -# still running correctly. -# -# AOF and RDB persistence can be enabled at the same time without problems. -# If the AOF is enabled on startup Redis will load the AOF, that is the file -# with the better durability guarantees. -# -# Please check http://redis.io/topics/persistence for more information. - -appendonly no - -# The name of the append only file (default: "appendonly.aof") - -appendfilename "appendonly.aof" - -# The fsync() call tells the Operating System to actually write data on disk -# instead of waiting for more data in the output buffer. Some OS will really flush -# data on disk, some other OS will just try to do it ASAP. -# -# Redis supports three different modes: -# -# no: don't fsync, just let the OS flush the data when it wants. Faster. -# always: fsync after every write to the append only log. Slow, Safest. -# everysec: fsync only one time every second. Compromise. -# -# The default is "everysec", as that's usually the right compromise between -# speed and data safety. It's up to you to understand if you can relax this to -# "no" that will let the operating system flush the output buffer when -# it wants, for better performances (but if you can live with the idea of -# some data loss consider the default persistence mode that's snapshotting), -# or on the contrary, use "always" that's very slow but a bit safer than -# everysec. -# -# More details please check the following article: -# http://antirez.com/post/redis-persistence-demystified.html -# -# If unsure, use "everysec". - -# appendfsync always -appendfsync everysec -# appendfsync no - -# When the AOF fsync policy is set to always or everysec, and a background -# saving process (a background save or AOF log background rewriting) is -# performing a lot of I/O against the disk, in some Linux configurations -# Redis may block too long on the fsync() call. Note that there is no fix for -# this currently, as even performing fsync in a different thread will block -# our synchronous write(2) call. -# -# In order to mitigate this problem it's possible to use the following option -# that will prevent fsync() from being called in the main process while a -# BGSAVE or BGREWRITEAOF is in progress. -# -# This means that while another child is saving, the durability of Redis is -# the same as "appendfsync none". In practical terms, this means that it is -# possible to lose up to 30 seconds of log in the worst scenario (with the -# default Linux settings). -# -# If you have latency problems turn this to "yes". Otherwise leave it as -# "no" that is the safest pick from the point of view of durability. - -no-appendfsync-on-rewrite no - -# Automatic rewrite of the append only file. -# Redis is able to automatically rewrite the log file implicitly calling -# BGREWRITEAOF when the AOF log size grows by the specified percentage. -# -# This is how it works: Redis remembers the size of the AOF file after the -# latest rewrite (if no rewrite has happened since the restart, the size of -# the AOF at startup is used). -# -# This base size is compared to the current size. If the current size is -# bigger than the specified percentage, the rewrite is triggered. Also -# you need to specify a minimal size for the AOF file to be rewritten, this -# is useful to avoid rewriting the AOF file even if the percentage increase -# is reached but it is still pretty small. -# -# Specify a percentage of zero in order to disable the automatic AOF -# rewrite feature. - -auto-aof-rewrite-percentage 100 -auto-aof-rewrite-min-size 64mb - -# An AOF file may be found to be truncated at the end during the Redis -# startup process, when the AOF data gets loaded back into memory. -# This may happen when the system where Redis is running -# crashes, especially when an ext4 filesystem is mounted without the -# data=ordered option (however this can't happen when Redis itself -# crashes or aborts but the operating system still works correctly). -# -# Redis can either exit with an error when this happens, or load as much -# data as possible (the default now) and start if the AOF file is found -# to be truncated at the end. The following option controls this behavior. -# -# If aof-load-truncated is set to yes, a truncated AOF file is loaded and -# the Redis server starts emitting a log to inform the user of the event. -# Otherwise if the option is set to no, the server aborts with an error -# and refuses to start. When the option is set to no, the user requires -# to fix the AOF file using the "redis-check-aof" utility before to restart -# the server. -# -# Note that if the AOF file will be found to be corrupted in the middle -# the server will still exit with an error. This option only applies when -# Redis will try to read more data from the AOF file but not enough bytes -# will be found. -aof-load-truncated yes - -# When rewriting the AOF file, Redis is able to use an RDB preamble in the -# AOF file for faster rewrites and recoveries. When this option is turned -# on the rewritten AOF file is composed of two different stanzas: -# -# [RDB file][AOF tail] -# -# When loading, Redis recognizes that the AOF file starts with the "REDIS" -# string and loads the prefixed RDB file, then continues loading the AOF -# tail. -aof-use-rdb-preamble yes - -################################ LUA SCRIPTING ############################### - -# Max execution time of a Lua script in milliseconds. -# -# If the maximum execution time is reached Redis will log that a script is -# still in execution after the maximum allowed time and will start to -# reply to queries with an error. -# -# When a long running script exceeds the maximum execution time only the -# SCRIPT KILL and SHUTDOWN NOSAVE commands are available. The first can be -# used to stop a script that did not yet call any write commands. The second -# is the only way to shut down the server in the case a write command was -# already issued by the script but the user doesn't want to wait for the natural -# termination of the script. -# -# Set it to 0 or a negative value for unlimited execution without warnings. -lua-time-limit 5000 - -################################ REDIS CLUSTER ############################### - -# Normal Redis instances can't be part of a Redis Cluster; only nodes that are -# started as cluster nodes can. In order to start a Redis instance as a -# cluster node enable the cluster support uncommenting the following: -# -# cluster-enabled yes - -# Every cluster node has a cluster configuration file. This file is not -# intended to be edited by hand. It is created and updated by Redis nodes. -# Every Redis Cluster node requires a different cluster configuration file. -# Make sure that instances running in the same system do not have -# overlapping cluster configuration file names. -# -# cluster-config-file nodes-6379.conf - -# Cluster node timeout is the amount of milliseconds a node must be unreachable -# for it to be considered in failure state. -# Most other internal time limits are a multiple of the node timeout. -# -# cluster-node-timeout 15000 - -# A replica of a failing master will avoid to start a failover if its data -# looks too old. -# -# There is no simple way for a replica to actually have an exact measure of -# its "data age", so the following two checks are performed: -# -# 1) If there are multiple replicas able to failover, they exchange messages -# in order to try to give an advantage to the replica with the best -# replication offset (more data from the master processed). -# Replicas will try to get their rank by offset, and apply to the start -# of the failover a delay proportional to their rank. -# -# 2) Every single replica computes the time of the last interaction with -# its master. This can be the last ping or command received (if the master -# is still in the "connected" state), or the time that elapsed since the -# disconnection with the master (if the replication link is currently down). -# If the last interaction is too old, the replica will not try to failover -# at all. -# -# The point "2" can be tuned by user. Specifically a replica will not perform -# the failover if, since the last interaction with the master, the time -# elapsed is greater than: -# -# (node-timeout * cluster-replica-validity-factor) + repl-ping-replica-period -# -# So for example if node-timeout is 30 seconds, and the cluster-replica-validity-factor -# is 10, and assuming a default repl-ping-replica-period of 10 seconds, the -# replica will not try to failover if it was not able to talk with the master -# for longer than 310 seconds. -# -# A large cluster-replica-validity-factor may allow replicas with too old data to failover -# a master, while a too small value may prevent the cluster from being able to -# elect a replica at all. -# -# For maximum availability, it is possible to set the cluster-replica-validity-factor -# to a value of 0, which means, that replicas will always try to failover the -# master regardless of the last time they interacted with the master. -# (However they'll always try to apply a delay proportional to their -# offset rank). -# -# Zero is the only value able to guarantee that when all the partitions heal -# the cluster will always be able to continue. -# -# cluster-replica-validity-factor 10 - -# Cluster replicas are able to migrate to orphaned masters, that are masters -# that are left without working replicas. This improves the cluster ability -# to resist to failures as otherwise an orphaned master can't be failed over -# in case of failure if it has no working replicas. -# -# Replicas migrate to orphaned masters only if there are still at least a -# given number of other working replicas for their old master. This number -# is the "migration barrier". A migration barrier of 1 means that a replica -# will migrate only if there is at least 1 other working replica for its master -# and so forth. It usually reflects the number of replicas you want for every -# master in your cluster. -# -# Default is 1 (replicas migrate only if their masters remain with at least -# one replica). To disable migration just set it to a very large value. -# A value of 0 can be set but is useful only for debugging and dangerous -# in production. -# -# cluster-migration-barrier 1 - -# By default Redis Cluster nodes stop accepting queries if they detect there -# is at least a hash slot uncovered (no available node is serving it). -# This way if the cluster is partially down (for example a range of hash slots -# are no longer covered) all the cluster becomes, eventually, unavailable. -# It automatically returns available as soon as all the slots are covered again. -# -# However sometimes you want the subset of the cluster which is working, -# to continue to accept queries for the part of the key space that is still -# covered. In order to do so, just set the cluster-require-full-coverage -# option to no. -# -# cluster-require-full-coverage yes - -# This option, when set to yes, prevents replicas from trying to failover its -# master during master failures. However the master can still perform a -# manual failover, if forced to do so. -# -# This is useful in different scenarios, especially in the case of multiple -# data center operations, where we want one side to never be promoted if not -# in the case of a total DC failure. -# -# cluster-replica-no-failover no - -# This option, when set to yes, allows nodes to serve read traffic while the -# the cluster is in a down state, as long as it believes it owns the slots. -# -# This is useful for two cases. The first case is for when an application -# doesn't require consistency of data during node failures or network partitions. -# One example of this is a cache, where as long as the node has the data it -# should be able to serve it. -# -# The second use case is for configurations that don't meet the recommended -# three shards but want to enable cluster mode and scale later. A -# master outage in a 1 or 2 shard configuration causes a read/write outage to the -# entire cluster without this option set, with it set there is only a write outage. -# Without a quorum of masters, slot ownership will not change automatically. -# -# cluster-allow-reads-when-down no - -# In order to setup your cluster make sure to read the documentation -# available at http://redis.io web site. - -########################## CLUSTER DOCKER/NAT support ######################## - -# In certain deployments, Redis Cluster nodes address discovery fails, because -# addresses are NAT-ted or because ports are forwarded (the typical case is -# Docker and other containers). -# -# In order to make Redis Cluster working in such environments, a static -# configuration where each node knows its public address is needed. The -# following two options are used for this scope, and are: -# -# * cluster-announce-ip -# * cluster-announce-port -# * cluster-announce-bus-port -# -# Each instructs the node about its address, client port, and cluster message -# bus port. The information is then published in the header of the bus packets -# so that other nodes will be able to correctly map the address of the node -# publishing the information. -# -# If the above options are not used, the normal Redis Cluster auto-detection -# will be used instead. -# -# Note that when remapped, the bus port may not be at the fixed offset of -# clients port + 10000, so you can specify any port and bus-port depending -# on how they get remapped. If the bus-port is not set, a fixed offset of -# 10000 will be used as usual. -# -# Example: -# -# cluster-announce-ip 10.1.1.5 -# cluster-announce-port 6379 -# cluster-announce-bus-port 6380 - -################################## SLOW LOG ################################### - -# The Redis Slow Log is a system to log queries that exceeded a specified -# execution time. The execution time does not include the I/O operations -# like talking with the client, sending the reply and so forth, -# but just the time needed to actually execute the command (this is the only -# stage of command execution where the thread is blocked and can not serve -# other requests in the meantime). -# -# You can configure the slow log with two parameters: one tells Redis -# what is the execution time, in microseconds, to exceed in order for the -# command to get logged, and the other parameter is the length of the -# slow log. When a new command is logged the oldest one is removed from the -# queue of logged commands. - -# The following time is expressed in microseconds, so 1000000 is equivalent -# to one second. Note that a negative number disables the slow log, while -# a value of zero forces the logging of every command. -slowlog-log-slower-than 10000 - -# There is no limit to this length. Just be aware that it will consume memory. -# You can reclaim memory used by the slow log with SLOWLOG RESET. -slowlog-max-len 128 - -################################ LATENCY MONITOR ############################## - -# The Redis latency monitoring subsystem samples different operations -# at runtime in order to collect data related to possible sources of -# latency of a Redis instance. -# -# Via the LATENCY command this information is available to the user that can -# print graphs and obtain reports. -# -# The system only logs operations that were performed in a time equal or -# greater than the amount of milliseconds specified via the -# latency-monitor-threshold configuration directive. When its value is set -# to zero, the latency monitor is turned off. -# -# By default latency monitoring is disabled since it is mostly not needed -# if you don't have latency issues, and collecting data has a performance -# impact, that while very small, can be measured under big load. Latency -# monitoring can easily be enabled at runtime using the command -# "CONFIG SET latency-monitor-threshold " if needed. -latency-monitor-threshold 0 - -############################# EVENT NOTIFICATION ############################## - -# Redis can notify Pub/Sub clients about events happening in the key space. -# This feature is documented at http://redis.io/topics/notifications -# -# For instance if keyspace events notification is enabled, and a client -# performs a DEL operation on key "foo" stored in the Database 0, two -# messages will be published via Pub/Sub: -# -# PUBLISH __keyspace@0__:foo del -# PUBLISH __keyevent@0__:del foo -# -# It is possible to select the events that Redis will notify among a set -# of classes. Every class is identified by a single character: -# -# K Keyspace events, published with __keyspace@__ prefix. -# E Keyevent events, published with __keyevent@__ prefix. -# g Generic commands (non-type specific) like DEL, EXPIRE, RENAME, ... -# $ String commands -# l List commands -# s Set commands -# h Hash commands -# z Sorted set commands -# x Expired events (events generated every time a key expires) -# e Evicted events (events generated when a key is evicted for maxmemory) -# t Stream commands -# m Key-miss events (Note: It is not included in the 'A' class) -# A Alias for g$lshzxet, so that the "AKE" string means all the events -# (Except key-miss events which are excluded from 'A' due to their -# unique nature). -# -# The "notify-keyspace-events" takes as argument a string that is composed -# of zero or multiple characters. The empty string means that notifications -# are disabled. -# -# Example: to enable list and generic events, from the point of view of the -# event name, use: -# -# notify-keyspace-events Elg -# -# Example 2: to get the stream of the expired keys subscribing to channel -# name __keyevent@0__:expired use: -# -# notify-keyspace-events Ex -# -# By default all notifications are disabled because most users don't need -# this feature and the feature has some overhead. Note that if you don't -# specify at least one of K or E, no events will be delivered. -notify-keyspace-events "" - -############################### GOPHER SERVER ################################# - -# Redis contains an implementation of the Gopher protocol, as specified in -# the RFC 1436 (https://www.ietf.org/rfc/rfc1436.txt). -# -# The Gopher protocol was very popular in the late '90s. It is an alternative -# to the web, and the implementation both server and client side is so simple -# that the Redis server has just 100 lines of code in order to implement this -# support. -# -# What do you do with Gopher nowadays? Well Gopher never *really* died, and -# lately there is a movement in order for the Gopher more hierarchical content -# composed of just plain text documents to be resurrected. Some want a simpler -# internet, others believe that the mainstream internet became too much -# controlled, and it's cool to create an alternative space for people that -# want a bit of fresh air. -# -# Anyway for the 10nth birthday of the Redis, we gave it the Gopher protocol -# as a gift. -# -# --- HOW IT WORKS? --- -# -# The Redis Gopher support uses the inline protocol of Redis, and specifically -# two kind of inline requests that were anyway illegal: an empty request -# or any request that starts with "/" (there are no Redis commands starting -# with such a slash). Normal RESP2/RESP3 requests are completely out of the -# path of the Gopher protocol implementation and are served as usual as well. -# -# If you open a connection to Redis when Gopher is enabled and send it -# a string like "/foo", if there is a key named "/foo" it is served via the -# Gopher protocol. -# -# In order to create a real Gopher "hole" (the name of a Gopher site in Gopher -# talking), you likely need a script like the following: -# -# https://github.com/antirez/gopher2redis -# -# --- SECURITY WARNING --- -# -# If you plan to put Redis on the internet in a publicly accessible address -# to server Gopher pages MAKE SURE TO SET A PASSWORD to the instance. -# Once a password is set: -# -# 1. The Gopher server (when enabled, not by default) will still serve -# content via Gopher. -# 2. However other commands cannot be called before the client will -# authenticate. -# -# So use the 'requirepass' option to protect your instance. -# -# Note that Gopher is not currently supported when 'io-threads-do-reads' -# is enabled. -# -# To enable Gopher support, uncomment the following line and set the option -# from no (the default) to yes. -# -# gopher-enabled no - -############################### ADVANCED CONFIG ############################### - -# Hashes are encoded using a memory efficient data structure when they have a -# small number of entries, and the biggest entry does not exceed a given -# threshold. These thresholds can be configured using the following directives. -hash-max-ziplist-entries 512 -hash-max-ziplist-value 64 - -# Lists are also encoded in a special way to save a lot of space. -# The number of entries allowed per internal list node can be specified -# as a fixed maximum size or a maximum number of elements. -# For a fixed maximum size, use -5 through -1, meaning: -# -5: max size: 64 Kb <-- not recommended for normal workloads -# -4: max size: 32 Kb <-- not recommended -# -3: max size: 16 Kb <-- probably not recommended -# -2: max size: 8 Kb <-- good -# -1: max size: 4 Kb <-- good -# Positive numbers mean store up to _exactly_ that number of elements -# per list node. -# The highest performing option is usually -2 (8 Kb size) or -1 (4 Kb size), -# but if your use case is unique, adjust the settings as necessary. -list-max-ziplist-size -2 - -# Lists may also be compressed. -# Compress depth is the number of quicklist ziplist nodes from *each* side of -# the list to *exclude* from compression. The head and tail of the list -# are always uncompressed for fast push/pop operations. Settings are: -# 0: disable all list compression -# 1: depth 1 means "don't start compressing until after 1 node into the list, -# going from either the head or tail" -# So: [head]->node->node->...->node->[tail] -# [head], [tail] will always be uncompressed; inner nodes will compress. -# 2: [head]->[next]->node->node->...->node->[prev]->[tail] -# 2 here means: don't compress head or head->next or tail->prev or tail, -# but compress all nodes between them. -# 3: [head]->[next]->[next]->node->node->...->node->[prev]->[prev]->[tail] -# etc. -list-compress-depth 0 - -# Sets have a special encoding in just one case: when a set is composed -# of just strings that happen to be integers in radix 10 in the range -# of 64 bit signed integers. -# The following configuration setting sets the limit in the size of the -# set in order to use this special memory saving encoding. -set-max-intset-entries 512 - -# Similarly to hashes and lists, sorted sets are also specially encoded in -# order to save a lot of space. This encoding is only used when the length and -# elements of a sorted set are below the following limits: -zset-max-ziplist-entries 128 -zset-max-ziplist-value 64 - -# HyperLogLog sparse representation bytes limit. The limit includes the -# 16 bytes header. When an HyperLogLog using the sparse representation crosses -# this limit, it is converted into the dense representation. -# -# A value greater than 16000 is totally useless, since at that point the -# dense representation is more memory efficient. -# -# The suggested value is ~ 3000 in order to have the benefits of -# the space efficient encoding without slowing down too much PFADD, -# which is O(N) with the sparse encoding. The value can be raised to -# ~ 10000 when CPU is not a concern, but space is, and the data set is -# composed of many HyperLogLogs with cardinality in the 0 - 15000 range. -hll-sparse-max-bytes 3000 - -# Streams macro node max size / items. The stream data structure is a radix -# tree of big nodes that encode multiple items inside. Using this configuration -# it is possible to configure how big a single node can be in bytes, and the -# maximum number of items it may contain before switching to a new node when -# appending new stream entries. If any of the following settings are set to -# zero, the limit is ignored, so for instance it is possible to set just a -# max entires limit by setting max-bytes to 0 and max-entries to the desired -# value. -stream-node-max-bytes 4096 -stream-node-max-entries 100 - -# Active rehashing uses 1 millisecond every 100 milliseconds of CPU time in -# order to help rehashing the main Redis hash table (the one mapping top-level -# keys to values). The hash table implementation Redis uses (see dict.c) -# performs a lazy rehashing: the more operation you run into a hash table -# that is rehashing, the more rehashing "steps" are performed, so if the -# server is idle the rehashing is never complete and some more memory is used -# by the hash table. -# -# The default is to use this millisecond 10 times every second in order to -# actively rehash the main dictionaries, freeing memory when possible. -# -# If unsure: -# use "activerehashing no" if you have hard latency requirements and it is -# not a good thing in your environment that Redis can reply from time to time -# to queries with 2 milliseconds delay. -# -# use "activerehashing yes" if you don't have such hard requirements but -# want to free memory asap when possible. -activerehashing yes - -# The client output buffer limits can be used to force disconnection of clients -# that are not reading data from the server fast enough for some reason (a -# common reason is that a Pub/Sub client can't consume messages as fast as the -# publisher can produce them). -# -# The limit can be set differently for the three different classes of clients: -# -# normal -> normal clients including MONITOR clients -# replica -> replica clients -# pubsub -> clients subscribed to at least one pubsub channel or pattern -# -# The syntax of every client-output-buffer-limit directive is the following: -# -# client-output-buffer-limit -# -# A client is immediately disconnected once the hard limit is reached, or if -# the soft limit is reached and remains reached for the specified number of -# seconds (continuously). -# So for instance if the hard limit is 32 megabytes and the soft limit is -# 16 megabytes / 10 seconds, the client will get disconnected immediately -# if the size of the output buffers reach 32 megabytes, but will also get -# disconnected if the client reaches 16 megabytes and continuously overcomes -# the limit for 10 seconds. -# -# By default normal clients are not limited because they don't receive data -# without asking (in a push way), but just after a request, so only -# asynchronous clients may create a scenario where data is requested faster -# than it can read. -# -# Instead there is a default limit for pubsub and replica clients, since -# subscribers and replicas receive data in a push fashion. -# -# Both the hard or the soft limit can be disabled by setting them to zero. -client-output-buffer-limit normal 0 0 0 -client-output-buffer-limit replica 256mb 64mb 60 -client-output-buffer-limit pubsub 32mb 8mb 60 - -# Client query buffers accumulate new commands. They are limited to a fixed -# amount by default in order to avoid that a protocol desynchronization (for -# instance due to a bug in the client) will lead to unbound memory usage in -# the query buffer. However you can configure it here if you have very special -# needs, such us huge multi/exec requests or alike. -# -# client-query-buffer-limit 1gb - -# In the Redis protocol, bulk requests, that are, elements representing single -# strings, are normally limited to 512 mb. However you can change this limit -# here, but must be 1mb or greater -# -# proto-max-bulk-len 512mb - -# Redis calls an internal function to perform many background tasks, like -# closing connections of clients in timeout, purging expired keys that are -# never requested, and so forth. -# -# Not all tasks are performed with the same frequency, but Redis checks for -# tasks to perform according to the specified "hz" value. -# -# By default "hz" is set to 10. Raising the value will use more CPU when -# Redis is idle, but at the same time will make Redis more responsive when -# there are many keys expiring at the same time, and timeouts may be -# handled with more precision. -# -# The range is between 1 and 500, however a value over 100 is usually not -# a good idea. Most users should use the default of 10 and raise this up to -# 100 only in environments where very low latency is required. -hz 10 - -# Normally it is useful to have an HZ value which is proportional to the -# number of clients connected. This is useful in order, for instance, to -# avoid too many clients are processed for each background task invocation -# in order to avoid latency spikes. -# -# Since the default HZ value by default is conservatively set to 10, Redis -# offers, and enables by default, the ability to use an adaptive HZ value -# which will temporarily raise when there are many connected clients. -# -# When dynamic HZ is enabled, the actual configured HZ will be used -# as a baseline, but multiples of the configured HZ value will be actually -# used as needed once more clients are connected. In this way an idle -# instance will use very little CPU time while a busy instance will be -# more responsive. -dynamic-hz yes - -# When a child rewrites the AOF file, if the following option is enabled -# the file will be fsync-ed every 32 MB of data generated. This is useful -# in order to commit the file to the disk more incrementally and avoid -# big latency spikes. -aof-rewrite-incremental-fsync yes - -# When redis saves RDB file, if the following option is enabled -# the file will be fsync-ed every 32 MB of data generated. This is useful -# in order to commit the file to the disk more incrementally and avoid -# big latency spikes. -rdb-save-incremental-fsync yes - -# Redis LFU eviction (see maxmemory setting) can be tuned. However it is a good -# idea to start with the default settings and only change them after investigating -# how to improve the performances and how the keys LFU change over time, which -# is possible to inspect via the OBJECT FREQ command. -# -# There are two tunable parameters in the Redis LFU implementation: the -# counter logarithm factor and the counter decay time. It is important to -# understand what the two parameters mean before changing them. -# -# The LFU counter is just 8 bits per key, it's maximum value is 255, so Redis -# uses a probabilistic increment with logarithmic behavior. Given the value -# of the old counter, when a key is accessed, the counter is incremented in -# this way: -# -# 1. A random number R between 0 and 1 is extracted. -# 2. A probability P is calculated as 1/(old_value*lfu_log_factor+1). -# 3. The counter is incremented only if R < P. -# -# The default lfu-log-factor is 10. This is a table of how the frequency -# counter changes with a different number of accesses with different -# logarithmic factors: -# -# +--------+------------+------------+------------+------------+------------+ -# | factor | 100 hits | 1000 hits | 100K hits | 1M hits | 10M hits | -# +--------+------------+------------+------------+------------+------------+ -# | 0 | 104 | 255 | 255 | 255 | 255 | -# +--------+------------+------------+------------+------------+------------+ -# | 1 | 18 | 49 | 255 | 255 | 255 | -# +--------+------------+------------+------------+------------+------------+ -# | 10 | 10 | 18 | 142 | 255 | 255 | -# +--------+------------+------------+------------+------------+------------+ -# | 100 | 8 | 11 | 49 | 143 | 255 | -# +--------+------------+------------+------------+------------+------------+ -# -# NOTE: The above table was obtained by running the following commands: -# -# redis-benchmark -n 1000000 incr foo -# redis-cli object freq foo -# -# NOTE 2: The counter initial value is 5 in order to give new objects a chance -# to accumulate hits. -# -# The counter decay time is the time, in minutes, that must elapse in order -# for the key counter to be divided by two (or decremented if it has a value -# less <= 10). -# -# The default value for the lfu-decay-time is 1. A special value of 0 means to -# decay the counter every time it happens to be scanned. -# -# lfu-log-factor 10 -# lfu-decay-time 1 - -########################### ACTIVE DEFRAGMENTATION ####################### -# -# What is active defragmentation? -# ------------------------------- -# -# Active (online) defragmentation allows a Redis server to compact the -# spaces left between small allocations and deallocations of data in memory, -# thus allowing to reclaim back memory. -# -# Fragmentation is a natural process that happens with every allocator (but -# less so with Jemalloc, fortunately) and certain workloads. Normally a server -# restart is needed in order to lower the fragmentation, or at least to flush -# away all the data and create it again. However thanks to this feature -# implemented by Oran Agra for Redis 4.0 this process can happen at runtime -# in a "hot" way, while the server is running. -# -# Basically when the fragmentation is over a certain level (see the -# configuration options below) Redis will start to create new copies of the -# values in contiguous memory regions by exploiting certain specific Jemalloc -# features (in order to understand if an allocation is causing fragmentation -# and to allocate it in a better place), and at the same time, will release the -# old copies of the data. This process, repeated incrementally for all the keys -# will cause the fragmentation to drop back to normal values. -# -# Important things to understand: -# -# 1. This feature is disabled by default, and only works if you compiled Redis -# to use the copy of Jemalloc we ship with the source code of Redis. -# This is the default with Linux builds. -# -# 2. You never need to enable this feature if you don't have fragmentation -# issues. -# -# 3. Once you experience fragmentation, you can enable this feature when -# needed with the command "CONFIG SET activedefrag yes". -# -# The configuration parameters are able to fine tune the behavior of the -# defragmentation process. If you are not sure about what they mean it is -# a good idea to leave the defaults untouched. - -# Enabled active defragmentation -# activedefrag no - -# Minimum amount of fragmentation waste to start active defrag -# active-defrag-ignore-bytes 100mb - -# Minimum percentage of fragmentation to start active defrag -# active-defrag-threshold-lower 10 - -# Maximum percentage of fragmentation at which we use maximum effort -# active-defrag-threshold-upper 100 - -# Minimal effort for defrag in CPU percentage, to be used when the lower -# threshold is reached -# active-defrag-cycle-min 1 - -# Maximal effort for defrag in CPU percentage, to be used when the upper -# threshold is reached -# active-defrag-cycle-max 25 - -# Maximum number of set/hash/zset/list fields that will be processed from -# the main dictionary scan -# active-defrag-max-scan-fields 1000 - -# Jemalloc background thread for purging will be enabled by default -jemalloc-bg-thread yes - -# It is possible to pin different threads and processes of Redis to specific -# CPUs in your system, in order to maximize the performances of the server. -# This is useful both in order to pin different Redis threads in different -# CPUs, but also in order to make sure that multiple Redis instances running -# in the same host will be pinned to different CPUs. -# -# Normally you can do this using the "taskset" command, however it is also -# possible to this via Redis configuration directly, both in Linux and FreeBSD. -# -# You can pin the server/IO threads, bio threads, aof rewrite child process, and -# the bgsave child process. The syntax to specify the cpu list is the same as -# the taskset command: -# -# Set redis server/io threads to cpu affinity 0,2,4,6: -# server_cpulist 0-7:2 -# -# Set bio threads to cpu affinity 1,3: -# bio_cpulist 1,3 -# -# Set aof rewrite child process to cpu affinity 8,9,10,11: -# aof_rewrite_cpulist 8-11 -# -# Set bgsave child process to cpu affinity 1,10,11 -# bgsave_cpulist 1,10-11 - -# In some cases redis will emit warnings and even refuse to start if it detects -# that the system is in bad state, it is possible to suppress these warnings -# by setting the following config which takes a space delimited list of warnings -# to suppress -# -# ignore-warnings ARM64-COW-BUG - -# Redis configuration rewrite by 1Panel - -# End Redis configuration rewrite by 1Panel \ No newline at end of file diff --git a/redis/6.2.18/data.yml b/redis/6.2.18/data.yml deleted file mode 100755 index 2a5670bf1..000000000 --- a/redis/6.2.18/data.yml +++ /dev/null @@ -1,34 +0,0 @@ -additionalProperties: - formFields: - - default: redis - envKey: PANEL_REDIS_ROOT_PASSWORD - labelEn: Database Password - labelZh: 数据库密码 - label: - en: Database Password - ja: データベースのパスワード - ms: Kata Laluan Pangkalan Data - pt-br: Senha do Banco de Dados - ru: Пароль базы данных - ko: 데이터베이스 비밀번호 - zh-hant: 資料庫密碼 - zh: 数据库密码 - random: true - required: false - type: password - - default: 6379 - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh-Hant: 埠 - zh: 端口 - required: true - rule: paramPort - type: number diff --git a/redis/6.2.18/docker-compose.yml b/redis/6.2.18/docker-compose.yml deleted file mode 100644 index d2fa0bc05..000000000 --- a/redis/6.2.18/docker-compose.yml +++ /dev/null @@ -1,19 +0,0 @@ -services: - redis: - image: redis:6.2.18 - restart: always - container_name: ${CONTAINER_NAME} - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_HTTP}:6379 - command: redis-server /etc/redis/redis.conf ${PANEL_REDIS_ROOT_PASSWORD:+--requirepass "${PANEL_REDIS_ROOT_PASSWORD}"} - volumes: - - ./data:/data - - ./conf/redis.conf:/etc/redis/redis.conf - - ./logs:/logs - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/redis/7.4.4/conf/redis.conf b/redis/7.4.4/conf/redis.conf deleted file mode 100644 index 51007df1e..000000000 --- a/redis/7.4.4/conf/redis.conf +++ /dev/null @@ -1,2280 +0,0 @@ -# Redis configuration file example. -# -# Note that in order to read the configuration file, Redis must be -# started with the file path as first argument: -# -# ./redis-server /path/to/redis.conf - -# Note on units: when memory size is needed, it is possible to specify -# it in the usual form of 1k 5GB 4M and so forth: -# -# 1k => 1000 bytes -# 1kb => 1024 bytes -# 1m => 1000000 bytes -# 1mb => 1024*1024 bytes -# 1g => 1000000000 bytes -# 1gb => 1024*1024*1024 bytes -# -# units are case insensitive so 1GB 1Gb 1gB are all the same. - -################################## INCLUDES ################################### - -# Include one or more other config files here. This is useful if you -# have a standard template that goes to all Redis servers but also need -# to customize a few per-server settings. Include files can include -# other files, so use this wisely. -# -# Note that option "include" won't be rewritten by command "CONFIG REWRITE" -# from admin or Redis Sentinel. Since Redis always uses the last processed -# line as value of a configuration directive, you'd better put includes -# at the beginning of this file to avoid overwriting config change at runtime. -# -# If instead you are interested in using includes to override configuration -# options, it is better to use include as the last line. -# -# Included paths may contain wildcards. All files matching the wildcards will -# be included in alphabetical order. -# Note that if an include path contains a wildcards but no files match it when -# the server is started, the include statement will be ignored and no error will -# be emitted. It is safe, therefore, to include wildcard files from empty -# directories. -# -# include /path/to/local.conf -# include /path/to/other.conf -# include /path/to/fragments/*.conf -# - -################################## MODULES ##################################### - -# Load modules at startup. If the server is not able to load modules -# it will abort. It is possible to use multiple loadmodule directives. -# -# loadmodule /path/to/my_module.so -# loadmodule /path/to/other_module.so - -################################## NETWORK ##################################### - -# By default, if no "bind" configuration directive is specified, Redis listens -# for connections from all available network interfaces on the host machine. -# It is possible to listen to just one or multiple selected interfaces using -# the "bind" configuration directive, followed by one or more IP addresses. -# Each address can be prefixed by "-", which means that redis will not fail to -# start if the address is not available. Being not available only refers to -# addresses that does not correspond to any network interface. Addresses that -# are already in use will always fail, and unsupported protocols will always BE -# silently skipped. -# -# Examples: -# -# bind 192.168.1.100 10.0.0.1 # listens on two specific IPv4 addresses -# bind 127.0.0.1 ::1 # listens on loopback IPv4 and IPv6 -# bind * -::* # like the default, all available interfaces -# -# ~~~ WARNING ~~~ If the computer running Redis is directly exposed to the -# internet, binding to all the interfaces is dangerous and will expose the -# instance to everybody on the internet. So by default we uncomment the -# following bind directive, that will force Redis to listen only on the -# IPv4 and IPv6 (if available) loopback interface addresses (this means Redis -# will only be able to accept client connections from the same host that it is -# running on). -# -# IF YOU ARE SURE YOU WANT YOUR INSTANCE TO LISTEN TO ALL THE INTERFACES -# COMMENT OUT THE FOLLOWING LINE. -# -# You will also need to set a password unless you explicitly disable protected -# mode. -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -bind 0.0.0.0 - -# By default, outgoing connections (from replica to master, from Sentinel to -# instances, cluster bus, etc.) are not bound to a specific local address. In -# most cases, this means the operating system will handle that based on routing -# and the interface through which the connection goes out. -# -# Using bind-source-addr it is possible to configure a specific address to bind -# to, which may also affect how the connection gets routed. -# -# Example: -# -# bind-source-addr 10.0.0.1 - -# Protected mode is a layer of security protection, in order to avoid that -# Redis instances left open on the internet are accessed and exploited. -# -# When protected mode is on and the default user has no password, the server -# only accepts local connections from the IPv4 address (127.0.0.1), IPv6 address -# (::1) or Unix domain sockets. -# -# By default protected mode is enabled. You should disable it only if -# you are sure you want clients from other hosts to connect to Redis -# even if no authentication is configured. -protected-mode yes - -# Redis uses default hardened security configuration directives to reduce the -# attack surface on innocent users. Therefore, several sensitive configuration -# directives are immutable, and some potentially-dangerous commands are blocked. -# -# Configuration directives that control files that Redis writes to (e.g., 'dir' -# and 'dbfilename') and that aren't usually modified during runtime -# are protected by making them immutable. -# -# Commands that can increase the attack surface of Redis and that aren't usually -# called by users are blocked by default. -# -# These can be exposed to either all connections or just local ones by setting -# each of the configs listed below to either of these values: -# -# no - Block for any connection (remain immutable) -# yes - Allow for any connection (no protection) -# local - Allow only for local connections. Ones originating from the -# IPv4 address (127.0.0.1), IPv6 address (::1) or Unix domain sockets. -# -# enable-protected-configs no -# enable-debug-command no -# enable-module-command no - -# Accept connections on the specified port, default is 6379 (IANA #815344). -# If port 0 is specified Redis will not listen on a TCP socket. -port 6379 - -# TCP listen() backlog. -# -# In high requests-per-second environments you need a high backlog in order -# to avoid slow clients connection issues. Note that the Linux kernel -# will silently truncate it to the value of /proc/sys/net/core/somaxconn so -# make sure to raise both the value of somaxconn and tcp_max_syn_backlog -# in order to get the desired effect. -tcp-backlog 511 - -# Unix socket. -# -# Specify the path for the Unix socket that will be used to listen for -# incoming connections. There is no default, so Redis will not listen -# on a unix socket when not specified. -# -# unixsocket /run/redis.sock -# unixsocketperm 700 - -# Close the connection after a client is idle for N seconds (0 to disable) -timeout 0 - -# TCP keepalive. -# -# If non-zero, use SO_KEEPALIVE to send TCP ACKs to clients in absence -# of communication. This is useful for two reasons: -# -# 1) Detect dead peers. -# 2) Force network equipment in the middle to consider the connection to be -# alive. -# -# On Linux, the specified value (in seconds) is the period used to send ACKs. -# Note that to close the connection the double of the time is needed. -# On other kernels the period depends on the kernel configuration. -# -# A reasonable value for this option is 300 seconds, which is the new -# Redis default starting with Redis 3.2.1. -tcp-keepalive 300 - -# Apply OS-specific mechanism to mark the listening socket with the specified -# ID, to support advanced routing and filtering capabilities. -# -# On Linux, the ID represents a connection mark. -# On FreeBSD, the ID represents a socket cookie ID. -# On OpenBSD, the ID represents a route table ID. -# -# The default value is 0, which implies no marking is required. -# socket-mark-id 0 - -################################# TLS/SSL ##################################### - -# By default, TLS/SSL is disabled. To enable it, the "tls-port" configuration -# directive can be used to define TLS-listening ports. To enable TLS on the -# default port, use: -# -# port 0 -# tls-port 6379 - -# Configure a X.509 certificate and private key to use for authenticating the -# server to connected clients, masters or cluster peers. These files should be -# PEM formatted. -# -# tls-cert-file redis.crt -# tls-key-file redis.key -# -# If the key file is encrypted using a passphrase, it can be included here -# as well. -# -# tls-key-file-pass secret - -# Normally Redis uses the same certificate for both server functions (accepting -# connections) and client functions (replicating from a master, establishing -# cluster bus connections, etc.). -# -# Sometimes certificates are issued with attributes that designate them as -# client-only or server-only certificates. In that case it may be desired to use -# different certificates for incoming (server) and outgoing (client) -# connections. To do that, use the following directives: -# -# tls-client-cert-file client.crt -# tls-client-key-file client.key -# -# If the key file is encrypted using a passphrase, it can be included here -# as well. -# -# tls-client-key-file-pass secret - -# Configure a DH parameters file to enable Diffie-Hellman (DH) key exchange, -# required by older versions of OpenSSL (<3.0). Newer versions do not require -# this configuration and recommend against it. -# -# tls-dh-params-file redis.dh - -# Configure a CA certificate(s) bundle or directory to authenticate TLS/SSL -# clients and peers. Redis requires an explicit configuration of at least one -# of these, and will not implicitly use the system wide configuration. -# -# tls-ca-cert-file ca.crt -# tls-ca-cert-dir /etc/ssl/certs - -# By default, clients (including replica servers) on a TLS port are required -# to authenticate using valid client side certificates. -# -# If "no" is specified, client certificates are not required and not accepted. -# If "optional" is specified, client certificates are accepted and must be -# valid if provided, but are not required. -# -# tls-auth-clients no -# tls-auth-clients optional - -# By default, a Redis replica does not attempt to establish a TLS connection -# with its master. -# -# Use the following directive to enable TLS on replication links. -# -# tls-replication yes - -# By default, the Redis Cluster bus uses a plain TCP connection. To enable -# TLS for the bus protocol, use the following directive: -# -# tls-cluster yes - -# By default, only TLSv1.2 and TLSv1.3 are enabled and it is highly recommended -# that older formally deprecated versions are kept disabled to reduce the attack surface. -# You can explicitly specify TLS versions to support. -# Allowed values are case insensitive and include "TLSv1", "TLSv1.1", "TLSv1.2", -# "TLSv1.3" (OpenSSL >= 1.1.1) or any combination. -# To enable only TLSv1.2 and TLSv1.3, use: -# -# tls-protocols "TLSv1.2 TLSv1.3" - -# Configure allowed ciphers. See the ciphers(1ssl) manpage for more information -# about the syntax of this string. -# -# Note: this configuration applies only to <= TLSv1.2. -# -# tls-ciphers DEFAULT:!MEDIUM - -# Configure allowed TLSv1.3 ciphersuites. See the ciphers(1ssl) manpage for more -# information about the syntax of this string, and specifically for TLSv1.3 -# ciphersuites. -# -# tls-ciphersuites TLS_CHACHA20_POLY1305_SHA256 - -# When choosing a cipher, use the server's preference instead of the client -# preference. By default, the server follows the client's preference. -# -# tls-prefer-server-ciphers yes - -# By default, TLS session caching is enabled to allow faster and less expensive -# reconnections by clients that support it. Use the following directive to disable -# caching. -# -# tls-session-caching no - -# Change the default number of TLS sessions cached. A zero value sets the cache -# to unlimited size. The default size is 20480. -# -# tls-session-cache-size 5000 - -# Change the default timeout of cached TLS sessions. The default timeout is 300 -# seconds. -# -# tls-session-cache-timeout 60 - -################################# GENERAL ##################################### - -# By default Redis does not run as a daemon. Use 'yes' if you need it. -# Note that Redis will write a pid file in /var/run/redis.pid when daemonized. -# When Redis is supervised by upstart or systemd, this parameter has no impact. -daemonize no - -# If you run Redis from upstart or systemd, Redis can interact with your -# supervision tree. Options: -# supervised no - no supervision interaction -# supervised upstart - signal upstart by putting Redis into SIGSTOP mode -# requires "expect stop" in your upstart job config -# supervised systemd - signal systemd by writing READY=1 to $NOTIFY_SOCKET -# on startup, and updating Redis status on a regular -# basis. -# supervised auto - detect upstart or systemd method based on -# UPSTART_JOB or NOTIFY_SOCKET environment variables -# Note: these supervision methods only signal "process is ready." -# They do not enable continuous pings back to your supervisor. -# -# The default is "no". To run under upstart/systemd, you can simply uncomment -# the line below: -# -# supervised auto - -# If a pid file is specified, Redis writes it where specified at startup -# and removes it at exit. -# -# When the server runs non daemonized, no pid file is created if none is -# specified in the configuration. When the server is daemonized, the pid file -# is used even if not specified, defaulting to "/var/run/redis.pid". -# -# Creating a pid file is best effort: if Redis is not able to create it -# nothing bad happens, the server will start and run normally. -# -# Note that on modern Linux systems "/run/redis.pid" is more conforming -# and should be used instead. -pidfile /var/run/redis_6379.pid - -# Specify the server verbosity level. -# This can be one of: -# debug (a lot of information, useful for development/testing) -# verbose (many rarely useful info, but not a mess like the debug level) -# notice (moderately verbose, what you want in production probably) -# warning (only very important / critical messages are logged) -loglevel notice - -# Specify the log file name. Also the empty string can be used to force -# Redis to log on the standard output. Note that if you use standard -# output for logging but daemonize, logs will be sent to /dev/null -logfile "" - -# To enable logging to the system logger, just set 'syslog-enabled' to yes, -# and optionally update the other syslog parameters to suit your needs. -# syslog-enabled no - -# Specify the syslog identity. -# syslog-ident redis - -# Specify the syslog facility. Must be USER or between LOCAL0-LOCAL7. -# syslog-facility local0 - -# To disable the built in crash log, which will possibly produce cleaner core -# dumps when they are needed, uncomment the following: -# -# crash-log-enabled no - -# To disable the fast memory check that's run as part of the crash log, which -# will possibly let redis terminate sooner, uncomment the following: -# -# crash-memcheck-enabled no - -# Set the number of databases. The default database is DB 0, you can select -# a different one on a per-connection basis using SELECT where -# dbid is a number between 0 and 'databases'-1 -databases 16 - -# By default Redis shows an ASCII art logo only when started to log to the -# standard output and if the standard output is a TTY and syslog logging is -# disabled. Basically this means that normally a logo is displayed only in -# interactive sessions. -# -# However it is possible to force the pre-4.0 behavior and always show a -# ASCII art logo in startup logs by setting the following option to yes. -always-show-logo no - -# By default, Redis modifies the process title (as seen in 'top' and 'ps') to -# provide some runtime information. It is possible to disable this and leave -# the process name as executed by setting the following to no. -set-proc-title yes - -# When changing the process title, Redis uses the following template to construct -# the modified title. -# -# Template variables are specified in curly brackets. The following variables are -# supported: -# -# {title} Name of process as executed if parent, or type of child process. -# {listen-addr} Bind address or '*' followed by TCP or TLS port listening on, or -# Unix socket if only that's available. -# {server-mode} Special mode, i.e. "[sentinel]" or "[cluster]". -# {port} TCP port listening on, or 0. -# {tls-port} TLS port listening on, or 0. -# {unixsocket} Unix domain socket listening on, or "". -# {config-file} Name of configuration file used. -# -proc-title-template "{title} {listen-addr} {server-mode}" - -################################ SNAPSHOTTING ################################ - -# Save the DB to disk. -# -# save [ ...] -# -# Redis will save the DB if the given number of seconds elapsed and it -# surpassed the given number of write operations against the DB. -# -# Snapshotting can be completely disabled with a single empty string argument -# as in following example: -# -# save "" -# -# Unless specified otherwise, by default Redis will save the DB: -# * After 3600 seconds (an hour) if at least 1 change was performed -# * After 300 seconds (5 minutes) if at least 100 changes were performed -# * After 60 seconds if at least 10000 changes were performed -# -# You can set these explicitly by uncommenting the following line. -# -# save 3600 1 300 100 60 10000 - -# By default Redis will stop accepting writes if RDB snapshots are enabled -# (at least one save point) and the latest background save failed. -# This will make the user aware (in a hard way) that data is not persisting -# on disk properly, otherwise chances are that no one will notice and some -# disaster will happen. -# -# If the background saving process will start working again Redis will -# automatically allow writes again. -# -# However if you have setup your proper monitoring of the Redis server -# and persistence, you may want to disable this feature so that Redis will -# continue to work as usual even if there are problems with disk, -# permissions, and so forth. -stop-writes-on-bgsave-error yes - -# Compress string objects using LZF when dump .rdb databases? -# By default compression is enabled as it's almost always a win. -# If you want to save some CPU in the saving child set it to 'no' but -# the dataset will likely be bigger if you have compressible values or keys. -rdbcompression yes - -# Since version 5 of RDB a CRC64 checksum is placed at the end of the file. -# This makes the format more resistant to corruption but there is a performance -# hit to pay (around 10%) when saving and loading RDB files, so you can disable it -# for maximum performances. -# -# RDB files created with checksum disabled have a checksum of zero that will -# tell the loading code to skip the check. -rdbchecksum yes - -# Enables or disables full sanitization checks for ziplist and listpack etc when -# loading an RDB or RESTORE payload. This reduces the chances of a assertion or -# crash later on while processing commands. -# Options: -# no - Never perform full sanitization -# yes - Always perform full sanitization -# clients - Perform full sanitization only for user connections. -# Excludes: RDB files, RESTORE commands received from the master -# connection, and client connections which have the -# skip-sanitize-payload ACL flag. -# The default should be 'clients' but since it currently affects cluster -# resharding via MIGRATE, it is temporarily set to 'no' by default. -# -# sanitize-dump-payload no - -# The filename where to dump the DB -dbfilename dump.rdb - -# Remove RDB files used by replication in instances without persistence -# enabled. By default this option is disabled, however there are environments -# where for regulations or other security concerns, RDB files persisted on -# disk by masters in order to feed replicas, or stored on disk by replicas -# in order to load them for the initial synchronization, should be deleted -# ASAP. Note that this option ONLY WORKS in instances that have both AOF -# and RDB persistence disabled, otherwise is completely ignored. -# -# An alternative (and sometimes better) way to obtain the same effect is -# to use diskless replication on both master and replicas instances. However -# in the case of replicas, diskless is not always an option. -rdb-del-sync-files no - -# The working directory. -# -# The DB will be written inside this directory, with the filename specified -# above using the 'dbfilename' configuration directive. -# -# The Append Only File will also be created inside this directory. -# -# Note that you must specify a directory here, not a file name. -dir ./ - -################################# REPLICATION ################################# - -# Master-Replica replication. Use replicaof to make a Redis instance a copy of -# another Redis server. A few things to understand ASAP about Redis replication. -# -# +------------------+ +---------------+ -# | Master | ---> | Replica | -# | (receive writes) | | (exact copy) | -# +------------------+ +---------------+ -# -# 1) Redis replication is asynchronous, but you can configure a master to -# stop accepting writes if it appears to be not connected with at least -# a given number of replicas. -# 2) Redis replicas are able to perform a partial resynchronization with the -# master if the replication link is lost for a relatively small amount of -# time. You may want to configure the replication backlog size (see the next -# sections of this file) with a sensible value depending on your needs. -# 3) Replication is automatic and does not need user intervention. After a -# network partition replicas automatically try to reconnect to masters -# and resynchronize with them. -# -# replicaof - -# If the master is password protected (using the "requirepass" configuration -# directive below) it is possible to tell the replica to authenticate before -# starting the replication synchronization process, otherwise the master will -# refuse the replica request. -# -# masterauth -# -# However this is not enough if you are using Redis ACLs (for Redis version -# 6 or greater), and the default user is not capable of running the PSYNC -# command and/or other commands needed for replication. In this case it's -# better to configure a special user to use with replication, and specify the -# masteruser configuration as such: -# -# masteruser -# -# When masteruser is specified, the replica will authenticate against its -# master using the new AUTH form: AUTH . - -# When a replica loses its connection with the master, or when the replication -# is still in progress, the replica can act in two different ways: -# -# 1) if replica-serve-stale-data is set to 'yes' (the default) the replica will -# still reply to client requests, possibly with out of date data, or the -# data set may just be empty if this is the first synchronization. -# -# 2) If replica-serve-stale-data is set to 'no' the replica will reply with error -# "MASTERDOWN Link with MASTER is down and replica-serve-stale-data is set to 'no'" -# to all data access commands, excluding commands such as: -# INFO, REPLICAOF, AUTH, SHUTDOWN, REPLCONF, ROLE, CONFIG, SUBSCRIBE, -# UNSUBSCRIBE, PSUBSCRIBE, PUNSUBSCRIBE, PUBLISH, PUBSUB, COMMAND, POST, -# HOST and LATENCY. -# -replica-serve-stale-data yes - -# You can configure a replica instance to accept writes or not. Writing against -# a replica instance may be useful to store some ephemeral data (because data -# written on a replica will be easily deleted after resync with the master) but -# may also cause problems if clients are writing to it because of a -# misconfiguration. -# -# Since Redis 2.6 by default replicas are read-only. -# -# Note: read only replicas are not designed to be exposed to untrusted clients -# on the internet. It's just a protection layer against misuse of the instance. -# Still a read only replica exports by default all the administrative commands -# such as CONFIG, DEBUG, and so forth. To a limited extent you can improve -# security of read only replicas using 'rename-command' to shadow all the -# administrative / dangerous commands. -replica-read-only yes - -# Replication SYNC strategy: disk or socket. -# -# New replicas and reconnecting replicas that are not able to continue the -# replication process just receiving differences, need to do what is called a -# "full synchronization". An RDB file is transmitted from the master to the -# replicas. -# -# The transmission can happen in two different ways: -# -# 1) Disk-backed: The Redis master creates a new process that writes the RDB -# file on disk. Later the file is transferred by the parent -# process to the replicas incrementally. -# 2) Diskless: The Redis master creates a new process that directly writes the -# RDB file to replica sockets, without touching the disk at all. -# -# With disk-backed replication, while the RDB file is generated, more replicas -# can be queued and served with the RDB file as soon as the current child -# producing the RDB file finishes its work. With diskless replication instead -# once the transfer starts, new replicas arriving will be queued and a new -# transfer will start when the current one terminates. -# -# When diskless replication is used, the master waits a configurable amount of -# time (in seconds) before starting the transfer in the hope that multiple -# replicas will arrive and the transfer can be parallelized. -# -# With slow disks and fast (large bandwidth) networks, diskless replication -# works better. -repl-diskless-sync yes - -# When diskless replication is enabled, it is possible to configure the delay -# the server waits in order to spawn the child that transfers the RDB via socket -# to the replicas. -# -# This is important since once the transfer starts, it is not possible to serve -# new replicas arriving, that will be queued for the next RDB transfer, so the -# server waits a delay in order to let more replicas arrive. -# -# The delay is specified in seconds, and by default is 5 seconds. To disable -# it entirely just set it to 0 seconds and the transfer will start ASAP. -repl-diskless-sync-delay 5 - -# When diskless replication is enabled with a delay, it is possible to let -# the replication start before the maximum delay is reached if the maximum -# number of replicas expected have connected. Default of 0 means that the -# maximum is not defined and Redis will wait the full delay. -repl-diskless-sync-max-replicas 0 - -# ----------------------------------------------------------------------------- -# WARNING: RDB diskless load is experimental. Since in this setup the replica -# does not immediately store an RDB on disk, it may cause data loss during -# failovers. RDB diskless load + Redis modules not handling I/O reads may also -# cause Redis to abort in case of I/O errors during the initial synchronization -# stage with the master. Use only if you know what you are doing. -# ----------------------------------------------------------------------------- -# -# Replica can load the RDB it reads from the replication link directly from the -# socket, or store the RDB to a file and read that file after it was completely -# received from the master. -# -# In many cases the disk is slower than the network, and storing and loading -# the RDB file may increase replication time (and even increase the master's -# Copy on Write memory and replica buffers). -# However, parsing the RDB file directly from the socket may mean that we have -# to flush the contents of the current database before the full rdb was -# received. For this reason we have the following options: -# -# "disabled" - Don't use diskless load (store the rdb file to the disk first) -# "on-empty-db" - Use diskless load only when it is completely safe. -# "swapdb" - Keep current db contents in RAM while parsing the data directly -# from the socket. Replicas in this mode can keep serving current -# data set while replication is in progress, except for cases where -# they can't recognize master as having a data set from same -# replication history. -# Note that this requires sufficient memory, if you don't have it, -# you risk an OOM kill. -repl-diskless-load disabled - -# Master send PINGs to its replicas in a predefined interval. It's possible to -# change this interval with the repl_ping_replica_period option. The default -# value is 10 seconds. -# -# repl-ping-replica-period 10 - -# The following option sets the replication timeout for: -# -# 1) Bulk transfer I/O during SYNC, from the point of view of replica. -# 2) Master timeout from the point of view of replicas (data, pings). -# 3) Replica timeout from the point of view of masters (REPLCONF ACK pings). -# -# It is important to make sure that this value is greater than the value -# specified for repl-ping-replica-period otherwise a timeout will be detected -# every time there is low traffic between the master and the replica. The default -# value is 60 seconds. -# -# repl-timeout 60 - -# Disable TCP_NODELAY on the replica socket after SYNC? -# -# If you select "yes" Redis will use a smaller number of TCP packets and -# less bandwidth to send data to replicas. But this can add a delay for -# the data to appear on the replica side, up to 40 milliseconds with -# Linux kernels using a default configuration. -# -# If you select "no" the delay for data to appear on the replica side will -# be reduced but more bandwidth will be used for replication. -# -# By default we optimize for low latency, but in very high traffic conditions -# or when the master and replicas are many hops away, turning this to "yes" may -# be a good idea. -repl-disable-tcp-nodelay no - -# Set the replication backlog size. The backlog is a buffer that accumulates -# replica data when replicas are disconnected for some time, so that when a -# replica wants to reconnect again, often a full resync is not needed, but a -# partial resync is enough, just passing the portion of data the replica -# missed while disconnected. -# -# The bigger the replication backlog, the longer the replica can endure the -# disconnect and later be able to perform a partial resynchronization. -# -# The backlog is only allocated if there is at least one replica connected. -# -# repl-backlog-size 1mb - -# After a master has no connected replicas for some time, the backlog will be -# freed. The following option configures the amount of seconds that need to -# elapse, starting from the time the last replica disconnected, for the backlog -# buffer to be freed. -# -# Note that replicas never free the backlog for timeout, since they may be -# promoted to masters later, and should be able to correctly "partially -# resynchronize" with other replicas: hence they should always accumulate backlog. -# -# A value of 0 means to never release the backlog. -# -# repl-backlog-ttl 3600 - -# The replica priority is an integer number published by Redis in the INFO -# output. It is used by Redis Sentinel in order to select a replica to promote -# into a master if the master is no longer working correctly. -# -# A replica with a low priority number is considered better for promotion, so -# for instance if there are three replicas with priority 10, 100, 25 Sentinel -# will pick the one with priority 10, that is the lowest. -# -# However a special priority of 0 marks the replica as not able to perform the -# role of master, so a replica with priority of 0 will never be selected by -# Redis Sentinel for promotion. -# -# By default the priority is 100. -replica-priority 100 - -# The propagation error behavior controls how Redis will behave when it is -# unable to handle a command being processed in the replication stream from a master -# or processed while reading from an AOF file. Errors that occur during propagation -# are unexpected, and can cause data inconsistency. However, there are edge cases -# in earlier versions of Redis where it was possible for the server to replicate or persist -# commands that would fail on future versions. For this reason the default behavior -# is to ignore such errors and continue processing commands. -# -# If an application wants to ensure there is no data divergence, this configuration -# should be set to 'panic' instead. The value can also be set to 'panic-on-replicas' -# to only panic when a replica encounters an error on the replication stream. One of -# these two panic values will become the default value in the future once there are -# sufficient safety mechanisms in place to prevent false positive crashes. -# -# propagation-error-behavior ignore - -# Replica ignore disk write errors controls the behavior of a replica when it is -# unable to persist a write command received from its master to disk. By default, -# this configuration is set to 'no' and will crash the replica in this condition. -# It is not recommended to change this default, however in order to be compatible -# with older versions of Redis this config can be toggled to 'yes' which will just -# log a warning and execute the write command it got from the master. -# -# replica-ignore-disk-write-errors no - -# ----------------------------------------------------------------------------- -# By default, Redis Sentinel includes all replicas in its reports. A replica -# can be excluded from Redis Sentinel's announcements. An unannounced replica -# will be ignored by the 'sentinel replicas ' command and won't be -# exposed to Redis Sentinel's clients. -# -# This option does not change the behavior of replica-priority. Even with -# replica-announced set to 'no', the replica can be promoted to master. To -# prevent this behavior, set replica-priority to 0. -# -# replica-announced yes - -# It is possible for a master to stop accepting writes if there are less than -# N replicas connected, having a lag less or equal than M seconds. -# -# The N replicas need to be in "online" state. -# -# The lag in seconds, that must be <= the specified value, is calculated from -# the last ping received from the replica, that is usually sent every second. -# -# This option does not GUARANTEE that N replicas will accept the write, but -# will limit the window of exposure for lost writes in case not enough replicas -# are available, to the specified number of seconds. -# -# For example to require at least 3 replicas with a lag <= 10 seconds use: -# -# min-replicas-to-write 3 -# min-replicas-max-lag 10 -# -# Setting one or the other to 0 disables the feature. -# -# By default min-replicas-to-write is set to 0 (feature disabled) and -# min-replicas-max-lag is set to 10. - -# A Redis master is able to list the address and port of the attached -# replicas in different ways. For example the "INFO replication" section -# offers this information, which is used, among other tools, by -# Redis Sentinel in order to discover replica instances. -# Another place where this info is available is in the output of the -# "ROLE" command of a master. -# -# The listed IP address and port normally reported by a replica is -# obtained in the following way: -# -# IP: The address is auto detected by checking the peer address -# of the socket used by the replica to connect with the master. -# -# Port: The port is communicated by the replica during the replication -# handshake, and is normally the port that the replica is using to -# listen for connections. -# -# However when port forwarding or Network Address Translation (NAT) is -# used, the replica may actually be reachable via different IP and port -# pairs. The following two options can be used by a replica in order to -# report to its master a specific set of IP and port, so that both INFO -# and ROLE will report those values. -# -# There is no need to use both the options if you need to override just -# the port or the IP address. -# -# replica-announce-ip 5.5.5.5 -# replica-announce-port 1234 - -############################### KEYS TRACKING ################################# - -# Redis implements server assisted support for client side caching of values. -# This is implemented using an invalidation table that remembers, using -# a radix key indexed by key name, what clients have which keys. In turn -# this is used in order to send invalidation messages to clients. Please -# check this page to understand more about the feature: -# -# https://redis.io/topics/client-side-caching -# -# When tracking is enabled for a client, all the read only queries are assumed -# to be cached: this will force Redis to store information in the invalidation -# table. When keys are modified, such information is flushed away, and -# invalidation messages are sent to the clients. However if the workload is -# heavily dominated by reads, Redis could use more and more memory in order -# to track the keys fetched by many clients. -# -# For this reason it is possible to configure a maximum fill value for the -# invalidation table. By default it is set to 1M of keys, and once this limit -# is reached, Redis will start to evict keys in the invalidation table -# even if they were not modified, just to reclaim memory: this will in turn -# force the clients to invalidate the cached values. Basically the table -# maximum size is a trade off between the memory you want to spend server -# side to track information about who cached what, and the ability of clients -# to retain cached objects in memory. -# -# If you set the value to 0, it means there are no limits, and Redis will -# retain as many keys as needed in the invalidation table. -# In the "stats" INFO section, you can find information about the number of -# keys in the invalidation table at every given moment. -# -# Note: when key tracking is used in broadcasting mode, no memory is used -# in the server side so this setting is useless. -# -# tracking-table-max-keys 1000000 - -################################## SECURITY ################################### - -# Warning: since Redis is pretty fast, an outside user can try up to -# 1 million passwords per second against a modern box. This means that you -# should use very strong passwords, otherwise they will be very easy to break. -# Note that because the password is really a shared secret between the client -# and the server, and should not be memorized by any human, the password -# can be easily a long string from /dev/urandom or whatever, so by using a -# long and unguessable password no brute force attack will be possible. - -# Redis ACL users are defined in the following format: -# -# user ... acl rules ... -# -# For example: -# -# user worker +@list +@connection ~jobs:* on >ffa9203c493aa99 -# -# The special username "default" is used for new connections. If this user -# has the "nopass" rule, then new connections will be immediately authenticated -# as the "default" user without the need of any password provided via the -# AUTH command. Otherwise if the "default" user is not flagged with "nopass" -# the connections will start in not authenticated state, and will require -# AUTH (or the HELLO command AUTH option) in order to be authenticated and -# start to work. -# -# The ACL rules that describe what a user can do are the following: -# -# on Enable the user: it is possible to authenticate as this user. -# off Disable the user: it's no longer possible to authenticate -# with this user, however the already authenticated connections -# will still work. -# skip-sanitize-payload RESTORE dump-payload sanitization is skipped. -# sanitize-payload RESTORE dump-payload is sanitized (default). -# + Allow the execution of that command. -# May be used with `|` for allowing subcommands (e.g "+config|get") -# - Disallow the execution of that command. -# May be used with `|` for blocking subcommands (e.g "-config|set") -# +@ Allow the execution of all the commands in such category -# with valid categories are like @admin, @set, @sortedset, ... -# and so forth, see the full list in the server.c file where -# the Redis command table is described and defined. -# The special category @all means all the commands, but currently -# present in the server, and that will be loaded in the future -# via modules. -# +|first-arg Allow a specific first argument of an otherwise -# disabled command. It is only supported on commands with -# no sub-commands, and is not allowed as negative form -# like -SELECT|1, only additive starting with "+". This -# feature is deprecated and may be removed in the future. -# allcommands Alias for +@all. Note that it implies the ability to execute -# all the future commands loaded via the modules system. -# nocommands Alias for -@all. -# ~ Add a pattern of keys that can be mentioned as part of -# commands. For instance ~* allows all the keys. The pattern -# is a glob-style pattern like the one of KEYS. -# It is possible to specify multiple patterns. -# %R~ Add key read pattern that specifies which keys can be read -# from. -# %W~ Add key write pattern that specifies which keys can be -# written to. -# allkeys Alias for ~* -# resetkeys Flush the list of allowed keys patterns. -# & Add a glob-style pattern of Pub/Sub channels that can be -# accessed by the user. It is possible to specify multiple channel -# patterns. -# allchannels Alias for &* -# resetchannels Flush the list of allowed channel patterns. -# > Add this password to the list of valid password for the user. -# For example >mypass will add "mypass" to the list. -# This directive clears the "nopass" flag (see later). -# < Remove this password from the list of valid passwords. -# nopass All the set passwords of the user are removed, and the user -# is flagged as requiring no password: it means that every -# password will work against this user. If this directive is -# used for the default user, every new connection will be -# immediately authenticated with the default user without -# any explicit AUTH command required. Note that the "resetpass" -# directive will clear this condition. -# resetpass Flush the list of allowed passwords. Moreover removes the -# "nopass" status. After "resetpass" the user has no associated -# passwords and there is no way to authenticate without adding -# some password (or setting it as "nopass" later). -# reset Performs the following actions: resetpass, resetkeys, off, -# -@all. The user returns to the same state it has immediately -# after its creation. -# () Create a new selector with the options specified within the -# parentheses and attach it to the user. Each option should be -# space separated. The first character must be ( and the last -# character must be ). -# clearselectors Remove all of the currently attached selectors. -# Note this does not change the "root" user permissions, -# which are the permissions directly applied onto the -# user (outside the parentheses). -# -# ACL rules can be specified in any order: for instance you can start with -# passwords, then flags, or key patterns. However note that the additive -# and subtractive rules will CHANGE MEANING depending on the ordering. -# For instance see the following example: -# -# user alice on +@all -DEBUG ~* >somepassword -# -# This will allow "alice" to use all the commands with the exception of the -# DEBUG command, since +@all added all the commands to the set of the commands -# alice can use, and later DEBUG was removed. However if we invert the order -# of two ACL rules the result will be different: -# -# user alice on -DEBUG +@all ~* >somepassword -# -# Now DEBUG was removed when alice had yet no commands in the set of allowed -# commands, later all the commands are added, so the user will be able to -# execute everything. -# -# Basically ACL rules are processed left-to-right. -# -# The following is a list of command categories and their meanings: -# * keyspace - Writing or reading from keys, databases, or their metadata -# in a type agnostic way. Includes DEL, RESTORE, DUMP, RENAME, EXISTS, DBSIZE, -# KEYS, EXPIRE, TTL, FLUSHALL, etc. Commands that may modify the keyspace, -# key or metadata will also have `write` category. Commands that only read -# the keyspace, key or metadata will have the `read` category. -# * read - Reading from keys (values or metadata). Note that commands that don't -# interact with keys, will not have either `read` or `write`. -# * write - Writing to keys (values or metadata) -# * admin - Administrative commands. Normal applications will never need to use -# these. Includes REPLICAOF, CONFIG, DEBUG, SAVE, MONITOR, ACL, SHUTDOWN, etc. -# * dangerous - Potentially dangerous (each should be considered with care for -# various reasons). This includes FLUSHALL, MIGRATE, RESTORE, SORT, KEYS, -# CLIENT, DEBUG, INFO, CONFIG, SAVE, REPLICAOF, etc. -# * connection - Commands affecting the connection or other connections. -# This includes AUTH, SELECT, COMMAND, CLIENT, ECHO, PING, etc. -# * blocking - Potentially blocking the connection until released by another -# command. -# * fast - Fast O(1) commands. May loop on the number of arguments, but not the -# number of elements in the key. -# * slow - All commands that are not Fast. -# * pubsub - PUBLISH / SUBSCRIBE related -# * transaction - WATCH / MULTI / EXEC related commands. -# * scripting - Scripting related. -# * set - Data type: sets related. -# * sortedset - Data type: zsets related. -# * list - Data type: lists related. -# * hash - Data type: hashes related. -# * string - Data type: strings related. -# * bitmap - Data type: bitmaps related. -# * hyperloglog - Data type: hyperloglog related. -# * geo - Data type: geo related. -# * stream - Data type: streams related. -# -# For more information about ACL configuration please refer to -# the Redis web site at https://redis.io/topics/acl - -# ACL LOG -# -# The ACL Log tracks failed commands and authentication events associated -# with ACLs. The ACL Log is useful to troubleshoot failed commands blocked -# by ACLs. The ACL Log is stored in memory. You can reclaim memory with -# ACL LOG RESET. Define the maximum entry length of the ACL Log below. -acllog-max-len 128 - -# Using an external ACL file -# -# Instead of configuring users here in this file, it is possible to use -# a stand-alone file just listing users. The two methods cannot be mixed: -# if you configure users here and at the same time you activate the external -# ACL file, the server will refuse to start. -# -# The format of the external ACL user file is exactly the same as the -# format that is used inside redis.conf to describe users. -# -# aclfile /etc/redis/users.acl - -# IMPORTANT NOTE: starting with Redis 6 "requirepass" is just a compatibility -# layer on top of the new ACL system. The option effect will be just setting -# the password for the default user. Clients will still authenticate using -# AUTH as usually, or more explicitly with AUTH default -# if they follow the new protocol: both will work. -# -# The requirepass is not compatible with aclfile option and the ACL LOAD -# command, these will cause requirepass to be ignored. -# -# requirepass foobared - -# New users are initialized with restrictive permissions by default, via the -# equivalent of this ACL rule 'off resetkeys -@all'. Starting with Redis 6.2, it -# is possible to manage access to Pub/Sub channels with ACL rules as well. The -# default Pub/Sub channels permission if new users is controlled by the -# acl-pubsub-default configuration directive, which accepts one of these values: -# -# allchannels: grants access to all Pub/Sub channels -# resetchannels: revokes access to all Pub/Sub channels -# -# From Redis 7.0, acl-pubsub-default defaults to 'resetchannels' permission. -# -# acl-pubsub-default resetchannels - -# Command renaming (DEPRECATED). -# -# ------------------------------------------------------------------------ -# WARNING: avoid using this option if possible. Instead use ACLs to remove -# commands from the default user, and put them only in some admin user you -# create for administrative purposes. -# ------------------------------------------------------------------------ -# -# It is possible to change the name of dangerous commands in a shared -# environment. For instance the CONFIG command may be renamed into something -# hard to guess so that it will still be available for internal-use tools -# but not available for general clients. -# -# Example: -# -# rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52 -# -# It is also possible to completely kill a command by renaming it into -# an empty string: -# -# rename-command CONFIG "" -# -# Please note that changing the name of commands that are logged into the -# AOF file or transmitted to replicas may cause problems. - -################################### CLIENTS #################################### - -# Set the max number of connected clients at the same time. By default -# this limit is set to 10000 clients, however if the Redis server is not -# able to configure the process file limit to allow for the specified limit -# the max number of allowed clients is set to the current file limit -# minus 32 (as Redis reserves a few file descriptors for internal uses). -# -# Once the limit is reached Redis will close all the new connections sending -# an error 'max number of clients reached'. -# -# IMPORTANT: When Redis Cluster is used, the max number of connections is also -# shared with the cluster bus: every node in the cluster will use two -# connections, one incoming and another outgoing. It is important to size the -# limit accordingly in case of very large clusters. -# -# maxclients 10000 - -############################## MEMORY MANAGEMENT ################################ - -# Set a memory usage limit to the specified amount of bytes. -# When the memory limit is reached Redis will try to remove keys -# according to the eviction policy selected (see maxmemory-policy). -# -# If Redis can't remove keys according to the policy, or if the policy is -# set to 'noeviction', Redis will start to reply with errors to commands -# that would use more memory, like SET, LPUSH, and so on, and will continue -# to reply to read-only commands like GET. -# -# This option is usually useful when using Redis as an LRU or LFU cache, or to -# set a hard memory limit for an instance (using the 'noeviction' policy). -# -# WARNING: If you have replicas attached to an instance with maxmemory on, -# the size of the output buffers needed to feed the replicas are subtracted -# from the used memory count, so that network problems / resyncs will -# not trigger a loop where keys are evicted, and in turn the output -# buffer of replicas is full with DELs of keys evicted triggering the deletion -# of more keys, and so forth until the database is completely emptied. -# -# In short... if you have replicas attached it is suggested that you set a lower -# limit for maxmemory so that there is some free RAM on the system for replica -# output buffers (but this is not needed if the policy is 'noeviction'). -# -# maxmemory - -# MAXMEMORY POLICY: how Redis will select what to remove when maxmemory -# is reached. You can select one from the following behaviors: -# -# volatile-lru -> Evict using approximated LRU, only keys with an expire set. -# allkeys-lru -> Evict any key using approximated LRU. -# volatile-lfu -> Evict using approximated LFU, only keys with an expire set. -# allkeys-lfu -> Evict any key using approximated LFU. -# volatile-random -> Remove a random key having an expire set. -# allkeys-random -> Remove a random key, any key. -# volatile-ttl -> Remove the key with the nearest expire time (minor TTL) -# noeviction -> Don't evict anything, just return an error on write operations. -# -# LRU means Least Recently Used -# LFU means Least Frequently Used -# -# Both LRU, LFU and volatile-ttl are implemented using approximated -# randomized algorithms. -# -# Note: with any of the above policies, when there are no suitable keys for -# eviction, Redis will return an error on write operations that require -# more memory. These are usually commands that create new keys, add data or -# modify existing keys. A few examples are: SET, INCR, HSET, LPUSH, SUNIONSTORE, -# SORT (due to the STORE argument), and EXEC (if the transaction includes any -# command that requires memory). -# -# The default is: -# -# maxmemory-policy noeviction - -# LRU, LFU and minimal TTL algorithms are not precise algorithms but approximated -# algorithms (in order to save memory), so you can tune it for speed or -# accuracy. By default Redis will check five keys and pick the one that was -# used least recently, you can change the sample size using the following -# configuration directive. -# -# The default of 5 produces good enough results. 10 Approximates very closely -# true LRU but costs more CPU. 3 is faster but not very accurate. -# -# maxmemory-samples 5 - -# Eviction processing is designed to function well with the default setting. -# If there is an unusually large amount of write traffic, this value may need to -# be increased. Decreasing this value may reduce latency at the risk of -# eviction processing effectiveness -# 0 = minimum latency, 10 = default, 100 = process without regard to latency -# -# maxmemory-eviction-tenacity 10 - -# Starting from Redis 5, by default a replica will ignore its maxmemory setting -# (unless it is promoted to master after a failover or manually). It means -# that the eviction of keys will be just handled by the master, sending the -# DEL commands to the replica as keys evict in the master side. -# -# This behavior ensures that masters and replicas stay consistent, and is usually -# what you want, however if your replica is writable, or you want the replica -# to have a different memory setting, and you are sure all the writes performed -# to the replica are idempotent, then you may change this default (but be sure -# to understand what you are doing). -# -# Note that since the replica by default does not evict, it may end using more -# memory than the one set via maxmemory (there are certain buffers that may -# be larger on the replica, or data structures may sometimes take more memory -# and so forth). So make sure you monitor your replicas and make sure they -# have enough memory to never hit a real out-of-memory condition before the -# master hits the configured maxmemory setting. -# -# replica-ignore-maxmemory yes - -# Redis reclaims expired keys in two ways: upon access when those keys are -# found to be expired, and also in background, in what is called the -# "active expire key". The key space is slowly and interactively scanned -# looking for expired keys to reclaim, so that it is possible to free memory -# of keys that are expired and will never be accessed again in a short time. -# -# The default effort of the expire cycle will try to avoid having more than -# ten percent of expired keys still in memory, and will try to avoid consuming -# more than 25% of total memory and to add latency to the system. However -# it is possible to increase the expire "effort" that is normally set to -# "1", to a greater value, up to the value "10". At its maximum value the -# system will use more CPU, longer cycles (and technically may introduce -# more latency), and will tolerate less already expired keys still present -# in the system. It's a tradeoff between memory, CPU and latency. -# -# active-expire-effort 1 - -############################# LAZY FREEING #################################### - -# Redis has two primitives to delete keys. One is called DEL and is a blocking -# deletion of the object. It means that the server stops processing new commands -# in order to reclaim all the memory associated with an object in a synchronous -# way. If the key deleted is associated with a small object, the time needed -# in order to execute the DEL command is very small and comparable to most other -# O(1) or O(log_N) commands in Redis. However if the key is associated with an -# aggregated value containing millions of elements, the server can block for -# a long time (even seconds) in order to complete the operation. -# -# For the above reasons Redis also offers non blocking deletion primitives -# such as UNLINK (non blocking DEL) and the ASYNC option of FLUSHALL and -# FLUSHDB commands, in order to reclaim memory in background. Those commands -# are executed in constant time. Another thread will incrementally free the -# object in the background as fast as possible. -# -# DEL, UNLINK and ASYNC option of FLUSHALL and FLUSHDB are user-controlled. -# It's up to the design of the application to understand when it is a good -# idea to use one or the other. However the Redis server sometimes has to -# delete keys or flush the whole database as a side effect of other operations. -# Specifically Redis deletes objects independently of a user call in the -# following scenarios: -# -# 1) On eviction, because of the maxmemory and maxmemory policy configurations, -# in order to make room for new data, without going over the specified -# memory limit. -# 2) Because of expire: when a key with an associated time to live (see the -# EXPIRE command) must be deleted from memory. -# 3) Because of a side effect of a command that stores data on a key that may -# already exist. For example the RENAME command may delete the old key -# content when it is replaced with another one. Similarly SUNIONSTORE -# or SORT with STORE option may delete existing keys. The SET command -# itself removes any old content of the specified key in order to replace -# it with the specified string. -# 4) During replication, when a replica performs a full resynchronization with -# its master, the content of the whole database is removed in order to -# load the RDB file just transferred. -# -# In all the above cases the default is to delete objects in a blocking way, -# like if DEL was called. However you can configure each case specifically -# in order to instead release memory in a non-blocking way like if UNLINK -# was called, using the following configuration directives. - -lazyfree-lazy-eviction no -lazyfree-lazy-expire no -lazyfree-lazy-server-del no -replica-lazy-flush no - -# It is also possible, for the case when to replace the user code DEL calls -# with UNLINK calls is not easy, to modify the default behavior of the DEL -# command to act exactly like UNLINK, using the following configuration -# directive: - -lazyfree-lazy-user-del no - -# FLUSHDB, FLUSHALL, SCRIPT FLUSH and FUNCTION FLUSH support both asynchronous and synchronous -# deletion, which can be controlled by passing the [SYNC|ASYNC] flags into the -# commands. When neither flag is passed, this directive will be used to determine -# if the data should be deleted asynchronously. - -lazyfree-lazy-user-flush no - -################################ THREADED I/O ################################# - -# Redis is mostly single threaded, however there are certain threaded -# operations such as UNLINK, slow I/O accesses and other things that are -# performed on side threads. -# -# Now it is also possible to handle Redis clients socket reads and writes -# in different I/O threads. Since especially writing is so slow, normally -# Redis users use pipelining in order to speed up the Redis performances per -# core, and spawn multiple instances in order to scale more. Using I/O -# threads it is possible to easily speedup two times Redis without resorting -# to pipelining nor sharding of the instance. -# -# By default threading is disabled, we suggest enabling it only in machines -# that have at least 4 or more cores, leaving at least one spare core. -# Using more than 8 threads is unlikely to help much. We also recommend using -# threaded I/O only if you actually have performance problems, with Redis -# instances being able to use a quite big percentage of CPU time, otherwise -# there is no point in using this feature. -# -# So for instance if you have a four cores boxes, try to use 2 or 3 I/O -# threads, if you have a 8 cores, try to use 6 threads. In order to -# enable I/O threads use the following configuration directive: -# -# io-threads 4 -# -# Setting io-threads to 1 will just use the main thread as usual. -# When I/O threads are enabled, we only use threads for writes, that is -# to thread the write(2) syscall and transfer the client buffers to the -# socket. However it is also possible to enable threading of reads and -# protocol parsing using the following configuration directive, by setting -# it to yes: -# -# io-threads-do-reads no -# -# Usually threading reads doesn't help much. -# -# NOTE 1: This configuration directive cannot be changed at runtime via -# CONFIG SET. Also, this feature currently does not work when SSL is -# enabled. -# -# NOTE 2: If you want to test the Redis speedup using redis-benchmark, make -# sure you also run the benchmark itself in threaded mode, using the -# --threads option to match the number of Redis threads, otherwise you'll not -# be able to notice the improvements. - -############################ KERNEL OOM CONTROL ############################## - -# On Linux, it is possible to hint the kernel OOM killer on what processes -# should be killed first when out of memory. -# -# Enabling this feature makes Redis actively control the oom_score_adj value -# for all its processes, depending on their role. The default scores will -# attempt to have background child processes killed before all others, and -# replicas killed before masters. -# -# Redis supports these options: -# -# no: Don't make changes to oom-score-adj (default). -# yes: Alias to "relative" see below. -# absolute: Values in oom-score-adj-values are written as is to the kernel. -# relative: Values are used relative to the initial value of oom_score_adj when -# the server starts and are then clamped to a range of -1000 to 1000. -# Because typically the initial value is 0, they will often match the -# absolute values. -oom-score-adj no - -# When oom-score-adj is used, this directive controls the specific values used -# for master, replica and background child processes. Values range -2000 to -# 2000 (higher means more likely to be killed). -# -# Unprivileged processes (not root, and without CAP_SYS_RESOURCE capabilities) -# can freely increase their value, but not decrease it below its initial -# settings. This means that setting oom-score-adj to "relative" and setting the -# oom-score-adj-values to positive values will always succeed. -oom-score-adj-values 0 200 800 - - -#################### KERNEL transparent hugepage CONTROL ###################### - -# Usually the kernel Transparent Huge Pages control is set to "madvise" or -# or "never" by default (/sys/kernel/mm/transparent_hugepage/enabled), in which -# case this config has no effect. On systems in which it is set to "always", -# redis will attempt to disable it specifically for the redis process in order -# to avoid latency problems specifically with fork(2) and CoW. -# If for some reason you prefer to keep it enabled, you can set this config to -# "no" and the kernel global to "always". - -disable-thp yes - -############################## APPEND ONLY MODE ############################### - -# By default Redis asynchronously dumps the dataset on disk. This mode is -# good enough in many applications, but an issue with the Redis process or -# a power outage may result into a few minutes of writes lost (depending on -# the configured save points). -# -# The Append Only File is an alternative persistence mode that provides -# much better durability. For instance using the default data fsync policy -# (see later in the config file) Redis can lose just one second of writes in a -# dramatic event like a server power outage, or a single write if something -# wrong with the Redis process itself happens, but the operating system is -# still running correctly. -# -# AOF and RDB persistence can be enabled at the same time without problems. -# If the AOF is enabled on startup Redis will load the AOF, that is the file -# with the better durability guarantees. -# -# Please check https://redis.io/topics/persistence for more information. - -appendonly no - -# The base name of the append only file. -# -# Redis 7 and newer use a set of append-only files to persist the dataset -# and changes applied to it. There are two basic types of files in use: -# -# - Base files, which are a snapshot representing the complete state of the -# dataset at the time the file was created. Base files can be either in -# the form of RDB (binary serialized) or AOF (textual commands). -# - Incremental files, which contain additional commands that were applied -# to the dataset following the previous file. -# -# In addition, manifest files are used to track the files and the order in -# which they were created and should be applied. -# -# Append-only file names are created by Redis following a specific pattern. -# The file name's prefix is based on the 'appendfilename' configuration -# parameter, followed by additional information about the sequence and type. -# -# For example, if appendfilename is set to appendonly.aof, the following file -# names could be derived: -# -# - appendonly.aof.1.base.rdb as a base file. -# - appendonly.aof.1.incr.aof, appendonly.aof.2.incr.aof as incremental files. -# - appendonly.aof.manifest as a manifest file. - -appendfilename "appendonly.aof" - -# For convenience, Redis stores all persistent append-only files in a dedicated -# directory. The name of the directory is determined by the appenddirname -# configuration parameter. - -appenddirname "appendonlydir" - -# The fsync() call tells the Operating System to actually write data on disk -# instead of waiting for more data in the output buffer. Some OS will really flush -# data on disk, some other OS will just try to do it ASAP. -# -# Redis supports three different modes: -# -# no: don't fsync, just let the OS flush the data when it wants. Faster. -# always: fsync after every write to the append only log. Slow, Safest. -# everysec: fsync only one time every second. Compromise. -# -# The default is "everysec", as that's usually the right compromise between -# speed and data safety. It's up to you to understand if you can relax this to -# "no" that will let the operating system flush the output buffer when -# it wants, for better performances (but if you can live with the idea of -# some data loss consider the default persistence mode that's snapshotting), -# or on the contrary, use "always" that's very slow but a bit safer than -# everysec. -# -# More details please check the following article: -# http://antirez.com/post/redis-persistence-demystified.html -# -# If unsure, use "everysec". - -# appendfsync always -appendfsync everysec -# appendfsync no - -# When the AOF fsync policy is set to always or everysec, and a background -# saving process (a background save or AOF log background rewriting) is -# performing a lot of I/O against the disk, in some Linux configurations -# Redis may block too long on the fsync() call. Note that there is no fix for -# this currently, as even performing fsync in a different thread will block -# our synchronous write(2) call. -# -# In order to mitigate this problem it's possible to use the following option -# that will prevent fsync() from being called in the main process while a -# BGSAVE or BGREWRITEAOF is in progress. -# -# This means that while another child is saving, the durability of Redis is -# the same as "appendfsync no". In practical terms, this means that it is -# possible to lose up to 30 seconds of log in the worst scenario (with the -# default Linux settings). -# -# If you have latency problems turn this to "yes". Otherwise leave it as -# "no" that is the safest pick from the point of view of durability. - -no-appendfsync-on-rewrite no - -# Automatic rewrite of the append only file. -# Redis is able to automatically rewrite the log file implicitly calling -# BGREWRITEAOF when the AOF log size grows by the specified percentage. -# -# This is how it works: Redis remembers the size of the AOF file after the -# latest rewrite (if no rewrite has happened since the restart, the size of -# the AOF at startup is used). -# -# This base size is compared to the current size. If the current size is -# bigger than the specified percentage, the rewrite is triggered. Also -# you need to specify a minimal size for the AOF file to be rewritten, this -# is useful to avoid rewriting the AOF file even if the percentage increase -# is reached but it is still pretty small. -# -# Specify a percentage of zero in order to disable the automatic AOF -# rewrite feature. - -auto-aof-rewrite-percentage 100 -auto-aof-rewrite-min-size 64mb - -# An AOF file may be found to be truncated at the end during the Redis -# startup process, when the AOF data gets loaded back into memory. -# This may happen when the system where Redis is running -# crashes, especially when an ext4 filesystem is mounted without the -# data=ordered option (however this can't happen when Redis itself -# crashes or aborts but the operating system still works correctly). -# -# Redis can either exit with an error when this happens, or load as much -# data as possible (the default now) and start if the AOF file is found -# to be truncated at the end. The following option controls this behavior. -# -# If aof-load-truncated is set to yes, a truncated AOF file is loaded and -# the Redis server starts emitting a log to inform the user of the event. -# Otherwise if the option is set to no, the server aborts with an error -# and refuses to start. When the option is set to no, the user requires -# to fix the AOF file using the "redis-check-aof" utility before to restart -# the server. -# -# Note that if the AOF file will be found to be corrupted in the middle -# the server will still exit with an error. This option only applies when -# Redis will try to read more data from the AOF file but not enough bytes -# will be found. -aof-load-truncated yes - -# Redis can create append-only base files in either RDB or AOF formats. Using -# the RDB format is always faster and more efficient, and disabling it is only -# supported for backward compatibility purposes. -aof-use-rdb-preamble yes - -# Redis supports recording timestamp annotations in the AOF to support restoring -# the data from a specific point-in-time. However, using this capability changes -# the AOF format in a way that may not be compatible with existing AOF parsers. -aof-timestamp-enabled no - -################################ SHUTDOWN ##################################### - -# Maximum time to wait for replicas when shutting down, in seconds. -# -# During shut down, a grace period allows any lagging replicas to catch up with -# the latest replication offset before the master exists. This period can -# prevent data loss, especially for deployments without configured disk backups. -# -# The 'shutdown-timeout' value is the grace period's duration in seconds. It is -# only applicable when the instance has replicas. To disable the feature, set -# the value to 0. -# -# shutdown-timeout 10 - -# When Redis receives a SIGINT or SIGTERM, shutdown is initiated and by default -# an RDB snapshot is written to disk in a blocking operation if save points are configured. -# The options used on signaled shutdown can include the following values: -# default: Saves RDB snapshot only if save points are configured. -# Waits for lagging replicas to catch up. -# save: Forces a DB saving operation even if no save points are configured. -# nosave: Prevents DB saving operation even if one or more save points are configured. -# now: Skips waiting for lagging replicas. -# force: Ignores any errors that would normally prevent the server from exiting. -# -# Any combination of values is allowed as long as "save" and "nosave" are not set simultaneously. -# Example: "nosave force now" -# -# shutdown-on-sigint default -# shutdown-on-sigterm default - -################ NON-DETERMINISTIC LONG BLOCKING COMMANDS ##################### - -# Maximum time in milliseconds for EVAL scripts, functions and in some cases -# modules' commands before Redis can start processing or rejecting other clients. -# -# If the maximum execution time is reached Redis will start to reply to most -# commands with a BUSY error. -# -# In this state Redis will only allow a handful of commands to be executed. -# For instance, SCRIPT KILL, FUNCTION KILL, SHUTDOWN NOSAVE and possibly some -# module specific 'allow-busy' commands. -# -# SCRIPT KILL and FUNCTION KILL will only be able to stop a script that did not -# yet call any write commands, so SHUTDOWN NOSAVE may be the only way to stop -# the server in the case a write command was already issued by the script when -# the user doesn't want to wait for the natural termination of the script. -# -# The default is 5 seconds. It is possible to set it to 0 or a negative value -# to disable this mechanism (uninterrupted execution). Note that in the past -# this config had a different name, which is now an alias, so both of these do -# the same: -# lua-time-limit 5000 -# busy-reply-threshold 5000 - -################################ REDIS CLUSTER ############################### - -# Normal Redis instances can't be part of a Redis Cluster; only nodes that are -# started as cluster nodes can. In order to start a Redis instance as a -# cluster node enable the cluster support uncommenting the following: -# -# cluster-enabled yes - -# Every cluster node has a cluster configuration file. This file is not -# intended to be edited by hand. It is created and updated by Redis nodes. -# Every Redis Cluster node requires a different cluster configuration file. -# Make sure that instances running in the same system do not have -# overlapping cluster configuration file names. -# -# cluster-config-file nodes-6379.conf - -# Cluster node timeout is the amount of milliseconds a node must be unreachable -# for it to be considered in failure state. -# Most other internal time limits are a multiple of the node timeout. -# -# cluster-node-timeout 15000 - -# The cluster port is the port that the cluster bus will listen for inbound connections on. When set -# to the default value, 0, it will be bound to the command port + 10000. Setting this value requires -# you to specify the cluster bus port when executing cluster meet. -# cluster-port 0 - -# A replica of a failing master will avoid to start a failover if its data -# looks too old. -# -# There is no simple way for a replica to actually have an exact measure of -# its "data age", so the following two checks are performed: -# -# 1) If there are multiple replicas able to failover, they exchange messages -# in order to try to give an advantage to the replica with the best -# replication offset (more data from the master processed). -# Replicas will try to get their rank by offset, and apply to the start -# of the failover a delay proportional to their rank. -# -# 2) Every single replica computes the time of the last interaction with -# its master. This can be the last ping or command received (if the master -# is still in the "connected" state), or the time that elapsed since the -# disconnection with the master (if the replication link is currently down). -# If the last interaction is too old, the replica will not try to failover -# at all. -# -# The point "2" can be tuned by user. Specifically a replica will not perform -# the failover if, since the last interaction with the master, the time -# elapsed is greater than: -# -# (node-timeout * cluster-replica-validity-factor) + repl-ping-replica-period -# -# So for example if node-timeout is 30 seconds, and the cluster-replica-validity-factor -# is 10, and assuming a default repl-ping-replica-period of 10 seconds, the -# replica will not try to failover if it was not able to talk with the master -# for longer than 310 seconds. -# -# A large cluster-replica-validity-factor may allow replicas with too old data to failover -# a master, while a too small value may prevent the cluster from being able to -# elect a replica at all. -# -# For maximum availability, it is possible to set the cluster-replica-validity-factor -# to a value of 0, which means, that replicas will always try to failover the -# master regardless of the last time they interacted with the master. -# (However they'll always try to apply a delay proportional to their -# offset rank). -# -# Zero is the only value able to guarantee that when all the partitions heal -# the cluster will always be able to continue. -# -# cluster-replica-validity-factor 10 - -# Cluster replicas are able to migrate to orphaned masters, that are masters -# that are left without working replicas. This improves the cluster ability -# to resist to failures as otherwise an orphaned master can't be failed over -# in case of failure if it has no working replicas. -# -# Replicas migrate to orphaned masters only if there are still at least a -# given number of other working replicas for their old master. This number -# is the "migration barrier". A migration barrier of 1 means that a replica -# will migrate only if there is at least 1 other working replica for its master -# and so forth. It usually reflects the number of replicas you want for every -# master in your cluster. -# -# Default is 1 (replicas migrate only if their masters remain with at least -# one replica). To disable migration just set it to a very large value or -# set cluster-allow-replica-migration to 'no'. -# A value of 0 can be set but is useful only for debugging and dangerous -# in production. -# -# cluster-migration-barrier 1 - -# Turning off this option allows to use less automatic cluster configuration. -# It both disables migration to orphaned masters and migration from masters -# that became empty. -# -# Default is 'yes' (allow automatic migrations). -# -# cluster-allow-replica-migration yes - -# By default Redis Cluster nodes stop accepting queries if they detect there -# is at least a hash slot uncovered (no available node is serving it). -# This way if the cluster is partially down (for example a range of hash slots -# are no longer covered) all the cluster becomes, eventually, unavailable. -# It automatically returns available as soon as all the slots are covered again. -# -# However sometimes you want the subset of the cluster which is working, -# to continue to accept queries for the part of the key space that is still -# covered. In order to do so, just set the cluster-require-full-coverage -# option to no. -# -# cluster-require-full-coverage yes - -# This option, when set to yes, prevents replicas from trying to failover its -# master during master failures. However the replica can still perform a -# manual failover, if forced to do so. -# -# This is useful in different scenarios, especially in the case of multiple -# data center operations, where we want one side to never be promoted if not -# in the case of a total DC failure. -# -# cluster-replica-no-failover no - -# This option, when set to yes, allows nodes to serve read traffic while the -# cluster is in a down state, as long as it believes it owns the slots. -# -# This is useful for two cases. The first case is for when an application -# doesn't require consistency of data during node failures or network partitions. -# One example of this is a cache, where as long as the node has the data it -# should be able to serve it. -# -# The second use case is for configurations that don't meet the recommended -# three shards but want to enable cluster mode and scale later. A -# master outage in a 1 or 2 shard configuration causes a read/write outage to the -# entire cluster without this option set, with it set there is only a write outage. -# Without a quorum of masters, slot ownership will not change automatically. -# -# cluster-allow-reads-when-down no - -# This option, when set to yes, allows nodes to serve pubsub shard traffic while -# the cluster is in a down state, as long as it believes it owns the slots. -# -# This is useful if the application would like to use the pubsub feature even when -# the cluster global stable state is not OK. If the application wants to make sure only -# one shard is serving a given channel, this feature should be kept as yes. -# -# cluster-allow-pubsubshard-when-down yes - -# Cluster link send buffer limit is the limit on the memory usage of an individual -# cluster bus link's send buffer in bytes. Cluster links would be freed if they exceed -# this limit. This is to primarily prevent send buffers from growing unbounded on links -# toward slow peers (E.g. PubSub messages being piled up). -# This limit is disabled by default. Enable this limit when 'mem_cluster_links' INFO field -# and/or 'send-buffer-allocated' entries in the 'CLUSTER LINKS` command output continuously increase. -# Minimum limit of 1gb is recommended so that cluster link buffer can fit in at least a single -# PubSub message by default. (client-query-buffer-limit default value is 1gb) -# -# cluster-link-sendbuf-limit 0 - -# Clusters can configure their announced hostname using this config. This is a common use case for -# applications that need to use TLS Server Name Indication (SNI) or dealing with DNS based -# routing. By default this value is only shown as additional metadata in the CLUSTER SLOTS -# command, but can be changed using 'cluster-preferred-endpoint-type' config. This value is -# communicated along the clusterbus to all nodes, setting it to an empty string will remove -# the hostname and also propagate the removal. -# -# cluster-announce-hostname "" - -# Clusters can advertise how clients should connect to them using either their IP address, -# a user defined hostname, or by declaring they have no endpoint. Which endpoint is -# shown as the preferred endpoint is set by using the cluster-preferred-endpoint-type -# config with values 'ip', 'hostname', or 'unknown-endpoint'. This value controls how -# the endpoint returned for MOVED/ASKING requests as well as the first field of CLUSTER SLOTS. -# If the preferred endpoint type is set to hostname, but no announced hostname is set, a '?' -# will be returned instead. -# -# When a cluster advertises itself as having an unknown endpoint, it's indicating that -# the server doesn't know how clients can reach the cluster. This can happen in certain -# networking situations where there are multiple possible routes to the node, and the -# server doesn't know which one the client took. In this case, the server is expecting -# the client to reach out on the same endpoint it used for making the last request, but use -# the port provided in the response. -# -# cluster-preferred-endpoint-type ip - -# In order to setup your cluster make sure to read the documentation -# available at https://redis.io web site. - -########################## CLUSTER DOCKER/NAT support ######################## - -# In certain deployments, Redis Cluster nodes address discovery fails, because -# addresses are NAT-ted or because ports are forwarded (the typical case is -# Docker and other containers). -# -# In order to make Redis Cluster working in such environments, a static -# configuration where each node knows its public address is needed. The -# following four options are used for this scope, and are: -# -# * cluster-announce-ip -# * cluster-announce-port -# * cluster-announce-tls-port -# * cluster-announce-bus-port -# -# Each instructs the node about its address, client ports (for connections -# without and with TLS) and cluster message bus port. The information is then -# published in the header of the bus packets so that other nodes will be able to -# correctly map the address of the node publishing the information. -# -# If cluster-tls is set to yes and cluster-announce-tls-port is omitted or set -# to zero, then cluster-announce-port refers to the TLS port. Note also that -# cluster-announce-tls-port has no effect if cluster-tls is set to no. -# -# If the above options are not used, the normal Redis Cluster auto-detection -# will be used instead. -# -# Note that when remapped, the bus port may not be at the fixed offset of -# clients port + 10000, so you can specify any port and bus-port depending -# on how they get remapped. If the bus-port is not set, a fixed offset of -# 10000 will be used as usual. -# -# Example: -# -# cluster-announce-ip 10.1.1.5 -# cluster-announce-tls-port 6379 -# cluster-announce-port 0 -# cluster-announce-bus-port 6380 - -################################## SLOW LOG ################################### - -# The Redis Slow Log is a system to log queries that exceeded a specified -# execution time. The execution time does not include the I/O operations -# like talking with the client, sending the reply and so forth, -# but just the time needed to actually execute the command (this is the only -# stage of command execution where the thread is blocked and can not serve -# other requests in the meantime). -# -# You can configure the slow log with two parameters: one tells Redis -# what is the execution time, in microseconds, to exceed in order for the -# command to get logged, and the other parameter is the length of the -# slow log. When a new command is logged the oldest one is removed from the -# queue of logged commands. - -# The following time is expressed in microseconds, so 1000000 is equivalent -# to one second. Note that a negative number disables the slow log, while -# a value of zero forces the logging of every command. -slowlog-log-slower-than 10000 - -# There is no limit to this length. Just be aware that it will consume memory. -# You can reclaim memory used by the slow log with SLOWLOG RESET. -slowlog-max-len 128 - -################################ LATENCY MONITOR ############################## - -# The Redis latency monitoring subsystem samples different operations -# at runtime in order to collect data related to possible sources of -# latency of a Redis instance. -# -# Via the LATENCY command this information is available to the user that can -# print graphs and obtain reports. -# -# The system only logs operations that were performed in a time equal or -# greater than the amount of milliseconds specified via the -# latency-monitor-threshold configuration directive. When its value is set -# to zero, the latency monitor is turned off. -# -# By default latency monitoring is disabled since it is mostly not needed -# if you don't have latency issues, and collecting data has a performance -# impact, that while very small, can be measured under big load. Latency -# monitoring can easily be enabled at runtime using the command -# "CONFIG SET latency-monitor-threshold " if needed. -latency-monitor-threshold 0 - -################################ LATENCY TRACKING ############################## - -# The Redis extended latency monitoring tracks the per command latencies and enables -# exporting the percentile distribution via the INFO latencystats command, -# and cumulative latency distributions (histograms) via the LATENCY command. -# -# By default, the extended latency monitoring is enabled since the overhead -# of keeping track of the command latency is very small. -# latency-tracking yes - -# By default the exported latency percentiles via the INFO latencystats command -# are the p50, p99, and p999. -# latency-tracking-info-percentiles 50 99 99.9 - -############################# EVENT NOTIFICATION ############################## - -# Redis can notify Pub/Sub clients about events happening in the key space. -# This feature is documented at https://redis.io/topics/notifications -# -# For instance if keyspace events notification is enabled, and a client -# performs a DEL operation on key "foo" stored in the Database 0, two -# messages will be published via Pub/Sub: -# -# PUBLISH __keyspace@0__:foo del -# PUBLISH __keyevent@0__:del foo -# -# It is possible to select the events that Redis will notify among a set -# of classes. Every class is identified by a single character: -# -# K Keyspace events, published with __keyspace@__ prefix. -# E Keyevent events, published with __keyevent@__ prefix. -# g Generic commands (non-type specific) like DEL, EXPIRE, RENAME, ... -# $ String commands -# l List commands -# s Set commands -# h Hash commands -# z Sorted set commands -# x Expired events (events generated every time a key expires) -# e Evicted events (events generated when a key is evicted for maxmemory) -# n New key events (Note: not included in the 'A' class) -# t Stream commands -# d Module key type events -# m Key-miss events (Note: It is not included in the 'A' class) -# A Alias for g$lshzxetd, so that the "AKE" string means all the events -# (Except key-miss events which are excluded from 'A' due to their -# unique nature). -# -# The "notify-keyspace-events" takes as argument a string that is composed -# of zero or multiple characters. The empty string means that notifications -# are disabled. -# -# Example: to enable list and generic events, from the point of view of the -# event name, use: -# -# notify-keyspace-events Elg -# -# Example 2: to get the stream of the expired keys subscribing to channel -# name __keyevent@0__:expired use: -# -# notify-keyspace-events Ex -# -# By default all notifications are disabled because most users don't need -# this feature and the feature has some overhead. Note that if you don't -# specify at least one of K or E, no events will be delivered. -notify-keyspace-events "" - -############################### ADVANCED CONFIG ############################### - -# Hashes are encoded using a memory efficient data structure when they have a -# small number of entries, and the biggest entry does not exceed a given -# threshold. These thresholds can be configured using the following directives. -hash-max-listpack-entries 512 -hash-max-listpack-value 64 - -# Lists are also encoded in a special way to save a lot of space. -# The number of entries allowed per internal list node can be specified -# as a fixed maximum size or a maximum number of elements. -# For a fixed maximum size, use -5 through -1, meaning: -# -5: max size: 64 Kb <-- not recommended for normal workloads -# -4: max size: 32 Kb <-- not recommended -# -3: max size: 16 Kb <-- probably not recommended -# -2: max size: 8 Kb <-- good -# -1: max size: 4 Kb <-- good -# Positive numbers mean store up to _exactly_ that number of elements -# per list node. -# The highest performing option is usually -2 (8 Kb size) or -1 (4 Kb size), -# but if your use case is unique, adjust the settings as necessary. -list-max-listpack-size -2 - -# Lists may also be compressed. -# Compress depth is the number of quicklist ziplist nodes from *each* side of -# the list to *exclude* from compression. The head and tail of the list -# are always uncompressed for fast push/pop operations. Settings are: -# 0: disable all list compression -# 1: depth 1 means "don't start compressing until after 1 node into the list, -# going from either the head or tail" -# So: [head]->node->node->...->node->[tail] -# [head], [tail] will always be uncompressed; inner nodes will compress. -# 2: [head]->[next]->node->node->...->node->[prev]->[tail] -# 2 here means: don't compress head or head->next or tail->prev or tail, -# but compress all nodes between them. -# 3: [head]->[next]->[next]->node->node->...->node->[prev]->[prev]->[tail] -# etc. -list-compress-depth 0 - -# Sets have a special encoding in just one case: when a set is composed -# of just strings that happen to be integers in radix 10 in the range -# of 64 bit signed integers. -# The following configuration setting sets the limit in the size of the -# set in order to use this special memory saving encoding. -set-max-intset-entries 512 - -# Similarly to hashes and lists, sorted sets are also specially encoded in -# order to save a lot of space. This encoding is only used when the length and -# elements of a sorted set are below the following limits: -zset-max-listpack-entries 128 -zset-max-listpack-value 64 - -# HyperLogLog sparse representation bytes limit. The limit includes the -# 16 bytes header. When an HyperLogLog using the sparse representation crosses -# this limit, it is converted into the dense representation. -# -# A value greater than 16000 is totally useless, since at that point the -# dense representation is more memory efficient. -# -# The suggested value is ~ 3000 in order to have the benefits of -# the space efficient encoding without slowing down too much PFADD, -# which is O(N) with the sparse encoding. The value can be raised to -# ~ 10000 when CPU is not a concern, but space is, and the data set is -# composed of many HyperLogLogs with cardinality in the 0 - 15000 range. -hll-sparse-max-bytes 3000 - -# Streams macro node max size / items. The stream data structure is a radix -# tree of big nodes that encode multiple items inside. Using this configuration -# it is possible to configure how big a single node can be in bytes, and the -# maximum number of items it may contain before switching to a new node when -# appending new stream entries. If any of the following settings are set to -# zero, the limit is ignored, so for instance it is possible to set just a -# max entries limit by setting max-bytes to 0 and max-entries to the desired -# value. -stream-node-max-bytes 4096 -stream-node-max-entries 100 - -# Active rehashing uses 1 millisecond every 100 milliseconds of CPU time in -# order to help rehashing the main Redis hash table (the one mapping top-level -# keys to values). The hash table implementation Redis uses (see dict.c) -# performs a lazy rehashing: the more operation you run into a hash table -# that is rehashing, the more rehashing "steps" are performed, so if the -# server is idle the rehashing is never complete and some more memory is used -# by the hash table. -# -# The default is to use this millisecond 10 times every second in order to -# actively rehash the main dictionaries, freeing memory when possible. -# -# If unsure: -# use "activerehashing no" if you have hard latency requirements and it is -# not a good thing in your environment that Redis can reply from time to time -# to queries with 2 milliseconds delay. -# -# use "activerehashing yes" if you don't have such hard requirements but -# want to free memory asap when possible. -activerehashing yes - -# The client output buffer limits can be used to force disconnection of clients -# that are not reading data from the server fast enough for some reason (a -# common reason is that a Pub/Sub client can't consume messages as fast as the -# publisher can produce them). -# -# The limit can be set differently for the three different classes of clients: -# -# normal -> normal clients including MONITOR clients -# replica -> replica clients -# pubsub -> clients subscribed to at least one pubsub channel or pattern -# -# The syntax of every client-output-buffer-limit directive is the following: -# -# client-output-buffer-limit -# -# A client is immediately disconnected once the hard limit is reached, or if -# the soft limit is reached and remains reached for the specified number of -# seconds (continuously). -# So for instance if the hard limit is 32 megabytes and the soft limit is -# 16 megabytes / 10 seconds, the client will get disconnected immediately -# if the size of the output buffers reach 32 megabytes, but will also get -# disconnected if the client reaches 16 megabytes and continuously overcomes -# the limit for 10 seconds. -# -# By default normal clients are not limited because they don't receive data -# without asking (in a push way), but just after a request, so only -# asynchronous clients may create a scenario where data is requested faster -# than it can read. -# -# Instead there is a default limit for pubsub and replica clients, since -# subscribers and replicas receive data in a push fashion. -# -# Note that it doesn't make sense to set the replica clients output buffer -# limit lower than the repl-backlog-size config (partial sync will succeed -# and then replica will get disconnected). -# Such a configuration is ignored (the size of repl-backlog-size will be used). -# This doesn't have memory consumption implications since the replica client -# will share the backlog buffers memory. -# -# Both the hard or the soft limit can be disabled by setting them to zero. -client-output-buffer-limit normal 0 0 0 -client-output-buffer-limit replica 256mb 64mb 60 -client-output-buffer-limit pubsub 32mb 8mb 60 - -# Client query buffers accumulate new commands. They are limited to a fixed -# amount by default in order to avoid that a protocol desynchronization (for -# instance due to a bug in the client) will lead to unbound memory usage in -# the query buffer. However you can configure it here if you have very special -# needs, such us huge multi/exec requests or alike. -# -# client-query-buffer-limit 1gb - -# In some scenarios client connections can hog up memory leading to OOM -# errors or data eviction. To avoid this we can cap the accumulated memory -# used by all client connections (all pubsub and normal clients). Once we -# reach that limit connections will be dropped by the server freeing up -# memory. The server will attempt to drop the connections using the most -# memory first. We call this mechanism "client eviction". -# -# Client eviction is configured using the maxmemory-clients setting as follows: -# 0 - client eviction is disabled (default) -# -# A memory value can be used for the client eviction threshold, -# for example: -# maxmemory-clients 1g -# -# A percentage value (between 1% and 100%) means the client eviction threshold -# is based on a percentage of the maxmemory setting. For example to set client -# eviction at 5% of maxmemory: -# maxmemory-clients 5% - -# In the Redis protocol, bulk requests, that are, elements representing single -# strings, are normally limited to 512 mb. However you can change this limit -# here, but must be 1mb or greater -# -# proto-max-bulk-len 512mb - -# Redis calls an internal function to perform many background tasks, like -# closing connections of clients in timeout, purging expired keys that are -# never requested, and so forth. -# -# Not all tasks are performed with the same frequency, but Redis checks for -# tasks to perform according to the specified "hz" value. -# -# By default "hz" is set to 10. Raising the value will use more CPU when -# Redis is idle, but at the same time will make Redis more responsive when -# there are many keys expiring at the same time, and timeouts may be -# handled with more precision. -# -# The range is between 1 and 500, however a value over 100 is usually not -# a good idea. Most users should use the default of 10 and raise this up to -# 100 only in environments where very low latency is required. -hz 10 - -# Normally it is useful to have an HZ value which is proportional to the -# number of clients connected. This is useful in order, for instance, to -# avoid too many clients are processed for each background task invocation -# in order to avoid latency spikes. -# -# Since the default HZ value by default is conservatively set to 10, Redis -# offers, and enables by default, the ability to use an adaptive HZ value -# which will temporarily raise when there are many connected clients. -# -# When dynamic HZ is enabled, the actual configured HZ will be used -# as a baseline, but multiples of the configured HZ value will be actually -# used as needed once more clients are connected. In this way an idle -# instance will use very little CPU time while a busy instance will be -# more responsive. -dynamic-hz yes - -# When a child rewrites the AOF file, if the following option is enabled -# the file will be fsync-ed every 4 MB of data generated. This is useful -# in order to commit the file to the disk more incrementally and avoid -# big latency spikes. -aof-rewrite-incremental-fsync yes - -# When redis saves RDB file, if the following option is enabled -# the file will be fsync-ed every 4 MB of data generated. This is useful -# in order to commit the file to the disk more incrementally and avoid -# big latency spikes. -rdb-save-incremental-fsync yes - -# Redis LFU eviction (see maxmemory setting) can be tuned. However it is a good -# idea to start with the default settings and only change them after investigating -# how to improve the performances and how the keys LFU change over time, which -# is possible to inspect via the OBJECT FREQ command. -# -# There are two tunable parameters in the Redis LFU implementation: the -# counter logarithm factor and the counter decay time. It is important to -# understand what the two parameters mean before changing them. -# -# The LFU counter is just 8 bits per key, it's maximum value is 255, so Redis -# uses a probabilistic increment with logarithmic behavior. Given the value -# of the old counter, when a key is accessed, the counter is incremented in -# this way: -# -# 1. A random number R between 0 and 1 is extracted. -# 2. A probability P is calculated as 1/(old_value*lfu_log_factor+1). -# 3. The counter is incremented only if R < P. -# -# The default lfu-log-factor is 10. This is a table of how the frequency -# counter changes with a different number of accesses with different -# logarithmic factors: -# -# +--------+------------+------------+------------+------------+------------+ -# | factor | 100 hits | 1000 hits | 100K hits | 1M hits | 10M hits | -# +--------+------------+------------+------------+------------+------------+ -# | 0 | 104 | 255 | 255 | 255 | 255 | -# +--------+------------+------------+------------+------------+------------+ -# | 1 | 18 | 49 | 255 | 255 | 255 | -# +--------+------------+------------+------------+------------+------------+ -# | 10 | 10 | 18 | 142 | 255 | 255 | -# +--------+------------+------------+------------+------------+------------+ -# | 100 | 8 | 11 | 49 | 143 | 255 | -# +--------+------------+------------+------------+------------+------------+ -# -# NOTE: The above table was obtained by running the following commands: -# -# redis-benchmark -n 1000000 incr foo -# redis-cli object freq foo -# -# NOTE 2: The counter initial value is 5 in order to give new objects a chance -# to accumulate hits. -# -# The counter decay time is the time, in minutes, that must elapse in order -# for the key counter to be divided by two (or decremented if it has a value -# less <= 10). -# -# The default value for the lfu-decay-time is 1. A special value of 0 means to -# decay the counter every time it happens to be scanned. -# -# lfu-log-factor 10 -# lfu-decay-time 1 - -########################### ACTIVE DEFRAGMENTATION ####################### -# -# What is active defragmentation? -# ------------------------------- -# -# Active (online) defragmentation allows a Redis server to compact the -# spaces left between small allocations and deallocations of data in memory, -# thus allowing to reclaim back memory. -# -# Fragmentation is a natural process that happens with every allocator (but -# less so with Jemalloc, fortunately) and certain workloads. Normally a server -# restart is needed in order to lower the fragmentation, or at least to flush -# away all the data and create it again. However thanks to this feature -# implemented by Oran Agra for Redis 4.0 this process can happen at runtime -# in a "hot" way, while the server is running. -# -# Basically when the fragmentation is over a certain level (see the -# configuration options below) Redis will start to create new copies of the -# values in contiguous memory regions by exploiting certain specific Jemalloc -# features (in order to understand if an allocation is causing fragmentation -# and to allocate it in a better place), and at the same time, will release the -# old copies of the data. This process, repeated incrementally for all the keys -# will cause the fragmentation to drop back to normal values. -# -# Important things to understand: -# -# 1. This feature is disabled by default, and only works if you compiled Redis -# to use the copy of Jemalloc we ship with the source code of Redis. -# This is the default with Linux builds. -# -# 2. You never need to enable this feature if you don't have fragmentation -# issues. -# -# 3. Once you experience fragmentation, you can enable this feature when -# needed with the command "CONFIG SET activedefrag yes". -# -# The configuration parameters are able to fine tune the behavior of the -# defragmentation process. If you are not sure about what they mean it is -# a good idea to leave the defaults untouched. - -# Active defragmentation is disabled by default -# activedefrag no - -# Minimum amount of fragmentation waste to start active defrag -# active-defrag-ignore-bytes 100mb - -# Minimum percentage of fragmentation to start active defrag -# active-defrag-threshold-lower 10 - -# Maximum percentage of fragmentation at which we use maximum effort -# active-defrag-threshold-upper 100 - -# Minimal effort for defrag in CPU percentage, to be used when the lower -# threshold is reached -# active-defrag-cycle-min 1 - -# Maximal effort for defrag in CPU percentage, to be used when the upper -# threshold is reached -# active-defrag-cycle-max 25 - -# Maximum number of set/hash/zset/list fields that will be processed from -# the main dictionary scan -# active-defrag-max-scan-fields 1000 - -# Jemalloc background thread for purging will be enabled by default -jemalloc-bg-thread yes - -# It is possible to pin different threads and processes of Redis to specific -# CPUs in your system, in order to maximize the performances of the server. -# This is useful both in order to pin different Redis threads in different -# CPUs, but also in order to make sure that multiple Redis instances running -# in the same host will be pinned to different CPUs. -# -# Normally you can do this using the "taskset" command, however it is also -# possible to this via Redis configuration directly, both in Linux and FreeBSD. -# -# You can pin the server/IO threads, bio threads, aof rewrite child process, and -# the bgsave child process. The syntax to specify the cpu list is the same as -# the taskset command: -# -# Set redis server/io threads to cpu affinity 0,2,4,6: -# server_cpulist 0-7:2 -# -# Set bio threads to cpu affinity 1,3: -# bio_cpulist 1,3 -# -# Set aof rewrite child process to cpu affinity 8,9,10,11: -# aof_rewrite_cpulist 8-11 -# -# Set bgsave child process to cpu affinity 1,10,11 -# bgsave_cpulist 1,10-11 - -# In some cases redis will emit warnings and even refuse to start if it detects -# that the system is in bad state, it is possible to suppress these warnings -# by setting the following config which takes a space delimited list of warnings -# to suppress -# -# ignore-warnings ARM64-COW-BUG - -# Redis configuration rewrite by 1Panel - -# End Redis configuration rewrite by 1Panel \ No newline at end of file diff --git a/redis/7.4.4/data.yml b/redis/7.4.4/data.yml deleted file mode 100755 index 2a5670bf1..000000000 --- a/redis/7.4.4/data.yml +++ /dev/null @@ -1,34 +0,0 @@ -additionalProperties: - formFields: - - default: redis - envKey: PANEL_REDIS_ROOT_PASSWORD - labelEn: Database Password - labelZh: 数据库密码 - label: - en: Database Password - ja: データベースのパスワード - ms: Kata Laluan Pangkalan Data - pt-br: Senha do Banco de Dados - ru: Пароль базы данных - ko: 데이터베이스 비밀번호 - zh-hant: 資料庫密碼 - zh: 数据库密码 - random: true - required: false - type: password - - default: 6379 - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh-Hant: 埠 - zh: 端口 - required: true - rule: paramPort - type: number diff --git a/redis/7.4.4/docker-compose.yml b/redis/7.4.4/docker-compose.yml deleted file mode 100644 index af1094659..000000000 --- a/redis/7.4.4/docker-compose.yml +++ /dev/null @@ -1,19 +0,0 @@ -services: - redis: - image: redis:7.4.4 - restart: always - container_name: ${CONTAINER_NAME} - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_HTTP}:6379 - command: redis-server /etc/redis/redis.conf ${PANEL_REDIS_ROOT_PASSWORD:+--requirepass "${PANEL_REDIS_ROOT_PASSWORD}"} - volumes: - - ./data:/data - - ./conf/redis.conf:/etc/redis/redis.conf - - ./logs:/logs - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/redis/8.0.2/conf/redis.conf b/redis/8.0.2/conf/redis.conf deleted file mode 100644 index caf332191..000000000 --- a/redis/8.0.2/conf/redis.conf +++ /dev/null @@ -1,2348 +0,0 @@ -# Redis configuration file example. -# -# Note that in order to read the configuration file, Redis must be -# started with the file path as first argument: -# -# ./redis-server /path/to/redis.conf - -# Note on units: when memory size is needed, it is possible to specify -# it in the usual form of 1k 5GB 4M and so forth: -# -# 1k => 1000 bytes -# 1kb => 1024 bytes -# 1m => 1000000 bytes -# 1mb => 1024*1024 bytes -# 1g => 1000000000 bytes -# 1gb => 1024*1024*1024 bytes -# -# units are case insensitive so 1GB 1Gb 1gB are all the same. - -################################## INCLUDES ################################### - -# Include one or more other config files here. This is useful if you -# have a standard template that goes to all Redis servers but also need -# to customize a few per-server settings. Include files can include -# other files, so use this wisely. -# -# Note that option "include" won't be rewritten by command "CONFIG REWRITE" -# from admin or Redis Sentinel. Since Redis always uses the last processed -# line as value of a configuration directive, you'd better put includes -# at the beginning of this file to avoid overwriting config change at runtime. -# -# If instead you are interested in using includes to override configuration -# options, it is better to use include as the last line. -# -# Included paths may contain wildcards. All files matching the wildcards will -# be included in alphabetical order. -# Note that if an include path contains a wildcards but no files match it when -# the server is started, the include statement will be ignored and no error will -# be emitted. It is safe, therefore, to include wildcard files from empty -# directories. -# -# include /path/to/local.conf -# include /path/to/other.conf -# include /path/to/fragments/*.conf -# - -################################## MODULES ##################################### - -# Load modules at startup. If the server is not able to load modules -# it will abort. It is possible to use multiple loadmodule directives. -# -# loadmodule /path/to/my_module.so -# loadmodule /path/to/other_module.so -# loadmodule /path/to/args_module.so [arg [arg ...]] - -################################## NETWORK ##################################### - -# By default, if no "bind" configuration directive is specified, Redis listens -# for connections from all available network interfaces on the host machine. -# It is possible to listen to just one or multiple selected interfaces using -# the "bind" configuration directive, followed by one or more IP addresses. -# Each address can be prefixed by "-", which means that redis will not fail to -# start if the address is not available. Being not available only refers to -# addresses that does not correspond to any network interface. Addresses that -# are already in use will always fail, and unsupported protocols will always BE -# silently skipped. -# -# Examples: -# -# bind 192.168.1.100 10.0.0.1 # listens on two specific IPv4 addresses -# bind 127.0.0.1 ::1 # listens on loopback IPv4 and IPv6 -# bind * -::* # like the default, all available interfaces -# -# ~~~ WARNING ~~~ If the computer running Redis is directly exposed to the -# internet, binding to all the interfaces is dangerous and will expose the -# instance to everybody on the internet. So by default we uncomment the -# following bind directive, that will force Redis to listen only on the -# IPv4 and IPv6 (if available) loopback interface addresses (this means Redis -# will only be able to accept client connections from the same host that it is -# running on). -# -# IF YOU ARE SURE YOU WANT YOUR INSTANCE TO LISTEN TO ALL THE INTERFACES -# COMMENT OUT THE FOLLOWING LINE. -# -# You will also need to set a password unless you explicitly disable protected -# mode. -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -bind 0.0.0.0 - -# By default, outgoing connections (from replica to master, from Sentinel to -# instances, cluster bus, etc.) are not bound to a specific local address. In -# most cases, this means the operating system will handle that based on routing -# and the interface through which the connection goes out. -# -# Using bind-source-addr it is possible to configure a specific address to bind -# to, which may also affect how the connection gets routed. -# -# Example: -# -# bind-source-addr 10.0.0.1 - -# Protected mode is a layer of security protection, in order to avoid that -# Redis instances left open on the internet are accessed and exploited. -# -# When protected mode is on and the default user has no password, the server -# only accepts local connections from the IPv4 address (127.0.0.1), IPv6 address -# (::1) or Unix domain sockets. -# -# By default protected mode is enabled. You should disable it only if -# you are sure you want clients from other hosts to connect to Redis -# even if no authentication is configured. -protected-mode yes - -# Redis uses default hardened security configuration directives to reduce the -# attack surface on innocent users. Therefore, several sensitive configuration -# directives are immutable, and some potentially-dangerous commands are blocked. -# -# Configuration directives that control files that Redis writes to (e.g., 'dir' -# and 'dbfilename') and that aren't usually modified during runtime -# are protected by making them immutable. -# -# Commands that can increase the attack surface of Redis and that aren't usually -# called by users are blocked by default. -# -# These can be exposed to either all connections or just local ones by setting -# each of the configs listed below to either of these values: -# -# no - Block for any connection (remain immutable) -# yes - Allow for any connection (no protection) -# local - Allow only for local connections. Ones originating from the -# IPv4 address (127.0.0.1), IPv6 address (::1) or Unix domain sockets. -# -# enable-protected-configs no -# enable-debug-command no -# enable-module-command no - -# Accept connections on the specified port, default is 6379 (IANA #815344). -# If port 0 is specified Redis will not listen on a TCP socket. -port 6379 - -# TCP listen() backlog. -# -# In high requests-per-second environments you need a high backlog in order -# to avoid slow clients connection issues. Note that the Linux kernel -# will silently truncate it to the value of /proc/sys/net/core/somaxconn so -# make sure to raise both the value of somaxconn and tcp_max_syn_backlog -# in order to get the desired effect. -tcp-backlog 511 - -# Unix socket. -# -# Specify the path for the Unix socket that will be used to listen for -# incoming connections. There is no default, so Redis will not listen -# on a unix socket when not specified. -# -# unixsocket /run/redis.sock -# unixsocketperm 700 - -# Close the connection after a client is idle for N seconds (0 to disable) -timeout 0 - -# TCP keepalive. -# -# If non-zero, use SO_KEEPALIVE to send TCP ACKs to clients in absence -# of communication. This is useful for two reasons: -# -# 1) Detect dead peers. -# 2) Force network equipment in the middle to consider the connection to be -# alive. -# -# On Linux, the specified value (in seconds) is the period used to send ACKs. -# Note that to close the connection the double of the time is needed. -# On other kernels the period depends on the kernel configuration. -# -# A reasonable value for this option is 300 seconds, which is the new -# Redis default starting with Redis 3.2.1. -tcp-keepalive 300 - -# Apply OS-specific mechanism to mark the listening socket with the specified -# ID, to support advanced routing and filtering capabilities. -# -# On Linux, the ID represents a connection mark. -# On FreeBSD, the ID represents a socket cookie ID. -# On OpenBSD, the ID represents a route table ID. -# -# The default value is 0, which implies no marking is required. -# socket-mark-id 0 - -################################# TLS/SSL ##################################### - -# By default, TLS/SSL is disabled. To enable it, the "tls-port" configuration -# directive can be used to define TLS-listening ports. To enable TLS on the -# default port, use: -# -# port 0 -# tls-port 6379 - -# Configure a X.509 certificate and private key to use for authenticating the -# server to connected clients, masters or cluster peers. These files should be -# PEM formatted. -# -# tls-cert-file redis.crt -# tls-key-file redis.key -# -# If the key file is encrypted using a passphrase, it can be included here -# as well. -# -# tls-key-file-pass secret - -# Normally Redis uses the same certificate for both server functions (accepting -# connections) and client functions (replicating from a master, establishing -# cluster bus connections, etc.). -# -# Sometimes certificates are issued with attributes that designate them as -# client-only or server-only certificates. In that case it may be desired to use -# different certificates for incoming (server) and outgoing (client) -# connections. To do that, use the following directives: -# -# tls-client-cert-file client.crt -# tls-client-key-file client.key -# -# If the key file is encrypted using a passphrase, it can be included here -# as well. -# -# tls-client-key-file-pass secret - -# Configure a DH parameters file to enable Diffie-Hellman (DH) key exchange, -# required by older versions of OpenSSL (<3.0). Newer versions do not require -# this configuration and recommend against it. -# -# tls-dh-params-file redis.dh - -# Configure a CA certificate(s) bundle or directory to authenticate TLS/SSL -# clients and peers. Redis requires an explicit configuration of at least one -# of these, and will not implicitly use the system wide configuration. -# -# tls-ca-cert-file ca.crt -# tls-ca-cert-dir /etc/ssl/certs - -# By default, clients (including replica servers) on a TLS port are required -# to authenticate using valid client side certificates. -# -# If "no" is specified, client certificates are not required and not accepted. -# If "optional" is specified, client certificates are accepted and must be -# valid if provided, but are not required. -# -# tls-auth-clients no -# tls-auth-clients optional - -# By default, a Redis replica does not attempt to establish a TLS connection -# with its master. -# -# Use the following directive to enable TLS on replication links. -# -# tls-replication yes - -# By default, the Redis Cluster bus uses a plain TCP connection. To enable -# TLS for the bus protocol, use the following directive: -# -# tls-cluster yes - -# By default, only TLSv1.2 and TLSv1.3 are enabled and it is highly recommended -# that older formally deprecated versions are kept disabled to reduce the attack surface. -# You can explicitly specify TLS versions to support. -# Allowed values are case insensitive and include "TLSv1", "TLSv1.1", "TLSv1.2", -# "TLSv1.3" (OpenSSL >= 1.1.1) or any combination. -# To enable only TLSv1.2 and TLSv1.3, use: -# -# tls-protocols "TLSv1.2 TLSv1.3" - -# Configure allowed ciphers. See the ciphers(1ssl) manpage for more information -# about the syntax of this string. -# -# Note: this configuration applies only to <= TLSv1.2. -# -# tls-ciphers DEFAULT:!MEDIUM - -# Configure allowed TLSv1.3 ciphersuites. See the ciphers(1ssl) manpage for more -# information about the syntax of this string, and specifically for TLSv1.3 -# ciphersuites. -# -# tls-ciphersuites TLS_CHACHA20_POLY1305_SHA256 - -# When choosing a cipher, use the server's preference instead of the client -# preference. By default, the server follows the client's preference. -# -# tls-prefer-server-ciphers yes - -# By default, TLS session caching is enabled to allow faster and less expensive -# reconnections by clients that support it. Use the following directive to disable -# caching. -# -# tls-session-caching no - -# Change the default number of TLS sessions cached. A zero value sets the cache -# to unlimited size. The default size is 20480. -# -# tls-session-cache-size 5000 - -# Change the default timeout of cached TLS sessions. The default timeout is 300 -# seconds. -# -# tls-session-cache-timeout 60 - -################################# GENERAL ##################################### - -# By default Redis does not run as a daemon. Use 'yes' if you need it. -# Note that Redis will write a pid file in /var/run/redis.pid when daemonized. -# When Redis is supervised by upstart or systemd, this parameter has no impact. -daemonize no - -# If you run Redis from upstart or systemd, Redis can interact with your -# supervision tree. Options: -# supervised no - no supervision interaction -# supervised upstart - signal upstart by putting Redis into SIGSTOP mode -# requires "expect stop" in your upstart job config -# supervised systemd - signal systemd by writing READY=1 to $NOTIFY_SOCKET -# on startup, and updating Redis status on a regular -# basis. -# supervised auto - detect upstart or systemd method based on -# UPSTART_JOB or NOTIFY_SOCKET environment variables -# Note: these supervision methods only signal "process is ready." -# They do not enable continuous pings back to your supervisor. -# -# The default is "no". To run under upstart/systemd, you can simply uncomment -# the line below: -# -# supervised auto - -# If a pid file is specified, Redis writes it where specified at startup -# and removes it at exit. -# -# When the server runs non daemonized, no pid file is created if none is -# specified in the configuration. When the server is daemonized, the pid file -# is used even if not specified, defaulting to "/var/run/redis.pid". -# -# Creating a pid file is best effort: if Redis is not able to create it -# nothing bad happens, the server will start and run normally. -# -# Note that on modern Linux systems "/run/redis.pid" is more conforming -# and should be used instead. -pidfile /var/run/redis_6379.pid - -# Specify the server verbosity level. -# This can be one of: -# debug (a lot of information, useful for development/testing) -# verbose (many rarely useful info, but not a mess like the debug level) -# notice (moderately verbose, what you want in production probably) -# warning (only very important / critical messages are logged) -# nothing (nothing is logged) -loglevel notice - -# Specify the log file name. Also the empty string can be used to force -# Redis to log on the standard output. Note that if you use standard -# output for logging but daemonize, logs will be sent to /dev/null -logfile "" - -# To enable logging to the system logger, just set 'syslog-enabled' to yes, -# and optionally update the other syslog parameters to suit your needs. -# syslog-enabled no - -# Specify the syslog identity. -# syslog-ident redis - -# Specify the syslog facility. Must be USER or between LOCAL0-LOCAL7. -# syslog-facility local0 - -# To disable the built in crash log, which will possibly produce cleaner core -# dumps when they are needed, uncomment the following: -# -# crash-log-enabled no - -# To disable the fast memory check that's run as part of the crash log, which -# will possibly let redis terminate sooner, uncomment the following: -# -# crash-memcheck-enabled no - -# Set the number of databases. The default database is DB 0, you can select -# a different one on a per-connection basis using SELECT where -# dbid is a number between 0 and 'databases'-1 -databases 16 - -# By default Redis shows an ASCII art logo only when started to log to the -# standard output and if the standard output is a TTY and syslog logging is -# disabled. Basically this means that normally a logo is displayed only in -# interactive sessions. -# -# However it is possible to force the pre-4.0 behavior and always show a -# ASCII art logo in startup logs by setting the following option to yes. -always-show-logo no - -# To avoid logging personal identifiable information (PII) into server log file, -# uncomment the following: -# -# hide-user-data-from-log yes - -# By default, Redis modifies the process title (as seen in 'top' and 'ps') to -# provide some runtime information. It is possible to disable this and leave -# the process name as executed by setting the following to no. -set-proc-title yes - -# When changing the process title, Redis uses the following template to construct -# the modified title. -# -# Template variables are specified in curly brackets. The following variables are -# supported: -# -# {title} Name of process as executed if parent, or type of child process. -# {listen-addr} Bind address or '*' followed by TCP or TLS port listening on, or -# Unix socket if only that's available. -# {server-mode} Special mode, i.e. "[sentinel]" or "[cluster]". -# {port} TCP port listening on, or 0. -# {tls-port} TLS port listening on, or 0. -# {unixsocket} Unix domain socket listening on, or "". -# {config-file} Name of configuration file used. -# -proc-title-template "{title} {listen-addr} {server-mode}" - -# Set the local environment which is used for string comparison operations, and -# also affect the performance of Lua scripts. Empty String indicates the locale -# is derived from the environment variables. -locale-collate "" - -################################ SNAPSHOTTING ################################ - -# Save the DB to disk. -# -# save [ ...] -# -# Redis will save the DB if the given number of seconds elapsed and it -# surpassed the given number of write operations against the DB. -# -# Snapshotting can be completely disabled with a single empty string argument -# as in following example: -# -# save "" -# -# Unless specified otherwise, by default Redis will save the DB: -# * After 3600 seconds (an hour) if at least 1 change was performed -# * After 300 seconds (5 minutes) if at least 100 changes were performed -# * After 60 seconds if at least 10000 changes were performed -# -# You can set these explicitly by uncommenting the following line. -# -# save 3600 1 300 100 60 10000 - -# By default Redis will stop accepting writes if RDB snapshots are enabled -# (at least one save point) and the latest background save failed. -# This will make the user aware (in a hard way) that data is not persisting -# on disk properly, otherwise chances are that no one will notice and some -# disaster will happen. -# -# If the background saving process will start working again Redis will -# automatically allow writes again. -# -# However if you have setup your proper monitoring of the Redis server -# and persistence, you may want to disable this feature so that Redis will -# continue to work as usual even if there are problems with disk, -# permissions, and so forth. -stop-writes-on-bgsave-error yes - -# Compress string objects using LZF when dump .rdb databases? -# By default compression is enabled as it's almost always a win. -# If you want to save some CPU in the saving child set it to 'no' but -# the dataset will likely be bigger if you have compressible values or keys. -rdbcompression yes - -# Since version 5 of RDB a CRC64 checksum is placed at the end of the file. -# This makes the format more resistant to corruption but there is a performance -# hit to pay (around 10%) when saving and loading RDB files, so you can disable it -# for maximum performances. -# -# RDB files created with checksum disabled have a checksum of zero that will -# tell the loading code to skip the check. -rdbchecksum yes - -# Enables or disables full sanitization checks for ziplist and listpack etc when -# loading an RDB or RESTORE payload. This reduces the chances of a assertion or -# crash later on while processing commands. -# Options: -# no - Never perform full sanitization -# yes - Always perform full sanitization -# clients - Perform full sanitization only for user connections. -# Excludes: RDB files, RESTORE commands received from the master -# connection, and client connections which have the -# skip-sanitize-payload ACL flag. -# The default should be 'clients' but since it currently affects cluster -# resharding via MIGRATE, it is temporarily set to 'no' by default. -# -# sanitize-dump-payload no - -# The filename where to dump the DB -dbfilename dump.rdb - -# Remove RDB files used by replication in instances without persistence -# enabled. By default this option is disabled, however there are environments -# where for regulations or other security concerns, RDB files persisted on -# disk by masters in order to feed replicas, or stored on disk by replicas -# in order to load them for the initial synchronization, should be deleted -# ASAP. Note that this option ONLY WORKS in instances that have both AOF -# and RDB persistence disabled, otherwise is completely ignored. -# -# An alternative (and sometimes better) way to obtain the same effect is -# to use diskless replication on both master and replicas instances. However -# in the case of replicas, diskless is not always an option. -rdb-del-sync-files no - -# The working directory. -# -# The DB will be written inside this directory, with the filename specified -# above using the 'dbfilename' configuration directive. -# -# The Append Only File will also be created inside this directory. -# -# Note that you must specify a directory here, not a file name. -dir ./ - -################################# REPLICATION ################################# - -# Master-Replica replication. Use replicaof to make a Redis instance a copy of -# another Redis server. A few things to understand ASAP about Redis replication. -# -# +------------------+ +---------------+ -# | Master | ---> | Replica | -# | (receive writes) | | (exact copy) | -# +------------------+ +---------------+ -# -# 1) Redis replication is asynchronous, but you can configure a master to -# stop accepting writes if it appears to be not connected with at least -# a given number of replicas. -# 2) Redis replicas are able to perform a partial resynchronization with the -# master if the replication link is lost for a relatively small amount of -# time. You may want to configure the replication backlog size (see the next -# sections of this file) with a sensible value depending on your needs. -# 3) Replication is automatic and does not need user intervention. After a -# network partition replicas automatically try to reconnect to masters -# and resynchronize with them. -# -# replicaof - -# If the master is password protected (using the "requirepass" configuration -# directive below) it is possible to tell the replica to authenticate before -# starting the replication synchronization process, otherwise the master will -# refuse the replica request. -# -# masterauth -# -# However this is not enough if you are using Redis ACLs (for Redis version -# 6 or greater), and the default user is not capable of running the PSYNC -# command and/or other commands needed for replication. In this case it's -# better to configure a special user to use with replication, and specify the -# masteruser configuration as such: -# -# masteruser -# -# When masteruser is specified, the replica will authenticate against its -# master using the new AUTH form: AUTH . - -# When a replica loses its connection with the master, or when the replication -# is still in progress, the replica can act in two different ways: -# -# 1) if replica-serve-stale-data is set to 'yes' (the default) the replica will -# still reply to client requests, possibly with out of date data, or the -# data set may just be empty if this is the first synchronization. -# -# 2) If replica-serve-stale-data is set to 'no' the replica will reply with error -# "MASTERDOWN Link with MASTER is down and replica-serve-stale-data is set to 'no'" -# to all data access commands, excluding commands such as: -# INFO, REPLICAOF, AUTH, SHUTDOWN, REPLCONF, ROLE, CONFIG, SUBSCRIBE, -# UNSUBSCRIBE, PSUBSCRIBE, PUNSUBSCRIBE, PUBLISH, PUBSUB, COMMAND, POST, -# HOST and LATENCY. -# -replica-serve-stale-data yes - -# You can configure a replica instance to accept writes or not. Writing against -# a replica instance may be useful to store some ephemeral data (because data -# written on a replica will be easily deleted after resync with the master) but -# may also cause problems if clients are writing to it because of a -# misconfiguration. -# -# Since Redis 2.6 by default replicas are read-only. -# -# Note: read only replicas are not designed to be exposed to untrusted clients -# on the internet. It's just a protection layer against misuse of the instance. -# Still a read only replica exports by default all the administrative commands -# such as CONFIG, DEBUG, and so forth. To a limited extent you can improve -# security of read only replicas using 'rename-command' to shadow all the -# administrative / dangerous commands. -replica-read-only yes - -# Replication SYNC strategy: disk or socket. -# -# New replicas and reconnecting replicas that are not able to continue the -# replication process just receiving differences, need to do what is called a -# "full synchronization". An RDB file is transmitted from the master to the -# replicas. -# -# The transmission can happen in two different ways: -# -# 1) Disk-backed: The Redis master creates a new process that writes the RDB -# file on disk. Later the file is transferred by the parent -# process to the replicas incrementally. -# 2) Diskless: The Redis master creates a new process that directly writes the -# RDB file to replica sockets, without touching the disk at all. -# -# With disk-backed replication, while the RDB file is generated, more replicas -# can be queued and served with the RDB file as soon as the current child -# producing the RDB file finishes its work. With diskless replication instead -# once the transfer starts, new replicas arriving will be queued and a new -# transfer will start when the current one terminates. -# -# When diskless replication is used, the master waits a configurable amount of -# time (in seconds) before starting the transfer in the hope that multiple -# replicas will arrive and the transfer can be parallelized. -# -# With slow disks and fast (large bandwidth) networks, diskless replication -# works better. -repl-diskless-sync yes - -# When diskless replication is enabled, it is possible to configure the delay -# the server waits in order to spawn the child that transfers the RDB via socket -# to the replicas. -# -# This is important since once the transfer starts, it is not possible to serve -# new replicas arriving, that will be queued for the next RDB transfer, so the -# server waits a delay in order to let more replicas arrive. -# -# The delay is specified in seconds, and by default is 5 seconds. To disable -# it entirely just set it to 0 seconds and the transfer will start ASAP. -repl-diskless-sync-delay 5 - -# When diskless replication is enabled with a delay, it is possible to let -# the replication start before the maximum delay is reached if the maximum -# number of replicas expected have connected. Default of 0 means that the -# maximum is not defined and Redis will wait the full delay. -repl-diskless-sync-max-replicas 0 - -# ----------------------------------------------------------------------------- -# WARNING: Since in this setup the replica does not immediately store an RDB on -# disk, it may cause data loss during failovers. RDB diskless load + Redis -# modules not handling I/O reads may cause Redis to abort in case of I/O errors -# during the initial synchronization stage with the master. -# ----------------------------------------------------------------------------- -# -# Replica can load the RDB it reads from the replication link directly from the -# socket, or store the RDB to a file and read that file after it was completely -# received from the master. -# -# In many cases the disk is slower than the network, and storing and loading -# the RDB file may increase replication time (and even increase the master's -# Copy on Write memory and replica buffers). -# However, when parsing the RDB file directly from the socket, in order to avoid -# data loss it's only safe to flush the current dataset when the new dataset is -# fully loaded in memory, resulting in higher memory usage. -# For this reason we have the following options: -# -# "disabled" - Don't use diskless load (store the rdb file to the disk first) -# "swapdb" - Keep current db contents in RAM while parsing the data directly -# from the socket. Replicas in this mode can keep serving current -# dataset while replication is in progress, except for cases where -# they can't recognize master as having a data set from same -# replication history. -# Note that this requires sufficient memory, if you don't have it, -# you risk an OOM kill. -# "on-empty-db" - Use diskless load only when current dataset is empty. This is -# safer and avoid having old and new dataset loaded side by side -# during replication. -repl-diskless-load disabled - -# Master send PINGs to its replicas in a predefined interval. It's possible to -# change this interval with the repl-ping-replica-period option. The default -# value is 10 seconds. -# -# repl-ping-replica-period 10 - -# The following option sets the replication timeout for: -# -# 1) Bulk transfer I/O during SYNC, from the point of view of replica. -# 2) Master timeout from the point of view of replicas (data, pings). -# 3) Replica timeout from the point of view of masters (REPLCONF ACK pings). -# -# It is important to make sure that this value is greater than the value -# specified for repl-ping-replica-period otherwise a timeout will be detected -# every time there is low traffic between the master and the replica. The default -# value is 60 seconds. -# -# repl-timeout 60 - -# Disable TCP_NODELAY on the replica socket after SYNC? -# -# If you select "yes" Redis will use a smaller number of TCP packets and -# less bandwidth to send data to replicas. But this can add a delay for -# the data to appear on the replica side, up to 40 milliseconds with -# Linux kernels using a default configuration. -# -# If you select "no" the delay for data to appear on the replica side will -# be reduced but more bandwidth will be used for replication. -# -# By default we optimize for low latency, but in very high traffic conditions -# or when the master and replicas are many hops away, turning this to "yes" may -# be a good idea. -repl-disable-tcp-nodelay no - -# Set the replication backlog size. The backlog is a buffer that accumulates -# replica data when replicas are disconnected for some time, so that when a -# replica wants to reconnect again, often a full resync is not needed, but a -# partial resync is enough, just passing the portion of data the replica -# missed while disconnected. -# -# The bigger the replication backlog, the longer the replica can endure the -# disconnect and later be able to perform a partial resynchronization. -# -# The backlog is only allocated if there is at least one replica connected. -# -# repl-backlog-size 1mb - -# After a master has no connected replicas for some time, the backlog will be -# freed. The following option configures the amount of seconds that need to -# elapse, starting from the time the last replica disconnected, for the backlog -# buffer to be freed. -# -# Note that replicas never free the backlog for timeout, since they may be -# promoted to masters later, and should be able to correctly "partially -# resynchronize" with other replicas: hence they should always accumulate backlog. -# -# A value of 0 means to never release the backlog. -# -# repl-backlog-ttl 3600 - -# During a fullsync, the master may decide to send both the RDB file and the -# replication stream to the replica in parallel. This approach shifts the -# responsibility of buffering the replication stream to the replica during the -# fullsync process. The replica accumulates the replication stream data until -# the RDB file is fully loaded. Once the RDB delivery is completed and -# successfully loaded, the replica begins processing and applying the -# accumulated replication data to the db. The configuration below controls how -# much replication data the replica can accumulate during a fullsync. -# -# When the replica reaches this limit, it will stop accumulating further data. -# At this point, additional data accumulation may occur on the master side -# depending on the 'client-output-buffer-limit ' config of master. -# -# A value of 0 means replica inherits hard limit of -# 'client-output-buffer-limit ' config to limit accumulation size. -# -# replica-full-sync-buffer-limit 0 - -# The replica priority is an integer number published by Redis in the INFO -# output. It is used by Redis Sentinel in order to select a replica to promote -# into a master if the master is no longer working correctly. -# -# A replica with a low priority number is considered better for promotion, so -# for instance if there are three replicas with priority 10, 100, 25 Sentinel -# will pick the one with priority 10, that is the lowest. -# -# However a special priority of 0 marks the replica as not able to perform the -# role of master, so a replica with priority of 0 will never be selected by -# Redis Sentinel for promotion. -# -# By default the priority is 100. -replica-priority 100 - -# The propagation error behavior controls how Redis will behave when it is -# unable to handle a command being processed in the replication stream from a master -# or processed while reading from an AOF file. Errors that occur during propagation -# are unexpected, and can cause data inconsistency. However, there are edge cases -# in earlier versions of Redis where it was possible for the server to replicate or persist -# commands that would fail on future versions. For this reason the default behavior -# is to ignore such errors and continue processing commands. -# -# If an application wants to ensure there is no data divergence, this configuration -# should be set to 'panic' instead. The value can also be set to 'panic-on-replicas' -# to only panic when a replica encounters an error on the replication stream. One of -# these two panic values will become the default value in the future once there are -# sufficient safety mechanisms in place to prevent false positive crashes. -# -# propagation-error-behavior ignore - -# Replica ignore disk write errors controls the behavior of a replica when it is -# unable to persist a write command received from its master to disk. By default, -# this configuration is set to 'no' and will crash the replica in this condition. -# It is not recommended to change this default, however in order to be compatible -# with older versions of Redis this config can be toggled to 'yes' which will just -# log a warning and execute the write command it got from the master. -# -# replica-ignore-disk-write-errors no - -# ----------------------------------------------------------------------------- -# By default, Redis Sentinel includes all replicas in its reports. A replica -# can be excluded from Redis Sentinel's announcements. An unannounced replica -# will be ignored by the 'sentinel replicas ' command and won't be -# exposed to Redis Sentinel's clients. -# -# This option does not change the behavior of replica-priority. Even with -# replica-announced set to 'no', the replica can be promoted to master. To -# prevent this behavior, set replica-priority to 0. -# -# replica-announced yes - -# It is possible for a master to stop accepting writes if there are less than -# N replicas connected, having a lag less or equal than M seconds. -# -# The N replicas need to be in "online" state. -# -# The lag in seconds, that must be <= the specified value, is calculated from -# the last ping received from the replica, that is usually sent every second. -# -# This option does not GUARANTEE that N replicas will accept the write, but -# will limit the window of exposure for lost writes in case not enough replicas -# are available, to the specified number of seconds. -# -# For example to require at least 3 replicas with a lag <= 10 seconds use: -# -# min-replicas-to-write 3 -# min-replicas-max-lag 10 -# -# Setting one or the other to 0 disables the feature. -# -# By default min-replicas-to-write is set to 0 (feature disabled) and -# min-replicas-max-lag is set to 10. - -# A Redis master is able to list the address and port of the attached -# replicas in different ways. For example the "INFO replication" section -# offers this information, which is used, among other tools, by -# Redis Sentinel in order to discover replica instances. -# Another place where this info is available is in the output of the -# "ROLE" command of a master. -# -# The listed IP address and port normally reported by a replica is -# obtained in the following way: -# -# IP: The address is auto detected by checking the peer address -# of the socket used by the replica to connect with the master. -# -# Port: The port is communicated by the replica during the replication -# handshake, and is normally the port that the replica is using to -# listen for connections. -# -# However when port forwarding or Network Address Translation (NAT) is -# used, the replica may actually be reachable via different IP and port -# pairs. The following two options can be used by a replica in order to -# report to its master a specific set of IP and port, so that both INFO -# and ROLE will report those values. -# -# There is no need to use both the options if you need to override just -# the port or the IP address. -# -# replica-announce-ip 5.5.5.5 -# replica-announce-port 1234 - -############################### KEYS TRACKING ################################# - -# Redis implements server assisted support for client side caching of values. -# This is implemented using an invalidation table that remembers, using -# a radix key indexed by key name, what clients have which keys. In turn -# this is used in order to send invalidation messages to clients. Please -# check this page to understand more about the feature: -# -# https://redis.io/docs/latest/develop/use/client-side-caching/ -# -# When tracking is enabled for a client, all the read only queries are assumed -# to be cached: this will force Redis to store information in the invalidation -# table. When keys are modified, such information is flushed away, and -# invalidation messages are sent to the clients. However if the workload is -# heavily dominated by reads, Redis could use more and more memory in order -# to track the keys fetched by many clients. -# -# For this reason it is possible to configure a maximum fill value for the -# invalidation table. By default it is set to 1M of keys, and once this limit -# is reached, Redis will start to evict keys in the invalidation table -# even if they were not modified, just to reclaim memory: this will in turn -# force the clients to invalidate the cached values. Basically the table -# maximum size is a trade off between the memory you want to spend server -# side to track information about who cached what, and the ability of clients -# to retain cached objects in memory. -# -# If you set the value to 0, it means there are no limits, and Redis will -# retain as many keys as needed in the invalidation table. -# In the "stats" INFO section, you can find information about the number of -# keys in the invalidation table at every given moment. -# -# Note: when key tracking is used in broadcasting mode, no memory is used -# in the server side so this setting is useless. -# -# tracking-table-max-keys 1000000 - -################################## SECURITY ################################### - -# Warning: since Redis is pretty fast, an outside user can try up to -# 1 million passwords per second against a modern box. This means that you -# should use very strong passwords, otherwise they will be very easy to break. -# Note that because the password is really a shared secret between the client -# and the server, and should not be memorized by any human, the password -# can be easily a long string from /dev/urandom or whatever, so by using a -# long and unguessable password no brute force attack will be possible. - -# Redis ACL users are defined in the following format: -# -# user ... acl rules ... -# -# For example: -# -# user worker +@list +@connection ~jobs:* on >ffa9203c493aa99 -# -# The special username "default" is used for new connections. If this user -# has the "nopass" rule, then new connections will be immediately authenticated -# as the "default" user without the need of any password provided via the -# AUTH command. Otherwise if the "default" user is not flagged with "nopass" -# the connections will start in not authenticated state, and will require -# AUTH (or the HELLO command AUTH option) in order to be authenticated and -# start to work. -# -# The ACL rules that describe what a user can do are the following: -# -# on Enable the user: it is possible to authenticate as this user. -# off Disable the user: it's no longer possible to authenticate -# with this user, however the already authenticated connections -# will still work. -# skip-sanitize-payload RESTORE dump-payload sanitization is skipped. -# sanitize-payload RESTORE dump-payload is sanitized (default). -# + Allow the execution of that command. -# May be used with `|` for allowing subcommands (e.g "+config|get") -# - Disallow the execution of that command. -# May be used with `|` for blocking subcommands (e.g "-config|set") -# +@ Allow the execution of all the commands in such category -# with valid categories are like @admin, @set, @sortedset, ... -# and so forth, see the full list in the server.c file where -# the Redis command table is described and defined. -# The special category @all means all the commands, but currently -# present in the server, and that will be loaded in the future -# via modules. -# +|first-arg Allow a specific first argument of an otherwise -# disabled command. It is only supported on commands with -# no sub-commands, and is not allowed as negative form -# like -SELECT|1, only additive starting with "+". This -# feature is deprecated and may be removed in the future. -# allcommands Alias for +@all. Note that it implies the ability to execute -# all the future commands loaded via the modules system. -# nocommands Alias for -@all. -# ~ Add a pattern of keys that can be mentioned as part of -# commands. For instance ~* allows all the keys. The pattern -# is a glob-style pattern like the one of KEYS. -# It is possible to specify multiple patterns. -# %R~ Add key read pattern that specifies which keys can be read -# from. -# %W~ Add key write pattern that specifies which keys can be -# written to. -# allkeys Alias for ~* -# resetkeys Flush the list of allowed keys patterns. -# & Add a glob-style pattern of Pub/Sub channels that can be -# accessed by the user. It is possible to specify multiple channel -# patterns. -# allchannels Alias for &* -# resetchannels Flush the list of allowed channel patterns. -# > Add this password to the list of valid password for the user. -# For example >mypass will add "mypass" to the list. -# This directive clears the "nopass" flag (see later). -# < Remove this password from the list of valid passwords. -# nopass All the set passwords of the user are removed, and the user -# is flagged as requiring no password: it means that every -# password will work against this user. If this directive is -# used for the default user, every new connection will be -# immediately authenticated with the default user without -# any explicit AUTH command required. Note that the "resetpass" -# directive will clear this condition. -# resetpass Flush the list of allowed passwords. Moreover removes the -# "nopass" status. After "resetpass" the user has no associated -# passwords and there is no way to authenticate without adding -# some password (or setting it as "nopass" later). -# reset Performs the following actions: resetpass, resetkeys, resetchannels, -# allchannels (if acl-pubsub-default is set), off, clearselectors, -@all. -# The user returns to the same state it has immediately after its creation. -# () Create a new selector with the options specified within the -# parentheses and attach it to the user. Each option should be -# space separated. The first character must be ( and the last -# character must be ). -# clearselectors Remove all of the currently attached selectors. -# Note this does not change the "root" user permissions, -# which are the permissions directly applied onto the -# user (outside the parentheses). -# -# ACL rules can be specified in any order: for instance you can start with -# passwords, then flags, or key patterns. However note that the additive -# and subtractive rules will CHANGE MEANING depending on the ordering. -# For instance see the following example: -# -# user alice on +@all -DEBUG ~* >somepassword -# -# This will allow "alice" to use all the commands with the exception of the -# DEBUG command, since +@all added all the commands to the set of the commands -# alice can use, and later DEBUG was removed. However if we invert the order -# of two ACL rules the result will be different: -# -# user alice on -DEBUG +@all ~* >somepassword -# -# Now DEBUG was removed when alice had yet no commands in the set of allowed -# commands, later all the commands are added, so the user will be able to -# execute everything. -# -# Basically ACL rules are processed left-to-right. -# -# The following is a list of command categories and their meanings: -# * keyspace - Writing or reading from keys, databases, or their metadata -# in a type agnostic way. Includes DEL, RESTORE, DUMP, RENAME, EXISTS, DBSIZE, -# KEYS, EXPIRE, TTL, FLUSHALL, etc. Commands that may modify the keyspace, -# key or metadata will also have `write` category. Commands that only read -# the keyspace, key or metadata will have the `read` category. -# * read - Reading from keys (values or metadata). Note that commands that don't -# interact with keys, will not have either `read` or `write`. -# * write - Writing to keys (values or metadata) -# * admin - Administrative commands. Normal applications will never need to use -# these. Includes REPLICAOF, CONFIG, DEBUG, SAVE, MONITOR, ACL, SHUTDOWN, etc. -# * dangerous - Potentially dangerous (each should be considered with care for -# various reasons). This includes FLUSHALL, MIGRATE, RESTORE, SORT, KEYS, -# CLIENT, DEBUG, INFO, CONFIG, SAVE, REPLICAOF, etc. -# * connection - Commands affecting the connection or other connections. -# This includes AUTH, SELECT, COMMAND, CLIENT, ECHO, PING, etc. -# * blocking - Potentially blocking the connection until released by another -# command. -# * fast - Fast O(1) commands. May loop on the number of arguments, but not the -# number of elements in the key. -# * slow - All commands that are not Fast. -# * pubsub - PUBLISH / SUBSCRIBE related -# * transaction - WATCH / MULTI / EXEC related commands. -# * scripting - Scripting related. -# * set - Data type: sets related. -# * sortedset - Data type: zsets related. -# * list - Data type: lists related. -# * hash - Data type: hashes related. -# * string - Data type: strings related. -# * bitmap - Data type: bitmaps related. -# * hyperloglog - Data type: hyperloglog related. -# * geo - Data type: geo related. -# * stream - Data type: streams related. -# -# For more information about ACL configuration please refer to -# the Redis web site at https://redis.io/docs/latest/operate/oss_and_stack/management/security/acl/ - -# ACL LOG -# -# The ACL Log tracks failed commands and authentication events associated -# with ACLs. The ACL Log is useful to troubleshoot failed commands blocked -# by ACLs. The ACL Log is stored in memory. You can reclaim memory with -# ACL LOG RESET. Define the maximum entry length of the ACL Log below. -acllog-max-len 128 - -# Using an external ACL file -# -# Instead of configuring users here in this file, it is possible to use -# a stand-alone file just listing users. The two methods cannot be mixed: -# if you configure users here and at the same time you activate the external -# ACL file, the server will refuse to start. -# -# The format of the external ACL user file is exactly the same as the -# format that is used inside redis.conf to describe users. -# -# aclfile /etc/redis/users.acl - -# IMPORTANT NOTE: starting with Redis 6 "requirepass" is just a compatibility -# layer on top of the new ACL system. The option effect will be just setting -# the password for the default user. Clients will still authenticate using -# AUTH as usually, or more explicitly with AUTH default -# if they follow the new protocol: both will work. -# -# The requirepass is not compatible with aclfile option and the ACL LOAD -# command, these will cause requirepass to be ignored. -# -# requirepass foobared - -# New users are initialized with restrictive permissions by default, via the -# equivalent of this ACL rule 'off resetkeys -@all'. Starting with Redis 6.2, it -# is possible to manage access to Pub/Sub channels with ACL rules as well. The -# default Pub/Sub channels permission if new users is controlled by the -# acl-pubsub-default configuration directive, which accepts one of these values: -# -# allchannels: grants access to all Pub/Sub channels -# resetchannels: revokes access to all Pub/Sub channels -# -# From Redis 7.0, acl-pubsub-default defaults to 'resetchannels' permission. -# -# acl-pubsub-default resetchannels - -# Command renaming (DEPRECATED). -# -# ------------------------------------------------------------------------ -# WARNING: avoid using this option if possible. Instead use ACLs to remove -# commands from the default user, and put them only in some admin user you -# create for administrative purposes. -# ------------------------------------------------------------------------ -# -# It is possible to change the name of dangerous commands in a shared -# environment. For instance the CONFIG command may be renamed into something -# hard to guess so that it will still be available for internal-use tools -# but not available for general clients. -# -# Example: -# -# rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52 -# -# It is also possible to completely kill a command by renaming it into -# an empty string: -# -# rename-command CONFIG "" -# -# Please note that changing the name of commands that are logged into the -# AOF file or transmitted to replicas may cause problems. - -################################### CLIENTS #################################### - -# Set the max number of connected clients at the same time. By default -# this limit is set to 10000 clients, however if the Redis server is not -# able to configure the process file limit to allow for the specified limit -# the max number of allowed clients is set to the current file limit -# minus 32 (as Redis reserves a few file descriptors for internal uses). -# -# Once the limit is reached Redis will close all the new connections sending -# an error 'max number of clients reached'. -# -# IMPORTANT: When Redis Cluster is used, the max number of connections is also -# shared with the cluster bus: every node in the cluster will use two -# connections, one incoming and another outgoing. It is important to size the -# limit accordingly in case of very large clusters. -# -# maxclients 10000 - -############################## MEMORY MANAGEMENT ################################ - -# Set a memory usage limit to the specified amount of bytes. -# When the memory limit is reached Redis will try to remove keys -# according to the eviction policy selected (see maxmemory-policy). -# -# If Redis can't remove keys according to the policy, or if the policy is -# set to 'noeviction', Redis will start to reply with errors to commands -# that would use more memory, like SET, LPUSH, and so on, and will continue -# to reply to read-only commands like GET. -# -# This option is usually useful when using Redis as an LRU or LFU cache, or to -# set a hard memory limit for an instance (using the 'noeviction' policy). -# -# WARNING: If you have replicas attached to an instance with maxmemory on, -# the size of the output buffers needed to feed the replicas are subtracted -# from the used memory count, so that network problems / resyncs will -# not trigger a loop where keys are evicted, and in turn the output -# buffer of replicas is full with DELs of keys evicted triggering the deletion -# of more keys, and so forth until the database is completely emptied. -# -# In short... if you have replicas attached it is suggested that you set a lower -# limit for maxmemory so that there is some free RAM on the system for replica -# output buffers (but this is not needed if the policy is 'noeviction'). -# -# maxmemory - -# MAXMEMORY POLICY: how Redis will select what to remove when maxmemory -# is reached. You can select one from the following behaviors: -# -# volatile-lru -> Evict using approximated LRU, only keys with an expire set. -# allkeys-lru -> Evict any key using approximated LRU. -# volatile-lfu -> Evict using approximated LFU, only keys with an expire set. -# allkeys-lfu -> Evict any key using approximated LFU. -# volatile-random -> Remove a random key having an expire set. -# allkeys-random -> Remove a random key, any key. -# volatile-ttl -> Remove the key with the nearest expire time (minor TTL) -# noeviction -> Don't evict anything, just return an error on write operations. -# -# LRU means Least Recently Used -# LFU means Least Frequently Used -# -# Both LRU, LFU and volatile-ttl are implemented using approximated -# randomized algorithms. -# -# Note: with any of the above policies, when there are no suitable keys for -# eviction, Redis will return an error on write operations that require -# more memory. These are usually commands that create new keys, add data or -# modify existing keys. A few examples are: SET, INCR, HSET, LPUSH, SUNIONSTORE, -# SORT (due to the STORE argument), and EXEC (if the transaction includes any -# command that requires memory). -# -# The default is: -# -# maxmemory-policy noeviction - -# LRU, LFU and minimal TTL algorithms are not precise algorithms but approximated -# algorithms (in order to save memory), so you can tune it for speed or -# accuracy. By default Redis will check five keys and pick the one that was -# used least recently, you can change the sample size using the following -# configuration directive. -# -# The default of 5 produces good enough results. 10 Approximates very closely -# true LRU but costs more CPU. 3 is faster but not very accurate. The maximum -# value that can be set is 64. -# -# maxmemory-samples 5 - -# Eviction processing is designed to function well with the default setting. -# If there is an unusually large amount of write traffic, this value may need to -# be increased. Decreasing this value may reduce latency at the risk of -# eviction processing effectiveness -# 0 = minimum latency, 10 = default, 100 = process without regard to latency -# -# maxmemory-eviction-tenacity 10 - -# Starting from Redis 5, by default a replica will ignore its maxmemory setting -# (unless it is promoted to master after a failover or manually). It means -# that the eviction of keys will be just handled by the master, sending the -# DEL commands to the replica as keys evict in the master side. -# -# This behavior ensures that masters and replicas stay consistent, and is usually -# what you want, however if your replica is writable, or you want the replica -# to have a different memory setting, and you are sure all the writes performed -# to the replica are idempotent, then you may change this default (but be sure -# to understand what you are doing). -# -# Note that since the replica by default does not evict, it may end using more -# memory than the one set via maxmemory (there are certain buffers that may -# be larger on the replica, or data structures may sometimes take more memory -# and so forth). So make sure you monitor your replicas and make sure they -# have enough memory to never hit a real out-of-memory condition before the -# master hits the configured maxmemory setting. -# -# replica-ignore-maxmemory yes - -# Redis reclaims expired keys in two ways: upon access when those keys are -# found to be expired, and also in background, in what is called the -# "active expire key". The key space is slowly and interactively scanned -# looking for expired keys to reclaim, so that it is possible to free memory -# of keys that are expired and will never be accessed again in a short time. -# -# The default effort of the expire cycle will try to avoid having more than -# ten percent of expired keys still in memory, and will try to avoid consuming -# more than 25% of total memory and to add latency to the system. However -# it is possible to increase the expire "effort" that is normally set to -# "1", to a greater value, up to the value "10". At its maximum value the -# system will use more CPU, longer cycles (and technically may introduce -# more latency), and will tolerate less already expired keys still present -# in the system. It's a tradeoff between memory, CPU and latency. -# -# active-expire-effort 1 - -############################# LAZY FREEING #################################### - -# Redis has two primitives to delete keys. One is called DEL and is a blocking -# deletion of the object. It means that the server stops processing new commands -# in order to reclaim all the memory associated with an object in a synchronous -# way. If the key deleted is associated with a small object, the time needed -# in order to execute the DEL command is very small and comparable to most other -# O(1) or O(log_N) commands in Redis. However if the key is associated with an -# aggregated value containing millions of elements, the server can block for -# a long time (even seconds) in order to complete the operation. -# -# For the above reasons Redis also offers non blocking deletion primitives -# such as UNLINK (non blocking DEL) and the ASYNC option of FLUSHALL and -# FLUSHDB commands, in order to reclaim memory in background. Those commands -# are executed in constant time. Another thread will incrementally free the -# object in the background as fast as possible. -# -# DEL, UNLINK and ASYNC option of FLUSHALL and FLUSHDB are user-controlled. -# It's up to the design of the application to understand when it is a good -# idea to use one or the other. However the Redis server sometimes has to -# delete keys or flush the whole database as a side effect of other operations. -# Specifically Redis deletes objects independently of a user call in the -# following scenarios: -# -# 1) On eviction, because of the maxmemory and maxmemory policy configurations, -# in order to make room for new data, without going over the specified -# memory limit. -# 2) Because of expire: when a key with an associated time to live (see the -# EXPIRE command) must be deleted from memory. -# 3) Because of a side effect of a command that stores data on a key that may -# already exist. For example the RENAME command may delete the old key -# content when it is replaced with another one. Similarly SUNIONSTORE -# or SORT with STORE option may delete existing keys. The SET command -# itself removes any old content of the specified key in order to replace -# it with the specified string. -# 4) During replication, when a replica performs a full resynchronization with -# its master, the content of the whole database is removed in order to -# load the RDB file just transferred. -# -# In all the above cases the default is to delete objects in a blocking way, -# like if DEL was called. However you can configure each case specifically -# in order to instead release memory in a non-blocking way like if UNLINK -# was called, using the following configuration directives. - -lazyfree-lazy-eviction no -lazyfree-lazy-expire no -lazyfree-lazy-server-del no -replica-lazy-flush no - -# It is also possible, for the case when to replace the user code DEL calls -# with UNLINK calls is not easy, to modify the default behavior of the DEL -# command to act exactly like UNLINK, using the following configuration -# directive: - -lazyfree-lazy-user-del no - -# FLUSHDB, FLUSHALL, SCRIPT FLUSH and FUNCTION FLUSH support both asynchronous and synchronous -# deletion, which can be controlled by passing the [SYNC|ASYNC] flags into the -# commands. When neither flag is passed, this directive will be used to determine -# if the data should be deleted asynchronously. - -lazyfree-lazy-user-flush no - -################################ THREADED I/O ################################# - -# Redis is mostly single threaded, however there are certain threaded -# operations such as UNLINK, slow I/O accesses and other things that are -# performed on side threads. -# -# Now it is also possible to handle Redis clients socket reads and writes -# in different I/O threads. Since especially writing is so slow, normally -# Redis users use pipelining in order to speed up the Redis performances per -# core, and spawn multiple instances in order to scale more. Using I/O -# threads it is possible to easily speedup several times Redis without resorting -# to pipelining nor sharding of the instance. -# -# By default threading is disabled, we suggest enabling it only in machines -# that have at least 4 or more cores, leaving at least one spare core. -# We also recommend using threaded I/O only if you actually have performance -# problems, with Redis instances being able to use a quite big percentage of -# CPU time, otherwise there is no point in using this feature. -# -# So for instance if you have a four cores boxes, try to use 3 I/O -# threads, if you have a 8 cores, try to use 7 threads. In order to -# enable I/O threads use the following configuration directive: -# -# io-threads 4 -# -# Setting io-threads to 1 will just use the main thread as usual. -# When I/O threads are enabled, we not only use threads for writes, that -# is to thread the write(2) syscall and transfer the client buffers to the -# socket, but also use threads for reads and protocol parsing. -# -# NOTE: If you want to test the Redis speedup using redis-benchmark, make -# sure you also run the benchmark itself in threaded mode, using the -# --threads option to match the number of Redis threads, otherwise you'll not -# be able to notice the improvements. - -############################ KERNEL OOM CONTROL ############################## - -# On Linux, it is possible to hint the kernel OOM killer on what processes -# should be killed first when out of memory. -# -# Enabling this feature makes Redis actively control the oom_score_adj value -# for all its processes, depending on their role. The default scores will -# attempt to have background child processes killed before all others, and -# replicas killed before masters. -# -# Redis supports these options: -# -# no: Don't make changes to oom-score-adj (default). -# yes: Alias to "relative" see below. -# absolute: Values in oom-score-adj-values are written as is to the kernel. -# relative: Values are used relative to the initial value of oom_score_adj when -# the server starts and are then clamped to a range of -1000 to 1000. -# Because typically the initial value is 0, they will often match the -# absolute values. -oom-score-adj no - -# When oom-score-adj is used, this directive controls the specific values used -# for master, replica and background child processes. Values range -2000 to -# 2000 (higher means more likely to be killed). -# -# Unprivileged processes (not root, and without CAP_SYS_RESOURCE capabilities) -# can freely increase their value, but not decrease it below its initial -# settings. This means that setting oom-score-adj to "relative" and setting the -# oom-score-adj-values to positive values will always succeed. -oom-score-adj-values 0 200 800 - - -#################### KERNEL transparent hugepage CONTROL ###################### - -# Usually the kernel Transparent Huge Pages control is set to "madvise" or -# "never" by default (/sys/kernel/mm/transparent_hugepage/enabled), in which -# case this config has no effect. On systems in which it is set to "always", -# redis will attempt to disable it specifically for the redis process in order -# to avoid latency problems specifically with fork(2) and CoW. -# If for some reason you prefer to keep it enabled, you can set this config to -# "no" and the kernel global to "always". - -disable-thp yes - -############################## APPEND ONLY MODE ############################### - -# By default Redis asynchronously dumps the dataset on disk. This mode is -# good enough in many applications, but an issue with the Redis process or -# a power outage may result into a few minutes of writes lost (depending on -# the configured save points). -# -# The Append Only File is an alternative persistence mode that provides -# much better durability. For instance using the default data fsync policy -# (see later in the config file) Redis can lose just one second of writes in a -# dramatic event like a server power outage, or a single write if something -# wrong with the Redis process itself happens, but the operating system is -# still running correctly. -# -# AOF and RDB persistence can be enabled at the same time without problems. -# If the AOF is enabled on startup Redis will load the AOF, that is the file -# with the better durability guarantees. -# -# Note that changing this value in a config file of an existing database and -# restarting the server can lead to data loss. A conversion needs to be done -# by setting it via CONFIG command on a live server first. -# -# Please check https://redis.io/docs/latest/operate/oss_and_stack/management/persistence/ for more information. - -appendonly no - -# The base name of the append only file. -# -# Redis 7 and newer use a set of append-only files to persist the dataset -# and changes applied to it. There are two basic types of files in use: -# -# - Base files, which are a snapshot representing the complete state of the -# dataset at the time the file was created. Base files can be either in -# the form of RDB (binary serialized) or AOF (textual commands). -# - Incremental files, which contain additional commands that were applied -# to the dataset following the previous file. -# -# In addition, manifest files are used to track the files and the order in -# which they were created and should be applied. -# -# Append-only file names are created by Redis following a specific pattern. -# The file name's prefix is based on the 'appendfilename' configuration -# parameter, followed by additional information about the sequence and type. -# -# For example, if appendfilename is set to appendonly.aof, the following file -# names could be derived: -# -# - appendonly.aof.1.base.rdb as a base file. -# - appendonly.aof.1.incr.aof, appendonly.aof.2.incr.aof as incremental files. -# - appendonly.aof.manifest as a manifest file. - -appendfilename "appendonly.aof" - -# For convenience, Redis stores all persistent append-only files in a dedicated -# directory. The name of the directory is determined by the appenddirname -# configuration parameter. - -appenddirname "appendonlydir" - -# The fsync() call tells the Operating System to actually write data on disk -# instead of waiting for more data in the output buffer. Some OS will really flush -# data on disk, some other OS will just try to do it ASAP. -# -# Redis supports three different modes: -# -# no: don't fsync, just let the OS flush the data when it wants. Faster. -# always: fsync after every write to the append only log. Slow, Safest. -# everysec: fsync only one time every second. Compromise. -# -# The default is "everysec", as that's usually the right compromise between -# speed and data safety. It's up to you to understand if you can relax this to -# "no" that will let the operating system flush the output buffer when -# it wants, for better performances (but if you can live with the idea of -# some data loss consider the default persistence mode that's snapshotting), -# or on the contrary, use "always" that's very slow but a bit safer than -# everysec. -# -# More details please check the following article: -# http://antirez.com/post/redis-persistence-demystified.html -# -# If unsure, use "everysec". - -# appendfsync always -appendfsync everysec -# appendfsync no - -# When the AOF fsync policy is set to always or everysec, and a background -# saving process (a background save or AOF log background rewriting) is -# performing a lot of I/O against the disk, in some Linux configurations -# Redis may block too long on the fsync() call. Note that there is no fix for -# this currently, as even performing fsync in a different thread will block -# our synchronous write(2) call. -# -# In order to mitigate this problem it's possible to use the following option -# that will prevent fsync() from being called in the main process while a -# BGSAVE or BGREWRITEAOF is in progress. -# -# This means that while another child is saving, the durability of Redis is -# the same as "appendfsync no". In practical terms, this means that it is -# possible to lose up to 30 seconds of log in the worst scenario (with the -# default Linux settings). -# -# If you have latency problems turn this to "yes". Otherwise leave it as -# "no" that is the safest pick from the point of view of durability. - -no-appendfsync-on-rewrite no - -# Automatic rewrite of the append only file. -# Redis is able to automatically rewrite the log file implicitly calling -# BGREWRITEAOF when the AOF log size grows by the specified percentage. -# -# This is how it works: Redis remembers the size of the AOF file after the -# latest rewrite (if no rewrite has happened since the restart, the size of -# the AOF at startup is used). -# -# This base size is compared to the current size. If the current size is -# bigger than the specified percentage, the rewrite is triggered. Also -# you need to specify a minimal size for the AOF file to be rewritten, this -# is useful to avoid rewriting the AOF file even if the percentage increase -# is reached but it is still pretty small. -# -# Specify a percentage of zero in order to disable the automatic AOF -# rewrite feature. - -auto-aof-rewrite-percentage 100 -auto-aof-rewrite-min-size 64mb - -# An AOF file may be found to be truncated at the end during the Redis -# startup process, when the AOF data gets loaded back into memory. -# This may happen when the system where Redis is running -# crashes, especially when an ext4 filesystem is mounted without the -# data=ordered option (however this can't happen when Redis itself -# crashes or aborts but the operating system still works correctly). -# -# Redis can either exit with an error when this happens, or load as much -# data as possible (the default now) and start if the AOF file is found -# to be truncated at the end. The following option controls this behavior. -# -# If aof-load-truncated is set to yes, a truncated AOF file is loaded and -# the Redis server starts emitting a log to inform the user of the event. -# Otherwise if the option is set to no, the server aborts with an error -# and refuses to start. When the option is set to no, the user requires -# to fix the AOF file using the "redis-check-aof" utility before to restart -# the server. -# -# Note that if the AOF file will be found to be corrupted in the middle -# the server will still exit with an error. This option only applies when -# Redis will try to read more data from the AOF file but not enough bytes -# will be found. -aof-load-truncated yes - -# Redis can create append-only base files in either RDB or AOF formats. Using -# the RDB format is always faster and more efficient, and disabling it is only -# supported for backward compatibility purposes. -aof-use-rdb-preamble yes - -# Redis supports recording timestamp annotations in the AOF to support restoring -# the data from a specific point-in-time. However, using this capability changes -# the AOF format in a way that may not be compatible with existing AOF parsers. -aof-timestamp-enabled no - -################################ SHUTDOWN ##################################### - -# Maximum time to wait for replicas when shutting down, in seconds. -# -# During shut down, a grace period allows any lagging replicas to catch up with -# the latest replication offset before the master exists. This period can -# prevent data loss, especially for deployments without configured disk backups. -# -# The 'shutdown-timeout' value is the grace period's duration in seconds. It is -# only applicable when the instance has replicas. To disable the feature, set -# the value to 0. -# -# shutdown-timeout 10 - -# When Redis receives a SIGINT or SIGTERM, shutdown is initiated and by default -# an RDB snapshot is written to disk in a blocking operation if save points are configured. -# The options used on signaled shutdown can include the following values: -# default: Saves RDB snapshot only if save points are configured. -# Waits for lagging replicas to catch up. -# save: Forces a DB saving operation even if no save points are configured. -# nosave: Prevents DB saving operation even if one or more save points are configured. -# now: Skips waiting for lagging replicas. -# force: Ignores any errors that would normally prevent the server from exiting. -# -# Any combination of values is allowed as long as "save" and "nosave" are not set simultaneously. -# Example: "nosave force now" -# -# shutdown-on-sigint default -# shutdown-on-sigterm default - -################ NON-DETERMINISTIC LONG BLOCKING COMMANDS ##################### - -# Maximum time in milliseconds for EVAL scripts, functions and in some cases -# modules' commands before Redis can start processing or rejecting other clients. -# -# If the maximum execution time is reached Redis will start to reply to most -# commands with a BUSY error. -# -# In this state Redis will only allow a handful of commands to be executed. -# For instance, SCRIPT KILL, FUNCTION KILL, SHUTDOWN NOSAVE and possibly some -# module specific 'allow-busy' commands. -# -# SCRIPT KILL and FUNCTION KILL will only be able to stop a script that did not -# yet call any write commands, so SHUTDOWN NOSAVE may be the only way to stop -# the server in the case a write command was already issued by the script when -# the user doesn't want to wait for the natural termination of the script. -# -# The default is 5 seconds. It is possible to set it to 0 or a negative value -# to disable this mechanism (uninterrupted execution). Note that in the past -# this config had a different name, which is now an alias, so both of these do -# the same: -# lua-time-limit 5000 -# busy-reply-threshold 5000 - -################################ REDIS CLUSTER ############################### - -# Normal Redis instances can't be part of a Redis Cluster; only nodes that are -# started as cluster nodes can. In order to start a Redis instance as a -# cluster node enable the cluster support uncommenting the following: -# -# cluster-enabled yes - -# Every cluster node has a cluster configuration file. This file is not -# intended to be edited by hand. It is created and updated by Redis nodes. -# Every Redis Cluster node requires a different cluster configuration file. -# Make sure that instances running in the same system do not have -# overlapping cluster configuration file names. -# -# cluster-config-file nodes-6379.conf - -# Cluster node timeout is the amount of milliseconds a node must be unreachable -# for it to be considered in failure state. -# Most other internal time limits are a multiple of the node timeout. -# -# cluster-node-timeout 15000 - -# The cluster port is the port that the cluster bus will listen for inbound connections on. When set -# to the default value, 0, it will be bound to the command port + 10000. Setting this value requires -# you to specify the cluster bus port when executing cluster meet. -# cluster-port 0 - -# A replica of a failing master will avoid to start a failover if its data -# looks too old. -# -# There is no simple way for a replica to actually have an exact measure of -# its "data age", so the following two checks are performed: -# -# 1) If there are multiple replicas able to failover, they exchange messages -# in order to try to give an advantage to the replica with the best -# replication offset (more data from the master processed). -# Replicas will try to get their rank by offset, and apply to the start -# of the failover a delay proportional to their rank. -# -# 2) Every single replica computes the time of the last interaction with -# its master. This can be the last ping or command received (if the master -# is still in the "connected" state), or the time that elapsed since the -# disconnection with the master (if the replication link is currently down). -# If the last interaction is too old, the replica will not try to failover -# at all. -# -# The point "2" can be tuned by user. Specifically a replica will not perform -# the failover if, since the last interaction with the master, the time -# elapsed is greater than: -# -# (node-timeout * cluster-replica-validity-factor) + repl-ping-replica-period -# -# So for example if node-timeout is 30 seconds, and the cluster-replica-validity-factor -# is 10, and assuming a default repl-ping-replica-period of 10 seconds, the -# replica will not try to failover if it was not able to talk with the master -# for longer than 310 seconds. -# -# A large cluster-replica-validity-factor may allow replicas with too old data to failover -# a master, while a too small value may prevent the cluster from being able to -# elect a replica at all. -# -# For maximum availability, it is possible to set the cluster-replica-validity-factor -# to a value of 0, which means, that replicas will always try to failover the -# master regardless of the last time they interacted with the master. -# (However they'll always try to apply a delay proportional to their -# offset rank). -# -# Zero is the only value able to guarantee that when all the partitions heal -# the cluster will always be able to continue. -# -# cluster-replica-validity-factor 10 - -# Cluster replicas are able to migrate to orphaned masters, that are masters -# that are left without working replicas. This improves the cluster ability -# to resist to failures as otherwise an orphaned master can't be failed over -# in case of failure if it has no working replicas. -# -# Replicas migrate to orphaned masters only if there are still at least a -# given number of other working replicas for their old master. This number -# is the "migration barrier". A migration barrier of 1 means that a replica -# will migrate only if there is at least 1 other working replica for its master -# and so forth. It usually reflects the number of replicas you want for every -# master in your cluster. -# -# Default is 1 (replicas migrate only if their masters remain with at least -# one replica). To disable migration just set it to a very large value or -# set cluster-allow-replica-migration to 'no'. -# A value of 0 can be set but is useful only for debugging and dangerous -# in production. -# -# cluster-migration-barrier 1 - -# Turning off this option allows to use less automatic cluster configuration. -# It both disables migration to orphaned masters and migration from masters -# that became empty. -# -# Default is 'yes' (allow automatic migrations). -# -# cluster-allow-replica-migration yes - -# By default Redis Cluster nodes stop accepting queries if they detect there -# is at least a hash slot uncovered (no available node is serving it). -# This way if the cluster is partially down (for example a range of hash slots -# are no longer covered) all the cluster becomes, eventually, unavailable. -# It automatically returns available as soon as all the slots are covered again. -# -# However sometimes you want the subset of the cluster which is working, -# to continue to accept queries for the part of the key space that is still -# covered. In order to do so, just set the cluster-require-full-coverage -# option to no. -# -# cluster-require-full-coverage yes - -# This option, when set to yes, prevents replicas from trying to failover its -# master during master failures. However the replica can still perform a -# manual failover, if forced to do so. -# -# This is useful in different scenarios, especially in the case of multiple -# data center operations, where we want one side to never be promoted if not -# in the case of a total DC failure. -# -# cluster-replica-no-failover no - -# This option, when set to yes, allows nodes to serve read traffic while the -# cluster is in a down state, as long as it believes it owns the slots. -# -# This is useful for two cases. The first case is for when an application -# doesn't require consistency of data during node failures or network partitions. -# One example of this is a cache, where as long as the node has the data it -# should be able to serve it. -# -# The second use case is for configurations that don't meet the recommended -# three shards but want to enable cluster mode and scale later. A -# master outage in a 1 or 2 shard configuration causes a read/write outage to the -# entire cluster without this option set, with it set there is only a write outage. -# Without a quorum of masters, slot ownership will not change automatically. -# -# cluster-allow-reads-when-down no - -# This option, when set to yes, allows nodes to serve pubsub shard traffic while -# the cluster is in a down state, as long as it believes it owns the slots. -# -# This is useful if the application would like to use the pubsub feature even when -# the cluster global stable state is not OK. If the application wants to make sure only -# one shard is serving a given channel, this feature should be kept as yes. -# -# cluster-allow-pubsubshard-when-down yes - -# Cluster link send buffer limit is the limit on the memory usage of an individual -# cluster bus link's send buffer in bytes. Cluster links would be freed if they exceed -# this limit. This is to primarily prevent send buffers from growing unbounded on links -# toward slow peers (E.g. PubSub messages being piled up). -# This limit is disabled by default. Enable this limit when 'mem_cluster_links' INFO field -# and/or 'send-buffer-allocated' entries in the 'CLUSTER LINKS` command output continuously increase. -# Minimum limit of 1gb is recommended so that cluster link buffer can fit in at least a single -# PubSub message by default. (client-query-buffer-limit default value is 1gb) -# -# cluster-link-sendbuf-limit 0 - -# Clusters can configure their announced hostname using this config. This is a common use case for -# applications that need to use TLS Server Name Indication (SNI) or dealing with DNS based -# routing. By default this value is only shown as additional metadata in the CLUSTER SLOTS -# command, but can be changed using 'cluster-preferred-endpoint-type' config. This value is -# communicated along the clusterbus to all nodes, setting it to an empty string will remove -# the hostname and also propagate the removal. -# -# cluster-announce-hostname "" - -# Clusters can configure an optional nodename to be used in addition to the node ID for -# debugging and admin information. This name is broadcasted between nodes, so will be used -# in addition to the node ID when reporting cross node events such as node failures. -# cluster-announce-human-nodename "" - -# Clusters can advertise how clients should connect to them using either their IP address, -# a user defined hostname, or by declaring they have no endpoint. Which endpoint is -# shown as the preferred endpoint is set by using the cluster-preferred-endpoint-type -# config with values 'ip', 'hostname', or 'unknown-endpoint'. This value controls how -# the endpoint returned for MOVED/ASKING requests as well as the first field of CLUSTER SLOTS. -# If the preferred endpoint type is set to hostname, but no announced hostname is set, a '?' -# will be returned instead. -# -# When a cluster advertises itself as having an unknown endpoint, it's indicating that -# the server doesn't know how clients can reach the cluster. This can happen in certain -# networking situations where there are multiple possible routes to the node, and the -# server doesn't know which one the client took. In this case, the server is expecting -# the client to reach out on the same endpoint it used for making the last request, but use -# the port provided in the response. -# -# cluster-preferred-endpoint-type ip - -# This configuration defines the sampling ratio (0-100) for checking command -# compatibility in cluster mode. When a command is executed, it is sampled at -# the specified ratio to determine if it complies with Redis cluster constraints, -# such as cross-slot restrictions. -# -# - A value of 0 means no commands are sampled for compatibility checks. -# - A value of 100 means all commands are checked. -# - Intermediate values (e.g., 10) mean that approximately 10% of the commands -# are randomly selected for compatibility verification. -# -# Higher sampling ratios may introduce additional performance overhead, especially -# under high QPS. The default value is 0 (no sampling). -# -# cluster-compatibility-sample-ratio 0 - -# In order to setup your cluster make sure to read the documentation -# available at https://redis.io web site. - -########################## CLUSTER DOCKER/NAT support ######################## - -# In certain deployments, Redis Cluster nodes address discovery fails, because -# addresses are NAT-ted or because ports are forwarded (the typical case is -# Docker and other containers). -# -# In order to make Redis Cluster working in such environments, a static -# configuration where each node knows its public address is needed. The -# following four options are used for this scope, and are: -# -# * cluster-announce-ip -# * cluster-announce-port -# * cluster-announce-tls-port -# * cluster-announce-bus-port -# -# Each instructs the node about its address, client ports (for connections -# without and with TLS) and cluster message bus port. The information is then -# published in the header of the bus packets so that other nodes will be able to -# correctly map the address of the node publishing the information. -# -# If tls-cluster is set to yes and cluster-announce-tls-port is omitted or set -# to zero, then cluster-announce-port refers to the TLS port. Note also that -# cluster-announce-tls-port has no effect if tls-cluster is set to no. -# -# If the above options are not used, the normal Redis Cluster auto-detection -# will be used instead. -# -# Note that when remapped, the bus port may not be at the fixed offset of -# clients port + 10000, so you can specify any port and bus-port depending -# on how they get remapped. If the bus-port is not set, a fixed offset of -# 10000 will be used as usual. -# -# Example: -# -# cluster-announce-ip 10.1.1.5 -# cluster-announce-tls-port 6379 -# cluster-announce-port 0 -# cluster-announce-bus-port 6380 - -################################## SLOW LOG ################################### - -# The Redis Slow Log is a system to log queries that exceeded a specified -# execution time. The execution time does not include the I/O operations -# like talking with the client, sending the reply and so forth, -# but just the time needed to actually execute the command (this is the only -# stage of command execution where the thread is blocked and can not serve -# other requests in the meantime). -# -# You can configure the slow log with two parameters: one tells Redis -# what is the execution time, in microseconds, to exceed in order for the -# command to get logged, and the other parameter is the length of the -# slow log. When a new command is logged the oldest one is removed from the -# queue of logged commands. - -# The following time is expressed in microseconds, so 1000000 is equivalent -# to one second. Note that a negative number disables the slow log, while -# a value of zero forces the logging of every command. -slowlog-log-slower-than 10000 - -# There is no limit to this length. Just be aware that it will consume memory. -# You can reclaim memory used by the slow log with SLOWLOG RESET. -slowlog-max-len 128 - -################################ LATENCY MONITOR ############################## - -# The Redis latency monitoring subsystem samples different operations -# at runtime in order to collect data related to possible sources of -# latency of a Redis instance. -# -# Via the LATENCY command this information is available to the user that can -# print graphs and obtain reports. -# -# The system only logs operations that were performed in a time equal or -# greater than the amount of milliseconds specified via the -# latency-monitor-threshold configuration directive. When its value is set -# to zero, the latency monitor is turned off. -# -# By default latency monitoring is disabled since it is mostly not needed -# if you don't have latency issues, and collecting data has a performance -# impact, that while very small, can be measured under big load. Latency -# monitoring can easily be enabled at runtime using the command -# "CONFIG SET latency-monitor-threshold " if needed. -latency-monitor-threshold 0 - -################################ LATENCY TRACKING ############################## - -# The Redis extended latency monitoring tracks the per command latencies and enables -# exporting the percentile distribution via the INFO latencystats command, -# and cumulative latency distributions (histograms) via the LATENCY command. -# -# By default, the extended latency monitoring is enabled since the overhead -# of keeping track of the command latency is very small. -# latency-tracking yes - -# By default the exported latency percentiles via the INFO latencystats command -# are the p50, p99, and p999. -# latency-tracking-info-percentiles 50 99 99.9 - -############################# EVENT NOTIFICATION ############################## - -# Redis can notify Pub/Sub clients about events happening in the key space. -# This feature is documented at https://redis.io/docs/latest/develop/use/keyspace-notifications/ -# -# For instance if keyspace events notification is enabled, and a client -# performs a DEL operation on key "foo" stored in the Database 0, two -# messages will be published via Pub/Sub: -# -# PUBLISH __keyspace@0__:foo del -# PUBLISH __keyevent@0__:del foo -# -# It is possible to select the events that Redis will notify among a set -# of classes. Every class is identified by a single character: -# -# K Keyspace events, published with __keyspace@__ prefix. -# E Keyevent events, published with __keyevent@__ prefix. -# g Generic commands (non-type specific) like DEL, EXPIRE, RENAME, ... -# $ String commands -# l List commands -# s Set commands -# h Hash commands -# z Sorted set commands -# x Expired events (events generated every time a key expires) -# e Evicted events (events generated when a key is evicted for maxmemory) -# n New key events (Note: not included in the 'A' class) -# t Stream commands -# d Module key type events -# m Key-miss events (Note: It is not included in the 'A' class) -# A Alias for g$lshzxetd, so that the "AKE" string means all the events -# (Except key-miss events which are excluded from 'A' due to their -# unique nature). -# -# The "notify-keyspace-events" takes as argument a string that is composed -# of zero or multiple characters. The empty string means that notifications -# are disabled. -# -# Example: to enable list and generic events, from the point of view of the -# event name, use: -# -# notify-keyspace-events Elg -# -# Example 2: to get the stream of the expired keys subscribing to channel -# name __keyevent@0__:expired use: -# -# notify-keyspace-events Ex -# -# By default all notifications are disabled because most users don't need -# this feature and the feature has some overhead. Note that if you don't -# specify at least one of K or E, no events will be delivered. -notify-keyspace-events "" - -############################### ADVANCED CONFIG ############################### - -# Hashes are encoded using a memory efficient data structure when they have a -# small number of entries, and the biggest entry does not exceed a given -# threshold. These thresholds can be configured using the following directives. -hash-max-listpack-entries 512 -hash-max-listpack-value 64 - -# Lists are also encoded in a special way to save a lot of space. -# The number of entries allowed per internal list node can be specified -# as a fixed maximum size or a maximum number of elements. -# For a fixed maximum size, use -5 through -1, meaning: -# -5: max size: 64 Kb <-- not recommended for normal workloads -# -4: max size: 32 Kb <-- not recommended -# -3: max size: 16 Kb <-- probably not recommended -# -2: max size: 8 Kb <-- good -# -1: max size: 4 Kb <-- good -# Positive numbers mean store up to _exactly_ that number of elements -# per list node. -# The highest performing option is usually -2 (8 Kb size) or -1 (4 Kb size), -# but if your use case is unique, adjust the settings as necessary. -list-max-listpack-size -2 - -# Lists may also be compressed. -# Compress depth is the number of quicklist ziplist nodes from *each* side of -# the list to *exclude* from compression. The head and tail of the list -# are always uncompressed for fast push/pop operations. Settings are: -# 0: disable all list compression -# 1: depth 1 means "don't start compressing until after 1 node into the list, -# going from either the head or tail" -# So: [head]->node->node->...->node->[tail] -# [head], [tail] will always be uncompressed; inner nodes will compress. -# 2: [head]->[next]->node->node->...->node->[prev]->[tail] -# 2 here means: don't compress head or head->next or tail->prev or tail, -# but compress all nodes between them. -# 3: [head]->[next]->[next]->node->node->...->node->[prev]->[prev]->[tail] -# etc. -list-compress-depth 0 - -# Sets have a special encoding when a set is composed -# of just strings that happen to be integers in radix 10 in the range -# of 64 bit signed integers. -# The following configuration setting sets the limit in the size of the -# set in order to use this special memory saving encoding. -set-max-intset-entries 512 - -# Sets containing non-integer values are also encoded using a memory efficient -# data structure when they have a small number of entries, and the biggest entry -# does not exceed a given threshold. These thresholds can be configured using -# the following directives. -set-max-listpack-entries 128 -set-max-listpack-value 64 - -# Similarly to hashes and lists, sorted sets are also specially encoded in -# order to save a lot of space. This encoding is only used when the length and -# elements of a sorted set are below the following limits: -zset-max-listpack-entries 128 -zset-max-listpack-value 64 - -# HyperLogLog sparse representation bytes limit. The limit includes the -# 16 bytes header. When a HyperLogLog using the sparse representation crosses -# this limit, it is converted into the dense representation. -# -# A value greater than 16000 is totally useless, since at that point the -# dense representation is more memory efficient. -# -# The suggested value is ~ 3000 in order to have the benefits of -# the space efficient encoding without slowing down too much PFADD, -# which is O(N) with the sparse encoding. The value can be raised to -# ~ 10000 when CPU is not a concern, but space is, and the data set is -# composed of many HyperLogLogs with cardinality in the 0 - 15000 range. -hll-sparse-max-bytes 3000 - -# Streams macro node max size / items. The stream data structure is a radix -# tree of big nodes that encode multiple items inside. Using this configuration -# it is possible to configure how big a single node can be in bytes, and the -# maximum number of items it may contain before switching to a new node when -# appending new stream entries. If any of the following settings are set to -# zero, the limit is ignored, so for instance it is possible to set just a -# max entries limit by setting max-bytes to 0 and max-entries to the desired -# value. -stream-node-max-bytes 4096 -stream-node-max-entries 100 - -# Active rehashing uses 1 millisecond every 100 milliseconds of CPU time in -# order to help rehashing the main Redis hash table (the one mapping top-level -# keys to values). The hash table implementation Redis uses (see dict.c) -# performs a lazy rehashing: the more operation you run into a hash table -# that is rehashing, the more rehashing "steps" are performed, so if the -# server is idle the rehashing is never complete and some more memory is used -# by the hash table. -# -# The default is to use this millisecond 10 times every second in order to -# actively rehash the main dictionaries, freeing memory when possible. -# -# If unsure: -# use "activerehashing no" if you have hard latency requirements and it is -# not a good thing in your environment that Redis can reply from time to time -# to queries with 2 milliseconds delay. -# -# use "activerehashing yes" if you don't have such hard requirements but -# want to free memory asap when possible. -activerehashing yes - -# The client output buffer limits can be used to force disconnection of clients -# that are not reading data from the server fast enough for some reason (a -# common reason is that a Pub/Sub client can't consume messages as fast as the -# publisher can produce them). -# -# The limit can be set differently for the three different classes of clients: -# -# normal -> normal clients including MONITOR clients -# replica -> replica clients -# pubsub -> clients subscribed to at least one pubsub channel or pattern -# -# The syntax of every client-output-buffer-limit directive is the following: -# -# client-output-buffer-limit -# -# A client is immediately disconnected once the hard limit is reached, or if -# the soft limit is reached and remains reached for the specified number of -# seconds (continuously). -# So for instance if the hard limit is 32 megabytes and the soft limit is -# 16 megabytes / 10 seconds, the client will get disconnected immediately -# if the size of the output buffers reach 32 megabytes, but will also get -# disconnected if the client reaches 16 megabytes and continuously overcomes -# the limit for 10 seconds. -# -# By default normal clients are not limited because they don't receive data -# without asking (in a push way), but just after a request, so only -# asynchronous clients may create a scenario where data is requested faster -# than it can read. -# -# Instead there is a default limit for pubsub and replica clients, since -# subscribers and replicas receive data in a push fashion. -# -# Note that it doesn't make sense to set the replica clients output buffer -# limit lower than the repl-backlog-size config (partial sync will succeed -# and then replica will get disconnected). -# Such a configuration is ignored (the size of repl-backlog-size will be used). -# This doesn't have memory consumption implications since the replica client -# will share the backlog buffers memory. -# -# Both the hard or the soft limit can be disabled by setting them to zero. -client-output-buffer-limit normal 0 0 0 -client-output-buffer-limit replica 256mb 64mb 60 -client-output-buffer-limit pubsub 32mb 8mb 60 - -# Client query buffers accumulate new commands. They are limited to a fixed -# amount by default in order to avoid that a protocol desynchronization (for -# instance due to a bug in the client) will lead to unbound memory usage in -# the query buffer. However you can configure it here if you have very special -# needs, such as a command with huge argument, or huge multi/exec requests or alike. -# -# client-query-buffer-limit 1gb - -# In some scenarios client connections can hog up memory leading to OOM -# errors or data eviction. To avoid this we can cap the accumulated memory -# used by all client connections (all pubsub and normal clients). Once we -# reach that limit connections will be dropped by the server freeing up -# memory. The server will attempt to drop the connections using the most -# memory first. We call this mechanism "client eviction". -# -# Client eviction is configured using the maxmemory-clients setting as follows: -# 0 - client eviction is disabled (default) -# -# A memory value can be used for the client eviction threshold, -# for example: -# maxmemory-clients 1g -# -# A percentage value (between 1% and 100%) means the client eviction threshold -# is based on a percentage of the maxmemory setting. For example to set client -# eviction at 5% of maxmemory: -# maxmemory-clients 5% - -# In the Redis protocol, bulk requests, that are, elements representing single -# strings, are normally limited to 512 mb. However you can change this limit -# here, but must be 1mb or greater -# -# proto-max-bulk-len 512mb - -# Redis calls an internal function to perform many background tasks, like -# closing connections of clients in timeout, purging expired keys that are -# never requested, and so forth. -# -# Not all tasks are performed with the same frequency, but Redis checks for -# tasks to perform according to the specified "hz" value. -# -# By default "hz" is set to 10. Raising the value will use more CPU when -# Redis is idle, but at the same time will make Redis more responsive when -# there are many keys expiring at the same time, and timeouts may be -# handled with more precision. -# -# The range is between 1 and 500, however a value over 100 is usually not -# a good idea. Most users should use the default of 10 and raise this up to -# 100 only in environments where very low latency is required. -hz 10 - -# Normally it is useful to have an HZ value which is proportional to the -# number of clients connected. This is useful in order, for instance, to -# avoid too many clients are processed for each background task invocation -# in order to avoid latency spikes. -# -# Since the default HZ value by default is conservatively set to 10, Redis -# offers, and enables by default, the ability to use an adaptive HZ value -# which will temporarily raise when there are many connected clients. -# -# When dynamic HZ is enabled, the actual configured HZ will be used -# as a baseline, but multiples of the configured HZ value will be actually -# used as needed once more clients are connected. In this way an idle -# instance will use very little CPU time while a busy instance will be -# more responsive. -dynamic-hz yes - -# When a child rewrites the AOF file, if the following option is enabled -# the file will be fsync-ed every 4 MB of data generated. This is useful -# in order to commit the file to the disk more incrementally and avoid -# big latency spikes. -aof-rewrite-incremental-fsync yes - -# When redis saves RDB file, if the following option is enabled -# the file will be fsync-ed every 4 MB of data generated. This is useful -# in order to commit the file to the disk more incrementally and avoid -# big latency spikes. -rdb-save-incremental-fsync yes - -# Redis LFU eviction (see maxmemory setting) can be tuned. However it is a good -# idea to start with the default settings and only change them after investigating -# how to improve the performances and how the keys LFU change over time, which -# is possible to inspect via the OBJECT FREQ command. -# -# There are two tunable parameters in the Redis LFU implementation: the -# counter logarithm factor and the counter decay time. It is important to -# understand what the two parameters mean before changing them. -# -# The LFU counter is just 8 bits per key, it's maximum value is 255, so Redis -# uses a probabilistic increment with logarithmic behavior. Given the value -# of the old counter, when a key is accessed, the counter is incremented in -# this way: -# -# 1. A random number R between 0 and 1 is extracted. -# 2. A probability P is calculated as 1/(old_value*lfu_log_factor+1). -# 3. The counter is incremented only if R < P. -# -# The default lfu-log-factor is 10. This is a table of how the frequency -# counter changes with a different number of accesses with different -# logarithmic factors: -# -# +--------+------------+------------+------------+------------+------------+ -# | factor | 100 hits | 1000 hits | 100K hits | 1M hits | 10M hits | -# +--------+------------+------------+------------+------------+------------+ -# | 0 | 104 | 255 | 255 | 255 | 255 | -# +--------+------------+------------+------------+------------+------------+ -# | 1 | 18 | 49 | 255 | 255 | 255 | -# +--------+------------+------------+------------+------------+------------+ -# | 10 | 10 | 18 | 142 | 255 | 255 | -# +--------+------------+------------+------------+------------+------------+ -# | 100 | 8 | 11 | 49 | 143 | 255 | -# +--------+------------+------------+------------+------------+------------+ -# -# NOTE: The above table was obtained by running the following commands: -# -# redis-benchmark -n 1000000 incr foo -# redis-cli object freq foo -# -# NOTE 2: The counter initial value is 5 in order to give new objects a chance -# to accumulate hits. -# -# The counter decay time is the time, in minutes, that must elapse in order -# for the key counter to be decremented. -# -# The default value for the lfu-decay-time is 1. A special value of 0 means we -# will never decay the counter. -# -# lfu-log-factor 10 -# lfu-decay-time 1 - - -# The maximum number of new client connections accepted per event-loop cycle. This configuration -# is set independently for TLS connections. -# -# By default, up to 10 new connection will be accepted per event-loop cycle for normal connections -# and up to 1 new connection per event-loop cycle for TLS connections. -# -# Adjusting this to a larger number can slightly improve efficiency for new connections -# at the risk of causing timeouts for regular commands on established connections. It is -# not advised to change this without ensuring that all clients have limited connection -# pools and exponential backoff in the case of command/connection timeouts. -# -# If your application is establishing a large number of new connections per second you should -# also consider tuning the value of tcp-backlog, which allows the kernel to buffer more -# pending connections before dropping or rejecting connections. -# -# max-new-connections-per-cycle 10 -# max-new-tls-connections-per-cycle 1 - - -########################### ACTIVE DEFRAGMENTATION ####################### -# -# What is active defragmentation? -# ------------------------------- -# -# Active (online) defragmentation allows a Redis server to compact the -# spaces left between small allocations and deallocations of data in memory, -# thus allowing to reclaim back memory. -# -# Fragmentation is a natural process that happens with every allocator (but -# less so with Jemalloc, fortunately) and certain workloads. Normally a server -# restart is needed in order to lower the fragmentation, or at least to flush -# away all the data and create it again. However thanks to this feature -# implemented by Oran Agra for Redis 4.0 this process can happen at runtime -# in a "hot" way, while the server is running. -# -# Basically when the fragmentation is over a certain level (see the -# configuration options below) Redis will start to create new copies of the -# values in contiguous memory regions by exploiting certain specific Jemalloc -# features (in order to understand if an allocation is causing fragmentation -# and to allocate it in a better place), and at the same time, will release the -# old copies of the data. This process, repeated incrementally for all the keys -# will cause the fragmentation to drop back to normal values. -# -# Important things to understand: -# -# 1. This feature is disabled by default, and only works if you compiled Redis -# to use the copy of Jemalloc we ship with the source code of Redis. -# This is the default with Linux builds. -# -# 2. You never need to enable this feature if you don't have fragmentation -# issues. -# -# 3. Once you experience fragmentation, you can enable this feature when -# needed with the command "CONFIG SET activedefrag yes". -# -# The configuration parameters are able to fine tune the behavior of the -# defragmentation process. If you are not sure about what they mean it is -# a good idea to leave the defaults untouched. - -# Active defragmentation is disabled by default -# activedefrag no - -# Minimum amount of fragmentation waste to start active defrag -# active-defrag-ignore-bytes 100mb - -# Minimum percentage of fragmentation to start active defrag -# active-defrag-threshold-lower 10 - -# Maximum percentage of fragmentation at which we use maximum effort -# active-defrag-threshold-upper 100 - -# Minimal effort for defrag in CPU percentage, to be used when the lower -# threshold is reached -# active-defrag-cycle-min 1 - -# Maximal effort for defrag in CPU percentage, to be used when the upper -# threshold is reached -# active-defrag-cycle-max 25 - -# Maximum number of set/hash/zset/list fields that will be processed from -# the main dictionary scan -# active-defrag-max-scan-fields 1000 - -# Jemalloc background thread for purging will be enabled by default -jemalloc-bg-thread yes - -# It is possible to pin different threads and processes of Redis to specific -# CPUs in your system, in order to maximize the performances of the server. -# This is useful both in order to pin different Redis threads in different -# CPUs, but also in order to make sure that multiple Redis instances running -# in the same host will be pinned to different CPUs. -# -# Normally you can do this using the "taskset" command, however it is also -# possible to this via Redis configuration directly, both in Linux and FreeBSD. -# -# You can pin the server/IO threads, bio threads, aof rewrite child process, and -# the bgsave child process. The syntax to specify the cpu list is the same as -# the taskset command: -# -# Set redis server/io threads to cpu affinity 0,2,4,6: -# server-cpulist 0-7:2 -# -# Set bio threads to cpu affinity 1,3: -# bio-cpulist 1,3 -# -# Set aof rewrite child process to cpu affinity 8,9,10,11: -# aof-rewrite-cpulist 8-11 -# -# Set bgsave child process to cpu affinity 1,10,11 -# bgsave-cpulist 1,10-11 - -# In some cases redis will emit warnings and even refuse to start if it detects -# that the system is in bad state, it is possible to suppress these warnings -# by setting the following config which takes a space delimited list of warnings -# to suppress -# -# ignore-warnings ARM64-COW-BUG \ No newline at end of file diff --git a/redis/8.0.2/data.yml b/redis/8.0.2/data.yml deleted file mode 100755 index 2a5670bf1..000000000 --- a/redis/8.0.2/data.yml +++ /dev/null @@ -1,34 +0,0 @@ -additionalProperties: - formFields: - - default: redis - envKey: PANEL_REDIS_ROOT_PASSWORD - labelEn: Database Password - labelZh: 数据库密码 - label: - en: Database Password - ja: データベースのパスワード - ms: Kata Laluan Pangkalan Data - pt-br: Senha do Banco de Dados - ru: Пароль базы данных - ko: 데이터베이스 비밀번호 - zh-hant: 資料庫密碼 - zh: 数据库密码 - random: true - required: false - type: password - - default: 6379 - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh-Hant: 埠 - zh: 端口 - required: true - rule: paramPort - type: number diff --git a/redis/8.0.2/docker-compose.yml b/redis/8.0.2/docker-compose.yml deleted file mode 100644 index e21cf9cc7..000000000 --- a/redis/8.0.2/docker-compose.yml +++ /dev/null @@ -1,19 +0,0 @@ -services: - redis: - image: redis:8.0.2 - restart: always - container_name: ${CONTAINER_NAME} - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_HTTP}:6379 - command: redis-server /etc/redis/redis.conf ${PANEL_REDIS_ROOT_PASSWORD:+--requirepass "${PANEL_REDIS_ROOT_PASSWORD}"} - volumes: - - ./data:/data - - ./conf/redis.conf:/etc/redis/redis.conf - - ./logs:/logs - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/redis/README.md b/redis/README.md deleted file mode 100644 index 023968e0d..000000000 --- a/redis/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Redis - -Redis(Remote Dictionary Server)是一种开源的内存数据库,通常用作缓存系统或键值存储数据库。 - -## 主要功能: - -- **键值存储**:Redis 是一种开源的内存数据库,通常用作缓存系统或键值存储数据库。 -- **内存存储**:Redis 数据存储在内存中,这使得它非常快速,适合高速读写操作。这也意味着Redis适用于缓存大量数据,以提高应用程序的性能。 -- **数据类型支持**:Redis 支持多种数据类型,包括字符串、哈希、列表、集合和有序集合。这使得Redis非常灵活,可以用于各种用例,从简单的键值存储到高级数据结构。 -- **持久性**:Redis 支持不同级别的持久性,可以将数据写入磁盘以进行持久性存储,以防止数据丢失。这使得Redis非常适合用作数据存储。 -- **发布/订阅**:Redis 提供了发布/订阅功能,允许应用程序通过订阅频道来接收实时消息。这在构建实时通信和事件处理系统时非常有用。 -- **事务**:Redis 支持事务,允许多个命令一起执行,可以确保它们要么全部成功,要么全部失败,这有助于维护数据的一致性。 -- **集群支持**:Redis 支持分布式架构,可以将多个Redis节点组合成一个集群,以提高可用性和可伸缩性。 -- **Lua 脚本**:Redis 允许使用Lua脚本执行自定义操作,这使得它可以用于复杂的数据处理任务。 -- **多语言客户端**:Redis 客户端库支持多种编程语言,使得开发人员可以轻松地与Redis进行交互。 -- **社区支持**:Redis 拥有庞大的社区,有丰富的文档、示例和支持资源,使其成为一个广泛使用的数据库解决方案。 \ No newline at end of file diff --git a/redis/README_en.md b/redis/README_en.md deleted file mode 100644 index 70ac73e54..000000000 --- a/redis/README_en.md +++ /dev/null @@ -1,45 +0,0 @@ -# Redis - -Redis (Remote Dictionary Server) is an open-source in-memory database, commonly used as a caching system or key-value store database. - -## Main Features - -### Key-Value Store - -Redis is an open-source in-memory database, commonly used as a caching system or key-value store database. - -### In-Memory Storage - -Redis stores data in memory, making it very fast and suitable for high-speed read and write operations. This also means Redis is suitable for caching large amounts of data to improve application performance. - -### Data Type Support - -Redis supports various data types, including strings, hashes, lists, sets, and sorted sets. This makes Redis very flexible and usable for various use cases, from simple key-value storage to advanced data structures. - -### Persistence - -Redis supports different levels of persistence, allowing data to be written to disk for persistent storage to prevent data loss. This makes Redis very suitable as a data store. - -### Publish/Subscribe - -Redis provides "PUB/SUB" functionality, allowing applications to receive real-time messages by subscribing to channels. This is very useful for building real-time communication and event processing systems. - -### Transactions - -Redis supports transactions, allowing multiple commands to be executed together, ensuring they either all succeed or all fail, which helps maintain data consistency. - -### Cluster Support - -Redis supports a distributed architecture, allowing multiple Redis nodes to be combined into a cluster to improve availability and scalability. - -### Lua Scripting - -Redis allows custom operations to be executed using Lua scripts, making it suitable for complex data processing tasks. - -### Multi-Language Clients - -Redis client libraries support various programming languages, making it easy for developers to interact with Redis. - -### Community Support - -Redis has a large community with extensive documentation, examples, and support resources, making it a widely used database solution. diff --git a/redis/data.yml b/redis/data.yml deleted file mode 100755 index 0005b3e23..000000000 --- a/redis/data.yml +++ /dev/null @@ -1,35 +0,0 @@ -name: Redis -tags: - - 数据库 -title: 高性能的开源键值数据库 -description: 高性能的开源键值数据库 -additionalProperties: - key: redis - name: Redis - tags: - - Database - shortDescZh: 高性能的开源键值数据库 - shortDescEn: High-performance open-source key-value database - description: - en: High-performance open-source key-value database - ja: 高性能のオープンソースキー・バリューデータベース - ms: Pangkalan data nilai-kunci sumber terbuka berprestasi tinggi - pt-br: Banco de dados chave-valor de alto desempenho e código aberto - ru: Высокопроизводительная открытая база данных ключ-значение - ko: 고성능 오픈 소스 키-값 데이터베이스 - zh-hant: 高性能開源鍵值資料庫 - zh: 高性能的开源键值数据库 - type: runtime - crossVersionUpdate: false - limit: 0 - recommend: 15 - website: https://redis.io/ - github: https://github.com/redis/redis - document: https://redis.io/docs/ - architectures: - - amd64 - - arm/v5 - - arm/v7 - - arm64 - - ppc64le - - s390x diff --git a/redis/logo.png b/redis/logo.png deleted file mode 100644 index f8b930e93..000000000 Binary files a/redis/logo.png and /dev/null differ diff --git a/redpanda-console/3.1.2/data.yml b/redpanda-console/3.1.2/data.yml deleted file mode 100755 index 3cd6e1236..000000000 --- a/redpanda-console/3.1.2/data.yml +++ /dev/null @@ -1,34 +0,0 @@ -additionalProperties: - formFields: - - default: 8080 - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh: 端口 - zh-Hant: 埠 - required: true - rule: paramPort - type: number - - default: "" - envKey: KAFKA_HOST - labelEn: Kafka Service - labelZh: Kafka 服务 - label: - en: Kafka Service - ja: Kafka サービス - ms: Perkhidmatan Kafka - pt-br: Serviço Kafka - ru: Сервис Kafka - ko: Kafka 서비스 - zh: Kafka 服务 - zh-Hant: Kafka 服務 - required: true - key: kafka - type: service diff --git a/redpanda-console/3.1.2/docker-compose.yml b/redpanda-console/3.1.2/docker-compose.yml deleted file mode 100644 index a3ea3ab63..000000000 --- a/redpanda-console/3.1.2/docker-compose.yml +++ /dev/null @@ -1,16 +0,0 @@ -services: - redpanda-console: - image: redpandadata/console:v3.1.2 - restart: always - container_name: ${CONTAINER_NAME} - networks: - - 1panel-network - environment: - KAFKA_BROKERS: ${KAFKA_HOST}:9092 - ports: - - ${PANEL_APP_PORT_HTTP}:8080 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/redpanda-console/README.md b/redpanda-console/README.md deleted file mode 100644 index e7aa050d6..000000000 --- a/redpanda-console/README.md +++ /dev/null @@ -1,12 +0,0 @@ -# Redpanda Console - -**Redpanda Console** 是一个开发人员友好的 UI,用于管理 Kafka/Redpanda 工作负载。控制台为您提供了一种简单的交互式方法,用于了解主题、屏蔽数据、管理消费者组以及通过时间旅行调试探索实时数据。 - -## 主要功能: - -- 消息查看器:通过即席查询和动态过滤器在我们的消息查看器中探索您的主题消息。使用 JavaScript 函数过滤消息来查找您想要的任何消息。支持的编码有:JSON、Avro、Protobuf、XML、MessagePack、Text 和 Binary(十六进制视图)。使用的编码(Protobuf 除外)会自动识别。 -- 消费者组:列出所有活动消费者组及其活动组偏移量、编辑组偏移量(按组、主题或分区)或删除消费者组。 -- 主题概述:浏览 Kafka 主题列表,检查其配置、空间使用情况、列出使用单个主题的所有消费者或观察分区详细信息(例如低水位线和高水位线、消息计数等)、嵌入主题来自 git 存储库的文档等等。 -- 集群概述:列出 ACL、可用代理、其空间使用情况、机架 ID 和其他信息,以获得集群中代理的高级概述。 -- 模式注册表:列出模式注册表中的所有 Avro、Protobuf 或 JSON 模式。 -- Kafka 连接:管理来自多个连接集群的连接器、修补配置、查看其当前状态或重新启动任务。 \ No newline at end of file diff --git a/redpanda-console/README_en.md b/redpanda-console/README_en.md deleted file mode 100644 index 76d638491..000000000 --- a/redpanda-console/README_en.md +++ /dev/null @@ -1,13 +0,0 @@ -# Redpanda Console - -**Redpanda Console** is a developer-friendly UI for managing Kafka/Redpanda workloads. The console provides an interactive way to understand topics, mask data, manage consumer groups, and explore real-time data through time-travel debugging. - -## Main Features: - -- **Message Viewer**: Explore your topic messages through ad-hoc queries and dynamic filters in our message viewer. Use JavaScript functions to filter messages and find exactly what you’re looking for. Supported encodings include JSON, Avro, Protobuf, XML, MessagePack, Text, and Binary (hex view). Encodings (except Protobuf) are automatically recognized. -- **Consumer Groups**: List all active consumer groups and their group offset, edit group offsets (by group, topic, or partition), or delete consumer groups. -- **Topic Overview**: Browse Kafka topic lists, inspect their configurations, space usage, list all consumers using a single topic, or observe partition details (e.g., low watermark, high watermark, message count, etc.), embed topic documentation from git repositories, and more. -- **Cluster Overview**: List ACLs, available brokers, their space usage, rack IDs, and other information for a high-level overview of brokers in the cluster. -- **Schema Registry**: List all Avro, Protobuf, or JSON schemas in the schema registry. -- **Kafka Connect**: Manage connectors from multiple connect clusters, patch configurations, view their current status, or restart tasks. - diff --git a/redpanda-console/data.yml b/redpanda-console/data.yml deleted file mode 100755 index 81397e78b..000000000 --- a/redpanda-console/data.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: Redpanda Console -tags: - - 开发工具 -title: Kafka Web 管理工具 -description: Kafka Web 管理工具 -additionalProperties: - key: redpanda-console - name: Redpanda Console - tags: - - DevTool - shortDescZh: Kafka Web 管理工具 - shortDescEn: Redpanda Console – A UI for Data Streaming - type: website - crossVersionUpdate: true - limit: 1 - recommend: 0 - website: https://redpanda.com/ - github: https://github.com/redpanda-data/console - document: https://docs.redpanda.com/current/manage/console/ - description: - en: Redpanda Console – A UI for Data Streaming - zh: Redpanda Console – 数据流的用户界面 - zh-Hant: Redpanda Console – 數據流的用戶界面 - ja: Redpanda Console – データストリーミングのためのUI - ms: Redpanda Console – Antaramuka Pengguna untuk Penstriman Data - pt-br: Redpanda Console – Uma interface para streaming de dados - ru: Redpanda Console – Интерфейс для потоковой передачи данных - ko: Redpanda Console – 데이터 스트리밍을 위한 UI - architectures: - - amd64 - - arm64 diff --git a/redpanda-console/logo.png b/redpanda-console/logo.png deleted file mode 100644 index 05dc5a8a4..000000000 Binary files a/redpanda-console/logo.png and /dev/null differ diff --git a/rocketmq/5.3.3/data.yml b/rocketmq/5.3.3/data.yml deleted file mode 100755 index 1b0016131..000000000 --- a/rocketmq/5.3.3/data.yml +++ /dev/null @@ -1,121 +0,0 @@ -additionalProperties: - formFields: - - default: 9876 - edit: true - envKey: PANEL_APP_PORT_NAMESERVER - labelEn: NameServer Port - labelZh: NameServer 端口 - label: - en: NameServer Port - ja: NameServer ポート - ms: Port NameServer - pt-br: Porta NameServer - ru: Порт NameServer - ko: NameServer 포트 - zh: NameServer 端口 - zh-Hant: NameServer 埠 - required: true - rule: paramPort - type: number - - default: 10911 - edit: true - envKey: PANEL_APP_PORT_LISTEN - labelEn: Broker ListenPort - labelZh: Broker 监听端口 - label: - en: Broker ListenPort - ja: Broker リッスンポート - ms: Port Dengar Broker - pt-br: Porta de Escuta do Broker - ru: Порт прослушивания брокера - ko: 브로커 수신 포트 - zh: Broker 监听端口 - zh-Hant: Broker 監聽埠 - required: true - rule: paramPort - type: number - - default: 10909 - edit: true - envKey: PANEL_APP_PORT_FASTLISTEN - labelEn: Broker FastListenPort - labelZh: Broker 快速监听端口 - label: - en: Broker FastListenPort - ja: Broker 高速リッスンポート - ms: Port Dengar Cepat Broker - pt-br: Porta de Escuta Rápida do Broker - ru: Порт быстрого прослушивания брокера - ko: 브로커 빠른 수신 포트 - zh: Broker 快速监听端口 - zh-Hant: Broker 快速監聽埠 - required: true - rule: paramPort - type: number - - default: 10912 - edit: true - envKey: PANEL_APP_PORT_HALISTEN - labelEn: Broker HaListenPort - labelZh: Broker HA 监听端口 - label: - en: Broker HaListenPort - ja: Broker HA リッスンポート - ms: Port Dengar HA Broker - pt-br: Porta de Escuta HA do Broker - ru: Порт HA прослушивания брокера - ko: 브로커 HA 수신 포트 - zh: Broker HA 监听端口 - zh-Hant: Broker HA 監聽埠 - required: true - rule: paramPort - type: number - - default: 8080 - edit: true - envKey: PANEL_APP_PORT_REMOTINGLISTEN - labelEn: Proxy RemotingListenPort - labelZh: Proxy 远程监听端口 - label: - en: Proxy RemotingListenPort - ja: Proxy リモートリッスンポート - ms: Port Dengar Jauh Proxy - pt-br: Porta de Escuta Remota do Proxy - ru: Порт удаленного прослушивания прокси - ko: 프록시 원격 수신 포트 - zh: Proxy 远程监听端口 - zh-Hant: Proxy 遠程監聽埠 - required: true - rule: paramPort - type: number - - default: 8081 - edit: true - envKey: PANEL_APP_PORT_GRPCSERVER - labelEn: Proxy GrpcServerPort - labelZh: Proxy grpc 端口 - label: - en: Proxy GrpcServerPort - ja: Proxy grpc サーバーポート - ms: Port Pelayan Grpc Proxy - pt-br: Porta do Servidor Grpc do Proxy - ru: Порт сервера Grpc прокси - ko: 프록시 grpc 서버 포트 - zh: Proxy grpc 端口 - zh-Hant: Proxy grpc 埠 - required: true - rule: paramPort - type: number - - default: 8088 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Dashboard Port - labelZh: Dashboard 端口 - label: - en: Dashboard Port - ja: ダッシュボードポート - ms: Port Papan Pemuka - pt-br: Porta do Painel - ru: Порт панели управления - ko: 대시보드 포트 - zh: Dashboard 端口 - zh-Hant: Dashboard 埠 - required: true - rule: paramPort - type: number \ No newline at end of file diff --git a/rocketmq/5.3.3/data/broker/conf/broker.conf b/rocketmq/5.3.3/data/broker/conf/broker.conf deleted file mode 100644 index 38b549512..000000000 --- a/rocketmq/5.3.3/data/broker/conf/broker.conf +++ /dev/null @@ -1,7 +0,0 @@ -brokerClusterName = DefaultCluster -brokerName = broker-a -brokerId = 0 -deleteWhen = 04 -fileReservedTime = 48 -brokerRole = ASYNC_MASTER -flushDiskType = ASYNC_FLUSH \ No newline at end of file diff --git a/rocketmq/5.3.3/data/broker/logs/.gitkeep b/rocketmq/5.3.3/data/broker/logs/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/rocketmq/5.3.3/data/broker/store/.gitkeep b/rocketmq/5.3.3/data/broker/store/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/rocketmq/5.3.3/data/namesrv/logs/.gitkeep b/rocketmq/5.3.3/data/namesrv/logs/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/rocketmq/5.3.3/data/proxy/conf/rmq-proxy.json b/rocketmq/5.3.3/data/proxy/conf/rmq-proxy.json deleted file mode 100644 index ad8c9b71c..000000000 --- a/rocketmq/5.3.3/data/proxy/conf/rmq-proxy.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "rocketMQClusterName": "DefaultCluster" -} \ No newline at end of file diff --git a/rocketmq/5.3.3/data/proxy/logs/.gitkeep b/rocketmq/5.3.3/data/proxy/logs/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/rocketmq/5.3.3/docker-compose.yml b/rocketmq/5.3.3/docker-compose.yml deleted file mode 100644 index 61b9dc74e..000000000 --- a/rocketmq/5.3.3/docker-compose.yml +++ /dev/null @@ -1,74 +0,0 @@ -services: - namesrv: - image: apache/rocketmq:5.3.3 - container_name: ${CONTAINER_NAME}-rmqnamesrv - ports: - - ${PANEL_APP_PORT_NAMESERVER}:9876 - networks: - - 1panel-network - volumes: - - ./data/namesrv/logs:/home/rocketmq/logs - command: sh mqnamesrv - labels: - createdBy: "Apps" - broker: - image: apache/rocketmq:5.3.3 - container_name: ${CONTAINER_NAME}-rmqbroker - links: - - namesrv - ports: - - ${PANEL_APP_PORT_FASTLISTEN}:10909 - - ${PANEL_APP_PORT_LISTEN}:10911 - - ${PANEL_APP_PORT_HALISTEN}:10912 - networks: - - 1panel-network - environment: - - NAMESRV_ADDR=namesrv:9876 - volumes: - - ./data/broker/logs:/home/rocketmq/logs - - ./data/broker/store:/home/rocketmq/store - - ./data/broker/conf/broker.conf:/opt/rocketmq-5.2.0/conf/broker.conf - command: sh mqbroker -c /opt/rocketmq-5.2.0/conf/broker.conf - labels: - createdBy: "Apps" - proxy: - image: apache/rocketmq:5.3.3 - container_name: ${CONTAINER_NAME}-rmqproxy - links: - - namesrv - - broker - depends_on: - - broker - ports: - - ${PANEL_APP_PORT_REMOTINGLISTEN}:8080 - - ${PANEL_APP_PORT_GRPCSERVER}:8081 - networks: - - 1panel-network - restart: on-failure - environment: - - NAMESRV_ADDR=namesrv:9876 - volumes: - - ./data/proxy/logs:/home/rocketmq/logs - - ./data/proxy/conf/rmq-proxy.json:/opt/rocketmq-5.2.0/conf/rmq-proxy.json - command: sh mqproxy -pc /opt/rocketmq-5.2.0/conf/rmq-proxy.json - labels: - createdBy: "Apps" - dashboard: - image: apacherocketmq/rocketmq-dashboard:latest - container_name: ${CONTAINER_NAME}-rmqdashboard - links: - - namesrv - depends_on: - - namesrv - ports: - - ${PANEL_APP_PORT_HTTP}:8080 - networks: - - 1panel-network - restart: on-failure - environment: - - JAVA_OPTS=-Drocketmq.namesrv.addr=namesrv:9876 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/rocketmq/5.3.3/scripts/init.sh b/rocketmq/5.3.3/scripts/init.sh deleted file mode 100644 index d05fa6ad8..000000000 --- a/rocketmq/5.3.3/scripts/init.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -chown -R 3000:3000 data \ No newline at end of file diff --git a/rocketmq/README.md b/rocketmq/README.md deleted file mode 100644 index 2a7027ac4..000000000 --- a/rocketmq/README.md +++ /dev/null @@ -1,24 +0,0 @@ -# RocketMQ - -**Apache RocketMQ** 是一个分布式消息和流媒体平台,具有低延迟、高性能和可靠性、万亿级容量和灵活的可扩展性。 - -## 主要功能: - -- 消息传递模式包括发布/订阅、请求/回复和流式传输 -- 金融级交易消息 -- 基于 DLedger Controller 的内置容错和高可用性配置选项 -- 内置消息追踪能力,也支持 opentracing -- 多功能大数据和流媒体生态系统集成 -- 按时间或偏移量追溯消息 -- 同一队列中可靠的 FIFO 和严格有序的消息传递 -- 高效的拉推消费模式 -- 单队列百万级消息累积能力 -- 多种消息传递协议,例如 gRPC、MQTT、JMS 和 OpenMessaging -- 灵活的分布式横向扩展部署架构 -- 闪电般快速的批量消息交换系统 -- SQL、Tag等多种消息过滤机制 -- 用于隔离测试和云隔离集群的 Docker 镜像 -- 用于配置、指标和监控的功能丰富的管理仪表板 -- 认证与授权 -- 免费的开源连接器,适用于源和接收器 -- 轻量级实时计算 \ No newline at end of file diff --git a/rocketmq/README_en.md b/rocketmq/README_en.md deleted file mode 100644 index 98afc2529..000000000 --- a/rocketmq/README_en.md +++ /dev/null @@ -1,25 +0,0 @@ -# RocketMQ - -**Apache RocketMQ** is a distributed messaging and streaming platform with low latency, high performance and reliability, trillion-level capacity, and flexible scalability. - -## Main Features: - -- Messaging patterns include publish/subscribe, request/reply, and streaming. -- Financial-grade transactional messages. -- Built-in fault tolerance and high availability configuration options based on DLedger Controller. -- Built-in message tracing capability, also supports opentracing. -- Multifunctional big data and streaming ecosystem integration. -- Message replay by time or offset. -- Reliable FIFO and strictly ordered message delivery in the same queue. -- Efficient pull-push consumption patterns. -- Single queue with million-level message accumulation capability. -- Multiple messaging protocols, such as gRPC, MQTT, JMS, and OpenMessaging. -- Flexible distributed horizontal scaling deployment architecture. -- Lightning-fast batch message exchange system. -- SQL, Tag, and other message filtering mechanisms. -- Docker image for isolated testing and cloud-isolated clusters. -- Feature-rich management dashboard for configuration, metrics, and monitoring. -- Authentication and authorization. -- Free and open-source connectors for sources and sinks. -- Lightweight real-time computing. - diff --git a/rocketmq/data.yml b/rocketmq/data.yml deleted file mode 100755 index 6cf5390c2..000000000 --- a/rocketmq/data.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: RocketMQ -tags: - - 中间件 -title: 云原生消息传递和流媒体平台 -description: 云原生消息传递和流媒体平台 -additionalProperties: - key: rocketmq - name: RocketMQ - tags: - - Middleware - shortDescZh: 云原生消息传递和流媒体平台 - shortDescEn: Cloud native messaging and streaming platform - type: website - crossVersionUpdate: false - limit: 0 - recommend: 0 - website: https://rocketmq.apache.org/ - github: https://github.com/apache/rocketmq/ - document: https://rocketmq.apache.org/docs/ - description: - en: Cloud native messaging and streaming platform - zh: 云原生消息传递和流媒体平台 - zh-Hant: 雲原生消息傳遞和流媒體平台 - ja: クラウドネイティブメッセージングおよびストリーミングプラットフォーム - ms: Platform pemesejan dan penstriman asli awan - pt-br: Plataforma de mensagens e streaming nativa da nuvem - ru: Облачная платформа для обмена сообщениями и потоковой передачи - ko: 클라우드 네이티브 메시징 및 스트리밍 플랫폼 - memoryRequired: 2048 - architectures: - - amd64 \ No newline at end of file diff --git a/rocketmq/logo.png b/rocketmq/logo.png deleted file mode 100644 index e02739937..000000000 Binary files a/rocketmq/logo.png and /dev/null differ diff --git a/roundcube/1.6.11-apache/data.yml b/roundcube/1.6.11-apache/data.yml deleted file mode 100644 index 91a6c1dd2..000000000 --- a/roundcube/1.6.11-apache/data.yml +++ /dev/null @@ -1,151 +0,0 @@ -additionalProperties: - formFields: - - default: "" - envKey: PANEL_DB_HOST - key: mysql - labelEn: Database Service - labelZh: 数据库服务 - label: - en: Database Service - ja: データベースサービス - ms: Perkhidmatan Pangkalan Data - pt-br: Serviço de Banco de Dados - ru: Сервис баз данных - ko: 데이터베이스 서비스 - zh-hant: 資料庫服務 - zh: 数据库服务 - required: true - type: service - - default: de - envKey: PANEL_DB_NAME - labelEn: Database - labelZh: 数据库 - label: - en: Database - ja: データベース - ms: Pangkalan Data - pt-br: Banco de Dados - ru: База данных - ko: 데이터베이스 - zh-hant: 資料庫 - zh: 数据库 - random: true - required: true - rule: paramCommon - type: text - - default: de - envKey: PANEL_DB_USER - labelEn: Database User - labelZh: 数据库用户 - label: - en: Database User - ja: データベースユーザー - ms: Pengguna Pangkalan Data - pt-br: Usuário do Banco de Dados - ru: Пользователь базы данных - ko: 데이터베이스 사용자 - zh-hant: 資料庫用戶 - zh: 数据库用户 - random: true - required: true - rule: paramCommon - type: text - - default: de - envKey: PANEL_DB_USER_PASSWORD - labelEn: Database Password - labelZh: 数据库密码 - label: - en: Database Password - ja: データベースのパスワード - ms: Kata Laluan Pangkalan Data - pt-br: Senha do Banco de Dados - ru: Пароль базы данных - ko: 데이터베이스 비밀번호 - zh-hant: 資料庫密碼 - zh: 数据库密码 - random: true - required: true - type: password - - default: imap.sina.com - edit: true - envKey: IMAP_SERVER - labelEn: IMAP Server - labelZh: IMAP 服务器 - label: - en: IMAP Server - ja: IMAP サーバー - ms: Pelayan IMAP - pt-br: Servidor IMAP - ru: IMAP сервер - ko: IMAP 서버 - zh-hant: IMAP 伺服器 - zh: IMAP 服务器 - required: true - type: text - - default: 143 - edit: true - envKey: IMAP_SERVER_PORT - labelEn: IMAP Port - labelZh: IMAP 端口 - label: - en: IMAP Port - ja: IMAP ポート - ms: Port IMAP - pt-br: Porta IMAP - ru: Порт IMAP - ko: IMAP 포트 - zh-hant: IMAP 埠 - zh: IMAP 端口 - required: true - rule: paramPort - type: number - - default: smtp.sina.com - edit: true - envKey: SMTP_SERVER - labelEn: SMTP Server - labelZh: SMTP 服务器 - label: - en: SMTP Server - ja: SMTP サーバー - ms: Pelayan SMTP - pt-br: Servidor SMTP - ru: SMTP сервер - ko: SMTP 서버 - zh-hant: SMTP 伺服器 - zh: SMTP 服务器 - required: true - type: text - - default: 587 - edit: true - envKey: SMTP_SERVER_PORT - labelEn: SMTP Port - labelZh: SMTP 端口 - label: - en: SMTP Port - ja: SMTP ポート - ms: Port SMTP - pt-br: Porta SMTP - ru: Порт SMTP - ko: SMTP 포트 - zh-hant: SMTP 埠 - zh: SMTP 端口 - required: true - rule: paramPort - type: number - - default: 8080 - envKey: PANEL_APP_PORT_HTTP - edit: true - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh-Hant: 埠 - zh: 端口 - required: true - rule: paramPort - type: number diff --git a/roundcube/1.6.11-apache/docker-compose.yml b/roundcube/1.6.11-apache/docker-compose.yml deleted file mode 100644 index 6cac8c8d0..000000000 --- a/roundcube/1.6.11-apache/docker-compose.yml +++ /dev/null @@ -1,28 +0,0 @@ -services: - roundcube: - image: roundcube/roundcubemail:1.6.11-apache - container_name: ${CONTAINER_NAME} - restart: always - environment: - ROUNDCUBE_DB_TYPE: mysql - ROUNDCUBE_DB_HOST: ${PANEL_DB_HOST} - ROUNDCUBE_DB_USER: ${PANEL_DB_USER} - ROUNDCUBE_DB_PASSWORD: ${PANEL_DB_USER_PASSWORD} - ROUNDCUBE_DB_NAME: ${PANEL_DB_NAME} - ROUNDCUBEMAIL_DEFAULT_HOST: ${IMAP_SERVER} - ROUNDCUBEMAIL_DEFAULT_PORT: ${IMAP_SERVER_PORT} - ROUNDCUBEMAIL_SMTP_SERVER: ${SMTP_SERVER} - ROUNDCUBEMAIL_SMTP_PORT: ${SMTP_SERVER_PORT} - ROUNDCUBEMAIL_UPLOAD_MAX_FILESIZE: 5M - ports: - - ${PANEL_APP_PORT_HTTP}:80 - volumes: - - ./logs:/var/log/apache2 - - ./data:/var/www/html - networks: - - 1panel-network - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/roundcube/README.md b/roundcube/README.md deleted file mode 100644 index b34ee0e79..000000000 --- a/roundcube/README.md +++ /dev/null @@ -1,22 +0,0 @@ -# Roundcube - -Roundcube 是一款基于 Web 的多语言 IMAP 邮件客户端,通常通过浏览器访问。它利用 PHP 编写,并提供一整套电子邮件客户端的功能。 - -## 特点 - -- **现代用户界面**:Roundcube 提供一个清洁和现代的用户界面。 -- **完整的 MIME 和 HTML 支持**:可以接收和发送带有复杂格式和附件的邮件。 -- **IMAP 和 SMTP 支持**:使用标准的邮件协议与邮件服务器通信。 -- **富文本编辑器**:内置的 HTML 编辑器可以创建格式丰富的邮件。 -- **搜索和过滤**:强大的搜索功能和邮件过滤规则。 -- **地址簿**:带有导入导出功能的地址簿。 -- **插件和皮肤支持**:通过插件扩展功能,通过皮肤个性化界面。 -- **多用户支持**:适用于多用户环境。 -- **国际化语言**:支持多种语言,方便国际用户使用。 - -Roundcube 可以部署在个人服务器上,也被许多网站托管服务作为标准的 webmail 解决方案提供给用户,特别是在共享主机环境中。 - -## 使用场景 - -- 个人服务器:个人或企业用户可以在自己的服务器上安装和使用 Roundcube。 -- 网站托管:作为邮件服务的一部分,允许用户通过 webmail 访问他们的邮件账户。 diff --git a/roundcube/README_en.md b/roundcube/README_en.md deleted file mode 100644 index 95d858172..000000000 --- a/roundcube/README_en.md +++ /dev/null @@ -1,22 +0,0 @@ -# Roundcube - -Roundcube is a web-based, multi-language IMAP email client that provides a modern, feature-rich solution for managing email via a browser. Written in PHP, it offers all the essential functionalities of a desktop email client in a lightweight and easily deployable package. - -## Main Features - -- **Modern Interface**: Roundcube features a clean, user-friendly interface designed for efficiency and ease of use. -- **Full MIME and HTML Support**: Seamlessly send and receive emails with complex formatting and attachments. -- **IMAP and SMTP Support**: Communicates with mail servers using industry-standard protocols. -- **Rich Text Editor**: Compose emails with a built-in HTML editor for advanced formatting. -- **Search and Filters**: Robust search capabilities and customizable email filtering rules. -- **Address Book**: Includes an address book with import/export functionality. -- **Plugins and Themes**: Extend functionalities with plugins and customize the interface with themes. -- **Multi-User Support**: Perfect for shared hosting environments or organizational deployments. -- **Internationalization**: Offers multi-language support for a global user base. - -## Use Cases - -- **Personal Hosting**: Ideal for individuals or businesses hosting their own mail servers. -- **Web Hosting Services**: Widely used by hosting providers to offer webmail access as part of their service packages. - -Roundcube is a popular choice for anyone seeking a reliable, open-source webmail solution that balances simplicity with advanced features. diff --git a/roundcube/data.yml b/roundcube/data.yml deleted file mode 100644 index ec3db8fa5..000000000 --- a/roundcube/data.yml +++ /dev/null @@ -1,35 +0,0 @@ -name: Roundcube -tags: -- 邮件服务 -title: 基于 Web 的多语言 IMAP 邮件客户端 -description: 基于 Web 的多语言 IMAP 邮件客户端 -additionalProperties: - key: roundcube - name: Roundcube - tags: - - Email - shortDescZh: 基于 Web 的多语言 IMAP 邮件客户端 - shortDescEn: Web-based multilingual IMAP mail client - description: - en: Web-based multilingual IMAP mail client - ja: Webベースの多言語IMAPメールクライアント - ms: Klien e-mel IMAP berbilang bahasa berasaskan web - pt-br: Cliente de e-mail IMAP multilíngue baseado na web - ru: Многоязычный веб-клиент IMAP - ko: 웹 기반 다국어 IMAP 메일 클라이언트 - zh-hant: 基於網頁的多語言 IMAP 郵件客戶端 - zh: 基于 Web 的多语言 IMAP 邮件客户端 - type: website - crossVersionUpdate: false - limit: 0 - recommend: 0 - website: https://roundcube.net/ - github: https://github.com/roundcube/roundcubemail - document: https://github.com/roundcube/roundcubemail/wiki - architectures: - - arm64 - - arm/v6 - - arm/v7 - - s390x - - ppc64le - - amd64 diff --git a/roundcube/logo.png b/roundcube/logo.png deleted file mode 100644 index c387acf5e..000000000 Binary files a/roundcube/logo.png and /dev/null differ diff --git a/rustdesk/README.md b/rustdesk/README.md deleted file mode 100644 index 963a35ad4..000000000 --- a/rustdesk/README.md +++ /dev/null @@ -1,33 +0,0 @@ -# RustDesk - -RustDesk 是一款开源的远程支持和远程桌面工具,它旨在为用户提供便捷的远程协助和远程访问功能。 - -## 主要功能: - -### 远程桌面控制 - -RustDesk 允许用户通过互联网远程控制其他计算机,从而实现远程支持和协助。这对于解决远程用户的计算机问题或提供培训和支持非常有用。 - -### 文件传输 - -用户可以轻松地在本地计算机和远程计算机之间传输文件,无需依赖第三方工具或云存储服务。这使得共享文件和数据变得更加便捷。 - -### 多平台支持 - -RustDesk 支持多种操作系统,包括 Windows、Linux 和 macOS。这意味着您可以在不同类型的计算机上安装和使用 RustDesk,以满足各种需求。 - -### 安全性 - -RustDesk 通过加密连接来确保远程访问的安全性,保护用户的数据和隐私。它使用安全协议来防止未经授权的访问。 - -### 简单易用 - -RustDesk 被设计成用户友好的工具,提供直观的界面和简单的设置,以确保用户能够快速上手并开始远程支持或访问。 - -### 开源 - -作为开源项目,RustDesk 提供了可自定义和可扩展的选项,用户可以根据自己的需求进行定制和改进。 - -### 屏幕共享 - -RustDesk 允许用户共享其屏幕以进行演示、培训或协作。这在远程工作和支持方面非常有用。 \ No newline at end of file diff --git a/rustdesk/README_en.md b/rustdesk/README_en.md deleted file mode 100644 index 707f9f5b0..000000000 --- a/rustdesk/README_en.md +++ /dev/null @@ -1,33 +0,0 @@ -# RustDesk - -**RustDesk** is an open-source remote support and desktop tool designed to provide users with convenient remote assistance and access capabilities. - -## Main Features - -### Remote Desktop Control - -RustDesk enables users to remotely control other computers over the internet, making it ideal for troubleshooting remote issues or providing training and support. - -### File Transfer - -Easily transfer files between local and remote computers without relying on third-party tools or cloud storage services, simplifying data sharing. - -### Cross-Platform Support - -RustDesk supports multiple operating systems, including Windows, Linux, and macOS, allowing seamless installation and use across various devices. - -### Security - -RustDesk ensures secure remote access through encrypted connections, safeguarding user data and privacy. It employs secure protocols to prevent unauthorized access. - -### User-Friendly - -Designed with a focus on ease of use, RustDesk offers an intuitive interface and simple setup, enabling users to quickly start remote support or access sessions. - -### Open Source - -As an open-source project, RustDesk offers customizable and extensible options, allowing users to tailor the tool to their specific needs and contribute improvements. - -### Screen Sharing - -RustDesk supports screen sharing for presentations, training, or collaboration, making it a valuable tool for remote work and support scenarios. \ No newline at end of file diff --git a/rustdesk/data.yml b/rustdesk/data.yml deleted file mode 100644 index 8478a9883..000000000 --- a/rustdesk/data.yml +++ /dev/null @@ -1,32 +0,0 @@ -name: RustDesk -tags: - - 实用工具 -title: 开源的远程桌面软件 -description: 开源的远程桌面软件 -additionalProperties: - key: rustdesk - name: RustDesk - tags: - - Tool - shortDescZh: 开源的远程桌面软件 - shortDescEn: Open source remote desktop software - description: - en: Open source remote desktop software - ja: オープンソースのリモートデスクトップソフトウェア - ms: Perisian desktop jauh sumber terbuka - pt-br: Software de área de trabalho remoto de código aberto - ru: Открытое программное обеспечение для удаленного рабочего стола - ko: 오픈 소스 원격 데스크톱 소프트웨어 - zh-hant: 開源遠程桌面軟體 - zh: 开源的远程桌面软件 - type: tool - crossVersionUpdate: false - limit: 0 - recommend: 0 - website: https://rustdesk.com/zh/ - github: https://github.com/rustdesk/rustdesk - document: https://rustdesk.com/docs/zh-cn/ - architectures: - - amd64 - - arm64 - - arm/v7 diff --git a/rustdesk/logo.png b/rustdesk/logo.png deleted file mode 100644 index a2210b49d..000000000 Binary files a/rustdesk/logo.png and /dev/null differ diff --git a/rustdesk/s6-latest/data.yml b/rustdesk/s6-latest/data.yml deleted file mode 100644 index 3b74bfed0..000000000 --- a/rustdesk/s6-latest/data.yml +++ /dev/null @@ -1,104 +0,0 @@ -additionalProperties: - formFields: - - default: 21115 - edit: true - envKey: PANEL_APP_PORT_NAT - labelEn: NAT type test port - labelZh: NAT 类型测试端口 - label: - en: NAT type test port - ja: NATタイプテストポート - ms: Port ujian jenis NAT - t-br: Porta de teste de tipo NAT - ru: Порт теста типа NAT - ko: NAT 유형 테스트 포트 - zh-hant: NAT 類型測試埠 - zh: NAT 类型测试端口 - required: true - rule: paramPort - type: number - - default: 21116 - edit: true - envKey: PANEL_APP_PORT_HBBS - labelEn: hbbs port (used with IP/domain) - labelZh: hbbs 端口(配合IP/域名使用) - label: - en: hbbs port (used with IP/domain) - ja: hbbs ポート(IP/ドメインと一緒に使用) - ms: Port hbbs (digunakan dengan IP/domain) - pt-br: Porta hbbs (usado com IP/domínio) - ru: Порт hbbs (используется с IP/доменом) - ko: hbbs 포트 (IP/도메인과 함께 사용) - zh-hant: hbbs 埠(與 IP/域名一起使用) - zh: hbbs 端口(配合IP/域名使用) - required: true - rule: paramPort - type: number - - default: 21117 - edit: true - envKey: PANEL_APP_PORT_HBBR - labelEn: hbbr port (client relay server port) - labelZh: hbbr 端口(客户端中继服务器端口) - label: - en: hbbr port (client relay server port) - ja: hbbr ポート(クライアントリレイサーバーポート) - ms: Port hbbr (port relai pelayan klien) - pt-br: Porta hbbr (porta do servidor de retransmissão do cliente) - ru: Порт hbbr (порт релейного сервера клиента) - ko: hbbr 포트 (클라이언트 릴레이 서버 포트) - zh-hant: hbbr 埠(客戶端中繼服務器埠) - zh: hbbr 端口(客户端中继服务器端口) - required: true - rule: paramPort - type: number - - default: 21118 - edit: true - envKey: PANEL_APP_PORT_WEB_CLIENT_1 - labelEn: Web Client Support Port 1 - labelZh: 网页客户端支持端口 1 - label: - en: Web Client Support Port 1 - ja: Webクライアントサポートポート1 - ms: Port Sokongan Pelanggan Web 1 - pt-br: Porta de Suporte ao Cliente Web 1 - ru: Порт поддержки веб-клиента 1 - ko: 웹 클라이언트 지원 포트 1 - zh-hant: Web 客戶端支持埠 1 - zh: 网页客户端支持端口 1 - required: true - rule: paramPort - type: number - - default: 21119 - edit: true - envKey: PANEL_APP_PORT_WEB_CLIENT_2 - labelEn: Web Client Support Port 2 - labelZh: 网页客户端支持端口 2 - label: - en: Web Client Support Port 2 - ja: Webクライアントサポートポート2 - ms: Port Sokongan Pelanggan Web 2 - pt-br: Porta de Suporte ao Cliente Web 2 - ru: Порт поддержки веб-клиента 2 - ko: 웹 클라이언트 지원 포트 2 - zh-hant: Web 客戶端支持埠 2 - zh: 网页客户端支持端口 2 - required: true - rule: paramPort - type: number - - default: 172.17.0.1 - edit: true - envKey: HOST_ADDRESS - labelEn: IP address or domain name (must change item) - labelZh: IP 地址或域名(必改项) - label: - en: IP address or domain name (must change item) - ja: IPアドレスまたはドメイン名(変更必須項目) - ms: Alamat IP atau nama domain (item wajib diubah) - pt-br: Endereço IP ou nome de domínio (item obrigatório a ser alterado) - ru: IP-адрес или доменное имя (обязательный элемент для изменения) - ko: IP 주소 또는 도메인 이름(항목 변경 필요) - zh-hant: IP 地址或域名(必須更改項目) - zh: IP 地址或域名(必改项) - required: true - rule: paramCommon - type: text diff --git a/rustdesk/s6-latest/docker-compose.yml b/rustdesk/s6-latest/docker-compose.yml deleted file mode 100644 index c0e4f8bb4..000000000 --- a/rustdesk/s6-latest/docker-compose.yml +++ /dev/null @@ -1,24 +0,0 @@ -services: - rustdesk-server: - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_NAT}:21115" - - "${PANEL_APP_PORT_HBBS}:21116" - - "${PANEL_APP_PORT_HBBS}:21116/udp" - - "${PANEL_APP_PORT_HBBR}:21117" - - "${PANEL_APP_PORT_WEB_CLIENT_1}:21118" - - "${PANEL_APP_PORT_WEB_CLIENT_2}:21119" - volumes: - - "./data/hbbs:/data" - environment: - - "RELAY=${HOST_ADDRESS}:${PANEL_APP_PORT_HBBR}" - - "ENCRYPTED_ONLY=1" - image: rustdesk/rustdesk-server-s6:latest - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/screego/1.12.0/data.yml b/screego/1.12.0/data.yml deleted file mode 100644 index 52e680a62..000000000 --- a/screego/1.12.0/data.yml +++ /dev/null @@ -1,70 +0,0 @@ -additionalProperties: - formFields: - - default: 5050 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: External access port - labelZh: 外部访问端口 - label: - en: External access port - ja: 外部アクセスポート - ms: Port Akses Luar - pt-br: Porta de Acesso Externo - ru: Порт внешнего доступа - ko: 외부 액세스 포트 - zh: 外部访问端口 - zh-Hant: 外部訪問埠 - required: true - rule: paramPort - type: number - - default: 3478 - edit: true - envKey: PANEL_APP_PORT_TURN - labelEn: TURN Port - labelZh: TURN 端口 - label: - en: TURN Port - ja: TURN ポート - ms: Port TURN - pt-br: Porta TURN - ru: Порт TURN - ko: TURN 포트 - zh: TURN 端口 - zh-Hant: TURN 埠 - required: true - rule: paramPort - type: number - - default: 127.0.0.1 - edit: true - envKey: SCREEGO_EXTERNAL_IP - labelEn: EXTERNAL IP - labelZh: 外部 IP - label: - en: EXTERNAL IP - ja: 外部 IP - ms: IP Luaran - pt-br: IP Externo - ru: Внешний IP - ko: 외부 IP - zh: 外部 IP - zh-Hant: 外部 IP - required: true - rule: paramCommon - type: text - - default: 50000-50200 - edit: true - envKey: SCREEGO_TURN_PORT_RANGE - labelEn: Turn Port Range - labelZh: TURN 端口范围 - label: - en: Turn Port Range - ja: TURN ポート範囲 - ms: Julat Port TURN - pt-br: Intervalo de Portas TURN - ru: Диапазон портов TURN - ko: TURN 포트 범위 - zh: TURN 端口范围 - zh-Hant: TURN 埠範圍 - required: true - rule: paramCommon - type: text diff --git a/screego/1.12.0/docker-compose.yml b/screego/1.12.0/docker-compose.yml deleted file mode 100644 index eae50eb52..000000000 --- a/screego/1.12.0/docker-compose.yml +++ /dev/null @@ -1,19 +0,0 @@ -services: - screego: - image: ghcr.io/screego/server:1.12.0 - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_HTTP}:5050 - - ${PANEL_APP_PORT_TURN}:3478 - - ${SCREEGO_TURN_PORT_RANGE}:50000-50200/udp - environment: - SCREEGO_EXTERNAL_IP: ${SCREEGO_EXTERNAL_IP} - SCREEGO_TURN_PORT_RANGE: "50000:50200" - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/screego/README.md b/screego/README.md deleted file mode 100644 index eb3664f07..000000000 --- a/screego/README.md +++ /dev/null @@ -1,13 +0,0 @@ -# Screego - -**Screego** 是一款开源的屏幕共享与协作工具,旨在促进无缝的远程沟通和团队协作。 - -## 主要功能: - -- **屏幕共享**:Screego 允许用户实时分享屏幕,非常适合进行演示、远程培训或团队协作。 -- **远程协助**:用户可以通过互联网查看和控制其他计算机的桌面,提供远程支持和协助。 -- **文件传输**:无需依赖第三方工具或云存储服务,轻松在本地计算机和远程计算机之间传输文件,确保高效的文档和数据共享。 -- **多平台支持**:Screego 支持包括 Windows、Linux 和 macOS 在内的多种操作系统,提供不同平台用户的灵活选择。 -- **安全性**:通过加密连接确保远程访问的安全性,保护用户的数据和隐私,使用安全协议防止未经授权的访问。 -- **简单易用的界面**:Screego 旨在提供直观的界面和简单的设置,使用户能够快速上手,轻松启动屏幕共享或远程会话。 -- **可定制和开源**:作为开源项目,Screego 提供了定制和扩展的选项,用户可以根据自己的需求进行定制,并参与到项目的持续开发中。 \ No newline at end of file diff --git a/screego/README_en.md b/screego/README_en.md deleted file mode 100644 index 7f057c5cc..000000000 --- a/screego/README_en.md +++ /dev/null @@ -1,14 +0,0 @@ -# Screego - -**Screego** is an open-source screen sharing and collaboration tool designed to facilitate seamless remote communication and team collaboration. - -## Main Features: - -- **Screen Sharing**: Screego allows users to share their screens in real-time, making it ideal for presentations, remote training, or team collaboration. -- **Remote Assistance**: Users can view and control other computers' desktops over the internet, providing remote support and assistance. -- **File Transfer**: Easily transfer files between local and remote computers without relying on third-party tools or cloud storage services, ensuring efficient document and data sharing. -- **Multi-platform Support**: Screego supports multiple operating systems, including Windows, Linux, and macOS, offering flexibility for users across different platforms. -- **Security**: Secure remote access is ensured through encrypted connections, protecting user data and privacy, using secure protocols to prevent unauthorized access. -- **Simple and User-friendly Interface**: Screego aims to provide an intuitive interface and simple setup, allowing users to get started quickly and easily launch screen sharing or remote sessions. -- **Customizable and Open Source**: As an open-source project, Screego offers customization and extension options, allowing users to tailor it to their needs and participate in the project’s ongoing development. - diff --git a/screego/data.yml b/screego/data.yml deleted file mode 100644 index a0c14078b..000000000 --- a/screego/data.yml +++ /dev/null @@ -1,34 +0,0 @@ -name: screego -tags: - - 实用工具 -title: 开源屏幕共享工具 -description: 开源屏幕共享工具 -additionalProperties: - key: screego - name: screego - tags: - - Tool - shortDescZh: 开源屏幕共享工具 - shortDescEn: Open source screen sharing tools - type: website - crossVersionUpdate: false - limit: 0 - recommend: 0 - website: https://screego.net/ - github: https://github.com/screego/server - document: https://screego.net/ - description: - en: Open source screen sharing tools - zh: 开源屏幕共享工具 - zh-Hant: 開源屏幕共享工具 - ja: オープンソースの画面共有ツール - ms: Alat perkongsian skrin sumber terbuka - pt-br: Ferramentas de compartilhamento de tela de código aberto - ru: Инструменты для совместного использования экрана с открытым исходным кодом - ko: 오픈 소스 화면 공유 도구 - architectures: - - amd64 - - arm64 - - arm/v6 - - arm/v7 - - ppc64le diff --git a/screego/logo.png b/screego/logo.png deleted file mode 100644 index 15793e7b1..000000000 Binary files a/screego/logo.png and /dev/null differ diff --git a/sentinel-dashboard/1.8.8/data.yml b/sentinel-dashboard/1.8.8/data.yml deleted file mode 100644 index 23c38f6a2..000000000 --- a/sentinel-dashboard/1.8.8/data.yml +++ /dev/null @@ -1,18 +0,0 @@ -additionalProperties: - formFields: - - default: 8858 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Web port - labelZh: Web 端口 - required: true - rule: paramPort - type: number - - default: 8719 - edit: true - envKey: PANEL_APP_PORT_COMMUNICATION - labelEn: Communication port - labelZh: 通讯端口 - required: true - rule: paramPort - type: number diff --git a/sentinel-dashboard/1.8.8/docker-compose.yml b/sentinel-dashboard/1.8.8/docker-compose.yml deleted file mode 100644 index cea3dd315..000000000 --- a/sentinel-dashboard/1.8.8/docker-compose.yml +++ /dev/null @@ -1,15 +0,0 @@ -services: - sentinel-dashboard: - image: bladex/sentinel-dashboard:1.8.8 - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_HTTP}:8858 - - ${PANEL_APP_PORT_COMMUNICATION}:8719 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/sentinel-dashboard/README.md b/sentinel-dashboard/README.md deleted file mode 100644 index a1b8e56b7..000000000 --- a/sentinel-dashboard/README.md +++ /dev/null @@ -1,16 +0,0 @@ -## 快速启动 - -- 用户名:sentinel -- 密码:sentinel - -# Sentinel Dashboard - -Sentinel 控制台是流量控制、熔断降级规则统一配置和管理的入口,它为用户提供了机器自发现、簇点链路自发现、监控、规则配置等功能。在 Sentinel 控制台上,我们可以配置规则并实时查看流量控制效果。 - -## 特点: - -- **适用场景丰富**:Sentinel 在阿里巴巴得到了广泛应用,几乎覆盖了过去10年双11(11.11)购物节的所有核心场景,比如“秒杀”需要限制突发流量满足系统容量、消息削峰填谷、下游不可靠服务熔断、集群流控等。 -- **实时监控**:Sentinel还提供实时监控能力。您可以实时查看单机的运行时信息,以及小于500个节点的集群的聚合运行时信息。 -- **广泛的开源生态系统**:Sentinel 提供与 Spring Cloud、gRPC、Apache Dubbo 和 Quarkus 等常用框架和库的开箱即用集成。您只需将适配器依赖项添加到您的服务中即可轻松使用 Sentinel。 -- **多语言支持**:Sentinel 提供了对 Java、Go、C++和Rust的本机支持。 -- **丰富的SPI扩展**:Sentinel提供了简单易用的SPI扩展接口,可以让您快速自定义逻辑,例如自定义规则管理、适配数据源等。 diff --git a/sentinel-dashboard/data.yml b/sentinel-dashboard/data.yml deleted file mode 100644 index 3a62db4ae..000000000 --- a/sentinel-dashboard/data.yml +++ /dev/null @@ -1,22 +0,0 @@ -name: Sentinel Dashboard -tags: -- 中间件 -title: 流量控制、熔断降级规则统一配置和管理的入口 -description: 流量控制、熔断降级规则统一配置和管理的入口 -additionalProperties: - key: sentinel-dashboard - name: Sentinel Dashboard - tags: - - Middleware - shortDescZh: 流量控制、熔断降级规则统一配置和管理的入口 - shortDescEn: Unified configuration and management of flow control and circuit breaker degradation rules - type: website - crossVersionUpdate: false - limit: 0 - recommend: 0 - website: https://sentinelguard.io/ - github: https://github.com/alibaba/Sentinel - document: https://sentinelguard.io/zh-cn/docs/dashboard.html - architectures: - - arm64 - - amd64 diff --git a/sentinel-dashboard/logo.png b/sentinel-dashboard/logo.png deleted file mode 100644 index 3f493afc7..000000000 Binary files a/sentinel-dashboard/logo.png and /dev/null differ diff --git a/sftpgo/2.6.6-alpine/data.yml b/sftpgo/2.6.6-alpine/data.yml deleted file mode 100755 index be0e7a885..000000000 --- a/sftpgo/2.6.6-alpine/data.yml +++ /dev/null @@ -1,121 +0,0 @@ -additionalProperties: - formFields: - - default: 8080 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Web Port - labelZh: Web 端口 - label: - en: Web Port - ja: ウェブポート - ms: Port Web - pt-br: Porta da Web - ru: Веб-порт - ko: 웹 포트 - zh-hant: 網頁埠 - zh: Web 端口 - required: true - rule: paramPort - type: number - - default: 2022 - edit: true - envKey: PANEL_APP_PORT_SFTP - labelEn: SFTP Port - labelZh: SFTP 端口 - label: - en: SFTP Port - ja: SFTP ポート - ms: Port SFTP - pt-br: Porta SFTP - ru: Порт SFTP - ko: SFTP 포트 - zh-hant: SFTP 埠 - zh: SFTP 端口 - required: true - rule: paramPort - type: number - - default: 2121 - edit: true - envKey: PANEL_APP_PORT_FTP - labelEn: FTP Port - labelZh: FTP 端口 - label: - en: FTP Port - ja: FTP ポート - ms: Port FTP - pt-br: Porta FTP - ru: Порт FTP - ko: FTP 포트 - zh-hant: FTP 埠 - zh: FTP 端口 - required: true - rule: paramPort - type: number - - default: 50000 - edit: true - envKey: PASSIVE_PORT_RANGE_START - labelEn: FTP Passive Mod Start Port - labelZh: FTP 被动模式起始端口 - label: - en: FTP Passive Mod Start Port - ja: FTPパッシブモード開始ポート - ms: Port Mula Mod Pasif FTP - pt-br: Porta de Início do Modo Passivo FTP - ru: Порт начала пассивного режима FTP - ko: FTP 패시브 모드 시작 포트 - zh-hant: FTP 被動模式啟動埠 - zh: FTP 被动模式起始端口 - required: true - rule: paramCommon - type: text - - default: 50100 - edit: true - envKey: PASSIVE_PORT_RANGE_END - labelEn: FTP Passive Mod End Port (Greater than the starting port) - labelZh: FTP 被动模式结束端口 (大于起始端口) - label: - en: FTP Passive Mod End Port (Greater than the starting port) - ja: FTPパッシブモード終了ポート(開始ポートより大きい) - ms: Port Tamat Mod Pasif FTP (Lebih besar daripada port permulaan) - pt-br: Porta Final do Modo Passivo FTP (Maior que a porta inicial) - ru: Конечный порт пассивного режима FTP (Больше начального порта) - ko: FTP 패시브 모드 종료 포트 (시작 포트보다 큼) - zh-hant: FTP 被動模式結束埠(大於起始埠) - zh: FTP 被动模式结束端口 (大于起始端口) - required: true - rule: paramCommon - type: text - - default: - edit: true - envKey: FTP_EXTERNAL_IP - labelEn: FTP External Ip (must change item) - labelZh: FTP 外部地址 (必改项) - label: - en: FTP External Ip (must change item) - ja: FTP 外部 IP(変更必須項目) - ms: FTP IP Luaran (item mesti diubah) - pt-br: IP Externo do FTP (item obrigatório a ser alterado) - ru: Внешний IP FTP (необходимо изменить элемент) - ko: FTP 외부 IP(항목 변경 필요) - zh-hant: FTP 外部 IP(必須更改項目) - zh: FTP 外部地址 (必改项) - required: true - rule: paramCommon - type: text - - default: 10080 - edit: true - envKey: PANEL_APP_PORT_WEBDAV - labelEn: WebDAV Port - labelZh: WebDAV 端口 - label: - en: WebDAV Port - ja: WebDAV ポート - ms: Port WebDAV - pt-br: Porta WebDAV - ru: Порт WebDAV - ko: WebDAV 포트 - zh-hant: WebDAV 埠 - zh: WebDAV 端口 - required: true - rule: paramPort - type: number diff --git a/sftpgo/2.6.6-alpine/data/config/.gitkeep b/sftpgo/2.6.6-alpine/data/config/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/sftpgo/2.6.6-alpine/data/data/.gitkeep b/sftpgo/2.6.6-alpine/data/data/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/sftpgo/2.6.6-alpine/docker-compose.yml b/sftpgo/2.6.6-alpine/docker-compose.yml deleted file mode 100644 index e9d932d83..000000000 --- a/sftpgo/2.6.6-alpine/docker-compose.yml +++ /dev/null @@ -1,27 +0,0 @@ -services: - sftpgo: - image: drakkan/sftpgo:v2.6.6-alpine - container_name: ${CONTAINER_NAME} - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_HTTP}:8080 - - ${PANEL_APP_PORT_SFTP}:${PANEL_APP_PORT_SFTP} - - ${PANEL_APP_PORT_FTP}:${PANEL_APP_PORT_FTP} - - ${PASSIVE_PORT_RANGE_START}-${PASSIVE_PORT_RANGE_END}:${PASSIVE_PORT_RANGE_START}-${PASSIVE_PORT_RANGE_END} - - ${PANEL_APP_PORT_WEBDAV}:${PANEL_APP_PORT_WEBDAV} - environment: - SFTPGO_FTPD__BINDINGS__0__PORT: ${PANEL_APP_PORT_FTP} - SFTPGO_WEBDAVD__BINDINGS__0__PORT: ${PANEL_APP_PORT_WEBDAV} - SFTPGO_SFTPD__BINDINGS__0__PORT: ${PANEL_APP_PORT_SFTP} - SFTPGO_FTPD__BINDINGS__0__FORCE_PASSIVE_IP: ${FTP_EXTERNAL_IP} - SFTPGO_FTPD__PASSIVE_PORT_RANGE__START: ${PASSIVE_PORT_RANGE_START} - SFTPGO_FTPD__PASSIVE_PORT_RANGE__END: ${PASSIVE_PORT_RANGE_END} - volumes: - - ./data/data:/srv/sftpgo - - ./data/config:/var/lib/sftpgo - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/sftpgo/2.6.6-alpine/scripts/init.sh b/sftpgo/2.6.6-alpine/scripts/init.sh deleted file mode 100644 index 4e811c86a..000000000 --- a/sftpgo/2.6.6-alpine/scripts/init.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -chown -R 1000:1000 data \ No newline at end of file diff --git a/sftpgo/README.md b/sftpgo/README.md deleted file mode 100644 index 26762afbd..000000000 --- a/sftpgo/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# SFTPGo - -**SFTPGo** 是一款功能齐全、高度可配置化、支持自定义 HTTP/S,FTP/S 和 WebDAV 的 SFTP 服务。 - -> 支持的后端存储:本地文件系统、加密本地文件系统、S3(兼容)对象存储,Google Cloud 存储,Azure Blob 存储,SFTP。 - -## 主要功能: - -- **多用户支持**:SFTPGo 允许您创建和管理多个用户帐户,每个用户都可以有自己的独立访问权限和目录。 -- **高度可配置**:您可以根据自己的需求进行广泛的配置,包括用户访问控制、文件上传和下载限制、身份验证方法等。 -- **安全性**:SFTPGo 支持多种身份验证方法,包括SSH密钥、用户名/密码和多因素身份验证。它还支持IP白名单和黑名单,以增强安全性。 -- **文件传输管理**:用户可以使用 SFTP 和 SCP 协议安全地上传和下载文件。SFTPGo 提供了传输速率限制、文件夹配额和文件类型过滤等功能。 -- **高性能**:SFTPGo 高度优化,能够处理大量的并发连接和高吞吐量的文件传输。 -- **监控和日志**:SFTPGo 提供了详细的日志记录和监控功能,以便管理员跟踪用户活动和服务器性能。 -- **自动化**:通过 REST API 和 Webhook 支持,SFTPGo 可以集成到您的自动化工作流程中,从而实现更高效的文件传输管理。 -- **可扩展性**:您可以通过插件和扩展来增加 SFTPGo 的功能,以满足特定需求。 \ No newline at end of file diff --git a/sftpgo/README_en.md b/sftpgo/README_en.md deleted file mode 100644 index 6bf243efa..000000000 --- a/sftpgo/README_en.md +++ /dev/null @@ -1,16 +0,0 @@ -# SFTPGo - -**SFTPGo** is a fully-featured and highly configurable SFTP server that also supports custom HTTP/S, FTP/S, and WebDAV services. - -> Supported backend storage: Local filesystem, encrypted local filesystem, S3-compatible object storage, Google Cloud Storage, Azure Blob Storage, and SFTP. - -## Main Features: - -- **Multi-User Support**: Create and manage multiple user accounts, each with independent access permissions and directories. -- **Highly Configurable**: Customize extensively to meet your needs, including user access control, upload/download limits, and authentication methods. -- **Security**: Supports multiple authentication methods like SSH keys, username/password, and multifactorial authentication. IP whitelisting and blacklisting enhance security further. -- **File Transfer Management**: Securely upload and download files using SFTP and SCP protocols. Features include transfer rate limits, folder quotas, and file type filtering. -- **High Performance**: Optimized for handling high concurrency and throughput in file transfers. -- **Monitoring and Logging**: Offers detailed logging and monitoring capabilities for administrators to track user activity and server performance. -- **Automation**: Integrates into workflows via REST API and Webhook support for streamlined file transfer management. -- **Extensibility**: You can increase the functionality of SFTPGo through plugins and extensions to meet specific requirements. \ No newline at end of file diff --git a/sftpgo/data.yml b/sftpgo/data.yml deleted file mode 100755 index b1011b24b..000000000 --- a/sftpgo/data.yml +++ /dev/null @@ -1,33 +0,0 @@ -name: SFTPGo -tags: - - 实用工具 -title: 功能齐全且高度可配置的 SFTP 服务器 -description: 功能齐全且高度可配置的 SFTP 服务器 -additionalProperties: - key: sftpgo - name: SFTPGo - tags: - - Tool - shortDescZh: 功能齐全且高度可配置的 SFTP 服务器 - shortDescEn: Fully featured and highly configurable SFTP server - description: - en: Fully featured and highly configurable SFTP server - ja: 完全機能を備え、高度に構成可能なSFTPサーバー - ms: Pelayan SFTP yang lengkap dan sangat boleh dikonfigurasikan - pt-br: Servidor SFTP totalmente funcional e altamente configurável - ru: Полнофункциональный и высоко настраиваемый сервер SFTP - ko: 완전히 기능이 갖추어지고 매우 구성 가능한 SFTP 서버 - zh-hant: 功能齊全且高度可配置的 SFTP 伺服器 - zh: 功能齐全且高度可配置的 SFTP 服务器 - type: website - crossVersionUpdate: false - limit: 1 - recommend: 80 - website: https://sftpgo.com/ - github: https://github.com/drakkan/sftpgo/ - document: https://sftpgo.github.io/latest/ - architectures: - - amd64 - - arm64 - - ppc64le - - arm/v7 diff --git a/sftpgo/logo.png b/sftpgo/logo.png deleted file mode 100644 index 0a3ac9d25..000000000 Binary files a/sftpgo/logo.png and /dev/null differ diff --git a/showdoc/3.4.1/data.yml b/showdoc/3.4.1/data.yml deleted file mode 100755 index 1e1ccc915..000000000 --- a/showdoc/3.4.1/data.yml +++ /dev/null @@ -1,9 +0,0 @@ -additionalProperties: - formFields: - - default: 4999 - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number diff --git a/showdoc/3.4.1/docker-compose.yml b/showdoc/3.4.1/docker-compose.yml deleted file mode 100644 index d6f6d11fe..000000000 --- a/showdoc/3.4.1/docker-compose.yml +++ /dev/null @@ -1,18 +0,0 @@ -services: - showdoc: - image: star7th/showdoc:v3.4.1 - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_HTTP}:80 - tty: true - volumes: - - /showdoc_data:/showdoc_data_old - - ./showdocdata/html:/var/www/html - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/showdoc/README.md b/showdoc/README.md deleted file mode 100644 index 34d7f435d..000000000 --- a/showdoc/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# ShowDoc - -**ShowDoc** 是一个非常适合IT团队的在线API文档、技术文档工具。通过showdoc,你可以方便地使用markdown语法来书写出美观的API文档、数据字典文档、技术文档、在线excel文档等等。如果不想编辑markdown文档,你还可以利用showdoc的自动化能力,从程序注释中自动生成API文档,或者从搭配的RunApi客户端(类似postman的api调试工具)中一边调试接口、一边自动生成文档。通过分配项目成员和团队成员,你可以很方便地进行项目文档的权限管理和团队协作,也可以分享文档出去给朋友查看。ShowDoc还支持多平台客户端,有win客户端、mac客户端、ios、android等,更方便跨平台使用。 - -## 主要功能: - -- **API文档**:随着移动互联网的发展,BaaS(后端即服务)越来越流行。服务端提供API,APP端或者网页前端便可方便调用数据。用ShowDoc可以非常方便快速地编写出美观的API文档。 -- **数据字典**:一份好的数据字典可以很方便地向别人说明你的数据库结构,如各个字段的释义等。 -- **说明文档**:你完全可以使用showdoc来编写一些工具的说明书,也可以编写一些技术规范说明文档以供团队查阅。 \ No newline at end of file diff --git a/showdoc/arm-latest/data.yml b/showdoc/arm-latest/data.yml deleted file mode 100755 index 1e1ccc915..000000000 --- a/showdoc/arm-latest/data.yml +++ /dev/null @@ -1,9 +0,0 @@ -additionalProperties: - formFields: - - default: 4999 - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number diff --git a/showdoc/arm-latest/docker-compose.yml b/showdoc/arm-latest/docker-compose.yml deleted file mode 100644 index 17f9451e3..000000000 --- a/showdoc/arm-latest/docker-compose.yml +++ /dev/null @@ -1,18 +0,0 @@ -services: - showdoc: - image: star7th/showdoc:arm-latest - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_HTTP}:80 - tty: true - volumes: - - /showdoc_data:/showdoc_data_old - - ./showdocdata/html:/var/www/html - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/showdoc/data.yml b/showdoc/data.yml deleted file mode 100755 index d3292da4c..000000000 --- a/showdoc/data.yml +++ /dev/null @@ -1,21 +0,0 @@ -name: ShowDoc -tags: - - DevOps -title: 一个非常适合 IT 团队的在线 API 文档、技术文档工具 -description: 一个非常适合 IT 团队的在线 API 文档、技术文档工具 -additionalProperties: - key: showdoc - name: ShowDoc - tags: - - DevOps - shortDescZh: 一个非常适合 IT 团队的在线 API 文档、技术文档工具 - shortDescEn: ShowDoc is a tool greatly applicable for an IT team to share documents online - type: website - crossVersionUpdate: false - limit: 0 - recommend: 0 - website: https://www.showdoc.com.cn/ - github: https://github.com/star7th/showdoc - document: https://www.showdoc.com.cn/help - architectures: - - amd64 diff --git a/showdoc/logo.png b/showdoc/logo.png deleted file mode 100644 index 31024f07d..000000000 Binary files a/showdoc/logo.png and /dev/null differ diff --git a/siyuan/3.1.32/data.yml b/siyuan/3.1.32/data.yml deleted file mode 100644 index 462028d60..000000000 --- a/siyuan/3.1.32/data.yml +++ /dev/null @@ -1,25 +0,0 @@ -additionalProperties: - formFields: - - default: 6806 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number - - default: "" - envKey: ACCESS_AUTH_CODE - labelEn: Access Authorization Code - labelZh: 访问授权码 - required: true - edit: true - rule: paramComplexity - type: password - - default: Asia/Shanghai - edit: true - envKey: TIME_ZONE - labelEn: Time zone - labelZh: 时区 - required: true - type: text diff --git a/siyuan/3.1.32/data/.gitkeep b/siyuan/3.1.32/data/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/siyuan/3.1.32/docker-compose.yml b/siyuan/3.1.32/docker-compose.yml deleted file mode 100644 index 53df4b9d4..000000000 --- a/siyuan/3.1.32/docker-compose.yml +++ /dev/null @@ -1,21 +0,0 @@ -services: - siyuan: - image: b3log/siyuan:v3.1.32 - container_name: ${CONTAINER_NAME} - restart: unless-stopped - ports: - - ${PANEL_APP_PORT_HTTP}:6806 - networks: - - 1panel-network - command: ['--workspace=/siyuan/workspace/', '--accessAuthCode=${ACCESS_AUTH_CODE}'] - volumes: - - ./data:/siyuan/workspace - environment: - - TZ=${TIME_ZONE} - - PUID=1000 - - PGID=1000 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/siyuan/3.1.32/scripts/init.sh b/siyuan/3.1.32/scripts/init.sh deleted file mode 100644 index 4e811c86a..000000000 --- a/siyuan/3.1.32/scripts/init.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -chown -R 1000:1000 data \ No newline at end of file diff --git a/siyuan/README.md b/siyuan/README.md deleted file mode 100644 index 8ee5f7454..000000000 --- a/siyuan/README.md +++ /dev/null @@ -1,37 +0,0 @@ -# 使用说明 - -## 安装好后,我的笔记数据在哪? - -为了防止您更新/删除思源笔记导致的数据丢失问题,默认笔记数据将放置在应用安装目录的 ./data/ 的文件夹下。 - -## 我该如何修改访问授权码? - -请您在【应用商店】内【已安装】选项卡中找到思源笔记,然后点击参数,选择编辑且修改访问授权码,保存即可。 - -## 网页版和客户端有什么区别? - -网页版和客户端相比,局限性在于: -1. 不支持桌面和移动应用程序连接,仅支持在浏览器上使用 -2. 不支持导出为 PDF、HTML 和 Word 格式 -3. 不支持导入 Markdown 文件 - -以上内容来自[Docker Siyuan](https://hub.docker.com/r/b3log/siyuan),如果你需要以上部分或全部内容,请使用客户端。 - -## 如何隐藏端口 - -首先先关闭思源笔记的【端口外部访问】功能,然后在左侧【网站】选项卡内找到【创建网站】,选择【反向代理】功能,最后填写上主域名和代理地址(HTTP)保存即可。 - -其中主域名是您可以正常访问的域名,如:siyuan.mydomain.com。 -代理地址中的端口是您在前面配置的思源端口号,如:127.0.0.1:6806。 - -如果您使用 NGINX 进行反向代理,您可能还需要手动配置下 WebSocket 反代 /ws 域名。你可以参考以下配置: - -```conf -location /ws { - proxy_pass http://127.0.0.1:6806; - proxy_read_timeout 60s; - proxy_http_version 1.1; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection 'Upgrade'; -} -``` \ No newline at end of file diff --git a/siyuan/data.yml b/siyuan/data.yml deleted file mode 100644 index 39b5c07d0..000000000 --- a/siyuan/data.yml +++ /dev/null @@ -1,23 +0,0 @@ -name: 思源笔记 -tags: - - 实用工具 -title: 隐私优先的个人知识管理系统 -description: 隐私优先的个人知识管理系统 -additionalProperties: - key: siyuan - name: 思源笔记 - tags: - - Tool - shortDescZh: 隐私优先的个人知识管理系统 - shortDescEn: Privacy-Prioritized Personal Knowledge Management System - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://b3log.org/siyuan/ - github: https://github.com/siyuan-note/siyuan - document: https://b3log.org/siyuan/community.html - architectures: - - amd64 - - arm64 - - arm/v7 diff --git a/siyuan/logo.png b/siyuan/logo.png deleted file mode 100644 index ccd66c0e2..000000000 Binary files a/siyuan/logo.png and /dev/null differ diff --git a/sonarqube/10.7.0-community/data.yml b/sonarqube/10.7.0-community/data.yml deleted file mode 100644 index 73807e768..000000000 --- a/sonarqube/10.7.0-community/data.yml +++ /dev/null @@ -1,92 +0,0 @@ -additionalProperties: - formFields: - - child: - default: "" - envKey: PANEL_DB_HOST - required: true - type: service - default: postgresql - envKey: PANEL_DB_TYPE - labelEn: Database Service - labelZh: 数据库服务 - label: - en: Database Service - ja: データベースサービス - ms: Perkhidmatan Pangkalan Data - pt-br: Serviço de Banco de Dados - ru: Сервис базы данных - ko: 데이터베이스 서비스 - zh: 数据库服务 - zh-Hant: 數據庫服務 - required: true - type: apps - values: - - label: PostgreSQL - value: postgresql - - default: sonarqube - envKey: PANEL_DB_NAME - labelEn: Database - labelZh: 数据库名 - label: - en: Database - ja: データベース - ms: Pangkalan Data - pt-br: Banco de Dados - ru: База данных - ko: 데이터베이스 - zh: 数据库名 - zh-Hant: 數據庫名 - random: true - required: true - rule: paramCommon - type: text - - default: sonarqube - envKey: PANEL_DB_USER - labelEn: User - labelZh: 数据库用户 - label: - en: User - ja: ユーザー - ms: Pengguna - pt-br: Usuário - ru: Пользователь - ko: 사용자 - zh: 数据库用户 - zh-Hant: 數據庫用戶 - random: true - required: true - rule: paramCommon - type: text - - default: sonarqube - envKey: PANEL_DB_USER_PASSWORD - labelEn: Password - labelZh: 数据库用户密码 - label: - en: Password - ja: パスワード - ms: Kata laluan - pt-br: Senha - ru: Пароль - ko: 비밀번호 - zh: 数据库用户密码 - zh-Hant: 數據庫用戶密碼 - random: true - required: true - type: password - - default: 9000 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh: 端口 - zh-Hant: 埠 - required: true - rule: paramPort - type: number diff --git a/sonarqube/10.7.0-community/data/data/.gitkeep b/sonarqube/10.7.0-community/data/data/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/sonarqube/10.7.0-community/data/extensions/.gitkeep b/sonarqube/10.7.0-community/data/extensions/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/sonarqube/10.7.0-community/data/logs/.gitkeep b/sonarqube/10.7.0-community/data/logs/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/sonarqube/10.7.0-community/docker-compose.yml b/sonarqube/10.7.0-community/docker-compose.yml deleted file mode 100644 index fcac5a2b7..000000000 --- a/sonarqube/10.7.0-community/docker-compose.yml +++ /dev/null @@ -1,22 +0,0 @@ -services: - sonarqube: - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - image: sonarqube:10.7.0-community - ports: - - ${PANEL_APP_PORT_HTTP}:9000 - volumes: - - ./data/data:/opt/sonarqube/data - - ./data/extensions:/opt/sonarqube/extensions - - ./data/logs:/opt/sonarqube/logs - environment: - SONAR_JDBC_URL: jdbc:${PANEL_DB_TYPE}://${PANEL_DB_HOST}:${PANEL_DB_PORT}/${PANEL_DB_NAME} - SONAR_JDBC_USERNAME: ${PANEL_DB_USER} - SONAR_JDBC_PASSWORD: ${PANEL_DB_USER_PASSWORD} - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/sonarqube/10.7.0-community/scripts/init.sh b/sonarqube/10.7.0-community/scripts/init.sh deleted file mode 100644 index 445f83b2b..000000000 --- a/sonarqube/10.7.0-community/scripts/init.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -if [ -f "/etc/sysctl.conf" ]; then - grep -qxF 'vm.max_map_count=262144' /etc/sysctl.conf || echo 'vm.max_map_count=262144' >> /etc/sysctl.conf - sysctl -p /etc/sysctl.conf >/dev/null -else - sysctl -w vm.max_map_count=262144 -fi - -chown -R 1000:1000 data \ No newline at end of file diff --git a/sonarqube/9.9.8-community/data.yml b/sonarqube/9.9.8-community/data.yml deleted file mode 100644 index 73807e768..000000000 --- a/sonarqube/9.9.8-community/data.yml +++ /dev/null @@ -1,92 +0,0 @@ -additionalProperties: - formFields: - - child: - default: "" - envKey: PANEL_DB_HOST - required: true - type: service - default: postgresql - envKey: PANEL_DB_TYPE - labelEn: Database Service - labelZh: 数据库服务 - label: - en: Database Service - ja: データベースサービス - ms: Perkhidmatan Pangkalan Data - pt-br: Serviço de Banco de Dados - ru: Сервис базы данных - ko: 데이터베이스 서비스 - zh: 数据库服务 - zh-Hant: 數據庫服務 - required: true - type: apps - values: - - label: PostgreSQL - value: postgresql - - default: sonarqube - envKey: PANEL_DB_NAME - labelEn: Database - labelZh: 数据库名 - label: - en: Database - ja: データベース - ms: Pangkalan Data - pt-br: Banco de Dados - ru: База данных - ko: 데이터베이스 - zh: 数据库名 - zh-Hant: 數據庫名 - random: true - required: true - rule: paramCommon - type: text - - default: sonarqube - envKey: PANEL_DB_USER - labelEn: User - labelZh: 数据库用户 - label: - en: User - ja: ユーザー - ms: Pengguna - pt-br: Usuário - ru: Пользователь - ko: 사용자 - zh: 数据库用户 - zh-Hant: 數據庫用戶 - random: true - required: true - rule: paramCommon - type: text - - default: sonarqube - envKey: PANEL_DB_USER_PASSWORD - labelEn: Password - labelZh: 数据库用户密码 - label: - en: Password - ja: パスワード - ms: Kata laluan - pt-br: Senha - ru: Пароль - ko: 비밀번호 - zh: 数据库用户密码 - zh-Hant: 數據庫用戶密碼 - random: true - required: true - type: password - - default: 9000 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh: 端口 - zh-Hant: 埠 - required: true - rule: paramPort - type: number diff --git a/sonarqube/9.9.8-community/data/data/.gitkeep b/sonarqube/9.9.8-community/data/data/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/sonarqube/9.9.8-community/data/extensions/.gitkeep b/sonarqube/9.9.8-community/data/extensions/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/sonarqube/9.9.8-community/data/logs/.gitkeep b/sonarqube/9.9.8-community/data/logs/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/sonarqube/9.9.8-community/docker-compose.yml b/sonarqube/9.9.8-community/docker-compose.yml deleted file mode 100644 index 8e42c4299..000000000 --- a/sonarqube/9.9.8-community/docker-compose.yml +++ /dev/null @@ -1,22 +0,0 @@ -services: - sonarqube: - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - image: sonarqube:9.9.8-community - ports: - - ${PANEL_APP_PORT_HTTP}:9000 - volumes: - - ./data/data:/opt/sonarqube/data - - ./data/extensions:/opt/sonarqube/extensions - - ./data/logs:/opt/sonarqube/logs - environment: - SONAR_JDBC_URL: jdbc:${PANEL_DB_TYPE}://${PANEL_DB_HOST}:${PANEL_DB_PORT}/${PANEL_DB_NAME} - SONAR_JDBC_USERNAME: ${PANEL_DB_USER} - SONAR_JDBC_PASSWORD: ${PANEL_DB_USER_PASSWORD} - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/sonarqube/9.9.8-community/scripts/init.sh b/sonarqube/9.9.8-community/scripts/init.sh deleted file mode 100644 index 445f83b2b..000000000 --- a/sonarqube/9.9.8-community/scripts/init.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -if [ -f "/etc/sysctl.conf" ]; then - grep -qxF 'vm.max_map_count=262144' /etc/sysctl.conf || echo 'vm.max_map_count=262144' >> /etc/sysctl.conf - sysctl -p /etc/sysctl.conf >/dev/null -else - sysctl -w vm.max_map_count=262144 -fi - -chown -R 1000:1000 data \ No newline at end of file diff --git a/sonarqube/README.md b/sonarqube/README.md deleted file mode 100644 index ece826ad5..000000000 --- a/sonarqube/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# 默认账户密码 - -``` -username:admin -password:admin -``` - -# SonarQube - -**SonarQube** 是一个开源的代码质量管理平台,用于静态代码分析、代码质量管理和持续集成的工具。它提供了一系列功能,帮助开发团队发现、跟踪和修复代码中的技术债务和缺陷,以提高代码的可维护性、可靠性和安全性。 - -## 主要功能 - -- **静态代码分析**:发现和修复代码中的质量问题。 -- **代码质量度量**:提供各种度量指标,评估代码质量水平。 -- **问题追踪和管理**:记录和管理代码中的问题和缺陷。 -- **持续集成支持**:与持续集成工具集成,实现自动化代码分析。 -- **代码仓库集成**:与版本控制系统集成,方便获取源代码。 -- **多语言支持**:适用于多种编程语言项目。 diff --git a/sonarqube/README_en.md b/sonarqube/README_en.md deleted file mode 100644 index 730c83828..000000000 --- a/sonarqube/README_en.md +++ /dev/null @@ -1,20 +0,0 @@ -# Default Username and Password - -``` -username: admin -password: admin -``` - -# SonarQube - -**SonarQube** is an open-source code quality management platform for static code analysis, code quality management, and continuous integration. It provides a range of features to help development teams discover, track, and fix technical debt and defects in their code to improve maintainability, reliability, and security. - -## Main Features - -- **Static Code Analysis**: Discover and fix code quality issues. -- **Code Quality Metrics**: Provides various metrics to assess code quality levels. -- **Issue Tracking and Management**: Record and manage issues and defects in code. -- **Continuous Integration Support**: Integrates with CI tools for automated code analysis. -- **Code Repository Integration**: Integrates with version control systems for easy source code access. -- **Multi-Language Support**: Suitable for projects in multiple programming languages. - diff --git a/sonarqube/data.yml b/sonarqube/data.yml deleted file mode 100755 index 2247fd6ae..000000000 --- a/sonarqube/data.yml +++ /dev/null @@ -1,32 +0,0 @@ -name: SonarQube -tags: - - DevOps -title: 开源的代码质量管理平台 -description: 开源的代码质量管理平台 -additionalProperties: - key: sonarqube - name: SonarQube - tags: - - DevOps - shortDescZh: 开源的代码质量管理平台 - shortDescEn: An open-source code quality management platform - type: website - crossVersionUpdate: false - limit: 0 - recommend: 0 - website: https://www.sonarsource.com - github: https://github.com/SonarSource/sonarqube - document: https://docs.sonarsource.com/sonarqube - description: - en: An open-source code quality management platform - zh: 开源的代码质量管理平台 - zh-Hant: 開源的代碼質量管理平台 - ja: オープンソースのコード品質管理プラットフォーム - ms: Platform pengurusan kualiti kod sumber terbuka - pt-br: Uma plataforma de gerenciamento de qualidade de código de código aberto - ru: Открытая платформа управления качеством кода - ko: 오픈 소스 코드 품질 관리 플랫폼 - memoryRequired: 1024 - architectures: - - amd64 - - arm64 diff --git a/sonarqube/logo.png b/sonarqube/logo.png deleted file mode 100644 index fbbe5e022..000000000 Binary files a/sonarqube/logo.png and /dev/null differ diff --git a/stalwart-mail/0.12.4-alpine/data.yml b/stalwart-mail/0.12.4-alpine/data.yml deleted file mode 100755 index 5eb170d09..000000000 --- a/stalwart-mail/0.12.4-alpine/data.yml +++ /dev/null @@ -1,152 +0,0 @@ -additionalProperties: - formFields: - - default: 443 - envKey: PANEL_APP_PORT_HTTPS - labelEn: HTTPS Port - labelZh: HTTPS 端口 - label: - en: HTTPS Port - ja: HTTPSポート - ms: Port HTTPS - pt-br: Porta HTTPS - ru: Порт HTTPS - ko: HTTPS 포트 - zh-hant: HTTPS 連接埠 - zh: HTTPS 端口 - required: true - type: number - - default: 8080 - envKey: PANEL_APP_PORT_HTTP - labelEn: HTTP Port - labelZh: HTTP 端口 - label: - en: HTTP Port - ja: HTTPポート - ms: Port HTTP - pt-br: Porta HTTP - ru: Порт HTTP - ko: HTTP 포트 - zh-hant: HTTP 連接埠 - zh: HTTP 端口 - required: true - type: number - - default: 25 - envKey: PORT_SMTP - labelEn: SMTP Port - labelZh: SMTP 端口 - label: - en: SMTP Port - ja: SMTPポート - ms: Port SMTP - pt-br: Porta SMTP - ru: Порт SMTP - ko: SMTP 포트 - zh-hant: SMTP 連接埠 - zh: SMTP 端口 - required: true - type: number - - default: 587 - envKey: PORT_SMTP_SUBMISSION - labelEn: SMTP Submission Port - labelZh: SMTP 提交端口 - label: - en: SMTP Submission Port - ja: SMTP送信ポート - ms: Port Penyerahan SMTP - pt-br: Porta de Submissão SMTP - ru: Порт отправки SMTP - ko: SMTP 제출 포트 - zh-hant: SMTP 提交連接埠 - zh: SMTP 提交端口 - required: true - type: number - - default: 465 - envKey: PORT_SMTP_SSL - labelEn: SMTP SSL Port - labelZh: SMTP SSL 端口 - label: - en: SMTP SSL Port - ja: SMTP SSLポート - ms: Port SMTP SSL - pt-br: Porta SMTP SSL - ru: Порт SMTP SSL - ko: SMTP SSL 포트 - zh-hant: SMTP SSL 連接埠 - zh: SMTP SSL 端口 - required: true - type: number - - default: 143 - envKey: PORT_IMAP - labelEn: IMAP Port - labelZh: IMAP 端口 - label: - en: IMAP Port - ja: IMAPポート - ms: Port IMAP - pt-br: Porta IMAP - ru: Порт IMAP - ko: IMAP 포트 - zh-hant: IMAP 連接埠 - zh: IMAP 端口 - required: true - type: number - - default: 993 - envKey: PORT_IMAP_SSL - labelEn: IMAP SSL Port - labelZh: IMAP SSL 端口 - label: - en: IMAP SSL Port - ja: IMAP SSLポート - ms: Port IMAP SSL - pt-br: Porta IMAP SSL - ru: Порт IMAP SSL - ko: IMAP SSL 포트 - zh-hant: IMAP SSL 連接埠 - zh: IMAP SSL 端口 - required: true - type: number - - default: 110 - envKey: PORT_POP3 - labelEn: POP3 Port - labelZh: POP3 端口 - label: - en: POP3 Port - ja: POP3ポート - ms: Port POP3 - pt-br: Porta POP3 - ru: Порт POP3 - ko: POP3 포트 - zh-hant: POP3 連接埠 - zh: POP3 端口 - required: true - type: number - - default: 995 - envKey: PORT_POP3_SSL - labelEn: POP3 SSL Port - labelZh: POP3 SSL 端口 - label: - en: POP3 SSL Port - ja: POP3 SSLポート - ms: Port POP3 SSL - pt-br: Porta POP3 SSL - ru: Порт POP3 SSL - ko: POP3 SSL 포트 - zh-hant: POP3 SSL 連接埠 - zh: POP3 SSL 端口 - required: true - type: number - - default: 4190 - envKey: PORT_MANAGESIEVE - labelEn: ManageSieve Port - labelZh: ManageSieve 端口 - label: - en: ManageSieve Port - ja: ManageSieveポート - ms: Port ManageSieve - pt-br: Porta ManageSieve - ru: Порт ManageSieve - ko: ManageSieve 포트 - zh-hant: ManageSieve 連接埠 - zh: ManageSieve 端口 - required: true - type: number diff --git a/stalwart-mail/0.12.4-alpine/docker-compose.yml b/stalwart-mail/0.12.4-alpine/docker-compose.yml deleted file mode 100755 index c5d700f02..000000000 --- a/stalwart-mail/0.12.4-alpine/docker-compose.yml +++ /dev/null @@ -1,26 +0,0 @@ -services: - stalwart-mail: - image: stalwartlabs/stalwart:v0.12.4-alpine - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTPS}:443" - - "${PANEL_APP_PORT_HTTP}:8080" - - "${PORT_SMTP}:25" - - "${PORT_SMTP_SUBMISSION}:587" - - "${PORT_SMTP_SSL}:465" - - "${PORT_IMAP}:143" - - "${PORT_IMAP_SSL}:993" - - "${PORT_POP3}:110" - - "${PORT_POP3_SSL}:995" - - "${PORT_MANAGESIEVE}:4190" - volumes: - - ./data:/opt/stalwart-mail - labels: - createdBy: "Apps" - -networks: - 1panel-network: - external: true diff --git a/stalwart-mail/README.md b/stalwart-mail/README.md deleted file mode 100755 index 454005902..000000000 --- a/stalwart-mail/README.md +++ /dev/null @@ -1,57 +0,0 @@ -# Stalwart 邮件服务器 - -**Stalwart 邮件服务器** 是一个支持 JMAP、IMAP4、POP3 和 SMTP 的开源邮件服务器解决方案,拥有丰富的现代功能。它使用 Rust 编写,设计注重安全性、速度、稳定性和可扩展性。 - ---- - -## 🚀 主要功能 - -- **完整协议支持**:JMAP、IMAP4rev2、POP3、SMTP 及 ManageSieve。 -- **高级 SMTP 功能**:内置 DMARC、DKIM、SPF、ARC、TLS 报告支持,灵活的路由与过滤。 -- **反垃圾邮件与钓鱼防护**:基于 LLM 的邮件分析、灰名单、垃圾邮件陷阱及 DNSBL 支持。 -- **灵活的存储后端**:支持 PostgreSQL、SQLite、Redis、S3、ElasticSearch 等。 -- **高安全性**:支持 S/MIME 与 OpenPGP 加密,ACME TLS 证书,自适应限流与自动 IP 封锁。 -- **可扩展性与高可用性**:支持 Kubernetes,分片存储,自动故障恢复,无单点故障。 -- **全面的身份验证支持**:OAuth2、OpenID Connect、LDAP、TOTP 双因素认证、ACL 与基于角色的访问控制。 -- **监控与管理界面**:Web 控制面板,Prometheus 指标,OpenTelemetry 支持,日志查看器与告警系统。 - ---- - -## ⚙️ 安装步骤 - -1. 安装 Stalwart 时,请确保没有其他应用程序占用相同的端口。如果发生端口冲突(例如与 OpenResty 等 Web 服务器),您可以将 Stalwart 的默认端口更改为其他可用端口。 - - ![](https://i.imgur.com/v8IiDmI.png) - -2. 在初始设置过程中,请向下滚动并**启用以下选项**: - - ✅ **高级设置** - - ✅ **外部访问** - - ![](https://i.imgur.com/2wVMb3G.png) - -3. 安装完成并启动 Stalwart 后,请**查看应用日志**。如果日志内容类似下图,说明安装成功,Stalwart 正在运行。 - - ![](https://i.imgur.com/QM1Euld.png) - - > 💡 *请保存日志中显示的账户信息,稍后登录时需要使用。* - -4. 如果您的系统启用了**防火墙**,请确保使用 **TCP 协议** 打开 Stalwart 所需的端口,以确保邮件服务器正常运行。 - - ![](https://i.imgur.com/4aYSKN2.png) - - > ⚠️ *在此示例中,端口 `443` 已被 OpenResty 占用,因此我将 Stalwart 的端口更改为 `8443`。* - -5. 设置完成后,在浏览器中打开您之前设置的地址和端口。登录时,请使用**第 3 步日志中显示的用户名和密码**。 - - ![](https://i.imgur.com/0jrSZLt.png) - ---- - -## 📺 高级设置与配置 - -有关进一步的配置,可以参考以下两个视频: - -- https://youtu.be/JA_V0GFUwWc?si=71KKiAV59mUoL0X4 -- https://youtu.be/PMoiJktvzDw?si=hVhQxdLuj7PJJALm - -📌 *感谢视频创作者 —— 强烈推荐用于入门。* diff --git a/stalwart-mail/README_en.md b/stalwart-mail/README_en.md deleted file mode 100755 index 1de8220ff..000000000 --- a/stalwart-mail/README_en.md +++ /dev/null @@ -1,57 +0,0 @@ -# Stalwart Mail Server - -**Stalwart Mail Server** is an open-source mail server solution with JMAP, IMAP4, POP3, and SMTP support and a wide range of modern features. It is written in Rust and designed to be secure, fast, robust and scalable. - ---- - -## 🚀 Key Features - -- **Complete Protocol Support**: JMAP, IMAP4rev2, POP3, SMTP, and ManageSieve. -- **Advanced SMTP**: Built-in DMARC, DKIM, SPF, ARC, TLS reporting, and flexible routing & filtering. -- **Anti-Spam & Phishing Protection**: LLM-based analysis, greylisting, spam traps, and DNSBL support. -- **Flexible Backends**: Support for PostgreSQL, SQLite, Redis, S3, ElasticSearch, and more. -- **High Security**: S/MIME & OpenPGP encryption, ACME TLS certificates, rate limiting, and automatic IP blocking. -- **Scalable & Highly Available**: Kubernetes support, sharded storage, auto-recovery, no single point of failure. -- **Comprehensive Authentication**: OAuth2, OpenID Connect, LDAP, TOTP 2FA, ACLs & role-based access. -- **Monitoring & Admin Interface**: Web dashboard, Prometheus metrics, OpenTelemetry support, log viewer & alerts. - ---- - -## ⚙️ Installation Steps - -1. When installing Stalwart, make sure no other application is using the same port. If there’s a conflict (for example, with a web server like OpenResty), you can change Stalwart’s default port to another available one. - - ![](https://i.imgur.com/v8IiDmI.png) - -2. During the initial setup, scroll down and **enable the following options**: - - ✅ **Advanced Settings** - - ✅ **External Access** - - ![](https://i.imgur.com/2wVMb3G.png) - -3. Once the installation is complete and Stalwart is running, **check the application logs**. If they look similar to the example below, it means the installation was successful and Stalwart is now active. - - ![](https://i.imgur.com/QM1Euld.png) - - > 💡 *Make sure to save the account information shown in the logs. You’ll need it to log in later.* - -4. If your system uses a **firewall**, be sure to open the necessary ports for Stalwart using the **TCP protocol**. This allows the email server to work properly. - - ![](https://i.imgur.com/4aYSKN2.png) - - > ⚠️ *In this example, port `443` is already being used by OpenResty, so I changed Stalwart’s port to `8443`.* - -5. After setup is complete, open your browser and go to the address and port you selected. Use the **username and password from the logs in step 3** to log in. - - ![](https://i.imgur.com/0jrSZLt.png) - ---- - -## 📺 Advanced Setup & Configuration - -For further configuration, you can follow these two videos: - -- https://youtu.be/JA_V0GFUwWc?si=71KKiAV59mUoL0X4 -- https://youtu.be/PMoiJktvzDw?si=hVhQxdLuj7PJJALm - -> 📌 *Credits to the creators — highly recommended for getting started.* diff --git a/stalwart-mail/data.yml b/stalwart-mail/data.yml deleted file mode 100755 index 62fafd551..000000000 --- a/stalwart-mail/data.yml +++ /dev/null @@ -1,33 +0,0 @@ -name: Stalwart Mail Server -tags: - - 邮件服务 -title: 安全且现代的一体化邮件服务器 -description: 安全且现代的一体化邮件服务器 -additionalProperties: - key: stalwart-mail - name: Stalwart Mail Server - tags: - - Email - shortDescZh: 安全且现代的一体化邮件服务器 - shortDescEn: Secure & Modern All-in-One Mail Server - description: - en: Secure & Modern All-in-One Mail Server - ja: 安全で最新の統合型メールサーバー - ms: Pelayan Mel Semua-dalam-Satu yang Selamat & Moden - pt-br: Servidor de E-mail Tudo-em-Um Seguro e Moderno - ru: Безопасный и Современный Универсальный Почтовый Сервер - ko: 안전하고 현대적인 올인원 메일 서버 - zh-hant: 安全且現代化的一體化郵件伺服器 - zh: 安全且现代的一体化邮件服务器 - type: website - crossVersionUpdate: true - limit: 1 - recommend: 0 - website: https://stalw.art/ - github: https://github.com/stalwartlabs/mail-server - document: https://stalw.art/docs/ - architectures: - - amd64 - - arm/v6 - - arm/v7 - - arm64 diff --git a/stalwart-mail/logo.png b/stalwart-mail/logo.png deleted file mode 100755 index cd46a48b6..000000000 Binary files a/stalwart-mail/logo.png and /dev/null differ diff --git a/stirling-pdf/0.46.2/data.yml b/stirling-pdf/0.46.2/data.yml deleted file mode 100755 index 6d95d31c9..000000000 --- a/stirling-pdf/0.46.2/data.yml +++ /dev/null @@ -1,19 +0,0 @@ -additionalProperties: - formFields: - - default: 8080 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh-Hant: 埠 - zh: 端口 - required: true - rule: paramPort - type: number diff --git a/stirling-pdf/0.46.2/docker-compose.yml b/stirling-pdf/0.46.2/docker-compose.yml deleted file mode 100644 index 2636e30a0..000000000 --- a/stirling-pdf/0.46.2/docker-compose.yml +++ /dev/null @@ -1,19 +0,0 @@ -services: - stirling-pdf: - image: frooodle/s-pdf:0.46.2 - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - '${PANEL_APP_PORT_HTTP}:8080' - volumes: - - ./data/trainingData:/usr/share/tesseract-ocr/5/tessdata - - ./data/extraConfigs:/configs - environment: - - DOCKER_ENABLE_SECURITY=false - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/stirling-pdf/README.md b/stirling-pdf/README.md deleted file mode 100644 index adf27f2fe..000000000 --- a/stirling-pdf/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# Stirling-PDF - -**Stirling-PDF** 是一个强大的本地托管基于 Web 的 PDF 操作工具,允许您对 PDF 文件执行各种操作,例如拆分合并、转换、重新组织、添加图像、旋转、压缩等。 - -## 特征: - -- 深色模式支持。 -- 自定义下载选项(参见 [此处](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/images/settings-light.png) 的示例) -- 并行文件处理和下载 -- 用于与外部脚本集成的 API -- 可选的登录和身份验证支持(请参阅 [此处](https://github.com/Stirling-Tools/Stirling-PDF/tree/main#login-authentication) 的文档) \ No newline at end of file diff --git a/stirling-pdf/README_en.md b/stirling-pdf/README_en.md deleted file mode 100644 index ffc376a08..000000000 --- a/stirling-pdf/README_en.md +++ /dev/null @@ -1,11 +0,0 @@ -# Stirling-PDF - -**Stirling-PDF** is a powerful self-hosted web-based tool for performing various operations on PDF files, such as splitting, merging, converting, reorganizing, adding images, rotating, and compressing. - -## Main Features - -- **Dark Mode Support**: Enjoy a visually comfortable experience with dark mode. -- **Customizable Download Options**: Personalize your downloads. See an example [here](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/images/settings-light.png). -- **Parallel File Processing and Downloads**: Handle multiple files simultaneously for efficient workflow. -- **API for Integration**: Seamlessly integrate with external scripts via the provided API. -- **Optional Login and Authentication Support**: Secure your application as needed. Documentation is available [here](https://github.com/Stirling-Tools/Stirling-PDF/tree/main#login-authentication). \ No newline at end of file diff --git a/stirling-pdf/data.yml b/stirling-pdf/data.yml deleted file mode 100755 index c1635fd23..000000000 --- a/stirling-pdf/data.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: Stirling-PDF -tags: - - 实用工具 -title: 强大的本地托管基于 Web 的 PDF 操作工具 -description: 强大的本地托管基于 Web 的 PDF 操作工具 -additionalProperties: - key: stirling-pdf - name: Stirling-PDF - tags: - - Tool - shortDescZh: 强大的本地托管基于 Web 的 PDF 操作工具 - shortDescEn: Powerful locally hosted web based PDF manipulation tool - description: - en: Powerful locally hosted web based PDF manipulation tool - ja: 強力なローカルホスト型ウェブベースのPDF操作ツール - ms: Alat manipulasi PDF berasaskan web yang dihoskan secara tempatan yang hebat - pt-br: Ferramenta poderosa de manipulação de PDF baseada na web e hospedada localmente - ru: Мощный инструмент для работы с PDF, размещенный локально и основанный на веб-технологиях - ko: 강력한 로컬 호스팅 웹 기반 PDF 조작 도구 - zh-hant: 強大的本地託管基於網頁的 PDF 操作工具 - zh: 强大的本地托管基于 Web 的 PDF 操作工具 - type: website - crossVersionUpdate: false - limit: 0 - recommend: 0 - website: https://www.stirlingpdf.com/ - github: https://github.com/Stirling-Tools/Stirling-PDF - document: https://docs.stirlingpdf.com/ - architectures: - - amd64 - - arm64 diff --git a/stirling-pdf/logo.png b/stirling-pdf/logo.png deleted file mode 100644 index bb2d66563..000000000 Binary files a/stirling-pdf/logo.png and /dev/null differ diff --git a/synapse/1.132.0/data.yml b/synapse/1.132.0/data.yml deleted file mode 100644 index adb87bed1..000000000 --- a/synapse/1.132.0/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -additionalProperties: - formFields: - - default: 40026 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh: 端口 - zh-Hant: 埠 - required: true - rule: paramPort - type: number - diff --git a/synapse/1.132.0/docker-compose.yml b/synapse/1.132.0/docker-compose.yml deleted file mode 100644 index 7c015e531..000000000 --- a/synapse/1.132.0/docker-compose.yml +++ /dev/null @@ -1,29 +0,0 @@ -services: - synapse: - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - volumes: - - synapse-data:/data - ports: - - "${PANEL_APP_PORT_HTTP}:8008" - environment: - - TZ=Asia/Shanghai - - UID=1000 - - GID=1000 - image: matrixdotorg/synapse:v1.132.0 - logging: - options: - max-size: "10m" - command: run -m synapse.app.homeserver --config-path=/data/homeserver.yaml - labels: - createdBy: "Apps" - -volumes: - synapse-data: - external: true - -networks: - 1panel-network: - external: true diff --git a/synapse/README.md b/synapse/README.md deleted file mode 100644 index d642d55a3..000000000 --- a/synapse/README.md +++ /dev/null @@ -1,49 +0,0 @@ -# Synapse - -Synapse 是由 Matrix.org 基金会编写和维护的开源Matrix家庭服务器。 - -## 生成配置文件 - -- 创建前需要使用终端运行以下命令创建依赖配置文件,需要按需修改参数 `my.matrix.host` - -```shell -docker run -it --rm \ - -v synapse-data:/data \ # 挂载一个卷,将容器内的 /data 目录映射到 synapse-data 卷 - -e SYNAPSE_SERVER_NAME=my.matrix.host \ # 设置 Synapse 服务器的公共主机名 - -e SYNAPSE_REPORT_STATS=no \ # 禁用匿名统计报告 - -e SYNAPSE_HTTP_PORT=8008 \ # 设置 Synapse 监听的 HTTP 端口为 8008 - -e SYNAPSE_CONFIG_DIR=/data \ # 设置配置文件的存储位置为 /data - -e SYNAPSE_DATA_DIR=/data \ # 设置持久数据的存储位置为 /data - -e TZ=Asia/Shanghai \ # 设置容器的时区为亚洲/上海 - -e UID=1000 \ # 设置运行 Synapse 的用户 ID - -e GID=1000 \ # 设置运行 Synapse 的用户组 ID - matrixdotorg/synapse:latest generate # 运行最新版本的 matrixdotorg/synapse 镜像,并执行 generate 命令来生成配置文件 -``` - -> 配置文件默认存放路径是在 `synapse-data` 存储卷里,`/var/lib/docker/volumes/synapse-data/_data` - -## 创建应用 - -## 创建用户 - -- 创建管理员账户 - -```shell -register_new_matrix_user http://localhost:8008 -c /data/homeserver.yaml -a -u 管理员用户名 -p 密码 -``` - -- 创建普通用户账户 - -```shell -register_new_matrix_user http://localhost:8008 -c /data/homeserver.yaml --no-admin -u 普通用户名 -p 密码 -``` - -- 查看更多命令与帮助 - -```shell -register_new_matrix_user http://localhost:8008 -c /data/homeserver.yaml --help -``` - -## 提示 - -所有数据存放在 `synapse-data` 存储卷里,删除应用时,假如需要完全清除数据,还需要将 `synapse-data` 存储卷删除。 \ No newline at end of file diff --git a/synapse/README_en.md b/synapse/README_en.md deleted file mode 100644 index 084cae506..000000000 --- a/synapse/README_en.md +++ /dev/null @@ -1,38 +0,0 @@ -# Synapse -Synapse is an open-source Matrix home server written and maintained by the Matrix.org Foundation. - -## Generate Configuration File -- Before creating, use the following terminal command to generate the required configuration file. Modify the parameter `my.matrix.host` as needed: -```shell -docker run -it --rm \ - -v synapse-data:/data \ # Mount a volume to map the /data directory inside the container to the synapse-data volume - -e SYNAPSE_SERVER_NAME=my.matrix.host \ # Set the public hostname of the Synapse server - -e SYNAPSE_REPORT_STATS=no \ # Disable anonymous statistics reporting - -e SYNAPSE_HTTP_PORT=8008 \ # Set the HTTP port Synapse listens on to 8008 - -e SYNAPSE_CONFIG_DIR=/data \ # Set the storage location for configuration files to /data - -e SYNAPSE_DATA_DIR=/data \ # Set the storage location for persistent data to /data - -e TZ=Asia/Shanghai \ # Set the container's timezone to Asia/Shanghai - -e UID=1000 \ # Set the user ID running Synapse - -e GID=1000 \ # Set the group ID running Synapse - matrixdotorg/synapse:latest generate # Run the latest version of the matrixdotorg/synapse image and execute the generate command to create configuration files -``` -> The default storage path for configuration files is in the `synapse-data` volume at `/var/lib/docker/volumes/synapse-data/_data`. - -## Create Application - -## Create Users -- Create an admin account: -```shell -register_new_matrix_user http://localhost:8008 -c /data/homeserver.yaml -a -u -p -``` -- Create a regular user account: -```shell -register_new_matrix_user http://localhost:8008 -c /data/homeserver.yaml --no-admin -u -p -``` -- View more commands and help: -```shell -register_new_matrix_user http://localhost:8008 -c /data/homeserver.yaml --help -``` - -## Notes -All data is stored in the `synapse-data` volume. When deleting the application, if you need to completely clear the data, you must also delete the `synapse-data` volume. \ No newline at end of file diff --git a/synapse/data.yml b/synapse/data.yml deleted file mode 100644 index a8057f076..000000000 --- a/synapse/data.yml +++ /dev/null @@ -1,32 +0,0 @@ -name: Synapse -tags: - - 实用工具 -title: 开源的 Matrix 家庭服务器,自建聊天服务端 -description: 开源的 Matrix 家庭服务器,自建聊天服务端 -additionalProperties: - key: synapse - name: Synapse - tags: - - Tool - shortDescZh: 开源的 Matrix 家庭服务器,自建聊天服务端 - shortDescEn: Open-source Matrix homeserver,build your own chat server - type: website - crossVersionUpdate: true - limit: 1 - recommend: 0 - website: https://matrix-org.github.io/synapse - github: https://github.com/matrix-org/synapse - document: https://matrix-org.github.io/synapse - description: - en: Open-source Matrix homeserver, build your own chat server - zh: 开源的 Matrix 家庭服务器,自建聊天服务器 - zh-Hant: 開源的 Matrix 家庭伺服器,自建聊天伺服器 - ja: オープンソースの Matrix ホームサーバー、自分のチャットサーバーを構築 - ms: Pelayan rumah Matrix sumber terbuka, bina pelayan sembang anda sendiri - pt-br: Servidor doméstico Matrix de código aberto, construa seu próprio servidor de chat - ru: Открытый сервер Matrix, создайте свой собственный сервер чата - ko: 오픈 소스 Matrix 홈 서버, 자체 채팅 서버 구축 - memoryRequired: 2048 - architectures: - - amd64 - - arm64 diff --git a/synapse/logo.png b/synapse/logo.png deleted file mode 100644 index b4b6d4fc1..000000000 Binary files a/synapse/logo.png and /dev/null differ diff --git a/tailchat/1.11.10/data.yml b/tailchat/1.11.10/data.yml deleted file mode 100755 index 6c1199894..000000000 --- a/tailchat/1.11.10/data.yml +++ /dev/null @@ -1,137 +0,0 @@ -additionalProperties: - formFields: - - default: 11000 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number - - default: "" - edit: true - envKey: PANEL_DB_HOST - key: redis - labelEn: Redis Service - labelZh: 缓存服务服务 - required: true - type: service - - default: "" - envKey: PANEL_REDIS_ROOT_PASSWORD - labelEn: Redis Service Password - labelZh: 缓存服务服务密码 - required: true - type: password - - default: "" - edit: true - envKey: MONGO_HOST - key: mongodb - labelEn: Database Service - labelZh: 数据库服务 - required: true - type: service - - default: tailchat - edit: true - envKey: MONGO_DB - labelEn: Database Name - labelZh: 数据库名 - required: true - rule: paramCommon - type: text - - default: "" - edit: true - envKey: PANEL_DB_ROOT_USER - labelEn: Database User Name - labelZh: 数据库用户名 - required: true - rule: paramCommon - type: text - - default: "" - edit: true - envKey: PANEL_DB_ROOT_PASSWORD - labelEn: Database User Password - labelZh: 数据库密码 - required: true - type: password - - default: "" - edit: true - envKey: MINIO_HOST - key: minio - labelEn: Storage Service - labelZh: 文件存储服务 - required: true - type: service - - default: "" - edit: true - envKey: PANEL_MINIO_ROOT_USER - labelEn: User - labelZh: 文件存储服务用户名 - required: true - rule: paramCommon - type: text - - default: "" - edit: true - envKey: PANEL_MINIO_ROOT_PASSWORD - labelEn: User - labelZh: 文件存储服务密码 - required: true - rule: paramComplexity - type: password - - default: any-random-text - edit: true - envKey: SECRET - labelEn: Secret - labelZh: 秘钥 - random: true - required: true - rule: paramComplexity - type: text - - default: http://localhost:11000 - edit: true - envKey: API_URL - labelEn: External URL - labelZh: 外部访问地址 - required: true - rule: paramExtUrl - type: text - - default: "" - edit: true - envKey: SMTP_SENDER - labelEn: SMTP Sender - labelZh: 邮件服务发送人 - required: false - rule: paramExtUrl - type: text - - default: 11002 - edit: true - envKey: PANEL_APP_PORT_ADMIN - labelEn: Admin Port - labelZh: 后台管理平台端口 - required: true - rule: paramPort - type: number - - default: "tailchat" - edit: true - envKey: ADMIN_USERNAME - labelEn: Admin Username - labelZh: 后台管理平台用户名 - required: true - rule: paramCommon - type: text - - default: admin-password - edit: true - envKey: ADMIN_PASSWORD - labelEn: Admin Password - labelZh: 后台管理平台密码 - random: true - required: true - rule: paramCommon - type: text - - default: "" - edit: true - envKey: SMTP_URI - labelEn: SMTP Sender - labelZh: 邮件服务URI - required: false - rule: paramExtUrl - type: text diff --git a/tailchat/1.11.10/docker-compose.yml b/tailchat/1.11.10/docker-compose.yml deleted file mode 100644 index af5f5fa3b..000000000 --- a/tailchat/1.11.10/docker-compose.yml +++ /dev/null @@ -1,56 +0,0 @@ -services: - tailchat: - container_name: ${CONTAINER_NAME} - restart: unless-stopped - image: moonrailgun/tailchat:1.11.10 - networks: - - 1panel-network - environment: - - SERVICEDIR=services,plugins - - LOGGER=true - - LOGLEVEL=info - - PORT=11000 - - REDIS_URL=redis://:${PANEL_REDIS_ROOT_PASSWORD}@${PANEL_DB_HOST}:6379 - - TRANSPORTER=redis://:${PANEL_REDIS_ROOT_PASSWORD}@${PANEL_DB_HOST}:6379 - - MONGO_URL=mongodb://${PANEL_DB_ROOT_USER}:${PANEL_DB_ROOT_PASSWORD}@${MONGO_HOST}:27017/${MONGO_DB}?authSource=admin - - MINIO_URL=${MINIO_HOST}:9000 - - MINIO_USER=${PANEL_MINIO_ROOT_USER} - - MINIO_PASS=${PANEL_MINIO_ROOT_PASSWORD} - - SMTP_SENDER=${SMTP_SENDER} - - SMTP_URI=${SMTP_URI} - - SECRET=${SECRET} - - API_URL=${API_URL} - ports: - - ${PANEL_APP_PORT_HTTP}:11000 - labels: - createdBy: "Apps" - tailchat-admin: - container_name: ${CONTAINER_NAME}-admin - restart: unless-stopped - image: moonrailgun/tailchat:1.11.10 - networks: - - 1panel-network - environment: - - ADMIN_PORT=3000 - - ADMIN_USER=${ADMIN_USERNAME} - - ADMIN_PASS=${ADMIN_PASSWORD} - - LOGGER=true - - LOGLEVEL=info - - REDIS_URL=redis://:${PANEL_REDIS_ROOT_PASSWORD}@${PANEL_DB_HOST}:6379 - - TRANSPORTER=redis://:${PANEL_REDIS_ROOT_PASSWORD}@${PANEL_DB_HOST}:6379 - - MONGO_URL=mongodb://${PANEL_DB_ROOT_USER}:${PANEL_DB_ROOT_PASSWORD}@${MONGO_HOST}:27017/${MONGO_DB}?authSource=admin - - MINIO_URL=${MINIO_HOST}:9001 - - MINIO_USER=${PANEL_MINIO_ROOT_USER} - - MINIO_PASS=${PANEL_MINIO_ROOT_PASSWORD} - - SMTP_SENDER=${SMTP_SENDER} - - SMTP_URI=${SMTP_URI} - - SECRET=${SECRET} - - API_URL=${API_URL} - ports: - - ${PANEL_APP_PORT_ADMIN}:3000 - labels: - createdBy: "Apps" - command: pnpm start:admin -networks: - 1panel-network: - external: true diff --git a/tailchat/README.md b/tailchat/README.md deleted file mode 100644 index 02796a329..000000000 --- a/tailchat/README.md +++ /dev/null @@ -1,18 +0,0 @@ -# 关于后台 - -访问 `http://:11002/admin/` 进入后台服务 - -> 11002是后台默认端口,你可以在安装时修改成自己想要的端口。 - -# Tailchat - -**Tailchat** 是一款功能强大的聊天工具,旨在提供出色的沟通和协作体验。 - -## 主要功能: - -- **实时聊天**:Tailchat 提供实时聊天功能,允许用户与他人进行即时沟通。无论是一对一聊天还是群组聊天,您都可以轻松地与同事、朋友和家人保持联系。 -- **多平台支持**:Tailchat 可以在多个平台上使用,包括桌面、移动设备和Web浏览器。这意味着您可以随时随地访问您的聊天会话,无需担心设备兼容性问题。 -- **文件共享**:用户可以在聊天中轻松共享文件,包括图片、文档和音频文件。这样,您可以与团队成员共享重要文档或娱乐内容,提高工作效率和娱乐乐趣。 -- **消息历史记录**:Tailchat 会自动保存聊天消息的历史记录,因此您可以随时查看之前的对话。这对于追踪项目进展、查找之前的信息或进行审计非常有用。 -- **自定义表情和贴纸**:为了增加聊天的趣味性,Tailchat 支持自定义表情和贴纸。用户可以发送各种表情符号和有趣的贴纸来表达自己的情感和想法。 -- **安全和隐私**:Tailchat 提供了强大的安全性和隐私保护功能,包括端到端加密,以确保您的聊天内容不会被未经授权的访问。 diff --git a/tailchat/data.yml b/tailchat/data.yml deleted file mode 100755 index 2aca68e07..000000000 --- a/tailchat/data.yml +++ /dev/null @@ -1,22 +0,0 @@ -name: Tailchat -tags: - - 实用工具 -title: 您自己的工作空间中的下一代 noIM 应用程序 -description: 您自己的工作空间中的下一代 noIM 应用程序 -additionalProperties: - key: tailchat - name: Tailchat - tags: - - Tool - shortDescZh: 您自己的工作空间中的下一代 noIM 应用程序 - shortDescEn: Next generation noIM application in your own workspace - type: website - crossVersionUpdate: true - limit: 1 - recommend: 0 - website: https://tailchat.msgbyte.com/ - github: https://github.com/msgbyte/tailchat - document: https://tailchat.msgbyte.com/docs/intro - architectures: - - amd64 - - arm64 diff --git a/tailchat/logo.png b/tailchat/logo.png deleted file mode 100644 index 68affaa9f..000000000 Binary files a/tailchat/logo.png and /dev/null differ diff --git a/teamspeak/3.13.7/data.yml b/teamspeak/3.13.7/data.yml deleted file mode 100644 index 59d945387..000000000 --- a/teamspeak/3.13.7/data.yml +++ /dev/null @@ -1,128 +0,0 @@ -additionalProperties: - formFields: - - child: - default: "" - envKey: PANEL_DB_HOST - required: true - type: service - default: mariadb - envKey: TS3SERVER_DB_TYPE - labelEn: Database Service - labelZh: 数据库服务 - label: - en: Database Service - ja: データベースサービス - ms: Perkhidmatan Pangkalan Data - pt-br: Serviço de Banco de Dados - ru: Сервис базы данных - ko: 데이터베이스 서비스 - zh: 数据库服务 - zh-Hant: 數據庫服務 - required: true - type: apps - values: - - label: MariaDB - value: mariadb - - label: PostgreSQL - value: postgresql - - default: teamspeak - envKey: PANEL_DB_NAME - labelEn: Database - labelZh: 数据库名 - label: - en: Database - ja: データベース - ms: Pangkalan Data - pt-br: Banco de Dados - ru: База данных - ko: 데이터베이스 - zh: 数据库名 - zh-Hant: 數據庫名 - random: true - required: true - rule: paramCommon - type: text - - default: teamspeak - envKey: PANEL_DB_USER - labelEn: User - labelZh: 数据库用户 - label: - en: User - ja: ユーザー - ms: Pengguna - pt-br: Usuário - ru: Пользователь - ko: 사용자 - zh: 数据库用户 - zh-Hant: 數據庫用戶 - random: true - required: true - rule: paramCommon - type: text - - default: teamspeak - envKey: PANEL_DB_USER_PASSWORD - labelEn: Password - labelZh: 数据库用户密码 - label: - en: Password - ja: パスワード - ms: Kata laluan - pt-br: Senha - ru: Пароль - ko: 비밀번호 - zh: 数据库用户密码 - zh-Hant: 數據庫用戶密碼 - random: true - required: true - type: password - - default: 9987 - edit: true - envKey: TS3SERVER_VOICE_PORT - labelEn: Voice Port - labelZh: Voice 端口 - label: - en: Voice Port - ja: Voice ポート - ms: Port Suara - pt-br: Porta de Voz - ru: Голосовой порт - ko: 음성 포트 - zh: Voice 端口 - zh-Hant: Voice 埠 - required: true - rule: paramPort - type: number - - default: 10011 - edit: true - envKey: TS3SERVER_SQ_RAW_PORT - labelEn: ServerQuery (raw) Port - labelZh: ServerQuery (raw) 端口 - label: - en: ServerQuery (raw) Port - ja: ServerQuery (raw) ポート - ms: Port ServerQuery (raw) - pt-br: Porta ServerQuery (raw) - ru: Порт ServerQuery (raw) - ko: ServerQuery (raw) 포트 - zh: ServerQuery (raw) 端口 - zh-Hant: ServerQuery (raw) 埠 - required: true - rule: paramPort - type: number - - default: 30033 - edit: true - envKey: TS3SERVER_FILETRANSFER_PORT - labelEn: Filetransfer Port - labelZh: Filetransfer 端口 - label: - en: Filetransfer Port - ja: Filetransfer ポート - ms: Port Pemindahan Fail - pt-br: Porta de Transferência de Arquivos - ru: Порт передачи файлов - ko: 파일 전송 포트 - zh: Filetransfer 端口 - zh-Hant: Filetransfer 埠 - required: true - rule: paramPort - type: number diff --git a/teamspeak/3.13.7/docker-compose.yml b/teamspeak/3.13.7/docker-compose.yml deleted file mode 100644 index 82fd85a60..000000000 --- a/teamspeak/3.13.7/docker-compose.yml +++ /dev/null @@ -1,28 +0,0 @@ -services: - teamspeak: - image: teamspeak:3.13.7 - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - ${TS3SERVER_VOICE_PORT}:9987/udp - - ${TS3SERVER_SQ_RAW_PORT}:10011 - - ${TS3SERVER_FILETRANSFER_PORT}:30033 - environment: - TS3SERVER_DB_PLUGIN: ts3db_${TS3SERVER_DB_TYPE} - TS3SERVER_DB_SQLCREATEPATH: create_${TS3SERVER_DB_TYPE} - TS3SERVER_DB_WAITUNTILREADY: 30 - TS3SERVER_LICENSE: accept - TS3SERVER_DB_HOST: ${PANEL_DB_HOST} - TS3SERVER_DB_NAME: ${PANEL_DB_NAME} - TS3SERVER_DB_PORT: ${PANEL_DB_PORT} - TS3SERVER_DB_USER: ${PANEL_DB_USER} - TS3SERVER_DB_PASSWORD: ${PANEL_DB_USER_PASSWORD} - volumes: - - ./data:/var/ts3server - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/teamspeak/README.md b/teamspeak/README.md deleted file mode 100644 index 93132e041..000000000 --- a/teamspeak/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# TeamSpeak - -一款出色的网络语音 (VoIP) 解决方案。TeamSpeak 为世界上一些卓越网络提供关键的语音通信解决方案。 - -## 入门 - -通过 3 个简单的步骤连接到 TEAMSPEAK 服务器: - -1. 从下载页面试用最新的 [TeamSpeak 3 客户端](https://teamspeak.com/zh-CN/downloads/)并安装。 -2. 启动 TeamSpeak 3 客户端,点击“连接”菜单,然后单击“连接”。 -2. 输入您的服务器地址,选择昵称;如果需要,输入服务器密码。 diff --git a/teamspeak/README_en.md b/teamspeak/README_en.md deleted file mode 100644 index 2dadfd492..000000000 --- a/teamspeak/README_en.md +++ /dev/null @@ -1,8 +0,0 @@ -# TeamSpeak -An excellent network voice (VoIP) solution. TeamSpeak provides critical voice communication solutions for some of the world's best networks. - -## Getting Started -Connect to a TEAMSPEAK server in 3 simple steps: -1. Download and install the latest [TeamSpeak 3 Client](https://teamspeak.com/en/downloads/) from the downloads page. -2. Launch the TeamSpeak 3 Client, click the "Connections" menu, and then click "Connect." -3. Enter your server address, choose a nickname, and if required, enter the server password. \ No newline at end of file diff --git a/teamspeak/data.yml b/teamspeak/data.yml deleted file mode 100644 index e1f88874e..000000000 --- a/teamspeak/data.yml +++ /dev/null @@ -1,29 +0,0 @@ -name: TeamSpeak Server -tags: - - 实用工具 -title: 一款出色的网络语音 (VoIP) 解决方案 -description: 一款出色的网络语音 (VoIP) 解决方案 -additionalProperties: - key: teamspeak - name: TeamSpeak - tags: - - Tool - shortDescZh: 一款出色的网络语音 (VoIP) 解决方案 - shortDescEn: An out-of-this-world VoIP solution - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://teamspeak.com/ - document: https://teamspeak.com/en/support/get-started/ - description: - en: An out-of-this-world VoIP solution - zh: 一款出色的网络语音 (VoIP) 解决方案 - zh-Hant: 一款出色的網絡語音 (VoIP) 解決方案 - ja: 卓越したネットワーク音声 (VoIP) ソリューション - ms: Penyelesaian VoIP yang luar biasa - pt-br: Uma solução VoIP fora deste mundo - ru: Уникальное решение VoIP - ko: 뛰어난 네트워크 음성 (VoIP) 솔루션 - architectures: - - amd64 diff --git a/teamspeak/logo.png b/teamspeak/logo.png deleted file mode 100644 index b9afc42ff..000000000 Binary files a/teamspeak/logo.png and /dev/null differ diff --git a/tomcat/10.1.42/data.yml b/tomcat/10.1.42/data.yml deleted file mode 100755 index 6723f6a50..000000000 --- a/tomcat/10.1.42/data.yml +++ /dev/null @@ -1,35 +0,0 @@ -additionalProperties: - formFields: - - default: 8080 - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh: 端口 - zh-Hant: 埠 - required: true - rule: paramPort - type: number - - default: tomcat - envKey: TOMCAT_PASSWORD - labelEn: Tomcat Password - labelZh: 管理员密码 - label: - en: Tomcat Password - ja: Tomcat パスワード - ms: Kata Laluan Tomcat - pt-br: Senha do Tomcat - ru: Пароль Tomcat - ko: Tomcat 비밀번호 - zh: 管理员密码 - zh-Hant: 管理員密碼 - random: true - required: true - rule: paramComplexity - type: password diff --git a/tomcat/10.1.42/data/.gitkeep b/tomcat/10.1.42/data/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/tomcat/10.1.42/docker-compose.yml b/tomcat/10.1.42/docker-compose.yml deleted file mode 100644 index e4a16b957..000000000 --- a/tomcat/10.1.42/docker-compose.yml +++ /dev/null @@ -1,18 +0,0 @@ -services: - nexus: - image: bitnami/tomcat:10.1.42 - restart: always - container_name: ${CONTAINER_NAME} - environment: - - TOMCAT_PASSWORD=${TOMCAT_PASSWORD} - ports: - - ${PANEL_APP_PORT_HTTP}:8080 - volumes: - - ./data:/bitnami/tomcat - networks: - - 1panel-network - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/tomcat/10.1.42/scripts/init.sh b/tomcat/10.1.42/scripts/init.sh deleted file mode 100644 index 5fa267326..000000000 --- a/tomcat/10.1.42/scripts/init.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -chown -R 1001:1001 data \ No newline at end of file diff --git a/tomcat/8.5.100/data.yml b/tomcat/8.5.100/data.yml deleted file mode 100755 index 6723f6a50..000000000 --- a/tomcat/8.5.100/data.yml +++ /dev/null @@ -1,35 +0,0 @@ -additionalProperties: - formFields: - - default: 8080 - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh: 端口 - zh-Hant: 埠 - required: true - rule: paramPort - type: number - - default: tomcat - envKey: TOMCAT_PASSWORD - labelEn: Tomcat Password - labelZh: 管理员密码 - label: - en: Tomcat Password - ja: Tomcat パスワード - ms: Kata Laluan Tomcat - pt-br: Senha do Tomcat - ru: Пароль Tomcat - ko: Tomcat 비밀번호 - zh: 管理员密码 - zh-Hant: 管理員密碼 - random: true - required: true - rule: paramComplexity - type: password diff --git a/tomcat/8.5.100/data/.gitkeep b/tomcat/8.5.100/data/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/tomcat/8.5.100/docker-compose.yml b/tomcat/8.5.100/docker-compose.yml deleted file mode 100644 index 647abca27..000000000 --- a/tomcat/8.5.100/docker-compose.yml +++ /dev/null @@ -1,18 +0,0 @@ -services: - nexus: - image: bitnami/tomcat:8.5.100 - restart: always - container_name: ${CONTAINER_NAME} - environment: - - TOMCAT_PASSWORD=${TOMCAT_PASSWORD} - ports: - - ${PANEL_APP_PORT_HTTP}:8080 - volumes: - - ./data:/bitnami/tomcat - networks: - - 1panel-network - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/tomcat/8.5.100/scripts/init.sh b/tomcat/8.5.100/scripts/init.sh deleted file mode 100644 index 5fa267326..000000000 --- a/tomcat/8.5.100/scripts/init.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -chown -R 1001:1001 data \ No newline at end of file diff --git a/tomcat/9.0.98/data.yml b/tomcat/9.0.98/data.yml deleted file mode 100755 index 6723f6a50..000000000 --- a/tomcat/9.0.98/data.yml +++ /dev/null @@ -1,35 +0,0 @@ -additionalProperties: - formFields: - - default: 8080 - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh: 端口 - zh-Hant: 埠 - required: true - rule: paramPort - type: number - - default: tomcat - envKey: TOMCAT_PASSWORD - labelEn: Tomcat Password - labelZh: 管理员密码 - label: - en: Tomcat Password - ja: Tomcat パスワード - ms: Kata Laluan Tomcat - pt-br: Senha do Tomcat - ru: Пароль Tomcat - ko: Tomcat 비밀번호 - zh: 管理员密码 - zh-Hant: 管理員密碼 - random: true - required: true - rule: paramComplexity - type: password diff --git a/tomcat/9.0.98/data/.gitkeep b/tomcat/9.0.98/data/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/tomcat/9.0.98/docker-compose.yml b/tomcat/9.0.98/docker-compose.yml deleted file mode 100644 index 1ada1a411..000000000 --- a/tomcat/9.0.98/docker-compose.yml +++ /dev/null @@ -1,18 +0,0 @@ -services: - nexus: - image: bitnami/tomcat:9.0.98 - restart: always - container_name: ${CONTAINER_NAME} - environment: - - TOMCAT_PASSWORD=${TOMCAT_PASSWORD} - ports: - - ${PANEL_APP_PORT_HTTP}:8080 - volumes: - - ./data:/bitnami/tomcat - networks: - - 1panel-network - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/tomcat/9.0.98/scripts/init.sh b/tomcat/9.0.98/scripts/init.sh deleted file mode 100644 index 5fa267326..000000000 --- a/tomcat/9.0.98/scripts/init.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -chown -R 1001:1001 data \ No newline at end of file diff --git a/tomcat/README.md b/tomcat/README.md deleted file mode 100644 index 0f2a96767..000000000 --- a/tomcat/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# 使用说明 - -- 管理员用户名:manager -- 镜像采用的是 Java 17 版本。 - -# Apache Tomcat - -Apache Tomcat® 软件是 Java Servlet、JavaServer Pages、Java Expression Language 和 Java WebSocket 技术的开源实现。Java Servlet、JavaServer Pages、Java Expression Language 和 Java WebSocket 规范是在 [Java 社区进程](https://jcp.org/en/introduction/overview) 下开发的。 - -Apache Tomcat 软件是在开放和参与式环境中开发的,并在 [Apache 许可证版本 2](](https://www.apache.org/licenses/)) 下发布。Apache Tomcat 项目旨在成为来自世界各地的最优秀开发者的合作。我们邀请您参与这个开放的开发项目。要了解更多信息,[点击这里](https://tomcat.apache.org/getinvolved.html) 或继续阅读。 - -Apache Tomcat 软件驱动着许多大型、关键性的网络应用程序,涵盖了各种行业和组织。其中一些用户及其故事列在 [PoweredBy wiki 页面](https://cwiki.apache.org/confluence/display/TOMCAT/PoweredBy)上。 - -Apache Tomcat、Tomcat、Apache、Apache feather和 Apache Tomcat 项目标志是 Apache 软件基金会的商标。 \ No newline at end of file diff --git a/tomcat/README_en.md b/tomcat/README_en.md deleted file mode 100644 index 3a0a70179..000000000 --- a/tomcat/README_en.md +++ /dev/null @@ -1,15 +0,0 @@ -# Usage Instructions - -- Admin Username: manager -- The image uses Java 17. - -# Apache Tomcat - -Apache Tomcat® software is an open-source implementation of Java Servlet, JavaServer Pages, Java Expression Language, and Java WebSocket technologies. The Java Servlet, JavaServer Pages, Java Expression Language, and Java WebSocket specifications are developed under the [Java Community Process](https://jcp.org/en/introduction/overview). - -Apache Tomcat software is developed in an open and participatory environment and is released under the [Apache License, Version 2](https://www.apache.org/licenses/). The Apache Tomcat project aims to be a collaboration of the best developers from around the world. We invite you to participate in this open development project. To learn more, [click here](https://tomcat.apache.org/getinvolved.html) or continue reading. - -Apache Tomcat software powers many large, mission-critical web applications across various industries and organizations. Some of these users and their stories are listed on the [PoweredBy wiki page](https://cwiki.apache.org/confluence/display/TOMCAT/PoweredBy). - -Apache Tomcat, Tomcat, Apache, the Apache feather, and the Apache Tomcat project logo are trademarks of the Apache Software Foundation. - diff --git a/tomcat/data.yml b/tomcat/data.yml deleted file mode 100755 index 764e9acf3..000000000 --- a/tomcat/data.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: Apache Tomcat -tags: - - 中间件 -title: 开源的 Web 服务器和 Servlet 容器 -description: 开源的 Web 服务器和 Servlet 容器 -additionalProperties: - key: tomcat - name: Apache Tomcat - tags: - - Middleware - shortDescZh: 开源的 Web 服务器和 Servlet 容器 - shortDescEn: An open-source web server and servlet container - type: website - crossVersionUpdate: false - limit: 0 - recommend: 95 - website: https://tomcat.apache.org/ - github: https://github.com/apache/tomcat - document: https://tomcat.apache.org/ - description: - en: An open-source web server and servlet container - zh: 开源的 Web 服务器和 Servlet 容器 - zh-Hant: 開源的 Web 伺服器和 Servlet 容器 - ja: オープンソースの Web サーバーおよびサーブレットコンテナ - ms: Pelayan web dan bekas servlet sumber terbuka - pt-br: Um servidor web e contêiner de servlets de código aberto - ru: Открытый веб-сервер и контейнер сервлетов - ko: 오픈 소스 웹 서버 및 서블릿 컨테이너 - architectures: - - amd64 - - arm64 diff --git a/tomcat/logo.png b/tomcat/logo.png deleted file mode 100644 index 7ddfdeb01..000000000 Binary files a/tomcat/logo.png and /dev/null differ diff --git a/twikoo/1.6.44/data.yml b/twikoo/1.6.44/data.yml deleted file mode 100644 index 842c9aac9..000000000 --- a/twikoo/1.6.44/data.yml +++ /dev/null @@ -1,10 +0,0 @@ -additionalProperties: - formFields: - - default: 40063 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number \ No newline at end of file diff --git a/twikoo/1.6.44/docker-compose.yml b/twikoo/1.6.44/docker-compose.yml deleted file mode 100644 index 30d4843bc..000000000 --- a/twikoo/1.6.44/docker-compose.yml +++ /dev/null @@ -1,19 +0,0 @@ -services: - twikoo: - container_name: ${CONTAINER_NAME} - image: imaegoo/twikoo:1.6.44 - restart: always - ports: - - ${PANEL_APP_PORT_HTTP}:8080 - networks: - - 1panel-network - volumes: - - ./data:/app/data - environment: - - "TWIKOO_THROTTLE=1000" - - "TWIKOO_PORT=8080" - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/twikoo/README.md b/twikoo/README.md deleted file mode 100644 index 6bfcf49c9..000000000 --- a/twikoo/README.md +++ /dev/null @@ -1,61 +0,0 @@ -# Twikoo - -**Twikoo** 是一个**简洁**、**安全**、**免费**的静态网站评论系统。。 - -## 特色 | Features - -### 简单 - -* 免费搭建(使用云开发 / Vercel / 私有部署评论后台) -* 简单部署(支持云开发 / Vercel 一键部署) - -### 易用 - -* 支持回复、点赞 -* 无需额外适配,支持搭配浅色主题与深色主题使用 -* 支持 API 调用,批量获取文章评论数、最新评论 -* 访客在昵称栏输入 QQ 号,会自动补全 QQ 昵称和 QQ 邮箱 -* 访客填写数字 QQ 邮箱,会使用 QQ 头像作为评论头像 -* 支持评论框粘贴图片(可禁用) -* 支持插入图片(可禁用) -* 支持去不图床、云开发图床 -* 支持插入表情(可禁用) -* 支持 Ctrl + Enter 快捷回复 -* 评论框内容实时保存草稿,刷新不会丢失 -* [支持 Katex 公式](https://twikoo.js.org/faq.html#%E5%A6%82%E4%BD%95%E5%90%AF%E7%94%A8-katex-%E6%94%AF%E6%8C%81) -* 支持按语言的代码高亮 - -### 安全 - -* 隐私信息安全(通过云函数控制敏感字段(邮箱、IP、环境配置等)不会泄露) -* 支持 Akismet 垃圾评论检测(需自行注册 [akismet.com](https://akismet.com/)) -* 支持腾讯云内容安全垃圾评论检测(需自行注册 [腾讯云内容安全](https://console.cloud.tencent.com/cms/text/overview)) -* 支持人工审核模式 -* 防 XSS 注入 -* 支持限制每个 IP 每 10 分钟最多发表多少条评论 - -### 即时 - -* 支持邮件提醒(访客和博主) -* 支持微信提醒(仅针对博主,基于 [Server酱](https://sc.ftqq.com/3.version),需自行注册) -* 支持 QQ 提醒(仅针对博主,基于 [Qmsg酱](https://qmsg.zendee.cn/),需自行注册) - -### 个性 - -* 支持自定义评论框背景图片 -* 支持自定义“博主”标识文字 -* 支持自定义通知邮件模板 -* 支持自定义评论框提示信息(placeholder) -* 支持自定义表情列表(兼容 [OwO 的数据格式](https://cdn.jsdelivr.net/npm/owo@1.0.2/demo/OwO.json)) -* 支持自定义【昵称】【邮箱】【网址】必填 / 选填 -* 支持自定义代码高亮主题 - -### 便捷管理 - -* 内嵌式管理面板,通过密码登录,可方便地查看评论、隐藏评论、删除评论、修改配置 -* 支持隐藏管理入口,通过输入暗号显示 -* 支持从 Valine、Artalk、Disqus 导入评论 - -### 缺点 - -* 不支持 IE \ No newline at end of file diff --git a/twikoo/arm32v7/data.yml b/twikoo/arm32v7/data.yml deleted file mode 100644 index 842c9aac9..000000000 --- a/twikoo/arm32v7/data.yml +++ /dev/null @@ -1,10 +0,0 @@ -additionalProperties: - formFields: - - default: 40063 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number \ No newline at end of file diff --git a/twikoo/arm32v7/docker-compose.yml b/twikoo/arm32v7/docker-compose.yml deleted file mode 100644 index 733755a76..000000000 --- a/twikoo/arm32v7/docker-compose.yml +++ /dev/null @@ -1,19 +0,0 @@ -services: - twikoo: - container_name: ${CONTAINER_NAME} - image: imaegoo/twikoo:arm32v7 - restart: always - ports: - - ${PANEL_APP_PORT_HTTP}:8080 - networks: - - 1panel-network - volumes: - - ./data:/app/data - environment: - - "TWIKOO_THROTTLE=1000" - - "TWIKOO_PORT=8080" - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/twikoo/data.yml b/twikoo/data.yml deleted file mode 100644 index 9dc3cf622..000000000 --- a/twikoo/data.yml +++ /dev/null @@ -1,22 +0,0 @@ -name: Twikoo -tags: - - 实用工具 -title: 简洁、安全、免费的静态网站评论系统 -description: 简洁、安全、免费的静态网站评论系统 -additionalProperties: - key: twikoo - name: Twikoo - tags: - - Tool - shortDescZh: 简洁、安全、免费的静态网站评论系统 - shortDescEn: A simple, safe, free comment system - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://twikoo.js.org - github: https://github.com/imaegoo/twikoo - document: https://twikoo.js.org - architectures: - - amd64 - - arm64 diff --git a/twikoo/logo.png b/twikoo/logo.png deleted file mode 100644 index 66bb11849..000000000 Binary files a/twikoo/logo.png and /dev/null differ diff --git a/typecho/1.2.1-php8.0-apache/data.yml b/typecho/1.2.1-php8.0-apache/data.yml deleted file mode 100755 index bae01b4d9..000000000 --- a/typecho/1.2.1-php8.0-apache/data.yml +++ /dev/null @@ -1,78 +0,0 @@ -additionalProperties: - formFields: - - child: - default: "" - envKey: PANEL_DB_HOST - required: true - type: service - default: mysql - envKey: PANEL_DB_TYPE - labelEn: Database Service - labelZh: 数据库服务 - required: true - type: apps - values: - - label: MySQL - value: mysql - - label: MariaDB - value: mariadb - - label: PostgreSQL - value: postgresql - - default: typecho - envKey: PANEL_DB_NAME - labelEn: Database - labelZh: 数据库名 - random: true - required: true - rule: paramCommon - type: text - - default: typecho - envKey: PANEL_DB_USER - labelEn: Database User - labelZh: 数据库用户 - random: true - required: true - rule: paramCommon - type: text - - default: typecho - envKey: PANEL_DB_USER_PASSWORD - labelEn: Database User Password - labelZh: 数据库用户密码 - random: true - required: true - type: password - - default: typecho - envKey: TYPECHO_USER_NAME - labelEn: User - labelZh: 管理员 - required: true - type: text - - default: typecho - envKey: TYPECHO_USER_PASSWORD - labelEn: Password - labelZh: 管理员密码 - required: true - type: text - - default: 8080 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number - - default: typecho@typecho.com - edit: true - envKey: TYPECHO_USER_MAIL - labelEn: User Email - labelZh: 用户邮箱 - required: true - type: text - - default: http://localhost:8080 - edit: true - envKey: TYPECHO_EXTERNAL_URL - labelEn: External URL - labelZh: 外部访问地址 - required: true - rule: paramExtUrl - type: text diff --git a/typecho/1.2.1-php8.0-apache/docker-compose.yml b/typecho/1.2.1-php8.0-apache/docker-compose.yml deleted file mode 100644 index 6cb05b024..000000000 --- a/typecho/1.2.1-php8.0-apache/docker-compose.yml +++ /dev/null @@ -1,28 +0,0 @@ -services: - typecho: - image: joyqi/typecho:1.2.1-php8.0-apache - container_name: ${CONTAINER_NAME} - restart: always - environment: - - TYPECHO_INSTALL=1 - - TYPECHO_DB_ADAPTER=${TYPECHO_DB_ADAPTER} - - TYPECHO_DB_HOST=${PANEL_DB_HOST} - - TYPECHO_DB_DATABASE=${PANEL_DB_NAME} - - TYPECHO_DB_PORT=${PANEL_DB_PORT} - - TYPECHO_DB_USER=${PANEL_DB_USER} - - TYPECHO_DB_PASSWORD=${PANEL_DB_USER_PASSWORD} - - TYPECHO_USER_NAME=${TYPECHO_USER_NAME} - - TYPECHO_USER_PASSWORD=${TYPECHO_USER_PASSWORD} - - TYPECHO_USER_MAIL=${TYPECHO_USER_MAIL} - - TYPECHO_SITE_URL=${TYPECHO_EXTERNAL_URL} - ports: - - ${PANEL_APP_PORT_HTTP}:80 - networks: - - 1panel-network - volumes: - - ./data:/app - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/typecho/1.2.1-php8.0-apache/scripts/init.sh b/typecho/1.2.1-php8.0-apache/scripts/init.sh deleted file mode 100644 index 6d4327c09..000000000 --- a/typecho/1.2.1-php8.0-apache/scripts/init.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash - -if [ -f ./.env ]; then - if grep -q "PANEL_DB_TYPE" ./.env; then - echo "PANEL_DB_TYPE 已存在" - else - echo 'PANEL_DB_TYPE="mysql"' >> ./.env - fi - - if grep -q "TYPECHO_DB_ADAPTER" ./.env; then - echo "TYPECHO_DB_ADAPTER 已存在" - else - PANEL_DB_TYPE_VALUE=$(grep -E '^PANEL_DB_TYPE=' ./.env | cut -d '=' -f 2) - - if [[ "$PANEL_DB_TYPE_VALUE" =~ mysql ]]; then - echo 'TYPECHO_DB_ADAPTER="Pdo_Mysql"' >> ./.env - elif [[ "$PANEL_DB_TYPE_VALUE" =~ mariadb ]]; then - echo 'TYPECHO_DB_ADAPTER="Pdo_Mysql"' >> ./.env - elif [[ "$PANEL_DB_TYPE_VALUE" =~ postgresql ]]; then - echo 'TYPECHO_DB_ADAPTER="Pdo_Pgsql"' >> ./.env - fi - fi -else - echo ".env 文件不存在" -fi \ No newline at end of file diff --git a/typecho/README.md b/typecho/README.md deleted file mode 100644 index 9571dfae1..000000000 --- a/typecho/README.md +++ /dev/null @@ -1,13 +0,0 @@ -# Typecho - -Typecho 是一款开源的博客系统,它具有轻量级、高效、易于安装和使用的特点。 - -## 主要功能: - -- **轻量级和快速**:Typecho 的核心设计是轻量级的,因此它运行迅速,占用的服务器资源较少。 -- **插件扩展**:Typecho支持插件扩展,用户可以根据需要安装和启用各种插件来增加博客的功能。 -- **主题定制**:用户可以选择并定制博客的主题,以使其外观与个人品味和需求相匹配。 -- **Markdown 支持**:Typecho内置支持Markdown语法,使用户能够使用Markdown来编写和格式化博文。 -- **标签和分类**:博客文章可以使用标签和分类来进行组织和归档,以方便读者浏览和检索相关内容。 -- **评论系统**:Typecho自带评论系统,用户可以允许读者在文章下方发表评论,并进行管理和审核。 -- **多用户支持**:支持多用户管理,适用于团队博客或多作者博客。 \ No newline at end of file diff --git a/typecho/data.yml b/typecho/data.yml deleted file mode 100644 index d950adef3..000000000 --- a/typecho/data.yml +++ /dev/null @@ -1,23 +0,0 @@ -name: Typecho -tags: - - 建站 -title: 基于 PHP 的博客软件 -description: 基于 PHP 的博客软件 -additionalProperties: - key: typecho - name: Typecho - tags: - - Website - shortDescZh: 基于 PHP 的博客软件 - shortDescEn: A PHP Blogging Platform. Simple and Powerful - type: website - crossVersionUpdate: true - limit: 0 - website: https://typecho.org/ - github: https://github.com/typecho/typecho - document: https://docs.typecho.org/doku.php - architectures: - - ppc64le - - s390x - - amd64 - - arm64 diff --git a/typecho/logo.png b/typecho/logo.png deleted file mode 100644 index 26917d6fc..000000000 Binary files a/typecho/logo.png and /dev/null differ diff --git a/umami/2.18.1/data.yml b/umami/2.18.1/data.yml index b1328eb83..538d98df3 100644 --- a/umami/2.18.1/data.yml +++ b/umami/2.18.1/data.yml @@ -25,6 +25,8 @@ additionalProperties: value: mysql - label: PostgreSQL value: postgresql + - label: MariaDB + value: mysql - default: umami envKey: PANEL_DB_NAME labelEn: Database @@ -75,6 +77,22 @@ additionalProperties: random: true required: true type: password + - default: redis + envKey: PANEL_REDIS_PASSWORD + labelEn: Redis Password + labelZh: Redis密码 + label: + en: Redis Password + ja: パスワード + ms: Kata Laluan + pt-br: Senha + ru: Пароль + ko: 비밀번호 + zh: Redis数据库用户密码 + zh-Hant: Redis數據庫用戶密碼 + random: true + required: true + type: password - default: 3000 envKey: PANEL_APP_PORT_HTTP labelEn: Port diff --git a/umami/2.18.1/docker-compose.yml b/umami/2.18.1/docker-compose.yml index 5b86a38ca..e7db61cfc 100644 --- a/umami/2.18.1/docker-compose.yml +++ b/umami/2.18.1/docker-compose.yml @@ -1,6 +1,6 @@ services: umami: - image: ghcr.io/umami-software/umami:${PANEL_DB_TYPE}-v2.18.1 + image: ghcr.430070.xyz/umami-software/umami:${PANEL_DB_TYPE}-v2.18.1 container_name: ${CONTAINER_NAME} restart: always labels: @@ -9,6 +9,7 @@ services: - ${PANEL_APP_PORT_HTTP}:3000 environment: DATABASE_TYPE: ${PANEL_DB_TYPE} + REDIS_URL: redis://:${PANEL_REDIS_PASSWORD}@Redis:6379 DATABASE_URL: ${PANEL_DB_TYPE}://${PANEL_DB_USER}:${PANEL_DB_USER_PASSWORD}@${PANEL_DB_HOST}:${PANEL_DB_PORT}/${PANEL_DB_NAME} APP_SECRET: ${HASH_SALT} networks: diff --git a/uptime-kuma/1.23.16/data.yml b/uptime-kuma/1.23.16/data.yml deleted file mode 100755 index 178b80b26..000000000 --- a/uptime-kuma/1.23.16/data.yml +++ /dev/null @@ -1,19 +0,0 @@ -additionalProperties: - formFields: - - default: 3001 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh-Hant: 埠 - zh: 端口 - required: true - rule: paramPort - type: number diff --git a/uptime-kuma/1.23.16/docker-compose.yml b/uptime-kuma/1.23.16/docker-compose.yml deleted file mode 100644 index b60b9d15c..000000000 --- a/uptime-kuma/1.23.16/docker-compose.yml +++ /dev/null @@ -1,16 +0,0 @@ -services: - uptime-kuma: - image: louislam/uptime-kuma:1.23.16 - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - volumes: - - ./data:/app/data - ports: - - ${PANEL_APP_PORT_HTTP}:3001 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/uptime-kuma/README.md b/uptime-kuma/README.md deleted file mode 100644 index ecf31b8b3..000000000 --- a/uptime-kuma/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# Uptime Kuma 功能简介 - -Uptime Kuma 是一款开源的服务器监控和状态检测工具,它帮助您跟踪服务器的可用性、性能和健康状态。 - -## 主要功能: - -### 服务器监控 - -- Uptime Kuma 可以监控多个服务器,包括 Web 服务器、数据库服务器、应用程序服务器等。 -- 它会定期发送请求来检查服务器的可用性,并记录响应时间和状态。 - -### 自定义检测 - -- 您可以配置自定义检测规则,以满足特定需求。例如,检测特定端口的开放状态或特定内容的存在。 -- 可以使用不同的协议(如HTTP、TCP、ICMP)进行检测。 - -### 通知和警报 - -- Uptime Kuma 可以配置通知和警报,以便在服务器状态异常时及时通知您。支持通知方式包括电子邮件、Slack、Webhook等。 -- 您可以设置阈值,当服务器响应时间超过或服务器不可用时,会触发警报。 - -### 历史记录和报告 - -- 工具会保存服务器的监控历史记录,以便您可以查看过去的性能和可用性数据。 -- 可以生成定期报告,帮助您分析服务器状态的趋势和模式。 - -### 用户友好的界面 - -- Uptime Kuma 提供直观的用户界面,使您可以轻松地配置监控和查看监控结果。 -- 支持多种语言和主题,以满足用户的个性化需求。 - -### 开源和扩展性 - -- Uptime Kuma 是开源的,可自由定制和扩展。您可以根据需要添加新的插件和功能。 -- 社区支持和活跃的开发者社区,确保工具的持续改进和更新。 \ No newline at end of file diff --git a/uptime-kuma/README_en.md b/uptime-kuma/README_en.md deleted file mode 100644 index 796aa1bd8..000000000 --- a/uptime-kuma/README_en.md +++ /dev/null @@ -1,36 +0,0 @@ -# Uptime Kuma - -Uptime Kuma is an open-source server monitoring and status checking tool that helps you track the availability, performance, and health status of your servers. - -## Main Features: - -### Server Monitoring - -- Monitor multiple servers, including web servers, database servers, and application servers. -- Regularly sends requests to check server availability, logging response times and statuses for real-time insights. - -### Custom Checks - -- Configure custom monitoring rules tailored to your needs, such as checking specific ports or validating the presence of particular content. -- Supports multiple protocols, including HTTP, TCP, and ICMP, to provide versatile monitoring options. - -### Notifications and Alerts - -- Set up notifications and alerts to be informed immediately when server issues occur. -- Supports various notification methods, such as email, Slack, and webhooks. -- Define thresholds for triggering alerts, such as downtime or exceeding response time limits. - -### Historical Data and Reporting - -- Keeps detailed logs of monitoring history, allowing you to review server performance and availability trends. -- Generate periodic reports to analyze server status patterns and optimize performance. - -### User-Friendly Interface - -- Features an intuitive and visually appealing interface for easy setup and monitoring. -- Offers multi-language support and customizable themes to meet user preferences. - -### Open Source and Extensible - -- As an open-source project, Uptime Kuma can be customized and extended to fit your specific requirements. -- Backed by a vibrant community and active development, ensuring continuous updates and feature improvements. diff --git a/uptime-kuma/data.yml b/uptime-kuma/data.yml deleted file mode 100755 index aa68cc816..000000000 --- a/uptime-kuma/data.yml +++ /dev/null @@ -1,32 +0,0 @@ -name: Uptime Kuma -tags: - - 实用工具 -title: 一款精美的自托管监控工具 -description: 一款精美的自托管监控工具 -additionalProperties: - key: uptime-kuma - name: Uptime Kuma - tags: - - Tool - shortDescZh: 一款精美的自托管监控工具 - shortDescEn: A fancy self-hosted monitoring tool - description: - en: A fancy self-hosted monitoring tool - ja: おしゃれなセルフホスト型の監視ツール - ms: Alat pemantauan self-hosted yang menarik - pt-br: Uma ferramenta de monitoramento auto-hospedada sofisticada - ru: Элегантный инструмент мониторинга с самостоятельным хостингом - ko: 멋진 자체 호스팅 모니터링 도구 - zh-hant: 一款精美的自託管監控工具 - zh: 一款精美的自托管监控工具 - type: website - crossVersionUpdate: false - limit: 0 - recommend: 0 - website: https://uptime.kuma.pet/ - github: https://github.com/louislam/uptime-kuma - document: https://github.com/louislam/uptime-kuma/wiki - architectures: - - amd64 - - arm/v7 - - arm64 diff --git a/uptime-kuma/logo.png b/uptime-kuma/logo.png deleted file mode 100644 index 54309bce0..000000000 Binary files a/uptime-kuma/logo.png and /dev/null differ diff --git a/uuwaf/6.8.0/data.yml b/uuwaf/6.8.0/data.yml deleted file mode 100644 index b23b2e218..000000000 --- a/uuwaf/6.8.0/data.yml +++ /dev/null @@ -1,25 +0,0 @@ -additionalProperties: - formFields: - - default: 80 - disabled: true - envKey: PANEL_APP_PORT_HTTP1 - labelEn: HTTP Port - labelZh: HTTP 端口 - required: true - type: number - - default: 443 - disabled: true - envKey: PANEL_APP_PORT_HTTPS2 - labelEn: HTTPS Port - labelZh: HTTPS 端口 - required: true - type: number - - default: 4443 - edit: true - envKey: PANEL_APP_PORT_HTTPS - labelEn: Port - labelZh: 面板端口 - required: true - rule: paramPort - type: number - diff --git a/uuwaf/6.8.0/docker-compose.yml b/uuwaf/6.8.0/docker-compose.yml deleted file mode 100644 index fe94050fd..000000000 --- a/uuwaf/6.8.0/docker-compose.yml +++ /dev/null @@ -1,43 +0,0 @@ -services: - uuwaf: - image: uusec/nanqiang:v6.8.0 - ulimits: - nproc: 65535 - nofile: - soft: 102400 - hard: 102400 - container_name: ${CONTAINER_NAME} - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_HTTP1}:80 - - ${PANEL_APP_PORT_HTTPS2}:443 - - ${PANEL_APP_PORT_HTTPS}:4443 - volumes: - - wafshared:/uuwaf - command: ["/run.sh"] - environment: - - TZ=Asia/Shanghai - - UUWAF_MYSQL_PASSWORD=Safe3.WAF - links: - - wafdb - depends_on: - - wafdb - wafdb: - image: percona:8 - container_name: ${CONTAINER_NAME}-db - networks: - - 1panel-network - volumes: - - wafshared:/docker-entrypoint-initdb.d - - wafdata:/var/lib/mysql - environment: - - TZ=Asia/Shanghai - - INIT_ROCKSDB - - MYSQL_ROOT_PASSWORD=Safe3.WAF -volumes: - wafshared: - wafdata: -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/uuwaf/6.8.0/scripts/uninstall.sh b/uuwaf/6.8.0/scripts/uninstall.sh deleted file mode 100644 index 1a62d5e58..000000000 --- a/uuwaf/6.8.0/scripts/uninstall.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -docker-compose down --volumes \ No newline at end of file diff --git a/uuwaf/README.md b/uuwaf/README.md deleted file mode 100644 index ae128fd87..000000000 --- a/uuwaf/README.md +++ /dev/null @@ -1,26 +0,0 @@ -# 南墙 - -**南墙** WEB 应用防火墙(简称:`uuWAF`)一款社区驱动的免费、高性能、高扩展顶级 Web 应用安全防护产品。 - -## **技术优势** - -- 先进语义引擎 - - 南墙采用业界领先的 `SQL、XSS、RCE、LFI` 4种基于语义分析的检测引擎,结合多种深度解码引擎可对 `base64、json、form-data` 等 HTTP 内容真实还原,从而有效抵御各种绕过 WAF 的攻击方式,并且相比传统正则匹配具备准确率高、误报率低、效率高等特点,管理员无需维护庞杂的规则库,即可拦截多种攻击类型。 - -- **智能 0day 防御** - - 南墙创新性的运用机器学习技术,使用**异常检测算法**对 http 正常与攻击流量进行区分识别,并对正常流量进行白名单威胁建模。通过**机器学习算法**自动学习正常流量中的参数特征,并转化成对应的参数白名单规则库,可以在面对各种突发 0day 漏洞时,无需添加规则即可拦截攻击,免除网站管理者一出现漏洞就需挑灯夜战升级的痛苦。 - -- **高级规则引擎** - - 南墙积极运用 `nginx` 和 `luajit` 的高性能、高灵活性特点,除了提供对普通用户友好性较好的传统规则创建模式,还提供了高扩展性、高灵活性的 lua 脚本规则编写功能,使得有一定编程功底的高级安全管理员可以创造出一系列传统 WAF 所不能实现的高级漏洞防护规则,用户可以编写一系列插件来扩展 WAF 现有功能。从而使得在拦截一些复杂漏洞时,可以更加得心应手。 - - -## 使用 - -1. 登录后台,访问https://wafip:4443 ,wafip 为安装南墙的服务器 ip,用户名 admin,密码 Passw0rd! -2. 添加站点,进入站点管理菜单,点击添加站点按钮,按提示添加站点域名与网站服务器ip -3. 添加证书,进入证书管理菜单,点击添加证书按钮,上传第二步中域名的https证书和私钥文件 -4. 将域名DNS的ip指向改为南墙服务器ip地址 -5. 访问站点域名查看网站是否能够访问 \ No newline at end of file diff --git a/uuwaf/data.yml b/uuwaf/data.yml deleted file mode 100644 index b05544e7b..000000000 --- a/uuwaf/data.yml +++ /dev/null @@ -1,21 +0,0 @@ -name: uuWAF -tags: - - 安全 -title: 南墙 WEB 应用防火墙 -description: 南墙 WEB 应用防火墙 -additionalProperties: - key: uuwaf - name: uuWAF - tags: - - Security - shortDescZh: 南墙 WEB 应用防火墙 - shortDescEn: NanQiang Web Application Firewall - type: website - crossVersionUpdate: true - limit: 1 - recommend: 0 - website: https://waf.uusec.com/#/ - github: https://github.com/Safe3/uuWAF - document: https://waf.uusec.com/#/?id=main - architectures: - - amd64 diff --git a/uuwaf/logo.png b/uuwaf/logo.png deleted file mode 100644 index f82ea82fd..000000000 Binary files a/uuwaf/logo.png and /dev/null differ diff --git a/verdaccio/6.1.4/data.yml b/verdaccio/6.1.4/data.yml deleted file mode 100644 index d68e300d0..000000000 --- a/verdaccio/6.1.4/data.yml +++ /dev/null @@ -1,19 +0,0 @@ -additionalProperties: - formFields: - - default: "40087" - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh: 端口 - zh-Hant: 埠 - required: true - rule: paramPort - type: number diff --git a/verdaccio/6.1.4/data/config/config.yaml b/verdaccio/6.1.4/data/config/config.yaml deleted file mode 100644 index 8a82cff7e..000000000 --- a/verdaccio/6.1.4/data/config/config.yaml +++ /dev/null @@ -1,203 +0,0 @@ -# -# This is the default configuration file. It allows all users to do anything, -# please read carefully the documentation and best practices to -# improve security. -# -# Do not configure host and port under `listen` in this file -# as it will be ignored when using docker. -# see https://verdaccio.org/docs/en/docker#docker-and-custom-port-configuration -# -# Look here for more config file examples: -# https://github.com/verdaccio/verdaccio/tree/5.x/conf -# -# Read about the best practices -# https://verdaccio.org/docs/best - -# path to a directory with all packages -storage: /verdaccio/storage/data -# path to a directory with plugins to include -plugins: /verdaccio/plugins - -# https://verdaccio.org/docs/webui -web: - title: Verdaccio - # comment out to disable gravatar support - # gravatar: false - # by default packages are ordercer ascendant (asc|desc) - # sort_packages: asc - # convert your UI to the dark side - # darkMode: true - # html_cache: true - # by default all features are displayed - # login: true - # showInfo: true - # showSettings: true - # In combination with darkMode you can force specific theme - # showThemeSwitch: true - # showFooter: true - # showSearch: true - # showRaw: true - # showDownloadTarball: true - # HTML tags injected after manifest - # scriptsBodyAfter: - # - '' - # HTML tags injected before ends - # metaScripts: - # - '' - # - '' - # - '' - # HTML tags injected first child at - # bodyBefore: - # - '
html before webpack scripts
' - # Public path for template manifest scripts (only manifest) - # publicPath: http://somedomain.org/ - -# https://verdaccio.org/docs/configuration#authentication -auth: - htpasswd: - file: /verdaccio/storage/htpasswd - # Maximum amount of users allowed to register, defaults to "+infinity". - # You can set this to -1 to disable registration. - # max_users: 1000 - # Hash algorithm, possible options are: "bcrypt", "md5", "sha1", "crypt". - # algorithm: bcrypt # by default is crypt, but is recommended use bcrypt for new installations - # Rounds number for "bcrypt", will be ignored for other algorithms. - # rounds: 10 - -# https://verdaccio.org/docs/configuration#uplinks -# a list of other known repositories we can talk to -uplinks: - npmjs: - url: https://registry.npmjs.org/ - -# Learn how to protect your packages -# https://verdaccio.org/docs/protect-your-dependencies/ -# https://verdaccio.org/docs/configuration#packages -packages: - '@*/*': - # scoped packages - access: $all - publish: $authenticated - unpublish: $authenticated - proxy: npmjs - - '**': - # allow all users (including non-authenticated users) to read and - # publish all packages - # - # you can specify usernames/groupnames (depending on your auth plugin) - # and three keywords: "$all", "$anonymous", "$authenticated" - access: $all - - # allow all known users to publish/publish packages - # (anyone can register by default, remember?) - publish: $authenticated - unpublish: $authenticated - - # if package is not available locally, proxy requests to 'npmjs' registry - proxy: npmjs - -# To improve your security configuration and avoid dependency confusion -# consider removing the proxy property for private packages -# https://verdaccio.org/docs/best#remove-proxy-to-increase-security-at-private-packages - -# https://verdaccio.org/docs/configuration#server -# You can specify HTTP/1.1 server keep alive timeout in seconds for incoming connections. -# A value of 0 makes the http server behave similarly to Node.js versions prior to 8.0.0, which did not have a keep-alive timeout. -# WORKAROUND: Through given configuration you can workaround following issue https://github.com/verdaccio/verdaccio/issues/301. Set to 0 in case 60 is not enough. -server: - keepAliveTimeout: 60 - # Allow `req.ip` to resolve properly when Verdaccio is behind a proxy or load-balancer - # See: https://expressjs.com/en/guide/behind-proxies.html - # trustProxy: '127.0.0.1' - -# https://verdaccio.org/docs/configuration#offline-publish -# publish: -# allow_offline: false - -# https://verdaccio.org/docs/configuration#url-prefix -# url_prefix: /verdaccio/ -# VERDACCIO_PUBLIC_URL='https://somedomain.org'; -# url_prefix: '/my_prefix' -# // url -> https://somedomain.org/my_prefix/ -# VERDACCIO_PUBLIC_URL='https://somedomain.org'; -# url_prefix: '/' -# // url -> https://somedomain.org/ -# VERDACCIO_PUBLIC_URL='https://somedomain.org/first_prefix'; -# url_prefix: '/second_prefix' -# // url -> https://somedomain.org/second_prefix/' - -# https://verdaccio.org/docs/configuration#security -# security: -# api: -# legacy: true -# # recomended set to true for older installations -# migrateToSecureLegacySignature: true -# jwt: -# sign: -# expiresIn: 29d -# verify: -# someProp: [value] -# web: -# sign: -# expiresIn: 1h # 1 hour by default -# verify: -# someProp: [value] - -# https://verdaccio.org/docs/configuration#user-rate-limit -# userRateLimit: -# windowMs: 50000 -# max: 1000 - -# https://verdaccio.org/docs/configuration#max-body-size -# max_body_size: 10mb - -# https://verdaccio.org/docs/configuration#listen-port -# listen: -# - localhost:4873 # default value -# - http://localhost:4873 # same thing -# - 0.0.0.0:4873 # listen on all addresses (INADDR_ANY) -# - https://example.org:4873 # if you want to use https -# - "[::1]:4873" # ipv6 -# - unix:/tmp/verdaccio.sock # unix socket - -# The HTTPS configuration is useful if you do not consider use a HTTP Proxy -# https://verdaccio.org/docs/configuration#https -# https: -# key: ./path/verdaccio-key.pem -# cert: ./path/verdaccio-cert.pem -# ca: ./path/verdaccio-csr.pem - -# https://verdaccio.org/docs/configuration#proxy -# http_proxy: http://something.local/ -# https_proxy: https://something.local/ - -# https://verdaccio.org/docs/configuration#notifications -# notify: -# method: POST -# headers: [{ "Content-Type": "application/json" }] -# endpoint: https://usagge.hipchat.com/v2/room/3729485/notification?auth_token=mySecretToken -# content: '{"color":"green","message":"New package published: * {{ name }}*","notify":true,"message_format":"text"}' - -middlewares: - audit: - enabled: true - -# https://verdaccio.org/docs/logger -# log settings -log: { type: stdout, format: pretty, level: http } -#experiments: -# # support for npm token command -# token: false -# # enable tarball URL redirect for hosting tarball with a different server, the tarball_url_redirect can be a template string -# tarball_url_redirect: 'https://mycdn.com/verdaccio/${packageName}/${filename}' -# # the tarball_url_redirect can be a function, takes packageName and filename and returns the url, when working with a js configuration file -# tarball_url_redirect(packageName, filename) { -# const signedUrl = // generate a signed url -# return signedUrl; -# } - -# translate your registry, api i18n not available yet -# i18n: -# list of the available translations https://github.com/verdaccio/verdaccio/blob/master/packages/plugins/ui-theme/src/i18n/ABOUT_TRANSLATIONS.md -# web: en-US \ No newline at end of file diff --git a/verdaccio/6.1.4/data/plugins/.gitkeep b/verdaccio/6.1.4/data/plugins/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/verdaccio/6.1.4/data/storage/.gitkeep b/verdaccio/6.1.4/data/storage/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/verdaccio/6.1.4/docker-compose.yml b/verdaccio/6.1.4/docker-compose.yml deleted file mode 100644 index 65dc4367a..000000000 --- a/verdaccio/6.1.4/docker-compose.yml +++ /dev/null @@ -1,20 +0,0 @@ -services: - verdaccio: - image: verdaccio/verdaccio:6.1.4 - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - environment: - - VERDACCIO_PORT=${PANEL_APP_PORT_HTTP} - ports: - - ${PANEL_APP_PORT_HTTP}:${PANEL_APP_PORT_HTTP} - volumes: - - ./data/storage:/verdaccio/storage - - ./data/config:/verdaccio/conf - - ./data/plugins:/verdaccio/plugins - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/verdaccio/6.1.4/scripts/init.sh b/verdaccio/6.1.4/scripts/init.sh deleted file mode 100644 index 44a563b22..000000000 --- a/verdaccio/6.1.4/scripts/init.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -chown -R 10001:65533 data \ No newline at end of file diff --git a/verdaccio/README.md b/verdaccio/README.md deleted file mode 100644 index 66846fcc1..000000000 --- a/verdaccio/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Verdaccio - -**Verdaccio** 是一个简单的、**无需配置的本地私有 npm 注册表**。无需整个数据库即可开始使用!Verdaccio 开箱即用,带有 **自己的小型数据库**,并能够代理其他注册表(例如 npmjs.org),一路缓存下载的模块。对于那些希望扩展存储功能的用户,Verdaccio **支持各种社区制作的插件,可挂接 Amazon 的 s3、Google Cloud Storage 等服务**或创建您自己的插件。 diff --git a/verdaccio/README_en.md b/verdaccio/README_en.md deleted file mode 100644 index 1844f54e1..000000000 --- a/verdaccio/README_en.md +++ /dev/null @@ -1,3 +0,0 @@ -# Verdaccio - -**Verdaccio** is a simple, **zero-configuration local private npm registry**. You can start using it without needing a full database! Verdaccio works out of the box with **its own lightweight database** and can proxy other registries (e.g., npmjs.org), caching downloaded modules along the way. For users who want to extend storage capabilities, Verdaccio **supports various community-made plugins to integrate with services like Amazon S3, Google Cloud Storage, etc., or you can create your own plugins**. \ No newline at end of file diff --git a/verdaccio/data.yml b/verdaccio/data.yml deleted file mode 100644 index 9fedef79e..000000000 --- a/verdaccio/data.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: Verdaccio -tags: - - DevOps -title: 本地私有 NPM 注册中心 -description: 本地私有 NPM 注册中心 -additionalProperties: - key: verdaccio - name: Verdaccio - tags: - - DevOps - shortDescZh: 本地私有 NPM 注册中心 - shortDescEn: local private NPM registry - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://verdaccio.org/ - github: https://github.com/verdaccio/verdaccio - document: https://verdaccio.org/docs/what-is-verdaccio - description: - en: Local private NPM registry - zh: 本地私有 NPM 注册中心 - zh-Hant: 本地私有 NPM 註冊中心 - ja: ローカルプライベート NPM レジストリ - ms: Pendaftaran NPM persendirian tempatan - pt-br: Registro NPM privado local - ru: Локальный частный реестр NPM - ko: 로컬 개인 NPM 레지스트리 - architectures: - - amd64 - - arm64 \ No newline at end of file diff --git a/verdaccio/logo.png b/verdaccio/logo.png deleted file mode 100644 index 1be3a3c2c..000000000 Binary files a/verdaccio/logo.png and /dev/null differ diff --git a/vllm/0.9.1/data.yml b/vllm/0.9.1/data.yml deleted file mode 100644 index 33a27db5c..000000000 --- a/vllm/0.9.1/data.yml +++ /dev/null @@ -1,51 +0,0 @@ -additionalProperties: - formFields: - - default: 8800 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - zh-Hant: 埠 - zh: 端口 - ko: 포트 - - default: "" - edit: true - envKey: HUGGING_FACE_HUB_TOKEN - labelEn: Hugging Face Token - labelZh: Hugging Face Token - required: true - type: text - label: - en: Hugging Face Token - ja: Hugging Face Token - ms: Hugging Face Token - pt-br: Hugging Face Token - ru: Hugging Face Token - zh-Hant: Hugging Face Token - zh: Hugging Face Token - ko: Hugging Face Token - - default: facebook/opt-125m - edit: true - envKey: MODEL - labelEn: 模型 - labelZh: Model - required: true - type: text - label: - en: Model - ja: モデル - ms: Model - pt-br: Modelo - ru: Модель - zh-Hant: 模型 - zh: Model - ko: 모델 \ No newline at end of file diff --git a/vllm/0.9.1/docker-compose.yml b/vllm/0.9.1/docker-compose.yml deleted file mode 100644 index f00497ac4..000000000 --- a/vllm/0.9.1/docker-compose.yml +++ /dev/null @@ -1,27 +0,0 @@ -services: - vllm: - image: vllm/vllm-openai:v0.9.1 - container_name: ${CONTAINER_NAME} - restart: always - runtime: nvidia - deploy: - resources: - reservations: - devices: - - driver: nvidia - count: all - capabilities: [gpu] - networks: - - 1panel-network - volumes: - - ./cache/huggingface:/root/.cache/huggingface - environment: - HUGGING_FACE_HUB_TOKEN: ${HUGGING_FACE_HUB_TOKEN} - HF_ENDPOINT: https://hf-mirror.com - ports: - - ${PANEL_APP_PORT_HTTP}:8000 - ipc: host - command: --model ${MODEL} -networks: - 1panel-network: - external: true diff --git a/vllm/README.md b/vllm/README.md deleted file mode 100644 index e22e0bc9e..000000000 --- a/vllm/README.md +++ /dev/null @@ -1,49 +0,0 @@ -## 使用说明 -1. 在 https://huggingface.co/ 注册账号并获取模型权限创建 token -2. 机器上有 Nvidia GPU -3. 修改 /etc/docker/daemon.json 并增加 -``` - "runtimes": { - "nvidia": { - "path": "nvidia-container-runtime", - "runtimeArgs": [] - } - } -``` -4. 安装 nvidia-container-runtime 和 nvidia-docker2 组件 - - -## About -vLLM is a fast and easy-to-use library for LLM inference and serving. - -vLLM is fast with: - -- State-of-the-art serving throughput -- Efficient management of attention key and value memory with **PagedAttention** -- Continuous batching of incoming requests -- Fast model execution with CUDA/HIP graph -- Quantizations: [GPTQ](https://arxiv.org/abs/2210.17323), [AWQ](https://arxiv.org/abs/2306.00978), INT4, INT8, and FP8. -- Optimized CUDA kernels, including integration with FlashAttention and FlashInfer. -- Speculative decoding -- Chunked prefill - -**Performance benchmark**: We include a [performance benchmark](https://buildkite.com/vllm/performance-benchmark/builds/4068) that compares the performance of vLLM against other LLM serving engines ([TensorRT-LLM](https://github.com/NVIDIA/TensorRT-LLM), [text-generation-inference](https://github.com/huggingface/text-generation-inference) and [lmdeploy](https://github.com/InternLM/lmdeploy)). - -vLLM is flexible and easy to use with: - -- Seamless integration with popular Hugging Face models -- High-throughput serving with various decoding algorithms, including *parallel sampling*, *beam search*, and more -- Tensor parallelism and pipeline parallelism support for distributed inference -- Streaming outputs -- OpenAI-compatible API server -- Support NVIDIA GPUs, AMD CPUs and GPUs, Intel CPUs and GPUs, PowerPC CPUs, TPU, and AWS Neuron. -- Prefix caching support -- Multi-lora support - -vLLM seamlessly supports most popular open-source models on HuggingFace, including: -- Transformer-like LLMs (e.g., Llama) -- Mixture-of-Expert LLMs (e.g., Mixtral) -- Embedding Models (e.g. E5-Mistral) -- Multi-modal LLMs (e.g., LLaVA) - -Find the full list of supported models [here](https://docs.vllm.ai/en/latest/models/supported_models.html). \ No newline at end of file diff --git a/vllm/README_en.md b/vllm/README_en.md deleted file mode 100644 index 49926969a..000000000 --- a/vllm/README_en.md +++ /dev/null @@ -1,49 +0,0 @@ -## 使用说明 -1. Register an account at https://huggingface.co/ and get model access to create a token. -2. Ensure the machine has an Nvidia GPU. -3. Modify the /etc/docker/daemon.json file and add: -``` - "runtimes": { - "nvidia": { - "path": "nvidia-container-runtime", - "runtimeArgs": [] - } - } -``` -4. Install the nvidia-container-runtime and nvidia-docker2 components. - - -## About -vLLM is a fast and easy-to-use library for LLM inference and serving. - -vLLM is fast with: - -- State-of-the-art serving throughput -- Efficient management of attention key and value memory with **PagedAttention** -- Continuous batching of incoming requests -- Fast model execution with CUDA/HIP graph -- Quantizations: [GPTQ](https://arxiv.org/abs/2210.17323), [AWQ](https://arxiv.org/abs/2306.00978), INT4, INT8, and FP8. -- Optimized CUDA kernels, including integration with FlashAttention and FlashInfer. -- Speculative decoding -- Chunked prefill - -**Performance benchmark**: We include a [performance benchmark](https://buildkite.com/vllm/performance-benchmark/builds/4068) that compares the performance of vLLM against other LLM serving engines ([TensorRT-LLM](https://github.com/NVIDIA/TensorRT-LLM), [text-generation-inference](https://github.com/huggingface/text-generation-inference) and [lmdeploy](https://github.com/InternLM/lmdeploy)). - -vLLM is flexible and easy to use with: - -- Seamless integration with popular Hugging Face models -- High-throughput serving with various decoding algorithms, including *parallel sampling*, *beam search*, and more -- Tensor parallelism and pipeline parallelism support for distributed inference -- Streaming outputs -- OpenAI-compatible API server -- Support NVIDIA GPUs, AMD CPUs and GPUs, Intel CPUs and GPUs, PowerPC CPUs, TPU, and AWS Neuron. -- Prefix caching support -- Multi-lora support - -vLLM seamlessly supports most popular open-source models on HuggingFace, including: -- Transformer-like LLMs (e.g., Llama) -- Mixture-of-Expert LLMs (e.g., Mixtral) -- Embedding Models (e.g. E5-Mistral) -- Multi-modal LLMs (e.g., LLaVA) - -Find the full list of supported models [here](https://docs.vllm.ai/en/latest/models/supported_models.html). \ No newline at end of file diff --git a/vllm/data.yml b/vllm/data.yml deleted file mode 100644 index b66e85026..000000000 --- a/vllm/data.yml +++ /dev/null @@ -1,32 +0,0 @@ -name: vLLM -tags: - - AI / 大模型 -title: 用于大语言模型的高吞吐量和内存高效的推理和服务引擎 -description: 用于大语言模型的高吞吐量和内存高效的推理和服务引擎 -additionalProperties: - key: vllm - name: vLLM - tags: - - AI - shortDescZh: 用于大语言模型的高吞吐量和内存高效的推理和服务引擎 - shortDescEn: A high-throughput and memory-efficient inference and serving engine for LLMs - description: - en: A high-throughput and memory-efficient inference and serving engine for LLMs - ja: 大規模言語モデル向けの高スループットでメモリ効率の良い推論およびサービスエンジン - ms: Enjin inferens dan perkhidmatan yang cekap memori dan berkapasiti tinggi untuk LLM - pt-br: Motor de inferência e serviço eficiente em memória e de alto rendimento para LLMs - ru: Высокопроизводительный и эффективный по памяти движок вывода и обслуживания для LLM - zh-Hant: 用於大語言模型的高吞吐量和內存高效的推理和服務引擎 - zh: 用于大语言模型的高吞吐量和内存高效的推理和服务引擎 - ko: 대형 언어 모델을 위한 고 처리량 및 메모리 효율적 추론 및 서비스 엔진 - type: tool - crossVersionUpdate: true - limit: 0 - recommend: 71 - website: https://github.com/vllm-project/vllm - github: https://github.com/vllm-project/vllm - document: https://docs.vllm.ai/en/latest/ - gpuSupport: true - memoryRequired: 4096 - architectures: - - amd64 diff --git a/vllm/logo.png b/vllm/logo.png deleted file mode 100644 index a8fe10f3b..000000000 Binary files a/vllm/logo.png and /dev/null differ diff --git a/waline/1.32.3/data.yml b/waline/1.32.3/data.yml deleted file mode 100644 index dabf7532c..000000000 --- a/waline/1.32.3/data.yml +++ /dev/null @@ -1,60 +0,0 @@ -additionalProperties: - formFields: - - default: "8360" - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number - - default: "Asia/Shanghai" - envKey: TZ - labelEn: Time Zone - labelZh: 时区 - required: true - type: text - - default: "Ep1sH0AEw128" - envKey: JWT_TOKEN - labelEn: JWT Token - labelZh: 用户登录密钥 - random: true - required: true - rule: paramComplexity - type: password - - default: "false" - envKey: COMMENT_AUDIT - labelEn: Comment Audit - labelZh: 开启评论审核 - required: true - type: select - values: - - label: 是 - value: "true" - - label: 否 - value: "false" - - default: "" - envKey: AUTHOR_EMAIL - labelEn: Author Email - labelZh: 作者邮箱 - required: false - type: text - - default: "" - envKey: SITE_NAME - labelEn: Site Name - labelZh: 博客名称 - required: false - type: text - - default: "" - envKey: SITE_URL - labelEn: Site Url - labelZh: 博客地址 - required: false - rule: paramHttp - type: text - - default: "" - envKey: SECURE_DOMAINS - labelEn: Secure Domains - labelZh: 安全域名 - required: false - type: text \ No newline at end of file diff --git a/waline/1.32.3/data/waline.sqlite b/waline/1.32.3/data/waline.sqlite deleted file mode 100644 index 8dee510f1..000000000 Binary files a/waline/1.32.3/data/waline.sqlite and /dev/null differ diff --git a/waline/1.32.3/docker-compose.yml b/waline/1.32.3/docker-compose.yml deleted file mode 100644 index 6207563b0..000000000 --- a/waline/1.32.3/docker-compose.yml +++ /dev/null @@ -1,25 +0,0 @@ -services: - waline: - image: lizheming/waline:1.32.3 - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - volumes: - - ./data:/app/data - ports: - - ${PANEL_APP_PORT_HTTP}:8360 - environment: - - SQLITE_PATH=/app/data - - TZ=${TZ} - - JWT_TOKEN=${JWT_TOKEN} - - COMMENT_AUDIT=${COMMENT_AUDIT} - - AUTHOR_EMAIL=${AUTHOR_EMAIL} - - SITE_NAME=${SITE_NAME} - - SITE_URL=${SITE_URL} - - SECURE_DOMAINS=${SECURE_DOMAINS} - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/waline/README.md b/waline/README.md deleted file mode 100644 index 3019319d6..000000000 --- a/waline/README.md +++ /dev/null @@ -1,15 +0,0 @@ -# Waline - -**Waline** 是一款简洁、安全的评论系统。 - -## 参数说明 - -| 变量名称 | 必填 | 默认值 | 备注 | -| :------: | :---: | :---: | :--- | -| 时区
`Time Zone` | ✅ | `Asia/Shanghai` | 参考:[Wikipedia](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) | -| 用户登录密钥
`JWT Token` | ✅ | 随机生成 | 使用默认值即可 | -| 开启评论审核
`Comment Audit` | ✅ | `false` | 开启后评论需要经过管理员审核后才能显示 | -| 作者邮箱
`Author Email` | | | 示例: `author@example.com` | -| 博客名称
`Site Name` | | | 示例: `My Blog Site Name` | -| 博客地址
`Site Url` | | | 示例: `https://myblog.example.com` | -| 安全域名
`Secure Domains` | | | 示例: `myblog.example.com`
配置时安全域名需要同时配置博客名称和地址
多个域名使用英文逗号分隔 | \ No newline at end of file diff --git a/waline/data.yml b/waline/data.yml deleted file mode 100644 index 6b64f181d..000000000 --- a/waline/data.yml +++ /dev/null @@ -1,22 +0,0 @@ -name: Waline -tags: - - 实用工具 -title: 一款简洁、安全的评论系统 -description: 一款简洁、安全的评论系统 -additionalProperties: - key: waline - name: Waline - tags: - - Tool - shortDescZh: 一款简洁、安全的评论系统 - shortDescEn: A Simple, Safe Comment System - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://waline.js.org/ - github: https://github.com/walinejs/waline - document: https://waline.js.org/guide/get-started/ - architectures: - - amd64 - - arm64 diff --git a/waline/logo.png b/waline/logo.png deleted file mode 100644 index eb1f94097..000000000 Binary files a/waline/logo.png and /dev/null differ diff --git a/watchtower/1.5.3/data.yml b/watchtower/1.5.3/data.yml deleted file mode 100755 index 0766e52c9..000000000 --- a/watchtower/1.5.3/data.yml +++ /dev/null @@ -1,34 +0,0 @@ -additionalProperties: - formFields: - - default: WATCHTOWER_NO_STARTUP_MESSAGE - edit: true - envKey: ENV1 - labelEn: Environmental parameters (split by ;) - labelZh: 环境参数(以;分割) - label: - en: Environmental parameters (split by ;) - ja: 環境パラメータ(分割) - ms: Parameter persekitaran (pisahkan dengan ;) - pt-br: Parâmetros ambientais (divididos por ;) - ru: Параметры среды (разделенные ;) - ko: 환경 매개변수(구분 기호로 나누기) - zh: 环境参数(以;分割) - zh-Hant: 環境參數(以;分割) - required: true - type: text - - default: --interval 3600 --cleanup - edit: true - envKey: COMMAND1 - labelEn: Command arguments (space-separated, single quotes not supported) - labelZh: 命令参数(以空格分隔,不支持单引号) - label: - en: Command arguments (space-separated, single quotes not supported) - ja: コマンド引数(スペースで区切り、シングルクォートはサポートされていません) - ms: Argumen perintah (dipisahkan dengan ruang, tanda petik tunggal tidak disokong) - pt-br: Argumentos de comando (separados por espaço, aspas simples não suportadas) - ru: Аргументы команды (разделенные пробелами, одинарные кавычки не поддерживаются) - ko: 명령 인수(공백으로 구분, 작은따옴표는 지원하지 않음) - zh: 命令参数(以空格分隔,不支持单引号) - zh-Hant: 命令參數(以空格分隔,不支持單引號) - required: true - type: text diff --git a/watchtower/1.5.3/docker-compose.yml b/watchtower/1.5.3/docker-compose.yml deleted file mode 100644 index 840d2dc35..000000000 --- a/watchtower/1.5.3/docker-compose.yml +++ /dev/null @@ -1,18 +0,0 @@ -services: - watchtower: - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - volumes: - - /var/run/docker.sock:/var/run/docker.sock - environment: - - TZ=Asia/Shanghai - - ${ENV1} - command: ${COMMAND1} - image: containrrr/watchtower - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/watchtower/README.md b/watchtower/README.md deleted file mode 100644 index 0821ffdc3..000000000 --- a/watchtower/README.md +++ /dev/null @@ -1,12 +0,0 @@ -# Watchtower - -Watchtower 是一个用于自动更新 Docker 容器的开源工具。它能够检测您运行的 Docker 容器是否有新版本可用,并自动更新这些容器,从而帮助您保持容器应用程序的安全性和稳定性。 - -## 主要功能: - -- **自动容器更新**:Watchtower 可以定期检查 Docker Hub 或者其他容器仓库中的镜像,如果发现新版本,它将自动下载新的镜像并更新正在运行的容器。 -- **定期检查**:您可以配置 Watchtower 以定期检查容器,以确保容器始终处于最新状态。您可以设置检查的时间间隔。 -- **邮件通知**:Watchtower 可以配置为在更新容器时发送邮件通知,以便您及时了解容器的变化情况。 -- **灵活性**:您可以选择性地排除某些容器不受自动更新的影响,以满足特定需求。 -- **日志记录**:Watchtower 会记录容器更新的日志,以便您可以随时查看更新历史。 -- **支持多种容器仓库**:除了 Docker Hub,Watchtower 还支持其他容器仓库,因此您可以使用自己喜欢的容器镜像。 \ No newline at end of file diff --git a/watchtower/README_en.md b/watchtower/README_en.md deleted file mode 100644 index 9eb67eb4e..000000000 --- a/watchtower/README_en.md +++ /dev/null @@ -1,10 +0,0 @@ -# Watchtower -Watchtower is an open-source tool for automatically updating Docker containers. It detects whether new versions of the Docker containers you are running are available and automatically updates them, helping to maintain the security and stability of containerized applications. - -## Key Features: -- **Automatic Container Updates**: Watchtower periodically checks Docker Hub or other container registries for updated images. If a new version is found, it automatically downloads the new image and updates the running container. -- **Scheduled Checks**: Configure Watchtower to periodically check containers to ensure they are always up-to-date. You can set the time interval for checks. -- **Email Notifications**: Watchtower can be configured to send email notifications when containers are updated, keeping you informed of changes. -- **Flexibility**: Exclude specific containers from automatic updates to meet particular requirements. -- **Logging**: Watchtower logs container updates, allowing you to review the update history at any time. -- **Support for Multiple Container Registries**: In addition to Docker Hub, Watchtower supports other container registries, enabling you to use your preferred container images. \ No newline at end of file diff --git a/watchtower/data.yml b/watchtower/data.yml deleted file mode 100755 index 84e31bb59..000000000 --- a/watchtower/data.yml +++ /dev/null @@ -1,32 +0,0 @@ -name: watchtower -tags: - - 实用工具 -title: 自动更新 Docker 容器基础镜像的工具 -description: 自动更新 Docker 容器基础镜像的工具 -additionalProperties: - key: watchtower - name: watchtower - tags: - - Tool - shortDescZh: 自动更新 Docker 容器基础镜像的工具 - shortDescEn: Tool to automatically update Docker container base images - type: tool - crossVersionUpdate: false - limit: 1 - recommend: 0 - website: https://github.com/containrrr/watchtower - github: https://github.com/containrrr/watchtower - document: https://containrrr.dev/watchtower/ - description: - en: Tool to automatically update Docker container base images - zh: 自动更新 Docker 容器基础镜像的工具 - zh-Hant: 自動更新 Docker 容器基礎鏡像的工具 - ja: Docker コンテナのベースイメージを自動更新するツール - ms: Alat untuk mengemas kini imej asas kontena Docker secara automatik - pt-br: Ferramenta para atualizar automaticamente as imagens base dos contêineres Docker - ru: Инструмент для автоматического обновления базовых образов контейнеров Docker - ko: Docker 컨테이너 기본 이미지를 자동으로 업데이트하는 도구 - architectures: - - amd64 - - arm64 - - arm/v6 diff --git a/watchtower/logo.png b/watchtower/logo.png deleted file mode 100644 index cd5ef5276..000000000 Binary files a/watchtower/logo.png and /dev/null differ diff --git a/web-check/1.0.0/data.yml b/web-check/1.0.0/data.yml deleted file mode 100644 index bf6714c48..000000000 --- a/web-check/1.0.0/data.yml +++ /dev/null @@ -1,19 +0,0 @@ -additionalProperties: - formFields: - - default: 40095 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh: 端口 - zh-Hant: 埠 - required: true - rule: paramPort - type: number diff --git a/web-check/1.0.0/docker-compose.yml b/web-check/1.0.0/docker-compose.yml deleted file mode 100644 index cba4bc903..000000000 --- a/web-check/1.0.0/docker-compose.yml +++ /dev/null @@ -1,14 +0,0 @@ -services: - web-check: - container_name: ${CONTAINER_NAME} - image: lissy93/web-check:1.0.0 - restart: always - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_HTTP}:3000 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/web-check/README.md b/web-check/README.md deleted file mode 100644 index 83778d0f9..000000000 --- a/web-check/README.md +++ /dev/null @@ -1,13 +0,0 @@ -# web-check - -`web-check` 是一个用于自动化检查和监控 Web 应用程序的工具。它可以用于验证网站的可用性、性能和内容的一致性,并在检测到问题时发出警报。 - -## 特征: - -1. **可用性监控**:持续监控网站的可用性,确保网站在用户访问时是可用的。 -2. **性能监控**:测量网站的加载时间和响应时间,帮助识别性能瓶颈。 -3. **内容验证**:检查页面内容的一致性,确保关键元素和文本始终按预期显示。 -4. **警报通知**:在检测到问题时,通过邮件、短信或其他通知方式发出警报。 -5. **易于配置**:通过简单的配置文件设置监控参数,无需复杂的编码。 -6. **可扩展性**:支持插件和自定义脚本,满足特定的监控需求。 -7. **报告生成**:生成详细的监控报告,帮助分析和追踪问题。 diff --git a/web-check/README_en.md b/web-check/README_en.md deleted file mode 100644 index 24df3c743..000000000 --- a/web-check/README_en.md +++ /dev/null @@ -1,11 +0,0 @@ -# web-check -`web-check` is a tool for automating the checking and monitoring of web applications. It can be used to verify website availability, performance, and content consistency, and it sends alerts when issues are detected. - -## Features: -1. **Availability Monitoring**: Continuously monitors website availability to ensure the site is accessible to users. -2. **Performance Monitoring**: Measures website load times and response times to help identify performance bottlenecks. -3. **Content Validation**: Checks the consistency of page content to ensure key elements and text are displayed as expected. -4. **Alert Notifications**: Sends alerts via email, SMS, or other notification methods when issues are detected. -5. **Easy Configuration**: Allows monitoring parameters to be set through a simple configuration file without complex coding. -6. **Extensibility**: Supports plugins and custom scripts to meet specific monitoring needs. -7. **Report Generation**: Generates detailed monitoring reports to help analyze and track issues. \ No newline at end of file diff --git a/web-check/data.yml b/web-check/data.yml deleted file mode 100644 index 5a885dd59..000000000 --- a/web-check/data.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: Web-Check -tags: - - 实用工具 -title: 用于分析任何网站的多合一 OSINT 工具 -description: 用于分析任何网站的多合一 OSINT 工具 -additionalProperties: - key: web-check - name: Web-Check - tags: - - Tool - shortDescZh: 用于分析任何网站的多合一 OSINT 工具 - shortDescEn: All-in-one OSINT tool for analysing any website - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://web-check.xyz/ - github: https://github.com/lissy93/web-check - document: https://github.com/lissy93/web-check - description: - en: All-in-one OSINT tool for analysing any website - zh: 用于分析任何网站的多合一 OSINT 工具 - zh-Hant: 用於分析任何網站的多合一 OSINT 工具 - ja: 任意のウェブサイトを分析するためのオールインワン OSINT ツール - ms: Alat OSINT serba guna untuk menganalisis mana-mana laman web - pt-br: Ferramenta OSINT tudo-em-um para analisar qualquer site - ru: Универсальный инструмент OSINT для анализа любого веб-сайта - ko: 모든 웹사이트를 분석하기 위한 올인원 OSINT 도구 - architectures: - - amd64 - - arm64 diff --git a/web-check/logo.png b/web-check/logo.png deleted file mode 100644 index 3f0acf176..000000000 Binary files a/web-check/logo.png and /dev/null differ diff --git a/wikijs/2.5.307/data.yml b/wikijs/2.5.307/data.yml deleted file mode 100755 index 38ca070af..000000000 --- a/wikijs/2.5.307/data.yml +++ /dev/null @@ -1,96 +0,0 @@ -additionalProperties: - formFields: - - default: mysql - envKey: PANEL_DB_TYPE - labelEn: Database Service - labelZh: 数据库服务 - label: - en: Database Service - ja: データベースサービス - ms: Perkhidmatan Pangkalan Data - pt-br: Serviço de Banco de Dados - ru: Сервис базы данных - ko: 데이터베이스 서비스 - zh: 数据库服务 - zh-Hant: 數據庫 服務 - required: true - type: apps - child: - default: "" - envKey: PANEL_DB_HOST - required: true - type: service - values: - - label: MySQL - value: mysql - - label: MariaDB - value: mariadb - - label: PostgreSQL - value: postgres - - default: wiki - envKey: PANEL_DB_NAME - labelEn: Database - labelZh: 数据库名 - label: - en: Database - ja: データベース - ms: Pangkalan Data - pt-br: Banco de Dados - ru: База данных - ko: 데이터베이스 - zh: 数据库名 - zh-Hant: 數據庫名 - random: true - required: true - rule: paramCommon - type: text - - default: wikijs - envKey: PANEL_DB_USER - labelEn: User - labelZh: 数据库用户 - label: - en: User - ja: ユーザー - ms: Pengguna - pt-br: Usuário - ru: Пользователь - ko: 사용자 - zh: 数据库用户 - zh-Hant: 數據庫用戶 - random: true - required: true - rule: paramCommon - type: text - - default: wikijsrocks - envKey: PANEL_DB_USER_PASSWORD - labelEn: Password - labelZh: 数据库用户密码 - label: - en: Password - ja: パスワード - ms: Kata Laluan - pt-br: Senha - ru: Пароль - ko: 비밀번호 - zh: 数据库用户密码 - zh-Hant: 數據庫用戶密碼 - random: true - required: true - type: password - - default: 3000 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh: 端口 - zh-Hant: 埠 - required: true - rule: paramPort - type: number diff --git a/wikijs/2.5.307/docker-compose.yml b/wikijs/2.5.307/docker-compose.yml deleted file mode 100644 index 01d396b17..000000000 --- a/wikijs/2.5.307/docker-compose.yml +++ /dev/null @@ -1,21 +0,0 @@ -services: - wiki: - image: requarks/wiki:2.5.307 - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_HTTP}:3000 - environment: - DB_TYPE: ${PANEL_DB_TYPE} - DB_HOST: ${PANEL_DB_HOST} - DB_PORT: ${PANEL_DB_PORT} - DB_USER: ${PANEL_DB_USER} - DB_PASS: ${PANEL_DB_USER_PASSWORD} - DB_NAME: ${PANEL_DB_NAME} - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/wikijs/README.md b/wikijs/README.md deleted file mode 100644 index ed8c2ad19..000000000 --- a/wikijs/README.md +++ /dev/null @@ -1,15 +0,0 @@ -# Wiki.js - -Wiki.js 是一个用于创建和管理文档、知识库和维基站点的开源软件。它允许用户使用Markdown语法来撰写和组织内容。 - -## 主要功能: - -- **Markdown编辑器**:Wiki.js提供了一个内置的Markdown编辑器,使用户能够以简单且直观的方式编写和格式化文档。Markdown语法支持标题、列表、链接、图像、引用等基本元素。 -- **版本控制**:Wiki.js 提供版本控制功能,允许多个作者协作编辑文档,并记录每个更改,以便回滚到以前的版本或查看历史更改记录。 -- **用户和权限管理**:您可以创建多个用户账户,并为每个用户分配不同的权限级别,以控制他们对文档的访问和编辑权限。 -- **搜索功能**:Wiki.js 具有强大的搜索功能,可以帮助用户快速找到所需的文档或信息。 -- **标签和分类**:您可以为文档添加标签和分类,以帮助组织和分类内容,使其易于浏览和导航。 -- **自定义主题**:Wiki.js 允许您自定义站点的外观和感觉,以满足您的品牌需求,并提供可自定义的主题选项。 -- **插件支持**:Wiki.js 支持插件系统,可以扩展其功能,添加各种额外功能,如集成第三方服务、导出文档等。 -- **跨平台**:Wiki.js 支持多个操作系统,包括Windows、macOS和Linux,使您可以在不同的环境中部署和运行。 -- **多语言支持**:Wiki.js 支持多语言内容,可以创建多语言的文档和知识库。 \ No newline at end of file diff --git a/wikijs/README_en.md b/wikijs/README_en.md deleted file mode 100644 index e51b3d3b5..000000000 --- a/wikijs/README_en.md +++ /dev/null @@ -1,13 +0,0 @@ -# Wiki.js -Wiki.js is open-source software for creating and managing documentation, knowledge bases, and wiki sites. It allows users to write and organize content using Markdown syntax. - -## Key Features: -- **Markdown Editor**: Wiki.js provides a built-in Markdown editor, enabling users to write and format documents in a simple and intuitive way. Markdown syntax supports basic elements like headings, lists, links, images, and blockquotes. -- **Version Control**: Wiki.js offers version control, allowing multiple authors to collaborate on documents and track changes. Users can roll back to previous versions or view the history of changes. -- **User and Permission Management**: Create multiple user accounts and assign different permission levels to control access and editing rights for documents. -- **Search Functionality**: Wiki.js includes powerful search capabilities to help users quickly find the documents or information they need. -- **Tags and Categories**: Add tags and categories to documents to help organize and classify content, making it easier to browse and navigate. -- **Custom Themes**: Customize the appearance and feel of your site to meet branding needs, with customizable theme options. -- **Plugin Support**: Wiki.js supports a plugin system to extend its functionality, adding features like third-party service integration and document export. -- **Cross-Platform**: Wiki.js supports multiple operating systems, including Windows, macOS, and Linux, allowing deployment and operation in various environments. -- **Multi-Language Support**: Wiki.js supports multi-language content, enabling the creation of multilingual documents and knowledge bases. \ No newline at end of file diff --git a/wikijs/data.yml b/wikijs/data.yml deleted file mode 100755 index b2a277ae9..000000000 --- a/wikijs/data.yml +++ /dev/null @@ -1,32 +0,0 @@ -name: Wiki.js -tags: - - 建站 -title: 基于 Node.js 构建的现代而强大的 Wiki 应用程序 -description: 基于 Node.js 构建的现代而强大的 Wiki 应用程序 -additionalProperties: - key: wikijs - name: Wiki.js - tags: - - Website - shortDescZh: 基于 Node.js 构建的现代而强大的 Wiki 应用程序 - shortDescEn: A modern and powerful wiki app built on Node.js - type: website - crossVersionUpdate: false - limit: 0 - recommend: 0 - website: https://js.wiki/ - github: https://github.com/requarks/wiki - document: https://docs.requarks.io/ - description: - en: A modern and powerful wiki app built on Node.js - zh: 基于 Node.js 构建的现代而强大的 Wiki 应用程序 - zh-Hant: 基於 Node.js 構建的現代而強大的 Wiki 應用程序 - ja: Node.js 上に構築されたモダンで強力な Wiki アプリ - ms: Aplikasi wiki moden dan berkuasa yang dibina di atas Node.js - pt-br: Um aplicativo wiki moderno e poderoso construído no Node.js - ru: Современное и мощное приложение Wiki, построенное на Node.js - ko: Node.js 기반의 현대적이고 강력한 위키 앱 - architectures: - - amd64 - - arm64 - - arm/v7 diff --git a/wikijs/logo.png b/wikijs/logo.png deleted file mode 100644 index 933926398..000000000 Binary files a/wikijs/logo.png and /dev/null differ diff --git a/windows/4.35/data.yml b/windows/4.35/data.yml deleted file mode 100644 index dab368282..000000000 --- a/windows/4.35/data.yml +++ /dev/null @@ -1,146 +0,0 @@ -additionalProperties: - formFields: - - default: "11" - envKey: VERSION - labelZh: Windows 版本(支持网络地址) - labelEn: Windows Version (Supports network address) - required: false - type: text - label: - en: Windows Version (Supports network address) - ja: Windowsバージョン(ネットワークアドレスをサポート) - ms: Versi Windows (Menyokong alamat rangkaian) - pt-br: Versão do Windows (Suporta endereço de rede) - ru: Версия Windows (поддерживает сетевой адрес) - ko: Windows 버전(네트워크 주소 지원) - zh-hant: Windows 版本(支援網路位址) - zh: Windows 版本123(支持网络地址) - - default: 8006 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh: 端口 - zh-Hant: 埠 - required: true - rule: paramPort - type: number - - default: "8" - edit: true - envKey: RAM_SIZE - labelEn: RAM Size(GB) - labelZh: 内存大小(GB) - required: true - type: text - label: - en: RAM Size(GB) - ja: RAMサイズ(GB) - ms: Saiz RAM(Gb) - pt-br: Tamanho da RAM(GB) - ru: Размер ОЗУ(ГБ) - ko: RAM 크기(GB) - zh-hant: 隨機存取記憶體大小(GB) - zh: 内存大小(GB) - - default: "4" - edit: true - envKey: CPU_CORES - labelEn: CPU Cores - labelZh: CPU 核心数 - required: true - type: text - label: - en: CPU Cores - ja: CPUコア - ms: Teras CPU - pt-br: Núcleos de CPU - ru: Ядра ЦП - ko: CPU 코어 - zh-hant: 中央處理器核心數量 - zh: CPU 核心数 - - default: 64 - edit: true - envKey: DISK_SIZE - labelEn: Disk Size(GB) - labelZh: 磁盘大小(GB) - label: - en: Disk Size(GB) - ja: ディスクサイズ(GB) - ms: Saiz Cakera(Gb) - pt-br: Tamanho do Disco(GB) - ru: Размер диска(ГБ) - ko: 디스크 크기(GB) - zh-hant: 磁碟大小(GB) - zh: 磁盘大小(GB) - required: true - type: number - - default: "Docker" - edit: true - envKey: USERNAME - labelEn: Username - labelZh: 系统用户名 - required: true - type: text - label: - en: Username - ja: ユーザー名 - ms: Nama Pengguna - pt-br: Nome de usuário - ru: Имя пользователя - ko: 사용자 이름 - zh-hant: 使用者名稱 - zh: 系统用户名 - - default: "admin" - edit: true - envKey: PASSWORD - labelEn: Password - labelZh: 系统密码 - required: true - type: password - label: - en: Password - ja: パスワード - ms: Kata Laluan - pt-br: Senha - ru: Пароль - ko: 비밀번호 - zh-hant: 密碼 - zh: 系统密码 - - default: "Chinese" - edit: true - envKey: LANGUAGE - labelEn: Language - labelZh: 语言 - required: true - type: text - label: - en: Language - ja: 言語 - ms: Bahasa - pt-br: Idioma - ru: Язык - ko: 언어 - zh-hant: 語言 - zh: 语言 - - default: "en-US" - edit: true - envKey: KEYBOARD_LAYOUT - labelEn: Keyboard Layout - labelZh: 键盘布局 - required: true - type: text - label: - en: Keyboard Layout - ja: キーボードレイアウト - ms: Susun Atur Papan Kekunci - pt-br: Layout do Teclado - ru: Раскладка клавиатуры - ko: 키보드 레이아웃 - zh-hant: 鍵盤佈局 - zh: 键盘布局 diff --git a/windows/4.35/data/.gitkeep b/windows/4.35/data/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/windows/4.35/docker-compose.yml b/windows/4.35/docker-compose.yml deleted file mode 100644 index 99c11f9e2..000000000 --- a/windows/4.35/docker-compose.yml +++ /dev/null @@ -1,33 +0,0 @@ -services: - windows: - image: dockurr/windows:4.35 - container_name: ${CONTAINER_NAME} - environment: - VERSION: ${VERSION} - RAM_SIZE: ${RAM_SIZE} - CPU_CORES: ${CPU_CORES} - DISK_SIZE: ${DISK_SIZE} - USERNAME: ${USERNAME} - PASSWORD: ${PASSWORD} - LANGUAGE: ${LANGUAGE} - REGION: ${KEYBOARD_LAYOUT} - KEYBOARD: ${KEYBOARD_LAYOUT} - ports: - - ${PANEL_APP_PORT_HTTP}:8006 - devices: - - /dev/kvm - - /dev/net/tun - cap_add: - - NET_ADMIN - volumes: - - ./data:/storage - restart: always - networks: - - 1panel-network - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true - - diff --git a/windows/README.md b/windows/README.md deleted file mode 100644 index beb91357e..000000000 --- a/windows/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# Windows - -Docker 容器内的 Windows。 - -## 特征 ✨ - - - ISO下载器 - - KVM加速 - - 基于Web的查看器 - -详细文档请参考:[https://github.com/dockur/windows](https://github.com/dockur/windows) diff --git a/windows/README_en.md b/windows/README_en.md deleted file mode 100644 index 8abb0a1d0..000000000 --- a/windows/README_en.md +++ /dev/null @@ -1,11 +0,0 @@ -# Windows - -Windows inside a Docker container. - -## Features ✨ - -- ISO downloader -- KVM acceleration -- Web-based viewer - -Detailed documentation can be found at: [https://github.com/dockur/windows](https://github.com/dockur/windows) diff --git a/windows/data.yml b/windows/data.yml deleted file mode 100644 index 0ab806498..000000000 --- a/windows/data.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: Windows -tags: - - 实用工具 -title: Docker 容器内的 Windows -description: Docker 容器内的 Windows -additionalProperties: - key: windows - name: Windows - tags: - - Tool - shortDescZh: Docker 容器内的 Windows - shortDescEn: Windows inside a Docker container - description: - en: Windows inside a Docker container - ja: Docker コンテナ内の Windows - ms: Docker 容器內的 Windows - pt-br: Windows dentro de um contêiner Docker - ru: Windows в контейнере Docker - ko: Docker 컨테이너 내의 Windows - zh-Hant: Docker 容器內的 Windows - zh: Docker 容器内的 Windows - type: tool - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://github.com/dockur/windows - github: https://github.com/dockur/windows - document: https://github.com/dockur/windows - architectures: - - amd64 - - arm64 \ No newline at end of file diff --git a/windows/logo.png b/windows/logo.png deleted file mode 100644 index e356397fe..000000000 Binary files a/windows/logo.png and /dev/null differ diff --git a/wordpress/6.8.1/conf/uploads.ini b/wordpress/6.8.1/conf/uploads.ini deleted file mode 100644 index f7da4e718..000000000 --- a/wordpress/6.8.1/conf/uploads.ini +++ /dev/null @@ -1,5 +0,0 @@ -file_uploads = On -memory_limit = 256M -upload_max_filesize = 32M -post_max_size = 32M -max_execution_time = 360 diff --git a/wordpress/6.8.1/data.yml b/wordpress/6.8.1/data.yml deleted file mode 100755 index 1e88c54dc..000000000 --- a/wordpress/6.8.1/data.yml +++ /dev/null @@ -1,93 +0,0 @@ -additionalProperties: - formFields: - - child: - default: "" - envKey: PANEL_DB_HOST - required: true - type: service - default: mysql - envKey: PANEL_DB_TYPE - labelEn: Database Service - labelZh: 数据库服务 - label: - en: Database Service - ja: データベースサービス - ms: Perkhidmatan Pangkalan Data - pt-br: Serviço de Banco de Dados - ru: Сервис баз данных - ko: 데이터베이스 서비스 - zh-hant: 資料庫服務 - zh: 数据库服务 - required: true - type: apps - values: - - label: MySQL - value: mysql - - label: MariaDB - value: mariadb - - default: word - envKey: PANEL_DB_NAME - labelEn: Database - labelZh: 数据库 - label: - en: Database - ja: データベース - ms: Pangkalan Data - pt-br: Banco de Dados - ru: База данных - ko: 데이터베이스 - zh-hant: 資料庫 - zh: 数据库 - random: true - required: true - rule: paramCommon - type: text - - default: word - envKey: PANEL_DB_USER - labelEn: Database User - labelZh: 数据库用户 - label: - en: Database User - ja: データベースユーザー - ms: Pengguna Pangkalan Data - pt-br: Usuário do Banco de Dados - ru: Пользователь базы данных - ko: 데이터베이스 사용자 - zh-hant: 資料庫用戶 - zh: 数据库用户 - random: true - required: true - rule: paramCommon - type: text - - default: word - envKey: PANEL_DB_USER_PASSWORD - labelEn: Database Password - labelZh: 数据库密码 - label: - en: Database Password - ja: データベースのパスワード - ms: Kata Laluan Pangkalan Data - pt-br: Senha do Banco de Dados - ru: Пароль базы данных - ko: 데이터베이스 비밀번호 - zh-hant: 資料庫密碼 - zh: 数据库密码 - random: true - required: true - type: password - - default: 8080 - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh-Hant: 埠 - zh: 端口 - required: true - rule: paramPort - type: number diff --git a/wordpress/6.8.1/docker-compose.yml b/wordpress/6.8.1/docker-compose.yml deleted file mode 100644 index 68ca462fe..000000000 --- a/wordpress/6.8.1/docker-compose.yml +++ /dev/null @@ -1,23 +0,0 @@ -services: - wordpress: - image: wordpress:6.8.1 - container_name: ${CONTAINER_NAME} - ports: - - ${PANEL_APP_PORT_HTTP}:80 - restart: always - networks: - - 1panel-network - volumes: - - ./data:/var/www/html - - ./conf/uploads.ini:/usr/local/etc/php/conf.d/uploads.ini - environment: - WORDPRESS_DB_HOST: ${PANEL_DB_HOST}:${PANEL_DB_PORT} - WORDPRESS_DB_NAME: ${PANEL_DB_NAME} - WORDPRESS_DB_USER: ${PANEL_DB_USER} - WORDPRESS_DB_PASSWORD: ${PANEL_DB_USER_PASSWORD} - WORDPRESS_DEBUG: 0 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/wordpress/README.md b/wordpress/README.md deleted file mode 100644 index 4c64fd7ff..000000000 --- a/wordpress/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# WordPress - -WordPress 是一款广泛使用的开源内容管理系统(CMS),用于创建和管理网站和博客。 - -## 主要功能: - -- **易于使用的界面**:WordPress 提供了一个直观的后台管理界面,使用户能够轻松创建、编辑和管理网站内容。 -- **主题和模板**:WordPress 提供了各种主题和模板,可根据网站需求进行选择和自定义。 -- **插件扩展性**:WordPress 具有强大的插件系统,允许用户添加各种功能,如社交媒体分享、SEO优化、联系表单等。 -- **多媒体支持**:WordPress 支持多种媒体类型,包括图片、视频和音频文件的上传和嵌入。 -- **用户管理**:WordPress 允许多个用户协同编辑和管理网站,具有不同的角色和权限。 -- **SEO优化**:WordPress 提供了一系列工具和插件,以帮助改善网站的搜索引擎优化(SEO)。 -- **社交媒体集成**:WordPress 可以轻松集成社交媒体分享按钮和社交媒体嵌入,以促进内容分享。 -- **博客功能**:WordPress 最初是一个博客平台,因此具有强大的博客功能,包括文章分类、标签、评论等。 \ No newline at end of file diff --git a/wordpress/README_en.md b/wordpress/README_en.md deleted file mode 100644 index f8de93d6a..000000000 --- a/wordpress/README_en.md +++ /dev/null @@ -1,37 +0,0 @@ -# WordPress - -WordPress is a widely used open-source CMS (Content Management System) for creating and managing websites and blogs. - -## Main Features - -### User-Friendly Interface - -WordPress provides an intuitive backend management interface, allowing users to easily create, edit, and manage website content. - -### Themes and Templates - -WordPress offers a variety of themes and templates that can be selected and customized according to website needs. - -### Plugin Extensibility - -WordPress has a powerful plugin system that allows users to add various features such as social media sharing, SEO (Search Engine Optimization) optimization, contact forms, etc. - -### Multimedia Support - -WordPress supports multiple media types, including image, video, and audio file uploads and embedding. - -### User Management - -WordPress allows multiple users to collaboratively edit and manage the website with different roles and permissions. - -### SEO Optimization - -WordPress provides a range of tools and plugins to help improve the website's SEO. - -### Social Media Integration - -WordPress can easily integrate social media sharing buttons and social media embeds to promote content sharing. - -### Blogging Features - -WordPress was initially a blogging platform, so it has strong blogging features, including post categories, tags, comments, etc. diff --git a/wordpress/data.yml b/wordpress/data.yml deleted file mode 100755 index c753e9bed..000000000 --- a/wordpress/data.yml +++ /dev/null @@ -1,35 +0,0 @@ -name: WordPress -tags: - - 建站 -title: 著名的开源博客软件和 CMS 系统 -description: 著名的开源博客软件和 CMS 系统 -additionalProperties: - key: wordpress - name: WordPress - tags: - - Website - shortDescZh: 著名的开源博客软件和 CMS 系统 - shortDescEn: Open source blogging software and content management system - description: - en: Open source blogging software and content management system - ja: オープンソースのブログソフトウェアおよびコンテンツ管理システム - ms: Perisian blog dan sistem pengurusan kandungan sumber terbuka - pt-br: Software de blog de código aberto e sistema de gerenciamento de conteúdo - ru: Программное обеспечение для блогов с открытым исходным кодом и система управления контентом - ko: 오픈 소스 블로깅 소프트웨어 및 콘텐츠 관리 시스템 - zh-hant: 開源的博客軟體與內容管理系統 - zh: 著名的开源博客软件和 CMS 系统 - type: website - crossVersionUpdate: true - limit: 0 - recommend: 25 - website: https://wordpress.org/ - github: https://github.com/WordPress/WordPress - document: https://cn.wordpress.org/support/ - architectures: - - amd64 - - arm/v5 - - arm/v7 - - arm64 - - ppc64le - - s390x diff --git a/wordpress/logo.png b/wordpress/logo.png deleted file mode 100644 index ff2e05f3c..000000000 Binary files a/wordpress/logo.png and /dev/null differ diff --git a/yesplaymusic/0.4.9/data.yml b/yesplaymusic/0.4.9/data.yml deleted file mode 100644 index cee5de47e..000000000 --- a/yesplaymusic/0.4.9/data.yml +++ /dev/null @@ -1,10 +0,0 @@ -additionalProperties: - formFields: - - default: 40075 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number diff --git a/yesplaymusic/0.4.9/docker-compose.yml b/yesplaymusic/0.4.9/docker-compose.yml deleted file mode 100644 index 0d65e42ed..000000000 --- a/yesplaymusic/0.4.9/docker-compose.yml +++ /dev/null @@ -1,14 +0,0 @@ -services: - yesplaymusic: - image: fogforest/yesplaymusic:0.4.9 - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTP}:80" - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/yesplaymusic/README.md b/yesplaymusic/README.md deleted file mode 100644 index eafdc344b..000000000 --- a/yesplaymusic/README.md +++ /dev/null @@ -1,25 +0,0 @@ -# YesPlayMusic - -**YesPlayMusic** 是一款高颜值的第三方网易云播放器,支持 Windows / macOS / Linux。 - -## 特性: - -- 使用 Vue.js 全家桶开发 -- 网易云账号登录(扫码/手机/邮箱登录) -- 支持 MV 播放 -- 支持歌词显示 -- 支持私人 FM / 每日推荐歌曲 -- 无任何社交功能 -- 海外用户可直接播放(需要登录网易云账号) -- 支持 [UnblockNeteaseMusic](https://github.com/UnblockNeteaseMusic/server#音源清单),自动使用[各类音源](https://github.com/UnblockNeteaseMusic/server#音源清单)替换变灰歌曲链接 (网页版不支持) - - 「各类音源」指默认启用的音源。 - - YouTube 音源需自行安装 `yt-dlp`。 -- 每日自动签到(手机端和电脑端同时签到) -- Light/Dark Mode 自动切换 -- 支持 Touch Bar -- 支持 PWA,可在 Chrome/Edge 里点击地址栏右边的 ➕ 安装到电脑 -- 支持 Last.fm Scrobble -- 支持音乐云盘 -- 自定义快捷键和全局快捷键 -- 支持 Mpris -- 更多特性开发中 \ No newline at end of file diff --git a/yesplaymusic/data.yml b/yesplaymusic/data.yml deleted file mode 100644 index bd49ce10a..000000000 --- a/yesplaymusic/data.yml +++ /dev/null @@ -1,22 +0,0 @@ -name: YesPlayMusic -tags: - - 多媒体 -title: 高颜值的第三方网易云播放器 -description: 高颜值的第三方网易云播放器 -additionalProperties: - key: yesplaymusic - name: YesPlayMusic - tags: - - Media - shortDescZh: 高颜值的第三方网易云播放器 - shortDescEn: A high-end third-party NetEase cloud player - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://music.qier222.com/ - github: https://github.com/qier222/YesPlayMusic - document: https://github.com/qier222/YesPlayMusic - architectures: - - amd64 - - arm64 diff --git a/yesplaymusic/logo.png b/yesplaymusic/logo.png deleted file mode 100644 index 3313cb376..000000000 Binary files a/yesplaymusic/logo.png and /dev/null differ diff --git a/yourls/1.10.1/data.yml b/yourls/1.10.1/data.yml deleted file mode 100644 index d9d992d84..000000000 --- a/yourls/1.10.1/data.yml +++ /dev/null @@ -1,157 +0,0 @@ -additionalProperties: - formFields: - - child: - default: "" - envKey: PANEL_DB_HOST - required: true - type: service - default: mysql - envKey: PANEL_DB_TYPE - labelEn: Database Service - labelZh: 数据库服务 - label: - en: Database Service - ja: データベースサービス - ms: Perkhidmatan Pangkalan Data - pt-br: Serviço de Banco de Dados - ru: Сервис базы данных - ko: 데이터베이스 서비스 - zh: 数据库服务 - zh-Hant: 數據庫服務 - required: true - type: apps - values: - - label: MySQL - value: mysql - - default: yourls - envKey: PANEL_DB_NAME - labelEn: Database - labelZh: 数据库名 - label: - en: Database - ja: データベース - ms: Pangkalan Data - pt-br: Banco de Dados - ru: База данных - ko: 데이터베이스 - zh: 数据库名 - zh-Hant: 數據庫名 - random: true - required: true - rule: paramCommon - type: text - - default: yourls - envKey: PANEL_DB_USER - labelEn: User - labelZh: 数据库用户 - label: - en: User - ja: ユーザー - ms: Pengguna - pt-br: Usuário - ru: Пользователь - ko: 사용자 - zh: 数据库用户 - zh-Hant: 數據庫用戶 - random: true - required: true - rule: paramCommon - type: text - - default: yourls - envKey: PANEL_DB_USER_PASSWORD - labelEn: Password - labelZh: 数据库用户密码 - label: - en: Password - ja: パスワード - ms: Kata Laluan - pt-br: Senha - ru: Пароль - ko: 비밀번호 - zh: 数据库用户密码 - zh-Hant: 數據庫用戶密碼 - random: true - required: true - type: password - - default: yourls_ - envKey: PANEL_DB_PREFIX - labelEn: Database prefix - labelZh: 数据库前缀 - label: - en: Database prefix - ja: データベースプレフィックス - ms: Pangkalan Data awalan - pt-br: Prefixo do Banco de Dados - ru: Префикс базы данных - ko: 데이터베이스 접두사 - zh: 数据库前缀 - zh-Hant: 數據庫前綴 - required: true - type: text - - default: 40037 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: Port - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh: 端口 - zh-Hant: 埠 - required: true - rule: paramPort - type: number - - default: yourls - envKey: USERNAME - labelEn: User - labelZh: 用户 - label: - en: User - ja: ユーザー - ms: Pengguna - pt-br: Usuário - ru: Пользователь - ko: 사용자 - zh: 用户 - zh-Hant: 用戶 - random: true - required: true - rule: paramCommon - type: text - - default: yourls - envKey: PASSWORD - labelEn: Password - labelZh: 用户密码 - label: - en: Password - ja: パスワード - ms: Kata Laluan - pt-br: Senha - ru: Пароль - ko: 비밀번호 - zh: 用户密码 - zh-Hant: 用戶密碼 - random: true - required: true - rule: paramComplexity - type: password - - default: http://localhost:40037 - edit: true - envKey: YOURLS_EXTERNAL_URL - labelEn: External URL - labelZh: 外部访问地址 - label: - en: External URL - ja: 外部URL - ms: URL Luaran - pt-br: URL externo - ru: Внешний URL - ko: 외부 URL - zh: 外部访问地址 - zh-Hant: 外部訪問地址 - required: true - type: text \ No newline at end of file diff --git a/yourls/1.10.1/docker-compose.yml b/yourls/1.10.1/docker-compose.yml deleted file mode 100644 index b0afd29e9..000000000 --- a/yourls/1.10.1/docker-compose.yml +++ /dev/null @@ -1,26 +0,0 @@ -services: - yourls: - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTP}:80" - volumes: - - "./data:/var/www/html" - environment: - - YOURLS_SITE=${YOURLS_EXTERNAL_URL} - - YOURLS_USER=${USERNAME} - - YOURLS_PASS=${PASSWORD} - - YOURLS_DB_HOST=${PANEL_DB_HOST}:${PANEL_DB_PORT} - - YOURLS_DB_NAME=${PANEL_DB_NAME} - - YOURLS_DB_USER=${PANEL_DB_USER} - - YOURLS_DB_PASS=${PANEL_DB_USER_PASSWORD} - - YOURLS_DB_PREFIX=${PANEL_DB_PREFIX} - image: yourls:1.10.1 - labels: - createdBy: "Apps" - -networks: - 1panel-network: - external: true diff --git a/yourls/README.md b/yourls/README.md deleted file mode 100644 index 47a21ee68..000000000 --- a/yourls/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# 使用说明 - -> 注意:首次实例化时,访问根文件夹将生成错误。通过路径 `/admin/` 访问 `YOURLS` 管理界面。 - -假如外部访问地址设置为`http://localhost:40037`,那么需要访问`http://localhost:40037/admin/`进行初始化设置。 - -# YOURLS - -**YOURLS** 是一组 PHP 脚本,允许您在服务器上运行您自己的 URL 缩短器。您将完全控制您的数据、详细统计数据、分析、插件等。它是免费且开源的。 - -## 主要功能: - -- **自定义短网址**:您可以创建个性化的短网址,使其易于记忆和分享,例如,将长URL转换成短URL,类似于“yourls.org/x1b2c3”。 -- **统计分析**:YOURLS可以跟踪每个短网址的点击次数,为您提供详细的统计数据,包括点击时间、来源地理位置和浏览器信息。 -- **安全性**:您拥有对数据的完全控制,可以确保链接的安全性,避免被滥用或滥用。 -- **API支持**:YOURLS提供API支持,使您可以与其他应用程序和服务集成,实现自动化的URL缩短和管理。 -- **插件系统**:YOURLS的插件系统使您能够扩展其功能,根据需要添加新的功能和特性。 -- **密码保护**:您可以为某些短网址添加密码保护,以确保只有授权用户可以访问。 -- **自定义关键字**:根据需要创建自定义短网址关键字,以便更好地组织和管理链接。 \ No newline at end of file diff --git a/yourls/README_en.md b/yourls/README_en.md deleted file mode 100644 index 6a70bf8ff..000000000 --- a/yourls/README_en.md +++ /dev/null @@ -1,15 +0,0 @@ -# Instructions -> Note: On first instantiation, accessing the root folder will generate an error. Access the `YOURLS` admin interface via the `/admin/` path. -If the external access address is set to `http://localhost:40037`, you need to visit `http://localhost:40037/admin/` for the initial setup. - -# YOURLS -**YOURLS** is a set of PHP scripts that allow you to run your own URL shortener on your server. You have full control over your data, detailed statistics, analytics, plugins, and more. It is free and open-source. - -## Key Features: -- **Custom Short URLs**: Create personalized short URLs that are easy to remember and share, such as converting long URLs into short ones like "yourls.org/x1b2c3". -- **Analytics**: YOURLS tracks clicks on each short URL, providing detailed statistics, including click times, geographic locations, and browser information. -- **Security**: You have full control over your data, ensuring the security of your links and preventing misuse or abuse. -- **API Support**: YOURLS offers API support, enabling integration with other applications and services for automated URL shortening and management. -- **Plugin System**: Extend YOURLS functionality with its plugin system, adding new features and capabilities as needed. -- **Password Protection**: Add password protection to certain short URLs to ensure only authorized users can access them. -- **Custom Keywords**: Create custom short URL keywords as needed for better organization and management of links. \ No newline at end of file diff --git a/yourls/data.yml b/yourls/data.yml deleted file mode 100644 index ffa73af53..000000000 --- a/yourls/data.yml +++ /dev/null @@ -1,34 +0,0 @@ -name: YOURLS -tags: - - 实用工具 -title: PHP 驱动的标准自托管 URL 缩短器 -description: PHP 驱动的标准自托管 URL 缩短器 -additionalProperties: - key: yourls - name: YOURLS - tags: - - Tool - shortDescZh: PHP 驱动的标准自托管 URL 缩短器 - shortDescEn: The de facto standard self hosted URL shortener in PHP - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://yourls.org/ - github: https://github.com/YOURLS/YOURLS - document: https://yourls.org/docs - description: - en: The de facto standard self-hosted URL shortener in PHP - zh: PHP 驱动的标准自托管 URL 缩短器 - zh-Hant: PHP 驅動的標準自託管 URL 縮短器 - ja: PHP で駆動される事実上の標準的な自己ホスト型 URL 短縮ツール - ms: Pemendek URL yang dihoskan sendiri dan menjadi standard de facto dalam PHP - pt-br: O encurtador de URL auto-hospedado padrão de fato em PHP - ru: Фактический стандартный самохостинг для сокращения URL на PHP - ko: PHP에서 구동되는 사실상의 표준 자체 호스팅 URL 단축기 - architectures: - - amd64 - - arm64 - - arm/v7 - - s390x - - ppc64le diff --git a/yourls/logo.png b/yourls/logo.png deleted file mode 100644 index 8fecff3e2..000000000 Binary files a/yourls/logo.png and /dev/null differ diff --git a/zentao/21.7/data.yml b/zentao/21.7/data.yml deleted file mode 100644 index f6a1b0dde..000000000 --- a/zentao/21.7/data.yml +++ /dev/null @@ -1,9 +0,0 @@ -additionalProperties: - formFields: - - default: 8080 - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 应用端口 - required: true - rule: paramPort - type: number diff --git a/zentao/21.7/docker-compose.yml b/zentao/21.7/docker-compose.yml deleted file mode 100644 index ebe705579..000000000 --- a/zentao/21.7/docker-compose.yml +++ /dev/null @@ -1,18 +0,0 @@ -services: - zentao: - image: hub.zentao.net/app/zentao:21.7 - container_name: ${CONTAINER_NAME} - restart: always - ports: - - ${PANEL_APP_PORT_HTTP}:80 - volumes: - - ./data:/data - environment: - - MYSQL_INTERNAL=true - networks: - - 1panel-network - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/zentao/README.md b/zentao/README.md deleted file mode 100644 index 44f4525a8..000000000 --- a/zentao/README.md +++ /dev/null @@ -1,29 +0,0 @@ -# 禅道 - -禅道是一款功能强大、全面的敏捷项目管理软件,旨在帮助团队规划、跟踪和交付高质量的软件产品。它将项目管理、产品管理、质量管理和文档管理功能融合于一个集成平台中。 - -## 主要功能: - -### 敏捷管理 - -禅道提供敏捷项目管理功能,包括故事管理、任务管理、迭代计划和冲刺等。您可以使用Markdown语法来快速记录和跟踪项目的进度。 - -### 缺陷管理 - -禅道支持缺陷管理,您可以记录和跟踪应用程序中的缺陷,并分配给相应的开发人员进行修复。 - -### 测试管理 - -禅道提供测试计划、用例和执行的管理功能,帮助您确保软件质量。 - -### 项目文档管理 - -您可以使用禅道管理项目文档,包括需求文档、设计文档和用户文档等。 - -### 统计和报告 - -禅道提供各种统计和报告功能,帮助您了解项目进度和团队绩效。 - -### 协作和通知 - -禅道支持团队协作和通知功能,使团队成员能够实时沟通和合作。 diff --git a/zentao/data.yml b/zentao/data.yml deleted file mode 100644 index b3ca56911..000000000 --- a/zentao/data.yml +++ /dev/null @@ -1,22 +0,0 @@ -name: 禅道 -tags: - - DevOps -title: 敏捷(scrum)项目管理系统/工具,永久免费升级 -description: 敏捷(scrum)项目管理系统/工具,永久免费升级 -additionalProperties: - key: zentao - name: 禅道 - tags: - - DevOps - shortDescZh: 敏捷(scrum)项目管理系统/工具,永久免费升级 - shortDescEn: An agile(scrum) project management system/tool, - type: website - crossVersionUpdate: true - limit: 0 - recommend: 75 - website: https://www.zentao.net/index.html - github: https://github.com/easysoft/zentaopms - document: https://www.zentao.net/book/zentaopms/38.html - architectures: - - amd64 - - arm64 diff --git a/zentao/logo.png b/zentao/logo.png deleted file mode 100644 index 8e44803fb..000000000 Binary files a/zentao/logo.png and /dev/null differ diff --git a/zfile/4.3.2/data.yml b/zfile/4.3.2/data.yml deleted file mode 100644 index 00e58c2e1..000000000 --- a/zfile/4.3.2/data.yml +++ /dev/null @@ -1,10 +0,0 @@ -additionalProperties: - formFields: - - default: 40072 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number diff --git a/zfile/4.3.2/docker-compose.yml b/zfile/4.3.2/docker-compose.yml deleted file mode 100644 index 8ea5a52fa..000000000 --- a/zfile/4.3.2/docker-compose.yml +++ /dev/null @@ -1,18 +0,0 @@ -services: - zfile: - image: zhaojun1998/zfile:4.3.2 - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTP}:8080" - volumes: - - "./data/db:/root/.zfile-v4/db" - - "./data/logs:/root/.zfile-v4/logs" - - "./data/mnt:/data/file" - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/zfile/README.md b/zfile/README.md deleted file mode 100644 index d19efc74b..000000000 --- a/zfile/README.md +++ /dev/null @@ -1,16 +0,0 @@ -## ZFile - -ZFile 是一个适用于个人的在线网盘(列目录)程序,可以将你各个存储类型的存储源,统一到一个网页中查看、预览、维护,再也不用去登录各种各样的网页登录后管理文件,现在你只需要在 ZFile 中使用。你只需要填写存储源相关信息,其他的令牌刷新,授权都是尽量自动化的,且有完善的文档帮助你使用。 - -## 主要功能: - -- **文件管理**: ZFile 提供了一个直观的文件管理界面,让您轻松上传、下载和管理文件。您可以创建文件夹、移动文件、复制文件等。 -- **多用户支持**: ZFile 允许您创建多个用户账户,每个账户都有自己的文件存储空间和权限设置。这使得多人协作和文件共享变得更加便捷。 -- **在线预览**: ZFile 支持多种文件格式的在线预览,包括文档、图片、音频和视频文件。这意味着您无需下载文件即可查看其内容。 -- **分享链接**: 您可以生成文件的分享链接,以便与他人共享文件或文件夹。可以选择设置链接的有效期限和访问权限。 -- **密码保护**: 您可以为分享链接设置密码,以增加文件的安全性,只有知道密码的人才能访问文件。 -- **文件搜索**: ZFile 提供强大的文件搜索功能,帮助您快速定位需要的文件,节省时间。 -- **文件版本控制**: 如果您上传了相同文件的多个版本,ZFile 可以保存文件的历史版本,以便您随时恢复或查看以前的版本。 -- **主题自定义**: 您可以根据自己的需求自定义 ZFile 的外观和主题,以匹配您的品牌或个人喜好。 -- **安全性**: ZFile 提供一些安全性功能,如IP白名单、验证码等,以保护您的文件免受未经授权的访问。 -- **跨平台支持**: ZFile 可以运行在各种操作系统上,并支持常见的Web浏览器,因此您可以从任何设备访问和管理文件。 \ No newline at end of file diff --git a/zfile/data.yml b/zfile/data.yml deleted file mode 100644 index 5a9db3a4e..000000000 --- a/zfile/data.yml +++ /dev/null @@ -1,21 +0,0 @@ -name: ZFile -tags: - - 云存储 -title: 基于 Java 的在线网盘程序 -description: 基于 Java 的在线网盘程序 -additionalProperties: - key: zfile - name: ZFile - tags: - - Storage - shortDescZh: 基于 Java 的在线网盘程序 - shortDescEn: Java-based online disk program - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://www.zfile.vip/ - github: https://github.com/zfile-dev/zfile - document: https://docs.zfile.vip/ - architectures: - - amd64 \ No newline at end of file diff --git a/zfile/logo.png b/zfile/logo.png deleted file mode 100644 index bc7480956..000000000 Binary files a/zfile/logo.png and /dev/null differ